_             _       _     _
    / \   _ __ ___| |__   | |   (_)_ __  _   ___  __
   / _ \ | '__/ __| '_ \  | |   | | '_ \| | | \ \/ /
  / ___ \| | | (__| | | | | |___| | | | | |_| |>  <
 /_/   \_\_|  \___|_| |_| |_____|_|_| |_|\__,_/_/\_\

ARCH LINUX NOTES by Stoyan:
Last update: 5.7.2008

--------------------------------------------------------------------------------------------

FIRST STEPS

; pacman update
sudo pacman -Sy pacman
; remane pacnew files in /etc/pacman.d/
; comment servers you don't want to use
sudo nano extra
sudo nano mirrorlist
; install KDE
sudo pacman -Sy kde
; cancel xfce4 -> comment all xfce4 lines
nano ~/.xinitrc
; unistall xfce4
sudo pacman -Rd xfce4
; download & install nvida drivers - better way is to use pacman package
sudo /etc/rc.d/kdm stop
sudo sh Nvidia-xxxx-yyyy-zzzz
sudo /etc/rc.d/kdm start
sudo nvidia-settings

--------------------------------------------------------------------------------------------

PACMAN USAGE

; install
sudo pacman -Sy app
; unistall with zavislosti
sudo pacman -Rs app
; unistall without dependencies
sudo pacman -Rd app
; info about package
sudo pacman -Qi app
; show what package does app belong to
pacman -Qo `which ksnapshot`

--------------------------------------------------------------------------------------------

SENSORS USAGE

sudo pacman -S lm_sensors hddtemp
sudo /etc/rc.d/sensors start + add daemon to /etc/rc.conf
sudo /etc/rc.d/hddtemp start + add daemon to /etc/rc.conf
sudo sensors-detect

--------------------------------------------------------------------------------------------

BASH COMPLETION PLUGIN

sudo pacman -Sy bash-completion

--------------------------------------------------------------------------------------------

MAKE SOUND WORKING
(Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller)

from http://www.alsa-project.org/main/index.php/Main_Page download:
alsa-driver
alsa-lib
alsa-utils

sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/downloads/alsa* .
sudo tar xjf alsa-driver*.bz2
sudo tar xjf alsa-lib*.tar.bz2
sudo tar xjf alsa-utils*.tar.bz2

cd alsa-driver*
sudo ./configure --with-cards=hda-intel
sudo make
sudo make install

cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install

cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

sudo reboot

sudo nano /etc/modprobe.conf -> add line: options snd-hda-intel model=toshiba

--------------------------------------------------------------------------------------------

MAKE WIFI WORKING
(Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN Network Connection)

sudo pacman -Sy iwlwifi  
sudo pacman -Sy iwlwifi-4965-ucode
sudo ifconfig wlan0 up

--------------------------------------------------------------------------------------------

BASH-COMPLETION AFTER SUDO

to ~/.bashrc add these lines:
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

--------------------------------------------------------------------------------------------

MBR BACKUP

make backup:
dd if=/dev/sda of=~/mbr.dd bs=512 count=1
backup usage:
dd if=~/mbr.dd of=/dev/sda bs=512 count=1

--------------------------------------------------------------------------------------------

HOW TO DELETE TEMPORARY FILES

find ~ -name '*~' -exec rm {} \;

--------------------------------------------------------------------------------------------

CPU FREQUENCY AUTOMATIC CHANGE

http://wiki.archlinux.org/index.php/SpeedStep

--------------------------------------------------------------------------------------------

BETTER CONSOLE FONT

Deja vu Sans

--------------------------------------------------------------------------------------------
KDE GTK APPS LOOK

sudo pacman -S gtk-qt-engine

--------------------------------------------------------------------------------------------

WIRESHARK FILTERS

wlan.sa eq 00:19:db:09:00:2d          //show all packets FROM station with that MAC adr (MAC can be found in IEEE 802.11 header as source or destination address)
wlan.da eq 00:19:db:09:00:2d          //show all packets TO station with that MAC adr (MAC can be found in IEEE 802.11 header as source or destination address)
wlan.da eq 00:19:db:09:00:2d or wlan.sa eq 00:19:db:09:00:2d  //traffic FROM and TO selected station
wlan.bssid eq 00:11:92:6e:cf:00       //show packets only from AP with that BSSID == specifiing network
wlan.fc.protected ne 1                //show all unencrypted packets
ip
ftp
ftp.request.command contains "pass"
ftp.request.command contains "PASS"
pop
pop.request.command contains "USER"
http
http.host contains "travian"
http.request.method == "POST"

--------------------------------------------------------------------------------------------

WMV IN FIREFOX

pacman -S mplayer-plugin
if it still doesn't work:
pacman -S mozplugger
rm .mozilla/firefox/pluginreg.dat

--------------------------------------------------------------------------------------------

MEASURING HDD SPEED

sudo hdparm -t /dev/sda

--------------------------------------------------------------------------------------------

USING ONLY ONE INSTACE OF KATE EDITOR

text file -> right click -> open with -> kate %U -u

--------------------------------------------------------------------------------------------

SET KATE AS DEFAULT KRUSADER EDITOR

Settings -> Configure Krusader -> Genral -> Editor -> Kate -u -> now I can edit via F4

--------------------------------------------------------------------------------------------

SET BACKSPACE TO BACK FUNCTION IN FIREFOX

about:config -> find browser.backspace_action and set to 0

--------------------------------------------------------------------------------------------

HOW TO USE CZECH DIACRITICS IN C PROGRAMS

/usr/share/i18n/locales/cs_CZ
sudo localedef -i cs_CZ -f "ISO-8859-2" cs_CZ
sudo localedef -i cs_CZ -f "ISO-8859-2" 'cs_CZ.ISO-8859-2'
char *l = setlocale(LC_ALL,"cs_CZ.ISO-8859-2");

--------------------------------------------------------------------------------------------

THUNDERBIRD - LINK OPEN IN FIREFOX

cd /usr/local/bin

create openFirefox.sh:

#!/bin/bash
export MOZILLA_FIVE_HOME="/usr/lib/firefox-2.0.0.12"

url="$1"
if [ "x$url" = "x" ]; then
    url="about:blank"
fi

if $MOZILLA_FIVE_HOME/mozilla-xremote-client openURL\("$url"\); then
      exit 0
fi

exec $MOZILLA_FIVE_HOME/firefox "$url"

--
sudo chmod +x openFirefox.sh

cd ~thunderbird/-profilename-/

create user.js:

user_pref("network.protocol-handler.app.http","/usr/local/bin/openFirefox.sh");
user_pref("network.protocol-handler.app.https","/usr/local/bin/openFirefox.sh");
user_pref("network.protocol-handler.app.ftp","/usr/local/bin/openFirefox.sh");
user_pref("network.protocol-handler.app.file","/usr/local/bin/openFirefox.sh");

done...

--------------------------------------------------------------------------------------------

SSH CONNECTION THROUGH MORE MACHINES

ssh -t xantal02@eva.fit.vutbr.cz ssh -t xantal02@merlin.fit.vutbr.cz

--------------------------------------------------------------------------------------------

LOOKING FOR SUID APPLICATIONS

find / -perm +u+s
find / -perm +g+s
find / -perm -4000
find / -perm -4000 2> /dev/null

--------------------------------------------------------------------------------------------

USING MOST INSTEAD OF LESS FOR BROWSING MANPAGES

sudo pacman -S most
sudo nano /etc/man.conf

PAGER           /usr/bin/most -s
BROWSER         /usr/bin/most -s

--------------------------------------------------------------------------------------------

UPDATEDB AND LOCATE DOES NOT WORK

sudo groupadd locate
sudo gpasswd -a stoyan locate
sudo reboot
sudo update + locate will work now

--------------------------------------------------------------------------------------------

DIACRITICS DOES NOT WORK

sudo nano /etc/locale.gen -> uncoment cs_CZ.UTF-8 UTF-8
sudo locale-gen
sudo nano /etc/rc.conf -> LOCALE="cs_CZ.utf8"
sudo reboot

kcontrol -> fonts -> DejaVu Sans

--------------------------------------------------------------------------------------------

MAPLE BASICS

> solve(x+1);
                                     -1
> solve(x+1=2);
                                      1
> solve(a+b = c, a);
                                      -b + c
> eval(x+1, x = 3);
                                      4
> evalf(Pi);
                                      3.141592654
> plot(x^2, x = -5 .. 5, y = -5 .. 5)
                                      graf
> plot(1/(x-1), x = -5 .. 5, y = -5 .. 5, discont, title = "Nespojita funkce", color = green)
                                      nespojity graf
> plot(1/(x-1), x = -5 .. 5, y = -5 .. 5, discont, coords = polar)
                                      graf v polarnich souradnicich
> convert((x+3)/(x^2+x-2), parfrac, x)
                                      parcialni zlomek
> ?function
                                      function help
> taylor(exp(x),x)
                                      tayloruv rozvoj funkce exp(x) (O ve vysledku znaci rozdil oproti presne hodnote)
                                      zbavime se ho pomoci convert(%,polynom)
> taylor(exp(x),x=2,3)
                                      tayloruv rozvoj funkce exp(x) pro x0=2 se tremi cleny rozvoje
> mtaylor(exp(x*y),[x,y])
                                      tayloruv rozvoj funkce dvou promennych exp(x*y)
--------------------------------------------------------------------------------------------

CUTE ASCII HEADERS

sudo pacman -Sy figlet

figlet HEADER

--------------------------------------------------------------------------------------------

SHORTCUT TO APP (KONSOLE)

kcontrol -> shortcuts -> command shorcuts -> choose desired app and shortcut (konsole -> alt+W)

--------------------------------------------------------------------------------------------

CUTE CURSORS

sudo pacman -S xcursor-vanilla-dmz-0.4-4

--------------------------------------------------------------------------------------------

CUSTOM INFO ABOUT PROCESESS

ps -e -o pid,ppid,command

--------------------------------------------------------------------------------------------

PROSPER.STY IN LATEX

sudo pacman -S texlive-latexextra
pacman -S texlive-pstricks

--------------------------------------------------------------------------------------------

INDENT CONFIGURATION

cat > .indent.pro

--blank-lines-after-procedures
--brace-indent0
--break-before-boolean-operator
--case-indentation2
--continuation-indentation0
--continue-at-parentheses
--declaration-indentation1
--dont-break-procedure-type
--dont-cuddle-else
--dont-format-comments
--dont-format-first-column-comments
--dont-space-special-semicolon
--dont-star-comments
--else-endif-column33
--honour-newlines
--indent-level2
--leave-optional-blank-lines
--line-comments-indentation0
--line-length130
--no-blank-lines-after-commas
--no-blank-lines-after-declarations
--no-comment-delimiters-on-blank-lines
--no-space-after-function-call-names
--no-space-after-parentheses
--no-tabs
--parameter-indentation0
--space-after-cast
--space-after-for
--space-after-if
--space-after-while
--tab-size2

cp .indent.pro ~/

--------------------------------------------------------------------------------------------

HOW TO DOWNGRADE PACMAN PACKAGE

search for desired package in /var/cache/pacman/pkg/

pacman -U packagename.pkg.tar.gz

--------------------------------------------------------------------------------------------
  _  __     _                 _
 | |/ /   _| |__  _   _ _ __ | |_ _   _
 | ' / | | | '_ \| | | | '_ \| __| | | |
 | . \ |_| | |_) | |_| | | | | |_| |_| |
 |_|\_\__,_|_.__/ \__,_|_| |_|\__|\__,_|


KUBUNTU LINUX NOTES (mostly for 7.04)

--------------------------------------------------------------------------------------

NVIDIA DRIVERS

1) doporucuje nejprve zalohovat xorg.conf ktery najdes v /etc/X11
2) pote si stahnes balickek pres aptitude nebo apt-get nebo v Adept_manageru nvidia_glx nebo nvidia-glx-new
3) pote spustis sudo nvidia-xconfig
4) ted ctrl alt backspace a modlit se aby nabehl X server - kdyztak obnovit zalohu a /etc/init.d/kdm start

--------------------------------------------------------------------------------------

REPOSITORIES

1) zaloha /etc/apt/source.list
2)
# SUPPORTED PACKAGES
deb http://sk.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
# deb-src http://sk.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse

# MAJOR BUGFIX UPDATES
deb http://sk.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
# deb-src http://sk.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse

# SECURITY UPDATES
deb http://security.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted universe multiverse

# BACKPORTS PACKAGES
deb http://sk.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
# deb-src http://sk.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse

# MEDIBUNTU (PLF)
deb http://medibuntu.sos-sts.com/repo/ feisty free non-free
# deb-src http://medibuntu.sos-sts.com/repo/ feisty free non-free

# OPERA WEB BROWSER
deb http://deb.opera.com/opera etch non-free

# BLEEDING WINEPACKS
deb http://wine.budgetdedicated.com/apt feisty main
# deb-src http://wine.budgetdedicated.com/apt feisty main
3) sudo apt-get update

--------------------------------------------------------------------------------------

WALLPAPERS

1) rozliseni zjistim (1280x1024): sudo nvidia-settings
2) kde-look.org

--------------------------------------------------------------------------------------

C HEADER FILES

install package build-essential

--------------------------------------------------------------------------------------

MANUAL PAGES FOR C PROGRAMMING AND DOCUMENTATION

manpages-dev
glibc-doc

--------------------------------------------------------------------------------------

RAR and 7Z SUPPORT

sudo apt-get install unrar p7zip-full

--------------------------------------------------------------------------------------

CODECS + MP3 SUPPORT

package libxine-extracodecs

--------------------------------------------------------------------------------------

WINDOWS FONTS

package msttcorefonts + ttf-xfree86-nonfree

--------------------------------------------------------------------------------------

HDD PARTITIONS

sudo fdisk -l

--------------------------------------------------------------------------------------

WRITE RIGHT FOR NTFS PARTITIONS

sudo apt-get install ntfs-config
sudo ntfs-config

--------------------------------------------------------------------------------------

WIN + D instead of CTRL + ALT + D

kmenu -> system -> keyboard & mouse -> keyboard shortcuts -> Toggle showing desktop

--------------------------------------------------------------------------------------

TAR + GZ

how to make tar.gz:
tar cvf proj.tar proj1.c 
gzip proj.tar
--> proj.tar.gz

shorter way:
tar cvzf file.tar.gz file

how to extract tar.gz
tar -xvvzf proj.tar.gz

how to extract zip file
unzip data.zip

--------------------------------------------------------------------------------------

TURN ON NUMLOCK ON BOOT

sudo apt-get install numlockx
kdesu kate /etc/kde3/kdm/kdmrc

under line

[X-*-Greeter]

add line

NumLock=On

--------------------------------------------------------------------------------------

DHCP

sudo dhclient eth0

--------------------------------------------------------------------------------------

MAC ADRESS CHANGE

sudo ifconfig eth down
sudo ifconfig eth0 hw ether 00:00:B4:C7:E0:89
sudo ifconfig eth up
- doesn't work, network won't turn on again - in arch does work

download macchanger: sudo apt-get install macchanger
Kmenu - system set. - network - admin mode - disable connection
sudo macchanger --mac=00:11:22:33:44:55 eth0
Kmenu - system set. - network - admin mode - enable connection

radek - 00:50:8D:E3:5E:D9
moje - 00:0A:CD:0C:45:AA

--------------------------------------------------------------------------------------

PING & SCAN

fping -g 192.168.0.0 192.168.0.10
scan IP range if alive

ifconfig eth0
show my MAC address

sudo nmap -O 192.168.0.2
find out what OS is running on the remote server

sudo nmap -sS 192.168.0.2
show open ports and MAC address of 192.168.0.2 PC

sudo nmap -sP 192.168.0.*
show alive PC's in network with their MAC addresses

connect() port scan:
nmap –sT –p 0-65535 192.168.0.2
-> this kind is logged

SYN port scan:
sudo nmap –sS –p 0-65535 192.168.0.2
-> can be logged but in most cases it isn't

Ping scan:
sudo nmap -sP 192.168.0.*

zombie port scan
sudo nmap -sI 192.168.0.2 192.168.0.4 (nmap -sI zombie victim)
-> victim sees only zombie's Ip but not yours:)

--------------------------------------------------------------------------------------

WEP CRACKING

- to see all avalible APs and their clients:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor
sudo airodump-ng wlan0

- choose channel of victim network

sudo airodump-ng -c 3 -w dump wlan0

- crack from file with captured packets (in case of 64b WEP - default is 128b)

sudo aircrack-ng -n 64 -b 00:11:22:33:44:55 dump-01.cap

--------------------------------------------------------------------------------------
WIFI SNIFFING

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor
sudo ifconfig wlan0 up
sudo iwconfig wlan0 channel x

--------------------------------------------------------------------------------------

LaTeX INSTALL

sudo apt-get install texlive texlive-lang-czechslovak - for czech language

Convert dvi to pdf: 
dvipdfm soubor.dvi

--------------------------------------------------------------------------------------

ISO FILE MOUNT

sudo mount -o loop -t iso9660 PHARAOH.iso /media/faraon/

--------------------------------------------------------------------------------------

ALIASES

edit file ~/.bashrc

--------------------------------------------------------------------------------------

LINK TO LINGEA LEXICON 2002

ok, absolutne nejcistsi reseni:


#!/bin/bash
cd /media/sda5/Programy/Lex2002/ && wine lexicon.exe &
exit 0


# cat <<'EOF'>mylexicon.sh // proved prikaz, pastni do terminalu tri radky vyse. Zmackni 2x enter a napis EOF a odklepni..
# chmod +x mylexicon.sh && rm `which lingea_lex.sh` ~/Desktop/Lingea
$ ln -sn `which mylexicon.sh` ~/Desktop/Lingea

--------------------------------------------------------------------------------------

LAN NETWORK CONFIGURATION ONLY BY IFCONFIG

ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
route add default gw ${GATEWAY}
nano -w /etc/resolv.conf -> write down nameservers:
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
example for xinetix network:
sudo ifconfig eth0 192.168.0.10 broadcast 192.168.0.255 netmask 255.255.255.0 up

another source:
ifconfig eth0 down
ifconfig eth0 vase_ip_adresa netmask vase_maska
route add default gateway vase_vychozi_brana
echo "nameserver vas_dns_server" >> /etc/resolv.conf
echo "nameserver vas_druhy_dns_server" >> /etc/resolv.conf

e.g:
sudo ifconfig eth0 192.168.0.140 broadcast 192.168.0.255 netmask 255.255.255.0 up
route add default gw 192.168.0.1

--------------------------------------------------------------------------------------

CPU & MEMORY INFO

sudo cat /proc/cpuinfo
sudo cat /proc/meminfo

--------------------------------------------------------------------------------------

TEXT FILES

create new file a.txt with "Hello" content
echo "Hello!" > a.txt

append new line to file
echo "Next line" >> a.txt

write file content to stout
cat a.txt

displays new line, word and bytes count of file
wc a.txt

displays number of logged users
who | grep wraith | wc -l

change encoding form utf8 to iso-8859-2
iconv -f UTF8 -t ISO_8859-2 a.txt -o b.txt
--------------------------------------------------------------------------------------

PROXY

firefox - edit -preferences - advanced - network - 156.17.10.51:3128 (http://www.proxz.com/proxy_list_port_std_0_ext.html)

--------------------------------------------------------------------------------------
FSTAB EXAMPLE

# /etc/fstab: static file system information.
#
#                                      
proc            /proc           proc          defaults                          0       0
/dev/sda6       /               ext3          defaults,errors=remount-ro        0       0
/dev/sda1       /media/sda1     ntfs          defaults,silent,umask=007,gid=46  0       0
/dev/sda5       /media/sda5     ntfs          defaults,silent,umask=007,gid=46  0       0
/dev/sda7       none            swap          sw                                0       0
/dev/scd0       /media/cdrom0   udf,iso9660   user,noauto,exec                  0       0

--------------------------------------------------------------------------------------


  ___ _____ _   _ _____ ____    ____ _____ _   _ _____ _____
 / _ \_   _| | | | ____|  _ \  / ___|_   _| | | |  ___|  ___|
| | | || | | |_| |  _| | |_) | \___ \ | | | | | | |_  | |_
| |_| || | |  _  | |___|  _ <   ___) || | | |_| |  _| |  _|
 \___/ |_| |_| |_|_____|_| \_\ |____/ |_|  \___/|_|   |_|


Other Stuff
--------------------------------------------------------------------------------------------

BOOTH-KUNOVSKY ALGHORITM

-0.25 * 0.5:

-------------------

 0.25 = (0.0100)b
-0.25 = (1.1011 + 1 = 1.1100)b        ... two's complement
 0.5  = (0.1000)b

-------------------

two right bit from the first multiplicated number:

00   ~   C = C + 0
11   ~   C = C + 0
10   ~   C = C + B
01   ~   C = C + A
-------------------

A =      0.1000                       ... second multiplicated number
B = -A = 1.1000                       ... second multiplicated number negated

-------------------

START:
    11100
  * 01000
   -------
    00000    -> start: C = 0; 00 ~ C = C + 0;
    00000
   -------
    00000
----------
    00000    -> right arithmetic shift (sar); 00 ~ C = C + 0;
    00000
   -------
    00000
----------
    00000    -> sar; 10 ~ C = C + B
    11000
   -------
    11000
----------
    11100    -> sar; 11 ~ C = C + 0
    00000
   -------
    11100
----------
    11110    -> sar; 11 ~ C = C + 0
    00000
   -------
    11110    -> RESULT

(1.1110)b -> 0.0001 + 1 = 0.0010 => -0.125 = -0.25 * 0.5
                                    =======

--------------------------------------------------------------------------------------------

DIVISION ALHORITM: DIVISION -> MULTIPLICATION

theory:

Q = N/D
N < D < 1
D = 1 - w
Q = N/(1-w)
Q = N(1+w)/(1-w)(1+w) = N(1+w)/(1-w^2)
Q = N(1+w)(1+w^2)/(1-w^2)(1+w^2) = .../(1-w)^4
w < 1, w^4 << 1
Q = N(1+w)(1+w^2)(1+w^4)(1+w^8).../1

example:

Q = 85/94 = 0.85/0.94 = 0.904255319
w = 1 - 0.94 = 0.06
w^2 = 0.0036
w^4 = 0.00001296
Q = 0.85(1+0.06)(1+0.0036)(1+0.00001296)
Q = 0.901(1+0.0036)(1+0.00001296)
Q = 0.9042436(1+0.00001296)
Q = 0.904266392

--------------------------------------------------------------------------------------------

C funkce mocnina s osetrenym pretecenim:

//umocni zaklad na exponent
//v pripade chyby - preteceni vraci nulu (nula nemuze byt korektni vysledek)
unsigned long long mocnina(int zaklad, int exponent)
{
  int i;
  unsigned long long tmp, vysledek = 1;

  for(i = 0; i < exponent; i++)
  {
    //vysledek *= zaklad;
    tmp = vysledek;
    vysledek = vysledek * zaklad;

    //kontrola preteceni
    if (!(vysledek / zaklad == tmp ))
      return 0;
  }

  return vysledek;
}



--------------------------------------------------------------------------------------------
 _   _                         _     _ _     _              _
| \ | | ___  _ __  _ __  _   _| |__ | (_)___| |__   ___  __| |
|  \| |/ _ \| '_ \| '_ \| | | | '_ \| | / __| '_ \ / _ \/ _` |
| |\  | (_) | | | | |_) | |_| | |_) | | \__ \ | | |  __/ (_| |
|_| \_|\___/|_| |_| .__/ \__,_|_.__/|_|_|___/_| |_|\___|\__,_|


Nonpublished
--------------------------------------------------------------------------------------------

...