ΠΠ΅ΠΉΡ ΠΡΠΊ (Kees Cook), Π±ΡΠ²ΡΠΈΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ kernel.org ΠΈ Π»ΠΈΠ΄Π΅Ρ Ubuntu Security Team, ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΠ°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌ Π² ΡΠ΄ΡΠΎ Linux. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° 16-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΄ΡΠ΅ Linux, ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π²ΡΠ΅Π³ΠΎΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ°, Π½ΠΎ Π½Π΅ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΠΈΠ½ΡΡΠΎΠΌ Π’ΠΎΡΠ²Π°Π»ΡΠ΄ΡΠΎΠΌ.
Π‘ΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΡΡ 12 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΡ Ρ ΡΡΠ° SHA-1 (48 Π±ΠΈΡ ΠΈΠ· 160 Π±ΠΈΡ). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ΄ΡΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· Ρ ΡΡ SHA-1, ΠΏΡΠ΅Π²ΡΡΠΈΠ»ΠΎ 13 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ², Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ 12-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΡΡΠ°Π»ΠΎ Π΄Π΅Π»ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ΄ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠ΅ΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ 11-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 12-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΆΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π² ΠΎΠΊΡΡΠ±ΡΠ΅, Π½ΠΎ Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΡΡΠ° Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ checkpatch.
Π‘ΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅Π³Π΅ «Fixes», Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΡΠ°Π½Π΅Π½Π° Π² ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠ°ΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «Fixes: e21d2170f366»). ΠΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΎΠ² «Fixes». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ check_fixes, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π² Π²Π΅ΡΠΊΠ΅ linux-next, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΠ°ΡΡΠ΅ΠΉ.
ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΡΠΊΠ΅ΠΏΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ½ΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 1/8). Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ, ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π»ΠΎΠ±ΠΎΠΌ ΠΈΠ»ΠΈ Π²Π΅ΡΠΊΠΎΠΉ). ΠΠΎ Π΅Π³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π½Π° ΡΠΎ ΠΈ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠ΅, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌΠΈ, ΡΠΈΡΠ°Π΅ΠΌΡΠΌΠΈ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ, ΠΈ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠ° Π½Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΎΠΊ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΠΈΡΠ»Π° Π·Π½Π°ΡΠΈΠΌΡΡ Π±ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Base36 (ΡΠΈΠΌΠ²ΠΎΠ»Ρ 0-9a-z) Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡ. ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΠΈΠ½ΡΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π² ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΈ Π²Π²Π΅ΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΠΉ ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΌΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈ Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠΎΠΈΡ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ, ΠΠ΅ΠΉΡ ΠΡΠΊ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ°, ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ (1da177e4c3f4) ΡΠΎΠ²ΠΏΠ°Π» Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ ΡΠ΄ΡΠ° 2.6.12-rc2. ΠΠΎΠ»Π»ΠΈΠ·ΠΈΡ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ Π·Π° 6 ΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ GPU NVIDIA GeForce RTX 3080.
ΠΠΎΠ΄Π±ΠΎΡ Π±ΡΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ lucky-commit — Π² ΡΠ΅ΠΊΡΡ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° 12-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ SHA-1 Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π» Ρ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π²ΡΠΈΠΌΠΈΡΡ Π² ΡΠ΄ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΠ΅ΠΉΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π² Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ
ΡΠ΅Π»ΡΡ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru