++++++++++++++++ ++++++++++++++++ ++##--------##++ ++##--------##++ ++------------++ ++------------++ ++------------++ ++------------++ ++##--------##++ ++##--------##++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++#--#-#-#-#-#++ ++------------++ ++#-#-#-#-#--#++ ++------------++ ++#--#-#-#-#-#++ ++------------++ ++--#-#-#-#---++ ++#-########-#++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++############++ ++#----------#++ ++#-########-#++ ++--#------#-#++ ++--#--------#++ ++#-########-#++ ++#----------#++ ++############++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++##--------##++ ++##-ffffff-##++ ++---f----f---++ ++--------f---++ ++--------f---++ ++---f----f---++ ++##-ffffff-##++ ++##--------##++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++++++++++++++++ ++##ffffffff##++ ++##--------##++ ++------------++ ++---######---++ ++---######---++ ++------------++ ++##--------##++ ++##ffffffff##++ ++++++++++++++++ ++++++++++++++++