рдПрдХ рдореЛрдмрд╛рдЗрд▓ MMORPG рдЦреЗрд▓рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдирдореВрдирд╛ рд╡рд┐рд╖рдп:
- рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдкрд╛рд░реНрд╕ рд╕рдВрджреЗрд╢ рд╕реНрд╡рд░реВрдкред
- рдЧреЗрдо рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдирдиреЗ рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рдЦрдирд╛ред
- рдЧреИрд░-HTTP рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЕрд╡рд░реЛрдзрди рдФрд░ рдЗрд╕рдХрд╛ рд╕рдВрд╢реЛрдзрдиред
- рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ ("рдкрд╛рдпрд░реЗрдЯреЗрдб") рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдоред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ
рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред рд░реБрдЪрд┐, рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ред
рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг
рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- рдкреАрд╕реА (рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ 7/10 рдкрд░ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдХрдУрдПрд╕ рдмрд╣реБрдд рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдиреАрдЪреЗ рдХреА рд╡рд╕реНрддреБрдПрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВ);
- рдкреИрдХреЗрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд░реЗрдЪрдХ;
- рдЯреЗрдореНрдкрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЯ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 010Editor (рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ);
- рдЦреЗрд▓ рдХреЗ рд╕рд╛рде рд╣реА рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╛рде рдореЗрдВ рдЦреЗрд▓ рд╕реЗ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ, рдкреНрд░рд╛рдгрд┐рдпреЛрдВ рдЖрджрд┐ рдХреА рд╕реВрдЪреА рд╣реЛрдирд╛ рдмрд╣реБрдд рд╣реА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдпрд╣ рд╕рдВрдХреБрд▓ рдореЗрдВ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЦреЛрдЬ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЗ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрджреЗрд╢ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдкрджрдЪреНрдЫреЗрдж рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдгрдп рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛): рд╣рдорд╛рд░реЗ рдкреАрд╕реА рдкрд░ рд╣рдо рдПрдХ рд╡рд╛рдИ-рдлрд╛рдИ рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рдВрдбрд╕рд░ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ - рдФрд░ рд╣рдорд╛рд░реА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рд╕рднреА рдореЛрдмрд╛рдЗрд▓ рд╣реИрдВред
рдЦреЗрд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рддрд╛рдХрд┐ рдЦреЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреБрдж рд╣реА рд░реЛрдХ рди рджрд┐рдпрд╛ рдЬрд╛рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреЗрдо рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдХреЗрд╡рд▓ рдкреИрдХреЗрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбрд╕рд░ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХреЗрд╡рд▓ рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде:
tcp && tcp.payload && tcp.port == 44325
рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдФрд░ рдПрдирдкреАрд╕реА рд╕реЗ рджреВрд░ рдПрдХ рд╢рд╛рдВрдд рдЬрдЧрд╣ рдкрд░ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рд╕рдВрджреЗрд╢ рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдХрд╛рд░ 76 рдФрд░ 84 рдмрд╛рдЗрдЯреНрд╕, рдХреНрд░рдорд╢рдГ)ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪрд░рд┐рддреНрд░ рдЪрдпрди рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкреИрдХреЗрдЬреЛрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рднреЗрдЬреА рдЧрдИ рдереАред

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрджреЗрд╢ рджреЗрдВ (3 рд╕рдореВрд╣, рдКрдкрд░ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ, рдиреАрдЪреЗ рдпрд╣ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ):
рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рд╕рдВрдХреБрд▓ рдХреА рдкрд╣рдЪрд╛рди рд╣реИред рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 8 рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рд╕реЗрдХрдВрдб рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рдорд╛рди рд╣реИрдВ:
5CD008F8 16 = 1557137656 10
(рдкрд╣рд▓реА рдЬреЛрдбрд╝реА рд╕реЗ)ред
рд╣рдо рдШрдбрд╝реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ - рд╣рд╛рдВ, рдпрд╣ рд╣реИред рдкрд┐рдЫрд▓реЗ 4 рдмрд╛рдЗрдЯреНрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрдВрддрд┐рдо 4 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
A4BB 16 = 42171 10
, рдЬреЛ рд╕рдордп рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рднреАред рдпрд╣ рдЦреЗрд▓ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд╕рдордп рд╕реЗ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдпрд╣ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд╣рд▓реЗ 6 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рд╕рдВрджреЗрд╢ рдХреЗ рдкрд╣рд▓реЗ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдорд╛рди рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдЖрдЗрдП рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░
L
рдХреЙрд▓ рдХрд░реЗрдВ) рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдХрд╛рд░ рдкрд░: рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 8 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ,
L
рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рднреА 8 рд╕реЗ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреИрдХреЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ
L
рдХреЗ рдореВрд▓реНрдп рдХреЗ 6 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
L
рдмрд╛рдж рдХреЗ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рдореВрд▓реНрдп рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЙрдирдХрд╛ рдореВрд▓реНрдп рдПрдХ рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рд╣рдо рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрджреЗрд╢ рдХреЛрдб
C
(рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢ рдХреЛрдб рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ)ред рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд░рдЪрдирд╛ 010Editor рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ:
- рдкрд╣рд▓реЗ 4 рдмрд╛рдЗрдЯреНрд╕ -
L
- рд╕рдВрджреЗрд╢ рдкреЗрд▓реЛрдб рдЖрдХрд╛рд░; - рдЕрдЧрд▓реЗ 2 рдмрд╛рдЗрдЯреНрд╕ -
C
- рд╕рдВрджреЗрд╢ рдХреЛрдб; - рдкреЗрд▓реЛрдб рд╣реАред
struct Event { uint payload_length <bgcolor=0xFFFF00, name="Payload Length">; ushort event_code <bgcolor=0xFF9988, name="Event Code">; byte payload[payload_length] <name="Event Payload">; };
рдЗрд╕рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд┐рдВрдЧ рд╕рдВрджреЗрд╢ рдХрд╛ рдкреНрд░рд╛рд░реВрдк: рд╕реНрдерд╛рдиреАрдп рдкрд┐рдВрдЧ рд╕рдордп рднреЗрдЬреЗрдВ; рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк: рд╕реЗрдХрдВрдб рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рд╣реА рд╕рдордп рдФрд░ рд╕рдордп рднреЗрдЬреЗрдВред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдПрдХ рд╢рд╛рдВрдд рдЬрдЧрд╣ рдкрд░ рдЦрдбрд╝реЗ рд╣реЛрдХрд░ рдкрд┐рдВрдЧ рдкреИрдХреЗрдЯ рдЫрд┐рдкрд╛рдХрд░, рдЖрдк рд╕рдВрджреЗрд╢ рдЯреЗрд▓реАрдкреЛрд░реНрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдЗрдЯрдо (рд╢рд┐рд▓реНрдк) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЧреЗрдо рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдЯреЗрд▓реАрдкреЛрд░реНрдЯ рдкреЙрдЗрдВрдЯ рдХрд╛ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
0x2B
,
0x67
,
0x6B
рдФрд░
0x1AF
рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
0x2B
,
0x67
,
0x6B
рдФрд░
0x3AF
:
рдЧрдбрд╝рдмрдбрд╝ред рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:
- рдорд╛рди 4 рдмрд╛рдЗрдЯреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╣реИрдВ;
- рд╕рднреА рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдВрддрд░ 128 рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЬрдм рдкрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдк рдХреБрдЫ рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЕрдкреЗрдХреНрд╖рд┐рдд рдорд╛рди рд╕реЗ рдкрд╣рд▓реЗ
0x08
; - 4-рдмрд╛рдЗрдЯ рдорд╛рди,
L
рд╕реЗ 4 рдХрдо (рдЪрд▓реЛ рдЗрд╕реЗ D
рдХрд╣рддреЗ рд╣реИрдВ D
рдпрд╣ рдлрд╝реАрд▓реНрдб рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣рд╛рдБ рд╣реИ, рдирд┐рд░реНрднрд░рддрд╛ L - 4 = D
рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред рдПрдХ рддрд░рдл, рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдПред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрд░рдЪрдирд╛ (рдкрд┐рдВрдЧ рдХреА рддрд░рд╣) рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдкрд░ - рдпрд╣ рдмреЗрдХрд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ)ред
рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкреЗрдХреНрд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреЗрдореЗрд▓ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╢рд┐рд▓реНрдк рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

14183 рдФрд░ 14285 рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ 28391 рдФрд░ 28621 рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЕрдВрддрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 128 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ (рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рд╕рд╣рд┐рдд) рдХреЗ рдмрд╛рдж рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рддрдиреА рдмрдбрд╝реА рд╣реЛрдЧреА, рдкреИрдХреЗрдЯ рдореЗрдВ рдореВрд▓реНрдп рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЕрдЬреАрдм рдмрд╛рдд рдереА рдХрд┐ резреи was рддрдХ рдХреЗ рдореВрд▓реНрдп рдЕрдкрдиреЗ рдЖрдк рдмрдиреЗ рд░рд╣реЗред рд╕рдордЭ рдЧрдпрд╛, рдХреНрдпрд╛ рд╣рд╛рд▓ рд╣реИ? рд╕реНрдкрд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ "рд╕рд┐рдлрд░" рдХреЛ рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдЕрдВрдд рдореЗрдВ, рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдиреЗ "рд╣реИрдХрд┐рдВрдЧ" рдореЗрдВ рдорджрдж рдХреА)ред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ
рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд▓рдВрдмрд╛рдИ рдХреА рдорд╛рддреНрд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдмрд╛рдЗрдЯ рдХреА рдЖрдард╡реАрдВ рдмрд┐рдЯ (рдирд┐рд░рдВрддрд░рддрд╛ рдмрд┐рдЯ) рдЕрдЧрд▓реЗ рдмрд╛рдЗрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рд╡рд┐рд╡рд░рдг рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡реАрдПрд▓рдХреНрдпреВ рдкрдврд╝рдирд╛ рдХреЗрд╡рд▓ рд▓рд┐рдЯрд┐рд▓-рдПрдВрдбрд┐рдпрди рдХреНрд░рдо рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдкреИрдХреЗрдЯ рдореЗрдВ рд╕рднреА рдореВрд▓реНрдп рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рд╣реИрдВред
рдЕрдм рдЬрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
struct VLQ { local char size = 1; while(true) { byte obf_byte; if ((obf_byte & 0x80) == 0x80) { size++; } else { break; } } FSeek(FTell() - size); byte bytes[size]; local uint64 _ = FromVLQ(bytes, size); };
рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:
uint64 FromVLQ(byte bytes[], char size) { local uint64 source = 0; local int i = 0; local byte x; for (i = 0; i < size; i++) { x = bytes[i]; source |= (x & 0x7F) * Pow(2, i * 7);
рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рд╡рд┐рд╖рдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдПред рдлрд┐рд░ рд╕реЗ
D
рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрджрд▓рддреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рдордиреЗ
0x08
ред
0x10 0x01
рд╕рдВрджреЗрд╢ рдХреЗ рдЕрдВрддрд┐рдо рджреЛ рдмрд╛рдЗрдЯреНрд╕ рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рдХреНрд░рд╛рдлреНрдЯрд┐рдВрдЧ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬрд╣рд╛рдВ
0x10
рдХреА рднреВрдорд┐рдХрд╛
0x08
рд╕рдорд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рдЖрдк рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
struct CraftEvent { uint data_length <bgcolor=0x00FF00, name="Data Length">; byte marker1; VLQ craft_id <bgcolor=0x00FF00, name="Craft ID">; byte marker2; VLQ quantity <bgcolor=0x00FF00, name="Craft Quantity">; };
рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
рдФрд░ рдлрд┐рд░ рднреА, рдпреЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдереЗред рдЪрд░рд┐рддреНрд░ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреА рдШрдЯрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рд╣рдо рдХреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ? рдХрдо рд╕реЗ рдХрдо, рдЪрд░рд┐рддреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬрд╣рд╛рдВ рд╡рд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ, рдЧрддрд┐ рдФрд░ рд╕реНрдерд┐рддрд┐ (рдЦрдбрд╝реЗ, рджреМрдбрд╝, рдХреВрдж, рдЖрджрд┐)ред рдЪреВрдВрдХрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдХреЛрдИ рд░реЗрдЦрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд░реНрдгрди
enum
рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдХреЗ, рдЧреЗрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЗрд╕ рдмреЛрдЭрд┐рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди XYZ рд╡реИрдХреНрдЯрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
struct MoveEvent { uint data_length <bgcolor=0x00FF00, name="Data Length">; byte marker; VLQ move_time <bgcolor=0x00FFFF>; FSkip(2); byte marker; float position_x <bgcolor=0x00FF00>; byte marker; float position_y <bgcolor=0x00FF00>; byte marker; float position_z <bgcolor=0x00FF00>; FSkip(2); byte marker; float direction_x <bgcolor=0x00FFFF>; byte marker; float direction_y <bgcolor=0x00FFFF>; byte marker; float direction_z <bgcolor=0x00FFFF>; FSkip(2); byte marker; float speed_x <bgcolor=0x00FFFF>; byte marker; float speed_y <bgcolor=0x00FFFF>; byte marker; float speed_z <bgcolor=0x00FFFF>; byte marker; VLQ character_state <bgcolor=0x00FF00>; };
рджреГрд╢реНрдп рдкрд░рд┐рдгрд╛рдо:
рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рддреАрди рд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдХрд▓рд╛, рдкреАрд▓рд╛ рддреАрди, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЪрд░рд┐рддреНрд░ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреА рдЧрддрд┐ рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред рдЖрдк рд╕рдордиреНрд╡рдп рдореВрд▓реНрдпреЛрдВ (
X
рдорд╛рди рд╕реЗ рдкрд╣рд▓реЗ
0x0D
,
Y
рд╕реЗ рдкрд╣рд▓реЗ
0x1D
рдФрд░
Z
рд╕реЗ рдкрд╣рд▓реЗ
0x1D
) рдФрд░ рд░рд╛рдЬреНрдп рд╕реЗ рдкрд╣рд▓реЗ (
0x30
) рдХреЗ рдмреАрдЪ рдирд┐рд░рдВрддрд░ рдмрд╛рдЗрдЯреНрд╕ (рдорд╛рд░реНрдХрд░) рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐
0x08
рдФрд░
0x10
рдЕрд░реНрде рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХрдИ рдорд╛рд░реНрдХрд░реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдореВрд▓реНрдп (рдкрд╣рд▓реЗ рддреАрди рдмрд┐рдЯреНрд╕) рдФрд░ рдЕрд░реНрде рдЕрд░реНрде рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдорд╛рд░реНрдХрд░реЛрдВ (рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЖрджрд┐ рдХреЗ рд╕рд╛рдордиреЗ
0x120F
рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд╡реИрдХреНрдЯрд░ рд╕реНрд╡реИрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЦреЗрд▓ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ) рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдХреБрдЫ рдирдП рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
struct Packed { VLQ marker <bgcolor=0xFFBB00>;
рдЕрдм рд╣рдорд╛рд░рд╛ рдЧрддрд┐ рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ:
struct MoveEvent { uint data_length <bgcolor=0x00FF00, name="Data Length">; Packed move_time <bgcolor=0x00FFFF>; PackedVector3 position <bgcolor=0x00FF00>; PackedVector3 direction <bgcolor=0x00FF00>; PackedVector3 speed <bgcolor=0x00FF00>; Packed state <bgcolor=0x00FF00>; };
рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рд╡рд╣ рд░реЗрдЦрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЗ
Packed
рдореВрд▓реНрдп рд╕реЗ рдкрд╣рд▓реЗ рд╣реИрдВ:
struct PackedString { Packed length; char str[length.v._]; };
рдЕрдм, рдирдореВрдирд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рдЖрдк рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реБрдирдиреЗ рдХрд╛ рдЖрд╡реЗрджрди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рд╣реИред
рдЕрдкрдбреЗрдЯ: рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдВрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд╝рд░ рд╣реИ , рдФрд░ рдЙрдкрдпреЛрдЧреА
рд▓реЗрдЦ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП
рдЯрд╛рдЯреАрдХреЛрдорд╛ рднреА рд╣реИред