рд░реВрд╕реА рдкреНрд░реАрдорд┐рдпрд░ рд▓реАрдЧ (RPL) рдореЗрдВ рдлреБрдЯрдмреЙрд▓ рдореИрдЪреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХрд╛ рдореЙрдбрд▓ред
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ: 2018 рдИрдкреАрдПрд▓ рдЧрдгрд┐рдд рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рд╣реБрдЖред рд╣рдорд╛рд░реЗ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдЖрдЧрд╛рдореА рдЦреЗрд▓реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2015/2016 рд╕реАрдЬрд╝рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд░реВрд╕реА рдкреНрд░реАрдорд┐рдпрд░ рд▓реАрдЧ (рдЖрд░рдкреАрдПрд▓) рдХреЗ рдореИрдЪреЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗрдЧрд╛ред рдбреЗрдЯрд╛ wyscout.com рдлреБрдЯрдмреЙрд▓ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛
рдЧрд┐рддреБрдм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдбреЗрдЯрд╛
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
import pandas as pd import numpy as np import collections
рдореИрдЪ рдХрд╛ рдбреЗрдЯрд╛
рдЧрд┐рддреБрдм рдкрд░ рд╣реИред
data = pd.read_csv("RPL.csv", encoding = 'cp1251', delimiter=';') data.head()

XG рдФрд░ PPDA рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?xG (рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓рдХреНрд╖реНрдп) рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдПрдХ рдореЙрдбрд▓ рд╣реИред рдпрд╣ рд▓рдХреНрд╖реНрдп рдкрд░ рд╢реЙрдЯреНрд╕ рдХреЗ рд╕рдВрдХреЗрддрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЯреАрдо рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдиреЗ рдЧреЛрд▓ рджрд╛рдЧреЗ рдереЗ рдЕрдЧрд░ рд╣рдо рдЙрди рд╕рднреА рд╢реЙрдЯреНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
XG рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВредPPDA (Passes Allowed Per Defensive Action) рдПрдХ рдлреБрдЯрдмреЙрд▓ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕рдВрдХреЗрддрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдореИрдЪ рдореЗрдВ рджрдмрд╛рд╡ рдХреА рддреАрд╡реНрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреАрдкреАрдбреАрдП рдорд╛рди рдЬрд┐рддрдирд╛ рдХрдо рд╣реЛрдЧрд╛, рд░рдХреНрд╖рд╛ рдореЗрдВ рдЦреЗрд▓ рдХреА рддреАрд╡реНрд░рддрд╛ рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧреАред
PPDA рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВрдкреАрдкреАрдбреАрдП = рд╣рдорд▓рд╛рд╡рд░ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд╛рд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ / рд░рдХреНрд╖рд╛ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рд╕рдВрдЦреНрдпрд╛
рд╣рдо 2018/2019 рд╕реАрдЬрд╝рди рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ (рдпрд╛рдиреА 2019 рдореЗрдВ рдЦреЗрд▓реЗ рдЧрдП рдореИрдЪреЛрдВ) рдХреЗ рд▓рд┐рдП рдореИрдЪ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд╕реАрдЬрд╝рди рдореЗрдВ рдЦреЗрд▓рдиреЗ рд╡рд╛рд▓реА рдЯреАрдореЛрдВ рдХреА рд╕реВрдЪреА (рдЖрд░реНрд╕реЗрдирд▓, рдУрд░реЗрдирдмрд░реНрдЧ, рдбрд╛рдпрдирдореЛ, рдХреНрд░рд┐рд▓рд┐рдпрд╛ рд╕реЛрд╡реЗрддреЛрд╡ рдФрд░ рдпреЗрдирд┐рд╕реА рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рдкрд┐рдЫрд▓реЗ рд╕реАрдЬрд╝рди рдХреЗ рдЖрдБрдХрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдЙрди рдкрд░ рдХреБрдЫ рдЖрдБрдХрдбрд╝реЗ рд╣реИрдВ):
RPL_2018_2019 = pd.read_csv('Team Name 2018 2019.csv', encoding = 'cp1251') teamList = RPL_2018_2019['Team Name'].tolist() teamList

рд╣рдо рдЙрди рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рдореИрдЪ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдЬрди 2018/2019 рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ:
deleteTeam = [x for x in pd.unique(data['']) if x not in teamList] for name in deleteTeam: data = data[data[''] != name] data = data[data[''] != name] data = data.reset_index(drop=True)
рдПрдХ рд╕реАрдЬрди рдХреЗ рд▓рд┐рдП рдЯреАрдо рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп:
def GetSeasonTeamStat(team, season): goalScored = 0
рд╕рдорд╛рд░реЛрд╣ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
GetSeasonTeamStat("", 2018)

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
returnNames = ["", "", "", "\n ", " ", "\n ", "\nxG ( )", "PPDA ( )", "\n", " ", "\n", " ", "\n", " ", "\n ( )"] for i, n in zip(returnNames, GetSeasonTeamStat("", 2018)): print(i, n)

рд╣рдорд╛рд░реЗ рдЖрдБрдХрдбрд╝реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдБрдХрдбрд╝реЛрдВ рд╕реЗ рднрд┐рдиреНрди рдХреНрдпреЛрдВ рд╣реИрдВрд╕рддреНрд░ 2017-2018 рдореЗрдВ рд╕реНрдкрд╛рд░реНрдЯрдХ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрдХрдбрд╝реЗ:

рдЖрдБрдХрдбрд╝реЗ рдЕрд▓рдЧ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд╕реАрдЬрди 2018/2019 рдореЗрдВ рдЖрд░рдкреАрдПрд▓ рдореЗрдВ рдирд╣реАрдВ рдЦреЗрд▓рдиреЗ рд╡рд╛рд▓реА рдЯреАрдореЛрдВ рдХреЗ рдореИрдЪреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ред рдпрд╣реА рд╣реИ, рд╣рдо рд╕реНрдкрд╛рд░реНрдЯрдХ - рдПрд╕рдХреЗрдП, рд╕реНрдкрд╛рд░реНрдЯрдХ - рдЯреЛрд╕реНрдиреЛ, рдЖрджрд┐ рдХреЗ рдореИрдЪреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВред
рд╕реАрдЬрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЯреАрдореЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд▓реМрдЯрд╛рдПрдВрдЧреЗ:
def GetSeasonAllTeamStat(season): annual = collections.defaultdict(list) for team in teamList: team_vector = GetSeasonTeamStat(team, season) annual[team] = team_vector return annual
рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рд╡рд╣ рд╕рднреА рдореМрд╕рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЯреАрдо рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЧреЗрдо рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдЬрд╝рди рдХреЗ рд▓рд┐рдП рдЯреАрдореЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ xTrain рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдШрд░ рдХреА рдЯреАрдо рдЬреАрддрддреА рд╣реИ, рдФрд░ 0 рдЕрдиреНрдпрдерд╛, рддреЛ рдлрд╝рдВрдХреНрд╢рди рддрдм 1 рддрдХ yTrain рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
def GetTrainingData(seasons): totalNumGames = 0 for season in seasons: annual = data[data[''] == season] totalNumGames += len(annual.index) numFeatures = len(GetSeasonTeamStat('', 2016))
рд╣рдо 2015/2016 рд╕реЗ 2018/2019 рддрдХ рд╕рднреА рдореМрд╕рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реАрдЦрддреЗ рд╣реИрдВред
years = range(2016,2019) xTrain, yTrain = GetTrainingData(years)
рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Scikit-Learn рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ LinearRegression рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(xTrain, yTrain)
рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред рдпрд╣ 0 рдФрд░ 1 рдХреЗ рдмреАрдЪ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдВ 0 рдиреБрдХрд╕рд╛рди рд╣реИ рдФрд░ 1 рд▓рд╛рдн рд╣реИред
def createGamePrediction(team1_vector, team2_vector): diff = [[a - b for a, b in zip(team1_vector, team2_vector)]] predictions = model.predict(diff) return predictions
рдкрд░рд┐рдгрд╛рдо
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЬрд╝реЗрдирд┐рдЯ - рд╕реНрдкрд╛рд░реНрдЯрдХ рдореИрдЪ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ
team1_name = "" team2_name = "" team1_vector = GetSeasonTeamStat(team1_name, 2019) team2_vector = GetSeasonTeamStat(team2_name, 2019) print (', ' + team1_name + ':', createGamePrediction(team1_vector, team2_vector)) print (', ' + team2_name + ':', createGamePrediction(team2_vector, team1_vector))

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдЪ рдореЗрдВ рдЬрд╝реАрдирдд - рд╕реНрдкрд╛рд░реНрдЯрдХ, рдЬрд╝реАрдирдд рдХреЗ рд▓рд┐рдП рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 47% рд╣реИ (03/17/2019 рд╕реНрдкрд╛рд░реНрдЯрдХ 1-1 рдЬрд╝реАрдирд┐рдЯ)ред
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдП рдЧрдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:
40% рддрдХ - рдЯреАрдо рдиреЗ рд╕рд┐рд░реНрдл рдЬреАрдд (рд╣рд╛рд░ рдпрд╛ рдбреНрд░реЙ) рдирд╣реАрдВ рдЬреАрддрд╛
40% рд╕реЗ 60% рддрдХ - рдПрдХ рдбреНрд░реЙ рдХреА рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛
60% рд╕реЗ - рдЯреАрдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣рд╛рд░реЗрдЧреА (рдЬреАрдд рдпрд╛ рдбреНрд░рд╛)
рдЕрдиреНрдп рд╕рднреА рдХреНрд▓рдмреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл CSKA рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди
for team_name in teamList: team1_name = "" team2_name = team_name if(team1_name != team2_name): team1_vector = GetSeasonTeamStat(team1_name, 2019) team2_vector = GetSeasonTeamStat(team2_name, 2019) print(team1_name, createGamePrediction(team1_vector, team2_vector), " - ", team2_name, createGamePrediction(team2_vector, team1_vector,))

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдиреЗ рд▓рдЧрднрдЧ рд╕рднреА рдореИрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣реА рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рджрд┐рдпрд╛ рдЬреЛ рдПрдХ рдбреНрд░реЙ рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖред рдПрдХрдорд╛рддреНрд░ рдЧрд▓рдд рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди: CSKA рдорд╛рд╕реНрдХреЛ - рдЬрд╝реАрдирд┐рдЯред CSKA рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 0.001 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЯреАрдореЗрдВ рддрд╛рдХрдд рдореЗрдВ рдмрд░рд╛рдмрд░ рд╣реИрдВ рдФрд░ рдбреНрд░реЙ рдореЗрдВ рдЦреЗрд▓реЗрдВрдЧреА, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдЬрд╝реАрдирдд рдиреЗ рдЬреАрдд рд╣рд╛рд╕рд┐рд▓ рдХреА (3-1)ред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдорд╛рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рдЖрджрд┐рдо рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдореИрдЪреЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ (рдФрд░ рдлрд┐рд░ рдХреЗрд╡рд▓ 15 рдореВрд▓ рдорд╛рдкрджрдВрдбреЛрдВ) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдлреБрдЯрдмреЙрд▓ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрдИ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрджрд╛рди рдпрд╛ рдореМрд╕рдо рдХреА рд╕реНрдерд┐рддрд┐ рдЦреЗрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред
рдЕрдЧрд▓рд╛, рдореИрдВ рд╕рдВрдХреЗрддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдирдореВрдирд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореЙрдбрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред