Commit cc47cf31 authored by Lukáš Krupčík's avatar Lukáš Krupčík

oprava

parent 198f6972
Pipeline #1972 passed with stages
in 51 seconds
VNC
===
# VNC
The **Virtual Network Computing** (**VNC**) is a graphical [desktop sharing](http://en.wikipedia.org/wiki/Desktop_sharing "Desktop sharing") system that uses the [Remote Frame Buffer protocol (RFB)](http://en.wikipedia.org/wiki/RFB_protocol "RFB protocol") to remotely control another [computer](http://en.wikipedia.org/wiki/Computer "Computer"). It transmits the [keyboard](http://en.wikipedia.org/wiki/Computer_keyboard "Computer keyboard") and [mouse](http://en.wikipedia.org/wiki/Computer_mouse") events from one computer to another, relaying the graphical [screen](http://en.wikipedia.org/wiki/Computer_screen "Computer screen") updates back in the other direction, over a [network](http://en.wikipedia.org/wiki/Computer_network "Computer network").
The recommended clients are [TightVNC](http://www.tightvnc.com) or [TigerVNC](http://sourceforge.net/apps/mediawiki/tigervnc/index.php?title=Main_Page) (free, open source, available for almost any platform).
Create VNC password
-------------------
## Create VNC password
!!! Note "Note"
Local VNC password should be set before the first login. Do use a strong password.
Local VNC password should be set before the first login. Do use a strong password.
```bash
[username@login2 ~]$ vncpasswd
......@@ -17,13 +15,12 @@ Password:
Verify:
```
Start vncserver
---------------
## Start vncserver
!!! Note "Note"
To access VNC a local vncserver must be started first and also a tunnel using SSH port forwarding must be established.
To access VNC a local vncserver must be started first and also a tunnel using SSH port forwarding must be established.
[See below](vnc.md#linux-example-of-creating-a-tunnel) for the details on SSH tunnels. In this example we use port 61.
[See below](vnc.md#linux-example-of-creating-a-tunnel) for the details on SSH tunnels. In this example we use port 61.
You can find ports which are already occupied. Here you can see that ports " /usr/bin/Xvnc :79" and " /usr/bin/Xvnc :60" are occupied.
......@@ -67,10 +64,9 @@ username 10296 0.0 0.0 131772 21076 pts/29 SN 13:01 0:01 /usr/bin/Xvn
To access the VNC server you have to create a tunnel between the login node using TCP **port 5961** and your machine using a free TCP port (for simplicity the very same, in this case).
!!! Note "Note"
The tunnel must point to the same login node where you launched the VNC server, eg. login2. If you use just cluster-name.it4i.cz, the tunnel might point to a different node due to DNS round robin.
The tunnel must point to the same login node where you launched the VNC server, eg. login2. If you use just cluster-name.it4i.cz, the tunnel might point to a different node due to DNS round robin.
Linux/Mac OS example of creating a tunnel
-----------------------------------------
## Linux/Mac OS example of creating a tunnel
At your machine, create the tunnel:
......@@ -109,8 +105,7 @@ You have to destroy the SSH tunnel which is still running at the background afte
kill 2022
```
Windows example of creating a tunnel
------------------------------------
## Windows example of creating a tunnel
Use PuTTY to log in on cluster.
......@@ -133,29 +128,25 @@ Fill the Source port and Destination fields. **Do not forget to click the Add bu
Run the VNC client of your choice, select VNC server 127.0.0.1, port 5961 and connect using VNC password.
Example of starting TigerVNC viewer
-----------------------------------
## Example of starting TigerVNC viewer
![](../../../img/vncviewer.png)
In this example, we connect to VNC server on port 5961, via the ssh tunnel, using TigerVNC viewer. The connection is encrypted and secured. The VNC server listening on port 5961 provides screen of 1600x900 pixels.
Example of starting TightVNC Viewer
-----------------------------------
## Example of starting TightVNC Viewer
Use your VNC password to log using TightVNC Viewer and start a Gnome Session on the login node.
![](../../../img/TightVNC_login.png)
Gnome session
-------------
## Gnome session
You should see after the successful login.
![](../../../img/gnome_screen.png)
Disable your Gnome session screensaver
--------------------------------------
## Disable your Gnome session screensaver
Open Screensaver preferences dialog:
......@@ -165,8 +156,7 @@ Uncheck both options below the slider:
![](../../../img/gdmdisablescreensaver.png)
Kill screensaver if locked screen
---------------------------------
## Kill screensaver if locked screen
If the screen gets locked you have to kill the screensaver. Do not to forget to disable the screensaver then.
......@@ -178,8 +168,7 @@ username 24316 0.0 0.0 270564 3528 ? Ss 14:12 0:00 gnome-scree
[username@login2 .vnc]$ kill 24316
```
Kill vncserver after finished work
----------------------------------
## Kill vncserver after finished work
You should kill your VNC server using command:
......@@ -195,8 +184,7 @@ Or this way:
[username@login2 .vnc]$ pkill vnc
```
GUI applications on compute nodes over VNC
------------------------------------------
## GUI applications on compute nodes over VNC
The very same methods as described above, may be used to run the GUI applications on compute nodes. However, for maximum performance, proceed following these steps:
......
X Window System
===============
# X Window System
The X Window system is a principal way to get GUI access to the clusters. The **X Window System** (commonly known as **X11**, based on its current major version being 11, or shortened to simply **X**, and sometimes informally **X-Windows**) is a computer software system and network [protocol](http://en.wikipedia.org/wiki/Protocol_%28computing%29 "Protocol (computing)") that provides a basis for [graphical user interfaces](http://en.wikipedia.org/wiki/Graphical_user_interface "Graphical user interface") (GUIs) and rich input device capability for [networked computers](http://en.wikipedia.org/wiki/Computer_network "Computer network").
!!! Note "Note"
The X display forwarding must be activated and the X server running on client side
!!! tip
The X display forwarding must be activated and the X server running on client side
X display
---------
## X display
In order to display graphical user interface GUI of various software tools, you need to enable the X display forwarding. On Linux and Mac, log in using the -X option tho ssh client:
......@@ -15,10 +13,9 @@ In order to display graphical user interface GUI of various software tools, you
local $ ssh -X username@cluster-name.it4i.cz
```
X Display Forwarding on Windows
-------------------------------
## X Display Forwarding on Windows
On Windows use the PuTTY client to enable X11 forwarding. In PuTTY menu, go to Connection->SSH->X11, mark the Enable X11 forwarding checkbox before logging in. Then log in as usual.
On Windows use the PuTTY client to enable X11 forwarding. In PuTTY menu, go to Connection-SSH-X11, mark the Enable X11 forwarding checkbox before logging in. Then log in as usual.
To verify the forwarding, type
......@@ -34,18 +31,15 @@ localhost:10.0
then the X11 forwarding is enabled.
X Server
--------
## X Server
In order to display graphical user interface GUI of various software tools, you need running X server on your desktop computer. For Linux users, no action is required as the X server is the default GUI environment on most Linux distributions. Mac and Windows users need to install and run the X server on their workstations.
X Server on OS X
----------------
## X Server on OS X
Mac OS users need to install [XQuartz server](https://www.xquartz.org).
X Server on Windows
-------------------
## X Server on Windows
There are variety of X servers available for Windows environment. The commercial Xwin32 is very stable and rich featured. The Cygwin environment provides fully featured open-source XWin X server. For simplicity, we recommend open-source X server by the [Xming project](http://sourceforge.net/projects/xming/). For stability and full features we recommend the
[XWin](http://x.cygwin.com/) X server by Cygwin
......@@ -56,11 +50,10 @@ There are variety of X servers available for Windows environment. The commercial
Read more on [http://www.math.umn.edu/systems_guide/putty_xwin32.html](http://www.math.umn.edu/systems_guide/putty_xwin32.shtml)
Running GUI Enabled Applications
--------------------------------
## Running GUI Enabled Applications
!!! Note "Note"
Make sure that X forwarding is activated and the X server is running.
Make sure that X forwarding is activated and the X server is running.
Then launch the application as usual. Use the & to run the application in background.
......@@ -75,8 +68,7 @@ $ xterm
In this example, we activate the intel programing environment tools, then start the graphical gvim editor.
GUI Applications on Compute Nodes
---------------------------------
## GUI Applications on Compute Nodes
Allocate the compute nodes using -X option on the qsub command
......@@ -94,13 +86,11 @@ $ ssh -X r24u35n680
In this example, we log in on the r24u35n680 compute node, with the X11 forwarding enabled.
The Gnome GUI Environment
-------------------------
## The Gnome GUI Environment
The Gnome 2.28 GUI environment is available on the clusters. We recommend to use separate X server window for displaying the Gnome environment.
Gnome on Linux and OS X
-----------------------
## Gnome on Linux and OS X
To run the remote Gnome session in a window on Linux/OS X computer, you need to install Xephyr. Ubuntu package is
xserver-xephyr, on OS X it is part of [XQuartz](http://xquartz.macosforge.org/landing/). First, launch Xephyr on local machine:
......@@ -126,8 +116,7 @@ xinit /usr/bin/ssh -XT -i .ssh/path_to_your_key yourname@cluster-namen.it4i.cz g
However this method does not seem to work with recent Linux distributions and you will need to manually source
/etc/profile to properly set environment variables for PBS.
Gnome on Windows
----------------
## Gnome on Windows
Use Xlaunch to start the Xming server or run the XWin.exe. Select the "One window" mode.
......@@ -139,8 +128,7 @@ $ gnome-session &
In this way, we run remote gnome session on the cluster, displaying it in the local X server
Use System->Log Out to close the gnome-session
Use System-Log Out to close the gnome-session
### If no able to forward X11 using PuTTY to CygwinX
......@@ -162,7 +150,7 @@ PuTTY X11 proxy: unable to connect to forwarded X server: Network error: Connect
![XWin-listen-tcp.png](../../../img/XWinlistentcp.png "XWin-listen-tcp.png")
2. Check Putty settings:
1. Check Putty settings:
Enable X11 forwarding
![](../../../img/cygwinX11forwarding.png)
Accessing the Clusters
======================
# Accessing the Clusters
The IT4Innovations clusters are accessed by SSH protocol via login nodes.
!!! Note "Note"
Read more on [Accessing the Salomon Cluster](../../salomon/shell-and-data-access.md) or [Accessing the Anselm Cluster](../../anselm-cluster-documentation/shell-and-data-access.md) pages.
Read more on [Accessing the Salomon Cluster](../../salomon/shell-and-data-access.md) or [Accessing the Anselm Cluster](../../anselm-cluster-documentation/shell-and-data-access.md) pages.
PuTTY
-----
## PuTTY
On **Windows**, use [PuTTY ssh client](shell-access-and-data-transfer/putty/).
SSH keys
--------
## SSH keys
Read more about [SSH keys management](shell-access-and-data-transfer/ssh-keys/).
Graphical User Interface
------------------------
## Graphical User Interface
Read more about [X Window System](./graphical-user-interface/x-window-system/).
Read more about [Virtual Network Computing (VNC)](./graphical-user-interface/vnc/).
Accessing IT4Innovations internal resources via VPN
---------------------------------------------------
## Accessing IT4Innovations internal resources via VPN
Read more about [VPN Access](vpn-access/).
# PuTTY (Windows)
Windows PuTTY Installer
-----------------------
## Windows PuTTY Installer
We recommned you to download "**A Windows installer for everything except PuTTYtel**" with **Pageant** (SSH authentication agent) and **PuTTYgen** (PuTTY key generator) which is available [here](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html).
!!! Note "Note"
After installation you can proceed directly to private keys authentication using ["Putty"](putty#putty).
After installation you can proceed directly to private keys authentication using ["Putty"](putty#putty).
"Change Password for Existing Private Key" is optional.
......@@ -14,53 +13,49 @@ We recommned you to download "**A Windows installer for everything except PuTTYt
"Pageant" is optional.
PuTTY - how to connect to the IT4Innovations cluster
----------------------------------------------------
## PuTTY - how to connect to the IT4Innovations cluster
- Run PuTTY
- Enter Host name and Save session fields with [Login address](../../../salomon/shell-and-data-access.md) and browse Connection - > SSH -> Auth menu. The *Host Name* input may be in the format **"username@clustername.it4i.cz"** so you don't have to type your login each time.In this example we will connect to the Salomon cluster using **"salomon.it4i.cz"**.
* Run PuTTY
* Enter Host name and Save session fields with [Login address](../../../salomon/shell-and-data-access.md) and browse Connection - SSH - Auth menu. The *Host Name* input may be in the format **"username@clustername.it4i.cz"** so you don't have to type your login each time.In this example we will connect to the Salomon cluster using **"salomon.it4i.cz"**.
![](../../../img/PuTTY_host_Salomon.png)
- Category -> Connection - > SSH -> Auth:
* Category - Connection - SSH - Auth:
Select Attempt authentication using Pageant.
Select Allow agent forwarding.
Browse and select your [private key](ssh-keys/) file.
![](../../../img/PuTTY_keyV.png)
- Return to Session page and Save selected configuration with *Save* button.
* Return to Session page and Save selected configuration with *Save* button.
![](../../../img/PuTTY_save_Salomon.png)
- Now you can log in using *Open* button.
* Now you can log in using *Open* button.
![](../../../img/PuTTY_open_Salomon.png)
- Enter your username if the *Host Name* input is not in the format "username@salomon.it4i.cz".
- Enter passphrase for selected [private key](ssh-keys/) file if Pageant **SSH authentication agent is not used.**
* Enter your username if the *Host Name* input is not in the format "username@salomon.it4i.cz".
* Enter passphrase for selected [private key](ssh-keys/) file if Pageant **SSH authentication agent is not used.**
Another PuTTY Settings
----------------------
## Another PuTTY Settings
- Category -> Windows -> Translation -> Remote character set and select **UTF-8**.
- Category -> Terminal -> Features and select **Disable application keypad mode** (enable numpad)
- Save your configuration on Session page in to Default Settings with *Save* button.
* Category - Windows - Translation - Remote character set and select **UTF-8**.
* Category - Terminal - Features and select **Disable application keypad mode** (enable numpad)
* Save your configuration on Session page in to Default Settings with *Save* button.
Pageant SSH agent
-----------------
## Pageant SSH agent
Pageant holds your private key in memory without needing to retype a passphrase on every login.
- Run Pageant.
- On Pageant Key List press *Add key* and select your private key (id_rsa.ppk).
- Enter your passphrase.
- Now you have your private key in memory without needing to retype a passphrase on every login.
* Run Pageant.
* On Pageant Key List press *Add key* and select your private key (id_rsa.ppk).
* Enter your passphrase.
* Now you have your private key in memory without needing to retype a passphrase on every login.
![](../../../img/PageantV.png)
PuTTY key generator
-------------------
## PuTTY key generator
PuTTYgen is the PuTTY key generator. You can load in an existing private key and change your passphrase or generate a new public/private key pair.
......@@ -68,11 +63,11 @@ PuTTYgen is the PuTTY key generator. You can load in an existing private key and
You can change the password of your SSH key with "PuTTY Key Generator". Make sure to backup the key.
- Load your [private key](../shell-access-and-data-transfer/ssh-keys/) file with *Load* button.
- Enter your current passphrase.
- Change key passphrase.
- Confirm key passphrase.
- Save your private key with *Save private key* button.
* Load your [private key](../shell-access-and-data-transfer/ssh-keys/) file with *Load* button.
* Enter your current passphrase.
* Change key passphrase.
* Confirm key passphrase.
* Save your private key with *Save private key* button.
![](../../../img/PuttyKeygeneratorV.png)
......@@ -80,33 +75,33 @@ You can change the password of your SSH key with "PuTTY Key Generator". Make sur
You can generate an additional public/private key pair and insert public key into authorized_keys file for authentication with your own private key.
- Start with *Generate* button.
* Start with *Generate* button.
![](../../../img/PuttyKeygenerator_001V.png)
- Generate some randomness.
* Generate some randomness.
![](../../../img/PuttyKeygenerator_002V.png)
- Wait.
* Wait.
![](../../../img/PuttyKeygenerator_003V.png)
- Enter a *comment* for your key using format 'username@organization.example.com'.
* Enter a *comment* for your key using format 'username@organization.example.com'.
Enter key passphrase.
Confirm key passphrase.
Save your new private key `in "*.ppk" `format with *Save private key* button.
Save your new private key in "*.ppk" format with *Save private key* button.
![](../../../img/PuttyKeygenerator_004V.png)
- Save the public key with *Save public key* button.
* Save the public key with *Save public key* button.
You can copy public key out of the ‘Public key for pasting into authorized_keys file’ box.
![](../../../img/PuttyKeygenerator_005V.png)
- Export private key in OpenSSH format "id_rsa" using Conversion -> Export OpenSSH key
* Export private key in OpenSSH format "id_rsa" using Conversion - Export OpenSSH key
![](../../../img/PuttyKeygenerator_006V.png)
- Now you can insert additional public key into authorized_keys file for authentication with your own private key.
* Now you can insert additional public key into authorized_keys file for authentication with your own private key.
You must log in using ssh key received after registration. Then proceed to [How to add your own key](../shell-access-and-data-transfer/ssh-keys/).
......@@ -19,12 +19,11 @@ After logging in, you can see .ssh/ directory with SSH keys and authorized_keys
!!! Hint
Private keys in .ssh directory are without passphrase and allow you to connect within the cluster.
Access privileges on .ssh folder
--------------------------------
## Access privileges on .ssh folder
- .ssh directory: 700 (drwx------)
- Authorized_keys, known_hosts and public key (.pub file): 644 (-rw-r--r--)
- Private key (id_rsa/id_rsa.ppk): 600 (-rw-------)
* .ssh directory: 700 (drwx------)
* Authorized_keys, known_hosts and public key (.pub file): 644 (-rw-r--r--)
* Private key (id_rsa/id_rsa.ppk): 600 (-rw-------)
```bash
cd /home/username/
......@@ -36,8 +35,7 @@ Access privileges on .ssh folder
chmod 600 .ssh/id_rsa.ppk
```
Private key
-----------
## Private key
!!! Note "Note"
The path to a private key is usually /home/username/.ssh/
......@@ -76,8 +74,7 @@ An example of private key format:
-----END RSA PRIVATE KEY-----
```
Public key
----------
## Public key
Public key file in "*.pub" format is used to verify a digital signature. Public key is present on the remote side and allows access to the owner of the matching private key.
......@@ -87,8 +84,7 @@ An example of public key format:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpujuOiTKCcGkbbBhrk0Hjmezr5QpM0swscXQE7fOZG0oQSURoapd9tjC9eVy5FvZ339jl1WkJkdXSRtjc2G1U5wQh77VE5qJT0ESxQCEw0S+CItWBKqXhC9E7gFY+UyP5YBZcOneh6gGHyCVfK6H215vzKr3x+/WvWl5gZGtbf+zhX6o4RJDRdjZPutYJhEsg/qtMxcCtMjfm/dZTnXeafuebV8nug3RCBUflvRb1XUrJuiX28gsd4xfG/P6L/mNMR8s4kmJEZhlhxpj8Th0iIc+XciVtXuGWQrbddcVRLxAmvkYAPGnVVOQeNj69pqAR/GXaFAhvjYkseEowQao1 username@organization.example.com
```
How to add your own key
-----------------------
## How to add your own key
First, generate a new keypair of your public and private key:
......@@ -97,7 +93,7 @@ First, generate a new keypair of your public and private key:
```
!!! Note "Note"
Please, enter **strong** **passphrase** for securing your private key.
Please, enter **strong** **passphrase** for securing your private key.
You can insert additional public key into authorized_keys file for authentication with your own private key. Additional records in authorized_keys file must be delimited by new line. Users are not advised to remove the default public key from authorized_keys file.
......@@ -109,7 +105,6 @@ Example:
In this example, we add an additional public key, stored in file additional_key.pub into the authorized_keys. Next time we log in, we will be able to use the private addtional_key key to log in.
How to remove your own key
--------------------------
## How to remove your own key
Removing your key from authorized_keys can be done simply by deleting the corresponding public key which can be identified by a comment at the end of line (eg. *username@organization.example.com*).
VPN - Connection fail in Win 8.1
================================
# VPN - Connection fail in Win 8.1
**Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS patch**
## Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS patch
AnyConnect users on Windows 8.1 will receive a "Failed to initialize connection subsystem" error after installing the Windows 8.1 02/10/15 security patch. This OS defect introduced with the 02/10/15 patch update will also impact WIndows 7 users with IE11. Windows Server 2008/2012 are also impacted by this defect, but neither is a supported OS for AnyConnect.
**Workaround:**
## Workaround
- Close the Cisco AnyConnect Window and the taskbar mini-icon
- Right click vpnui.exe in the 'Cisco AnyConnect Secure Mobility Client' folder. (C:Program Files (x86)CiscoCisco AnyConnect Secure Mobility Client)
- Click on the 'Run compatibility troubleshooter' button
- Choose 'Try recommended settings'
- The wizard suggests Windows 8 compatibility.
- Click 'Test Program'. This will open the program.
- Close
* Close the Cisco AnyConnect Window and the taskbar mini-icon
* Right click vpnui.exe in the 'Cisco AnyConnect Secure Mobility Client' folder. (C:Program Files (x86)CiscoCisco AnyConnect Secure Mobility Client)
* Click on the 'Run compatibility troubleshooter' button
* Choose 'Try recommended settings'
* The wizard suggests Windows 8 compatibility.
* Click 'Test Program'. This will open the program.
* Close
![](../../../img/vpnuiV.png)
VPN Access
==========
# VPN Access
## Accessing IT4Innovations internal resources via VPN
Accessing IT4Innovations internal resources via VPN
---------------------------------------------------
For using resources and licenses which are located at IT4Innovations local network, it is necessary to VPN connect to this network. We use Cisco AnyConnect Secure Mobility Client, which is supported on the following operating systems:
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Linux
- MacOS
* Windows XP
* Windows Vista
* Windows 7
* Windows 8
* Linux
* MacOS
It is impossible to connect to VPN from other operating systems.
VPN client installation
------------------------------------
## VPN client installation
You can install VPN client from web interface after successful login with LDAP credentials on address <https://vpn.it4i.cz/user>
![](../../img/vpn_web_login.png)
......@@ -40,8 +39,7 @@ After you click on the link, download of installation file will start.
After successful download of installation file, you have to execute this tool with administrator's rights and install VPN client manually.
Working with VPN client
-----------------------
## Working with VPN client
You can use graphical user interface or command line interface to run VPN client on all supported operating systems. We suggest using GUI.
......
VPN Access
==========
# VPN Access
Accessing IT4Innovations internal resources via VPN
---------------------------------------------------
## Accessing IT4Innovations internal resources via VPN
!!! Note "Note"
**Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS patch**
**Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS patch**
Workaround can be found at [vpn-connection-fail-in-win-8.1](../../get-started-with-it4innovations/accessing-the-clusters/shell-access-and-data-transfer/vpn-connection-fail-in-win-8.1.html)
Workaround can be found at [vpn-connection-fail-in-win-8.1](../../get-started-with-it4innovations/accessing-the-clusters/shell-access-and-data-transfer/vpn-connection-fail-in-win-8.1.html)
For using resources and licenses which are located at IT4Innovations local network, it is necessary to VPN connect to this network. We use Cisco AnyConnect Secure Mobility Client, which is supported on the following operating systems:
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Linux
- MacOS
* Windows XP
* Windows Vista
* Windows 7
* Windows 8
* Linux
* MacOS
It is impossible to connect to VPN from other operating systems.
VPN client installation
------------------------------------
## VPN client installation
You can install VPN client from web interface after successful login with LDAP credentials on address <https://vpn1.it4i.cz/anselm>
......@@ -49,12 +46,11 @@ After you click on the link, download of installation file will start.
After successful download of installation file, you have to execute this tool with administrator's rights and install VPN client manually.
Working with VPN client
-----------------------
## Working with VPN client
You can use graphical user interface or command line interface to run VPN client on all supported operating systems. We suggest using GUI.
Before the first login to VPN, you have to fill URL **https://vpn1.it4i.cz/anselm** into the text field.
Before the first login to VPN, you have to fill URL [**https://vpn1.it4i.cz/anselm**](https://vpn1.it4i.cz/anselm) into the text field.
![](../img/firstrun.jpg)
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment