vvvvvvvvvvcccccccccccccxxxxxxxxxxxxzzzzzzzzzzzzzzzzzz
ggggggggggggvvvvvvvvvvvvvvffffffffffffddddddd
llllllllllllllllllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kkkkkkkkkkkkkkkkkkkkkkkkkkkkkhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh