рдирдорд╕реНрдХрд╛рд░!рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдПрдЯрд▓рд╕рд┐рдпрди рдХрдВрдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдЬ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдбреЗрдЯрд╛ рдПрдХ рдЖрд░рдИрдПрд╕рдЯреА рдЕрдиреБрд░реЛрдз рд╕реЗ рдЖрдПрдЧрд╛редрд╣рдо Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ Jira рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдорд╛рдирдХ рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрд░рд╛ рд╕реЗ рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ редрдЖрдк рдЗрд╕ рд▓реЗрдЦ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ редрд╕рдВрдЧрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рджреНрдпреБрдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╣рдо рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ ред рдпрд╣ рдПрдХ рдлреНрд░реА рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛редрдареАрдХ рд╣реИ, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдо рдореЗрдВ рдкрд╛рд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрд╕ рдлреЙрд░ рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ редрдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ
рдЕрдм рдЧрд┐рдпрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдЬрд╛рдПрдВ -> рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ -> рдПрд╕рдЖрдИрдПрд▓ рдкреНрд░рдмрдВрдзрдХред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде getProjects.sil рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:struct Project {
string key;
string name;
string projectTypeKey;
}
HttpRequest request;
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += authHeader;
Project [] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
runnerLog(projects);
return projects;
рдЕрдкрдиреЗ рдЬреАрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ host.docker.internal : 8080 / рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓реЗрдВ редрдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ рдХрд┐ рдбреЗрдЯрд╛ рдЬреАрд░рд╛ рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ:
Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВ
рдЕрдм SIL рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВ ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ
рдХрд░реЗрдВ getProjects.sil: рдкреГрд╖реНрда рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рдореНрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рдЦреЗрддреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдирд╛рдо рджреЗрдВ рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рд░реВрд╕реА рдореЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, getProjects.sil рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВредрдЙрд╕реА рд╕рдордп, рд╣рдо рдереЛрдбрд╝рд╛ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВредрдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рдХрд░реЗрдЧреА:- рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрд░рд╛ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рд╣рдо рдкреНрд░рд╛рдкреНрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рд░рдгреАрдмрджреНрдз рджреГрд╢реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:Project [] projects = getProjectData();
TableRow [] tableRows = convertProjectDataToTableData(projects);
return tableRows;
рдЕрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ:- рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдБ
- рдЬреАрд░рд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣реЗрдбрд░ рдмрдирд╛рдПрдВ
- рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВред рд╣рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрддреНрддрд░ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЬреАрд░рд╛ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╕реНрддрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЕрдиреБрд░реЛрдз рдкрд░ рдЕрдорд▓ рдХрд░реЗрдВ
- рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ
рд▓реЗрдХрд┐рди рд╢рдмреНрдж рдХреЛрдб рдореЗрдВ рдмрджрд▓ рдЧрдП:function getProjectData() {
HttpRequest request;
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += authHeader;
HttpQueryParam param = httpCreateParameter("expand", "description,lead,url,projectKeys");
request.parameters += param;
Project[] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
return projects;
}
рдЕрдм рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВредрдпрд╣рд╛рдБ рдЬрд╡рд╛рдм рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд┐ рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рд╕реЗ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ (рдореИрдВрдиреЗ рдЙрддреНрддрд░ рдХреЛ рдЫреЛрдЯрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ:[
{
"key":"KAN",
"lead":{
"name":"admin",
"displayName":"Alexey Matveev",
},
"name":"kanban",
"projectTypeKey":"software"
},
{
"key":"SCRUM",
"description":"",
"lead":{
"name":"admin",
"displayName":"Alexey Matveev",
},
"name":"scrum",
"projectTypeKey":"software"
}
]
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдВрдЬреА, рдирд╛рдо рдФрд░ ProjectTypeKey рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╣рдорд╛рд░реЗ json рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рд▓реАрдб рдлреАрд▓реНрдб рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп, рд╣рдо json рджреЗрдЦрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ json рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╛рдо рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗрдиреЗрдо рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдо рд▓реАрдб (рд▓реАрдб) рдХреНрд╖реЗрддреНрд░ рдореЗрдВ json рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:struct Lead {
string name;
string displayName;
}
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЬрд╕рди (рдкрд░рд┐рдпреЛрдЬрдирд╛) рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:struct Project {
string key;
string name;
string projectTypeKey;
Lead lead;
}
рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдЖрдИрдПрд▓ рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрддрд░ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдврд╛рдВрдЪреЗ рдХреЛ рдиреЗрд╕реНрдЯрд┐рдВрдЧ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдХреЗ рджреЛ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрддрд░ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ (рдлреНрд▓реИрдЯ рд╕рдВрд░рдЪрдирд╛) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдПрдХ рдлреНрд▓реИрдЯ рд╕рдВрд░рдЪрдирд╛ (рдЯреЗрдмрд▓рд░реЙрд╡) рдмрдирд╛рдПрдВ:struct TableRow {
string key;
string name;
string projectTypeKey;
string lead;
string leadDisplayName;
}
рдФрд░ рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ:function convertProjectDataToTableData(Project [] projectData) {
TableRow [] tableRows;
for (Project project in projectData) {
TableRow tableRow;
tableRow.key = project.key;
tableRow.name = project.name;
tableRow.projectTypeKey = project.projectTypeKey;
tableRow.lead = project.lead.name;
tableRow.leadDisplayName = project.lead.displayName;
tableRows = arrayAddElement(tableRows, tableRow);
}
return tableRows;
}
рд╕рдмред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рд╣реИ!рдпрд╣рд╛рдБ рдЕрдВрддрд┐рдо getProjects.sil рдХреЛрдб рд╣реИ:struct Lead {
string name;
string displayName;
}
struct Project {
string key;
string name;
string projectTypeKey;
Lead lead;
}
struct TableRow {
string key;
string name;
string projectTypeKey;
string lead;
string leadDisplayName;
}
function getProjectData() {
HttpRequest request;
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += authHeader;
HttpQueryParam param = httpCreateParameter("expand", "description,lead,url,projectKeys");
request.parameters += param;
string pp = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
runnerLog(pp);
Project[] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
return projects;
}
function convertProjectDataToTableData(Project [] projectData) {
TableRow [] tableRows;
for (Project project in projectData) {
TableRow tableRow;
tableRow.key = project.key;
tableRow.name = project.name;
tableRow.projectTypeKey = project.projectTypeKey;
tableRow.lead = project.lead.name;
tableRow.leadDisplayName = project.lead.displayName;
tableRows = arrayAddElement(tableRows, tableRow);
}
return tableRows;
}Project [] projects = getProjectData();
TableRow [] tableRows = convertProjectDataToTableData(projects);
return tableRows;
рдЕрдм рд╣рдо Confluence рдореЗрдВ рдкреЗрдЬ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдкрд░ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рд▓реЗрдХрд┐рди рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдПрдХ рддрд░рд╣ рдХреЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдЖрдЗрдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдирд╛рдо рджреЗрдВредрд╣рдо рдкреГрд╖реНрда рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрд╕рдЖрдИрдПрд▓ рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдХрд╛ рдирд╛рдо" рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:
рдкреЗрдЬ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
рд╕рдм рдХреБрдЫ рдирд┐рдХрд▓рд╛!