áááá«ááºáž
ááœááºáá²á·ááá·áº ááŸá áºááŸá áºáá®ážáá«ážááá·áºááœáẠáá»áœááºá¯ááºááẠKyiv ááŸá á¡áá¯ááºáá®áá»á±á¬ááºážáá»á¬ážáá²á០áááá¯ááááºážáááºážáá»á¬ážááᯠáááºááŒá¬ážáá±ážáá±áá«áááºá áá«ááᯠá¡áá»á±á¬áºááá±á¬áááºáááºáá¯ááºáááºá áá áºáá«á áááá¯ááááºáá±ážáá²á· ááá±á¬á·ááºáá áºáá¯ááᯠáá±ážááŒá®ážááẠá áœáá·áºááœáŸááºááá¯ááºáááºá áá«áá±ááá·áº á áááºáááºá á¬ážáá°ááœá±ááᯠá¡áá¯á¶ážáááºáá²á·á¡áá¬ááœá±ááᯠááŒá±á¬ááŒáá»ááºáá²á·á áááºá áá»á±á¬ááºáááœá¬ážáá«áá°ážá
áá»áœááºá¯ááºáá¡ááááá¬áá¬á áá¬ážááŸá¬ Java ááŒá áºáááºá ááá¯ááá¯ááºážááºáá¯ááºážáá»á¬ážá¡ááœáẠááááºážáá»á¬ážá áá±áá®ááᯠáááºááœááºááŸá¯áá»á¬ážá¡ááœáẠáá±á¬á·ááºáá²ááŸáá·áº áááºáááºáá±á¬ááºááŸá¯ á¡áá»áá¯ážáá»áá¯ážááá¯á·ááᯠáááºážááœáẠáá±ážáá²á·áááºá ááŒá®ážáá±á¬á· Java áááºáá±ážáááºá
áá®áá±áá¬ááŸá¬ áá»áœááºáá±á¬á·áºáá²á· áá±á¬ááºáá¯á¶ážá¡ááœá²á·áá²á· áá±á·áá»áá·áºááŸá¯ áá¬ááºáááºážááᯠááŒá±á¬ááŒáá»ááºáá«áááºá áááºáááºážá áááºááŒááºážá០á¡áá¯ááºáá¯ááºáá±á¬ áááºáááºáá±á¬ááºááŸá¯ááᯠáá±ážáá¬ážááŒááºážá¡áá áááºááá¯á·áá¯ááºáá±á¬ááºáá²á·ááŒááááºážá á¡á¬áá¬áááŒáá·áºá áœááºá á¬ááŸá¬ááœá±ááẠá¡áá¯á¶ážáááºáá±á¬ áááºáááºáá±á¬ááºááŸá¯áá áºáá¯á á¡ááá²á·á ááŒá±á¬áºááŒá¬á ááŸááºáá¯á¶áááºááŒááºážááŸáá·áº SMS áááŸááá«á
áááºáá±á¬ááºááŸá¯ááá¯ááºááá¯ááºá áá®ááŸá¬áá«-
ááá±á¬áá»ááºááẠááá¬áá±ážááŒá
áºááŒá®áž áááºááá·áºááŒá±á¬áºááŒá¬áá»áŸ ááá«áááºáá«á áá»áœááºáá±á¬áº áá¬ážáááºáááá¯áá«áá²á
ááá±á¬áá»ááºááᯠááá¯ááºááá¯ááºááá±á¬áºááŒáá®á á¡ááœá²á·á áááºáá°ááŸá¯áá¯ááºáááºážá ááºá¡ááŒá±á¬ááºáž á¡áááºážáááºááŒá±á¬ááŒáá«áááºá á€á¡áá¬áááŸááá²á áá¯á¶ááẠááŒáá·áºá á¯á¶áááºááá¯ááºáá«á
á á áááºáááºáž
áá»áœááºáá±á¬áºáááºáá±ážáá²á·áá»á±á¬ááºážááŸá¬ Java áááºáááºážááᯠá¡ááá¯ááºáž á ááá¯ááºážááœá²áá¬ážáá«áááºá á á¯á á¯áá±á«ááºážá áááºáááºážááẠá áááá·áºááŒá¬ááŒáá·áºááŒá®áž á¡á¬ážáááºáááºáá»á¬ážá¡á¬ážáá¯á¶áž (ááŸá áºáá áºáá°ážáá¯á¶ážááááºáááºáá»á¬ážá á¡áááºá¡áááºááá±á¬áá»ááºáá»á¬ážáá±ážáááºá¡áá»áááº)á
áááááá¯ááºážááẠáá»á±á¬ááºážáá¬ážáá»á¬ážá¡á¬áž áá¬áá¬á áá¬ážá á¡ááŒá±áá¶ááá±á¬ááá¬ážáá»á¬ážááᯠááááºáááºáá±ážáááºá ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬á áááºážáááºážáá»á¬ážá OOP á¡ááŒá±áá¶áá»á¬ážááŸáá·áº ááá¯á¡áá¬á¡á¬ážáá¯á¶ážá
áááºáááºážááá¯áááá¡ááá¯ááºážááœáẠáá»á±á¬ááºážáá¬ážááẠJava ááœáẠá á¬áá±ážáááºážááᯠá¡áááºážááŸáá·áºá¡áá»á¬ážáá¬ážáááºáá¬ážááŒá®ážá áááºážááᯠ"á¡ááœááºáá±á¬ááºááŒá®ážáá°" áááºážááá¬á¡á á¯á¡áá±ážááᯠáá±ážá¡ááºááá¯ááºáááºá áááºážááẠSQLá ááá¯á·áá±á¬áẠJDBCá Hibernate ááŒáá·áº á áááºáááºá ááá¯á·áá±á¬áẠHTTPá áá¬áá¬áá»á¬ážá áá±á¬ááºáá áºáá¯ááá±á¬á· Springá git áá²á· maven á¡ááŒá±á¬ááºáž á¡áááºážáááºáá«á ááŒá®ážáá±á¬á· áá»á±á¬ááºážáá¬ážááœá±á áá±á¬ááºáá¯á¶áž ááá±á¬áá»ááºááœá±áá±ážáááºá
áááºáááºážá¡á¬ážáá¯á¶ážááᯠmodule áá»á¬ážá¡ááŒá áºááœá²ááŒá¬ážáá¬ážáááºá áá áºáááºááᯠááŸá áºááŒááẠáááºáááºážááœá± ááá¯á·áá»áááºá áááºáááºážá á¬áá áºáá¯áááŒá¬áá»áááºááẠááŸá áºáá¬áá®ááŒá áºáááºá
áááºáá°ááá¯á· áá«á·áá»ááºážáááºááŸá¯
á¡ááœá²á· á ááœá²á· ááœááºáá¬áááºá ááŸá áºááŸá áºáá±á¬ááºááŒá¬áá¯á¶ááááºá áá«áá±ááá·áº áá»áá±á¬áºá á¡ááœá²á· á ááœá²á·ááᯠá¡ááŒá²ááá¯ááᯠáááŒáá¯ááºááẠáŠážáá±á¬ááºáá²á·áááºá
ááá°áá®áá²á· áá»ááºážáááºáááºážááœá±ááᯠáá«ááŒáá¯ážá á¬ážáá²á·áááºá
áááááœá±ážáá»ááºááœáá·áºááŸá¬ áá®á¡áá¯áá®áá áºáá¯ááŒáá·áº áááºááŒááŸá¯áá áºáá¯á¡ááœáẠáá áºá á¯á¶áá áºáá¯ááᯠááœá²áá±áá±ážááŒááºážááŒá áºáááºá áá¯áááá¡ááœá²á á ááºá á áºáá«á áá®áááºážáááºážá áá áºáááºážáááºážáá²á· á¡áá¯ááºááŒá áºáá±áá²á· áá»áœááºáá±á¬á·áºá¡ááŒááºá¡ááá±á¬á· ááááºáááá±á¬ááºááŸá¯ áááŸááá²á·áá«áá°ážá
áá«áá¬áá²á·áá²á· áá¯áááááœá±ážáá»ááºá áá¬á á¡áᯠáá«áá¯ááºáá±á¬ááºáá±áá²á· á á¯á¶ááœá²áá áºááœá²áá¯á¶ážááᯠáá®á¡áá¯áá®á¡ááœáẠááŒáŸá¯ááºááŸá¶ááá¯á· ááá¯ááºáá«áá°ážá á¡á²áá®á¡á á¬ážá áá®á¡áá¯áá®áá²á· á¡ááá¯áá±á¬ááºá¡ááá¯ááºážááœá±ááᯠ5-10 áááá áºáá±á¬áẠáá±á¬á ááºááŒá®áž áááºááœá±á·ááá°áá¬ááœá±áá²á· áá»ááºáá»ááºáž ááŒáá·áºá áœááºáá«á áá®áááºážáááºážá ááá¯áá±á¬ááºážáááºá
á¡áá»áááºá¡áá¯á¶á¡áá±á¬ááºááŸááá»áŸáẠáá»á±á¬ááºážáá¬ážáá»á¬ážááᯠáá»áœááºá¯ááºááá±áá¬ááá¯á·áá±á«áºáᬠáá»áœááºá¯ááºááááºáá±á¬á·ááºááœááºááá¯ááºáᬠáááºááœá±á·ááá°áá¬áá»á¬áž ááá¯ááºááá¯ááºááŒá¯áá¯ááºáá«áááºá áááºážááẠáá±á¬ááºážááœááºá áœá¬á¡áá¯ááºáá¯ááºáá±á¬áºáááºáž áá¶ááá±á¬ááºážá áœá¬ááŒáá·áº áááºážááẠá¡áá»áááºáá»á¬ážá áœá¬ááŒá¬áááºá
áá°ááá¯ááºážá á¡áá¯á¶ážáá ááá¯ááºáááºááŒáá«áá°ážá
áá»áœááºáá±á¬á·áºá¡ááœáẠáá±á«áºááœááºáá»ááºáá áºáá¯ááá±á¬á· áá áºá¡á¯ááºá á¯áá¯á¶áž áááºáááºážáá²á· á¡áá¯á¶ážááᯠááá±á¬ááºáá°ážááá¯áá²á·á¡áá»ááºáá«áá²á
áá»áœááºáá±á¬áºáá±á·áá¬ááœá±á·ááŸááá»ááºá¡á áá»á±á¬ááºážáá¬ážáá áºáááºáá±á¬ááºá áá±á¬ááºáá¯á¶ážááá±á¬áá»ááºááá¯áá±ážáááºá á¡áá»á¬ážá á¯ááŸá¬ áááºáááºážáááááá¯ááºážá¡ááœááºáž áááºáá¯ááºáá¶ááááºá áá¯áááááá¯ááºážááᯠáá±á¬ááºáá°ážáá°ááœá±ááá±á¬á· áá»ááºáá±á·áááŸááá«áá°ážá
á¡ááŒá±á¬ááºážá¡áá»áá¯ážáá»áá¯ážáá²á· ááœááºááœá¬ážááŒáááºá
áááá¡áá»ááºá ááŸá¯ááºááœá±ážááŸá¯áá«á áá¬áá²ááŒá±á¬ááŒá±á¬ Java ááẠá¡ááá¯ážááŸááºážáá¯á¶ážáá¬áá¬á áá¬ážááá¯ááºáá«á á¡ááá¯ážááŸááºážáá¯á¶áž áááá¯ááááºááá¯áá±ážááá¯á·á á¡áááºážáá áºáá¯áá²á· ááá±á¬ááá¬ážááᯠáá¬ážáááºááá¯á· ááá¯áá«áááºá á¡áááºááŒá±á¬áá·áºáááºáá±ážáááºááá¯á¡ááºáááºááá¯áá¬ážáááºááẠá¡áá»á¬ážáá°ááŸá¬ á¡ááŒáááºááá±áá² áááºá(String[] arg) áá¬ážáááºááẠáá±á¬ááºááẠááá±á¬ááá¬ážáá»á¬áž ááŸááá±ážáááºá
áááºážááᯠáá»áœááºá¯ááºá¡áá«á¡ááẠáá°áá»á¬ážá áœá¬ááŸáá·áº á áááºáá²á·áá±á¬ Turbo Pascal ááŸáá·áº ááŸáá¯ááºážááŸááºááŒáá·áºáá«-
begin
writeln("ÐеÑÐ²Ð°Ñ Ð¿ÑПгÑаЌЌа");
end.
áá»áœááºáá±á¬áºááááá±á¬ááºáá±á¬á· áá»á±á¬ááºážá áá®ááŒá¿áá¬ááᯠáááºáá±á¬ááºážá ááºážáááºááŸá¯ááœá± ááááºáááºáá±ážááŒá®áž ááŒá±ááŸááºážáá±ážááŸá¬áá«á á¡áá¯ááᯠJava ááᯠáá°ááá¯ááºáž ááá±á·áá¬ááá¯ááºáá±ážáá°ážá á€áááºááŸá¬ á¡áá°á¡áá¡ááá·áºááœáẠááŸááá«áá±ážáá±á¬áºáááºáž á¡ááá·áºááẠááŸááºáááºááŒá±á¬ááºáž áááºááŸá¬ážáá«áááºá
ááŒá®ážáá±á¬á· áá¯áááá¡ááŒá±á¬ááºážáááºážá á¡á±á¬ááºááá¯á¶ááŸá¬ááá¯áá«áá²á
áááá¯ááááºáá±ážááŒááºážááẠá á¬áá¬ážáá»á¬ážá áœá¬ááá¯ááºááŒááºážááŸáá·áº áááºážá¡ááœáẠááœá±áá»á¬ážá áœá¬áááŒááºážááŒá áºáááºáᯠáá°á¡áá»á¬ážá áááºááŒááºáá±á·ááŸááááºá áá±á¬áºáá®á á¬áá±ážááá¬áá²á·ááá¯á· ááœá±ááá¯áá¬áááºá
á¡ááŒá áºááŸááºá áááºážáááºáž ááœá¬áááºá áá¯ááºááá¯ážáá¯ááºá áẠáá¯ááºáá»á¬ážá áœá¬á ááááºááŸá¬ážáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážá á ááºáááºáááŒáẠáá±á·áá¬áááºáá°ááŸá¯ áá¯ááºáááºážá ááºá á áááºáááºá á¬ážááá¯á·áá±á¬ááºážáá±ááá·áº áá°ááá¯ááºážá¡ááœááºáá±á¬á· ááá¯ááºáá«áá°ážá
áá«ááœá±á á á¬áááºážááá¬ážááœá±áá«á ááááá±á¬á· á áááºááá¯ážáááºá áá áºáá¯áá¯ááŸá¬ážáá±ááŒá®ááá¯á· ááœá±ážáááááºá ááᯠá á¬áááºážááá¬ážáá»á¬ážááẠáááºáááºážá¡áá»á¬ážá á¯á¡ááœáẠá¡áá®ážá ááºáá¯á¶ážáá°áá®ááŒá±á¬ááºáž áá»áœááºá¯ááºáá¬ážáááºáá«áááºá á¡áá¯áá±á¬á· á áááºááá°áá«áá°ážá áá«áá±ááá·áº á áááºáááºá á¬ážáá°ááœá±ááᯠáááºáá±ážáááºá
áááºáá±á¬ááºááŸá¯á áááºáá°áž
áá»á±á¬ááºážáá¬ážáá»á¬áž áááºáááºážáá áºáá¯áá¯á¶áž ááŒá®ážáááºááŸáá·áº áá±á¬ááºáá¯á¶áž ááá±á¬áá»ááºááᯠáá±ážááẠá¡áá»áááºáááºááŒá®ááŒá áºáááºá ááœá²ááŒá¬ážáá±á¬ á¡áá°á¡ááá»á¬áž ááŸááá²á·áááºá áá°ááá¯á·ááẠToDo á á¬ááœááºáá»á¬ážá ááá±á¬áá»ááºá á®áá¶ááá·áºááœá²ááŸá¯ááá±á¬áá»ááºáá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážááᯠáááºážááŸááºážáá²á·áááºá
ááá¯ážááŸááºážáá±ááá·áº á¡áá¯á¶ážáááºáá²á·á¡áá¬áá áºáá¯ááᯠáá¯ááºáá»ááºáááºá áá»áœááºá¯ááºáá á¶ááŸá¯ááºážááŸá¬ ááá¯ážááŸááºážááẠ- áá»áœááºá¯ááºááŸáá·áº áá»áœááºá¯ááºááẠáááºážááᯠáá°áááºáá»ááºážáá»á¬áž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºáá¬ážá á¡á á¬ážá¡áá±á¬ááºááá·áºáááºáá á¹á ááºážáá»á¬ážááŸá¬ááœá±ááŒááºážá¡ááœáẠáááºáááºáá±á¬ááºááŸá¯ááẠá€ááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®áá«áááºá
á áááºáá°ážá ááá¯ážááŸááºážáá«áááºá á ááá¯ážááá¯ááºáá áºáá¯ááœáẠáá¯ááºáá á¹á ááºážáá áºáá¯áááºáá±á¬á¡áá«á ááœá²á·á ááºážááŸá¯ááœáẠE-additive áá áºáá»áá¯ážáá»áá¯ážááᯠááœá±á·ááá«áááºá áááºážááẠáááºáá»áŸá¡áá¹ááá¬ááºááŸááááºááŒá áºá á± áááŸááºážáááºááŒá áºá á± áá¯ááºááœáẠááŸááºážááŸááºážáááºážáááºážáááááá±ážáá« (ááá¯á·ááŒáẠááá¯ááºáá¶á¡áá»á¬ážá¡ááŒá¬ážááœáẠáá¬ážááŒá áºáá¬ážáá±á¬ á¡áá¹ááá¬ááºááŸááá±á¬ additives áá»á¬ážáááºážááŸááááº)á
áááºááẠáááºááá¯ááºááá¯ááœáá·áºááŒá®áž ááŒáá·áºá áœááºá á¬áá¡ááẠ(áá¶áá«ááºá á¡ááŒá¬ážá¡áááºáá»á¬ážáá²ááŸáá áºáá¯) ááᯠááá¯ááºááá·áºáᬠááŒáá·áºá áœááºá á¬á á¡áá»ááºážáá»á¯ááºááᯠááá°áá«á
á¡áá¬ážáá° ááá±á¬áá»ááºááœá±ááŸááááºá á¡áá»ááºá¡áááºááᯠá¡ááŒá²ááŸááºá¡á±á¬ááºáááŒáá±ááá·áº Google ááŸá¬ additive ááᯠááá¯ážááá¯ážáá±ážááá¯ááºááá·áºááá¯ááºáá«áááºá
áá«áá±ááá·áº áá®ááá±á¬áá»ááºá ááá¬áá±ážááá¯á·ááá¯á· á¡áá±á«áºáá¡áááºá¡áá²ááœá±á áá«ááá¯á·ááᯠááá¬ážáá«áá°áž :)
á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯
áá°ááá¯ááºážá Java áá²á·áá±ážáááºá
áá»áœááºáá±á¬áºá¡áá«á¡ááẠá áá±á¬ááºááŸááááºá áá°ááá¯ááºážááẠááœá²áááºáá±á¬ááºážááá¯ááŸá¯ááᯠááŒá¯áá¯ááºáá²á·ááŒááŒá®ážá áá»áœááºá¯áẠááá¯á·ááá¯áẠá¡ááœá²á·á០á¡ááŒá¬ážáá°áá áºáŠážá á€ááœá²áááºáá±á¬ááºážááá¯áá»ááºááᯠáááºáá¶áá²á·áááºá
áá®á á®áá¶ááááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯á· á áááºáá°ážááᯠáá¯ááºááŒá±á¬ááŒááºážááá± á¡áá¯ááŒááºááá²á· á¡ááŒá±á¡áá±á¡áá áá áºááá±á¬ááºááŒá¬áá«áááºá
á¡ááá¯áá á¹á ááºážáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážá
áá±áá¬áá±á·á Ạ(entities, repositories, etc.) áááºážáá»áẠá¡ááŒá±áá¶áá°áá±á¬áẠáááºáá®ážááŒááºážááŸááá«áž áá»á±á¬ááºážáá¬ážáá»á¬ážáá²á០ááááá¯á¶ážáá¯ááºáá±á¬á¡áá¬ááŸá¬ ááŸáááŒá®ážáá¬áž á¡áá»ááºá¡áááºááá¯ááºá០add-ons áá»á¬ážááᯠááá¯ááºážááŒá¬ážááŒááºážááŒá áºáá«áááºá
áá»ááºá¡ááŸááºáá»á¬ážááᯠá ááºážáááºááẠááá¯á¡ááºáá«áááºá áá±áá¬áá±á·á áºááá¯ááŒáá·áºááẠáá±á¬ááºáááºáá¯ááºáááá¯á¡ááºáá«á áá±á«ááºážááá·áºááá·áºá¡áá¬áá»á¬ážá áœá¬ááᯠáá»ááºááŒááºá áœá¬ ááœá²ááŒááºážá áááºááŒá¬ááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠUI ááᯠáááºáá¶á ááºážáááºááá¯ááºáááºá á¡áá»áá¯ážá¡á á¬ážááœá²ááŒááºážááŸáá·áº á á áºáá¯ááºááŒááºážááá¯á·ááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá
Spring Boot ááẠááá·áºá¡á¬áž áááá¯ááá¯ááºáá»á¬ážá áœá¬ááᯠáááºáá®ážááá¯ááºá á±áá«áááºá áááá¯ááá¯ááºááẠáááºáááºáá»á¬ážáá«ááŸááá±á¬ ááá¯ááºáá áºáá¯ááŒá áºáááºá
dev áááºáááºážáá»ááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áááá¯ááºáᬠH2 DBMS ááŸáá·áº áá°áááºáž HTTP áá±á«áẠ(8080) áá«ááá·áº áááá¯ááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº á¡ááá®áá±ážááŸááºážááᯠá áááºááá¯ááºááá¯ááºážá áá±áá¬áá±á·á áºááᯠááŸááºážáááºážáá²á·áááºá á€ááá á¹á ááœáẠááœá²ááŒááºážá áááºááŒá¬áá°ááẠáá»áœááºá¯ááºááá¯á·ááᯠáááºáááºááá·áºá¡áá¬ááŒá áºáááºá
ááŸá¬ááœá±ááŒááºážááŸáá·áº á á áºáá¯ááºááŒááºážá
á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ ááŸá¬ááœá±ááŒááºážááŸáá·áº á á áºáá¯ááºááŒááºáž ááŒá áºáááºá á ááá¯ážááá¯ááºááŸááá°áá áºáŠážááẠááŒáá·áºá áœááºáá¯áẠááá¯á·ááá¯áẠá¡áááºáá»á¬ážáá²á០áá áºáá¯ááᯠá¡ááŒááºááŸáááºááŒá®áž ááááºááᯠááá°ááá«áááºá
ááá¯á·ááŒá±á¬áá·áº Additive entity ááœáẠáááºáááºáá»á¬ážá áœá¬ááŸááááºá áááºážááẠáá±á«ááºážááá·áºáá¯ááºá á¡ááŒá¬ážá¡áááºáá»á¬ážá áá±á¬áºááŒáá»ááºááŒá áºáááºá ááŸá¬ááœá±ááŸá¯ááᯠáááºáááºá¡á¬ážáá¯á¶ážááœáẠLike ááŒáá·áº áá áºááŒáá¯ááºáááºáááºáž áá¯ááºáá±á¬ááºáááºá á¡áááºá áááºááẠ[123] ááá¯á·ááá¯áẠ[amaranth] ááá¯á·áááºáá«á áá°áá®áá±á¬ááááºááᯠáááŸááááºááŒá áºáááºá
Specifications ááœá±á¡áá±á«áº á¡ááŒá±áá¶ááŒá®áž áá«ááœá±á¡á¬ážáá¯á¶ážááᯠáá¯ááºáá²á·áá«áááºá áááºážááẠá¡ááŒá±áá¶ááŸá¬ááœá±ááŸá¯á¡ááŒá±á¡áá±áá»á¬áž (á¥ááᬠá¡áá»áá¯á·áá±á¬áááºáááºáá»á¬ážáá²á·ááá¯á·) ááá¯áá±á¬áºááŒáááºááœáá·áºááŒá¯ááá·áº Spring áá¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºááŒá®ážá ááá¯á·áá±á¬áẠá¡ááá¯áá«á¡ááŒá±á¡áá±áá»á¬áž (OR ááá¯á·ááá¯áẠAND) ááá¯á·ááᯠáá±á«ááºážá ááºáá¬ážáááºá
áááºááŸááºáá»ááºáá»á¬áž áá áºáá«áááºáá±ážáá¬ážááŒá®ážáá«áá áá±á¬áºááŒáá»ááºááœáẠá áá¬ážáá¯á¶áž [á¡áá®áá±á¬ááº] áá«áá±á¬ á¡áá¹ááá¬ááºááŸááá±á¬ á¡áá±á¬ááºááŒááºáá á¹á ááºážáá»á¬áž áá²á·ááá¯á·áá±á¬ ááŸá¯ááºááœá±ážáá±á¬áá±ážááœááºážáá»á¬ážááᯠáááºáá±ážááá¯ááºáá«áááºá
Spring database áá²á· á¡áá¯ááºáá¯ááºááᬠá¡áááºážá¡áááºááŒá±áááºááá¯á· áá»áœááºáá±á¬áºáááºáá«áááºá ááŸá¯ááºááœá±ážáá±á¬áá±ážááœááºážáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáá±á¬á¡áá« á¡áá°ážáááŒáá·áº á€áááºááŸá¬ ááŸááºáá«áááºá áááºážááœáẠáááºážáááá¯ááºááá¯ááºá¡áááºáá«ááŸáááŒá±á¬ááºážááᯠáá»áœááºá¯ááºáá¬ážáááºááŒá®áž áááºážááœáẠááá¯ááºááá¯ááºáá±ážáá¬ážááŒá®áž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáá±á¬ SQL query ááẠááá¯ááá¯ááŒááºáááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá
áá«áá±ááá·áº á¡áá¬áá¬ááá¯ááºážááᯠááŒáá¯ááŒá®áž á¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºáá¯ááºááá¯á· áááá¯áá°ážááá¯áá²á· á¡ááŒááºááá¯áááºáž ááá¯ááºáá¬áá²á·áááºá ááááá¬ážááŸááºážááẠá áááºáááºá á¡áá¯ááºáá¯ááºááŒá®áž á¡á áááºá¡ááá¯ááºážáá áºáá¯áá»ááºážá á®á á¡á á¬ážááá¯ážááŸá¯ááᯠááœáá·áºááŒá¯ááá«áááºá áááºáá¯ááºáááºááá¯ážáá áºáá¯ááŸááá»áŸáẠá€á¡á áááºá¡ááá¯ááºážáá áºáá¯áá»ááºážá á®ááᯠááŒááºáááºááŒááºáááºááẠááá¯á¡ááºáááºá
áá¯á¶ááœá¯á¶áá±áž
ááá¯ážááŸááºážáá«áááºá ADMIN á¡áááºážááá¹ááá«áá±á¬ á¡áá¯á¶ážááŒá¯áá°áá»á¬áž ááŸáááẠ- áááºážááá¯á·ááẠáááºáá±á¬ááºážáá»á¬ážááᯠáááºážááŒááºááá¯ááºáááºá áááºážááá¯á·ááᯠáá»ááºáᬠá¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºááá¯ááºáááºá
á¡ááŒá¬ážá¡áá¯á¶ážááŒá¯áá°áá»á¬áž (ááŸááºáá¯á¶áááºáá¬ážááŒááºážááŸáá áááŸá) ááŸááá«áááºá áááºážááá¯á·ááẠááŒáá·áºá áœááºá á¬áá»á¬ážá á¬áááºážááá¯áᬠááŒáá·áºááŸá¯ááŒá®áž ááá¯á¡ááºááá·áºá¡áá¬áá»á¬ážááᯠááŸá¬ááœá±ááá¯ááºáááºá
Spring Security ááᯠáá®ážááŒá¬ážá¡ááœáá·áºá¡áá±ážá¡ááŒá Ạá¡áá¯á¶ážááŒá¯áá²á·áááºá á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááᯠáá±áá¬áá±á·á áºáá áºáá¯ááœáẠááááºážáááºážáá¬ážáááºá
á¡áá¯á¶ážááŒá¯áá°áá»á¬áž á á¬áááºážáá±ážááœááºážááá¯ááºáá«áááºá á¡áá¯áá±á¬á· áá¬á០ááá±ážáá°ážá áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáááºáá±á¬ááºááŸá¯ááᯠáááºáááºáááºáá®ážááŒá®áž á áááºááŒáá¯ááºáá¯ááºáá±á¬ááºááŸá¯á¡áá»áá¯á·ááᯠááááºáááºáá«áá ááŸááºáá¯á¶áááºááŒááºážááẠá¡áááºááŒá±áá¬áááºááŒá áºáááºá
áá¯á¶á·ááŒááºááŸá¯ááŸáá·áº Bootstrap
áá±á¬ááºáá áºáá¯ááá±á¬á· adaptability áá«á áá»áœááºá¯ááºááá¯á·ááááºáá±á¬ááºááŸá¯ááá á¹á ááœáẠ(á¡áááºážáá¯á¶ážáá»áœááºá¯ááºááá¯á·ááŒááºáá²á·ááá·áºá¡ááá¯ááºáž) á¡áá¯á¶ážááŒá¯áá°á¡áá»á¬ážá á¯ááẠááá¯ááá¯ááºážááºáá¯ááºážáá»á¬ážááŒáá·áº ááŸááá±áááºááŒá áºáááºá ááá·áºááá¯ááá¯ááºážááºáá¯ááºážá០ááŒáá·áºá áœááºá¡á¬áž á¡ááŒááºááŒáá·áºááŸá¯ááẠááá¯á¡ááºáá«áááºá
CSS ááŸáá·áºááááºážáá²á á±áááºá¡ááœáẠBootstrap ááá¯áá°áá²á·áááºá á á»á±ážáááºáááºáá¬áá¬á ááœáŸááºáááºážááŒá®áž ááŒáá·áºáá±á¬ááºážáááºá
á¡ááºáá¬áá±á·á áºá á¶ááŒááá¯á· áá±á«áºááá¯á· áááá°ážá áááºáá á¬áá»ááºááŸá¬ááẠááá¯ááááºážáá«ážááŒá®áž ááŒáá·áºá áœááºá á¬áá¡áá±ážá áááºáá±á¬áºááŒáá»ááºá¡ááœáẠá á¬áá»ááºááŸá¬ááẠáá»ááºážááŒá±á¬ááºážáááºá ááá¯ááá¯ááºážááºáá¯ááºážáá»á¬ážááœáẠáááºážááᯠááá¯ááá¯áá»ááºááŒáá·áºá¡á±á¬ááºááŒá¯áá¯ááºááẠááá¯á¡ááºáááºá
á¡áá¯ááºááᯠáááºááá¯ááºááá»áŸ ááŸá±á¬áá·áºááŸááºááá¯á· ááŒáá¯ážá á¬ážáááºááá¯á·áá² ááŒá±á¬ááá¯ááºáá«áááºá áá«á áá»á±á¬ááºážáá¬ážááá±á¬áá»ááºáá áºáᯠááŒá áºáá±áá¯ááºážáá²á áá¯ááºáá«áááºá áá±á¬ááºá»á¬ážááœá±á áá®ááá¯á¡ááá¯ááºá¡ááá·áºááœá±ááᯠááŒááºááá¯ááºáá«áááá·áºáááºá
SEO Optimization á áááá áº
áá»áœááºá¯ááºááẠáááºááá¯ááºáá»á¬ážááŸáá·áº SEO ááŸáá·áºáááºáááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááœáẠááŸá áºááŸá áºáá»á±á¬áº á¡áá®ážáááºáá«áááºáá±áá±á¬ááŒá±á¬áá·áº á¡áááºážáá¯á¶áž á¡ááŒá±áᶠSEO optimization ááá«áá² ááá±á¬áá»ááºáá áºáá¯ááᯠááá¯ááºááá¯ááºáá²á·áá«á
á¡ááŸááºáá±á¬á·á á¡ááá¯áááá¯ááááºáá áºáá¯á á®á¡ááœáẠTitle ááŸáá·áº Description á ááá°áá¬áá¯á¶á á¶áá áºáá¯ááᯠáááºáá®ážáá¬ážáááºá URL ááẠCNC áá®ážáá«ážááŒá áºáá±á¬áºáááºáž áááºážááᯠááá¯ááá¯á¡á±á¬ááºááŒá¯áá¯ááºááá¯ááºáááºá
áááºáá±á¬ááºáá° áá±á¬ááºáá¬ááœá±ááá¯áááºáž ááá·áºáá¬ážáá«áááºá ááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá»á¬ážá០ááááá±ážáá»ááºáá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºááẠYandex Webmaster ááŸáá·áº Google Search Console ááá¯á· ááá¯ááºááᯠáá±á«ááºážááá·áºáá²á·áááºá
ááá¯á¶áá±á¬ááºáá°ážá á¡ááœáŸááºážá¡ááŒáá·áºá¡á á¯á¶á¡ááœáẠrobots.txt ááŸáá·áº sitemap.xml ááá¯á·ááá¯áááºáž ááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá áá«áá±ááá·áº áá«á áá»á±á¬ááºážáá¬ážááá±á¬áá»ááºáá áºáá¯áá«á áá¯ááºá áá¬ááŸááá¬ááœá±ááᯠáá«ááŒá±á¬ááŒáááºá áá¯ááºáá»ááºááẠáá¯ááºáááºá
SSL áááºááŸááºááᯠááẠáá°ážááœá²áááºááŒááẠááá¯á¡ááºáá«áááºá á¡ááá²á· Let's Encrypt áááºáááºáž á¡áá¯ááºááŒá áºáá«áááºá áá«ááᯠSpring Boot á¡ááœáẠáá¯ááºáá²á·áááºá áá¯ááºááá¯á·ááááºáááᯠPS áá²á·áá¯á¶ááŒááºááŸá¯áááºáž ááá¯ážáá¬áá«áááºá
ááá±á¬áá»ááºá¡ááœáẠáá±á¬ááºáá áºáá¯á áá¬áá²á
ááááºáá±á¬á· ááœá±ážáá»ááºááŸá¯ááá¯áᬠáá±á¬ááºá»á¬ážááœá±áá²áá±á ááá±á¬áá»ááºá áá°áá áááºáá°ážááœáẠááŒáá·áºá áœááºáá á¹á ááºážáá»á¬ážááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ áá¯ááºáá¯ááºáá»á¬ážá áá±áá¬áá±á·á áºáá áºáá¯áááºáž áá«áááºáááºá
âSnickersâ ááá¯ááá¯ááºááá·áºááŒá®áž áááºážááœáẠá¡á¬áá¬áááŒáá·áºá áœááºá á¬áá»á¬áž áá«áááºáááºááᯠááŒáá·áºááŸá¯áá«á
ááá±á¬áá»ááºá¡á ááŸá¬áá±á¬áẠáá¯ááºáá¯ááºáá áºáá¯á០ááŸáááŸá¬ááá¯ááºáá°ážááá¯áá¬ááᯠáá«áááá²á·ááẠ:) áá«ááŒá±á¬áá·áº áá±á«ááºážááá·áºáá¯á¶áá²á·áᬠá áááºáá²á·áááºá
ááᯠáááºááẠáá¯ááºáá¯ááºáá»á¬ážááá·áºááá¯ááºááŒá®áž á¡ááá¯áá á¹á ááºážáá»á¬ážááᯠááááºáááºááá¯ááºáá«ááŒá®á áá±á«ááºáá¯áá·áºá áá»ááºááŒáá·áºáá±á¬ áá±áá¬áá±á·á áºáá áºáá¯ááŒá áºáá«á áá¯á¶ážá áœá²áá°áá»á¬áž ááŸááá¬áááºááŒá áºáááºá
ááŒáá·áºáá»ááº
ááá±á¬áá»ááºááᯠVPSá Aruba Cloud ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáááºá á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááŸá¬ááœá±ááá¯ááºááá·áº á¡áááºáá¬áá¯á¶áž VPS ááŒá áºáááºá áá»áœááºá¯ááºááẠá€áááºáá±á¬ááºááŸá¯áá±ážáá°ááᯠáá»áœááºá¯ááºáááá±á¬áá»ááºá¡ááœáẠáá áºááŸá áºáá»á±á¬áº á¡áá¯á¶ážááŒá¯áá²á·ááŒá®ážá áááºážááᯠáá»á±áááºá áœá¬ áá»á±áááºáá«áááºá
VPS ááá¹ááá¬áá»á¬áž- 1 GB RAMá 1 CPU (ááŒáááºááŸá¯ááºážá¡ááŒá±á¬ááºáž áá»áœááºáá±á¬áºááááá«) 20 GB SSDá áá»áœááºáá±á¬áºááá¯á·áá²á· ááá±á¬áá»ááºá¡ááœáẠáá¯á¶áá±á¬ááºáá«áááºá
ááá±á¬áá»ááºááẠáá¯á¶ááŸáẠmvn clean package ááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºáá¬ážáááºá ááááºááŸá¬ ááŸá®ááá¯ááŸá¯á¡á¬ážáá¯á¶ážáá«áááºááá·áº á¡áá®á¡áá¯ážáá áºáá¯ááŒá áºáááºá
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡áááºážáááºá¡ááá¯á¡áá»á±á¬ááºááŒááºáá¯ááºáááºá¡ááœáẠbash scripts á¡áá»áá¯á·ááᯠáá»áœááºáá±á¬áºáá±ážáá²á·áááºá
ááá script ááẠjar ááá¯ááºáá±á¬ááºážááᯠáá»ááºááŒá®áž á¡áá áºáá áºáᯠáááºáá±á¬ááºáááºá
áá¯ááá script ááẠá á¯á ááºážáá¬ážáá±á¬ jar ááá¯ááœáá·áºááŒá®áž ááá¯á¡ááºáá±á¬ áááá¯ááá¯ááºá¡áááºááᯠááŒááºáá±ážáááºá á€áááá¯ááá¯ááºááœáẠáá±áá¬áá±á·á áºáá»áááºáááºááŸá¯ á¡áá»ááºá¡áááºáá«ááŸááááºá
DB - áá°áá®áá±á¬ VPS áá±á«áºááœáẠMySQL á
á á¯á á¯áá±á«ááºáž ááá±á¬áá»áẠááŒááºáááºá áááºááŒááºážááœááº-
- SSH ááŸáááá·áº VPS ááá¯á·áááºáá±á¬ááºáá«á
- áá±á¬ááºáá¯á¶ážááœáẠgit á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«á
- local-jar.sh ááᯠrun áá«á
- áááºáááºáá±áá±á¬ application ááá¯áááºáá«á
- launch-production.sh ááá¯ááœáá·áºáá«á
á€áá¯ááºáááºážá ááºáááºáá¯á¶ážáááá áºááŒá¬áááºá á€áá²á·ááá¯á·áá±á¬ ááá±á¬áá»ááºáá±ážáá±ážáá±ážá¡ááœáẠáá»áœááºá¯ááºá¡ááœáẠá áááºáá»áá±á¬ ááœá±ážáá»ááºááŸá¯áá áºáá¯ááŒá áºáááºá
ááŸá¯ááºááœá±áž
ááá±á¬áá»ááºááᯠáááºáá®ážáá¬ááœáẠá¡áááá¡áááºá¡áá²ááŸá¬ á¡ááœá²á·á¡á ááºážá ááá±á¬ááá¬áááŒá áºáááºá
áááá¯ááááºáá¯ááºáááºážááᯠáááá¯á¶ááá±á«áºáá±á¬ áá°áá áºá á¯ááŸááá±á¬áºáááºáž áá±á¬ááºážá áœá¬ áá¬ážááááºáá«á áá°ááá¯á·ááẠáá áºáá¯áá¯ááᯠáááá±á¬áºáááºáž áááºážááᯠá¡ááŸááºáááẠá¡áá¯á¶ážáá»ááá¯ááºááŒááºáž áááŸááá±ážáá«á ááá¯áááºáž áá°ááá¯á·ááẠááá±á¬áá»ááºááᯠáá áºáá¡ááœááºáž á¡ááŒá®ážáááºááẠááá¯á¡ááºáááºá
á€á¡ááœá²á·ááŸá á¡ááŒá±á¡áá±áááºááŸááºáá¬ážáá±á¬ á¡ááœá²á·áá±á«ááºážáá±á¬ááºáá áºáŠážááᯠáá»áœááºá¯ááºáá±á¬áºáá¯ááºáá²á·áááºá áá¯ááºáá±á¬ááºá áá¬áá»á¬ážá á¬áááºážá ááŒáá·áºáá±áá¬ážáá±á¬ áá¯ááºáá±á¬ááºá áá¬áá»á¬ážááŸáá·áºá¡áá° Google Doc ááᯠááááºážáááºážáá¬ážááŒá®áž áááºážááá¯á·á áááºáá¶ááŸá¯ááᯠááááºážáá»á¯ááºáá¬ážáááºá ááœá²áááºááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááá¯áááºáž áááºáá¶áá²á·áááºá
ááá±ááá¯ááºáž ááá±á¬áá»ááºááŸá¬ áá¯ááºáá²á·áá²á· á¡áá¯ááºáá²á· áááºáááºááŒá®áž áá»á±á¬ááºážáá¬ážááœá±ááᯠá¡á á®áááºáá¶á ᬠá¡ááá¯áá»áá±ážááá¯ááºážáááºá áá¬ááŸááá¯ááºáá²á·áá°ážááá¯ááẠOKá "áá¬ááŸááá¯ááºáá²á·áá°áž" ááá¯á·áá±ážááá¯ááºáá«á áá«á á¡áááºážáá±á¬ááºážáá²á· á¡áá±á·á¡áá»áá·áºááŒá áºááŒá®áž áááºážááᯠáááºážáááºáž áááºážáá¬á á±áááºá áá¶ááá±á¬ááºážá áœá¬áá²á·áá² áá°ááá¯ááºážá áá®á ááºážáááºážááᯠáááá¯ááºáá¬ááŒáá«áá°ážá
áá®ááŸá¯ááºááŸá¬ážááŸá¯áá²á· áááºááœááºáá»ááºá ááá¯ážááŸááºážáá«áááºá á¡áá»áááºááá¯á¡ááœááºáž áááºááœá²áá¯ááºáá±á¬ááºááẠá¡ááœá²á·áá áºáá¯ááœá²á·áá«á
áá±á¬ááºá»á¬ážáá±ážááœá±á áá°ááá¯á·á¡áá¯ááºá á¡áá±ážááŒá®ážáááºááá¯á· áá¶á á¬ážá á±áá»ááºáááºá áá±áá¬áááºáá²ááœáẠáá¯á¶ážáááºáá¯ááºááá±ážááŒá±á¬ááºáž áá¬ážáááºáá«á ááŒá®ážáá±á¬á· áá°ááá¯á·á¡áá°áááœáá¯ááºáá±áá²á· ááá±á¬áá»ááºá áá°ááœá±áá¯á¶ážááá·áº ááá±á¬áá»ááºáá áºáá¯áá«á
áááááẠááá¯á·ááá¯áẠááŸá áºáááºáá±á¬ááºá áááºáá±á¬ááºááŸá¯áá áºáá¯áá«á á¡ááœá²á·á¡á ááºážáá»á¬ážááŸáá·áº áááááááºáááºáá»á¬ážááᯠááŸá±ážááœá±ážá áœá¬ ááŒá¯áá¯ááºáá²á·áááºá ááŒááºážááŒááºážáá»ááºáž áá°ááá¯á·ááᯠááŸáá¯ážáá±á¬áºááŒá®áž á¡áá¯ááºá ááá¯áá»á±á¬áºáá¬áá²á·áááºá á áá¬ážááŒá±á¬áááºážááœáẠáááºááœááºáá±áž ááá¯ááá¯ááœááºáááºáá¬ááŒá®áž áá»á±á¬ááºážáá¬ážáá»á¬ážá áááºážááá¯á·á áááºáá±á¬ááºážáá»á¬ážááᯠáááºážááŸááºážáá²á·áááºá
áááºážááá¯ááºáá±á¬ááºááŒá®ááá¯á· áá¯á¶ááŒááºáá«áááºá ááá±á¬áá»ááºááŒá®ážááœá¬ážáá±á¬á· á¡ááœá²á·ááá¯ááºáá¯ááºááá²á· á¡ááœá±á·á¡ááŒá¯á¶áá±ážááœá± ááá¬áááºá ááŒááºáá¬áááºáá¬áááºáá¬ááŸááá±á¬ ááááºááᯠáá°áááºáá»ááºážáá»á¬ážáᶠááŒáááŒá®áž ááá¯ááá¯ááá¯ážáááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºááẠá
ááœá±á·ááŸááá»ááºáá»á¬áž
áááºáá°ááŒááºážááẠá áááºáááºá á¬ážá áá¬áá±á¬ááºážáááºá
á¡áááºážááŒá®ážááá¯ááºáž á áááºáá¬ááºááœá± áá¯ááºááŸá¯ááºáá¬áááºá á¡ááœá²áá áºááœá²áá»ááºážá á®ááᯠáá°ážáá°ážááŒá¬ážááŒá¬ážááŒá áºá¡á±á¬áẠáááºááá¯ááºááá»áŸ ááá¯áá¯áááœá± áá±áá»áŸááá¯á· ááŒáá¯ážá á¬ážáá±áá«áááºá
áá»áœááºáá±á¬áºáááºáá±ážáá²á·á¡ááœá²á· ááá¯ááºáááºáá±á¬ááºáá²á·á¡áá« á¡áááºážáá±á¬ááºážáá«áááºá á¡áá°ážáááŒáá·áº âáá»áœááºáá±á¬áº á¡áá¯ááºááá«ááŒá®á á¡á¬ážáá¯á¶ážá¡áááºááŒá±áá«áááºá áá»á±ážáá°ážáááºáá«áááºâ ááá¯á· áá±á¬ááºá»á¬ážáá±ážááœá±á áá±ážáá²á·á¡áá«ááŸá¬ á¡áááºážáá±á¬ááºážáá«áááºá áááºáááºáá¯ááºážááá±á¬áẠááá¯ááºáá¶á¡ááŒá®ážáá¯á¶ážááá¯ááºáááºáá±á¬ááºá áá«áá±ááá·áº á¡áá±ážááŒá®ážáá¯á¶ážááá±á¬á· áá°ááá¯á·áá²á· ááá¹áááœá±áá®ááᯠááŒá±ááŸááºážááŸááºážááŒá®áž á¡á±á¬ááºááŒááºááá¯á·áá«áá²á
áá±á¬ááºážáá«ážááẠáá±á¬ááºááŒá±á¬ááºáá±áá±á¬áºáááºáž á¡áá»ááºá¡á¬ážáá¯á¶ážááᯠááŒá¯á¶áá¯á¶ááááẠáááŒá áºááá¯ááºáá±á ááá¯á·ááŒá±á¬áá·áº ááá·áºáá±ážááœááºážáá»á¬ážááᯠcomment ááœááºáá±ážáá«á
source: www.habr.com