# #  #  ### # #  #  ### ###  #  ### 
### # # # # # # # #  #   #  # # # # 
### ### # # ### ###  #   #  ### # # 
# # # # # # # # # #  #   #  # # # # 
# # # # # # # # # #  #   #  # # # # 
