abstract gen.
░░░░██╗░░░░██╗░░░░██╗░░░░██╗░░░░██╗░░░░██╗░░░░██╗░░░░██╗░ ░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░ ░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░ ░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░ ██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░░ ╚═╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░░░ ░░░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╗ ░░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝ ░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░ ░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░ ░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░ ██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░░ ╚═╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██ ░░░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔ ░░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝ ░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░ ░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░ ░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░██╔╝░░░ ░╚═╝░░░░╚═╝░░░░╚═╝░░░░╚═╝░░░░╚═╝░░░░╚═╝░░░░╚═╝░░░░╚═╝░░░░