*--*  *--*--*--*--*--*--*--*  *--*  *--*--*--*--*--*--*
|  |  |        |  |        |  |  |  |  |  |           |
*  *--*--*--*--*  *--*--*  *--*  *--*  *  *--*--*--*--*
|              |  |     |              |  |  |         
*--*  *--*--*--*  *  *--*  *--*--*  *--*  *  *--*--*--*
|  |  |        |  |  |     |     |  |     |           |
*  *  *--*--*  *--*  *--*  *--*  *  *  *--*--*--*--*  *
|  |        |  |        |     |  |  |  |           |  |
*--*--*--*  *  *--*--*  *--*  *  *  *--*  *--*--*  *  *
      |  |  |        |     |  |  |     |  |     |  |  |
*--*  *--*  *  *--*  *  *--*  *  *--*--*  *  *--*  *  *
|  |     |  |  |  |  |  |  |  |     |     |  |     |  |
*  *  *  *--*  *  *  *  *  *  *--*  *  *--*  *  *--*  *
|  |  |  |  |  |  |  |  |  |     |  |  |     |  |     |
*  *--*  *  *  *  *  *  *  *--*--*  *  *  *--*  *  *--*
|     |  |  |  |  |  |  |           |  |  |  |  |  |   
*--*  *  *--*--*  *  *  *  *--*--*--*  *  *  *  *  *--*
|  |  |           |  |  |  |        |  |  |  |  |     |
*  *  *--*--*--*--*  *  *  *--*  *--*  *  *--*  *--*  *
|  |  |              |  |     |  |  |  |  |        |  |
*  *  *--*--*--*--*--*  *--*  *  *  *  *  *--*--*  *  *
|  |     |  |              |  |  |  |  |        |  |  |
*  *--*  *  *--*--*--*--*--*  *  *  *  *--*--*  *  *  *
|     |  |           |        |  |  |        |  |  |  |
*--*  *  *--*--*--*  *  *--*--*  *  *--*--*  *  *  *  *
|  |  |           |  |  |  |     |        |  |  |  |  |
*  *--*  *--*--*--*  *  *  *--*--*--*--*  *  *  *  *  *
|        |           |  |     |        |  |  |  |  |  |
*  *--*--*--*--*--*--*  *--*  *--*  *--*  *  *  *  *--*
|                          |  |  |  |     |  |  |      
*--*--*  *--*--*--*--*--*--*  *  *  *  *--*  *  *--*--*
      |  |           |     |  |  |  |  |  |  |        |
*--*--*  *  *--*--*--*--*--*  *  *  *--*  *  *  *--*  *
|        |  |                 |  |     |  |  |  |  |  |
*  *--*--*  *--*--*  *--*--*--*  *--*  *--*  *--*  *  *
|  |  |     |     |  |  |        |  |              |  |
*--*  *--*--*  *  *--*  *--*--*--*  *--*--*--*--*--*  *