Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΎΡ Collabora
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Linux Π²Π΅ΡΠ΅ ΠΈΠΌΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ ΠΊΡΠΌ ΡΠ»ΡΡΠ°Π»ΠΊΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ (Vulkan ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ VK_EXT_acquire_xlib_display Π·Π° X11 ΠΈ VK_EXT_acquire_wl_display Π·Π° Wayland), Π½ΠΎ Π½ΡΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π² 3D ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π°. Π¦Π΅Π»ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° xrdesktop Π΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΡΠΎΠΊΡΡΠΈΡΠ°Π½ΠΈ Π²ΡΡΡ Ρ XNUMXD Π΅ΠΊΡΠ°Π½Π΅Π½ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈ ΠΌΠΈΡΠΊΠ° Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° xrdesktop ΡΠ°Π·ΡΠΈΡΡΠ²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ½ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ Π² 3D Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ. xrdesktop ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΈΡΠ° ΠΈΠ΄Π΅ΡΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡ, Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Ρ XNUMXD ΠΊΠ°ΡΠΊΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Ρ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠ»ΠΎΡ, Π½ΠΎ Π½Π° Π½Π°ΡΡΠΎΡΡΠΈΡ Π΅ΡΠ°ΠΏ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ»ΡΡΠ°Π»ΠΊΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π·Π° KDE ΠΈ GNOME. ΠΠ° KDE ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° 3D ΡΠ»Π΅ΠΌΠΎΠ²Π΅ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· ΠΏΠ»ΡΠ³ΠΈΠ½, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Compiz, Π° Π·Π° GNOME ΡΡΠ΅Π· Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΡΠΎΠ²Π΅ Π·Π° GNOME Shell. Π’Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΎΡΡΠ°Π·ΡΠ²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π½Π° 3D ΠΊΠ°ΡΠΊΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π½Π°ΡΠ»Π°Π³Π²Π°Π½Π΅, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠ»ΠΎΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ Π²ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅, xrdesktop ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΈ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΠΊΠ°ΡΠΎ Valve Index ΠΈ VIVE Wand. Xrdesktop ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ VR ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, Π·Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΡΠΈΠΌΡΠ»ΠΈΡΠ°ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈ ΠΌΠΈΡΠΊΠ°.
xrdesktop Π²ΠΊΠ»ΡΡΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΡΠ΅ΠΊΡΡΡΡΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° VR Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° OpenVR, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° API ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠ»ΠΎΡ Π² 3D ΡΡΠ΅Π΄Π°. Π’ΡΠΉ ΠΊΠ°ΡΠΎ xrdesktop Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ (xrdesktop ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ X11 ΠΈΠ»ΠΈ Wayland). ΠΡ ΡΡΡΠ°Π½Π° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Vulkan API ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ VK_KHR_external_memory.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° xrdesktop:
-
Π³ΡΠ»ΠΊΠ°Π½ - glib binding Π·Π° Vulkan, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅Ρ ΠΈΠ»ΠΈ DMA Π±ΡΡΠ΅ΡΠΈ; -
gxr β API Π·Π° Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ OpenVR, Π½ΠΎ Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° OpenXR; -
libinputsynth β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΠΊΠ°ΡΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΡΠΊΠ°ΡΠ°, ΠΊΠ»ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΈΡΠΊΠ°Π½ΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° xdo, xi2 ΠΈ Clutter; -
xrdesktop β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π² 3D ΡΡΠ΅Π΄Π°, Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°Π²Π°ΡΠΈ ΡΠΈΠ΄ΠΆΠ΅ΡΠΈ ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠ°; -
kwin-Π΅ΡΠ΅ΠΊΡ-xrdesktop ΠΈkdeplasma-applets-xrdesktop β ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° KWin Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ KDE ΠΈ ΠΏΠ»Π°Π·ΠΌΠ΅Π½ Π°ΠΏΠ»Π΅Ρ Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° KWin Π² ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° 3D ΡΠ»Π΅ΠΌ; -
gnome-shell patchset ΠΈgnome-shell-extension-xrdesktop β Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΡΠΎΠ²Π΅ Π·Π° GNOME Shell Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° xrdesktop ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠ° Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄ ΠΊΡΠΌ 3D ΡΠ»Π΅ΠΌ Π² GNOME Shell.
ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠ»ΠΎΡ ΠΈ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π·Π°ΡΠ½Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ, ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅, Π·Π°Π²ΡΡΡΠ°Π½Π΅, Π½Π°ΡΠ»Π°Π³Π²Π°Π½Π΅ Π²ΡΡΡ Ρ ΡΡΠ΅ΡΠ°, Π·Π°ΠΊΡΠ΅ΠΏΠ²Π°Π½Π΅ ΠΈ ΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΎΡΠΎ ΠΌΠ΅Π½Ρ ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ Π΄Π²Π΅ ΡΡΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru