Задание было сложным, в виду расплывчатого ТЗ и неких личных нетривиальностей , но в итоге, мы справились...)