diff options
Diffstat (limited to 'keyboards/p3d')
-rw-r--r-- | keyboards/p3d/glitch/config.h | 22 | ||||
-rw-r--r-- | keyboards/p3d/glitch/glitch.c | 2 | ||||
-rw-r--r-- | keyboards/p3d/glitch/glitch.h | 40 | ||||
-rw-r--r-- | keyboards/p3d/glitch/info.json | 261 | ||||
-rw-r--r-- | keyboards/p3d/glitch/matrix_diagram.md | 21 |
5 files changed, 207 insertions, 139 deletions
diff --git a/keyboards/p3d/glitch/config.h b/keyboards/p3d/glitch/config.h index 961897c4d6..a754828053 100644 --- a/keyboards/p3d/glitch/config.h +++ b/keyboards/p3d/glitch/config.h @@ -17,23 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ - -/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */ -#define MATRIX_ROW_PINS { D5, D6, B6, D7, C7, B4, B5, D3, D4, C6 } -#define MATRIX_COL_PINS { B2, D2, B3, B7, F5, F4, F1, F0 } - -#define RGB_DI_PIN B1 #define RGBLED_NUM 25 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD @@ -46,11 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -#define USB_MAX_POWER_CONSUMPTION 400 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/p3d/glitch/glitch.c b/keyboards/p3d/glitch/glitch.c index 9957e0c7ad..6680e6506a 100644 --- a/keyboards/p3d/glitch/glitch.c +++ b/keyboards/p3d/glitch/glitch.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "glitch.h" +#include "quantum.h" #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/p3d/glitch/glitch.h b/keyboards/p3d/glitch/glitch.h deleted file mode 100644 index 4b4f77396b..0000000000 --- a/keyboards/p3d/glitch/glitch.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright 2021 Matthew Dias - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#pragma once - -#define XXX KC_NO - -#include "quantum.h" - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K21, K22, K23, K24, K25, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ - K40, K41, K43, K45, K47, K49, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K02, K04, K06, K08, K0A, K0C, K0E }, \ - { K01, K03, K05, K07, K09, K0B, K0D, K0F }, \ - { K10, K12, K14, XXX, K18, K1A, K1C, K1E }, \ - { K11, K13, K15, K17, K19, K1B, K1D, K1F }, \ - { K20, K22, K24, XXX, K28, K2A, K2C, K2E }, \ - { K21, K23, K25, K27, K29, K2B, XXX, K2F }, \ - { K30, K32, K34, K36, K38, K3A, K3C, K3E }, \ - { XXX, K33, K35, K37, K39, K3B, K3D, K3F }, \ - { K40, XXX, XXX, XXX, XXX, XXX, K4C, K4E }, \ - { K41, K43, K45, K47, K49, K4B, K4D, K4F } \ -} diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json index 9aee029a07..4f323df447 100644 --- a/keyboards/p3d/glitch/info.json +++ b/keyboards/p3d/glitch/info.json @@ -6,93 +6,202 @@ "usb": { "vid": "0x7033", "pid": "0x3568", - "device_version": "0.0.1" + "device_version": "0.0.1", + "max_power": 400 }, + "matrix_pins": { + "cols": ["B2", "D2", "B3", "B7", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D6", "B6", "D7", "C7", "B4", "B5", "D3", "D4", "C6"] + }, + "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "F6", "pin_b": "F7", "resolution": 2} ] }, + "ws2812": { + "pin": "B1" + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { "LAYOUT_all": { "layout": [ - { "label": "ESC", "x": 0.5, "y": 0.5 }, - { "label": "1", "x": 1.5, "y": 0.5 }, - { "label": "2", "x": 3.25, "y": 1.0 }, - { "label": "3", "x": 4.25, "y": 1.0 }, - { "label": "4", "x": 5.25, "y": 1.0 }, - { "label": "5", "x": 6.25, "y": 1.0 }, - { "label": "6", "x": 7.25, "y": 1.0 }, - { "label": "7", "x": 10, "y": 1.0 }, - { "label": "8", "x": 11, "y": 1.0 }, - { "label": "9", "x": 12, "y": 1.0 }, - { "label": "0", "x": 13, "y": 1.0 }, - { "label": "_", "x": 14.5, "y": 0.6 }, - { "label": "+", "x": 15.5, "y": 0.6 }, - { "label": "Back", "x": 16.5, "y": 0.6 }, - { "label": "Del", "x": 17.5, "y": 0.6 }, - { "x": 19.1, "y": 0.1 }, - - { "label": "TAB", "x": 0.15, "y": 1.5, "w": 1.5 }, - { "label": "Q", "x": 1.65, "y": 1.5 }, - { "label": "W", "x": 3.75, "y": 2.0 }, - { "label": "E", "x": 4.75, "y": 2.0 }, - { "label": "R", "x": 5.75, "y": 2.0 }, - { "label": "T", "x": 6.75, "y": 2.0 }, - { "label": "Y", "x": 9.5, "y": 2.0 }, - { "label": "U", "x": 10.5, "y": 2.0 }, - { "label": "I", "x": 11.5, "y": 2.0 }, - { "label": "O", "x": 12.5, "y": 2.0 }, - { "label": "P", "x": 14.35, "y": 1.6 }, - { "label": "[", "x": 15.35, "y": 1.6 }, - { "label": "]", "x": 16.35, "y": 1.6 }, - { "label": "\\", "x": 17.35, "y": 1.6, "w": 1.5 }, - { "x": 19.1, "y": 1.6 }, - - { "label": "CAPS", "x": 0.15, "y": 2.5, "w": 1.75 }, - { "label": "A", "x": 1.9, "y": 2.5 }, - { "label": "S", "x": 4, "y": 3.0 }, - { "label": "D", "x": 5, "y": 3.0 }, - { "label": "F", "x": 6, "y": 3.0 }, - { "label": "G", "x": 7, "y": 3.0 }, - { "label": "H", "x": 9.75, "y": 3.0 }, - { "label": "J", "x": 10.75, "y": 3.0 }, - { "label": "K", "x": 11.75, "y": 3.0 }, - { "label": "L", "x": 12.75, "y": 3.0 }, - { "label": ";", "x": 14.6, "y": 2.6 }, - { "label": "'", "x": 15.6, "y": 2.6 }, - { "label": "ENTER", "x": 16.6, "y": 2.6, "w": 2.25 }, - { "x": 19.1, "y": 2.6 }, - - { "label": "SHIFT", "x": 0, "y": 3.5, "w": 2.25 }, - { "label": "Z", "x": 2.25, "y": 3.5 }, - { "label": "X", "x": 4.5, "y": 4.0 }, - { "label": "C", "x": 5.5, "y": 4.0 }, - { "label": "V", "x": 6.5, "y": 4.0 }, - { "label": "B", "x": 7.5, "y": 4.0 }, - { "label": "BEE", "x": 9.25, "y": 4.0 }, - { "label": "N", "x": 10.25, "y": 4.0 }, - { "label": "M", "x": 11.25, "y": 4.0 }, - { "label": ",", "x": 12.25, "y": 4.0 }, - { "label": ".", "x": 14.25, "y": 3.6 }, - { "label": "?", "x": 15.25, "y": 3.6 }, - { "label": "SHIFT", "x": 16.25, "y": 3.6, "w": 1.75 }, - { "label": "UP", "x": 18.25, "y": 3.85 }, - { "x": 19.5, "y": 3.6 }, - - { "label": "CTRL", "x": 0, "y": 4.5, "w": 1.25 }, - { "label": "WIN", "x": 1.25, "y": 4.5, "w": 1.25 }, - { "x": 4.75, "y": 5.0, "w": 2.75 }, - { "label": "ALT", "x": 7.5, "y": 5.0, "w": 1.25 }, - { "label": "ALT", "x": 9.5, "y": 5.0, "w": 1.25 }, - { "x": 10.75, "y": 5.0, "w": 2.25 }, - { "label": "WIN", "x": 15, "y": 4.6 }, - { "label": "CTRL", "x": 16, "y": 4.6 }, - { "label": "LEFT", "x": 17.25, "y": 4.85 }, - { "label": "DOWN", "x": 18.25, "y": 4.85 }, - { "label": "RIGHT", "x": 19.25, "y": 4.85 } + {"label": "Esc", "matrix": [0, 0], "x": 0.5, "y": 0.5}, + {"label": "1", "matrix": [1, 0], "x": 1.5, "y": 0.5}, + {"label": "2", "matrix": [0, 1], "x": 3.25, "y": 0.5}, + {"label": "3", "matrix": [1, 1], "x": 4.25, "y": 0.5}, + {"label": "4", "matrix": [0, 2], "x": 5.25, "y": 0.5}, + {"label": "5", "matrix": [1, 2], "x": 6.25, "y": 0.5}, + {"label": "6", "matrix": [0, 3], "x": 7.25, "y": 0.5}, + + {"label": "7", "matrix": [1, 3], "x": 10, "y": 0.5}, + {"label": "8", "matrix": [0, 4], "x": 11, "y": 0.5}, + {"label": "9", "matrix": [1, 4], "x": 12, "y": 0.5}, + {"label": "0", "matrix": [0, 5], "x": 13, "y": 0.5}, + {"label": "-", "matrix": [1, 5], "x": 14.5, "y": 0.5}, + {"label": "=", "matrix": [0, 6], "x": 15.5, "y": 0.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 16.5, "y": 0.5}, + {"label": "Delete", "matrix": [0, 7], "x": 17.5, "y": 0.5}, + + {"label": "Mute", "matrix": [1, 7], "x": 19, "y": 0}, + + {"label": "Tab", "matrix": [2, 0], "x": 0.15, "y": 1.5, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.65, "y": 1.5}, + {"label": "W", "matrix": [2, 1], "x": 3.75, "y": 1.5}, + {"label": "E", "matrix": [3, 1], "x": 4.75, "y": 1.5}, + {"label": "R", "matrix": [2, 2], "x": 5.75, "y": 1.5}, + {"label": "T", "matrix": [3, 2], "x": 6.75, "y": 1.5}, + + {"label": "Y", "matrix": [3, 3], "x": 9.5, "y": 1.5}, + {"label": "U", "matrix": [2, 4], "x": 10.5, "y": 1.5}, + {"label": "I", "matrix": [3, 4], "x": 11.5, "y": 1.5}, + {"label": "O", "matrix": [2, 5], "x": 12.5, "y": 1.5}, + {"label": "P", "matrix": [3, 5], "x": 14.25, "y": 1.5}, + {"label": "[", "matrix": [2, 6], "x": 15.25, "y": 1.5}, + {"label": "]", "matrix": [3, 6], "x": 16.25, "y": 1.5}, + {"label": "\\", "matrix": [2, 7], "x": 17.25, "y": 1.5, "w": 1.5}, + + {"label": "Page Up", "matrix": [3, 7], "x": 19, "y": 1.5}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0.15, "y": 2.5, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.9, "y": 2.5}, + {"label": "S", "matrix": [4, 1], "x": 4, "y": 2.5}, + {"label": "D", "matrix": [5, 1], "x": 5, "y": 2.5}, + {"label": "F", "matrix": [4, 2], "x": 6, "y": 2.5}, + {"label": "G", "matrix": [5, 2], "x": 7, "y": 2.5}, + + {"label": "H", "matrix": [5, 3], "x": 9.75, "y": 2.5}, + {"label": "J", "matrix": [4, 4], "x": 10.75, "y": 2.5}, + {"label": "K", "matrix": [5, 4], "x": 11.75, "y": 2.5}, + {"label": "L", "matrix": [4, 5], "x": 12.75, "y": 2.5}, + {"label": ";", "matrix": [5, 5], "x": 14.5, "y": 2.5}, + {"label": "'", "matrix": [4, 6], "x": 15.5, "y": 2.5}, + {"label": "Enter", "matrix": [4, 7], "x": 16.5, "y": 2.5, "w": 2.25}, + + {"label": "Page Down", "matrix": [5, 7], "x": 19, "y": 2.5}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3.5}, + {"label": "X", "matrix": [7, 1], "x": 4.5, "y": 3.5}, + {"label": "C", "matrix": [6, 2], "x": 5.5, "y": 3.5}, + {"label": "V", "matrix": [7, 2], "x": 6.5, "y": 3.5}, + {"label": "B", "matrix": [6, 3], "x": 7.5, "y": 3.5}, + + {"label": "B", "matrix": [7, 3], "x": 9.25, "y": 3.5}, + {"label": "N", "matrix": [6, 4], "x": 10.25, "y": 3.5}, + {"label": "M", "matrix": [7, 4], "x": 11.25, "y": 3.5}, + {"label": ",", "matrix": [6, 5], "x": 12.25, "y": 3.5}, + {"label": ".", "matrix": [7, 5], "x": 14.25, "y": 3.5}, + {"label": "/", "matrix": [6, 6], "x": 15.25, "y": 3.5}, + {"label": "Shift", "matrix": [7, 6], "x": 16.25, "y": 3.5, "w": 1.75}, + + {"label": "\u2191", "matrix": [6, 7], "x": 18.25, "y": 3.75}, + + {"label": "End", "matrix": [7, 7], "x": 19.5, "y": 3.5}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "GUI", "matrix": [9, 0], "x": 1.25, "y": 4.5, "w": 1.25}, + {"label": "Alt", "matrix": [9, 1], "x": 4.75, "y": 4.5, "w": 2.75}, + {"label": "Space", "matrix": [9, 2], "x": 7.5, "y": 4.5, "w": 1.25}, + + {"label": "Space", "matrix": [9, 3], "x": 9.5, "y": 4.5, "w": 1.25}, + {"label": "Alt", "matrix": [9, 4], "x": 10.75, "y": 4.5, "w": 2.25}, + {"label": "GUI", "matrix": [9, 5], "x": 15, "y": 4.5}, + {"label": "Ctrl", "matrix": [8, 6], "x": 16, "y": 4.5}, + + {"label": "\u2190", "matrix": [9, 6], "x": 17.25, "y": 4.75}, + {"label": "\u2193", "matrix": [8, 7], "x": 18.25, "y": 4.75}, + {"label": "\u2192", "matrix": [9, 7], "x": 19.25, "y": 4.75} + ] + }, + "LAYOUT_2u_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0.5, "y": 0.5}, + {"label": "1", "matrix": [1, 0], "x": 1.5, "y": 0.5}, + {"label": "2", "matrix": [0, 1], "x": 3.25, "y": 0.5}, + {"label": "3", "matrix": [1, 1], "x": 4.25, "y": 0.5}, + {"label": "4", "matrix": [0, 2], "x": 5.25, "y": 0.5}, + {"label": "5", "matrix": [1, 2], "x": 6.25, "y": 0.5}, + {"label": "6", "matrix": [0, 3], "x": 7.25, "y": 0.5}, + + {"label": "7", "matrix": [1, 3], "x": 10, "y": 0.5}, + {"label": "8", "matrix": [0, 4], "x": 11, "y": 0.5}, + {"label": "9", "matrix": [1, 4], "x": 12, "y": 0.5}, + {"label": "0", "matrix": [0, 5], "x": 13, "y": 0.5}, + {"label": "-", "matrix": [1, 5], "x": 14.5, "y": 0.5}, + {"label": "=", "matrix": [0, 6], "x": 15.5, "y": 0.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 16.5, "y": 0.5, "w": 2}, + + {"label": "Mute", "matrix": [1, 7], "x": 19, "y": 0}, + + {"label": "Tab", "matrix": [2, 0], "x": 0.15, "y": 1.5, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.65, "y": 1.5}, + {"label": "W", "matrix": [2, 1], "x": 3.75, "y": 1.5}, + {"label": "E", "matrix": [3, 1], "x": 4.75, "y": 1.5}, + {"label": "R", "matrix": [2, 2], "x": 5.75, "y": 1.5}, + {"label": "T", "matrix": [3, 2], "x": 6.75, "y": 1.5}, + + {"label": "Y", "matrix": [3, 3], "x": 9.5, "y": 1.5}, + {"label": "U", "matrix": [2, 4], "x": 10.5, "y": 1.5}, + {"label": "I", "matrix": [3, 4], "x": 11.5, "y": 1.5}, + {"label": "O", "matrix": [2, 5], "x": 12.5, "y": 1.5}, + {"label": "P", "matrix": [3, 5], "x": 14.25, "y": 1.5}, + {"label": "[", "matrix": [2, 6], "x": 15.25, "y": 1.5}, + {"label": "]", "matrix": [3, 6], "x": 16.25, "y": 1.5}, + {"label": "\\", "matrix": [2, 7], "x": 17.25, "y": 1.5, "w": 1.5}, + + {"label": "Page Up", "matrix": [3, 7], "x": 19, "y": 1.5}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0.15, "y": 2.5, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.9, "y": 2.5}, + {"label": "S", "matrix": [4, 1], "x": 4, "y": 2.5}, + {"label": "D", "matrix": [5, 1], "x": 5, "y": 2.5}, + {"label": "F", "matrix": [4, 2], "x": 6, "y": 2.5}, + {"label": "G", "matrix": [5, 2], "x": 7, "y": 2.5}, + + {"label": "H", "matrix": [5, 3], "x": 9.75, "y": 2.5}, + {"label": "J", "matrix": [4, 4], "x": 10.75, "y": 2.5}, + {"label": "K", "matrix": [5, 4], "x": 11.75, "y": 2.5}, + {"label": "L", "matrix": [4, 5], "x": 12.75, "y": 2.5}, + {"label": ";", "matrix": [5, 5], "x": 14.5, "y": 2.5}, + {"label": "'", "matrix": [4, 6], "x": 15.5, "y": 2.5}, + {"label": "Enter", "matrix": [4, 7], "x": 16.5, "y": 2.5, "w": 2.25}, + + {"label": "Page Down", "matrix": [5, 7], "x": 19, "y": 2.5}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3.5}, + {"label": "X", "matrix": [7, 1], "x": 4.5, "y": 3.5}, + {"label": "C", "matrix": [6, 2], "x": 5.5, "y": 3.5}, + {"label": "V", "matrix": [7, 2], "x": 6.5, "y": 3.5}, + {"label": "B", "matrix": [6, 3], "x": 7.5, "y": 3.5}, + + {"label": "B", "matrix": [7, 3], "x": 9.25, "y": 3.5}, + {"label": "N", "matrix": [6, 4], "x": 10.25, "y": 3.5}, + {"label": "M", "matrix": [7, 4], "x": 11.25, "y": 3.5}, + {"label": ",", "matrix": [6, 5], "x": 12.25, "y": 3.5}, + {"label": ".", "matrix": [7, 5], "x": 14.25, "y": 3.5}, + {"label": "/", "matrix": [6, 6], "x": 15.25, "y": 3.5}, + {"label": "Shift", "matrix": [7, 6], "x": 16.25, "y": 3.5, "w": 1.75}, + + {"label": "\u2191", "matrix": [6, 7], "x": 18.25, "y": 3.75}, + + {"label": "End", "matrix": [7, 7], "x": 19.5, "y": 3.5}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "GUI", "matrix": [9, 0], "x": 1.25, "y": 4.5, "w": 1.25}, + {"label": "Alt", "matrix": [9, 1], "x": 4.75, "y": 4.5, "w": 2.75}, + {"label": "Space", "matrix": [9, 2], "x": 7.5, "y": 4.5, "w": 1.25}, + + {"label": "Space", "matrix": [9, 3], "x": 9.5, "y": 4.5, "w": 1.25}, + {"label": "Alt", "matrix": [9, 4], "x": 10.75, "y": 4.5, "w": 2.25}, + {"label": "GUI", "matrix": [9, 5], "x": 15, "y": 4.5}, + {"label": "Ctrl", "matrix": [8, 6], "x": 16, "y": 4.5}, + + {"label": "\u2190", "matrix": [9, 6], "x": 17.25, "y": 4.75}, + {"label": "\u2193", "matrix": [8, 7], "x": 18.25, "y": 4.75}, + {"label": "\u2192", "matrix": [9, 7], "x": 19.25, "y": 4.75} ] } } diff --git a/keyboards/p3d/glitch/matrix_diagram.md b/keyboards/p3d/glitch/matrix_diagram.md new file mode 100644 index 0000000000..be3874f4f3 --- /dev/null +++ b/keyboards/p3d/glitch/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for P3D Glitch + +``` + ┌───────┐ + 2u Backspace │16 │ + └───────┘┌───┐ + ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐│17 │ + │00 │10 │01 │11 │02 │12 │03 │ │13 │04 │14 │05 │15 │06 │16 │07 │└───┘ +┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤┌───┐ +│20 │30 │21 │31 │22 │32 │ │33 │24 │34 │25 │35 │26 │36 │27 ││37 │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ +│40 │50 │41 │51 │42 │52 │ │53 │44 │54 │45 │55 │46 │47 ││57 │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─────┬──┘└─┬─┴─┐ +│60 │61 │71 │62 │72 │63 │ │73 │64 │74 │65 │75 │66 │76 │┌───┐│77 │ +├────┬───┴┬──┴┬──┴───┴───┼───┴┐ └┬──┴─┬─┴───┴──┬┴──┬┴──┬┴──┬───┘│67 │└───┘ +│80 │90 │ │91 │92 │ │93 │94 │ │95 │86 │┌───┼───┼───┐ +└────┴────┘ └──────────┴────┘ └────┴────────┘ └───┴───┘│96 │87 │97 │ + ┌────┬──────────┐ ┌────────┬────┐ └───┴───┴───┘ + │91 │92 │ │93 │94 │ + └────┴──────────┘ └────────┴────┘ +``` |