****************************************************************************************
*         *                                    ** *                                    *
**** ****** **********************************    * * *******************************  *
* *         *                                * ****** *                                *
* * **** **** ****************************** * *      * ******* ************** ******* *
* * * *     * *   *                  *     * * * ****** *   * * *   **       * *     * *
*   * * **  *   *   * ************** *  **** * *      *   *   *   ***  ***** * * ***   *
***** * *   * *********  * *         *       * ****** * *********** ** *   * * *     * *
*     * * *** *          *   ************  *** *      * *            * * *   * ******* *
* ***** * *   *       ********     *       *   * * ** * * ********** * ******* *       *
*       * * *** *******      * *** * ******* *** ***  * * *        * * * *   * * * *****
********* * *   *     * **** * * * *       *       **** * * ****** * *   * * *   * *   *
*   *   *     ******* * *  * * *   ** **** ******* *    * * *    * * * * * * *** * * * *
* * * * *******   *   * * ** * * ******* * *     * * **** * * ** * * * * * *     * * * *
* * * * *     * *   *   *    * *         * * *** * * *  * * * *A * * * * * * * * *   * *
* *   * * ***** ************** *********** * * * * * *  * * * **** * * * * * * * ***** *
* ***** *  *                             * * *   * * *  * * *      * * * * * * *       *
*       ** * *************************** * * ***** * *  * * ******** * * * * * * *******
*** *****  * *   *   *           *       * *       *    * *          * *   *   *       *
*D  *   **** * * * * * ********* ********* ************ * ******************************
*** * * *    * * * *    *                * *        *   *                              *
* * * * * **** * * ****** ************** * ******** * * ****************************** *
* * * * *    * *        *              * * *        * *           *             *      *
* * * * * * ** ******** ************** * * * ******** *********** * * *********** ******
*     *   *             *              *   *                    *   *                  *
****************************************************************************************
