MW75 Layout Macro Refactor (#15247)

* mw75.h: use QMK 3-character matrix identifiers

* update stock keymaps

Use QMK-native keycode aliases, and update grid alignment of keycodes.

* mw75.h: add matrix diagram

* info.json: apply friendly formatting

* move rotary encoder keycodes to top row

* info.json: update maintainer field

Use the maintainer's GitHub username.
master
James Young 2021-11-21 22:16:37 +00:00 committed by GitHub
parent 739bf62112
commit c491af01d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 108 additions and 87 deletions

View File

@ -1,7 +1,7 @@
{ {
"keyboard_name": "MW75", "keyboard_name": "MW75",
"url": "", "url": "",
"maintainer": "qmk", "maintainer": "TW59420",
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [
@ -18,21 +18,23 @@
{"label":"F10", "x":11.5, "y":0}, {"label":"F10", "x":11.5, "y":0},
{"label":"F11", "x":12.5, "y":0}, {"label":"F11", "x":12.5, "y":0},
{"label":"F12", "x":13.5, "y":0}, {"label":"F12", "x":13.5, "y":0},
{"label":"DEL", "x":15, "y":0}, {"label":"Encoder CCW", "x":15, "y":0, "w":0.5},
{"label":"Encoder Click", "x":15.5, "y":0},
{"label":"Encoder CW", "x":16.5, "y":0, "w":0.5},
{"label":"`", "x":0, "y":1.5}, {"label":"`~", "x":0, "y":1.5},
{"label":"1", "x":1, "y":1.5}, {"label":"1!", "x":1, "y":1.5},
{"label":"2", "x":2, "y":1.5}, {"label":"2@", "x":2, "y":1.5},
{"label":"3", "x":3, "y":1.5}, {"label":"3#", "x":3, "y":1.5},
{"label":"4", "x":4, "y":1.5}, {"label":"4$", "x":4, "y":1.5},
{"label":"5", "x":5, "y":1.5}, {"label":"5%", "x":5, "y":1.5},
{"label":"6", "x":6, "y":1.5}, {"label":"6^", "x":6, "y":1.5},
{"label":"7", "x":7, "y":1.5}, {"label":"7&", "x":7, "y":1.5},
{"label":"8", "x":8, "y":1.5}, {"label":"8*", "x":8, "y":1.5},
{"label":"9", "x":9, "y":1.5}, {"label":"9(", "x":9, "y":1.5},
{"label":"0", "x":10, "y":1.5}, {"label":"0)", "x":10, "y":1.5},
{"label":"-", "x":11, "y":1.5}, {"label":"-_", "x":11, "y":1.5},
{"label":"=", "x":12, "y":1.5}, {"label":"=+", "x":12, "y":1.5},
{"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Backspace", "x":13, "y":1.5, "w":2},
{"label":"Delete", "x":15, "y":1.5}, {"label":"Delete", "x":15, "y":1.5},
@ -47,9 +49,9 @@
{"label":"I", "x":8.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5},
{"label":"O", "x":9.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5},
{"label":"P", "x":10.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5},
{"label":"[", "x":11.5, "y":2.5}, {"label":"[{", "x":11.5, "y":2.5},
{"label":"]", "x":12.5, "y":2.5}, {"label":"]}", "x":12.5, "y":2.5},
{"label":"\\", "x":13.5, "y":2.5, "w":1.5}, {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
{"label":"PgUp", "x":15, "y":2.5}, {"label":"PgUp", "x":15, "y":2.5},
{"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
@ -62,8 +64,8 @@
{"label":"J", "x":7.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5},
{"label":"K", "x":8.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5},
{"label":"L", "x":9.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5},
{"label":";", "x":10.75, "y":3.5}, {"label":";:", "x":10.75, "y":3.5},
{"label":"'", "x":11.75, "y":3.5}, {"label":"'\"", "x":11.75, "y":3.5},
{"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
{"label":"PgDn", "x":15, "y":3.5}, {"label":"PgDn", "x":15, "y":3.5},
@ -75,9 +77,9 @@
{"label":"B", "x":6.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5},
{"label":"N", "x":7.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5},
{"label":"M", "x":8.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5},
{"label":",", "x":9.25, "y":4.5}, {"label":",<", "x":9.25, "y":4.5},
{"label":".", "x":10.25, "y":4.5}, {"label":".>", "x":10.25, "y":4.5},
{"label":"/", "x":11.25, "y":4.5}, {"label":"/?", "x":11.25, "y":4.5},
{"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
{"label":"\u2191", "x":14, "y":4.5}, {"label":"\u2191", "x":14, "y":4.5},
{"label":"End", "x":15, "y":4.5}, {"label":"End", "x":15, "y":4.5},
@ -85,9 +87,7 @@
{"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
{"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
{"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
{"label":"Vol-", "x":3.75, "y":5.5 }, {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
{"label":"Vol+", "x":4.75, "y":5.5 },
{"x":5.75, "y":5.5, "w":4.25},
{"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25},
{"label":"Fn", "x":11.25, "y":5.5, "w":1.25}, {"label":"Fn", "x":11.25, "y":5.5, "w":1.25},
{"label":"\u2190", "x":13, "y":5.5}, {"label":"\u2190", "x":13, "y":5.5},

View File

@ -19,39 +19,40 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( [0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, RGB_TOG, KC_VOLU,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
), ),
[1] = LAYOUT( [1] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD,
_______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI
), ),
[2] = LAYOUT( [2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[3] = LAYOUT( [3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
}; };

View File

@ -19,39 +19,40 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( [0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, RGB_TOG, KC_VOLU,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_VOLU, KC_VOLD, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
), ),
[1] = LAYOUT( [1] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD,
_______, _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI
), ),
[2] = LAYOUT( [2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[3] = LAYOUT( [3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
}; };

View File

@ -18,19 +18,38 @@
#include "quantum.h" #include "quantum.h"
#define XXX KC_NO
/* 54 ◯ 53
*
* 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E
*
*
* 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
*
* 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E
*
* 30 31 32 33 34 35 36 37 38 39 3A 3B 3D 3E
*
* 40 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E
*
* 50 51 52 56 5A 5B 5C 5D 5E
*
*/
#define LAYOUT( \ #define LAYOUT( \
K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,\ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K54, K0E, K53, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414,\ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \
K500, K501, K502, K503, K504, K506, K510, K511, K512, K513, K514\ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \
) { \ ) { \
{ KC_NO, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 },\ { XXX, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 },\ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 },\ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 },\ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414 },\ { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \
{ K500, K501, K502, K503, K504, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514 },\ { K50, K51, K52, K53, K54, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
} }