XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX---------XXX----------XXX----------XXX-----------XXXX
XXX----XXXXXXX---XXXXXXXXXXX---XXXXX---XXXXXXXXX
XXXX--------XXX--------XXXXXXXX---XXXXX--------XXXXXX
XXXXXXX----XXX---XXXXXXXXXXX---XXXXX---XXXXXXXXX
XXX--------XXXX-----------XXX-----------XXX---XXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX