1. Perl6 рдореЗрдВ рдЪрд░ рдФрд░ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ2. рдкрд░реНрд▓ 6 - рдЪрд░, рдЕрдирд╛рдо рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди3. рдкрд░реНрд▓ 6 - рд╕рд╢рд░реНрдд рдХрдерди, рд▓реВрдк4. рдкрд░реНрд▓ 6 - рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ5. рдкрд░реНрд▓ 6 - рдХрдХреНрд╖рд╛рдПрдВ6. рдкрд░реНрд▓ 6 - рдЖрдИ / рдУ рдореЙрдбреНрдпреВрд▓7. рдкрд░реНрд▓ 6 - рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рд╢реНрд╡реЗрдд рд╕реНрдерд╛рди, рдХреЛрд╖реНрдардХ8. рдкрд░реНрд▓ 6 - рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ9. рдкрд░реНрд▓ 6 - рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛10. рдкрд░реНрд▓ 6 - рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧрдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдиреЗрд╕реНрдЯреЗрдб рдХреИрдЯрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реБрдЖ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдмреНрд▓реЙрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ - рдЪрд░рдг (рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред рдлрд╝реЗрдЬрд╝рд░реНрд╕ рд╡рд┐рд╢реЗрд╖ рдиреЗрд╕реНрдЯреЗрдб рдмреНрд▓реЙрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдкрдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рджреЗрдЦреЗрдВрдЧреЗред
рдлреЗрдЬрд░реЛрд╡ рдХреЗ рдореБрдЦреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- BEGIN {...} *
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдЧрдгрдирд╛ рдкрд░рд┐рдгрд╛рдо (рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
say "Test say"; my $block = BEGIN { say "Compile say"; "Compile time " ~ now; } say $block;
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрдХрд▓рди рд╕рдордп рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдмреНрд▓реЙрдХ рдмреНрд▓реЙрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдмреНрд▓реЙрдХ рдХреЛ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдЪрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦреЗрдВрдЧреЗ:
Compile say Test say Compile time Instant:1377026323.088
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж BEGIN рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИ:
say "Test say"; my $block = BEGIN { die "Compile die"; "Compile time " ~ now; } say $block;
рдлрд┐рд░ рд╕реНрдХреНрд░реАрди рдкрд░ рд╣рдо рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рдЯреЗрд╕реНрдЯ рдХрд╣рддреЗ рд╣реИрдВ" рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рддреБрд░рдВрдд "рдХрдВрдкрд╛рдЗрд▓ рдбрд╛рдИ", рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдмреАрдИрдЬреАрдЖрдИрдПрди рдмреНрд▓реЙрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред
рдЦреИрд░, рдЗрд╕ рд╕рдВрджреЗрд╣ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмреНрд▓реЙрдХ рдкрд░ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг:
say "Test say"; BEGIN { say "Compile say"; } say "Test say 2"; BEGIN { say "Compile say 2"; }
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦреЗрдВрдЧреЗ:
Compile say Compile say 2 Test say Test say 2
- рдЪреЗрдХ {...} *
рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреЛрдб рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛:
say "Test say"; BEGIN { say "Compile say"; } CHECK { say "Check say"; } say "Test say 2"; BEGIN { say "Compile say 2"; } CHECK { say "Check say 2"; }
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦреЗрдВрдЧреЗ:
Compile say Compile say 2 Check say 2 Check say Test say Test say 2
- INIT {...} *
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдкрд░ рдпрд╣ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ:
say "Test say"; BEGIN { say "Compile say"; } CHECK { say "Check say"; } INIT { say "Init say"; } say "Test say 2"; BEGIN { say "Compile say 2"; } CHECK { say "Check say 2"; } INIT { say "Init say 2"; }
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
Compile say Compile say 2 Check say 2 Check say Init say Init say 2 Test say Test say 2
- END {...}
рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЛрдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЪреЗрдХ рдореЗрдВ рдЙрд▓реНрдЯреЗ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдорд┐рд▓рд╛ рдерд╛, рдФрд░ рдПрдХ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд - рдпрд╣ рдмреНрд▓реЙрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдкрд░ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
say "Test say"; BEGIN { say "Compile say"; } CHECK { say "Check say"; } INIT { say "Init say"; } END { say "End say"; } say "Test say 2"; BEGIN { say "Compile say 2"; } CHECK { say "Check say 2"; } INIT { say "Init say 2"; } END { say "End say 2"; } die "test die";
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:
Compile say Compile say 2 Check say 2 Check say Init say Init say 2 Test say Test say 2 test die in block at bla\bla\bla\perl.p6:37 End say 2 End say
- рджрд░реНрдЬ рдХрд░реЗрдВ {...} *
рдпрд╣ рдмреНрд▓реЙрдХ рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЗ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ ENTER рдмреНрд▓реЙрдХ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ:
loop (my $i=0; $i <4; $i++) { ENTER { say $i; } say "Another loop entry"; } ENTER { say "Test Enter"; }
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:
Test Enter 0 Another loop entry 1 Another loop entry 2 Another loop entry 3 Another loop entry
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдлреЗрдЬрд╝рд░реНрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЫреЛрдбрд╝ рджрд┐рдпрд╛ {...}
рдЗрд╕реЗ рддрдм рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдмреНрд▓реЙрдХ рдЬрд┐рд╕рдореЗрдВ LEAVE рдШреЛрдВрд╕рд▓рд╛ рдерд╛ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ, рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЕрдзреНрдпрдпрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдерд╛ - рдЕрдЧрд░ рдореИрдВрдиреЗ рдЧрд▓рдд рдЬрдЧрд╣ рдЧрд▓рдд рдЬрдЧрд╣ рдбрд╛рд▓ рджреА рддреЛ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд▓рдЧреАрдВред рдФрд░ рд▓реЗрд╡реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдореИрдВрдиреЗ рдмрд╕ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореБрдЭреЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
loop (my $i=0; $i <4; $i++) { LEAVE { say "Test leave"; } say "Another loop entry"; }
рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ рдХреЛрдИ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдмреНрд▓реЙрдХ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд┐рд╕реНрд╕рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ:
- KEEP {...}
рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдкреВрд░реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рд╕рдлрд▓рддрд╛ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ)ред
- UNDO {...}
рдкрд┐рдЫрд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- FIRST {...} *
рдпрд╣ рдмреНрд▓реЙрдХ рдХреЗрд╡рд▓ рдЙрд╕ рдмреНрд▓реЙрдХ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ FIRST рдПрдореНрдмреЗрдбреЗрдб рд╣реИ:
loop (my $i=0; $i <4; $i++) { FIRST {say "Test keep";} say "Another loop entry"; }
рддрджрдиреБрд╕рд╛рд░, рдирд┐рд╖реНрдХрд░реНрд╖:
Test keep Another loop entry Another loop entry Another loop entry Another loop entry
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЕрд▓рдЧ рд╕реВрдЪреА рдореЗрдВ рд╡реЗ рдСрдкрд░реЗрдЯрд░ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдлрд╛рд╕рд░реНрд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ:
рдЦреИрд░, рд╢рд╛рдпрдж рдпрд╣ рдЦрддреНрдо рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рднреА рдПрдХ рд▓рдВрдмреА рдкреЛрд╕реНрдЯ рдирд┐рдХрд▓реА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХрд╛ рдЖрдирдВрдж рд▓рд┐рдпрд╛ред