From 00c3ecc23849efe525fb52fc82c938ce1b521c21 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Tue, 29 Dec 2015 21:36:17 +0100 Subject: [PATCH 01/52] Initial TypeMatrix keymap: Layer 0 --- .../ergodox_ez/keymaps/keymap_typematrix.c | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_typematrix.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c new file mode 100644 index 0000000000..5b848fb1a6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -0,0 +1,188 @@ +/* TypeMatrix-2030-like keymap */ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B |/Hyper| |/ Meh | N | M | , | . | / | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | ~L1 | LGui | Play | App | | Left |Right | - | = |RCtrl | + * `----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * |Esc/Alt| L1 | | Home |Ctrl/End| + * ,------+-------+------| |------+--------+------. + * |Space | Space | PgUp | | Up | | | + * | / | / |------| |------| RAlt |Space | + * | Alt | Alt | PgDn | | Down | | | + * `---------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_ENT), + KC_LCTL, KC_FN1, KC_LGUI,KC_MPLY,KC_APP, + + ALT_T(KC_ESC), TG(1), + KC_PGUP, + ALT_T(KC_SPC), ALT_T(KC_SPC), KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),SFT_T(KC_QUOT), + MEH_T(KC_ENT),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_LEFT,KC_RGHT,KC_MINS,KC_EQL, KC_RCTL, + + KC_HOME, CTL_T(KC_END), + KC_UP, + KC_DOWN, KC_RALT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; From 900c1f991df6b30a45a25094c61bcf5ed54119cf Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Tue, 29 Dec 2015 21:36:17 +0100 Subject: [PATCH 02/52] Initial TypeMatrix keymap: Layer 0 --- keyboard/ergodox_ez/keymaps/keymap_typematrix.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 5b848fb1a6..38b8da6352 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| * | LShift | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '/Shift| * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B |/Hyper| |/ Meh | N | M | , | . | / | \/Shift| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |LCtrl | ~L1 | LGui | Play | App | | Left |Right | - | = |RCtrl | * `----------------------------------' `----------------------------------' @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_LCTL, KC_FN1, KC_LGUI,KC_MPLY,KC_APP, ALT_T(KC_ESC), TG(1), @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),SFT_T(KC_QUOT), - MEH_T(KC_ENT),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_ENT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, SFT_T(KC_BSLS), KC_LEFT,KC_RGHT,KC_MINS,KC_EQL, KC_RCTL, KC_HOME, CTL_T(KC_END), From ac94577cbe03b771820a17e94ced640d78c06dfc Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Wed, 30 Dec 2015 00:51:12 +0100 Subject: [PATCH 03/52] TypeMatrix keymap: Layer 1 (Fn Layer) --- .../ergodox_ez/keymaps/keymap_typematrix.c | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 38b8da6352..01ae6bbcae 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -57,42 +57,44 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 |Insert| |Insert| F6 | F7 | Tab | / | * | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * | | F8 | F9 | F10 | F11 | F12 |VolUp | | Home | Up | End | 7 | 8 | 9 | + | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * | | | | | | |------| |------| Down | Right| 4 | 5 | 6 | + | + * |--------+------+------+------+------+------|VolDn | | Left |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute | | | | | Prev | 1 | 2 | 3 |KpEnter | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' + * | | | | | | | Next | 0 | 00 | . |KpEnter| + * `----------------------------------' `-----------------------------------' * ,-------------. ,-------------. - * | | | | | | + * | | | |n.lock|c.lock| * ,------|------|------| |------+------+------. * | | | | | | | | - * | | |------| |------| | | + * | Mute | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, - KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_INS, + KC_TRNS,KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS,LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS),KC_MUTE,KC_VOLD, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, + KC_MUTE,KC_TRNS,KC_TRNS, // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, + KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, + KC_HOME, KC_UP, KC_END, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_DOWN, KC_RGHT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LEFT, KC_TRNS, KC_MPRV, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_MNXT, KC_P0, M(1), KC_PDOT, KC_PENT, + + KC_NLCK, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -154,6 +156,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; + case 1: + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } + break; } return MACRO_NONE; }; From 8677ec0c9fbf0d0bb639ad082e27d6650b3c1dd0 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Wed, 30 Dec 2015 00:56:02 +0100 Subject: [PATCH 04/52] Use 3rd led as caps-lock indicator --- keyboard/ergodox_ez/keymaps/keymap_typematrix.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 01ae6bbcae..1b201c2237 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -2,6 +2,7 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" +#include "led.h" #define BASE 0 // default layer #define SYMB 1 // symbols @@ -191,5 +192,7 @@ void * matrix_scan_user(void) { // none break; } - + if (host_keyboard_leds() & (1< Date: Wed, 30 Dec 2015 12:59:33 +0100 Subject: [PATCH 05/52] Make bottom row more similar to the TM - keep home/end at the same location - RAlt as first key on the bottom right row - left/right arrows moved on the thumb, near the other arrows - added Alt on App - added Alt on Mute in Layer 1 - removed ALT from left spaces to avoid issues when pressing too slowly --- .../ergodox_ez/keymaps/keymap_typematrix.c | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 1b201c2237..fd7c020bfe 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -20,15 +20,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | ~L1 | LGui | Play | App | | Left |Right | - | = |RCtrl | - * `----------------------------------' `----------------------------------' - * ,--------------. ,---------------. - * |Esc/Alt| L1 | | Home |Ctrl/End| - * ,------+-------+------| |------+--------+------. - * |Space | Space | PgUp | | Up | | | - * | / | / |------| |------| RAlt |Space | - * | Alt | Alt | PgDn | | Down | | | - * `---------------------' `----------------------' + * |LCtrl | ~L1 | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| L1 | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space | Space |------| |------|Space |Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* @@ -38,22 +38,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, - KC_LCTL, KC_FN1, KC_LGUI,KC_MPLY,KC_APP, + KC_LCTL, KC_FN1, KC_LGUI,KC_MPLY,ALT_T(KC_APP), ALT_T(KC_ESC), TG(1), KC_PGUP, - ALT_T(KC_SPC), ALT_T(KC_SPC), KC_PGDN, + KC_SPC, KC_SPC, KC_PGDN, // right hand KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),SFT_T(KC_QUOT), KC_ENT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, SFT_T(KC_BSLS), - KC_LEFT,KC_RGHT,KC_MINS,KC_EQL, KC_RCTL, + KC_RALT,KC_MINS,KC_HOME,KC_EQL, CTL_T(KC_END), - KC_HOME, CTL_T(KC_END), + KC_LEFT, KC_RGHT, KC_UP, - KC_DOWN, KC_RALT, KC_SPC + KC_DOWN, KC_SPC, KC_SPC ), /* Keymap 1: Symbol Layer * @@ -71,9 +71,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,-------------. * | | | |n.lock|c.lock| * ,------|------|------| |------+------+------. - * | | | | | | | | - * | Mute | |------| |------| | | - * | | | | | | | | + * | Mute | | | | | | | + * | / | |------| |------| | | + * | Alt | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS, KC_TRNS, - KC_MUTE,KC_TRNS,KC_TRNS, + ALT_T(KC_MUTE),KC_TRNS,KC_TRNS, // right hand KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, KC_HOME, KC_UP, KC_END, KC_P7, KC_P8, KC_P9, KC_PPLS, From 56070d424b9dd90f8153b2fa1cb03c896bf5ee68 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Wed, 30 Dec 2015 13:26:31 +0100 Subject: [PATCH 06/52] Added description of the layout and main differences with real TM --- .../ergodox_ez/keymaps/keymap_typematrix.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index fd7c020bfe..de864ddfef 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -1,4 +1,24 @@ -/* TypeMatrix-2030-like keymap */ +/* TypeMatrix-2030-like keymap + * --------------------------- + * Currently supported features: + * Layer 0: default layer close to the TM with the following differences: + * - top row and rightmost column are removed, corresponding keys are displaced, except app-keys which are removed + * - bottom-left keys are reorganized on a single roz as: Ctrl, "Fn", Gui, Play, App/Alt + * - "shuffle" and "desktop" are not supported + * - right-shift is moved on ' and \ + * - right-ctrl is moved on End + * - ] is moved in place of the dash (-) + * - dash (-) and = are moved on bottom right row + * - arrows and PgUp/PgDn are moved on the thumbs + * Layer 1: "Fn"-layer close to the TM with the following differences: + * - provides access to F1-F12 + * - VolUp & VolDn are only on left hand + * - arrows & numpad are displaced by 1 to the top left + * Layer 2: TODO -- currently kept as in the default ErgoDox EZ layout + * Leds: + * - left (1st) & middle (2nd) leds are used to indicate layers 1 & 2 respectively + * - right (3rd) led is used to indicate caps-lock + */ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" From 38a0e62a10fcbb4b96f8f69d4fc69872d2d3a7ed Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 9 Jan 2016 00:55:54 +0100 Subject: [PATCH 07/52] Layer 1: restore backspace, ralt and ctl on right hand - home replaced by KC_TRNS to make backspace available - prev/next moved left to space to restore ralt - arrows moved down to have reversed T-shape - added ctl on bottom right KpEnter, to match layer 0 - removed alt from mute, as it was already no more in layer 0 --- .../ergodox_ez/keymaps/keymap_typematrix.c | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index de864ddfef..8e442e3cc2 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -80,20 +80,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 |Insert| |Insert| F6 | F7 | Tab | / | * | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | F8 | F9 | F10 | F11 | F12 |VolUp | | Home | Up | End | 7 | 8 | 9 | + | + * | | F8 | F9 | F10 | F11 | F12 |VolUp | | | | Home | 7 | 8 | 9 | + | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| Down | Right| 4 | 5 | 6 | + | - * |--------+------+------+------+------+------|VolDn | | Left |------+------+------+------+------+--------| - * | | | cut | copy |paste | Mute | | | | | Prev | 1 | 2 | 3 |KpEnter | + * | | | | | | |------| |------| Up | End | 4 | 5 | 6 | + | + * |--------+------+------+------+------+------|VolDn | | |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | Next | 0 | 00 | . |KpEnter| + * | | | | | | | | 0 | 00 | . |Etr/Ctl| * `----------------------------------' `-----------------------------------' * ,-------------. ,-------------. * | | | |n.lock|c.lock| * ,------|------|------| |------+------+------. - * | Mute | | | | | | | - * | / | |------| |------| | | - * | Alt | | | | | | | + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | * `--------------------' `--------------------' */ // SYMBOLS @@ -107,17 +107,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS, KC_TRNS, - ALT_T(KC_MUTE),KC_TRNS,KC_TRNS, + KC_MUTE, KC_TRNS,KC_TRNS, // right hand KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, - KC_HOME, KC_UP, KC_END, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_DOWN, KC_RGHT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LEFT, KC_TRNS, KC_MPRV, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_MNXT, KC_P0, M(1), KC_PDOT, KC_PENT, + KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_P0, M(1), KC_PDOT, CTL_T(KC_PENT), KC_NLCK, KC_CAPS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_MPRV, + KC_MNXT, KC_TRNS, KC_TRNS ), /* Keymap 2: Media and mouse keys * From bfda6ee41773355c413904b128b317ee7eb45569 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 9 Jan 2016 17:47:26 +0100 Subject: [PATCH 08/52] Split fn layer from numbers layer to better match the TM behaviour - removed access to layer 2 from ";" key - "fn" key toggles both layers 1 & 2 - replaced media and mouse layer by fn layer - renamed symbol layer to numbers layer - moved all F-keys together on left hand --- .../ergodox_ez/keymaps/keymap_typematrix.c | 156 +++++++++--------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 8e442e3cc2..5bd2f9d725 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -10,11 +10,12 @@ * - ] is moved in place of the dash (-) * - dash (-) and = are moved on bottom right row * - arrows and PgUp/PgDn are moved on the thumbs - * Layer 1: "Fn"-layer close to the TM with the following differences: - * - provides access to F1-F12 - * - VolUp & VolDn are only on left hand - * - arrows & numpad are displaced by 1 to the top left - * Layer 2: TODO -- currently kept as in the default ErgoDox EZ layout + * Layer 1: numbers layer close to the TM when toggling "num" with the following differences: + * - numpad is displaced by 1 to the top left + * - arrows are displaced by 1 to the left + * - provides access to F1-F12, caps lock and num lock + * Layer 2: "fn" layer ("fn" key toggles both layers 1 & 2) with the following differences: + * - VolUp & VolDn are only on left hand to keep access to arrows on right hand * Leds: * - left (1st) & middle (2nd) leds are used to indicate layers 1 & 2 respectively * - right (3rd) led is used to indicate caps-lock @@ -25,8 +26,8 @@ #include "led.h" #define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys +#define NMBR 1 // numbers layer +#define FNLR 2 // fn layer const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -36,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| - * | LShift | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '/Shift| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | ~L1 | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| * `-----------------------------------' `-----------------------------------' * ,--------------. ,-------------. * |Esc/Alt| L1 | | Left |Right | @@ -58,56 +59,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, - KC_LCTL, KC_FN1, KC_LGUI,KC_MPLY,ALT_T(KC_APP), + KC_LCTL, M(2), KC_LGUI,KC_MPLY,ALT_T(KC_APP), ALT_T(KC_ESC), TG(1), KC_PGUP, KC_SPC, KC_SPC, KC_PGDN, // right hand - KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, - KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),SFT_T(KC_QUOT), - KC_ENT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, SFT_T(KC_BSLS), - KC_RALT,KC_MINS,KC_HOME,KC_EQL, CTL_T(KC_END), + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), + KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_SPC, KC_SPC ), -/* Keymap 1: Symbol Layer +/* Keymap 1: Numbers Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 |Insert| |Insert| F6 | F7 | Tab | / | * | - | + * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | F8 | F9 | F10 | F11 | F12 |VolUp | | | | Home | 7 | 8 | 9 | + | + * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| Up | End | 4 | 5 | 6 | + | - * |--------+------+------+------+------+------|VolDn | | |------+------+------+------+------+--------| - * | | | cut | copy |paste | Mute | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | | 0 | 00 | . |Etr/Ctl| * `----------------------------------' `-----------------------------------' * ,-------------. ,-------------. * | | | |n.lock|c.lock| * ,------|------|------| |------+------+------. - * | | | | | Next | | | - * | Mute | |------| |------| | | - * | | | | | Prev | | | + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS -[SYMB] = KEYMAP( +[NMBR] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_INS, - KC_TRNS,KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS),KC_MUTE,KC_VOLD, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, - KC_MUTE, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS, // right hand KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -116,73 +117,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_P0, M(1), KC_PDOT, CTL_T(KC_PENT), KC_NLCK, KC_CAPS, - KC_MPRV, - KC_MNXT, KC_TRNS, KC_TRNS + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: Media and mouse keys +/* Keymap 2: fn layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | | | | | | |Insert| |Insert| | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | + * | | | | | | |VolUp | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * | | | | | | |------| |------| | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | + * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, +[FNLR] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, // right hand + KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK + KC_MPRV, + KC_MNXT, KC_TRNS, KC_TRNS ), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { + switch(id) { case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } break; case 1: - if (record->event.pressed) { - return MACRO( I(25), T(P0), T(P0), END ); - } + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } break; - } + case 2: + layer_state ^= (1 << NMBR) | (1 << FNLR); + break; + } return MACRO_NONE; }; @@ -194,24 +199,19 @@ void * matrix_init_user(void) { // Runs constantly in the background, in a loop. void * matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; + // led 1: numbers layer + if (layer_state & (1 << NMBR)) { + ergodox_right_led_1_on(); } + // led 2: fn layer + if (layer_state & (1 << FNLR)) { + ergodox_right_led_2_on(); + } + // led 3: caps lock if (host_keyboard_leds() & (1< Date: Sun, 10 Jan 2016 19:15:33 +0100 Subject: [PATCH 09/52] Added fn-eject, fn-power .. fn-pause keys Eject does not work though, see jackhumbert/qmk_firmware#82 and tmk/tmk_keyboard#250 --- keyboard/ergodox_ez/keymaps/keymap_typematrix.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 5bd2f9d725..6151b3628d 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -123,9 +123,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: fn layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | |Insert| |Insert| | | | | | | + * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | |VolUp | | | | | | | | | + * | | | | | | |VolUp | | | | | | | | Pause | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | |------| |------| | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -153,8 +153,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, // right hand - KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, From d3e4cc9af66630906f023cf83f1df46b065435a5 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sun, 10 Jan 2016 19:49:08 +0100 Subject: [PATCH 10/52] Implement cut/copy/paste as macros Workaround for jackhumbert/qmk_firmware#81 + added macro names + removed unused macro 0 --- .../ergodox_ez/keymaps/keymap_typematrix.c | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 6151b3628d..7161a638a8 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -29,6 +29,12 @@ #define NMBR 1 // numbers layer #define FNLR 2 // fn layer +#define MDBL0 1 +#define MFNLR 2 +#define MCUT 3 +#define MCOPY 4 +#define MPSTE 5 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -59,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, - KC_LCTL, M(2), KC_LGUI,KC_MPLY,ALT_T(KC_APP), + KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), ALT_T(KC_ESC), TG(1), KC_PGUP, @@ -114,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_P0, M(1), KC_PDOT, CTL_T(KC_PENT), + KC_TRNS, KC_P0, M(MDBL0),KC_PDOT, CTL_T(KC_PENT), KC_NLCK, KC_CAPS, KC_TRNS, @@ -146,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, M(MCUT), M(MCOPY), M(MPSTE), KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -172,21 +178,29 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case 1: + case MDBL0: if (record->event.pressed) { return MACRO( I(25), T(P0), T(P0), END ); } break; - case 2: + case MFNLR: layer_state ^= (1 << NMBR) | (1 << FNLR); break; + case MCUT: + if (record->event.pressed) { + return MACRO(D(LSFT), T(DELT), U(LSFT), END); + } + break; + case MCOPY: + if (record->event.pressed) { + return MACRO(D(LCTL), T(INS), U(LCTL), END); + } + break; + case MPSTE: + if (record->event.pressed) { + return MACRO(D(LSFT), T(INS), U(LSFT), END); + } + break; } return MACRO_NONE; }; From 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 11 Jan 2016 16:53:33 -0500 Subject: [PATCH 11/52] pwm audio --- .../ergodox_ez/keymaps/keymap_generated.c | 78 ++++++ keyboard/ergodox_ez/keymaps/keymap_jack.c | 69 +---- keyboard/planck/Makefile | 4 +- keyboard/planck/keymaps/keymap_eric.c | 42 +++ keyboard/planck/keymaps/keymap_lock.c | 10 +- keyboard/planck/planck.c | 29 ++ keyboard/planck/planck.h | 5 +- quantum/beeps.c | 245 ++++++++++------ quantum/beeps.h | 2 +- quantum/keymap_midi.c | 21 +- quantum/keymap_midi.h | 2 + quantum/wave.h | 265 ++++++++++++++++++ tmk_core/common/avr/timer.c | 18 +- 13 files changed, 600 insertions(+), 190 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_generated.c create mode 100644 keyboard/planck/keymaps/keymap_eric.c create mode 100644 quantum/wave.h diff --git a/keyboard/ergodox_ez/keymaps/keymap_generated.c b/keyboard/ergodox_ez/keymaps/keymap_generated.c new file mode 100644 index 0000000000..54fd3059f2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_generated.c @@ -0,0 +1,78 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* + +#define SYMB 0 + +[0] = KEYMAP( \ +\ +KC_KP_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DELETE, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TAB, KC_LEFT, KC_RIGHT, KC_TRANSPARENT, KC_LGUI, KC_HOME, KC_SPACE, KC_BSPACE, KC_END, KC_RIGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_TRANSPARENT, KC_N, KC_M, KC_COMMA, KC_DOT, KC_LCTRL, KC_LSHIFT, KC_UP, KC_DOWN, KC_LBRACKET, KC_RBRACKET, KC_TRANSPARENT, KC_LALT, KC_ESCAPE, KC_PGUP, KC_PGDOWN, KC_TAB, KC_ENTER \ +\ +), + +[1] = KEYMAP( \ +\ +KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRANSPARENT, KC_UP, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, KC_DOWN, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRANSPARENT, KC_TRANSPARENT, , KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_TRANSPARENT, KC_TRANSPARENT, KC_KP_DOT, KC_KP_0, KC_KP_EQUAL, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT \ +\ +), + +[2] = KEYMAP( \ +\ +KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_UP, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_BTN3, KC_MS_BTN2, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MEDIA_PLAY_PAUSE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_TRANSPARENT, KC_TRANSPARENT, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT \ +\ +), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_jack.c b/keyboard/ergodox_ez/keymaps/keymap_jack.c index 2677a3d8fa..f8f73a1afd 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_jack.c +++ b/keyboard/ergodox_ez/keymaps/keymap_jack.c @@ -8,29 +8,6 @@ #define MDIA 2 // media keys const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, @@ -51,28 +28,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PGUP, KC_PGDN, KC_SPC,KC_SPC ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS [SYMB] = KEYMAP( // left hand KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, @@ -93,29 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( +[MDIA] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 485c5f77f6..fdf8c16400 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -122,8 +122,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = YES # MIDI controls # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboard/planck/keymaps/keymap_eric.c b/keyboard/planck/keymaps/keymap_eric.c new file mode 100644 index 0000000000..ffeec5f805 --- /dev/null +++ b/keyboard/planck/keymaps/keymap_eric.c @@ -0,0 +1,42 @@ +#include "planck.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {KC_BSLS, S(KC_SLSH), KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {TG(1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LGUI, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RGUI}, + {KC_LCBR, KC_LCTL, KC_LALT, LT(1, TG(2)), KC_SPC, KC_TAB, KC_ENT, KC_BSPC, LT(1, TG(3)), KC_RALT, KC_RCTL, KC_RCBR} + }, + + [1] = { + {KC_PIPE, KC_COLN, KC_LBRC, KC_RBRC, S(KC_P), S(KC_Y), S(KC_F), S(KC_G), S(KC_C), S(KC_R), S(KC_L), KC_AMPR}, + {KC_TRNS, S(KC_A), S(KC_O), S(KC_E), S(KC_U), S(KC_I), S(KC_D), S(KC_H), S(KC_T), S(KC_N), S(KC_S), KC_GRV}, + {KC_TRNS, KC_SCLN, S(KC_Q), S(KC_J), S(KC_K), S(KC_X), S(KC_B), S(KC_M), S(KC_W), S(KC_V), S(KC_Z), KC_TRNS}, + {S(KC_COMM), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_DOT)} + }, + + [2] = { + {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO}, + {KC_NO, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO}, + {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS}, + {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} + }, + + [3] = { + {KC_EXLM, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_EQL}, + {TG(4), KC_NO, KC_PGUP, KC_HOME, KC_INSERT, KC_NO, KC_NO, BL_DEC, KC_UP, BL_INC, KC_NO, KC_NO}, + {KC_TRNS, KC_NO, KC_PGDN, KC_END, KC_DELETE, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS}, + {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} + }, + + [4] = { + {KC_TILD, KC_HASH, KC_LPRN, KC_RPRN, S(KC_QUOT), KC_PERC, KC_UNDS, KC_CIRC, KC_DLR, KC_AT, KC_ASTR, KC_PLUS}, + {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS}, + {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index cc9be55f64..c2bf0b7d81 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -1,5 +1,5 @@ #include "keymap_common.h" -#include "backlight.h" +// #include "backlight.h" #include "action_layer.h" #include "keymap_midi.h" #include @@ -71,7 +71,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { // play_note(440, 20); // register_code(KC_RSFT); - backlight_set(BACKLIGHT_LEVELS); + // backlight_set(BACKLIGHT_LEVELS); default_layer_and(0); default_layer_or((1<<5)); @@ -106,9 +106,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // note(0+12, 20); // note(0+24, 20); } else { - // unregister_code(KC_RSFT); - // stop_note(); - backlight_set(0); + unregister_code(KC_RSFT); + // stop_all_notes(); + // backlight_set(0); default_layer_and(0); default_layer_or(0); // note(0+24, 20); diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index b62862af04..a986bd8812 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -19,6 +19,35 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); + init_notes(); + + // play_note(((double)261.6*32)*pow(2.0,(36)/12.0), 0xF); + // _delay_ms(50); + + // play_note(((double)261.6*32)*pow(2.0,(48)/12.0), 0xF); + // _delay_ms(25); + // stop_note(((double)261.6*32)*pow(2.0,(48)/12.0)); + + // play_note(((double)261.6*32)*pow(2.0,(48)/12.0), 0xF); + // _delay_ms(25); + // stop_note(((double)261.6*32)*pow(2.0,(48)/12.0)); + + + // stop_note(((double)261.6*32)*pow(2.0,(36)/12.0)); + + + // play_note(((double)261.6*32)*pow(2.0,(62)/12.0), 0xF); + // _delay_ms(50); + // stop_note(((double)261.6*32)*pow(2.0,(62)/12.0)); + + + // play_note(((double)261.6*32)*pow(2.0,(64)/12.0), 0xF); + // _delay_ms(50); + // stop_note(((double)261.6*32)*pow(2.0,(64)/12.0)); + + + + if (matrix_init_user) { (*matrix_init_user)(); } diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index 4e59aef566..32c08f3b0b 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -3,8 +3,11 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +// #include "backlight.h" #include +#ifdef MIDI_ENABLE + #include +#endif #define PLANCK_MIT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ diff --git a/quantum/beeps.c b/quantum/beeps.c index 8d1f81f210..edcc84aca4 100644 --- a/quantum/beeps.c +++ b/quantum/beeps.c @@ -1,11 +1,20 @@ -#include "beeps.h" +#include +#include #include #include #include #include +#include "beeps.h" +#include "keymap_common.h" +#include "wave.h" + #define PI 3.14159265 +#define SAMPLE_DIVIDER 70 +#define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/256) +// Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap + void delay_us(int count) { while(count--) { _delay_us(1); @@ -15,7 +24,7 @@ void delay_us(int count) { int voices = 0; double frequency = 0; int volume = 0; -int position = 0; +long position = 0; double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; @@ -23,6 +32,19 @@ bool sliding = false; #define RANGE 1000 volatile int i=0; //elements of the wave +// uint8_t sine[128]; +// uint8_t tri[128]; +// uint8_t squ[128]; +// uint8_t* sine_start; +// uint8_t* sine_end; +// uint8_t* tri_start; +// uint8_t* tri_end; + +// uint8_t* s_start; +// uint8_t* s_end; +// uint8_t* s_ptr; + + void beeps() { play_notes(); @@ -36,8 +58,7 @@ void send_freq(double freq, int vol) { void stop_all_notes() { voices = 0; - TCCR3A = 0; - TCCR3B = 0; + TIMSK0 &= ~_BV(OCIE0A); frequency = 0; volume = 0; @@ -48,6 +69,7 @@ void stop_all_notes() { } void stop_note(double freq) { + freq = freq / SAMPLE_RATE; for (int i = 7; i >= 0; i--) { if (frequencies[i] == freq) { frequencies[i] = 0; @@ -64,151 +86,176 @@ void stop_note(double freq) { if (voices < 0) voices = 0; if (voices == 0) { - TCCR3A = 0; - TCCR3B = 0; + TIMSK0 &= ~_BV(OCIE0A); frequency = 0; volume = 0; } else { double freq = frequencies[voices - 1]; int vol = volumes[voices - 1]; + double starting_f = frequency; if (frequency < freq) { sliding = true; - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 500.0)) { + frequency = f; } sliding = false; } else if (frequency > freq) { sliding = true; - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 500.0)) { + frequency = f; } sliding = false; } - send_freq(freq, vol); + // send_freq(freq, vol); frequency = freq; volume = vol; } } void init_notes() { - // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); - // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); - // DDRC |= (1<<6); + // for(int i = 0; i < 128; i++) { + // sine[i] = sin(i * PI / 64) * 128 + 128; + // tri[i] = 256 - abs((i - 64) * 4); + // } + // sine_start = &sine; + // sine_end = &sine + 128; + // tri_start = &tri; + // tri_end = &tri + 128; - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // ICR3 = 0xFFFF; - // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element + // new - // cli(); + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; - // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz, - // this gives a timer interrupt at 15625Hz. */ - // TIMSK3 = (1 << OCIE3A); - - // /* clear/reset timer on match */ - // // TCCR3A = 1<> 8) & 0x00FF) -// #define lowByte(c) (c & 0x00FF) +int max = 0xFF; +float sum = 0; +int value = 128; +float place = 0; -ISR(TIMER3_COMPA_vect) { - - if (ICR3 > 0 && !sliding) { - switch (position) { - case 0: { - int duty = (((double)F_CPU) / (frequency)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 1: { - int duty = (((double)F_CPU) / (frequency*2)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 2: { - int duty = (((double)F_CPU) / (frequency*3)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - } - position = (position + 1) % 3; - } -// /* OCR2A has been cleared, per TCCR2A above */ -// // OCR3A = 127; - -// // pos1 += incr1; -// // pos2 += incr2; -// // pos3 += incr3; - -// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)]; - -// // OCR3A = sample; +ISR(TIMER0_COMPA_vect) { -// OCR3A=pgm_read_byte(&sinewave[pos1]); -// pos1++; -// // PORTC &= ~(1<<6); -// /* buffered, 1x gain, active mode */ -// // SPDR = highByte(sample) | 0x70; -// // while (!(SPSR & (1<= sine_end) { + // sine_start = &sine[(sine_start - sine_end) % 128]; + // } -// // SPDR = lowByte(sample); -// // while (!(SPSR & (1<= sine_end) { + // sine_start = &sine[(sine_start - sine_end) % 128]; + // } + + // OCR4A = pgm_read_byte(s_ptr); + // s_ptr = s_start + (uint8_t)place; + // OCR4A = pgm_read_byte(s_ptr); + + + // SINE + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]); + + // SQUARE + // if (((int)place) >= 1024){ + // OCR4A = 0xFF; + // } else { + // OCR4A = 0x00; + // } + + // SAWTOOTH + // OCR4A = (int)place / 4; + + // TRIANGLE + // if (((int)place) >= 1024) { + // OCR4A = (int)place / 2; + // } else { + // OCR4A = 2048 - (int)place / 2; + // } + + place += frequency; + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + +} + + +ISR(TIMER0_COMPB_vect) +{ + + /* Disable the interrupt */ + TIMSK0 &= ~_BV(OCIE0B); + } void play_note(double freq, int vol) { + freq = freq / SAMPLE_RATE; if (freq > 0) { - DDRC |= (1<<6); - TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (1 << WGM30); + // TCCR3B = (0 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); + // TIMSK3 = 0x0; if (frequency != 0) { + double starting_f = frequency; if (frequency < freq) { - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 500.0)) { + frequency = f; } } else if (frequency > freq) { - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 500.0)) { + frequency = f; } } } - send_freq(freq, vol); + // send_freq(freq, vol); frequency = freq; volume = vol; frequencies[voices] = frequency; volumes[voices] = volume; voices++; + // position = 0; + // TCNT0 = 0; } // ICR3 = 0xFFFF; // for (int i = 0; i < 10000; i++) { @@ -218,6 +265,18 @@ void play_note(double freq, int vol) { // TCCR3A = 0; // TCCR3B = 0; + + + TIMSK0 &= ~_BV(OCIE0A) | ~_BV(OCIE0B); + + TCCR0A = _BV(WGM01); + TCCR0B = _BV(CS01); + OCR0A = SAMPLE_DIVIDER - 1; + OCR0B = 1; + + TIMSK0 |= _BV(OCIE0A); + // sei(); + } // void note(int x, float length) { diff --git a/quantum/beeps.h b/quantum/beeps.h index 378983c605..a7fcf6c23c 100644 --- a/quantum/beeps.h +++ b/quantum/beeps.h @@ -9,4 +9,4 @@ void true_note(float x, float y, float length); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); -void init_notes(); \ No newline at end of file +void init_notes(); diff --git a/quantum/keymap_midi.c b/quantum/keymap_midi.c index b7eba3ab76..3a1408e220 100644 --- a/quantum/keymap_midi.c +++ b/quantum/keymap_midi.c @@ -17,7 +17,6 @@ along with this program. If not, see . #include "keymap_common.h" #include "keymap_midi.h" -#include uint8_t starting_note = 0x0C; int offset = 7; @@ -35,7 +34,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { starting_note++; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); midi_send_cc(&midi_device, 0, 0x7B, 0); midi_send_cc(&midi_device, 1, 0x7B, 0); midi_send_cc(&midi_device, 2, 0x7B, 0); @@ -43,7 +42,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); return; } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); stop_all_notes(); return; } @@ -51,7 +50,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { starting_note--; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); midi_send_cc(&midi_device, 0, 0x7B, 0); midi_send_cc(&midi_device, 1, 0x7B, 0); midi_send_cc(&midi_device, 2, 0x7B, 0); @@ -59,7 +58,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); return; } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); stop_all_notes(); return; } @@ -74,9 +73,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); stop_all_notes(); for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); _delay_us(8000); } return; @@ -90,9 +89,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); stop_all_notes(); for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); _delay_us(8000); } return; @@ -101,10 +100,10 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + play_note(((double)261.626)*pow(2.0, 0.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); } else { // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + stop_note(((double)261.626)*pow(2.0, 0.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } \ No newline at end of file diff --git a/quantum/keymap_midi.h b/quantum/keymap_midi.h index c5917f884e..a89420ce2a 100644 --- a/quantum/keymap_midi.h +++ b/quantum/keymap_midi.h @@ -18,6 +18,8 @@ along with this program. If not, see . #ifndef KEYMAP_MIDI_H #define KEYMAP_MIDI_H +#include + #define MIDI 0x6000 #define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 diff --git a/quantum/wave.h b/quantum/wave.h new file mode 100644 index 0000000000..6ebc348519 --- /dev/null +++ b/quantum/wave.h @@ -0,0 +1,265 @@ +#include +#include +#include + +#define SINE_LENGTH 2048 + +const uint8_t sinewave[] PROGMEM= //2048 values +{ +0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82, +0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85, +0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88, +0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8c, +0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f, +0x8f,0x8f,0x90,0x90,0x91,0x91,0x91,0x92, +0x92,0x93,0x93,0x93,0x94,0x94,0x95,0x95, +0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98, +0x98,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b, +0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,0x9e, +0x9e,0x9f,0x9f,0xa0,0xa0,0xa0,0xa1,0xa1, +0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4, +0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa7,0xa7, +0xa7,0xa8,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa, +0xaa,0xab,0xab,0xac,0xac,0xac,0xad,0xad, +0xad,0xae,0xae,0xae,0xaf,0xaf,0xb0,0xb0, +0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb3, +0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb6, +0xb6,0xb6,0xb7,0xb7,0xb7,0xb8,0xb8,0xb8, +0xb9,0xb9,0xba,0xba,0xba,0xbb,0xbb,0xbb, +0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbe,0xbe, +0xbe,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc1, +0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc3, +0xc4,0xc4,0xc4,0xc5,0xc5,0xc5,0xc6,0xc6, +0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc8,0xc9, +0xc9,0xc9,0xca,0xca,0xca,0xcb,0xcb,0xcb, +0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce, +0xce,0xce,0xcf,0xcf,0xcf,0xcf,0xd0,0xd0, +0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd2, +0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd5,0xd5, +0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7, +0xd7,0xd8,0xd8,0xd8,0xd9,0xd9,0xd9,0xd9, +0xda,0xda,0xda,0xda,0xdb,0xdb,0xdb,0xdc, +0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xdd,0xde, +0xde,0xde,0xde,0xdf,0xdf,0xdf,0xe0,0xe0, +0xe0,0xe0,0xe1,0xe1,0xe1,0xe1,0xe2,0xe2, +0xe2,0xe2,0xe3,0xe3,0xe3,0xe3,0xe4,0xe4, +0xe4,0xe4,0xe4,0xe5,0xe5,0xe5,0xe5,0xe6, +0xe6,0xe6,0xe6,0xe7,0xe7,0xe7,0xe7,0xe8, +0xe8,0xe8,0xe8,0xe8,0xe9,0xe9,0xe9,0xe9, +0xea,0xea,0xea,0xea,0xea,0xeb,0xeb,0xeb, +0xeb,0xeb,0xec,0xec,0xec,0xec,0xec,0xed, +0xed,0xed,0xed,0xed,0xee,0xee,0xee,0xee, +0xee,0xef,0xef,0xef,0xef,0xef,0xf0,0xf0, +0xf0,0xf0,0xf0,0xf0,0xf1,0xf1,0xf1,0xf1, +0xf1,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2,0xf3, +0xf3,0xf3,0xf3,0xf3,0xf3,0xf4,0xf4,0xf4, +0xf4,0xf4,0xf4,0xf5,0xf5,0xf5,0xf5,0xf5, +0xf5,0xf5,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, +0xf6,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7, +0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8, +0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, +0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa, +0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb, +0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc, +0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb, +0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfa, +0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa, +0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, +0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8, +0xf8,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7, +0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf5, +0xf5,0xf5,0xf5,0xf5,0xf5,0xf5,0xf4,0xf4, +0xf4,0xf4,0xf4,0xf4,0xf3,0xf3,0xf3,0xf3, +0xf3,0xf3,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2, +0xf1,0xf1,0xf1,0xf1,0xf1,0xf0,0xf0,0xf0, +0xf0,0xf0,0xf0,0xef,0xef,0xef,0xef,0xef, +0xee,0xee,0xee,0xee,0xee,0xed,0xed,0xed, +0xed,0xed,0xec,0xec,0xec,0xec,0xec,0xeb, +0xeb,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xea, +0xea,0xe9,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8, +0xe8,0xe8,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6, +0xe6,0xe6,0xe5,0xe5,0xe5,0xe5,0xe4,0xe4, +0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe3,0xe2, +0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe1,0xe0, +0xe0,0xe0,0xe0,0xdf,0xdf,0xdf,0xde,0xde, +0xde,0xde,0xdd,0xdd,0xdd,0xdd,0xdc,0xdc, +0xdc,0xdc,0xdb,0xdb,0xdb,0xda,0xda,0xda, +0xda,0xd9,0xd9,0xd9,0xd9,0xd8,0xd8,0xd8, +0xd7,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd5, +0xd5,0xd5,0xd5,0xd4,0xd4,0xd4,0xd3,0xd3, +0xd3,0xd2,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1, +0xd0,0xd0,0xd0,0xcf,0xcf,0xcf,0xcf,0xce, +0xce,0xce,0xcd,0xcd,0xcd,0xcc,0xcc,0xcc, +0xcb,0xcb,0xcb,0xcb,0xca,0xca,0xca,0xc9, +0xc9,0xc9,0xc8,0xc8,0xc8,0xc7,0xc7,0xc7, +0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4, +0xc4,0xc3,0xc3,0xc3,0xc2,0xc2,0xc2,0xc1, +0xc1,0xc1,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf, +0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbc,0xbc, +0xbc,0xbb,0xbb,0xbb,0xba,0xba,0xba,0xb9, +0xb9,0xb8,0xb8,0xb8,0xb7,0xb7,0xb7,0xb6, +0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4, +0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1, +0xb0,0xb0,0xb0,0xaf,0xaf,0xae,0xae,0xae, +0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xab, +0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa8,0xa8, +0xa7,0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5, +0xa5,0xa4,0xa4,0xa3,0xa3,0xa3,0xa2,0xa2, +0xa2,0xa1,0xa1,0xa0,0xa0,0xa0,0x9f,0x9f, +0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c, +0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99, +0x98,0x98,0x98,0x97,0x97,0x96,0x96,0x96, +0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93, +0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x8f, +0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8c, +0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x8a,0x89, +0x89,0x88,0x88,0x88,0x87,0x87,0x87,0x86, +0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x83, +0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80, +0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d, +0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a, +0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77, +0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73, +0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x70, +0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d, +0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x6a, +0x6a,0x69,0x69,0x69,0x68,0x68,0x67,0x67, +0x67,0x66,0x66,0x65,0x65,0x65,0x64,0x64, +0x64,0x63,0x63,0x62,0x62,0x62,0x61,0x61, +0x61,0x60,0x60,0x5f,0x5f,0x5f,0x5e,0x5e, +0x5d,0x5d,0x5d,0x5c,0x5c,0x5c,0x5b,0x5b, +0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x58, +0x58,0x57,0x57,0x56,0x56,0x56,0x55,0x55, +0x55,0x54,0x54,0x53,0x53,0x53,0x52,0x52, +0x52,0x51,0x51,0x51,0x50,0x50,0x4f,0x4f, +0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,0x4c, +0x4c,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49, +0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47, +0x46,0x46,0x45,0x45,0x45,0x44,0x44,0x44, +0x43,0x43,0x43,0x42,0x42,0x42,0x41,0x41, +0x41,0x40,0x40,0x40,0x3f,0x3f,0x3f,0x3e, +0x3e,0x3e,0x3d,0x3d,0x3d,0x3c,0x3c,0x3c, +0x3b,0x3b,0x3b,0x3a,0x3a,0x3a,0x39,0x39, +0x39,0x38,0x38,0x38,0x37,0x37,0x37,0x36, +0x36,0x36,0x35,0x35,0x35,0x34,0x34,0x34, +0x34,0x33,0x33,0x33,0x32,0x32,0x32,0x31, +0x31,0x31,0x30,0x30,0x30,0x30,0x2f,0x2f, +0x2f,0x2e,0x2e,0x2e,0x2d,0x2d,0x2d,0x2d, +0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,0x2a,0x2a, +0x2a,0x2a,0x29,0x29,0x29,0x28,0x28,0x28, +0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x26, +0x25,0x25,0x25,0x25,0x24,0x24,0x24,0x23, +0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x21, +0x21,0x21,0x21,0x20,0x20,0x20,0x1f,0x1f, +0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x1d,0x1d, +0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x19, +0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x17, +0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16, +0x15,0x15,0x15,0x15,0x15,0x14,0x14,0x14, +0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x12, +0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11, +0x11,0x10,0x10,0x10,0x10,0x10,0xf,0xf, +0xf,0xf,0xf,0xf,0xe,0xe,0xe,0xe, +0xe,0xd,0xd,0xd,0xd,0xd,0xd,0xc, +0xc,0xc,0xc,0xc,0xc,0xb,0xb,0xb, +0xb,0xb,0xb,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0x9,0x9,0x9,0x9,0x9,0x9, +0x9,0x8,0x8,0x8,0x8,0x8,0x8,0x8, +0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7, +0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6, +0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5, +0x5,0x5,0x4,0x4,0x4,0x4,0x4,0x4, +0x4,0x4,0x4,0x4,0x3,0x3,0x3,0x3, +0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3, +0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2, +0x2,0x2,0x2,0x2,0x2,0x2,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x2, +0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2, +0x2,0x3,0x3,0x3,0x3,0x3,0x3,0x3, +0x3,0x3,0x3,0x3,0x3,0x4,0x4,0x4, +0x4,0x4,0x4,0x4,0x4,0x4,0x4,0x5, +0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5, +0x5,0x6,0x6,0x6,0x6,0x6,0x6,0x6, +0x6,0x7,0x7,0x7,0x7,0x7,0x7,0x7, +0x7,0x8,0x8,0x8,0x8,0x8,0x8,0x8, +0x9,0x9,0x9,0x9,0x9,0x9,0x9,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xb,0xb, +0xb,0xb,0xb,0xb,0xc,0xc,0xc,0xc, +0xc,0xc,0xd,0xd,0xd,0xd,0xd,0xd, +0xe,0xe,0xe,0xe,0xe,0xf,0xf,0xf, +0xf,0xf,0xf,0x10,0x10,0x10,0x10,0x10, +0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12, +0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x14, +0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15, +0x15,0x16,0x16,0x16,0x16,0x17,0x17,0x17, +0x17,0x17,0x18,0x18,0x18,0x18,0x19,0x19, +0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d, +0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1f, +0x1f,0x1f,0x1f,0x20,0x20,0x20,0x21,0x21, +0x21,0x21,0x22,0x22,0x22,0x22,0x23,0x23, +0x23,0x23,0x24,0x24,0x24,0x25,0x25,0x25, +0x25,0x26,0x26,0x26,0x26,0x27,0x27,0x27, +0x28,0x28,0x28,0x28,0x29,0x29,0x29,0x2a, +0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2c,0x2c, +0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e, +0x2f,0x2f,0x2f,0x30,0x30,0x30,0x30,0x31, +0x31,0x31,0x32,0x32,0x32,0x33,0x33,0x33, +0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x36, +0x36,0x36,0x37,0x37,0x37,0x38,0x38,0x38, +0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3b,0x3b, +0x3b,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e, +0x3e,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40, +0x41,0x41,0x41,0x42,0x42,0x42,0x43,0x43, +0x43,0x44,0x44,0x44,0x45,0x45,0x45,0x46, +0x46,0x47,0x47,0x47,0x48,0x48,0x48,0x49, +0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b, +0x4c,0x4c,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e, +0x4f,0x4f,0x4f,0x50,0x50,0x51,0x51,0x51, +0x52,0x52,0x52,0x53,0x53,0x53,0x54,0x54, +0x55,0x55,0x55,0x56,0x56,0x56,0x57,0x57, +0x58,0x58,0x58,0x59,0x59,0x59,0x5a,0x5a, +0x5a,0x5b,0x5b,0x5c,0x5c,0x5c,0x5d,0x5d, +0x5d,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60, +0x61,0x61,0x61,0x62,0x62,0x62,0x63,0x63, +0x64,0x64,0x64,0x65,0x65,0x65,0x66,0x66, +0x67,0x67,0x67,0x68,0x68,0x69,0x69,0x69, +0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c, +0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70, +0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x73, +0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x76, +0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79, +0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c, +0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f +}; \ No newline at end of file diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c index 292b41c3a6..1a695a9aae 100644 --- a/tmk_core/common/avr/timer.c +++ b/tmk_core/common/avr/timer.c @@ -29,24 +29,24 @@ volatile uint32_t timer_count = 0; void timer_init(void) { // Timer0 CTC mode - TCCR0A = 0x02; + TCCR1A = 0x02; #if TIMER_PRESCALER == 1 - TCCR0B = 0x01; + TCCR1B = 0x01; #elif TIMER_PRESCALER == 8 - TCCR0B = 0x02; + TCCR1B = 0x02; #elif TIMER_PRESCALER == 64 - TCCR0B = 0x03; + TCCR1B = 0x03; #elif TIMER_PRESCALER == 256 - TCCR0B = 0x04; + TCCR1B = 0x04; #elif TIMER_PRESCALER == 1024 - TCCR0B = 0x05; + TCCR1B = 0x05; #else # error "Timer prescaler value is NOT vaild." #endif - OCR0A = TIMER_RAW_TOP; - TIMSK0 = (1< Date: Mon, 11 Jan 2016 17:52:35 -0500 Subject: [PATCH 12/52] timer 3 --- quantum/beeps.c | 151 +++--------------------------------- tmk_core/common/avr/timer.c | 18 ++--- 2 files changed, 18 insertions(+), 151 deletions(-) diff --git a/quantum/beeps.c b/quantum/beeps.c index edcc84aca4..08b35abbd8 100644 --- a/quantum/beeps.c +++ b/quantum/beeps.c @@ -32,33 +32,9 @@ bool sliding = false; #define RANGE 1000 volatile int i=0; //elements of the wave -// uint8_t sine[128]; -// uint8_t tri[128]; -// uint8_t squ[128]; -// uint8_t* sine_start; -// uint8_t* sine_end; -// uint8_t* tri_start; -// uint8_t* tri_end; - -// uint8_t* s_start; -// uint8_t* s_end; -// uint8_t* s_ptr; - - - -void beeps() { - play_notes(); -} - -void send_freq(double freq, int vol) { - int duty = (((double)F_CPU) / freq); - ICR3 = duty; // Set max to the period - OCR3A = duty >> (0x10 - vol); // Set compare to half the period -} - void stop_all_notes() { voices = 0; - TIMSK0 &= ~_BV(OCIE0A); + TIMSK3 &= ~_BV(OCIE3A); frequency = 0; volume = 0; @@ -86,7 +62,7 @@ void stop_note(double freq) { if (voices < 0) voices = 0; if (voices == 0) { - TIMSK0 &= ~_BV(OCIE0A); + TIMSK3 &= ~_BV(OCIE3A); frequency = 0; volume = 0; } else { @@ -106,7 +82,6 @@ void stop_note(double freq) { } sliding = false; } - // send_freq(freq, vol); frequency = freq; volume = vol; } @@ -114,18 +89,6 @@ void stop_note(double freq) { void init_notes() { - // for(int i = 0; i < 128; i++) { - // sine[i] = sin(i * PI / 64) * 128 + 128; - // tri[i] = 256 - abs((i - 64) * 4); - // } - // sine_start = &sine; - // sine_end = &sine + 128; - // tri_start = &tri; - // tri_end = &tri + 128; - - // new - - PLLFRQ = _BV(PDIV2); PLLCSR = _BV(PLLE); while(!(PLLCSR & _BV(PLOCK))); @@ -139,28 +102,6 @@ void init_notes() { /* Enable the OC4A output */ DDRC |= _BV(PORTC6); - - - /* First disable the timer overflow interrupt while we're configuring */ - // TIMSK0 &= ~(1<= sine_end) { - // sine_start = &sine[(sine_start - sine_end) % 128]; - // } - - - // OCR4A = pgm_read_byte(sine_start); - // // sine_start = &sine[(sine_start - &sine[0] + (int)frequencies[0]) % 128]; - // sine_start += (int)frequencies[0]; - // if (sine_start >= sine_end) { - // sine_start = &sine[(sine_start - sine_end) % 128]; - // } - - // OCR4A = pgm_read_byte(s_ptr); - // s_ptr = s_start + (uint8_t)place; - // OCR4A = pgm_read_byte(s_ptr); - +ISR(TIMER3_COMPA_vect) { // SINE OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]); @@ -217,24 +137,10 @@ ISR(TIMER0_COMPA_vect) { } - -ISR(TIMER0_COMPB_vect) -{ - - /* Disable the interrupt */ - TIMSK0 &= ~_BV(OCIE0B); - -} - void play_note(double freq, int vol) { freq = freq / SAMPLE_RATE; if (freq > 0) { - - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (1 << WGM30); - // TCCR3B = (0 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // TIMSK3 = 0x0; if (frequency != 0) { double starting_f = frequency; if (frequency < freq) { @@ -247,59 +153,20 @@ void play_note(double freq, int vol) { } } } - // send_freq(freq, vol); frequency = freq; volume = vol; frequencies[voices] = frequency; volumes[voices] = volume; voices++; - // position = 0; - // TCNT0 = 0; } - // ICR3 = 0xFFFF; - // for (int i = 0; i < 10000; i++) { - // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF; - // // _delay_us(50); - // } - // TCCR3A = 0; - // TCCR3B = 0; + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A = 0x0; + TCCR3B = _BV(CS31) | _BV(WGM32); + OCR3A = SAMPLE_DIVIDER - 1; - TIMSK0 &= ~_BV(OCIE0A) | ~_BV(OCIE0B); + TIMSK3 |= _BV(OCIE3A); - TCCR0A = _BV(WGM01); - TCCR0B = _BV(CS01); - OCR0A = SAMPLE_DIVIDER - 1; - OCR0B = 1; - - TIMSK0 |= _BV(OCIE0A); - // sei(); - -} - -// void note(int x, float length) { -// DDRC |= (1<<6); -// int t = (int)(440*pow(2,-x/12.0)); // starting note -// for (int y = 0; y < length*1000/t; y++) { // note length -// PORTC |= (1<<6); -// delay_us(t); -// PORTC &= ~(1<<6); -// delay_us(t); -// } -// PORTC &= ~(1<<6); -// } - -// void true_note(float x, float y, float length) { -// for (uint32_t i = 0; i < length * 50; i++) { -// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); -// for (int u = 0; u < 8; u++) { -// if (v & (1 << u) && !(PORTC&(1<<6))) -// PORTC |= (1<<6); -// else if (PORTC&(1<<6)) -// PORTC &= ~(1<<6); -// } -// } -// PORTC &= ~(1<<6); -// } \ No newline at end of file +} \ No newline at end of file diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c index 1a695a9aae..292b41c3a6 100644 --- a/tmk_core/common/avr/timer.c +++ b/tmk_core/common/avr/timer.c @@ -29,24 +29,24 @@ volatile uint32_t timer_count = 0; void timer_init(void) { // Timer0 CTC mode - TCCR1A = 0x02; + TCCR0A = 0x02; #if TIMER_PRESCALER == 1 - TCCR1B = 0x01; + TCCR0B = 0x01; #elif TIMER_PRESCALER == 8 - TCCR1B = 0x02; + TCCR0B = 0x02; #elif TIMER_PRESCALER == 64 - TCCR1B = 0x03; + TCCR0B = 0x03; #elif TIMER_PRESCALER == 256 - TCCR1B = 0x04; + TCCR0B = 0x04; #elif TIMER_PRESCALER == 1024 - TCCR1B = 0x05; + TCCR0B = 0x05; #else # error "Timer prescaler value is NOT vaild." #endif - OCR1A = TIMER_RAW_TOP; - TIMSK1 = (1< Date: Mon, 11 Jan 2016 18:00:07 -0500 Subject: [PATCH 13/52] beeps on lock keymap --- keyboard/planck/keymaps/keymap_lock.c | 32 ++++++++++++++++++++++++++- keyboard/planck/planck.c | 29 ------------------------ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index c2bf0b7d81..c8e1b8fa86 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -107,7 +107,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // note(0+24, 20); } else { unregister_code(KC_RSFT); - // stop_all_notes(); + stop_all_notes(); // backlight_set(0); default_layer_and(0); default_layer_or(0); @@ -119,3 +119,33 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; + + +void * matrix_init_user(void) { + init_notes(); + + play_note(((double)261.6*3)*pow(2.0,(36)/12.0), 0xF); + _delay_ms(50); + + play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); + _delay_ms(25); + stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); + + play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); + _delay_ms(25); + stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); + + + stop_note(((double)261.6*3)*pow(2.0,(36)/12.0)); + + + play_note(((double)261.6*3)*pow(2.0,(62)/12.0), 0xF); + _delay_ms(50); + stop_note(((double)261.6*3)*pow(2.0,(62)/12.0)); + + + play_note(((double)261.6*3)*pow(2.0,(64)/12.0), 0xF); + _delay_ms(50); + stop_note(((double)261.6*3)*pow(2.0,(64)/12.0)); + +} diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index a986bd8812..b62862af04 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -19,35 +19,6 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - init_notes(); - - // play_note(((double)261.6*32)*pow(2.0,(36)/12.0), 0xF); - // _delay_ms(50); - - // play_note(((double)261.6*32)*pow(2.0,(48)/12.0), 0xF); - // _delay_ms(25); - // stop_note(((double)261.6*32)*pow(2.0,(48)/12.0)); - - // play_note(((double)261.6*32)*pow(2.0,(48)/12.0), 0xF); - // _delay_ms(25); - // stop_note(((double)261.6*32)*pow(2.0,(48)/12.0)); - - - // stop_note(((double)261.6*32)*pow(2.0,(36)/12.0)); - - - // play_note(((double)261.6*32)*pow(2.0,(62)/12.0), 0xF); - // _delay_ms(50); - // stop_note(((double)261.6*32)*pow(2.0,(62)/12.0)); - - - // play_note(((double)261.6*32)*pow(2.0,(64)/12.0), 0xF); - // _delay_ms(50); - // stop_note(((double)261.6*32)*pow(2.0,(64)/12.0)); - - - - if (matrix_init_user) { (*matrix_init_user)(); } From 4c100dbbef5b97290cbe6d4846575a940649c958 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 13 Jan 2016 00:25:31 -0500 Subject: [PATCH 14/52] note seq, start-up beeps, function beeps --- keyboard/planck/keymaps/keymap_lock.c | 73 ++++++++++--- quantum/beeps.c | 147 +++++++++++++++++++++----- quantum/beeps.h | 9 +- 3 files changed, 183 insertions(+), 46 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index c8e1b8fa86..5e5390b036 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -2,6 +2,7 @@ // #include "backlight.h" #include "action_layer.h" #include "keymap_midi.h" +#include "beeps.h" #include const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -63,12 +64,26 @@ uint16_t hextokeycode(int hex) { } } +float walk_up[][2] = { + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(67)/12.0), 400}, +}; + +float walk_dn[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, +}; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { case 0: if (record->event.pressed) { + + play_notes(&walk_up, 3, false); // play_note(440, 20); // register_code(KC_RSFT); // backlight_set(BACKLIGHT_LEVELS); @@ -107,7 +122,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // note(0+24, 20); } else { unregister_code(KC_RSFT); - stop_all_notes(); + play_notes(&walk_dn, 3, false); // backlight_set(0); default_layer_and(0); default_layer_or(0); @@ -120,32 +135,58 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 600}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(55)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 1000}, +}; void * matrix_init_user(void) { init_notes(); - play_note(((double)261.6*3)*pow(2.0,(36)/12.0), 0xF); - _delay_ms(50); + play_notes(&start_up, 9, false); + // play_note(((double)261.6*3)*pow(2.0,(36)/12.0), 0xF); + // _delay_ms(50); - play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); - _delay_ms(25); - stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); + // play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); + // _delay_ms(25); + // stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); - play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); - _delay_ms(25); - stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); + // play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); + // _delay_ms(25); + // stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); - stop_note(((double)261.6*3)*pow(2.0,(36)/12.0)); + // stop_note(((double)261.6*3)*pow(2.0,(36)/12.0)); - play_note(((double)261.6*3)*pow(2.0,(62)/12.0), 0xF); - _delay_ms(50); - stop_note(((double)261.6*3)*pow(2.0,(62)/12.0)); + // play_note(((double)261.6*3)*pow(2.0,(62)/12.0), 0xF); + // _delay_ms(50); + // stop_note(((double)261.6*3)*pow(2.0,(62)/12.0)); - play_note(((double)261.6*3)*pow(2.0,(64)/12.0), 0xF); - _delay_ms(50); - stop_note(((double)261.6*3)*pow(2.0,(64)/12.0)); + // play_note(((double)261.6*3)*pow(2.0,(64)/12.0), 0xF); + // _delay_ms(50); + // stop_note(((double)261.6*3)*pow(2.0,(64)/12.0)); } + + +// void * matrix_scan_user(void) { +// if (layer_state & (1<<2)) { +// if (!playing_notes) +// play_notes(&start_up, 9, true); +// } else if (layer_state & (1<<3)) { +// if (!playing_notes) +// play_notes(&start_up, 9, true); +// } else { +// if (playing_notes) +// stop_all_notes(); +// } +// } \ No newline at end of file diff --git a/quantum/beeps.c b/quantum/beeps.c index 08b35abbd8..7586ebc522 100644 --- a/quantum/beeps.c +++ b/quantum/beeps.c @@ -11,8 +11,8 @@ #define PI 3.14159265 -#define SAMPLE_DIVIDER 70 -#define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/256) +#define SAMPLE_DIVIDER 39 +#define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap void delay_us(int count) { @@ -32,9 +32,31 @@ bool sliding = false; #define RANGE 1000 volatile int i=0; //elements of the wave +int max = 0xFF; +float sum = 0; +int value = 128; +float place = 0; + +uint16_t place_int = 0; +bool repeat = true; +uint8_t * sample; +uint16_t sample_length = 0; + + +bool notes = false; +float note_frequency = 0; +float note_length = 0; +uint16_t note_position = 0; +float (* notes_pointer)[][2]; +uint8_t notes_length; +bool notes_repeat; +uint8_t current_note = 0; + void stop_all_notes() { voices = 0; TIMSK3 &= ~_BV(OCIE3A); + notes = false; + playing_notes = false; frequency = 0; volume = 0; @@ -89,30 +111,35 @@ void stop_note(double freq) { void init_notes() { - PLLFRQ = _BV(PDIV2); - PLLCSR = _BV(PLLE); - while(!(PLLCSR & _BV(PLOCK))); - PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - - /* Init a fast PWM on Timer4 */ - TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ - TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ - OCR4A = 0; + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - /* Enable the OC4A output */ - DDRC |= _BV(PORTC6); + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + + playing_notes = false; } -int max = 0xFF; -float sum = 0; -int value = 128; -float place = 0; ISR(TIMER3_COMPA_vect) { + // SINE - OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]); + // OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]); // SQUARE // if (((int)place) >= 1024){ @@ -131,10 +158,82 @@ ISR(TIMER3_COMPA_vect) { // OCR4A = 2048 - (int)place / 2; // } - place += frequency; - if (place >= SINE_LENGTH) - place -= SINE_LENGTH; + // place += frequency; + // if (place >= SINE_LENGTH) + // if (repeat) + // place -= SINE_LENGTH; + // else + // TIMSK3 &= ~_BV(OCIE3A); + + // SAMPLE + // OCR4A = pgm_read_byte(&sample[(uint16_t)place_int]); + + // place_int++; + + // if (place_int >= sample_length) + // if (repeat) + // place_int -= sample_length; + // else + // TIMSK3 &= ~_BV(OCIE3A); + + + if (notes) { + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 0; + + place += note_frequency; + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + note_position++; + if (note_position >= note_length) { + current_note++; + if (current_note >= notes_length) { + if (notes_repeat) { + current_note = 0; + } else { + TIMSK3 &= ~_BV(OCIE3A); + notes = false; + playing_notes = false; + return; + } + } + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + note_position = 0; + } + + } + +} + +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { + notes = true; + + notes_pointer = np; + notes_length = n_length; + notes_repeat = n_repeat; + + place = 0; + current_note = 0; + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + // note_frequency = 880.0 / SAMPLE_RATE; + // note_length = 1000; + note_position = 0; + + + TIMSK3 |= _BV(OCIE3A); + playing_notes = true; +} + +void play_sample(uint8_t * s, uint16_t l, bool r) { + place_int = 0; + sample = s; + sample_length = l; + repeat = r; + + TIMSK3 |= _BV(OCIE3A); + playing_notes = true; } void play_note(double freq, int vol) { @@ -161,12 +260,6 @@ void play_note(double freq, int vol) { voices++; } - TIMSK3 &= ~_BV(OCIE3A); - - TCCR3A = 0x0; - TCCR3B = _BV(CS31) | _BV(WGM32); - OCR3A = SAMPLE_DIVIDER - 1; - TIMSK3 |= _BV(OCIE3A); } \ No newline at end of file diff --git a/quantum/beeps.h b/quantum/beeps.h index a7fcf6c23c..4ccc344973 100644 --- a/quantum/beeps.h +++ b/quantum/beeps.h @@ -3,10 +3,13 @@ #include #include -void note(int x, float length); -void beeps(); -void true_note(float x, float y, float length); +bool playing_notes; + +void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); + + +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file From 93e350caa1f5ce704741a18e6e3106787b574406 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 16 Jan 2016 00:38:13 +0100 Subject: [PATCH 15/52] Added shifts on the thumbs --- keyboard/ergodox_ez/keymaps/keymap_typematrix.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 7161a638a8..04d91b45bf 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Esc/Alt| L1 | | Left |Right | * ,------+-------+------| |------+------+------. * | | | PgUp | | Up | | | - * |Space | Space |------| |------|Space |Space | + * |Space |LShift |------| |------|RShift|Space | * | | | PgDn | | Down | | | * `---------------------' `--------------------' */ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ALT_T(KC_ESC), TG(1), KC_PGUP, - KC_SPC, KC_SPC, KC_PGDN, + KC_SPC, KC_LSFT, KC_PGDN, // right hand KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_RGHT, KC_UP, - KC_DOWN, KC_SPC, KC_SPC + KC_DOWN, KC_RSFT, KC_SPC ), /* Keymap 1: Numbers Layer * From 6e3c36360ed291b9ca2bd014571236308a933d0c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Jan 2016 23:10:30 -0500 Subject: [PATCH 16/52] sounds --- keyboard/planck/keymaps/keymap_lock.c | 4 ++-- quantum/keymap_unicode.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index 5e5390b036..7a99b57c9d 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -67,13 +67,13 @@ uint16_t hextokeycode(int hex) { float walk_up[][2] = { {440.0*pow(2.0,(60)/12.0), 400}, {0, 50}, - {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(67)/12.0), 600}, }; float walk_dn[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {0, 50}, - {440.0*pow(2.0,(60)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 600}, }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) diff --git a/quantum/keymap_unicode.c b/quantum/keymap_unicode.c index a9357edec7..a44965e611 100644 --- a/quantum/keymap_unicode.c +++ b/quantum/keymap_unicode.c @@ -30,6 +30,8 @@ uint16_t hextokeycode(int hex) { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + // For more info on how this works per OS, see here: https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input + if (record->event.pressed) { uint16_t unicode = (opt << 8) | id; register_code(KC_LALT); From 4faddd3449ca553e0d8b02ba91f9a34b534eebe7 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Jan 2016 00:06:51 -0500 Subject: [PATCH 17/52] working --- keyboard/planck/keymaps/keymap_lock.c | 2 ++ quantum/quantum.mk | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index cc9be55f64..bc81adcf97 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -1,3 +1,5 @@ +// USING_MIDI +// USING_BACKLIGHT #include "keymap_common.h" #include "backlight.h" #include "action_layer.h" diff --git a/quantum/quantum.mk b/quantum/quantum.mk index c82e478725..62d67be9f1 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -4,6 +4,21 @@ QUANTUM_DIR = quantum SRC += $(QUANTUM_DIR)/keymap_common.c \ $(QUANTUM_DIR)/led.c +ifdef KEYMAP +ifneq (,$(shell grep USING_MIDI 'keymaps/keymap_$(KEYMAP).c')) +MIDI_ENABLE=yes +$(info * Overriding MIDI_ENABLE setting - keymap_$(KEYMAP).c requires it) +endif +ifneq (,$(shell grep USING_UNICODE 'keymaps/keymap_$(KEYMAP).c')) +UNICODE_ENABLE=yes +$(info * Overriding UNICODE_ENABLE setting - keymap_$(KEYMAP).c requires it) +endif +ifneq (,$(shell grep USING_BACKLIGHT 'keymaps/keymap_$(KEYMAP).c')) +BACKLIGHT_ENABLE=yes +$(info * Overriding BACKLIGHT_ENABLE setting - keymap_$(KEYMAP).c requires it) +endif +endif + ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif From dfe7004bc545ff7247a0dbef4788b9e1952f9c5d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Jan 2016 00:51:24 -0500 Subject: [PATCH 18/52] new keymap folder structure and makefile magic --- keyboard/planck/Makefile | 13 +- keyboard/planck/README.md | 126 ++++++++++++------ .../keymaps/{keymap_alexey.c => alexey.c} | 0 ...ymap_angerthosenear.c => angerthosenear.c} | 0 .../keymaps/{keymap_austin.c => austin.c} | 0 .../keymaps/{keymap_charlie.c => charlie.c} | 0 .../keymaps/{keymap_daniel.c => daniel.c} | 0 .../keymaps/{keymap_david.c => david.c} | 0 .../keymaps/{keymap_default.c => default.c} | 0 .../keymaps/{keymap_dzobert.c => dzobert.c} | 0 .../keymaps/{keymap_gabriel.c => gabriel.c} | 0 .../planck/keymaps/{keymap_jack.c => jack.c} | 0 .../planck/keymaps/{keymap_joe.c => joe.c} | 0 .../planck/keymaps/{keymap_kyle.c => kyle.c} | 0 .../planck/keymaps/{keymap_leo.c => leo.c} | 0 .../planck/keymaps/{keymap_lock.c => lock.c} | 0 .../planck/keymaps/{keymap_max.c => max.c} | 0 .../keymaps/{keymap_monkey.c => monkey.c} | 0 .../keymaps/{keymap_numpad.c => numpad.c} | 0 keyboard/planck/keymaps/test/default.c | 123 +++++++++++++++++ quantum/quantum.mk | 14 +- 21 files changed, 228 insertions(+), 48 deletions(-) rename keyboard/planck/keymaps/{keymap_alexey.c => alexey.c} (100%) rename keyboard/planck/keymaps/{keymap_angerthosenear.c => angerthosenear.c} (100%) rename keyboard/planck/keymaps/{keymap_austin.c => austin.c} (100%) rename keyboard/planck/keymaps/{keymap_charlie.c => charlie.c} (100%) rename keyboard/planck/keymaps/{keymap_daniel.c => daniel.c} (100%) rename keyboard/planck/keymaps/{keymap_david.c => david.c} (100%) rename keyboard/planck/keymaps/{keymap_default.c => default.c} (100%) rename keyboard/planck/keymaps/{keymap_dzobert.c => dzobert.c} (100%) rename keyboard/planck/keymaps/{keymap_gabriel.c => gabriel.c} (100%) rename keyboard/planck/keymaps/{keymap_jack.c => jack.c} (100%) rename keyboard/planck/keymaps/{keymap_joe.c => joe.c} (100%) rename keyboard/planck/keymaps/{keymap_kyle.c => kyle.c} (100%) rename keyboard/planck/keymaps/{keymap_leo.c => leo.c} (100%) rename keyboard/planck/keymaps/{keymap_lock.c => lock.c} (100%) rename keyboard/planck/keymaps/{keymap_max.c => max.c} (100%) rename keyboard/planck/keymaps/{keymap_monkey.c => monkey.c} (100%) rename keyboard/planck/keymaps/{keymap_numpad.c => numpad.c} (100%) create mode 100644 keyboard/planck/keymaps/test/default.c diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 485c5f77f6..f3537b2c7a 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -54,10 +54,19 @@ SRC = planck.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c else - SRC := keymaps/keymap_default.c $(SRC) + KEYMAP_FILE = keymaps/$(KEYMAP)/default.c endif +else +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/default.c +endif +endif +SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md index 0003e765d4..5c3a52498a 100644 --- a/keyboard/planck/README.md +++ b/keyboard/planck/README.md @@ -3,29 +3,42 @@ Planck keyboard firmware DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). ## Quantum MK Firmware + You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -### Mod shortcuts +## Quick aliases to common actions -* `LSFT(kc)` - applies left shift to *kc* - `S(kc)` is an alias -* `RSFT(kc)` - applies right shift to *kc* -* `LCTL(kc)` - applies left control to *kc* -* `RCTL(kc)` - applies right control to *kc* -* `LALT(kc)` - applies left alt to *kc* -* `RALT(kc)` - applies right alt to *kc* -* `LGUI(kc)` - applies left gui (command/win) to *kc* -* `RGUI(kc)` - applies right gui (command/win) to *kc* +Your keymap can include shortcuts to common operations (called "function actions" in tmk). -You can also use more than one, like this: +### Switching and toggling layers - LALT(LGUI(KC_ESC)) +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names (see `quantum/keymap_common.h`) are also availble. +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. KC_TILD ~ KC_EXLM ! @@ -45,31 +58,71 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u KC_PIPE | KC_COLN : -### Function shortcuts +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. -Instead of using `FNx`, you can use `F(x)` - the benefit here is being able to use more than 32 function layers (up to 4096), if you happen to need them. +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): -There are also keycode shortcuts for common actions: + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: -* `MO(layer)` - momentary switch to *layer* -* `DF(layer)` - sets default layer to *layer* -* `TG(layer)` - toggle between the current layer and *layer* -* `MT(mod, kc)` - is *mod* when held, and *kc* when tapped * `CTL_T(kc)` - is LCTL when held and *kc* when tapped * `SFT_T(kc)` - is LSFT when held and *kc* when tapped * `ALT_T(kc)` - is LALT when held and *kc* when tapped * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped -* `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) -These functions work the same way that their `ACTION_*` functions do, and will require KC_TRNS on the layer being switched to - check out the default keymap for an example. +### Temporarily setting the default layer -### Additional keycodes for software-implemented layouts (Colemak, Dvorak, etc) +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymaps/default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - #include "keymap_.h" - + #include "keymap_.h" + Where is "colemak" or "dvorak". After including this line, you will get access to: * `CM_*` for all of the Colemak-equivalent characters @@ -79,19 +132,15 @@ These implementations assume you're using Colemak or Dvorak on your OS, not on y To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. -### Additional language support +## Additional language support -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbrivation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). -### Unicode support +## Unicode support You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. -### Macro shortcuts - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to filter them. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -### Other keyboard shortcut keycodes +## Other firmware shortcut keycodes * `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) * `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things @@ -105,12 +154,11 @@ Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to acces Enable the backlight from the Makefile. - -### MIDI functionalty +## MIDI functionalty This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. -### Bluetooth functionality +## Bluetooth functionality This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. @@ -124,13 +172,13 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. ### Notable forks (which some of the keymap files are from) - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) diff --git a/keyboard/planck/keymaps/keymap_alexey.c b/keyboard/planck/keymaps/alexey.c similarity index 100% rename from keyboard/planck/keymaps/keymap_alexey.c rename to keyboard/planck/keymaps/alexey.c diff --git a/keyboard/planck/keymaps/keymap_angerthosenear.c b/keyboard/planck/keymaps/angerthosenear.c similarity index 100% rename from keyboard/planck/keymaps/keymap_angerthosenear.c rename to keyboard/planck/keymaps/angerthosenear.c diff --git a/keyboard/planck/keymaps/keymap_austin.c b/keyboard/planck/keymaps/austin.c similarity index 100% rename from keyboard/planck/keymaps/keymap_austin.c rename to keyboard/planck/keymaps/austin.c diff --git a/keyboard/planck/keymaps/keymap_charlie.c b/keyboard/planck/keymaps/charlie.c similarity index 100% rename from keyboard/planck/keymaps/keymap_charlie.c rename to keyboard/planck/keymaps/charlie.c diff --git a/keyboard/planck/keymaps/keymap_daniel.c b/keyboard/planck/keymaps/daniel.c similarity index 100% rename from keyboard/planck/keymaps/keymap_daniel.c rename to keyboard/planck/keymaps/daniel.c diff --git a/keyboard/planck/keymaps/keymap_david.c b/keyboard/planck/keymaps/david.c similarity index 100% rename from keyboard/planck/keymaps/keymap_david.c rename to keyboard/planck/keymaps/david.c diff --git a/keyboard/planck/keymaps/keymap_default.c b/keyboard/planck/keymaps/default.c similarity index 100% rename from keyboard/planck/keymaps/keymap_default.c rename to keyboard/planck/keymaps/default.c diff --git a/keyboard/planck/keymaps/keymap_dzobert.c b/keyboard/planck/keymaps/dzobert.c similarity index 100% rename from keyboard/planck/keymaps/keymap_dzobert.c rename to keyboard/planck/keymaps/dzobert.c diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/gabriel.c similarity index 100% rename from keyboard/planck/keymaps/keymap_gabriel.c rename to keyboard/planck/keymaps/gabriel.c diff --git a/keyboard/planck/keymaps/keymap_jack.c b/keyboard/planck/keymaps/jack.c similarity index 100% rename from keyboard/planck/keymaps/keymap_jack.c rename to keyboard/planck/keymaps/jack.c diff --git a/keyboard/planck/keymaps/keymap_joe.c b/keyboard/planck/keymaps/joe.c similarity index 100% rename from keyboard/planck/keymaps/keymap_joe.c rename to keyboard/planck/keymaps/joe.c diff --git a/keyboard/planck/keymaps/keymap_kyle.c b/keyboard/planck/keymaps/kyle.c similarity index 100% rename from keyboard/planck/keymaps/keymap_kyle.c rename to keyboard/planck/keymaps/kyle.c diff --git a/keyboard/planck/keymaps/keymap_leo.c b/keyboard/planck/keymaps/leo.c similarity index 100% rename from keyboard/planck/keymaps/keymap_leo.c rename to keyboard/planck/keymaps/leo.c diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/lock.c similarity index 100% rename from keyboard/planck/keymaps/keymap_lock.c rename to keyboard/planck/keymaps/lock.c diff --git a/keyboard/planck/keymaps/keymap_max.c b/keyboard/planck/keymaps/max.c similarity index 100% rename from keyboard/planck/keymaps/keymap_max.c rename to keyboard/planck/keymaps/max.c diff --git a/keyboard/planck/keymaps/keymap_monkey.c b/keyboard/planck/keymaps/monkey.c similarity index 100% rename from keyboard/planck/keymaps/keymap_monkey.c rename to keyboard/planck/keymaps/monkey.c diff --git a/keyboard/planck/keymaps/keymap_numpad.c b/keyboard/planck/keymaps/numpad.c similarity index 100% rename from keyboard/planck/keymaps/keymap_numpad.c rename to keyboard/planck/keymaps/numpad.c diff --git a/keyboard/planck/keymaps/test/default.c b/keyboard/planck/keymaps/test/default.c new file mode 100644 index 0000000000..bc81adcf97 --- /dev/null +++ b/keyboard/planck/keymaps/test/default.c @@ -0,0 +1,123 @@ +// USING_MIDI +// USING_BACKLIGHT +#include "keymap_common.h" +#include "backlight.h" +#include "action_layer.h" +#include "keymap_midi.h" +#include + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[4] = { /* TENKEY */ + {KC_TAB, N_C5, N_D5, N_E5, N_F5, N_G5, N_A5, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[5] = { + { MIDI12 }, + { MIDI12 }, + { MIDI12 }, + {M(0), KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +uint16_t hextokeycode(int hex) { + if (hex == 0x0) { + return KC_0; + } else if (hex < 0xA) { + return KC_1 + (hex - 0x1); + } else { + return KC_A + (hex - 0xA); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + // play_note(440, 20); + // register_code(KC_RSFT); + backlight_set(BACKLIGHT_LEVELS); + default_layer_and(0); + default_layer_or((1<<5)); + + // uint8_t low = boot_lock_fuse_bits_get(0x0000); + // uint8_t high = boot_lock_fuse_bits_get(0x0003); + // uint8_t ext = boot_lock_fuse_bits_get(0x0002); + // uint8_t lock = boot_lock_fuse_bits_get(0x0001); + + // register_code(hextokeycode((low & 0xF0) >> 4)); + // unregister_code(hextokeycode((low & 0xF0) >> 4)); + // register_code(hextokeycode((low & 0x0F))); + // unregister_code(hextokeycode((low & 0x0F))); + + + // register_code(hextokeycode((high & 0xF0) >> 4)); + // unregister_code(hextokeycode((high & 0xF0) >> 4)); + // register_code(hextokeycode((high & 0x0F))); + // unregister_code(hextokeycode((high & 0x0F))); + + + // register_code(hextokeycode((ext & 0xF0) >> 4)); + // unregister_code(hextokeycode((ext & 0xF0) >> 4)); + // register_code(hextokeycode((ext & 0x0F))); + // unregister_code(hextokeycode((ext & 0x0F))); + + + // register_code(hextokeycode((lock & 0xF0) >> 4)); + // unregister_code(hextokeycode((lock & 0xF0) >> 4)); + // register_code(hextokeycode((lock & 0x0F))); + // unregister_code(hextokeycode((lock & 0x0F))); + + // note(0+12, 20); + // note(0+24, 20); + } else { + // unregister_code(KC_RSFT); + // stop_note(); + backlight_set(0); + default_layer_and(0); + default_layer_or(0); + // note(0+24, 20); + // note(0, 20); + // play_note(4, 20); + } + break; + } + return MACRO_NONE; +}; diff --git a/quantum/quantum.mk b/quantum/quantum.mk index 62d67be9f1..3a968a1459 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -4,18 +4,18 @@ QUANTUM_DIR = quantum SRC += $(QUANTUM_DIR)/keymap_common.c \ $(QUANTUM_DIR)/led.c -ifdef KEYMAP -ifneq (,$(shell grep USING_MIDI 'keymaps/keymap_$(KEYMAP).c')) +ifdef KEYMAP_FILE +ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)')) MIDI_ENABLE=yes -$(info * Overriding MIDI_ENABLE setting - keymap_$(KEYMAP).c requires it) +$(info * Overriding MIDI_ENABLE setting - $(KEYMAP_FILE) requires it) endif -ifneq (,$(shell grep USING_UNICODE 'keymaps/keymap_$(KEYMAP).c')) +ifneq (,$(shell grep USING_UNICODE '$(KEYMAP_FILE)')) UNICODE_ENABLE=yes -$(info * Overriding UNICODE_ENABLE setting - keymap_$(KEYMAP).c requires it) +$(info * Overriding UNICODE_ENABLE setting - $(KEYMAP_FILE) requires it) endif -ifneq (,$(shell grep USING_BACKLIGHT 'keymaps/keymap_$(KEYMAP).c')) +ifneq (,$(shell grep USING_BACKLIGHT '$(KEYMAP_FILE)')) BACKLIGHT_ENABLE=yes -$(info * Overriding BACKLIGHT_ENABLE setting - keymap_$(KEYMAP).c requires it) +$(info * Overriding BACKLIGHT_ENABLE setting - $(KEYMAP_FILE) requires it) endif endif From c9a096dc99a2af45d288f9915d70fa339c0e5a6e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Jan 2016 00:57:35 -0500 Subject: [PATCH 19/52] added error for keymap file not existing --- keyboard/planck/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index f3537b2c7a..ff68ea0fb3 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -57,7 +57,11 @@ ifdef KEYMAP ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") KEYMAP_FILE = keymaps/$(KEYMAP).c else +ifneq ("$(wildcard keymaps/$(KEYMAP)/default.c)","") KEYMAP_FILE = keymaps/$(KEYMAP)/default.c +else +$(error Keymap file does not exist) +endif endif else ifneq ("$(wildcard keymaps/default.c)","") From 547fa6e461ceacd04e7daa0b25b58f7d64d29239 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Jan 2016 01:01:32 -0500 Subject: [PATCH 20/52] I guess I can reference #90 in the commit message --- keyboard/planck/keymaps/test/default.c | 38 -------------------------- 1 file changed, 38 deletions(-) diff --git a/keyboard/planck/keymaps/test/default.c b/keyboard/planck/keymaps/test/default.c index bc81adcf97..71bd6c91e5 100644 --- a/keyboard/planck/keymaps/test/default.c +++ b/keyboard/planck/keymaps/test/default.c @@ -71,51 +71,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case 0: if (record->event.pressed) { - // play_note(440, 20); - // register_code(KC_RSFT); backlight_set(BACKLIGHT_LEVELS); default_layer_and(0); default_layer_or((1<<5)); - - // uint8_t low = boot_lock_fuse_bits_get(0x0000); - // uint8_t high = boot_lock_fuse_bits_get(0x0003); - // uint8_t ext = boot_lock_fuse_bits_get(0x0002); - // uint8_t lock = boot_lock_fuse_bits_get(0x0001); - - // register_code(hextokeycode((low & 0xF0) >> 4)); - // unregister_code(hextokeycode((low & 0xF0) >> 4)); - // register_code(hextokeycode((low & 0x0F))); - // unregister_code(hextokeycode((low & 0x0F))); - - - // register_code(hextokeycode((high & 0xF0) >> 4)); - // unregister_code(hextokeycode((high & 0xF0) >> 4)); - // register_code(hextokeycode((high & 0x0F))); - // unregister_code(hextokeycode((high & 0x0F))); - - - // register_code(hextokeycode((ext & 0xF0) >> 4)); - // unregister_code(hextokeycode((ext & 0xF0) >> 4)); - // register_code(hextokeycode((ext & 0x0F))); - // unregister_code(hextokeycode((ext & 0x0F))); - - - // register_code(hextokeycode((lock & 0xF0) >> 4)); - // unregister_code(hextokeycode((lock & 0xF0) >> 4)); - // register_code(hextokeycode((lock & 0x0F))); - // unregister_code(hextokeycode((lock & 0x0F))); - - // note(0+12, 20); - // note(0+24, 20); } else { - // unregister_code(KC_RSFT); - // stop_note(); backlight_set(0); default_layer_and(0); default_layer_or(0); - // note(0+24, 20); - // note(0, 20); - // play_note(4, 20); } break; } From f66a251e5d9d741ccd3eda5a87de5a71c14843e9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Jan 2016 01:01:32 -0500 Subject: [PATCH 21/52] I guess I can reference #90 in the commit message --- keyboard/planck/keymaps/test/README.md | 3 ++ keyboard/planck/keymaps/test/default.c | 38 -------------------------- 2 files changed, 3 insertions(+), 38 deletions(-) create mode 100644 keyboard/planck/keymaps/test/README.md diff --git a/keyboard/planck/keymaps/test/README.md b/keyboard/planck/keymaps/test/README.md new file mode 100644 index 0000000000..c555d2ddc9 --- /dev/null +++ b/keyboard/planck/keymaps/test/README.md @@ -0,0 +1,3 @@ +# Testing out this! + +This folder will probably get deleted before merging. \ No newline at end of file diff --git a/keyboard/planck/keymaps/test/default.c b/keyboard/planck/keymaps/test/default.c index bc81adcf97..71bd6c91e5 100644 --- a/keyboard/planck/keymaps/test/default.c +++ b/keyboard/planck/keymaps/test/default.c @@ -71,51 +71,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case 0: if (record->event.pressed) { - // play_note(440, 20); - // register_code(KC_RSFT); backlight_set(BACKLIGHT_LEVELS); default_layer_and(0); default_layer_or((1<<5)); - - // uint8_t low = boot_lock_fuse_bits_get(0x0000); - // uint8_t high = boot_lock_fuse_bits_get(0x0003); - // uint8_t ext = boot_lock_fuse_bits_get(0x0002); - // uint8_t lock = boot_lock_fuse_bits_get(0x0001); - - // register_code(hextokeycode((low & 0xF0) >> 4)); - // unregister_code(hextokeycode((low & 0xF0) >> 4)); - // register_code(hextokeycode((low & 0x0F))); - // unregister_code(hextokeycode((low & 0x0F))); - - - // register_code(hextokeycode((high & 0xF0) >> 4)); - // unregister_code(hextokeycode((high & 0xF0) >> 4)); - // register_code(hextokeycode((high & 0x0F))); - // unregister_code(hextokeycode((high & 0x0F))); - - - // register_code(hextokeycode((ext & 0xF0) >> 4)); - // unregister_code(hextokeycode((ext & 0xF0) >> 4)); - // register_code(hextokeycode((ext & 0x0F))); - // unregister_code(hextokeycode((ext & 0x0F))); - - - // register_code(hextokeycode((lock & 0xF0) >> 4)); - // unregister_code(hextokeycode((lock & 0xF0) >> 4)); - // register_code(hextokeycode((lock & 0x0F))); - // unregister_code(hextokeycode((lock & 0x0F))); - - // note(0+12, 20); - // note(0+24, 20); } else { - // unregister_code(KC_RSFT); - // stop_note(); backlight_set(0); default_layer_and(0); default_layer_or(0); - // note(0+24, 20); - // note(0, 20); - // play_note(4, 20); } break; } From fb181304083b884c60a30f64a634b592479aed6d Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 16 Jan 2016 01:35:28 +0100 Subject: [PATCH 22/52] Implemented Dvorak layer --- .../ergodox_ez/keymaps/keymap_typematrix.c | 76 +++++++++++++++---- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c index 04d91b45bf..931170c387 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c +++ b/keyboard/ergodox_ez/keymaps/keymap_typematrix.c @@ -10,14 +10,17 @@ * - ] is moved in place of the dash (-) * - dash (-) and = are moved on bottom right row * - arrows and PgUp/PgDn are moved on the thumbs - * Layer 1: numbers layer close to the TM when toggling "num" with the following differences: + * Layer 1: same as Layer 0 but with Dvorak layout, to use with QWERTY OS layout. + * Enable Dvorak layout with Magic-1 (LShift-RShift-1), disable with Magic-0. + * Layer 8: numbers layer close to the TM when toggling "num" with the following differences: * - numpad is displaced by 1 to the top left * - arrows are displaced by 1 to the left * - provides access to F1-F12, caps lock and num lock - * Layer 2: "fn" layer ("fn" key toggles both layers 1 & 2) with the following differences: + * Layer 9: "fn" layer ("fn" key toggles both layers 1 & 2) with the following differences: * - VolUp & VolDn are only on left hand to keep access to arrows on right hand - * Leds: - * - left (1st) & middle (2nd) leds are used to indicate layers 1 & 2 respectively + * LEDs: + * - left (1st) led is used to indicate the numbers layer + * - middle (2nd) led is used to indicate Dvorak layout * - right (3rd) led is used to indicate caps-lock */ #include "ergodox_ez.h" @@ -26,8 +29,9 @@ #include "led.h" #define BASE 0 // default layer -#define NMBR 1 // numbers layer -#define FNLR 2 // fn layer +#define DVRK 1 // Dvorak layer +#define NMBR 8 // numbers layer +#define FNLR 9 // fn layer #define MDBL0 1 #define MFNLR 2 @@ -36,7 +40,7 @@ #define MPSTE 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer +/* Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | @@ -50,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| * `-----------------------------------' `-----------------------------------' * ,--------------. ,-------------. - * |Esc/Alt| L1 | | Left |Right | + * |Esc/Alt| num | | Left |Right | * ,------+-------+------| |------+------+------. * | | | PgUp | | Up | | | * |Space |LShift |------| |------|RShift|Space | @@ -67,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), - ALT_T(KC_ESC), TG(1), + ALT_T(KC_ESC), TG(NMBR), KC_PGUP, KC_SPC, KC_LSFT, KC_PGDN, @@ -82,7 +86,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_UP, KC_DOWN, KC_RSFT, KC_SPC ), -/* Keymap 1: Numbers Layer +/* Dvorak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[DVRK] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSPC, + KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NMBR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), + KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Numbers Layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | @@ -126,7 +176,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: fn layer +/* fn layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| @@ -221,8 +271,8 @@ void * matrix_scan_user(void) { if (layer_state & (1 << NMBR)) { ergodox_right_led_1_on(); } - // led 2: fn layer - if (layer_state & (1 << FNLR)) { + // led 2: Dvorak layer + if (default_layer_state == 1 << DVRK) { ergodox_right_led_2_on(); } // led 3: caps lock From eb61700912f1713ba27d34c23d7f07be66ee6513 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Jan 2016 00:06:52 -0500 Subject: [PATCH 23/52] better integrations --- keyboard/planck/Makefile | 7 +- keyboard/planck/keymaps/keymap_default.c | 8 +- keyboard/planck/keymaps/keymap_lock.c | 60 +--- keyboard/planck/planck.h | 4 +- quantum/audio.c | 362 +++++++++++++++++++++++ quantum/{beeps.h => audio.h} | 4 - quantum/beeps.c | 265 ----------------- quantum/keymap_midi.c | 4 +- quantum/quantum.mk | 7 +- tmk_core/common.mk | 3 + tmk_core/protocol/lufa/lufa.c | 7 +- 11 files changed, 402 insertions(+), 329 deletions(-) create mode 100644 quantum/audio.c rename quantum/{beeps.h => audio.h} (93%) delete mode 100644 quantum/beeps.c diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index fdf8c16400..7b06446d74 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -50,8 +50,7 @@ TMK_DIR = ../../tmk_core TARGET_DIR = . # # project specific files -SRC = planck.c \ - backlight.c +SRC = planck.c ifdef KEYMAP SRC := keymaps/keymap_$(KEYMAP).c $(SRC) @@ -124,9 +123,13 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = YES # MIDI controls +AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +ifdef BACKLIGHT_ENABLE + SRC += backlight.c +endif # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/keymaps/keymap_default.c b/keyboard/planck/keymaps/keymap_default.c index 49670dafd3..a9c2a06813 100644 --- a/keyboard/planck/keymaps/keymap_default.c +++ b/keyboard/planck/keymaps/keymap_default.c @@ -2,7 +2,9 @@ // this is the style you want to emulate. #include "planck.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -58,7 +60,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 0: if (record->event.pressed) { register_code(KC_RSFT); - backlight_step(); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif } else { unregister_code(KC_RSFT); } diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/keymap_lock.c index 7a99b57c9d..0deb212cc7 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/keymap_lock.c @@ -1,8 +1,10 @@ #include "keymap_common.h" -// #include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include "action_layer.h" #include "keymap_midi.h" -#include "beeps.h" +#include "audio.h" #include const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -86,7 +88,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) play_notes(&walk_up, 3, false); // play_note(440, 20); // register_code(KC_RSFT); - // backlight_set(BACKLIGHT_LEVELS); + #ifdef BACKLIGHT_ENABLE + backlight_set(BACKLIGHT_LEVELS); + #endif default_layer_and(0); default_layer_or((1<<5)); @@ -118,17 +122,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // register_code(hextokeycode((lock & 0x0F))); // unregister_code(hextokeycode((lock & 0x0F))); - // note(0+12, 20); - // note(0+24, 20); } else { unregister_code(KC_RSFT); play_notes(&walk_dn, 3, false); - // backlight_set(0); + #ifdef BACKLIGHT_ENABLE + backlight_set(0); + #endif default_layer_and(0); default_layer_or(0); - // note(0+24, 20); - // note(0, 20); - // play_note(4, 20); } break; } @@ -149,44 +150,5 @@ float start_up[][2] = { void * matrix_init_user(void) { init_notes(); - play_notes(&start_up, 9, false); - // play_note(((double)261.6*3)*pow(2.0,(36)/12.0), 0xF); - // _delay_ms(50); - - // play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); - // _delay_ms(25); - // stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); - - // play_note(((double)261.6*3)*pow(2.0,(48)/12.0), 0xF); - // _delay_ms(25); - // stop_note(((double)261.6*3)*pow(2.0,(48)/12.0)); - - - // stop_note(((double)261.6*3)*pow(2.0,(36)/12.0)); - - - // play_note(((double)261.6*3)*pow(2.0,(62)/12.0), 0xF); - // _delay_ms(50); - // stop_note(((double)261.6*3)*pow(2.0,(62)/12.0)); - - - // play_note(((double)261.6*3)*pow(2.0,(64)/12.0), 0xF); - // _delay_ms(50); - // stop_note(((double)261.6*3)*pow(2.0,(64)/12.0)); - -} - - -// void * matrix_scan_user(void) { -// if (layer_state & (1<<2)) { -// if (!playing_notes) -// play_notes(&start_up, 9, true); -// } else if (layer_state & (1<<3)) { -// if (!playing_notes) -// play_notes(&start_up, 9, true); -// } else { -// if (playing_notes) -// stop_all_notes(); -// } -// } \ No newline at end of file +} \ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index 32c08f3b0b..e775ea7c62 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -3,7 +3,9 @@ #include "matrix.h" #include "keymap_common.h" -// #include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include #ifdef MIDI_ENABLE #include diff --git a/quantum/audio.c b/quantum/audio.c new file mode 100644 index 0000000000..3a3a1a4910 --- /dev/null +++ b/quantum/audio.c @@ -0,0 +1,362 @@ +#include +#include +#include +#include +#include +#include + +#include "audio.h" +#include "keymap_common.h" + +#define PI 3.14159265 + +// #define PWM_AUDIO + +#ifdef PWM_AUDIO + #include "wave.h" + #define SAMPLE_DIVIDER 39 + #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) + // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap +#endif + +void delay_us(int count) { + while(count--) { + _delay_us(1); + } +} + +int voices = 0; +int voice_place = 0; +double frequency = 0; +int volume = 0; +long position = 0; + +double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +bool sliding = false; + +int max = 0xFF; +float sum = 0; +int value = 128; +float place = 0; +float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +uint16_t place_int = 0; +bool repeat = true; +uint8_t * sample; +uint16_t sample_length = 0; + + +bool notes = false; +bool note = false; +float note_frequency = 0; +float note_length = 0; +uint16_t note_position = 0; +float (* notes_pointer)[][2]; +uint8_t notes_length; +bool notes_repeat; +uint8_t current_note = 0; + +void stop_all_notes() { + voices = 0; + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + notes = false; + note = false; + frequency = 0; + volume = 0; + + for (int i = 0; i < 8; i++) { + frequencies[i] = 0; + volumes[i] = 0; + } +} + +void stop_note(double freq) { + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + for (int i = 7; i >= 0; i--) { + if (frequencies[i] == freq) { + frequencies[i] = 0; + volumes[i] = 0; + for (int j = i; (j < 7); j++) { + frequencies[j] = frequencies[j+1]; + frequencies[j+1] = 0; + volumes[j] = volumes[j+1]; + volumes[j+1] = 0; + } + } + } + voices--; + if (voices < 0) + voices = 0; + if (voices == 0) { + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + frequency = 0; + volume = 0; + note = false; + } else { + double freq = frequencies[voices - 1]; + int vol = volumes[voices - 1]; + double starting_f = frequency; + if (frequency < freq) { + sliding = true; + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + frequency = f; + } + sliding = false; + } else if (frequency > freq) { + sliding = true; + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { + frequency = f; + } + sliding = false; + } + frequency = freq; + volume = vol; + } +} + +void init_notes() { + + #ifdef PWM_AUDIO + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + #else + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + #endif +} + + +ISR(TIMER3_COMPA_vect) { + + if (note) { + #ifdef PWM_AUDIO + if (voices == 1) { + // SINE + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 2; + + // SQUARE + // if (((int)place) >= 1024){ + // OCR4A = 0xFF >> 2; + // } else { + // OCR4A = 0x00; + // } + + // SAWTOOTH + // OCR4A = (int)place / 4; + + // TRIANGLE + // if (((int)place) >= 1024) { + // OCR4A = (int)place / 2; + // } else { + // OCR4A = 2048 - (int)place / 2; + // } + + place += frequency; + + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + + } else { + int sum = 0; + for (int i = 0; i < voices; i++) { + // SINE + sum += pgm_read_byte(&sinewave[(uint16_t)places[i]]) >> 2; + + // SQUARE + // if (((int)places[i]) >= 1024){ + // sum += 0xFF >> 2; + // } else { + // sum += 0x00; + // } + + places[i] += frequencies[i]; + + if (places[i] >= SINE_LENGTH) + places[i] -= SINE_LENGTH; + } + OCR4A = sum; + } + #else + if (frequency > 0) { + // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period + // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period + if (place > 10) { + voice_place = (voice_place + 1) % voices; + place = 0.0; + } + ICR3 = (int)(((double)F_CPU) / frequencies[voice_place]); // Set max to the period + OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1; // Set compare to half the period + place++; + } + #endif + } + + // SAMPLE + // OCR4A = pgm_read_byte(&sample[(uint16_t)place_int]); + + // place_int++; + + // if (place_int >= sample_length) + // if (repeat) + // place_int -= sample_length; + // else + // TIMSK3 &= ~_BV(OCIE3A); + + + if (notes) { + #ifdef PWM_AUDIO + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 0; + + place += note_frequency; + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + #else + if (note_frequency > 0) { + ICR3 = (int)(((double)F_CPU) / note_frequency); // Set max to the period + OCR3A = (int)(((double)F_CPU) / note_frequency) >> 1; // Set compare to half the period + } + #endif + + + note_position++; + if (note_position >= note_length) { + current_note++; + if (current_note >= notes_length) { + if (notes_repeat) { + current_note = 0; + } else { + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + notes = false; + return; + } + } + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + note_position = 0; + } + + } + +} + +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { + if (note) + stop_all_notes(); + notes = true; + + notes_pointer = np; + notes_length = n_length; + notes_repeat = n_repeat; + + place = 0; + current_note = 0; + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + note_position = 0; + + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif +} + +void play_sample(uint8_t * s, uint16_t l, bool r) { + stop_all_notes(); + place_int = 0; + sample = s; + sample_length = l; + repeat = r; + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + #endif +} + +void play_note(double freq, int vol) { + if (notes) + stop_all_notes(); + note = true; + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + if (freq > 0) { + if (frequency != 0) { + double starting_f = frequency; + if (frequency < freq) { + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + frequency = f; + } + } else if (frequency > freq) { + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { + frequency = f; + } + } + } + frequency = freq; + volume = vol; + + frequencies[voices] = frequency; + volumes[voices] = volume; + voices++; + } + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif + +} \ No newline at end of file diff --git a/quantum/beeps.h b/quantum/audio.h similarity index 93% rename from quantum/beeps.h rename to quantum/audio.h index 4ccc344973..99203cea7a 100644 --- a/quantum/beeps.h +++ b/quantum/audio.h @@ -3,13 +3,9 @@ #include #include -bool playing_notes; - void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); - - void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file diff --git a/quantum/beeps.c b/quantum/beeps.c deleted file mode 100644 index 7586ebc522..0000000000 --- a/quantum/beeps.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "beeps.h" -#include "keymap_common.h" -#include "wave.h" - -#define PI 3.14159265 - -#define SAMPLE_DIVIDER 39 -#define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) -// Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap - -void delay_us(int count) { - while(count--) { - _delay_us(1); - } -} - -int voices = 0; -double frequency = 0; -int volume = 0; -long position = 0; - -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; -#define RANGE 1000 -volatile int i=0; //elements of the wave - -int max = 0xFF; -float sum = 0; -int value = 128; -float place = 0; - -uint16_t place_int = 0; -bool repeat = true; -uint8_t * sample; -uint16_t sample_length = 0; - - -bool notes = false; -float note_frequency = 0; -float note_length = 0; -uint16_t note_position = 0; -float (* notes_pointer)[][2]; -uint8_t notes_length; -bool notes_repeat; -uint8_t current_note = 0; - -void stop_all_notes() { - voices = 0; - TIMSK3 &= ~_BV(OCIE3A); - notes = false; - playing_notes = false; - frequency = 0; - volume = 0; - - for (int i = 0; i < 8; i++) { - frequencies[i] = 0; - volumes[i] = 0; - } -} - -void stop_note(double freq) { - freq = freq / SAMPLE_RATE; - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { - TIMSK3 &= ~_BV(OCIE3A); - frequency = 0; - volume = 0; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - double starting_f = frequency; - if (frequency < freq) { - sliding = true; - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 500.0)) { - frequency = f; - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 500.0)) { - frequency = f; - } - sliding = false; - } - frequency = freq; - volume = vol; - } -} - -void init_notes() { - - PLLFRQ = _BV(PDIV2); - PLLCSR = _BV(PLLE); - while(!(PLLCSR & _BV(PLOCK))); - PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - - /* Init a fast PWM on Timer4 */ - TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ - TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ - OCR4A = 0; - - /* Enable the OC4A output */ - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = 0x0; // Options not needed - TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC - OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback - - playing_notes = false; - -} - - -ISR(TIMER3_COMPA_vect) { - - - // SINE - // OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]); - - // SQUARE - // if (((int)place) >= 1024){ - // OCR4A = 0xFF; - // } else { - // OCR4A = 0x00; - // } - - // SAWTOOTH - // OCR4A = (int)place / 4; - - // TRIANGLE - // if (((int)place) >= 1024) { - // OCR4A = (int)place / 2; - // } else { - // OCR4A = 2048 - (int)place / 2; - // } - - // place += frequency; - - // if (place >= SINE_LENGTH) - // if (repeat) - // place -= SINE_LENGTH; - // else - // TIMSK3 &= ~_BV(OCIE3A); - - // SAMPLE - // OCR4A = pgm_read_byte(&sample[(uint16_t)place_int]); - - // place_int++; - - // if (place_int >= sample_length) - // if (repeat) - // place_int -= sample_length; - // else - // TIMSK3 &= ~_BV(OCIE3A); - - - if (notes) { - OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 0; - - place += note_frequency; - if (place >= SINE_LENGTH) - place -= SINE_LENGTH; - note_position++; - if (note_position >= note_length) { - current_note++; - if (current_note >= notes_length) { - if (notes_repeat) { - current_note = 0; - } else { - TIMSK3 &= ~_BV(OCIE3A); - notes = false; - playing_notes = false; - return; - } - } - note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; - note_position = 0; - } - - } - -} - -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { - notes = true; - - notes_pointer = np; - notes_length = n_length; - notes_repeat = n_repeat; - - place = 0; - current_note = 0; - note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; - // note_frequency = 880.0 / SAMPLE_RATE; - // note_length = 1000; - note_position = 0; - - - TIMSK3 |= _BV(OCIE3A); - playing_notes = true; -} - -void play_sample(uint8_t * s, uint16_t l, bool r) { - place_int = 0; - sample = s; - sample_length = l; - repeat = r; - - TIMSK3 |= _BV(OCIE3A); - playing_notes = true; -} - -void play_note(double freq, int vol) { - - freq = freq / SAMPLE_RATE; - if (freq > 0) { - if (frequency != 0) { - double starting_f = frequency; - if (frequency < freq) { - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 500.0)) { - frequency = f; - } - } else if (frequency > freq) { - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 500.0)) { - frequency = f; - } - } - } - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - - TIMSK3 |= _BV(OCIE3A); - -} \ No newline at end of file diff --git a/quantum/keymap_midi.c b/quantum/keymap_midi.c index 3a1408e220..e37ea31039 100644 --- a/quantum/keymap_midi.c +++ b/quantum/keymap_midi.c @@ -100,10 +100,10 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.626)*pow(2.0, 0.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); } else { // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.626)*pow(2.0, 0.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } \ No newline at end of file diff --git a/quantum/quantum.mk b/quantum/quantum.mk index c82e478725..81a53f2035 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -9,8 +9,11 @@ ifndef CUSTOM_MATRIX endif ifdef MIDI_ENABLE - SRC += $(QUANTUM_DIR)/keymap_midi.c \ - $(QUANTUM_DIR)/beeps.c + SRC += $(QUANTUM_DIR)/keymap_midi.c +endif + +ifdef AUDIO_ENABLE + SRC += $(QUANTUM_DIR)/audio.c endif ifdef UNICODE_ENABLE diff --git a/tmk_core/common.mk b/tmk_core/common.mk index edbcc282a5..89c366f554 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -53,6 +53,9 @@ ifdef MIDI_ENABLE OPT_DEFS += -DMIDI_ENABLE endif +ifdef AUDIO_ENABLE + OPT_DEFS += -DAUDIO_ENABLE +endif ifdef USB_6KRO_ENABLE OPT_DEFS += -DUSB_6KRO_ENABLE diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index f04790f4e8..5d40dcf7b2 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -52,8 +52,8 @@ #include "descriptor.h" #include "lufa.h" -#ifdef MIDI_ENABLE - #include +#ifdef AUDIO_ENABLE + #include #endif #ifdef BLUETOOTH_ENABLE @@ -946,6 +946,8 @@ int main(void) #ifdef MIDI_ENABLE void fallthrough_callback(MidiDevice * device, uint16_t cnt, uint8_t byte0, uint8_t byte1, uint8_t byte2){ + +#ifdef AUDIO_ENABLE if (cnt == 3) { switch (byte0 & 0xF0) { case MIDI_NOTEON: @@ -959,6 +961,7 @@ void fallthrough_callback(MidiDevice * device, if (byte0 == MIDI_STOP) { stop_all_notes(); } +#endif } void cc_callback(MidiDevice * device, From a820533ab770e1919f190c102a091c1060f6302e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Jan 2016 00:15:29 -0500 Subject: [PATCH 24/52] keymap.c changes, disable grep stuff --- keyboard/planck/Makefile | 10 ++- keyboard/planck/keymaps/default/README.md | 34 ++++++++ .../keymaps/{default.c => default/keymap.c} | 0 keyboard/planck/keymaps/jack.c | 50 ----------- keyboard/planck/keymaps/lock/README.md | 3 + .../planck/keymaps/{lock.c => lock/keymap.c} | 0 keyboard/planck/keymaps/test/README.md | 3 - keyboard/planck/keymaps/test/default.c | 85 ------------------- quantum/quantum.mk | 28 +++--- 9 files changed, 58 insertions(+), 155 deletions(-) create mode 100644 keyboard/planck/keymaps/default/README.md rename keyboard/planck/keymaps/{default.c => default/keymap.c} (100%) delete mode 100644 keyboard/planck/keymaps/jack.c create mode 100644 keyboard/planck/keymaps/lock/README.md rename keyboard/planck/keymaps/{lock.c => lock/keymap.c} (100%) delete mode 100644 keyboard/planck/keymaps/test/README.md delete mode 100644 keyboard/planck/keymaps/test/default.c diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ff68ea0fb3..16d462b699 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -53,12 +53,16 @@ TARGET_DIR = . SRC = planck.c \ backlight.c +ifdef keymap + KEYMAP = $(keymap) +endif + ifdef KEYMAP ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") KEYMAP_FILE = keymaps/$(KEYMAP).c else -ifneq ("$(wildcard keymaps/$(KEYMAP)/default.c)","") - KEYMAP_FILE = keymaps/$(KEYMAP)/default.c +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c else $(error Keymap file does not exist) endif @@ -67,7 +71,7 @@ else ifneq ("$(wildcard keymaps/default.c)","") KEYMAP_FILE = keymaps/default.c else - KEYMAP_FILE = keymaps/default/default.c + KEYMAP_FILE = keymaps/default/keymap.c endif endif SRC := $(KEYMAP_FILE) $(SRC) diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md new file mode 100644 index 0000000000..d2f43bbdb8 --- /dev/null +++ b/keyboard/planck/keymaps/default/README.md @@ -0,0 +1,34 @@ +# The Default Planck Layout + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + } + }; \ No newline at end of file diff --git a/keyboard/planck/keymaps/default.c b/keyboard/planck/keymaps/default/keymap.c similarity index 100% rename from keyboard/planck/keymaps/default.c rename to keyboard/planck/keymaps/default/keymap.c diff --git a/keyboard/planck/keymaps/jack.c b/keyboard/planck/keymaps/jack.c deleted file mode 100644 index 0b93bba33f..0000000000 --- a/keyboard/planck/keymaps/jack.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Jack soft-coded colemak */ - {KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_BSPC}, - {KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT}, - {KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_ENT}, - {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Jack hard-coded colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* Jack RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Jack LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/lock/README.md b/keyboard/planck/keymaps/lock/README.md new file mode 100644 index 0000000000..d21cb990b0 --- /dev/null +++ b/keyboard/planck/keymaps/lock/README.md @@ -0,0 +1,3 @@ +# Lock layout + +This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly! \ No newline at end of file diff --git a/keyboard/planck/keymaps/lock.c b/keyboard/planck/keymaps/lock/keymap.c similarity index 100% rename from keyboard/planck/keymaps/lock.c rename to keyboard/planck/keymaps/lock/keymap.c diff --git a/keyboard/planck/keymaps/test/README.md b/keyboard/planck/keymaps/test/README.md deleted file mode 100644 index c555d2ddc9..0000000000 --- a/keyboard/planck/keymaps/test/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Testing out this! - -This folder will probably get deleted before merging. \ No newline at end of file diff --git a/keyboard/planck/keymaps/test/default.c b/keyboard/planck/keymaps/test/default.c deleted file mode 100644 index 71bd6c91e5..0000000000 --- a/keyboard/planck/keymaps/test/default.c +++ /dev/null @@ -1,85 +0,0 @@ -// USING_MIDI -// USING_BACKLIGHT -#include "keymap_common.h" -#include "backlight.h" -#include "action_layer.h" -#include "keymap_midi.h" -#include - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_TAB, N_C5, N_D5, N_E5, N_F5, N_G5, N_A5, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[5] = { - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - {M(0), KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -uint16_t hextokeycode(int hex) { - if (hex == 0x0) { - return KC_0; - } else if (hex < 0xA) { - return KC_1 + (hex - 0x1); - } else { - return KC_A + (hex - 0xA); - } -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - backlight_set(BACKLIGHT_LEVELS); - default_layer_and(0); - default_layer_or((1<<5)); - } else { - backlight_set(0); - default_layer_and(0); - default_layer_or(0); - } - break; - } - return MACRO_NONE; -}; diff --git a/quantum/quantum.mk b/quantum/quantum.mk index 3a968a1459..a2b7d8db56 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -4,20 +4,20 @@ QUANTUM_DIR = quantum SRC += $(QUANTUM_DIR)/keymap_common.c \ $(QUANTUM_DIR)/led.c -ifdef KEYMAP_FILE -ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)')) -MIDI_ENABLE=yes -$(info * Overriding MIDI_ENABLE setting - $(KEYMAP_FILE) requires it) -endif -ifneq (,$(shell grep USING_UNICODE '$(KEYMAP_FILE)')) -UNICODE_ENABLE=yes -$(info * Overriding UNICODE_ENABLE setting - $(KEYMAP_FILE) requires it) -endif -ifneq (,$(shell grep USING_BACKLIGHT '$(KEYMAP_FILE)')) -BACKLIGHT_ENABLE=yes -$(info * Overriding BACKLIGHT_ENABLE setting - $(KEYMAP_FILE) requires it) -endif -endif +# ifdef KEYMAP_FILE +# ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)')) +# MIDI_ENABLE=yes +# $(info * Overriding MIDI_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# ifneq (,$(shell grep USING_UNICODE '$(KEYMAP_FILE)')) +# UNICODE_ENABLE=yes +# $(info * Overriding UNICODE_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# ifneq (,$(shell grep USING_BACKLIGHT '$(KEYMAP_FILE)')) +# BACKLIGHT_ENABLE=yes +# $(info * Overriding BACKLIGHT_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# endif ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c From fa53ad5136cce6416a15d7b325ff2adc24d7a788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Thu, 21 Jan 2016 09:13:44 +0100 Subject: [PATCH 25/52] swapping modeswitch and Acut-Chars on thumb block --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index cc9076eec8..0b3276d5c3 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(3), DE_A, DE_S, DE_D, DE_F, DE_G, KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - TG(2), M(M_MEH_SH_ACUT), //MEH_T(LSFT(DE_ACUT)), //need to create macro for that + M(M_MEH_SH_ACUT), TG(2), KC_HOME, KC_BSPC,KC_DEL, KC_END, // right hand @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { DE_H, DE_J, DE_K, DE_L, DE_OE,LT(MDIA,DE_AE), KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH), - ALL_T(DE_ACUT), TG(4), + TG(4), ALL_T(DE_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC ), From ce9086c5077861ead7229ed326ed1c93d842e90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Thu, 21 Jan 2016 09:37:58 +0100 Subject: [PATCH 26/52] replaced qwertz with adnw-koy as default --- .../keymaps/keymap_osx_de_adnw_koy.c | 124 +++++++++--------- 1 file changed, 63 insertions(+), 61 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c index 7e9defafa7..f3484a17aa 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c @@ -38,26 +38,48 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, - TG(3), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, - LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - TG(2), MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC,KC_DEL,KC_END, - // right hand - LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, - KC_H, KC_J, KC_K, KC_L, KC_SCLN,LT(MDIA,DE_AE), - KC_RALT,KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,LGUI(KC_LSFT),KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), TG(4), - KC_PGUP, - KC_PGDN,KC_ENT, KC_SPC - ), + +/* Keymap 0: ADNW-Koy layer + * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | K | . | O | , | Y | CMD | | CMD | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ADNW | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Date: Thu, 21 Jan 2016 09:50:06 +0100 Subject: [PATCH 27/52] added koy layer to default, but disabled it --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 88 ++++++++++++------- .../keymaps/keymap_osx_de_adnw_koy.c | 42 ++++----- 2 files changed, 76 insertions(+), 54 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 0b3276d5c3..137406bf7e 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTRL_CMDV), KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, - TG(3), DE_A, DE_S, DE_D, DE_F, DE_G, + KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT, M(M_MEH_SH_ACUT), TG(2), @@ -102,15 +102,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | + * | | | | | | | | | Mute | | | | | | Play | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | + * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | + * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * | | | | | | | | | Left | Down | Right | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -123,39 +123,61 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // MEDIA AND MOUSE KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -// Cursor layer -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +// ADNW-KOY layer +/* Keymap 3: ADNW-Koy layer + * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | K | . | O | , | Y | | | | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Date: Fri, 22 Jan 2016 08:18:13 +0100 Subject: [PATCH 28/52] changed some places, disabled layer3, in file it's ADNW now --- keyboard/ergodox_ez/keymaps/keymap_osx_de.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c index 137406bf7e..69acd9b951 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | L3 | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | + * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -48,11 +48,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_BSPC,KC_DEL, KC_END, // right hand - M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, - KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, - DE_H, DE_J, DE_K, DE_L, DE_OE,LT(MDIA,DE_AE), - KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, - KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH), + M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, + KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, + DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE), + KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, + KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH), TG(4), ALL_T(DE_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC From 9d03f48643f28e7da92aa476b6878af7bb343d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Fri, 22 Jan 2016 08:22:23 +0100 Subject: [PATCH 29/52] reinstalled lost file, updated with some tweaks --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 299 ++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/osx_de/keymap.c diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c new file mode 100644 index 0000000000..69acd9b951 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -0,0 +1,299 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german_osx.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define CRSR 3 // media keys +#define NUMB 4 // number keys + +#define M_CTRL_CMDV 1 +#define M_CTRL_CMDC 2 +#define M_MEH_SH_ACUT 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | . | ! | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, + KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_DEL,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, + KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | Mute | | | | | | Play | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | Left | Down | Right | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +// ADNW-KOY layer +/* Keymap 3: ADNW-Koy layer + * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | K | . | O | , | Y | | | | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL), END); + } else { + if (timer_elapsed(start) > 150) { + return MACRO(U(LCTRL), END); + } else { + return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); + } + } + break; + case 2: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),END); + } else { + return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); + } + } + break; + case 3: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix + } + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + default: + // none + break; + } + +}; From f95e3e701cac9e40531b2af5b2efaf59a84fb312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Fri, 22 Jan 2016 08:22:59 +0100 Subject: [PATCH 30/52] new hex file --- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index eb82384d54..2c83055b0d 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -16,17 +16,17 @@ :1000F000E20001E001E101E20002E001E3010602A9 :100100000602E30002E00001E00002E001E3011961 :10011000021902E30002E00001E0000000F0A1F09B -:10012000A329002B000354E100358100001E0014B8 +:10012000A329002B00E200E100358100001E00142D :100130000004001D7135004D001F001A0016001B41 :1001400000E1044C00200008000700060050002ACF :100150000021001500090019004F004A0022001775 -:10016000000A000500000002540130E3000000E234 -:1001700000000003300230E7000000E60000002E1F -:100180007F23001C000B0011000000045424001801 +:10016000000A000500000003300130E3000000E257 +:1001700000000002540230E7000000E60000000426 +:100180005423001C000B00110000002E7F240018D7 :10019000000D00100052004B0025000C000E003630 :1001A0000051002C00260012000F003700E1082843 :1001B00000270013003300387130004E002D002F4F -:1001C000003482E5003181000001000100010001DE +:1001C000003474E5003181000001000100010001EC :1001D00000010000003A003500310001000100017B :1001E000003B0035022102350001004C003C001E9E :1001F0000224062202010001003D002D02240224F7 @@ -38,26 +38,26 @@ :100250000425041F021E0201004300310026043160 :1002600002010001004400450001002D02010000D0 :100270000001000100010001000100000001000177 -:10028000000100FB000100010001000100F200F983 -:1002900000010001000100F000F100FA00F400018B -:1002A0000001000100F300FC00F500010001000165 -:1002B000000100F600000001000100010000000143 -:1002C0000000000100010001000000010000000129 -:1002D0000001000100010001000000010001000117 -:1002E000000100A800A9000100010001000100AC0C -:1002F00000AA00B600010001000100AB005000019F +:100280000001000100010001000100F400F200FB88 +:1002900000010001000100F000F100FA000100017E +:1002A000000100F500F300FC00010001000100F96D +:1002B00000FA00F60000000100010001000000014A +:1002C0000000000100A80001000000010000000182 +:1002D0000001000100A900AA0000000100010001C6 +:1002E000000100010001000100010001000100AC5B +:1002F000000100B600010001000100AB0050000148 :1003000000010001000100520051000100AE000197 :1003100000010001004F0000000100010001000188 -:1003200000010000000100010001000100010001C6 -:1003300000010001000100010001000100010001B5 -:1003400000010001000100010001000100010001A5 -:100350000001000100010001000100010000000196 +:10032000000100000001000E000B001B7101000124 +:100330000001003700040014000100010001001258 +:10034000000800340001000100010036000C002FFD +:10035000000100010001001D001800330000000131 :100360000001000100000001000000010001000187 -:100370000000000100000001000100010001000177 -:100380000000000100010001000100010001000166 -:100390000001000100010001000100010001000155 -:1003A00000010001005000010001000100010052A5 -:1003B000005100010001000100010001004F000098 +:100370000000000100000001000100190007000555 +:10038000000000010001000A001700130001000135 +:10039000000100060015001A000100010001000F15 +:1003A00000110010000100010001002D0016000DD9 +:1003B000710100010038001C0009820100010000E9 :1003C0000001000100010001000100000001000126 :1003D00000010001000100010001000100500001C6 :1003E0000001000100010052005100010001000164 From caf82bcacef6dc5eacfd8c7fccff304bdb38595b Mon Sep 17 00:00:00 2001 From: Evan Pitstick Date: Fri, 22 Jan 2016 07:33:56 -0500 Subject: [PATCH 31/52] Single tap enable ACTION_LAYER_TAP_TOGGLE layer --- keyboard/ergodox_ez/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboard/ergodox_ez/config.h b/keyboard/ergodox_ez/config.h index 825997ba05..6a391ffb54 100644 --- a/keyboard/ergodox_ez/config.h +++ b/keyboard/ergodox_ez/config.h @@ -38,6 +38,8 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 3 #define MOUSEKEY_TIME_TO_MAX 10 +#define TAPPING_TOGGLE 1 + #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define ROWS (int []){ D0, D5, B5, B6 } From 51fec6647a288862244a50b616255d84564db02d Mon Sep 17 00:00:00 2001 From: Olivier Lechevalier Date: Sat, 23 Jan 2016 14:07:13 +0900 Subject: [PATCH 32/52] Add colemak keymap to Ergodox EZ. --- .../ergodox_ez/keymaps/colemak/colemak.hex | 1471 +++++++++++++++++ keyboard/ergodox_ez/keymaps/colemak/keymap.c | 184 +++ keyboard/ergodox_ez/keymaps/colemak/readme.md | 4 + 3 files changed, 1659 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/colemak/colemak.hex create mode 100644 keyboard/ergodox_ez/keymaps/colemak/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/colemak/readme.md diff --git a/keyboard/ergodox_ez/keymaps/colemak/colemak.hex b/keyboard/ergodox_ez/keymaps/colemak/colemak.hex new file mode 100644 index 0000000000..cd3bf781af --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/colemak.hex @@ -0,0 +1,1471 @@ +:100000000C9400070C9444070C9444070C94440788 +:100010000C9444070C9444070C9444070C94440734 +:100020000C9444070C9444070C9458120C942A1313 +:100030000C9444070C9444070C9444070C94440714 +:100040000C9444070C94002C0C9444070C94440723 +:100050000C9444070C94F8210C9444070C94440726 +:100060000C9444070C9444070C9444070C944407E4 +:100070000C9444070C9444070C9444070C944407D4 +:100080000C9444070C9444070C9444070C944407C4 +:100090000C9444070C9444070C9444070C944407B4 +:1000A0000C9444070C9444070C9444079713B91319 +:1000B000A714B913A714FE132114A71476148914D6 +:1000C000D017D017FF17FF1742188018991A991ADE +:1000D0009918991A9A199A196D1A991A991A841ACB +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000015001B00E1042A0020000900160006006B +:1001100050002C0021001300170019004F004A0066 +:1001200022000A0007000500000065745000015419 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023000D000B000E0000002971EA +:1001500024000F001100100052004B002500180071 +:10016000080036005100280026001C000C00370053 +:100170002F002B00270033001282387130004E0010 +:100180002D0031003400E500C10000000100010035 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE000100010000000A0025300D +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20342E392E3273 +:100C2000204156522D4C4942433A20312E382E3124 +:100C3000204156525F415243483A20617672350A4C +:100C4000004F5054494F4E533A204C554641204294 +:100C50004F4F544D41474943204D4F5553454B4508 +:100C6000592045585452414B455920434F4E534FFC +:100C70004C4520434F4D4D414E44204E4B524F204A +:100C80003531320A004255494C443A2061313864CA +:100C9000636330202831343A30353A3534204A61A4 +:100CA0006E2032332032303136290A005649443A18 +:100CB00020307846454544284572676F446F782058 +:100CC000455A29205049443A20307831333037286A +:100CD0004572676F446F7820455A29205645523A2D +:100CE000203078303030310A00444553433A207484 +:100CF0002E6D2E6B2E206B6579626F61726420669B +:100D000069726D7761726520666F72204572676FD8 +:100D1000646F780A000A092D2056657273696F6E38 +:100D2000202D0A000A6D6F7573653A206F66660A9A +:100D3000000A6D6F7573653A206F6E0A000A6B6565 +:100D400079626F6172643A206F66660A000A6B65A9 +:100D500079626F6172643A206F6E0A000A6D617485 +:100D60007269783A206F66660A000A6D617472696A +:100D7000783A206F6E0A000A64656275673A206FE0 +:100D80006E0A000A64656275673A206F66660A003B +:100D90000A0A626F6F746C6F616465722E2E2E206A +:100DA00000433E20006565636F6E6669673A0A001E +:100DB000536C656570204C454420746573740A005B +:100DC0000000000000000000000000010204060A0C +:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD +:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD +:100DF0000F0A0604020100000000000000000000CD +:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 +:100E100024C08091F9019091FA01A091FB01B09159 +:100E2000FC018730904BA740B04BB9F41092F90108 +:100E30001092FA011092FB011092FC0114BE84B7CB +:100E4000877F84BF88E10FB6F8948093600010928A +:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 +:100E6000ECE9FBE502C005900D92AA33B107D9F772 +:100E700011E0AAE3B1E001C01D92A93FB107E1F77B +:100E80000E94900F0C94CC2D0C940000FF93EF93D4 +:100E9000E0913A01F0913B01309709F00995EF910B +:100EA000FF910895FC018591803011F0EFDFFBCFB9 +:100EB0000895FF27E0E230E247FF0CC0419597FF1D +:100EC00009C0EDE26095709580959095611D711D4A +:100ED000811D911D27FF02C0219530E350E2AA2712 +:100EE000660F771F881F991FAA1FA41710F0A41B55 +:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 +:100F0000F395611571058105910541F7ED3211F4F5 +:100F1000EF93F395F21718F43F93F395FBCF8F916E +:100F2000B5DFFA95E1F70895E991F991859180305F +:100F300021F0853219F0AADFF9CF089520E0E89476 +:100F400055915532C1F3503311F4689455915A3389 +:100F500048F4505390F3220F022E220F220F200D3F +:100F6000250FF4CF0EF4219589919991533619F3F9 +:100F7000533729F1533559F1BC0188279927E89453 +:100F80005C3621F48991999168945591543639F4DD +:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 +:100FA0004AE039F0583540E121F0523642E009F08C +:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC +:100FC000EF93FC0181918030B9F360DFFBCFFF9399 +:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 +:100FE000A3DFCF91DF91089561110BC0FC018281D5 +:100FF000882321F085EE0E946D1603C085EE0E94C5 +:10100000351780E090E0089508956091BC017091DB +:10101000BD018091BE019091BF010E94FB205698B6 +:101020005E9825982D9826982E9827982F9881308D +:1010300019F0823021F00895259A2D9A0895269A64 +:101040002E9A089585E098E0892B11F00E940508FA +:1010500080E090E0089556985E9825982D982698FF +:101060002E9827982F988FEF90E090938900809387 +:10107000880090938B0080938A0090938D008093DA +:101080008C00259A2D9A2FEF80E792E02150804026 +:101090009040E1F700C00000269A2E9A2FEF80E7DB +:1010A00092E0215080409040E1F700C00000279A74 +:1010B0002F9A2FEF80E792E0215080409040E1F797 +:1010C00000C0000025982D982FEF80E792E0215076 +:1010D00080409040E1F700C0000026982E982FEF46 +:1010E00080E792E0215080409040E1F700C000008E +:1010F00027982F9856985E9825982D9826982E9880 +:1011000027982F98089589EA8093800089E080933A +:10111000810024982C983F988AB18F748AB96E9870 +:10112000479A8BB1806B8BB9769A0E942B0884E02A +:1011300098E0892B11F00E94040880E090E0089567 +:1011400080E28093000180913C0181110EC00E94D9 +:10115000EF0881E080933C012FEF83ED90E3215075 +:1011600080409040E1F700C0000080E40E94F50854 +:101170008093000181112EC00E941F0980930001FD +:10118000811128C00E941F0980930001811122C093 +:101190008FE30E941F098093000181111BC00E94F0 +:1011A000170980E40E94F50880930001811112C0A4 +:1011B0008CE00E941F098093000181110BC00E94E6 +:1011C0001F0980930001811105C08FE30E941F0950 +:1011D000809300010E9417098091000108951092E8 +:1011E000B9008AE08093B800089594EA9093BC0017 +:1011F0009091BC0097FFFCCF9091B900987F9830F8 +:1012000021F0903111F081E008958093BB0084E8D3 +:101210008093BC008091BC0087FFFCCF8091B90017 +:10122000887F883111F0803471F780E0089584E977 +:101230008093BC008091BC0084FDFCCF0895809316 +:10124000BB0084E88093BC008091BC0087FFFCCF8A +:101250009091B900987F81E0983209F480E0089578 +:1012600084E88093BC008091BC0087FFFCCF809114 +:10127000BB00089580910001811115C080E40E9497 +:10128000F5088093000181110CC082E10E941F09C2 +:1012900080930001811105C08FEF0E941F09809388 +:1012A00000010E94170984B1807F84B985B1807FD5 +:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 +:1012C000469808950E94A008809300010E943A0960 +:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 +:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 +:1012F00083E898E0892B11F00C94830808959F925D +:10130000AF92BF92CF92DF92EF92FF920F931F9313 +:10131000CF93DF93809100018823E1F080913D011C +:101320008F5F80933D01811115C082E493E00E949C +:1013300052070E94A00880930001882329F088E2C8 +:1013400093E00E94520706C084E193E00E94520796 +:101350000E942B080EE311E0C0E0D0E0BB24B39460 +:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 +:10137000F22EC730D10500F580910001811164C0C3 +:1013800080E40E94F50880930001811112C082E17F +:101390000E941F098093000181110BC0C6010C2E11 +:1013A00001C0880F0A94EAF780950E941F09809374 +:1013B00000010E94170948C0CA30A1F028F4C830C3 +:1013C00059F0C93061F005C0CC3089F070F0CD30F3 +:1013D00089F0209A289810C0219A29980DC0229A45 +:1013E0002A980AC0239A2B9807C0529A01C0539A90 +:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 +:10140000799902C082E001C080E091709B25982B01 +:101410007C9902C084E001C080E0892B7D9902C0E4 +:1014200038E001C030E0832B7E9902C020E101C08A +:1014300020E0822B9FB19095991F9927991F929533 +:10144000990F907E892B10C080910001811174C08A +:1014500080E40E94F50880930001882309F459C0B4 +:10146000912C0E941709892DF8019081981739F164 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9452078091D70180FF58 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EB070F900F900F900F908091D70180FF66 +:1014B00004C083E093E00E945207A09201010E94C1 +:1014C0003A0921960F5F1F4FCE30D10509F051CF59 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 +:101500008E13FCCF82E298E0892BC1F00E94220862 +:1015100015C083E10E941F09809300018111A0CFB3 +:1015200081E40E94F50880930001811199CF0E9407 +:101530003009982E909495CF80E096CF81E0DF918E +:10154000CF911F910F91FF90EF90DF90CF90BF90C0 +:10155000AF909F900895E82FF0E0E45BFE4F80810C +:101560000895CF92DF92EF92FF920F931F93CF9344 +:10157000DF938CEE92E00E9452078CE4E82E81E02B +:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 +:1015900012E0DF93CF93DF92CF920E94EB0784EEAD +:1015A00092E00E945207F70181917F0190E00E9432 +:1015B00061219F938F931F930F930E94EB078CEDF4 +:1015C00092E00E94520721968DB79EB708960FB6FB +:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE +:1015E000CF911F910F91FF90EF90DF90CF900895D2 +:1015F0008B3B910578F4883A910540F5853A910541 +:10160000D0F48430910508F0B1C08130910509F41F +:10161000ADC06BC0803E910508F467C0883E91055F +:1016200008F4A4C09C01205F31092031310508F085 +:101630005CC090650895853A910509F459C0863AD1 +:10164000910509F058C082E890E40895883A910520 +:1016500009F454C0893A910509F453C08A3A9105B6 +:1016600009F452C08B3A910509F451C08C3A9105A6 +:1016700009F450C08D3A910509F44FC0803B9105A3 +:1016800009F44EC08E3A910509F44DC08F3A910588 +:1016900009F44CC0813B910509F44BC0823B910594 +:1016A00009F44AC0833B910509F449C0843B910584 +:1016B00009F448C0853B910509F447C0863B910574 +:1016C00009F446C0873B910509F445C0883B910564 +:1016D00009F444C0893B910509F443C08A3B910554 +:1016E00009F442C080E094E4089580E090E0089519 +:1016F00081E890E4089583E890E4089582EE94E40C +:10170000089589EE94E408958AEE94E4089585EBB3 +:1017100094E4089586EB94E4089587EB94E40895A7 +:101720008CEC94E408958DEC94E4089583E895E4BA +:1017300008958AE895E4089582E995E4089584E996 +:1017400095E4089581E296E4089583E296E408958D +:1017500084E296E4089585E296E4089586E296E4AC +:10176000089587E296E408958AE296E4089508953C +:1017700096E0799FF001112494E5899FE00DF11D19 +:101780001124E60FF11DEE0FFF1FEC51FF4F859165 +:1017900094910895880F991FFC01E05AF0408591BB +:1017A00094910895880F991FFC01E052FF4F859195 +:1017B0009491089526E0729FF001112444E5849FDE +:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E +:1017D000FF4F859194919C013A9521154FE1340773 +:1017E00008F41EC13F512115304120F49F700E9422 +:1017F000D20B08959C0130532115304118F49927DC +:10180000906C0895811520E5920769F40E94BB1A37 +:101810004FEF84E39CE0415080409040E1F700C0EE +:1018200000000C941D22813020E5920751F48CE5D4 +:1018300093E00E9452078091D70181608093D70185 +:1018400008959C0130552115304108F051C0292FD1 +:1018500033272F70332721303105D9F4AC01437081 +:10186000552702C0220F331F4A95E2F73C68AC01AE +:1018700064E0440F551F6A95E1F744275370242B09 +:10188000352B73E0880F991F7A95E1F780769927B9 +:101890001DC02230310529F4982F8827816F906A66 +:1018A000089523303105A9F4AC014370552721E098 +:1018B00030E002C0220F331F4A95E2F73C6843E054 +:1018C000880F991F4A95E1F7807E9770822B932BA2 +:1018D000089524303105E1F4AC014370552721E02F +:1018E00030E002C0220F331F4A95E2F73A68E7CF93 +:1018F0009C0130572115304118F49F709062089573 +:101900009C0130582115304118F49F70906A089559 +:10191000803E9105E0F4803C910558F581339105B6 +:1019200009F46FC048F48932910509F463C08A3222 +:10193000910509F46DC072C089339105E9F08238D0 +:101940009105D1F08533910509F44DC067C0833E00 +:10195000910581F138F4803E9105B9F0823E910500 +:10196000D9F05CC0863E910561F1873E9105A1F1F9 +:1019700055C00E94CA0B08952091EA0120FD02C0C3 +:1019800021FF4CC080EE90E049C08091EA0180FFC9 +:10199000F9CF89E390E042C08091EA0182FF0EC056 +:1019A0008091EA0184FF03C080E090E037C083EEBD +:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 +:1019C0002DC08091EA0183FF0BC08091EA0184FD64 +:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 +:1019E00086EE90E01BC08091EA0185FF07C089E286 +:1019F00090E014C08091EA0185FFF9CF85E390E083 +:101A00000DC08091EA0186FF07C08AE290E006C01F +:101A10008091EA0186FFF9CF81E390E00E94F80A05 +:101A20000895089580916D0108959FB7F8941092DC +:101A30005C019FBF9091F001943009F057C09091E4 +:101A4000E9009F703091EC00232F217030FD20E8D9 +:101A5000922B24E02093E9002091EB0020FF43C06B +:101A60002091EE0027FF3FC020915A01222321F050 +:101A70002091E80025FF37C010925A0126E03091EE +:101A8000E80035FD15C03091F001343061F530913A +:101A9000EB0035FD28C0215021F481E080935A01EC +:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 +:101AB0008093F1008091E80085FD0AC08091E800E4 +:101AC00080FFFCCF8091E8008E778093E80006C00D +:101AD0008FB7F89421E020935C018FBF9F709093A3 +:101AE000E90080E008959F709093E9008FEF0895DA +:101AF000CF93DF9300D01F92CDB7DEB79C018091CA +:101B0000F001843019F593E099833B832A83909305 +:101B1000E9008FEF9091E800815095FD06C095EDAA +:101B20009A95F1F700008111F5CF8091E80085FFCB +:101B30000DC040E050E063E070E0CE0101960E94ED +:101B400048108091E8008E778093E8000F900F9006 +:101B50000F90DF91CF910895CF93DF9300D01F9224 +:101B6000CDB7DEB72091F001243021F522E02983A2 +:101B70009B838A8383E08093E9008FEF9091E80054 +:101B8000815095FD06C095ED9A95F1F70000811101 +:101B9000F5CF8091E80085FF0DC040E050E063E0A4 +:101BA00070E0CE0101960E9448108091E8008E7787 +:101BB0008093E8000F900F900F90DF91CF910895E0 +:101BC0002091F0012430F1F422E02093E9002FEF7E +:101BD0003091E800215035FD06C035ED3A95F1F71A +:101BE00000002111F5CF2091E80025FF0BC040E057 +:101BF00050E065E070E00E9448108091E8008E7728 +:101C00008093E8000895CF93DF932091F001243072 +:101C100009F048C0EC0180910C018823E1F080912B +:101C20000D018823C1F085E08093E9008FEF90914A +:101C3000E800815095FD06C095E19A95F1F7000006 +:101C40008111F5CF8091E80085FF2CC040E050E085 +:101C500060E170E017C081E08093E9008FEF909120 +:101C6000E800815095FD06C095ED9A95F1F70000CA +:101C70008111F5CF8091E80085FF14C040E050E06D +:101C800068E070E0CE010E9448108091E8008E77F5 +:101C90008093E80080E1FE01ADE5B1E001900D9296 +:101CA0008A95E1F7DF91CF91089583E993E00E944F +:101CB00052078091EF01811109C00E94DD110E943D +:101CC0003A128091E20084608093E20008958FE8E8 +:101CD00093E00E9452071092EF0108958BE893E081 +:101CE0000C94520787E893E00E9452070C94ED2B66 +:101CF00083E893E00E9452070E94B7210E94F32BD1 +:101D00000E94DF140C94110D20915B012F5F822F34 +:101D100062E30E94612D992319F020935B010895DD +:101D200010925B0180915C01882371F18091F00138 +:101D3000843041F58091E9008F702091EC00922F62 +:101D4000917020FD90E8892B94E09093E9009091A8 +:101D5000EB0090FF14C09091EE0097FF10C090919F +:101D6000E80095FF03C01092F100F9CF9091E800D0 +:101D700090FF05C09091E8009E779093E8008F70E7 +:101D80008093E90010925C01089542E061EC81E0EB +:101D90000E94571142E061EC82E00E94571142E03C +:101DA00061EC83E00E94571142E261EC84E00E9402 +:101DB000571142E161EC85E00C9457118091F201DA +:101DC000833009F455C030F4813071F0823009F469 +:101DD0008EC008958A3009F47AC08B3009F460C04F +:101DE000893009F09CC020C08091F101813A09F04E +:101DF00096C08091E800877F8093E8008091F5018C +:101E00009091F601892B21F460E18DE591E003C00A +:101E100060E080E090E070E00E9493108091E80024 +:101E20008B778093E80008958091F101813209F069 +:101E300076C08091F5019091F601009719F0049712 +:101E400009F06DC08091E800877F8093E800809161 +:101E5000E80082FD05C08091F0018111F8CF5FC0DC +:101E60008091F10080936D018091E8008B7753C0E1 +:101E70008091F101813A09F052C08091F501909171 +:101E8000F601892B09F04BC08091E800877F809391 +:101E9000E8008091E80080FFFCCF80910C0136C003 +:101EA0008091F1018132D9F58091F5019091F6018F +:101EB000892BA9F58091E800877F8093E8000E9434 +:101EC0008C118091F30180930C010C94BB1A8091CA +:101ED000F101813221F58091E800877F8093E8004D +:101EE0000E948C118091F40180936E01089580917D +:101EF000F101813AA1F48091E800877F8093E800A6 +:101F00008091E80080FFFCCF80916E018093F1000A +:101F10008091E8008E778093E8000C948C110895EE +:101F200084B7877F84BF88E10FB6F8948093600000 +:101F3000109260000FBE90E080E80FB6F894809396 +:101F40006100909361000FBE0E946C150E94DD112C +:101F50000E943A128091E20084608093E20085E161 +:101F60009DE00E94F62078940E94BF140E946E1596 +:101F700082E091E00E94DA140E94DB2B82E793E07A +:101F80000E9452078091F001853089F48EE693E03B +:101F90000E9452070E947B218091EE01882391F3D9 +:101FA0000E94A321882371F30E943210EBCF0E947C +:101FB0009C15E8CF292F332723303105C9F064F46D +:101FC0002130310581F02230310509F043C08DE820 +:101FD00090E02BEC33E042C021323105F1F02232A7 +:101FE000310541F137C082E190E028E534E036C0A8 +:101FF00099278130910541F08230910541F0892B7C +:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 +:10201000F3E0849190E09F0121C06530D8F4E62F71 +:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 +:1020300090E014C0653070F470E0FB01EE0FFF1FFC +:10204000E55EFE4F20813181FB01EA5EFE4F80811B +:1020500090E004C080E090E020E030E0FA013183BD +:102060002083089580E189BD82E189BD09B400FE25 +:10207000FDCF8091D8008F7D8093D8008091E000C3 +:1020800082608093E0008091E00081FDFCCF0895A4 +:10209000CF92DF92EF92FF920F931F93CF93DF9334 +:1020A000EC018B016A010E94AB11811133C0C11494 +:1020B000D10439F0F60180819181081B190BC80FFA +:1020C000D91FE12CF12C0115110519F18091E800BF +:1020D00085FD16C08091E8008E778093E800C114DA +:1020E000D10449F0F60180819181E80EF91EF18258 +:1020F000E08285E00FC00E94AB11882321F30AC063 +:1021000089918093F10001501109FFEFEF1AFF0A46 +:10211000DACF80E0DF91CF911F910F91FF90EF9088 +:10212000DF90CF9008952091F7013091F8012617A4 +:10213000370748F06115710539F42091E8002E77D2 +:102140002093E80001C0B90140E061157105A9F1D3 +:102150002091F001222309F443C0253009F442C044 +:102160002091E80023FD40C02091E80022FD32C00C +:102170002091E80020FFE9CF4091F3002091F20088 +:1021800030E0342BFC01CF016115710559F0283086 +:10219000310540F481918093F100615071092F5F06 +:1021A0003F4FF1CF41E02830310509F040E0209168 +:1021B000E8002E772093E800C8CF4111C9CF0AC0AC +:1021C0008091F001882361F0853061F08091E80012 +:1021D00083FD0AC08091E80082FFF2CF80E008957D +:1021E00082E0089583E0089581E008952091F70149 +:1021F0003091F8012617370748F06115710539F459 +:102200002091E8002E772093E80001C0B901FC017D +:1022100020E06115710591F18091F001882309F4A6 +:1022200040C0853009F43FC08091E80083FD3DC087 +:102230008091E80082FD2FC08091E80080FFE9CF07 +:102240002091F3008091F20090E0922B61157105CE +:1022500059F08830910540F424912093F100319693 +:10226000615071090196F2CF21E0089709F020E052 +:102270008091E8008E778093E800CBCF2111CCCFFE +:102280000AC08091F001882361F0853061F080916F +:10229000E80083FD0AC08091E80082FFF2CF80E071 +:1022A000089582E0089583E0089581E00895982FCD +:1022B000973058F59093E900981739F07091EC0039 +:1022C0002091ED005091F00003C0242F762F50E0B4 +:1022D00021FF19C03091EB003E7F3093EB0030912D +:1022E000ED003D7F3093ED003091EB003160309395 +:1022F000EB007093EC002093ED005093F0002091E0 +:10230000EE0027FF07C09F5FD3CF8F708093E90057 +:1023100081E0089580E008958091F10187FF11C068 +:102320008091E80082FD05C08091F0018111F8CF15 +:1023300011C08091E8008B770BC08091F001882359 +:1023400049F08091E80080FFF8CF8091E8008E7717 +:102350008093E80008952091E4003091E50095E62F +:102360004091EC00842F817040FF22C08091E800F2 +:1023700080FD1CC08091F001882391F0853091F0A0 +:102380008091EB0085FD10C04091E4005091E50084 +:102390004217530729F39A01915011F784E00895E9 +:1023A00082E0089583E0089581E0089580E0089533 +:1023B0004091E80042FFDECF08950E944B120E9438 +:1023C0005312E0EEF0E0808181608083E8EDF0E080 +:1023D00080818F77808319BCA7EDB0E08C918E7FD0 +:1023E0008C9380818F7E80831092EF0108950F93EC +:1023F0001F93CF93DF930E944B120E945312C8ED9C +:10240000D0E088818F7788838881806888838881FD +:102410008F7D888319BC1092F0011092EC0110920C +:10242000EE011092ED0100EE10E0F80180818B7F4B +:10243000808388818160888342E060E080E00E9440 +:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 +:10245000808181608083808188608083F8018081B1 +:102460008E7F8083888180618883DF91CF911F91E7 +:102470000F910895E8EDF0E080818F7E8083E7ED95 +:10248000F0E080818160808384E082BF81E080937E +:10249000EF010C94F711E8EDF0E080818E7F8083EE +:1024A0001092E20008951092DA001092E10008956F +:1024B0001F920F920FB60F9211242F933F934F93B9 +:1024C0005F936F937F938F939F93AF93BF93EF939C +:1024D000FF938091E10082FF0BC08091E20082FFB8 +:1024E00007C08091E1008B7F8093E1000E94840E01 +:1024F0008091DA0080FF1FC08091D80080FF1BC050 +:102500008091DA008E7F8093DA008091D90080FF7D +:102510000DC080E189BD82E189BD09B400FEFDCF17 +:1025200081E08093F0010E94550E05C019BC109205 +:10253000F0010E94670E8091E10080FF19C0809138 +:10254000E20080FF15C08091E2008E7F8093E20060 +:102550008091E20080618093E2008091D8008062E7 +:102560008093D80019BC85E08093F0010E94720E20 +:102570008091E10084FF30C08091E20084FF2CC094 +:1025800080E189BD82E189BD09B400FEFDCF809163 +:10259000D8008F7D8093D8008091E1008F7E80935A +:1025A000E1008091E2008F7E8093E2008091E20062 +:1025B00081608093E2008091EC01882311F084E037 +:1025C00007C08091E30087FD02C081E001C083E085 +:1025D0008093F0010E94780E8091E10083FF29C072 +:1025E0008091E20083FF25C08091E100877F809386 +:1025F000E10082E08093F0011092EC018091E10013 +:102600008E7F8093E1008091E2008E7F8093E200D4 +:102610008091E20080618093E20042E060E080E02F +:102620000E9457118091F00088608093F0000E9412 +:102630006E0EFF91EF91BF91AF919F918F917F911E +:102640006F915F914F913F912F910F900FBE0F901F +:102650001F9018951F920F920FB60F9211242F936F +:102660003F934F935F936F937F938F939F93AF931A +:10267000BF93CF93DF93EF93FF93C091E900CF70A7 +:102680008091EC00D82FD17080FDD0E81092E90045 +:102690008091F000877F8093F00078940E946E1301 +:1026A0001092E9008091F00088608093F000CD2BBB +:1026B000CF70C093E900FF91EF91DF91CF91BF916F +:1026C000AF919F918F917F916F915F914F913F91CA +:1026D0002F910F900FBE0F901F9018951F93CF93BF +:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 +:1026F000CDBFE1EFF1E088E08E0F9091F100919372 +:102700008E13FBCF0E94DE0E8091E80083FF1FC175 +:102710008091F1019091F201492F50E04A3051052A +:1027200008F015C1FA01EA5AFF4F0C94812D803848 +:1027300081F0823809F00BC18091F5018F70809390 +:10274000E9008091EB0085FB882780F91092E90071 +:1027500006C08091ED019091EE01911182609091FF +:10276000E800977F9093E8008093F1001092F100C9 +:10277000C8C0282F2D7F09F0EAC0882319F08230C5 +:1027800061F0E5C08091F301813009F0E0C0933041 +:1027900009F080E08093EE012BC08091F30181115C +:1027A00027C08091F5018F7009F4D1C08093E900B2 +:1027B0002091EB0020FF1CC0933021F48091EB00AE +:1027C000806214C09091EB0090619093EB0021E047 +:1027D00030E0A90102C0440F551F8A95E2F74093EB +:1027E000EA001092EA008091EB0088608093EB0091 +:1027F0001092E9008091E800877F86C08111A7C010 +:102800001091F3011F778091E3008078812B8093F2 +:10281000E3008091E800877F8093E8000E948C119C +:102820008091E80080FFFCCF8091E3008068809376 +:10283000E300111102C082E001C083E08093F00147 +:1028400086C08058823008F082C08091F301909158 +:10285000F4018C3D53E0950779F583E08A838AE2A1 +:1028600089834FB7F894DE01139620E03EE051E2F1 +:10287000E32FF0E050935700E49120FF03C0E2956E +:10288000EF703F5FEF708E2F90E0EA3010F0C79648 +:1028900001C0C0968D939D932F5F243149F74FBFA0 +:1028A0008091E800877F8093E8006AE270E0CE01C3 +:1028B00001960E94931014C0AE014F5F5F4F60916C +:1028C000F5010E94DA0FBC01009709F440C0909115 +:1028D000E800977F9093E80089819A810E94F61022 +:1028E0008091E8008B778093E80031C0803879F5DB +:1028F0008091E800877F8093E8008091EC018093CD +:10290000F1008091E8008E778093E8000E948C119E +:102910001EC081111CC09091F3019230C0F48091CF +:10292000E800877F8093E8009093EC010E948C116F +:102930008091EC01811106C08091E30087FD02C007 +:1029400081E001C084E08093F0010E94C50E809177 +:10295000E80083FF0AC08091E800877F8093E80049 +:102960008091EB0080628093EB00AA960FB6F894FA +:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 +:102980008091F0018823A1F0C091E900CF7090916F +:10299000EC00892F817090FD80E8C82B1092E9002F +:1029A0008091E80083FD0E946E13CF70C093E90010 +:1029B000CF91089590937401809373010895E091ED +:1029C0007301F0917401309721F00190F081E02DB6 +:1029D000099480E00895EF92FF920F931F93CF9395 +:1029E000DF93E0917301F09174013097B1F18C01A4 +:1029F0000280F381E02D09958091D70182FF2DC0DF +:102A000080FF04C08DE895E00E945207E80110E1C4 +:102A100087E8E82E85E0F82E8091D70180FF0BC073 +:102A200088811F928F93FF92EF920E94EB070F9085 +:102A30000F900F900F90115021961111EDCF8091B2 +:102A4000D70180FF0AC085E895E0DF91CF911F9103 +:102A50000F91FF90EF900C945207DF91CF911F914F +:102A60000F91FF90EF900895E0917301F091740140 +:102A7000309721F00480F581E02D0994089520918C +:102A80007101309172018217930771F09093720176 +:102A900080937101E0917301F0917401309721F0FE +:102AA0000680F781E02D0994089520916F013091FF +:102AB00070018217930771F09093700180936F01FA +:102AC000E0917301F0917401309721F00084F18559 +:102AD000E02D0994089508950C946B150E94B92176 +:102AE0000E9462090C947F22CF93C82F8091D70156 +:102AF00082FF1EC080FF04C086EA95E00E94520754 +:102B00008091D70180FF0CC01F92CF9381EA95E09E +:102B10009F938F930E94EB070F900F900F900F9051 +:102B20008091D70180FF04C08FE995E00E94520791 +:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 +:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD +:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 +:102B600081E0D82E00E010E0E02E802F0E94AB0A1A +:102B7000F60141916F01F42EF826B1F40F5F1F4F5B +:102B80000E30110589F78FEF89838A831B820E949B +:102B9000C2218160782F9D838C8349815A816B810A +:102BA0008D810E943F1640C09091D70191FF04C0D3 +:102BB0008B870E94B10A8B8520E030E04F2D50E0DA +:102BC000922FBA01022E02C0759567950A94E2F71A +:102BD00060FF24C02E83EF8221E030E0690102C053 +:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D +:102BF00009F420E028870E94C2218160782F9A87FB +:102C000089874E815F8168858A850E943F16F80119 +:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 +:102C20002630310569F6AACF0E94F0251091750172 +:102C30000E94DF141817A1F00E94DF148093750121 +:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC +:102C50001F910F91FF90EF90DF90CF900C9474151F +:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C +:102C70001F910F91FF90EF90DF90CF900895CF9329 +:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C +:102C9000CDBF4F83588769877A878B87DE0111966E +:102CA00086E0FD0111928A95E9F785E0FE013796ED +:102CB00001900D928A95E1F749815A816B817C815F +:102CC0008D819E810E94551D2B960FB6F894DEBF14 +:102CD0000FBECDBFDF91CF910895CF93882309F424 +:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 +:102CF00089E30E94F11F0E94D02089E30CC0833831 +:102D000079F40E94DF1480FDAEC083E50E94F11FBC +:102D10000E94D02083E50E944420CF910C94D020C3 +:102D2000843859F40E94DF1482FD9DC087E40E941C +:102D3000F11F0E94D02087E4EECF8CEF8C0F813AF8 +:102D400048F48C2F0E94832A81118DC08C2F0E9401 +:102D5000F11FE3CF80E28C0F883048F4C77081E028 +:102D600001C0880FCA95EAF70E949920D6CF8BE55B +:102D70008C0F833078F4C53A29F0C63A31F083E8F5 +:102D800090E005C081E890E002C082E890E0CF9139 +:102D90000C943F1588E58C0F833108F064C0C83A65 +:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 +:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 +:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 +:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 +:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC +:102DF00082EE90E035C089EE90E032C08AEE90E03D +:102E00002FC085EB90E02CC086EB90E029C087EBCB +:102E100090E026C08CEC90E023C08DEC90E020C0C8 +:102E200083E891E01DC08AE891E01AC082E991E050 +:102E300017C084E991E014C081E292E011C083E2FE +:102E400092E00EC084E292E00BC085E292E008C0FE +:102E500086E292E005C087E292E002C08AE292E058 +:102E6000CF910C945515CF910895882309F44BC048 +:102E7000823859F40E94DF1481FF45C089E30E9423 +:102E8000F11F0E94D02089E30CC0833871F40E94A6 +:102E9000DF1480FF38C083E50E94F11F0E94D0201C +:102EA00083E50E9444200C94D020843859F40E9479 +:102EB000DF1482FF28C087E40E94F11F0E94D02007 +:102EC00087E4EFCF9CEF980F913A58F390E2980F78 +:102ED000983050F4877091E001C0990F8A95EAF715 +:102EE000892F0E949F20DFCF9BE5980F933020F41D +:102EF00080E090E00C943F15885A833120F480E004 +:102F000090E00C9455150895882321F00E94992093 +:102F10000C94D0200895882321F00E949F200C94C7 +:102F2000D0200895BF92CF92DF92EF92FF920F933D +:102F30001F93CF93DF9300D000D000D0CDB7DEB782 +:102F400025E0FC01DE01119601900D922A95E1F732 +:102F5000FC01408131810281258122952F7063819E +:102F60007481672B09F4E5C23F3F19F44F3F09F420 +:102F7000E0C27C0149833A8389819A812E830E9431 +:102F8000B01F182FB92E0E94AF1F0E94761EEB2D86 +:102F9000E295EF70F0E0E05AFF4F2E810C94812D06 +:102FA0008B2D807F9B2D9F70F92E882319F0F29432 +:102FB00080EFF822002349F0FF2009F467C28F2D2B +:102FC0000E94A9200E94D02061C2812F0E94351743 +:102FD000FF2009F4AEC28F2D0E94AF2026960FB6B7 +:102FE000F894DEBF0FBECDBFDF91CF911F910F913F +:102FF000FF90EF90DF90CF90BF900C94D0203B2DAE +:10300000307F8B2D8F70303211F08295807F1123AD +:1030100019F0113021F12CC00023B9F0222309F45A +:10302000A0C1213009F09DC126960FB6F894DEBFED +:103030000FBECDBFDF91CF911F910F91FF90EF9009 +:10304000DF90CF90BF900C94B920222319F021304B +:1030500009F46FC28E830E94BC208E8196C100232A +:1030600021F0223008F065C27CC1211162C28DC1FD +:10307000002321F0222309F474C108C2222309F499 +:1030800084C119C22B2D26952695237030E0211579 +:10309000310521F021303105D1F04BC2002321F060 +:1030A000812F9B2D937002C080E090E026960FB692 +:1030B000F894DEBF0FBECDBFDF91CF911F910F916E +:1030C000FF90EF90DF90CF90BF900C943F150023BE +:1030D00021F0812F9B2D937002C080E090E0269616 +:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 +:1030F0000F91FF90EF90DF90CF90BF900C945515FB +:10310000812F002319F00E94762402C00E94DE2441 +:1031100026960FB6F894DEBF0FBECDBFDF91CF91DC +:103120001F910F91FF90EF90DF90CF90BF900C9484 +:1031300063258B2D837009F07BC00111FAC1812FAB +:10314000829586958770880F880F912F9F70C92E62 +:10315000D12CE12CF12C082E04C0CC0CDD1CEE1C73 +:10316000FF1C0A94D2F714FF12C04FE050E060E059 +:1031700070E004C0440F551F661F771F8A95D2F771 +:10318000CB01BA01609570958095909503C060E081 +:1031900070E0CB012B2D269526952370422F50E011 +:1031A00042305105D9F04330510569F16C297D2930 +:1031B0008E299F294130510551F126960FB6F8947A +:1031C000DEBF0FBECDBFDF91CF911F910F91FF905A +:1031D000EF90DF90CF90BF900C949D1E6C297D29BD +:1031E0008E299F2926960FB6F894DEBF0FBECDBF5D +:1031F000DF91CF911F910F91FF90EF90DF90CF90D3 +:10320000BF900C94B91E0E949D1EC701B601269660 +:103210000FB6F894DEBF0FBECDBFDF91CF911F91E7 +:103220000F91FF90EF90DF90CF90BF900C94811E94 +:10323000002319F08B2D817001C08695882309F435 +:1032400078C1812F829586958770880F880F912F7E +:103250009F70C92ED12CE12CF12C082E04C0CC0C6F +:10326000DD1CEE1CFF1C0A94D2F714FF12C04FE0C5 +:1032700050E060E070E004C0440F551F661F771FE8 +:103280008A95D2F7CB01BA0160957095809590959B +:1032900003C060E070E0CB012B2D269526952370AE +:1032A000422F50E042305105D9F04330510569F1C9 +:1032B0006C297D298E299F294130510551F126968F +:1032C0000FB6F894DEBF0FBECDBFDF91CF911F9137 +:1032D0000F91FF90EF90DF90CF90BF900C94771FED +:1032E0006C297D298E299F2926960FB6F894DEBF7A +:1032F0000FBECDBFDF91CF911F910F91FF90EF9047 +:10330000DF90CF90BF900C94931F0E94771FC7014E +:10331000B60126960FB6F894DEBF0FBECDBFDF9183 +:10332000CF911F910F91FF90EF90DF90CF90BF90C2 +:103330000C945B1F103FD1F118F4103E50F4A1C063 +:10334000123F09F463C008F44CC0133F09F473C082 +:1033500098C01F708B2D8F710023A1F00E94F41E66 +:10336000812F26960FB6F894DEBF0FBECDBFDF913A +:10337000CF911F910F91FF90EF90DF90CF90BF9072 +:103380000C9484170E94151F812F26960FB6F8946F +:10339000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1033A000EF90DF90CF90BF900C948B170023A9F083 +:1033B0002111BFC08B2D8F7126960FB6F894DEBFFA +:1033C0000FBECDBFDF91CF911F910F91FF90EF9076 +:1033D000DF90CF90BF900C943A1F223008F0A9C024 +:1033E000E9CF0023A9F08B2D8F7126960FB6F894A4 +:1033F000DEBF0FBECDBFDF91CF911F910F91FF9028 +:10340000EF90DF90CF90BF900C94F41E002359F3FF +:103410008B2D8F7126960FB6F894DEBF0FBECDBFF1 +:10342000DF91CF911F910F91FF90EF90DF90CF90A0 +:10343000BF900C94151F002399F08B2D8F71269649 +:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5 +:103450000F91FF90EF90DF90CF90BF900C94DF1E04 +:1034600026960FB6F894DEBF0FBECDBFDF91CF9189 +:103470001F910F91FF90EF90DF90CF90BF900C9431 +:10348000D51E0023A9F0222309F4ADCF812F269663 +:103490000FB6F894DEBF0FBECDBFDF91CF911F9165 +:1034A0000F91FF90EF90DF90CF90BF900C946D162E +:1034B000222309F4ADCF812F26960FB6F894DEBFF4 +:1034C0000FBECDBFDF91CF911F910F91FF90EF9075 +:1034D000DF90CF90BF900C9435174B2D4F70612F1C +:1034E000C7010E94F40726960FB6F894DEBF0FBE00 +:1034F000CDBFDF91CF911F910F91FF90EF90DF90A3 +:10350000CF90BF900C94F91D4B2D4F70612FC701C8 +:1035100026960FB6F894DEBF0FBECDBFDF91CF91D8 +:103520001F910F91FF90EF90DF90CF90BF900C9480 +:10353000B70B26960FB6F894DEBF0FBECDBFDF9156 +:10354000CF911F910F91FF90EF90DF90CF90BF90A0 +:1035500008950E94B6200E948B200E94D0200E94D5 +:1035600096260E94632580E090E00E943F1580E04F +:1035700090E00C9455150E94A6200C94A91A0E9464 +:10358000B01F292F22952F7030E02C3031054CF4DC +:103590002A3031056CF4225031092230310588F48B +:1035A00007C02C30310549F02F30310531F009C00A +:1035B000803E48F0803F29F406C093FB882780F9BD +:1035C000089580E0089581E00895CF93DF9300D0BF +:1035D00000D01F92CDB7DEB70F900F900F900F90D5 +:1035E0000F90DF91CF910895CF93DF9300D000D05B +:1035F00000D0CDB7DEB726960FB6F894DEBF0FBE6B +:10360000CDBFDF91CF9108951F93CF93DF93C091EA +:10361000840116E080918501C81799F0D0E01C9FC5 +:10362000F0011D9FF00D1124EA57FE4F408151819A +:1036300062817381848195810E94F41A2196C770FA +:10364000E9CFDF91CF911F9108954091B60150913C +:10365000B7016091B8017091B9018091BA01909160 +:10366000BB010C94F41A8091BB0182958F7009F014 +:1036700054C08091B801882309F44FC0809184011F +:10368000A09185016091B6017091B7014091B90197 +:103690005091BA01B6E08A1709F43FC090E0411595 +:1036A0005105C1F17F3F11F46F3FA1F1B89FF001C7 +:1036B000B99FF00D1124EA57FE4F218172132AC0E1 +:1036C0002081621327C02281211124C023813481EB +:1036D0002417350710F421503109241B350B283CE1 +:1036E0003105C0F42091BB012F7020612093BB01F4 +:1036F00026E0289FF001299FF00D1124E557FE4F89 +:1037000080818F708061808386EB91E00E949217A8 +:103710000C94041B01968770BECF0895CF92DF9260 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:1037300062970FB6F894DEBF0FBECDBF8C0185E057 +:10374000F801DE011D9601900D928A95E1F7D801EE +:103750004C9111965C91119712966C911297139659 +:10376000CD90DC9014973091B6017091B7018091A3 +:10377000B9019091BA01009709F46BC17F3F19F428 +:103780003F3F09F466C1E090B801EE2009F4C0C0E3 +:103790002091BB01C816D90628F0F601E81BF90BE9 +:1037A000CF0104C0809590958C0D9D1DFF24F3944E +:1037B000883C910578F0F12C207F09F0C6C07C2D63 +:1037C000D98AC88A89890E94E51A86EB91E00E940D +:1037D0009217B1C0822F807F09F046C0751314C0C4 +:1037E000341312C0611110C02F7020612093BB01EF +:1037F0000E94251B86EB91E00E9492178091BB01ED +:10380000D80115968C932EC0CD2819F15F3F11F485 +:103810004F3FF9F0F62E61111CC080918401209178 +:10382000850136E0821709F45AC090E0389FF00114 +:10383000399FF00D1124EA57FE4F7181571306C0CE +:103840007081471303C07281711103C001968770A4 +:10385000E9CFF62E662309F418C18091BB0181607F +:103860008093BB01F12C11C1751308C0341306C03D +:10387000611104C08091BB01D801C3C04D875E8730 +:103880008D859E856A8B0E94BF1A6A898823E1F123 +:103890006623D1F12091BB01822F82958F7090E039 +:1038A000029774F08091B6019091B70198878F8349 +:1038B0001986DB86CA862C87CE0107960E9492174E +:1038C00086E0F801A6EBB1E001900D928A95E1F750 +:1038D0000E94331B0E94251BFF24F394D6C04D8702 +:1038E0005E878D859E850E94B01F292F22952F709F +:1038F00030E0223031050CF0BCC09F7009F0B6C03A +:10390000805E883008F4C1C0C8010E949217E4CFDD +:10391000C816D90608F453C0F601E81BF90BCF010D +:10392000883C910508F450C0F12C7C2DD98AC88AB6 +:1039300089890E94E51AE6EBF1E086E0DF011D923D +:103940008A95E9F70E94251BA0C0751314C0341393 +:1039500012C0611110C08091BB01F8018583C801BC +:103960000E94921786E0E6EBF1E0DF011D928A9556 +:10397000E9F7FE2C8AC04D875E878D859E856A8B10 +:103980000E94BF1A6A89882309F4BECF662309F40E +:10399000BBCF2091BB01822F82958F7090E0029760 +:1039A0000CF48ECF8091B6019091B7019A838983F0 +:1039B0001B82DD82CC822E83CE0101967FCF809543 +:1039C00090958C0D9D1DACCFF62E662309F49CCFEF +:1039D00075132EC034132CC02091BB0120FD1FC0D5 +:1039E000822F82958F70D9F0D80115962C93159758 +:1039F0008F3049F08F5F982F9295907F822F8F7034 +:103A0000892B15968C93C8010E94921786E0F801C5 +:103A1000A6EBB1E001900D928A95E1F793CF86E095 +:103A2000F801A6EBB1E001900D928A95E1F72DC067 +:103A30004D875E878D859E850E94BF1A811140CF7C +:103A40008091BB0181608093BB01C8010E949217E5 +:103A50001CC0662309F458CF4D875E878D859E85EF +:103A60000E94BF1A882309F44FCF2ACF811148CF73 +:103A70000CC0243031050CF047CF9F7009F440CFC3 +:103A8000F8019581907F09F03BCF8F2D62960FB69C +:103A9000F894DEBF0FBECDBFDF91CF911F910F9184 +:103AA000FF90EF90DF90CF9008951F93CF93DF9317 +:103AB000CDB7DEB72C970FB6F894DEBF0FBECDBFE3 +:103AC0004F83588769877A878B879C87CE010796B3 +:103AD0000E948E1B882369F08F8198852A853B85FB +:103AE000232BF1F19F3F09F063C08F3F09F060C0C5 +:103AF00037C086E0FE013796DE01119601900D92E7 +:103B00008A95E1F76F817885EA85FB85309741F1E9 +:103B10007F3F11F46F3F21F12091850130E0C90111 +:103B20000196877099274091840150E0841795078A +:103B300009F447C069837A83FD83EC8396E0929F02 +:103B4000D001939FB00D1124AA57BE4FFE013196AC +:103B500001900D929A95E1F7809385010E94041BD4 +:103B600016E080918401909185018917C1F1189F19 +:103B7000C00111248A579E4F0E948E1B882379F121 +:103B8000E09184011E9FF0011124EA57FE4F40810D +:103B9000518162817381848195810E94F41A8091A0 +:103BA000840190E001968770992780938401D9CF92 +:103BB0004F81588569857A858B859C850E94F41A8A +:103BC000CFCF0E94BB1A1092850110928401E6EBC0 +:103BD000F1E086E0DF011D928A95E9F7C1CF2C96CE +:103BE0000FB6F894DEBF0FBECDBFDF91CF911F910E +:103BF0000895EF92FF920F931F93CF93DF938C0161 +:103C0000009709F46CC0F12CEE24E394E8012196AE +:103C1000F8018491843740F4843008F051C0813039 +:103C200081F0823019F15BC0853709F444C0A8F1F6 +:103C30009CE7980F903708F052C08F770E94351795 +:103C400041C00E5F1F4FFE01C49180E28C0F88308F +:103C500048F4C7708E2D01C0880FCA95EAF70E94FC +:103C6000A92014C08C2F0E946D162DC00E5F1F4F0F +:103C7000FE01C49180E28C0F883058F4C7708E2DFD +:103C800001C0880FCA95EAF70E94AF200E94D02099 +:103C90001AC08C2F0E94351716C00E5F1F4FFE01F1 +:103CA000C491CC2381F08FE99FE00197F1F700C028 +:103CB0000000C150F6CF0E5F1F4FFE01F49003C00D +:103CC0000E946D168E018F2D882309F49FCFEFE996 +:103CD000FFE03197F1F700C000008150F5CFDF9190 +:103CE000CF911F910F91FF90EF90089508956093E9 +:103CF000C0017093C1018093C2019093C3010C94E1 +:103D0000A91A0F931F930091C0011091C101209136 +:103D1000C2013091C301DC01CB01802B912BA22B7E +:103D2000B32B8093C0019093C101A093C201B093C3 +:103D3000C3011F910F910C94A91A0F931F93009127 +:103D4000C0011091C1012091C2013091C301DC0179 +:103D5000CB0180239123A223B3238093C0019093AE +:103D6000C101A093C201B093C3011F910F910C94A4 +:103D7000A91A0F931F930091C0011091C1012091C6 +:103D8000C2013091C301DC01CB0180279127A2271A +:103D9000B3278093C0019093C101A093C201B09357 +:103DA000C3011F910F910C94A91A1092BC0110929B +:103DB000BD011092BE011092BF010C94A91A41E0FE +:103DC00050E060E070E004C0440F551F661F771F8D +:103DD0008A95D2F74093BC015093BD016093BE0118 +:103DE0007093BF010C94A91A41E050E060E070E0CC +:103DF00004C0440F551F661F771F8A95D2F7809124 +:103E0000BC019091BD01A091BE01B091BF01482BB2 +:103E1000592B6A2B7B2B4093BC015093BD016093BF +:103E2000BE017093BF010C94A91A41E050E060E01C +:103E300070E004C0440F551F661F771F8A95D2F7A4 +:103E400040955095609570958091BC019091BD0111 +:103E5000A091BE01B091BF01482359236A237B235F +:103E60004093BC015093BD016093BE017093BF01AC +:103E70000C94A91A41E050E060E070E004C0440FE7 +:103E8000551F661F771F8A95D2F78091BC019091CC +:103E9000BD01A091BE01B091BF01482759276A27F3 +:103EA0007B274093BC015093BD016093BE0170938A +:103EB000BF010C94A91A0F931F930091BC0110919C +:103EC000BD012091BE013091BF01DC01CB01802BEF +:103ED000912BA22BB32B8093BC019093BD01A09397 +:103EE000BE01B093BF011F910F910C94A91A0F93BB +:103EF0001F930091BC011091BD012091BE01309132 +:103F0000BF01DC01CB0180239123A223B323809343 +:103F1000BC019093BD01A093BE01B093BF011F915E +:103F20000F910C94A91A0F931F930091BC0110914B +:103F3000BD012091BE013091BF01DC01CB01802782 +:103F40009127A227B3278093BC019093BD01A09332 +:103F5000BE01B093BF011F910F910C94A91A08954F +:103F6000CF92DF92EF92FF920F931F93CF93DF9345 +:103F70008C01C090C001D090C101E090C201F090CE +:103F8000C3014091BC015091BD016091BE0170918F +:103F9000BF01C42AD52AE62AF72ACFE1D0E0D7010B +:103FA000C6010C2E04C0B695A795979587950A94DF +:103FB000D2F780FF07C0B8018C2F0E94DA0B813046 +:103FC000910531F4219758F7B80180E00E94DA0B8F +:103FD000DF91CF911F910F91FF90EF90DF90CF90E5 +:103FE000089590910C01992321F090910D01911168 +:103FF00009C020910E0130910F01F90132969FEF17 +:1040000040E030C0982F9695969596959F30A0F4F5 +:10401000E0910E01F0910F01E90FF11D877021E091 +:1040200030E0A90102C0440F551F8A95E2F7CA018A +:104030009181892B818308959091D70190FF23C0AE +:104040001F928F9387ED95E09F938F930E94EB07CC +:104050000F900F900F900F9008959F3F39F04F5F92 +:104060004E3041F051915813F8CF0DC05111F7CF98 +:10407000942FF5CF9F3F39F0F901E90FF11D97FD1E +:10408000FA9582830895089590910C01992321F067 +:1040900090910D01911109C020910E0130910F01F5 +:1040A000F9013296205F3F4F30C0982F9695969534 +:1040B00096959F30A8F4E0910E01F0910F01E90F61 +:1040C000F11D877021E030E0A90102C0440F551FA7 +:1040D0008A95E2F7CA0180959181892381830895A9 +:1040E0009091D70190FF16C01F928F9389EB95E0B6 +:1040F0009F938F930E94EB070F900F900F900F905C +:1041000008953196E217F30729F090819813F9CFBB +:104110001082F7CF089581E090E0E0910E01F091D8 +:104120000F01E80FF91F1082019680319105A9F760 +:1041300008959091D601892B8093D601089580959A +:104140009091D60189238093D60108951092D601CB +:1041500008959091D501892B8093D501089580957C +:104160009091D50189238093D50108951092D501AE +:1041700008958093C40108951092C4010895809118 +:104180000E0190910F01FC0131969C01205F3F4F81 +:1041900080E0919191118F5FE217F307D1F70895B5 +:1041A000E0910E01F0910F018091D6018083E091A2 +:1041B0000E01F0910F0190818091D501892B8083B0 +:1041C0008091C401882361F0E0910E01F0910F010C +:1041D0009081892B80830E94BF2081111092C4019D +:1041E00080910E0190910F010C94EB1490933B0180 +:1041F00080933A010895CF92DF92EF92FF926C0183 +:10420000EE24FF24C114D104E104F10421F0C7011C +:10421000B60120E101C020E0C72ED82EE92EFF24F0 +:10422000C114D104E104F10419F0285FC701B601FB +:104230006B017C0154E0F694E794D794C7945A95A7 +:10424000D1F7C114D104E104F10419F02C5FC701C6 +:10425000B6016B017C0142E0F694E794D794C794D1 +:104260004A95D1F7C114D104E104F10419F02E5F8D +:10427000C701B601DC01CB01B695A7959795879547 +:10428000892B8A2B8B2B09F02F5F822FFF90EF90C9 +:10429000DF90CF9008958295982F9C7C392F36958A +:1042A0003695282F237344E0249FC0011124932FB7 +:1042B000982B292F2A7A2695892F8575880F822B8E +:1042C00008951F93CF93DF931F92CDB7DEB79983E5 +:1042D0000E944B21182F9981892F0E944B21212F59 +:1042E00030E0322F2227A901482BCA010F90DF911D +:1042F000CF911F9108958091F001843009F11092BF +:10430000D80120E488E190E00FB6F894A895809356 +:1043100060000FBE2093600083B7817F846083BFFD +:1043200083B7816083BF7894889583B78E7F83BF7E +:1043300088E10FB6F89480936000109260000FBE81 +:10434000089508950895CF930E94A1210E947F09A6 +:104350000E94A221C0E08C2F0E94AB0A811104C0F0 +:10436000CF5FCE30C1F701C081E0CF9108950C94AA +:10437000BB1A82E084BD93E095BD9AEF97BD809310 +:104380006E0008952FB7F8948091D9019091DA01C9 +:10439000A091DB01B091DC012FBF0895CF92DF9295 +:1043A000EF92FF920F931F932FB7F8944091D9018A +:1043B0005091DA016091DB017091DC012FBF6A013D +:1043C0007B01EE24FF248C0120E030E0C016D106F2 +:1043D000E206F30610F4415051099A01281B390BEB +:1043E000C9011F910F91FF90EF90DF90CF9008953A +:1043F0001F920F920FB60F9211248F939F93AF933A +:10440000BF938091D9019091DA01A091DB01B09125 +:10441000DC010196A11DB11D8093D9019093DA01B1 +:10442000A093DB01B093DC01BF91AF919F918F917D +:104430000F900FBE0F901F9018950E94DD11F894F9 +:104440002FEF87EA91E6215080409040E1F700C0CD +:10445000000087E090EBDC018093F9019093FA0172 +:10446000A093FB01B093FC019CE088E10FB6F894A7 +:10447000A895809360000FBE90936000FFCFEF92ED +:10448000FF920F931F93CF93DF93D82FC0E08C2F11 +:104490000E94AB0A00E010E0E82EF12CC701002ECC +:1044A00002C0959587950A94E2F780FD06C00F5FDC +:1044B0001F4F0630110591F709C0602F7C2F80E057 +:1044C0000E94B80BD813F3CF81E004C0CF5FCE3089 +:1044D000F1F680E0DF91CF911F910F91FF90EF9067 +:1044E0000895CF93C82F8CE20E943F22882321F0A9 +:1044F0008C2FCF910C943F2280E0CF910895CF93E1 +:104500000E94CE23811102C00E94B4238CEF95E05B +:104510000E945207C5E6C15049F00E947F098FE30F +:104520009CE90197F1F700C00000F5CF85EF95E019 +:104530000E94520789E20E947122811113C18AE20E +:104540000E94712281110E94B42385E00E94712291 +:1045500081110E941D220E94D9238093D70187E0F8 +:104560000E9471228823A9F18BE10E947122882385 +:1045700051F08091D70181FB222720F991E0922709 +:1045800090FB81F90EC08EE00E947122882361F0B9 +:104590008091D70182FB222720F991E0922790FB9E +:1045A00082F98093D70115C080E10E947122909119 +:1045B000D701882341F093FB222720F981E082274D +:1045C00080FB93F904C0892F809580FB90F990932C +:1045D000D7018091D7010E94DD230E94EB238093B5 +:1045E000EA0180EE0E947122882341F08091EA0165 +:1045F000982F909590FB80F98093EA0189E30E94BF +:104600007122882359F08091EA0181FB222720F949 +:1046100091E0922790FB81F98093EA0182EE0E945B +:104620007122882359F08091EA0182FB222720F928 +:1046300091E0922790FB82F98093EA0186EE0E9436 +:104640007122882359F08091EA0183FB222720F907 +:1046500091E0922790FB83F98093EA0183EE0E9418 +:104660007122882359F08091EA0184FB222720F9E6 +:1046700091E0922790FB84F98093EA0185E30E9400 +:104680007122882359F08091EA0185FB222720F9C5 +:1046900091E0922790FB85F98093EA0181E30E94E3 +:1046A0007122882359F08091EA0186FB222720F9A4 +:1046B00091E0922790FB86F98093EA0181E10E94C4 +:1046C0007122882359F08091EA0187FB222720F983 +:1046D00091E0922790FB87F98093EA018091EA01AB +:1046E0000E94EF238091EA0187FB882780F980935D +:1046F0000D0187E20E947122C82F8EE10E94712273 +:104700008111C2608FE10E9471228111C46080E238 +:104710000E9471228111C86081E20E947122811180 +:10472000C06182E20E9471228111C06283E20E9414 +:1047300071228111C06484E20E947122882311F0E9 +:10474000C06802C0CC2329F08C2F0E94E6236C2F76 +:1047500003C00E94E223682F70E080E090E0CF91D8 +:104760000C94771ECF9108956DEE7EEF80E090E07F +:104770000E94B72D60E082E090E00E94A92D60E0E9 +:1047800083E090E00E94A92D60E084E090E00E9428 +:10479000A92D60E085E090E00C94A92D80E090E0E8 +:1047A0000E94A32D21E08D3E9E4F09F020E0822F34 +:1047B000089582E090E00C949B2D682F82E090E0B9 +:1047C0000C94A92D83E090E00C949B2D682F83E03E +:1047D00090E00C94A92D84E090E00C949B2D682F20 +:1047E00084E090E00C94A92D8091DF0180FF0BC044 +:1047F0006091130185E0689FB0011124759567955C +:10480000759567952BC081FF09C06091130185E004 +:10481000689FB00111247595679520C082FF07C07D +:104820006091130185E0689FB001112417C0909139 +:10483000E0019923D1F060911201961788F7209139 +:10484000130185E0289F90011124929FA001939F5E +:10485000500D112470E0CA010E946D2D6038710561 +:1048600040F46115710539F002C065E070E0862FF3 +:1048700008958FE7089581E008958091DF0180FF1A +:1048800008C06091110170E0759567957595679501 +:1048900021C081FF06C06091110170E07595679598 +:1048A00019C082FF04C06091110170E010C09091A6 +:1048B000E0019923C1F0609110019617A0F7809153 +:1048C0001101899FC001112470E00E946D2D603894 +:1048D000710528F46115710521F0862F08958FE781 +:1048E000089581E0089561E070E0F4CF803F21F405 +:1048F0000E94F423819504C0813F29F40E94F4238F +:104900008093E3010895823F21F40E94F42381956E +:1049100004C0833F29F40E94F4238093E2010895A8 +:10492000893F19F40E943D2405C08A3F31F40E945A +:104930003D2481958093E40108958B3F21F40E94EA +:104940003D24819504C08C3F29F40E943D2480932E +:10495000E5010895843F21F48091E101816017C051 +:10496000853F21F48091E101826011C0863F21F4EE +:104970008091E10184600BC0873F21F48091E101C7 +:10498000886005C0883F31F48091E10180618093A7 +:10499000E10108958D3F21F48091DF0181600BC01A +:1049A0008E3F21F48091DF01826005C08F3F29F4A2 +:1049B0008091DF0184608093DF010895803F39F4A6 +:1049C0008091E30187FF6CC01092E30169C0813FD1 +:1049D00029F48091E3011816BCF362C09091E201C2 +:1049E000823F29F497FF5CC01092E20159C0833FD7 +:1049F00019F41916CCF354C0893F41F48091E401B5 +:104A000018160CF04DC01092E4014AC08A3F29F4F8 +:104A10008091E40187FF44C0F6CF8B3F39F4809149 +:104A2000E50187FF3DC01092E5013AC08C3F29F4B3 +:104A30008091E5011816BCF333C0843F21F48091C6 +:104A4000E1018E7F17C0853F21F48091E1018D7FC8 +:104A500011C0863F21F48091E1018B7F0BC0873F1D +:104A600021F48091E101877F05C0883F31F4809176 +:104A7000E1018F7E8093E10113C08D3F21F480918D +:104A8000DF018E7F0BC08E3F21F48091DF018D7F8F +:104A900005C08F3F29F48091DF018B7F8093DF0178 +:104AA0008091E20181110EC08091E30181110AC061 +:104AB0008091E401811106C08091E501811102C05D +:104AC0001092E00108958091D70183FF7EC088E3B2 +:104AD00096E00E9452078091E1011F928F9383E339 +:104AE00096E09F938F930E94EB0781E396E00E94EC +:104AF00052078091E201282F332727FD30953F93FD +:104B00008F938EE296E09F938F930E94EB078CE247 +:104B100096E00E9452078091E301282F332727FD5A +:104B200030953F938F9389E296E09F938F930E94F5 +:104B3000EB0787E296E00E9452078091E401282F5C +:104B4000332727FD30953F938F9384E296E09F9320 +:104B50008F930E94EB0782E296E00E9452078091B9 +:104B6000E501282F332727FD30953F938F938FE161 +:104B700096E09F938F930E94EB078CE196E00E9452 +:104B800052078091E0011F928F9389E196E09F93F5 +:104B90008F930E94EB0787E196E00E945207809175 +:104BA000DF011F928F9384E196E09F938F930E9481 +:104BB000EB0781E196E00E9452078DB79EB74C96B5 +:104BC0000FB6F8949EBF0FBE8DBF81EE91E00E949C +:104BD00034150E94C2219093DE018093DD01089577 +:104BE0001F93CF93DF938091DD019091DE010E94AE +:104BF000CE21AC019091E001992321F02091140184 +:104C000030E006C0209115018AE0289F9001112410 +:104C10004217530708F486C08091E201C091E30176 +:104C2000D091E4011091E501811107C0C11176C056 +:104C3000D11174C0111172C075C09F3F19F09F5FF0 +:104C40009093E001181624F40E94F4238093E2016B +:104C50008091E20187FF05C00E94F4238195809333 +:104C6000E2011C1624F40E94F4238093E301809156 +:104C7000E30187FF05C00E94F42381958093E3013F +:104C80006091E201662339F1C091E301CC2319F16F +:104C9000772767FD7095872F972F0E94722C23E34B +:104CA00033E343E35FE30E94D62C0E943F2C6093E2 +:104CB000E2016C2F772767FD7095872F972F0E9451 +:104CC000722C23E333E343E35FE30E94D62C0E947C +:104CD0003F2C6093E3011D1624F40E943D24809331 +:104CE000E4018091E40187FF05C00E943D24819585 +:104CF0008093E401111624F40E943D248093E50181 +:104D00008091E50187FF05C00E943D248195809335 +:104D1000E501DF91CF911F910C9463259F3F09F02E +:104D20008ECF96CFDF91CF911F910895E1EEF1E004 +:104D300085E0DF011D928A95E9F71092E00110925B +:104D4000DF0108958BE598E00E9452071F9281E0F1 +:104D50008F931F9285E08F938DE098E09F938F93C0 +:104D60000E94EB070F900F900F900F900F900F90F5 +:104D700008958330E9F128F4813061F0823009F13F +:104D80000895853009F462C008F449C0863009F4FA +:104D900074C0089580911501262F30E0280F311D31 +:104DA0002F3F310524F4680F6093150103C08FEF86 +:104DB00080931501809115011F928F9386E497E0EF +:104DC00072C080911401262F30E0280F311D2F3F33 +:104DD000310524F4680F6093140103C08FEF8093B2 +:104DE0001401809114011F928F9384E397E05BC0BC +:104DF00080911301262F30E0280F311D2F3F310500 +:104E000024F4680F6093130103C08FEF80931301A4 +:104E1000809113011F928F9381E297E044C08091AB +:104E20001201262F30E0280F311D2F3F310524F4C9 +:104E3000680F6093120103C08FEF8093120180917D +:104E400012011F928F938CE097E02DC08091110189 +:104E5000262F30E0280F311D2F3F310524F4680F35 +:104E60006093110103C08FEF8093110180911101B4 +:104E70001F928F9383EF96E016C080911001262F2A +:104E800030E0280F311D2F3F310524F4680F609367 +:104E9000100103C08FEF80931001809110011F92C9 +:104EA0008F9388ED96E09F938F930E94EB070F906E +:104EB0000F900F900F900895833081F128F4813086 +:104EC00059F08230D1F00895853009F449C0B8F125 +:104ED000863009F456C0089580911501681720F4B2 +:104EE000861B8093150102C0109215018091150157 +:104EF0001F928F9389EC96E054C08091140168173B +:104F000020F4861B8093140102C01092140180913A +:104F100014011F928F9387EB96E043C08091130199 +:104F2000681720F4861B8093130102C010921301AE +:104F3000809113011F928F9384EA96E032C0809192 +:104F40001201681720F4861B8093120102C0109290 +:104F50001201809112011F928F938FE896E021C079 +:104F600080911101681720F4861B8093110102C003 +:104F700010921101809111011F928F9386E796E0A4 +:104F800010C080911001681720F4861B80931001D7 +:104F900002C010921001809110011F928F938BE537 +:104FA00096E09F938F930E94EB070F900F900F90C6 +:104FB0000F900895CF93C82F1F928F9380E699E0AA +:104FC0009F938F930E94EB0781E090E0A0E0B0E018 +:104FD000BC01CD0104C0660F771F881F991FCA95B9 +:104FE000D2F70E94771E0F900F900F900F90CF91E5 +:104FF0000C94BB1ACF938D3109F465C0B0F58E3097 +:1050000009F4CCC100F5873009F49BC1A8F48630BF +:1050100009F06DC28091D701817F8E7F8093D70187 +:1050200085E699E00E94520781EA9DE00E945207BE +:1050300081E08093E70180C1883009F44FC08B3054 +:1050400009F47CC154C2863109F4F0C138F48031CE +:1050500009F4B8C1813109F430C249C2893109F477 +:10506000CEC18B3109F486C142C2853309F437C2FF +:1050700048F4873209F433C208F433C2893209F4A0 +:105080002EC235C2833438F48A3308F02CC28833F8 +:1050900009F454C12CC2833409F421C2883409F0C4 +:1050A00026C20E94BB1A80E99DE00E9452079FEF32 +:1050B00023ED80E3915020408040E1F700C00000E4 +:1050C0000E941D2239C180EB9DE00E9452070E9480 +:1050D000F92B0E94DF140E94110D2EC185EA9DE07C +:1050E0000E94520786E79BE00E9452070E94E2233B +:1050F0001F928F9383E79BE09F938F930E94EB0710 +:1051000081E79BE00E9452070E94D923C82F8EE5B9 +:105110009BE00E9452071F92CF9389E59BE09F93EB +:105120008F930E94EB0787E59BE00E9452078DE476 +:105130009BE00E9452078C2F81701F928F938AE40C +:105140009BE09F938F930E94EB0788E49BE00E9473 +:1051500052078EE39BE00E945207C1FB882780F92B +:105160001F928F938BE39BE09F938F930E94EB079B +:1051700089E39BE00E9452078DE29BE00E94520768 +:10518000C2FB882780F91F928F938AE29BE09F934E +:105190008F930E94EB0788E29BE00E9452078FE109 +:1051A0009BE00E945207C3FBCC27C0F91F92CF930C +:1051B0008CE19BE09F938F930E94EB078AE19BE039 +:1051C0000E9452070E94EB23C82F86E09BE00E94BA +:1051D00052071F92CF9381E09BE09F938F930E9491 +:1051E000EB078FEF9AE00E94520786EE9AE00E944A +:1051F00052078C2F81701F928F9383EE9AE09F93BA +:105200008F930E94EB078DB79EB780960FB6F894E8 +:105210009EBF0FBE8DBF81EE9AE00E9452078AECBE +:105220009AE00E945207C1FB882780F91F928F9352 +:1052300087EC9AE09F938F930E94EB0785EC9AE0AE +:105240000E94520783EB9AE00E945207C2FB882714 +:1052500080F91F928F9380EB9AE09F938F930E9427 +:10526000EB078EEA9AE00E9452078CE99AE00E94CE +:105270005207C3FB882780F91F928F9389E99AE030 +:105280009F938F930E94EB0787E99AE00E94520751 +:105290008DE89AE00E945207C4FB882780F91F928C +:1052A0008F938AE89AE09F938F930E94EB0788E898 +:1052B0009AE00E94520786E79AE00E945207C5FBD7 +:1052C000882780F91F928F9383E79AE09F938F93AB +:1052D0000E94EB0781E79AE00E94520785E59AE079 +:1052E0000E945207C6FB882780F91F928F9382E5A0 +:1052F0009AE09F938F930E94EB0780E59AE00E94CB +:10530000520788E49AE00E945207C7FBCC27C0F9F5 +:105310001F92CF9385E49AE09F938F930E94EB07AF +:1053200083E49AE00E9452078DB79EB74C960FB661 +:10533000F8949EBF0FBE8DBFC1E0DEC08CE899E03F +:105340005BC08091D701C82FC17080FF09C083E87E +:105350009DE00E9452078091D701817F8E7F47C0D8 +:1053600087E79DE00E9452078091D701816080937A +:10537000D701E2CF9091D70191FBCC27C0F981E012 +:10538000C827892FC0FB81F98093D701CC2319F05E +:105390008AE69DE027C08CE59DE02EC09091D70164 +:1053A00092FBCC27C0F981E0C827892FC0FB82F986 +:1053B0008093D701CC2319F08DE49DE013C08DE3D9 +:1053C0009DE01AC09091D70193FBCC27C0F981E0F2 +:1053D000C827892FC0FB83F98093D701CC2351F0D4 +:1053E00081E39DE00E9452078091D7018160809304 +:1053F000D70182C084E29DE00E9452079DCF85E1E3 +:105400009DE00E94520789EE9CE00E9452078CEAC0 +:105410009CE00E94520785E89CE00E94520781E4CC +:105420009CE00E94520786E19CE0E6CF88E09CE089 +:105430000E9452070E94DF141F928F938EEE9BE012 +:105440009F938F930E94EB0780910C011F928F9383 +:1054500087ED9BE09F938F930E94EB0780916E01F5 +:105460001F928F9384EC9BE09F938F930E94EB0796 +:1054700080910D011F928F9381EB9BE09F938F93FF +:105480000E94EB078091D9019091DA01A091DB0194 +:10549000B091DC01BF93AF939F938F938DE99BE015 +:1054A0009F938F930E94EB078DB79EB746960FB6DA +:1054B000F8949EBF0FBE8DBF3FCF0E94BB1AC09114 +:1054C0000D0181E0C827C0930D01CC2329F083E9A9 +:1054D0009BE00E94520710C088E89BE08DCF80E0DF +:1054E00003C08D5101C089530E94DA2725CF86E879 +:1054F0009BE00E945207C0E08C2FCF91089580E07E +:10550000089580E00895CF93C82F8091E7018130FE +:1055100081F020F0823009F44FC045C1E0910E01C6 +:10552000F0910F018081813169F0823209F03DC133 +:1055300009C0E0910E01F0910F018081813111F0DD +:10554000823261F48C2F0E947F2A811104C08C2F3B +:105550000E94FA272FC081E090E02CC08C2F0E947F +:10556000812A811126C0C431E1F070F4CB3081F082 +:10557000C031D1F40E94A22688E599E00E9452072A +:1055800082E08093E70115C0C93259F0C83361F455 +:1055900085E699E00E9452078CE599E00E94520747 +:1055A00008C01092E70103C186E599E00E94520706 +:1055B000FEC081E08170FDC0C43220F5CE3108F01C +:1055C000C0C0CB3099F1C8F4C73009F0D2C08AE02E +:1055D0008093150194E19093140193E0909313014B +:1055E0008093120188E08093110188E2809310017A +:1055F0008CEF97E00E945207BFC0C33149F1C4311C +:10560000C1F0B7C0CB3409F4A9C028F4C93289F07D +:10561000C83361F0AEC0C13509F49EC0C23509F48B +:1056200099C0CE3409F0A5C06AE09EC00E94A226AF +:10563000A3C08091E601882319F01092E6019CC076 +:1056400089E098E00E94520781E08093E701B1C0B1 +:1056500083EE97E00E94520781ED97E00E94520787 +:10566000809115011F928F938EEC97E09F938F93FB +:105670000E94EB078CEC97E00E9452078AEB97E0C0 +:105680000E945207809114011F928F9387EB97E03D +:105690009F938F930E94EB0785EB97E00E94520740 +:1056A00086EA97E00E945207809113011F928F9320 +:1056B00083EA97E09F938F930E94EB0781EA97E03C +:1056C0000E94520780E997E00E94520780911201E0 +:1056D0001F928F938DE897E09F938F930E94EB0723 +:1056E0008BE897E00E94520786E797E00E945207F6 +:1056F000809111011F928F9383E797E09F938F937F +:105700000E94EB0781E797E00E9452078AE597E045 +:105710000E945207809110011F928F9387E597E0B6 +:105720009F938F930E94EB0785E597E00E945207B5 +:105730008DB79EB748960FB6F8949EBF0FBE8DBF2B +:105740001BC0CE51EC2FF0E0E15DFE4F80818093D5 +:10575000E60112C061E003C061E006C06AE080912A +:10576000E6010E94B92608C08091E6010E945C27EC +:1057700003C08AEF97E013C08091E601882369F0A7 +:105780001F928F9384EF97E09F938F930E94EB0774 +:105790000F900F900F900F9004C081EF97E00E9440 +:1057A000520781E006C01092E70180E002C080E06D +:1057B00001CFCF910895E1E8F0E080818860808397 +:1057C0008081816080838FB7F89493E09093890003 +:1057D00090ED909388008FBF0895EFE6F0E0808110 +:1057E000826080830895EFE6F0E080818D7F808382 +:1057F0000895EFE6F0E0908182E0892780830895A4 +:105800001F920F920FB60F9211242F933F934F9335 +:105810005F936F937F938F939F93AF93BF93EF9318 +:10582000FF938091E8019091E90101969093E9013D +:105830008093E801811103C082E00E94110DE09184 +:10584000E901E695E695F0E0E054F24FE4918091AD +:10585000E8018E1303C080E00E94110DFF91EF91CB +:10586000BF91AF919F918F917F916F915F914F9178 +:105870003F912F910F900FBE0F901F90189504D05D +:105880006894B1118DC0089570D088F09F5790F042 +:10589000B92F9927B751A0F0D1F0660F771F881F55 +:1058A000991F1AF0BA95C9F712C0B13081F077D0BC +:1058B000B1E0089574C0672F782F8827B85F39F05A +:1058C000B93FCCF3869577956795B395D9F73EF4B4 +:1058D00090958095709561957F4F8F4F9F4F08955C +:1058E000E89409C097FB3EF490958095709561957A +:1058F0007F4F8F4F9F4F9923A9F0F92F96E9BB2730 +:105900009395F695879577956795B795F111F8CFAB +:10591000FAF4BB0F11F460FF1BC06F5F7F4F8F4F16 +:105920009F4F16C0882311F096E911C0772321F00C +:105930009EE8872F762F05C0662371F096E8862FA4 +:1059400070E060E02AF09A95660F771F881FDAF7FB +:10595000880F9695879597F9089557FD9058440FAD +:10596000551F59F05F3F71F04795880F97FB991FBE +:1059700061F09F3F79F0879508951216130614067B +:10598000551FF2CF4695F1DF08C016161706180608 +:10599000991FF1CF86957105610508940895E894E3 +:1059A000BB2766277727CB0197F908950BD078C0DE +:1059B00069D028F06ED018F0952309F05AC05FC066 +:1059C0001124EECFCADFA0F3959FD1F3950F50E0DD +:1059D000551F629FF001729FBB27F00DB11D639FA1 +:1059E000AA27F00DB11DAA1F649F6627B00DA11D47 +:1059F000661F829F2227B00DA11D621F739FB00DED +:105A0000A11D621F839FA00D611D221F749F33275C +:105A1000A00D611D231F849F600D211D822F762FF5 +:105A20006A2F11249F5750408AF0E1F088234AF0F2 +:105A3000EE0FFF1FBB1F661F771F881F915050403E +:105A4000A9F79E3F510570F014C0AACF5F3FECF359 +:105A5000983EDCF3869577956795B795F795E7952A +:105A60009F5FC1F7FE2B880F911D9695879597F93B +:105A7000089597F99F6780E870E060E008959FEFD0 +:105A800080EC089500240A941616170618060906D5 +:105A9000089500240A9412161306140605060895A4 +:105AA000092E0394000C11F4882352F0BB0F40F42C +:105AB000BF2B11F460FF04C06F5F7F4F8F4F9F4F6C +:105AC0000895991B79E004C0991F961708F0961B5A +:105AD000881F7A95C9F78095089597FB072E16F4CD +:105AE000009407D077FD09D00E94872D07FC05D0D0 +:105AF0003EF4909581959F4F0895709561957F4FE5 +:105B00000895EE0FFF1F0590F491E02D0994AA1B54 +:105B1000BB1B51E107C0AA1FBB1FA617B70710F098 +:105B2000A61BB70B881F991F5A95A9F780959095CA +:105B3000BC01CD010895F999FECF92BD81BDF89ABF +:105B4000992780B50895A8E1B0E042E050E00C94B8 +:105B5000BE2D262FF999FECF1FBA92BD81BD20BD63 +:105B60000FB6F894FA9AF99A0FBE019608950E941A +:105B7000A92D272F0C94AA2DDC01CB01FC01F9994A +:105B8000FECF06C0F2BDE1BDF89A319600B40D9289 +:0C5B900041505040B8F70895F894FFCF42 +:105B9C002002120D030EE00DAC0D780D0101C501B4 +:105BAC0028080A03140A3F4D3620394605F904C368 +:105BBC0004A3046A04DD03F6030F0428044804015B +:0A5BCC0002030405060708090000A3 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/colemak/keymap.c b/keyboard/ergodox_ez/keymaps/colemak/keymap.c new file mode 100644 index 0000000000..ee72c42635 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB), + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, LT(MDIA, KC_O), KC_QUOT, + MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/colemak/readme.md b/keyboard/ergodox_ez/keymaps/colemak/readme.md new file mode 100644 index 0000000000..e28b2f0856 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/readme.md @@ -0,0 +1,4 @@ +# ErgoDox EZ Colemak Configuration + +Colemak layout with same layers as default ergodox ez keymap. + From e5f84058bb6884e0c2d024a1f2e64436395cbd60 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 23 Jan 2016 16:59:33 +0100 Subject: [PATCH 33/52] Implemented new folders structure. moved keymap_typematrix.c to tm2030/keymap.c --- .../ergodox_ez/keymaps/{keymap_typematrix.c => tm2030/keymap.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename keyboard/ergodox_ez/keymaps/{keymap_typematrix.c => tm2030/keymap.c} (100%) diff --git a/keyboard/ergodox_ez/keymaps/keymap_typematrix.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c similarity index 100% rename from keyboard/ergodox_ez/keymaps/keymap_typematrix.c rename to keyboard/ergodox_ez/keymaps/tm2030/keymap.c From 67583b2f4aeceb5cdbfd32055a6c4fc4436effe7 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 23 Jan 2016 18:04:45 +0100 Subject: [PATCH 34/52] Renamed "Numbers Layer" to "Numeric Layer" --- keyboard/ergodox_ez/keymaps/tm2030/keymap.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c index 931170c387..31005b64d0 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -12,14 +12,14 @@ * - arrows and PgUp/PgDn are moved on the thumbs * Layer 1: same as Layer 0 but with Dvorak layout, to use with QWERTY OS layout. * Enable Dvorak layout with Magic-1 (LShift-RShift-1), disable with Magic-0. - * Layer 8: numbers layer close to the TM when toggling "num" with the following differences: + * Layer 8: numeric layer close to the TM when toggling "num" with the following differences: * - numpad is displaced by 1 to the top left * - arrows are displaced by 1 to the left * - provides access to F1-F12, caps lock and num lock * Layer 9: "fn" layer ("fn" key toggles both layers 1 & 2) with the following differences: * - VolUp & VolDn are only on left hand to keep access to arrows on right hand * LEDs: - * - left (1st) led is used to indicate the numbers layer + * - left (1st) led is used to indicate the numeric layer * - middle (2nd) led is used to indicate Dvorak layout * - right (3rd) led is used to indicate caps-lock */ @@ -30,7 +30,7 @@ #define BASE 0 // default layer #define DVRK 1 // Dvorak layer -#define NMBR 8 // numbers layer +#define NUMR 8 // numeric layer #define FNLR 9 // fn layer #define MDBL0 1 @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), - ALT_T(KC_ESC), TG(NMBR), + ALT_T(KC_ESC), TG(NUMR), KC_PGUP, KC_SPC, KC_LSFT, KC_PGDN, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), - ALT_T(KC_ESC), TG(NMBR), + ALT_T(KC_ESC), TG(NUMR), KC_PGUP, KC_SPC, KC_LSFT, KC_PGDN, @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_UP, KC_DOWN, KC_RSFT, KC_SPC ), -/* Numbers Layer +/* Numeric Layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | @@ -154,7 +154,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // SYMBOLS -[NMBR] = KEYMAP( +[NUMR] = KEYMAP( // left hand KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, @@ -234,7 +234,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case MFNLR: - layer_state ^= (1 << NMBR) | (1 << FNLR); + layer_state ^= (1 << NUMR) | (1 << FNLR); break; case MCUT: if (record->event.pressed) { @@ -267,8 +267,8 @@ void * matrix_scan_user(void) { ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); - // led 1: numbers layer - if (layer_state & (1 << NMBR)) { + // led 1: numeric layer + if (layer_state & (1 << NUMR)) { ergodox_right_led_1_on(); } // led 2: Dvorak layer From 96b9089d9f4237c2d4e4760181628fc96c4f93b6 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 23 Jan 2016 18:15:21 +0100 Subject: [PATCH 35/52] Added Calculator, Mail and Browser Home application keys. --- keyboard/ergodox_ez/keymaps/tm2030/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c index 31005b64d0..00d6a4bfa4 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -2,7 +2,7 @@ * --------------------------- * Currently supported features: * Layer 0: default layer close to the TM with the following differences: - * - top row and rightmost column are removed, corresponding keys are displaced, except app-keys which are removed + * - top row and rightmost column are removed, corresponding keys are displaced * - bottom-left keys are reorganized on a single roz as: Ctrl, "Fn", Gui, Play, App/Alt * - "shuffle" and "desktop" are not supported * - right-shift is moved on ' and \ @@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | | | |VolUp | | | | | | | | Pause | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | + * | | | | Calc | Mail |Browsr|------| |------| | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -201,7 +201,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FNLR] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, KC_TRNS, KC_TRNS, M(MCUT), M(MCOPY), M(MPSTE), KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, From 294bd256150e381d3eac619a6eab1877eb95728f Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 23 Jan 2016 18:52:16 +0100 Subject: [PATCH 36/52] Moved layout description to README.md and added more details --- keyboard/ergodox_ez/keymaps/tm2030/README.md | 133 +++++++++++++++++++ keyboard/ergodox_ez/keymaps/tm2030/keymap.c | 26 +--- 2 files changed, 134 insertions(+), 25 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/tm2030/README.md diff --git a/keyboard/ergodox_ez/keymaps/tm2030/README.md b/keyboard/ergodox_ez/keymaps/tm2030/README.md new file mode 100644 index 0000000000..55942709be --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tm2030/README.md @@ -0,0 +1,133 @@ +# TypeMatrix™ 2030 inspired layout + +This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. + +The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. + +Most of the TM2030 features are supported except +* automatic window switching (alt-tab key, at the left of the space key) +* show desktop key (at the right of the space key) +* 102/106 modes + +Dvorak mode is even supported by pressing [`Magic`](/TMK_README.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) + +Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. + +## Base Layer +This is the default layer, close to the TM with the following differences: +- Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. +- Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. +- `shuffle` and `desktop` are not supported. +- `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). +- `right-ctrl` is moved on `End`. +- `]` is moved in place of the dash (`-`). +- Dash (`-`) and `=` are moved on bottom right row. +- Arrows and `PgUp`/`PgDn` are moved on the thumbs. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + + +### Layer Switching +- Use `num` to toggle the Numeric Layer. +- Hold `fn` to temporarily activate the Numeric & Fn Layers +As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. + +## Dvorak Layer +Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. + +Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. + +The middle (green) led indicates when the Dvorak layer is activated. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + +## Numeric Layer +Numeric layer close to the TM when toggling `num`, with the following differences: + +- Numpad is displaced by 1 to the top left. +- Arrows are displaced by 1 to the left. +- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. + +The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. + + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | 0 | 00 | . |Etr/Ctl| + `----------------------------------' `-----------------------------------' + ,-------------. ,-------------. + | | | |n.lock|c.lock| + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +## Fn Layer +Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: +- `cut`, `copy` and `paste` +- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand +- `previous track` and `next track` +- `calculator`, `mail` and `browser home` +- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` + +Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 + + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | |VolUp | | | | | | | | Pause | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | |------| |------| | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | Next | | | + | Mute | |------| |------| | | + | | | | | Prev | | | + `--------------------' `--------------------' diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c index 00d6a4bfa4..cbdf0ae00e 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -1,28 +1,4 @@ -/* TypeMatrix-2030-like keymap - * --------------------------- - * Currently supported features: - * Layer 0: default layer close to the TM with the following differences: - * - top row and rightmost column are removed, corresponding keys are displaced - * - bottom-left keys are reorganized on a single roz as: Ctrl, "Fn", Gui, Play, App/Alt - * - "shuffle" and "desktop" are not supported - * - right-shift is moved on ' and \ - * - right-ctrl is moved on End - * - ] is moved in place of the dash (-) - * - dash (-) and = are moved on bottom right row - * - arrows and PgUp/PgDn are moved on the thumbs - * Layer 1: same as Layer 0 but with Dvorak layout, to use with QWERTY OS layout. - * Enable Dvorak layout with Magic-1 (LShift-RShift-1), disable with Magic-0. - * Layer 8: numeric layer close to the TM when toggling "num" with the following differences: - * - numpad is displaced by 1 to the top left - * - arrows are displaced by 1 to the left - * - provides access to F1-F12, caps lock and num lock - * Layer 9: "fn" layer ("fn" key toggles both layers 1 & 2) with the following differences: - * - VolUp & VolDn are only on left hand to keep access to arrows on right hand - * LEDs: - * - left (1st) led is used to indicate the numeric layer - * - middle (2nd) led is used to indicate Dvorak layout - * - right (3rd) led is used to indicate caps-lock - */ +/* TypeMatrix-2030-like keymap */ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" From b0d7d9d922ea5b432fcbb499df0881a2e80d5092 Mon Sep 17 00:00:00 2001 From: Didier Loiseau Date: Sat, 23 Jan 2016 18:59:06 +0100 Subject: [PATCH 37/52] Added keymap.hex --- keyboard/ergodox_ez/keymaps/tm2030/keymap.hex | 1544 +++++++++++++++++ 1 file changed, 1544 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/tm2030/keymap.hex diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex b/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex new file mode 100644 index 0000000000..7e1118e3b2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex @@ -0,0 +1,1544 @@ +:100000000C9462090C94A6090C94A6090C94A609F8 +:100010000C94A6090C94A6090C94A6090C94A609A4 +:100020000C94A6090C94A6090C94F4140C94C6150F +:100030000C94A6090C94A6090C94A6090C94A60984 +:100040000C94A6090C94472E0C94A6090C94A609AE +:100050000C94A6090C944E240C94A6090C94A609A1 +:100060000C94A6090C94A6090C94A6090C94A60954 +:100070000C94A6090C94A6090C94A6090C94A60944 +:100080000C94A6090C94A6090C94A6090C94A60934 +:100090000C94A6090C94A6090C94A6090C94A60924 +:1000A0000C94A6090C94A6090C94A6092B164D16BF +:1000B00038174D1638178F16B216381707171A1734 +:1000C000681A681A961A961AD81A141B141D141D49 +:1000D0002C1B141D231C231CEE1C141D141D021D9F +:1000E00001E10149024902E10001E001490249023E +:1000F000E00001E1014C024C02E1007519016202CD +:1001000062016202620035002B00E100E100E000C4 +:1001100000001E00140004001D0002304E001F00ED +:100120001A0016001B00E300E10020000800070091 +:100130000600AE002C0021001500090019006574AE +:100140004B00220017000A000500000029744C0033 +:100150002A0000002800000008544C002A0000007B +:1001600028000000500023001C000B0011000000BC +:100170004F00240018000D001000E600520025007A +:100180000C000E0036002D002C00260012000F007F +:1001900037004A00E50027001300330038002E0026 +:1001A000510030002F00347231724D710000350063 +:1001B0002B00E100E100E00000001E00340004001C +:1001C000330002304E001F00360012001400E3001E +:1001D000E1002000370008000D00AE002C002100D7 +:1001E000130018000E0065744B0022001C000C0068 +:1001F0001B00000029744C002A00000028000000A9 +:1002000008544C002A000000280000005000230081 +:1002100009000700050000004F0024000A000B0041 +:100220001000E60052002500060017001A002F00FB +:100230002C0026001500110019004A00E5002700D7 +:100240000F0016001D00300051002E0038002D72E6 +:1002500031724D710000000000000000000000003D +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000001000100010001000100A5 +:1006500000003A003F0044000100010001003B009F +:10066000400045000100010001003C004100010084 +:100670000100010001003D004200010001000100F5 +:1006800001003E00430001000100000001000100E4 +:10069000010000000100000001004900010000000D +:1006A0005000000053003F000100520051000000C4 +:1006B000390040004A004D004F00010001002B00AE +:1006C0005F005C00590062000100540060005D00A2 +:1006D0005A0001300100550061005E005B006300BC +:1006E00001005600570057005800587100000100E3 +:1006F00001000100010001000000010001000100F3 +:1007000001000100010001000100010003300100AF +:10071000010001000100B20004300100A800010046 +:100720000100B10005300100010001000100B50029 +:10073000A800000001004900A9000000AA00000074 +:100740000100490001000000010000000100B000AC +:1007500001000100010000000100A50001000100EE +:1007600001000100AC00A600010001000100010031 +:100770000100A70001000100010001000100460086 +:100780000100010001000100AB004700480001002A +:100790000100010000000A002530313662003A20D5 +:1007A0000025303258000A722F6320303132333442 +:1007B00035363738394142434445460A000A002558 +:1007C00030325800626F756E6365213A20006C65A7 +:1007D000667420736964652061747461636865641C +:1007E0000A006C6566742073696465206E6F7420FE +:1007F000726573706F6E64696E670A0074727969EE +:100800006E6720746F207265736574206D6370323B +:10081000333031380A000A44454255473A20656E64 +:1008200061626C65642E0A005B735D004B657962E2 +:100830006F6172642073746172742E0A005B575D7D +:10084000005B535D005B525D005B445D005B435D9C +:100850000016034500720067006F0044006F0078C7 +:1008600000200045005A0000001603450072006792 +:10087000006F0044006F007800200045005A00001F +:10088000000403090409028D00050100A0FA09040F +:1008900000000103010100092111010001223F00B4 +:1008A0000705810308000A09040100010301020091 +:1008B000092111010001224D000705820308000AE9 +:1008C00009040200010300000009211101000122B6 +:1008D00036000705830308000A0904030002030029 +:1008E00000000921110100012220000705840320D6 +:1008F00000010705040320000109040400010300AE +:1009000000000921110100012239000705850310AB +:1009100000011201100100000008EDFE07130100A4 +:100920000102000105010906A101050719E029E7F7 +:100930001500250195087501810205081901290591 +:10094000950575019102950175039101050719003F +:10095000297715002501957875018102C00631FFC0 +:100960000974A1010975150025FF952075088102FC +:100970000976150025FF952075089102C00501092B +:1009800080A101850216010026B7001A01002AB7CE +:1009900000751095018100C0050C0901A1018503B6 +:1009A000160100269C021A01002A9C02751095016E +:1009B0008100C005010902A1010901A10005091971 +:1009C000012905150025019505750181029501751F +:1009D0000381010501093009311581257F950275D3 +:1009E00008810609381581257F950175088106055E +:1009F0000C0A38021581257F950175088106C0C053 +:100A000005010906A101050719E029E715002501DF +:100A10009508750181029501750881010508190184 +:100A20002905950575019102950175039101050749 +:100A3000190029FF150025FF950675088100C00AD9 +:100A4000002530325820006B6579626F6172645FF7 +:100A50007265706F72743A20000A002530325800B7 +:100A60006B6579626F6172645F7365745F6C6564F6 +:100A70003A200064656C5F6B65795F6269743A2047 +:100A800063616E27742064656C3A20253032580A01 +:100A9000006164645F6B65795F6269743A206361C9 +:100AA0006E2774206164643A20253032580A00644D +:100AB0006F6E652E0A00626F6F676D6167696320F4 +:100AC0007363616E3A202E2E2E2000290A002575B0 +:100AD000002F002575005D28002564002000256496 +:100AE00000200025640020002564007C00253032B1 +:100AF00058006D6F7573656B6579205B62746E7CF1 +:100B0000782079207620685D287265702F61636C8B +:100B1000293A205B006D6B5F776865656C5F74696F +:100B20006D655F746F5F6D6178203D2025640A00FC +:100B30006D6B5F776865656C5F6D61785F7370651D +:100B40006564203D2025640A006D6B5F74696D65E6 +:100B50005F746F5F6D6178203D2025640A006D6BC6 +:100B60005F6D61785F7370656564203D2025640A60 +:100B7000006D6B5F696E74657276616C203D202537 +:100B8000640A006D6B5F64656C6179203D202564AB +:100B90000A006D6B5F776865656C5F74696D655F92 +:100BA000746F5F6D6178203D2025640A006D6B5F76 +:100BB000776865656C5F6D61785F737065656420EB +:100BC0003D2025640A006D6B5F74696D655F746F0D +:100BD0005F6D6178203D2025640A006D6B5F6D615B +:100BE000785F7370656564203D2025640A006D6B35 +:100BF0005F696E74657276616C203D2025640A0021 +:100C00006D6B5F64656C6179203D2025640A000A84 +:100C100000257500363A20776865656C5F74696DEC +:100C2000655F746F5F6D61783A20000A002575007A +:100C3000353A20776865656C5F6D61785F737065C4 +:100C400065643A20000A00257500343A2074696D05 +:100C5000655F746F5F6D61783A20000A002575004A +:100C6000333A206D61785F73706565643A20000ADD +:100C700000257500323A20696E74657276616C28C1 +:100C80006D73293A20000A00257500313A20646509 +:100C90006C6179282A31306D73293A20000A092DB8 +:100CA0002056616C756573202D0A004D3E004D2560 +:100CB000643E20003F007365742064656661756C56 +:100CC000740A00433E200077686572652064656C95 +:100CD00074613A20637572736F723D25642C2077BE +:100CE0006865656C3D25640A536565206874747099 +:100CF0003A2F2F656E2E77696B6970656469612E76 +:100D00006F72672F77696B692F4D6F7573655F6BB6 +:100D10006579730A000A092D204D6F7573656B653F +:100D200079202D0A4553432F713A09717569740A68 +:100D3000313A0964656C6179282A31306D73290A6A +:100D4000323A09696E74657276616C286D73290A8E +:100D5000333A096D61785F73706565640A343A09E6 +:100D600074696D655F746F5F6D61780A353A0977F4 +:100D70006865656C5F6D61785F73706565640A3680 +:100D80003A09776865656C5F74696D655F746F5F5C +:100D90006D61780A0A703A097072696E7420766122 +:100DA0006C7565730A643A097365742064656661DD +:100DB000756C74730A75703A092B310A646F776E1B +:100DC0003A092D310A706775703A092B31300A7073 +:100DD00067646F776E3A092D31300A0A7370656562 +:100DE00064203D2064656C7461202A206D61785F09 +:100DF0007370656564202A202872657065617420AF +:100E00002F2074696D655F746F5F6D6178290A00CA +:100E10003F004D3E2000433E20004C25640A000A5E +:100E2000092D20436F6E736F6C65202D0A45534367 +:100E30002F713A09717569740A6D3A096D6F75738E +:100E4000656B65790A000A092D204D616769632089 +:100E50002D0A643A0964656275670A783A0964651F +:100E6000627567206D61747269780A6B3A0964650E +:100E7000627567206B6579626F6172640A6D3A0909 +:100E80006465627567206D6F7573650A763A0976D9 +:100E9000657273696F6E0A733A097374617475735E +:100EA0000A633A09636F6E736F6C65206D6F6465DA +:100EB0000A302D343A096C61796572302D34284638 +:100EC00031302D4634290A506175733A09626F6FCB +:100ED000746C6F616465720A653A09656570726F5A +:100EE0006D0A6E3A094E4B524F0A7A3A09736C6595 +:100EF0006570204C454420746573740A000A00250F +:100F000075002E6E6B726F3A20000A002575002E58 +:100F1000737761705F6261636B736C6173685F624A +:100F200061636B73706163653A20000A0025750088 +:100F30002E737761705F67726176655F6573633A80 +:100F400020000A002575002E6E6F5F6775693A20D4 +:100F5000000A002575002E737761705F72616C74F2 +:100F60005F726775693A20000A002575002E737755 +:100F700061705F6C616C745F6C6775693A20000A20 +:100F8000002575002E636170736C6F636B5F746F07 +:100F90005F636F6E74726F6C3A20000A00257500F3 +:100FA0002E737761705F636F6E74726F6C5F6361D5 +:100FB00070736C6F636B3A20000A00253032580062 +:100FC0006B65796D61705F636F6E6669672E7261C4 +:100FD000773A20000A002575002E6D6F7573653A0B +:100FE00020000A002575002E6B6579626F617264BE +:100FF0003A20000A002575002E6D61747269783AF6 +:1010000020000A002575002E656E61626C653A202D +:10101000000A00253032580064656275675F636FAF +:101020006E6669672E7261773A20000A00257500A6 +:1010300064656661756C745F6C617965723A2000F5 +:101040003F004E4B524F3A206F66660A004E4B529D +:101050004F3A206F6E0A0074696D65725F636F7539 +:101060006E743A202530346C580A006B6579626FD3 +:101070006172645F6E6B726F3A2025580A006B656F +:1010800079626F6172645F69646C653A2025580A01 +:10109000006B6579626F6172645F70726F746F6309 +:1010A0006F6C3A2025580A00686F73745F6B65791E +:1010B000626F6172645F6C65647328293A202558F9 +:1010C0000A000A092D20537461747573202D0A00DB +:1010D0004743433A20342E382E31204156522D4C6E +:1010E0004942433A20312E382E3073766E204156D5 +:1010F000525F415243483A20617672350A004F50A0 +:1011000054494F4E533A204C55464120424F4F547C +:101110004D41474943204D4F5553454B4559204577 +:10112000585452414B455920434F4E534F4C452044 +:10113000434F4D4D414E44204E4B524F203531329E +:101140000A004255494C443A2065356638343035FA +:101150002D6469727479202831373A34363A33393C +:10116000204A616E2032332032303136290A00564F +:1011700049443A20307846454544284572676F44D3 +:101180006F7820455A29205049443A20307831332D +:101190003037284572676F446F7820455A292056AA +:1011A00045523A203078303030310A0044455343BC +:1011B0003A20742E6D2E6B2E206B6579626F6172F2 +:1011C00064206669726D7761726520666F72204572 +:1011D00072676F646F780A000A092D205665727372 +:1011E000696F6E202D0A000A6D6F7573653A206F66 +:1011F00066660A000A6D6F7573653A206F6E0A00A5 +:101200000A6B6579626F6172643A206F66660A00E4 +:101210000A6B6579626F6172643A206F6E0A000A28 +:101220006D61747269783A206F66660A000A6D61B2 +:10123000747269783A206F6E0A000A646562756795 +:101240003A206F6E0A000A64656275673A206F661D +:10125000660A000A0A626F6F746C6F616465722EB1 +:101260002E2E2000433E20006565636F6E66696721 +:101270003A0A00536C656570204C454420746573D0 +:10128000740A0000000000000000000000000102DD +:1012900004060A0F17202C3A4A5D71879DB3C7DAFE +:1012A000E9F5FCFFFCF5E9DAC7B39D87715D4A3AC1 +:1012B0002C20170F0A0604020100000000000000A5 +:1012C0000000000011241FBECFEFDAE0DEBFCDBF6B +:1012D00004B603FE24C08091F9019091FA01A09117 +:1012E000FB01B091FC018730904BA740B04BB9F4A3 +:1012F0001092F9011092FA011092FB011092FC0178 +:1013000014BE84B7877F84BF88E10FB6F8948093BA +:101310006000109260000FBEE0E0FFE3099511E06D +:10132000A0E0B1E0EAE2F0E602C005900D92AA3337 +:10133000B107D9F721E0AAE3B1E001C01D92A93FAE +:10134000B207E1F70E942E120C9413300C940000A7 +:10135000FF93EF93E0913A01F0913B01309709F050 +:101360000995EF91FF910895FC018591803011F06E +:10137000EFDFFBCF0895FF27E0E230E247FF0CC02C +:10138000419597FF09C0EDE2609570958095909525 +:10139000611D711D811D911D27FF02C0219530E344 +:1013A00050E2AA27660F771F881F991FAA1FA4174C +:1013B00010F0A41B63955A95A9F7AA3008F0A95F0D +:1013C000A05DAF93F395611571058105910541F716 +:1013D000ED3211F4EF93F395F21718F43F93F39570 +:1013E000FBCF8F91B5DFFA95E1F70895E991F99177 +:1013F0008591803021F0853219F0AADFF9CF089568 +:1014000020E0E89455915532C1F3503311F46894BB +:1014100055915A3348F4505390F3220F022E220F65 +:10142000220F200D250FF4CF0EF42195899199916B +:10143000533619F3533729F1533559F1BC01882735 +:101440009927E8945C3621F4899199916894559193 +:10145000543639F446EF7EF077FF0DC08FEF9FEFE3 +:101460000AC055374AE039F0583540E121F052368C +:1014700042E009F00895FF93EF937DDFEF91FF9134 +:10148000B7CFFF93EF93FC0181918030B9F360DF18 +:10149000FBCFFF93EF9368DFF1CFDF93CF93CDB70F +:1014A000DEB72596A3DFCF91DF910895FC0163306D +:1014B00019F1B8F46130D1F0623081F58091BC014E +:1014C0009091BD01A091BE01B091BF0123E0922790 +:1014D0008093BC019093BD01A093BE01B093BF0166 +:1014E0001DC0643079F0653099F018C0828188237E +:1014F000A9F08BEF90E008958281882379F082EF44 +:1015000090E008958281882349F089EE90E0089563 +:101510008281882319F080EE90E0089580E090E0C9 +:101520000895089556985E9825982D9826982E9897 +:1015300027982F988091BC019091BD01A091BE0188 +:10154000B091BF0190FF02C0259A2D9A8091C001F1 +:101550009091C101A091C201B091C3010297A10570 +:10156000B10511F4269A2E9A0E94721781FF02C0CB +:10157000279A2F9A089582E99AE0892B11F00E9408 +:10158000920A80E090E0089556985E9825982D98EC +:1015900026982E9827982F988FEF90E090938900A7 +:1015A0008093880090938B0080938A0090938D00A5 +:1015B00080938C00259A2D9A2FEF80E792E021509E +:1015C00080409040E1F700C00000269A2E9A2FEF4D +:1015D00080E792E0215080409040E1F700C0000099 +:1015E000279A2F9A2FEF80E792E021508040904079 +:1015F000E1F700C0000025982D982FEF80E792E0DA +:10160000215080409040E1F700C0000026982E98BD +:101610002FEF80E792E0215080409040E1F700C03A +:10162000000027982F9856985E9825982D98269810 +:101630002E9827982F98089589EA8093800089E052 +:101640008093810024982C983F988AB18F748AB92E +:101650006E98479A8BB1806B8BB9769A0E94C40AB8 +:1016600081E99AE0892B11F00E94910A80E090E0D4 +:10167000089580E28093000180913C0181110EC0A9 +:101680000E94880B81E080933C012FEF83ED90E373 +:10169000215080409040E1F700C0000080E40E94AB +:1016A0008E0B8093000181112EC00E94B80B809395 +:1016B0000001811128C00E94B80B809300018111A4 +:1016C00022C08FE30E94B80B8093000181111BC0E0 +:1016D0000E94B00B80E40E948E0B80930001811168 +:1016E00012C08CE00E94B80B8093000181110BC0E6 +:1016F0000E94B80B80930001811105C08FE30E9406 +:10170000B80B809300010E94B00B809100010895F6 +:101710001092B9008AE08093B800089594EA9093FB +:10172000BC009091BC0097FFFCCF9091B900987FCE +:10173000983021F0903111F081E008958093BB0042 +:1017400084E88093BC008091BC0087FFFCCF80912F +:10175000B900887F883111F0803471F780E00895F6 +:1017600084E98093BC008091BC0084FDFCCF089587 +:101770008093BB0084E88093BC008091BC0087FF0D +:10178000FCCF9091B900987F81E0983209F480E015 +:10179000089584E88093BC008091BC0087FFFCCF53 +:1017A0008091BB00089580910001811115C080E4F3 +:1017B0000E948E0B8093000181110CC082E10E9477 +:1017C000B80B80930001811105C08FEF0E94B80B08 +:1017D000809300010E94B00B84B1807F84B985B1F1 +:1017E000807F85B98AB1837F8AB98BB1837F8BB9BA +:1017F0003E98469808950E94390B809300010E94FC +:10180000D30B80B38C7080BB81B3836F81BBECE45E +:10181000F1E0AEE3B1E011921D9281E0EA35F80704 +:10182000D1F78CE19BE0892B11F00C941C0B0895EF +:101830009F92AF92BF92CF92DF92EF92FF920F935F +:101840001F93CF93DF93809100018823E1F0809173 +:101850003D018F5F80933D01811115C08CEF97E0B2 +:101860000E94B4090E94390B80930001882329F05B +:1018700082EE97E00E94B40906C08EEC97E00E94C9 +:10188000B4090E94C40A0EE311E0C0E0D0E0BB241A +:10189000B39482E0A82ECC24C394D12C2FEBE22E5B +:1018A00027E0F22EC73000F580910001811162C05F +:1018B00080E40E948E0B80930001811112C082E1AE +:1018C0000E94B80B8093000181110BC0C6010C2E41 +:1018D00001C0880F0A94EAF780950E94B80B8093A4 +:1018E00000010E94B00B46C0CA30A1F028F4C830F5 +:1018F00059F0C93061F005C0CC3089F070F0CD30BE +:1019000089F0209A289810C0219A29980DC0229A0F +:101910002A980AC0239A2B9807C0529A01C0539A5A +:101920005B9802C03E9A4698E0EAEA95F1F78FB1DB +:10193000799985C092E081708B25892B7C9B02C0B0 +:1019400090E001C094E0892B7D9B02C090E001C033 +:1019500098E0892B7E9B02C090E001C090E1892B2A +:101960009FB19095991F9927991F9295990F907EF5 +:10197000892B10C080910001811176C080E40E9403 +:101980008E0B80930001882309F45BC0912C0E9488 +:10199000B00B892DF8019081981739F180838091DF +:1019A0000101882301F18091D70180FF04C084ECFC +:1019B00097E00E94B4098091D70180FF0CC080910C +:1019C00001011F928F93FF92EF920E944D0A0F9098 +:1019D0000F900F900F908091D70180FF04C08DEB86 +:1019E00097E00E94B409A09201010E94D30B2196B6 +:1019F0000F5F1F4FCE30D10509F054CF8091010108 +:101A00008823B1F0815080930101882339F08FE958 +:101A10009FE00197F1F700C000000AC0ACE4B1E01C +:101A2000EEE3F1E081918D9391E0EC34F907D1F789 +:101A30008BEB9AE0892BD1F00E94BB0A17C090E093 +:101A40007ACF83E10E94B80B8093000181119ECF71 +:101A500081E40E948E0B80930001811197CF0E9438 +:101A6000C90B982E909493CF80E094CF81E0DF91C2 +:101A7000CF911F910F91FF90EF90DF90CF90BF908B +:101A8000AF909F900895E82FF0E0E45BFE4F8081D7 +:101A90000895CF92DF92EF92FF920F931F93CF930F +:101AA000DF9386EA97E00E94B4093CE4E32E31E03C +:101AB000F32EC0E0D0E041EAC42E47E0D42E08E97E +:101AC00017E0DF93CF93DF92CF920E944D0A8EE909 +:101AD00097E00E94B409F70181917F0190E00E9494 +:101AE000B7239F938F931F930F930E944D0A86E90C +:101AF00097E00E94B40921968DB79EB708960FB65D +:101B0000F8949EBF0FBE8DBFCE30D105D1F6DF91C8 +:101B1000CF911F910F91FF90EF90DF90CF9008959C +:101B20008B3B910578F4883A910540F5853A91050B +:101B3000D0F48430910508F0B1C08130910509F4EA +:101B4000ADC06BC0803E910508F467C0883E91052A +:101B500008F4A4C09C01205F31092031310508F050 +:101B60005CC090650895853A910509F459C0863A9C +:101B7000910509F458C083E890E40895883A9105E6 +:101B800009F454C0893A910509F453C08A3A910581 +:101B900009F452C08B3A910509F451C08C3A910571 +:101BA00009F450C08D3A910509F44FC0803B91056E +:101BB00009F44EC08E3A910509F44DC08F3A910553 +:101BC00009F44CC0813B910509F44BC0823B91055F +:101BD00009F44AC0833B910509F449C0843B91054F +:101BE00009F448C0853B910509F447C0863B91053F +:101BF00009F446C0873B910509F445C0883B91052F +:101C000009F444C0893B910509F443C08A3B91051E +:101C100009F042C08AE296E4089580E090E00895D9 +:101C200081E890E4089582E890E4089582EE94E4D7 +:101C3000089589EE94E408958AEE94E4089585EB7E +:101C400094E4089586EB94E4089587EB94E4089572 +:101C50008CEC94E408958DEC94E4089583E895E485 +:101C600008958AE895E4089582E995E4089584E961 +:101C700095E4089581E296E4089583E296E4089558 +:101C800084E296E4089585E296E4089586E296E477 +:101C9000089587E296E4089580E094E40895089515 +:101CA00096E0799FF001112494E5899FE00DF11DE4 +:101CB0001124E60FF11DEE0FFF1FEA5FFE4F859125 +:101CC00094910895880F991F8A579040FC0185913F +:101CD00094910895880F991F8A5F9E4FFC0185910A +:101CE0009491089526E0729FF001112444E5849FA9 +:101CF000E00DF11D1124E60FF11DEE0FFF1FEA5F4D +:101D0000FE4F25913491C9019A9581159F4110F498 +:101D1000C9010895C90190528115904128F4C90163 +:101D20009F700E946A0E0895C901905381159041D9 +:101D300020F4C9019927906C0895211580E5380792 +:101D400069F40E94351D9FEF24E34CE09150204040 +:101D50004040E1F700C000000C947324213080E57E +:101D6000380751F486E198E00E94B4098091D701C8 +:101D700081608093D7010895C901905581159041E4 +:101D800008F050C0832F99278F70992781309105D3 +:101D9000D9F4A9014370552702C0880F991F4A95AD +:101DA000E2F79C68A90164E0440F551F6A95E1F7CA +:101DB00044275370842B952B73E0220F331F7A95A1 +:101DC000E1F7207633271DC08230910529F4922F48 +:101DD0008827816F906A089583309105A9F4A9013D +:101DE0004370552781E090E002C0880F991F4A9503 +:101DF000E2F79C6843E0220F331F4A95E1F7207E0B +:101E00003770822B932B08950497F1F4A901437046 +:101E1000552781E090E002C0880F991F4A95E2F7AC +:101E20009A68E8CFC90190578115904120F4C90103 +:101E30009F7090620895C90190588115904120F4D7 +:101E4000C9019F70906A0895203E3105E0F4203C5E +:101E5000310558F52133310509F470C048F42932B1 +:101E6000310509F464C02A32310509F46EC074C02A +:101E700029333105F1F022383105D9F02533310508 +:101E800009F44EC069C0233E310589F138F4203E83 +:101E90003105C1F0223E3105E1F05EC0263E31053C +:101EA00069F1273E3105A9F157C0C9010E94620EB0 +:101EB00008958091EA0180FD02C081FF4DC080EE4F +:101EC00090E04BC08091EA0180FFF9CF89E390E078 +:101ED00044C08091EA0182FF0EC08091EA0184FF34 +:101EE00003C080E090E039C083EE90E036C080917E +:101EF000EA0182FFF2CF82EE90E02FC08091EA01EA +:101F000083FF0BC08091EA0184FDEBCF87EE90E068 +:101F100024C08091EA0183FFF5CF86EE90E01DC0DA +:101F20008091EA0185FF07C089E290E016C08091A8 +:101F3000EA0185FFF9CF85E390E00FC08091EA01C7 +:101F400086FF07C08AE290E008C08091EA0186FF20 +:101F5000F9CF81E390E001C0C9010E94900D08957E +:101F6000089580916D0108959FB7F89410925C01D7 +:101F70009FBF9091F001943009F058C09091E90012 +:101F80009F702091EC0020FF02C020E801C020E0FB +:101F9000292B94E09093E9009091EB0090FF43C0CF +:101FA0009091EE0097FF3FC090915A01992321F044 +:101FB0009091E80095FF37C010925A0196E0309159 +:101FC000E80035FD15C03091F001343061F53091F5 +:101FD000EB0035FD28C0915021F481E080935A0137 +:101FE00022C0EFE9FFE03197F1F700C00000E7CF32 +:101FF0008093F1008091E80085FD0AC08091E8009F +:1020000080FFFCCF8091E8008E778093E80006C0C7 +:102010008FB7F89491E090935C018FBF2F7020935D +:10202000E90080E008952F702093E9008FEF089574 +:10203000CF93DF9300D01F92CDB7DEB72091F00190 +:10204000243019F523E029839B838A832093E900B8 +:102050008FEF9091E800815095FD06C095ED9A951F +:10206000F1F700008111F5CF8091E80085FF0DC0E8 +:1020700040E050E063E070E0CE0101960E94E7127C +:102080008091E8008E778093E8000F900F900F907A +:10209000DF91CF910895CF93DF9300D01F92CDB7FA +:1020A000DEB72091F001243021F522E029839B83C3 +:1020B0008A8383E08093E9008FEF9091E80081505C +:1020C00095FD06C095ED9A95F1F700008111F5CFC9 +:1020D0008091E80085FF0DC040E050E063E070E0D3 +:1020E000CE0101960E94E7128091E8008E778093DE +:1020F000E8000F900F900F90DF91CF9108952091FD +:10210000F0012430F1F422E02093E9002FEF309128 +:10211000E800215035FD06C035ED3A95F1F7000095 +:102120002111F5CF2091E80025FF0BC040E050E0E1 +:1021300065E070E00E94E7128091E8008E7780935E +:10214000E8000895CF93DF93EC018091F001843093 +:1021500009F047C080910C018823E1F080910D01C6 +:102160008823C1F085E08093E9008FEF9091E8002B +:10217000815095FD06C095E19A95F1F70000811117 +:10218000F5CF8091E80085FF2CC040E050E060E191 +:1021900070E017C081E08093E9008FEF9091E80034 +:1021A000815095FD06C095ED9A95F1F700008111DB +:1021B000F5CF8091E80085FF14C040E050E068E072 +:1021C00070E0CE010E94E7128091E8008E77809344 +:1021D000E80080E1FE01ADE5B1E001900D928A9545 +:1021E000E1F7DF91CF9108958DE498E00E94B40962 +:1021F0008091EF01811109C00E9479140E94D614C8 +:102200008091E20084608093E200089589E498E080 +:102210000E94B4091092EF01089585E498E00C94AF +:10222000B40981E498E00E94B4090C94342E8DE343 +:1022300098E00E94B4090E940E240E943A2E0E9447 +:1022400072170C94B00F80915B018F5F80935B01DC +:1022500062E30E94A82F911135C010925B0180911A +:102260005C01882379F18091F001843049F58091F7 +:10227000E9008F709091EC0090FF02C090E801C0DF +:1022800090E0982B84E08093E9008091EB0080FF40 +:1022900014C08091EE0087FF10C08091E80085FF98 +:1022A00003C01092F100F9CF8091E80080FF05C0D3 +:1022B0008091E8008E778093E8009F709093E9000A +:1022C00010925C01089542E061EC81E00E94F313FA +:1022D00042E061EC82E00E94F31342E061EC83E0B3 +:1022E0000E94F31342E261EC84E00E94F31342E1A6 +:1022F00061EC85E00C94F3138091F201833009F4D2 +:1023000055C030F4813071F0823009F48EC00895E8 +:102310008A3009F47AC08B3009F460C0893009F042 +:102320009CC020C08091F101813A09F096C0809153 +:10233000E800877F8093E8008091F5019091F60195 +:10234000892B21F060E080E090E003C060E18DE542 +:1023500091E070E00E9430138091E8008B778093C9 +:10236000E80008958091F101813209F076C08091F2 +:10237000F5019091F601009719F0049709F06DC0EE +:102380008091E800877F8093E8008091E80082FDDB +:1023900005C08091F0018111F8CF5FC08091F100FC +:1023A00080936D018091E8008B7753C08091F1019B +:1023B000813A09F052C08091F5019091F601892B84 +:1023C00009F04BC08091E800877F8093E8008091FE +:1023D000E80080FFFCCF80910C0136C08091F101B4 +:1023E0008132D9F58091F5019091F601892BA9F5FB +:1023F0008091E800877F8093E8000E9428148091F4 +:10240000F30180930C010C94351D8091F101813210 +:1024100021F58091E800877F8093E8000E942814CE +:102420008091F40180936E0108958091F101813AC9 +:10243000A1F48091E800877F8093E8008091E80014 +:1024400080FFFCCF80916E018093F1008091E800C5 +:102450008E778093E8000C942814089584B7877FC2 +:1024600084BF88E10FB6F8948093600010926000FA +:102470000FBE90E080E80FB6F894809361009093CF +:1024800061000FBE0E94FB170E9479140E94D614AF +:102490008091E20084608093E20084EB9FE00E94E0 +:1024A000A02378940E9450170E94FD1782E091E0CB +:1024B0000E946D170E94222E8CE298E00E94B409BF +:1024C0008091F001853089F488E298E00E94B40997 +:1024D0000E94D1238091EE01882391F30E94F92379 +:1024E000882371F30E94D112EBCF0E942B18E8CF02 +:1024F000292F332723303105A9F06CF42130310521 +:1025000009F442C02230310509F043C08DE890E063 +:1025100025E838E042C021323105C9F022323105C8 +:1025200019F137C099278130910541F0823091052A +:1025300041F0892B71F5E1E8F8E005C0E9E6F8E043 +:1025400002C0E1E5F8E0849190E09F0126C065308B +:1025500000F5E62FF0E0EE0FFF1FEB5DFE4F208150 +:10256000318189E090E019C0653098F4E62FF0E001 +:10257000DF01AA0FBB1FA55EBE4F2D913C91EA5E05 +:10258000FE4F808190E009C082E190E022E139E0D5 +:1025900004C080E090E020E030E0FA013183208345 +:1025A000089580E189BD82E189BD09B400FEFDCFB7 +:1025B0008091D8008F7D8093D8008091E000826068 +:1025C0008093E0008091E00081FDFCCF0895CF92E0 +:1025D000DF92EF92FF920F931F93CF93DF937C01D3 +:1025E0008B01EA010E944914811131C0209731F01A +:1025F00088819981081B190BE80EF91EC12CD12C7A +:102600000115110519F18091E80085FD14C0809134 +:10261000E8008E778093E800209741F088819981C7 +:102620008C0D9D1D9983888385E011C00E944914FB +:10263000882331F30CC0F70181917F018093F10071 +:1026400001501109FFEFCF1ADF0ADACF80E0DF91E6 +:10265000CF911F910F91FF90EF90DF90CF90089551 +:102660002091F7013091F8012617370748F06115DE +:10267000710539F42091E8002E772093E80001C01D +:10268000B901FC0120E061157105B9F18091F001FB +:10269000882309F440C0853009F43FC08091E800E8 +:1026A00083FD3DC08091E80082FF06C08091E80074 +:1026B00082FF26C080E008958091E80080FFE3CF8C +:1026C0002091F3008091F20090E0922B611571054A +:1026D00051F08830910538F421912093F100615038 +:1026E00071090196F3CF21E0089709F020E080916D +:1026F000E8008E778093E800C6CF2111C7CFD6CFF0 +:102700008091F001882339F0853039F08091E8001C +:1027100083FFCCCF04C082E0089583E0089581E078 +:1027200008952091F7013091F8012617370748F0F6 +:102730006115710539F42091E8002E772093E800A7 +:1027400001C0B901FC0120E061157105C1F1809162 +:10275000F001882309F441C0853009F440C080911C +:10276000E80083FD3EC08091E80082FF06C08091B2 +:10277000E80082FF27C080E008958091E80080FF94 +:10278000E3CF2091F3008091F20090E0922B61154D +:10279000710559F08830910540F424912093F1009F +:1027A0003196615071090196F2CF21E0089709F046 +:1027B00020E08091E8008E778093E800C5CF21115A +:1027C000C6CFD5CF8091F001882339F0853039F01C +:1027D0008091E80083FFCBCF04C082E0089583E0BE +:1027E000089581E00895982F973058F59093E90067 +:1027F000981739F07091EC002091ED005091F000A5 +:1028000003C0242F762F50E021FF19C03091EB0038 +:102810003E7F3093EB003091ED003D7F3093ED0033 +:102820003091EB0031603093EB007093EC0020931B +:10283000ED005093F0002091EE0027FF07C09F5F4E +:10284000D3CF8F708093E90081E0089580E00895F0 +:102850008091F10187FD05C08091E80080FF0EC0E6 +:1028600012C08091E80082FD05C08091F0018111C5 +:10287000F8CF08958091E8008B7708C08091F0012F +:102880008111EACF08958091E8008E778093E80067 +:1028900008958091E4009091E50045E62091EC00D8 +:1028A00020FF21C02091E80020FD21C02091F001EF +:1028B000222389F0253089F02091EB0025FD0FC0FF +:1028C0002091E4003091E5002817390739F3415091 +:1028D00041F0C901E3CF82E0089583E0089581E0EB +:1028E000089584E008952091E80022FFDFCF80E082 +:1028F00008950E94E7140E94EF14E0EEF0E080815A +:1029000081608083E8EDF0E080818F77808319BC5F +:10291000A7EDB0E08C918E7F8C9380818F7E808339 +:102920001092EF0108950F931F93CF93DF930E94AE +:10293000E7140E94EF14C8EDD0E088818F77888378 +:1029400088818068888388818F7D888319BC1092F4 +:10295000F0011092EC011092EE011092ED0100EEE8 +:1029600010E0F80180818B7F80838881816088837B +:1029700042E060E080E00E94F313E1EEF0E080814D +:102980008E7F8083E2EEF0E08081816080838081B1 +:1029900088608083F80180818E7F80838881806158 +:1029A0008883DF91CF911F910F910895E8EDF0E0BA +:1029B00080818F7E8083E7EDF0E08081816080837D +:1029C00084E082BF81E08093EF010C949314E8EDE2 +:1029D000F0E080818E7F80831092E2000895109253 +:1029E000DA001092E10008951F920F920FB60F9235 +:1029F00011242F933F934F935F936F937F938F9304 +:102A00009F93AF93BF93EF93FF938091E10082FF79 +:102A10000BC08091E20082FF07C08091E1008B7FB4 +:102A20008093E1000E9423118091DA0080FF1FC093 +:102A30008091D80080FF1BC08091DA008E7F809348 +:102A4000DA008091D90080FF0DC080E189BD82E16C +:102A500089BD09B400FEFDCF81E08093F0010E94A2 +:102A6000F41005C019BC1092F0010E94061180916B +:102A7000E10080FF19C08091E20080FF15C08091C5 +:102A8000E2008E7F8093E2008091E200806180937B +:102A9000E2008091D80080628093D80019BC85E064 +:102AA0008093F0010E9411118091E10084FF30C0F9 +:102AB0008091E20084FF2CC080E189BD82E189BD64 +:102AC00009B400FEFDCF8091D8008F7D8093D8009F +:102AD0008091E1008F7E8093E1008091E2008F7E03 +:102AE0008093E2008091E20081608093E200809117 +:102AF000EC01882311F084E007C08091E30087FF98 +:102B000002C083E001C081E08093F0010E941711B0 +:102B10008091E10083FF29C08091E20083FF25C0FE +:102B20008091E100877F8093E10082E08093F00153 +:102B30001092EC018091E1008E7F8093E100809102 +:102B4000E2008E7F8093E2008091E20080618093BA +:102B5000E20042E060E080E00E94F3138091F00028 +:102B600088608093F0000E940D11FF91EF91BF915A +:102B7000AF919F918F917F916F915F914F913F9115 +:102B80002F910F900FBE0F901F9018951F920F92CC +:102B90000FB60F9211242F933F934F935F936F9330 +:102BA0007F938F939F93AF93BF93CF93EF93FF93B5 +:102BB000C091E900CF708091EC001092E900809103 +:102BC000F000877F8093F00078940E9402161092A4 +:102BD000E9008091F00088608093F000C093E900E4 +:102BE000FF91EF91CF91BF91AF919F918F917F9185 +:102BF0006F915F914F913F912F910F900FBE0F906A +:102C00001F9018951F93CF93DF93CDB7DEB7AA9788 +:102C10000FB6F894DEBF0FBECDBFE1EFF1E08091BB +:102C2000F100819321E0E93FF207C9F70E947C118E +:102C30008091E80083FF1CC12091F1013091F201E5 +:102C4000832F90E08A30910508F012C1FC01EA5A06 +:102C5000FF4F0C94C82F203881F0223809F008C1AA +:102C60008091F5018F708093E9008091EB0085FBE6 +:102C7000882780F91092E90006C08091ED019091BB +:102C8000EE01911182609091E800977F9093E800A7 +:102C90008093F1001092F100C5C0822F8D7F09F062 +:102CA000E7C0222319F0223061F0E2C08091F301E5 +:102CB000813009F0DDC0333009F080E08093EE010F +:102CC00028C08091F301811124C02091F5012F705B +:102CD00009F4CEC02093E9008091EB0080FF19C079 +:102CE0008091EB00333011F4806211C080618093D9 +:102CF000EB0081E090E0022E01C0880F0A94EAF711 +:102D00008093EA001092EA008091EB008860809343 +:102D1000EB001092E9008091E800877F86C02111C6 +:102D2000A7C01091F3011F778091E3008078812B79 +:102D30008093E3008091E800877F8093E8000E9401 +:102D400028148091E80080FFFCCF8091E300806828 +:102D50008093E300112311F083E001C082E08093AF +:102D6000F00186C02058223008F082C08091F30123 +:102D70009091F4018C3D23E0920779F583E08A83FA +:102D80008AE289834FB7F894DE01139620E03EE093 +:102D900051E2E32FF0E050935700E49120FF03C08D +:102DA000E295EF703F5FEF708E2F90E0EA3010F009 +:102DB000C79601C0C0968D939D932F5F243149F72C +:102DC0004FBF8091E800877F8093E8006AE270E05F +:102DD000CE0101960E94301314C0AE014F5F5F4FC9 +:102DE0006091F5010E947812009709F441C020918A +:102DF000E800277F2093E800BC0189819A810E9426 +:102E000091138091E8008B778093E80031C02038DF +:102E100079F58091E800877F8093E8008091EC014C +:102E20008093F1008091E8008E778093E8000E9403 +:102E300028141EC021111CC09091F3019230C0F4DF +:102E40008091E800877F8093E8009093EC010E94D6 +:102E500028148091EC01811104C08091E30087FF68 +:102E600002C084E001C081E08093F0010E94631100 +:102E70008091E80083FF0AC08091E800877F8093FB +:102E8000E8008091EB0080628093EB00AA960FB679 +:102E9000F894DEBF0FBECDBFDF91CF911F91089593 +:102EA000CF938091F0018823B1F08091E9008F7079 +:102EB0009091EC0090FF02C090E801C090E0C92F13 +:102EC000C82B1092E9008091E80083FD0E94021651 +:102ED000CF70C093E900CF910895909374018093CF +:102EE00073010895E0917301F0917401309721F01E +:102EF0000190F081E02D099480E00895FF920F93F6 +:102F00001F93CF93DF938C01E0917301F0917401D3 +:102F1000309799F10280F381E02D09958091D701D6 +:102F200082FF2BC080FF04C087E49AE00E94B409AE +:102F3000E80180E1F82E01E41AE08091D70180FFDA +:102F40000BC088811F928F931F930F930E944D0A8D +:102F50000F900F900F900F90FA942196F110EDCFF3 +:102F60008091D70180FF09C08FE39AE0DF91CF9174 +:102F70001F910F91FF900C94B409DF91CF911F9195 +:102F80000F91FF900895E0917301F09174013097D3 +:102F900021F00480F581E02D0994089520917101BC +:102FA000309172018217930771F0909372018093B0 +:102FB0007101E0917301F0917401309721F0068066 +:102FC000F781E02D0994089520916F0130917001EF +:102FD0008217930771F09093700180936F01E091D5 +:102FE0007301F0917401309721F00084F185E02D98 +:102FF0000994089508950C94FA170E9410240E94D1 +:10300000FB0B0C94D624CF93C82F8091D70182FF5D +:103010001EC080FF04C080E69AE00E94B40980913F +:10302000D70180FF0CC01F92CF932BE53AE03F936E +:103030002F930E944D0A0F900F900F900F90809148 +:10304000D70180FF04C089E59AE00E94B4098C2F63 +:10305000CF910C94B00FCF92DF92EF92FF920F932B +:103060001F93CF93DF93CDB7DEB72B970FB6F894AE +:10307000DEBF0FBECDBF0E94180C36E7E32E31E055 +:10308000F32E00E010E0C02E802F0E94430DF701C8 +:10309000D1907F01D826B1F40F5F1F4F0E3011057C +:1030A00091F78FEF89838A831B820E9419248160A4 +:1030B000782F9D838C8349815A816B818D810E94F9 +:1030C000CE1841C09091D70191FF04C08B870E9418 +:1030D000490D8B8520E030E04D2D50E0922FBA0154 +:1030E000022E02C0759567950A94E2F760FF25C02D +:1030F0002E83CF82EE24E394F12C02C0EE0CFF1C51 +:103100009A95E2F790E08E219F2121E0892B09F426 +:1031100020E028870E9419248160782F9A87898768 +:103120004E815F8168858A850E94CE18F801EA5831 +:10313000FE4F80818E25808306C02F5F3F4F263053 +:10314000310561F6A9CF0E944428109175010E94B3 +:1031500072171817A1F00E947217809375012B96B1 +:103160000FB6F894DEBF0FBECDBFDF91CF911F9198 +:103170000F91FF90EF90DF90CF900C9403182B9657 +:103180000FB6F894DEBF0FBECDBFDF91CF911F9178 +:103190000F91FF90EF90DF90CF900895CF93DF9342 +:1031A000CDB7DEB72B970FB6F894DEBF0FBECDBFFD +:1031B0004F83588769877A878B87DE01119686E06F +:1031C000FD0111928A95E9F785E0FE01379601909D +:1031D0000D928A95E1F749815A816B817C818D81BD +:1031E0009E810E9401202B960FB6F894DEBF0FBE81 +:1031F000CDBFDF91CF910895CF93C82F882309F4D5 +:10320000C1C0823859F40E94721781FDBBC089E3A6 +:103210000E949E220E947A2389E30CC0833879F4AD +:103220000E94721780FDAEC083E50E949E220E941C +:103230007A2383E50E94EF22CF910C947A2384387D +:1032400059F40E94721782FD9DC087E40E949E225D +:103250000E947A2387E4EECF8CEF8C0F813A48F4FA +:103260008C2F0E94CD2C81118DC08C2F0E949E220C +:10327000E3CF80E28C0F883048F4C77081E001C052 +:10328000880FCA95EAF70E944123D6CF8BE58C0FB1 +:10329000833078F4C53A29F0C63A31F482E890E0F8 +:1032A00005C081E890E002C083E890E0CF910C94E3 +:1032B000CE1788E58C0F833108F064C0C83A39F125 +:1032C000C93A41F1CA3A49F1CB3A51F1CC3A59F1F4 +:1032D000CD3A61F1C03B69F1CE3A71F1CF3A79F163 +:1032E000C13B81F1C23B89F1C33B91F1C43B99F1F0 +:1032F000C53BA1F1C63BA9F1C73BB1F1C83BB9F150 +:10330000C93BC1F1CA3BC9F58AE292E038C082EEFE +:1033100090E035C089EE90E032C08AEE90E02FC098 +:1033200085EB90E02CC086EB90E029C087EB90E025 +:1033300026C08CEC90E023C08DEC90E020C083E8A8 +:1033400091E01DC08AE891E01AC082E991E017C0BF +:1033500084E991E014C081E292E011C083E292E03E +:103360000EC084E292E00BC085E292E008C086E2E3 +:1033700092E005C087E292E002C080E090E0CF9149 +:103380000C94E417CF910895882309F44BC0823838 +:1033900059F40E94721781FF45C089E30E949E2262 +:1033A0000E947A2389E30CC0833871F40E9472175B +:1033B00080FF38C083E50E949E220E947A2383E525 +:1033C0000E94EF220C947A23843859F40E947217D9 +:1033D00082FF28C087E40E949E220E947A2387E40D +:1033E000EFCF9CEF980F913A58F390E2980F9830F6 +:1033F00050F4877091E001C0990F8A95EAF7892F00 +:103400000E944723DFCF9BE5980F933020F480E0A4 +:1034100090E00C94CE17885A833120F480E090E03D +:103420000C94E4170895882321F00E9441230C9402 +:103430007A230895882321F00E9447230C947A234D +:103440000895CF92DF92EF92FF920F931F93CF9345 +:10345000DF93CDB7DEB728970FB6F894DEBF0FBE67 +:10346000CDBF8C0185E0F801DE01119601900D922F +:103470008A95E1F7F80140813181F280258122951A +:103480002F7083819481892B31F03F3F31F481E0AB +:103490004F3F19F403C081E001C080E080FDC4C249 +:1034A00049833A8389819A812F830E945C229E837B +:1034B00088870E945B220E942E214E81E42FE29594 +:1034C000EF70F0E0E05AFF4F2F8168850C94C82F11 +:1034D000842F807F142F1F70882311F01295107F86 +:1034E000FF2059F0112309F454C2812F68870E94EC +:1034F00051230E947A2368854CC2862F0E94C419EA +:10350000112309F491C2812F0E94572328960FB6E8 +:10351000F894DEBF0FBECDBFDF91CF911F910F9109 +:10352000FF90EF90DF90CF900C947A23342F307F70 +:10353000842F8F70303211F08295807F662319F0CE +:10354000613019F12BC0FF20B1F0222309F493C19F +:10355000213009F090C128960FB6F894DEBF0FBE57 +:10356000CDBFDF91CF911F910F91FF90EF90DF9032 +:10357000CF900C946123222319F0213009F454C216 +:103580008E830E9464238E8189C1FF2021F0223026 +:1035900008F04AC270C1211147C280C1FF2021F04A +:1035A000222309F468C1F5C1222309F477C105C2B9 +:1035B000242F26952695237030E02115310521F022 +:1035C00021303105C9F030C2FF2021F0862F942F21 +:1035D000937002C080E090E028960FB6F894DEBFAA +:1035E0000FBECDBFDF91CF911F910F91FF90EF9054 +:1035F000DF90CF900C94CE17FF2021F0862F942FD0 +:10360000937002C080E090E028960FB6F894DEBF79 +:103610000FBECDBFDF91CF911F910F91FF90EF9023 +:10362000DF90CF900C94E417862FFF2019F00E94B2 +:10363000CA2602C00E94322728960FB6F894DEBF31 +:103640000FBECDBFDF91CF911F910F91FF90EF90F3 +:10365000DF90CF900C94B727842F837009F076C049 +:10366000F110E2C1262F229526952770220F220FF6 +:10367000862F8F70C82ED12CE12CF12C022E04C085 +:10368000CC0CDD1CEE1CFF1C0A94D2F764FF10C0AA +:103690006FE070E080E090E004C0660F771F881F45 +:1036A000991F2A95D2F7609570958095909503C0E3 +:1036B00060E070E0CB01242F269526952370422FE1 +:1036C00050E042305105D1F04330510559F16C2999 +:1036D0007D298E299F294130510541F128960FB649 +:1036E000F894DEBF0FBECDBFDF91CF911F910F9138 +:1036F000FF90EF90DF90CF900C9453216C297D299F +:103700008E299F2928960FB6F894DEBF0FBECDBF35 +:10371000DF91CF911F910F91FF90EF90DF90CF90AD +:103720000C946D210E945321C701B60128960FB653 +:10373000F894DEBF0FBECDBFDF91CF911F910F91E7 +:10374000FF90EF90DF90CF900C943921FF2019F07B +:10375000842F817001C08695882309F465C1262FC6 +:10376000229526952770220F220F862F8F70C82E44 +:10377000D12CE12CF12C022E04C0CC0CDD1CEE1C53 +:10378000FF1C0A94D2F764FF10C06FE070E080E085 +:1037900090E004C0660F771F881F991F2A95D2F703 +:1037A000609570958095909503C060E070E0CB01C6 +:1037B000242F269526952370422F50E04230510544 +:1037C000D1F04330510559F16C297D298E299F296B +:1037D0004130510541F128960FB6F894DEBF0FBE77 +:1037E000CDBFDF91CF911F910F91FF90EF90DF90B0 +:1037F000CF900C9427226C297D298E299F29289609 +:103800000FB6F894DEBF0FBECDBFDF91CF911F91F1 +:103810000F91FF90EF90DF90CF900C9441220E9487 +:103820002722C701B60128960FB6F894DEBF0FBE57 +:10383000CDBFDF91CF911F910F91FF90EF90DF905F +:10384000CF900C940D22603FC9F118F4603E50F403 +:103850009BC0623F09F460C008F44AC0633F09F4AA +:103860006FC092C0162F1F70842F8F71FF2099F0A8 +:103870000E94A621812F28960FB6F894DEBF0FBEB6 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF900C94131A0E94C721812F28960FB63F +:1038A000F894DEBF0FBECDBFDF91CF911F910F9176 +:1038B000FF90EF90DF90CF900C941A1AFF20A1F0A8 +:1038C0002111B2C0842F8F7128960FB6F894DEBFF5 +:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 +:1038E000DF90CF900C94EC21223008F09DC0EACFFD +:1038F000FF20A1F0842F8F7128960FB6F894DEBFB9 +:103900000FBECDBFDF91CF911F910F91FF90EF9030 +:10391000DF90CF900C94A621FF2061F3842F8F714C +:1039200028960FB6F894DEBF0FBECDBFDF91CF91C2 +:103930001F910F91FF90EF90DF90CF900C94C721D3 +:10394000FF2091F0842F8F7128960FB6F894DEBF78 +:103950000FBECDBFDF91CF911F910F91FF90EF90E0 +:10396000DF90CF900C94912128960FB6F894DEBF8B +:103970000FBECDBFDF91CF911F910F91FF90EF90C0 +:10398000DF90CF900C948721FF20A1F0222309F42F +:10399000B1CF862F28960FB6F894DEBF0FBECDBFED +:1039A000DF91CF911F910F91FF90EF90DF90CF901B +:1039B0000C94FC18222309F4B1CF862F28960FB659 +:1039C000F894DEBF0FBECDBFDF91CF911F910F9155 +:1039D000FF90EF90DF90CF900C94C4194F70C80106 +:1039E0000E94560A28960FB6F894DEBF0FBECDBFD0 +:1039F000DF91CF911F910F91FF90EF90DF90CF90CB +:103A00000C94AE204F70C80128960FB6F894DEBF14 +:103A10000FBECDBFDF91CF911F910F91FF90EF901F +:103A2000DF90CF900C944F0E28960FB6F894DEBF1F +:103A30000FBECDBFDF91CF911F910F91FF90EF90FF +:103A4000DF90CF9008950E945E230E9433230E944E +:103A50007A230E94E5280E94B72780E090E00E9428 +:103A6000CE1780E090E00C94E4170E944E230C9453 +:103A7000231D0E945C22292F22952F7030E02C30CC +:103A800031054CF42A3031056CF4225031092230D2 +:103A9000310590F407C02C30310551F02F3031053D +:103AA00039F00AC0803E10F0803F31F481E0089583 +:103AB00093FB882780F9089580E00895CF93DF93E2 +:103AC00000D000D01F92CDB7DEB70F900F900F90AF +:103AD0000F900F90DF91CF910895CF93DF9300D097 +:103AE00000D000D0CDB7DEB726960FB6F894DEBF73 +:103AF0000FBECDBFDF91CF9108951F93CF93DF937A +:103B0000C091840116E080918501C81799F0D0E03A +:103B10001C9FF0011D9FF00D1124EA57FE4F4081BC +:103B2000518162817381848195810E946D1D2196EE +:103B3000C770E9CFDF91CF911F9108954091B601F1 +:103B40005091B7016091B8017091B9018091BA01AB +:103B50009091BB010C946D1DCF938091BB01829518 +:103B60008F7009F05FC08091B801882309F45AC0B2 +:103B700020918401A09185016091B6017091B701F7 +:103B80008091B9019091BA0131E06F3F09F030E0C6 +:103B9000B32FC6E02A1709F445C0009721F07F3FF4 +:103BA00021F44B2F03C041E001C040E030E040FD74 +:103BB00035C0C29FF001C39FF00D1124EA57FE4F9C +:103BC000418174132BC04081641328C0428141118C +:103BD00025C0438154814817590710F441505109B9 +:103BE000481B590B483C5105C8F48091BB018F70AC +:103BF00080618093BB0186E0829FF001839FF00D7E +:103C00001124E557FE4F80818F708061808386EBA1 +:103C100091E00E94211ACF910C947D1D2F5F3F4FA0 +:103C20002770B8CFCF910895CF92DF92EF92FF9295 +:103C30000F931F93CF93DF93CDB7DEB762970FB685 +:103C4000F894DEBF0FBECDBF8C0185E0F801DE0128 +:103C50001D9601900D928A95E1F7D8014C9111962D +:103C60005C91119712966C9112971396ED90FC90BF +:103C700014977091B601E091B7012091B90130918C +:103C8000BA012115310531F0EF3F31F481E07F3F7A +:103C900019F403C081E001C080E0B82FB170CB2ED1 +:103CA00080FD6CC1D090B801DD2009F4F5C0F09121 +:103CB000BB01E216F30638F0C701821B930B883C68 +:103CC000910548F09BC0209530952E0D3F1D283C56 +:103CD000310508F093C08F2F807F09F052C0E513A3 +:103CE00014C0741312C0D62E61110FC0FF70F061A2 +:103CF000F093BB010E949E1D86EB91E00E94211A69 +:103D00008091BB01F80185836CC1EF2831F05F3FE2 +:103D100031F481E04F3F19F403C081E001C080E03D +:103D200080FD03C081E0862701C080E0F82FF1709C +:103D3000FF2E80FF1CC0809184012091850136E018 +:103D4000821709F428C190E0389FF001399FF00DE7 +:103D50001124EA57FE4F7181571306C07081471333 +:103D600003C07281671303C001968770E9CFD62E16 +:103D7000662309F436C18091BB0181608093BB0149 +:103D800053C0E51308C0741306C0611104C0D80104 +:103D90001596FC93AEC04D875E878D859E856A8B98 +:103DA0000E94391D6A89882329F1D62E662311F1D4 +:103DB0002091BB01822F82958F7090E002970CF4C6 +:103DC00060C08091B6019091B70198878F83198662 +:103DD000FB86EA862C87CE01079651C0E51731F1A4 +:103DE0004D875E878D859E856A8B0E94391D6A8905 +:103DF00081112EC0C8010E94211AA4C08F2F807F7C +:103E000069F77E2DF98AE88A89890E945E1D86EB12 +:103E100091E00E94211AE6EBF1E086E0DF011D92BD +:103E20008A95E9F70E949E1DD12CDBC07413D8CF70 +:103E30006111D6CFD8011596FC93C8010E94211AB2 +:103E4000E6EBF1E086E0DF011D928A95E9F7C9C053 +:103E5000D62E662379F22091BB01822F82958F7036 +:103E600090E0029774F08091B6019091B7019A8327 +:103E700089831B82FD82EC822E83CE0101960E94F3 +:103E8000211A86E0F801A6EBB1E001900D928A9527 +:103E9000E1F70E94AC1D6FC0E216F30628F0C701DF +:103EA000821B930B9C0104C0209530952E0D3F1D65 +:103EB000283C310508F052C0D62E662309F49ACF6B +:103EC000E5132CC074132AC08091BB0180FD1DC076 +:103ED000982F92959F70C9F0D80115968C931597DD +:103EE0009F3039F09F5F9295907F8F70892B159648 +:103EF0008C93C8010E94211A86E0F801A6EBB1E07C +:103F000001900D928A95E1F736C086E0F801A6EBA4 +:103F1000B1E001900D928A95E1F763C04D875E870D +:103F20008D859E850E94391D882379F086E0F801F1 +:103F3000A6EBB1E001900D928A95E1F70E94AC1DCD +:103F40000E949E1DDD24D3944CC08091BB018160F2 +:103F50008093BB01C8010E94211A43C07E2DF98ABB +:103F6000E88A89890E945E1DE6EBF1E086E0DF01C8 +:103F70001D928A95E9F70E949E1D33C0662309F4BD +:103F800039CF4D875E878D859E850E94391D882398 +:103F900009F430CFCBCF4D875E878D859E850E94FB +:103FA0005C22292F22952F7030E0223031052CF42D +:103FB0009F7041F0811106C00CC0243031052CF4F3 +:103FC0009F7049F4805E883020F0C8010E94211A59 +:103FD000CF2CDC2C06C0D80115969C91907F91F7D0 +:103FE000F8CF8D2D62960FB6F894DEBF0FBECDBF11 +:103FF000DF91CF911F910F91FF90EF90DF90CF90C5 +:1040000008951F93CF93DF93CDB7DEB72C970FB6EC +:10401000F894DEBF0FBECDBF4F83588769877A877C +:104020008B879C87CE0107960E94141E8823C1F0BF +:104030002F8138858A859B85892B31F03F3F11F090 +:1040400080E003C02F3FE1F781E0811147C04F813D +:10405000588569857A858B859C850E946D1D3EC03B +:1040600086E0FE013796DE01119601900D928A9549 +:10407000E1F7FF81E8854A855B854115510531F0FF +:10408000EF3F31F481E0FF3F19F403C081E001C04C +:1040900080E080FD23C02091850130E0C9010196B8 +:1040A000877099276091840170E086179707F1F176 +:1040B000F983EA835D834C8396E0929FD001939FBE +:1040C000B00D1124AA57BE4FFE01319601900D92FA +:1040D0009A95E1F7809385010E947D1D16E08091FD +:1040E000840190918501891779F1189FC0011124ED +:1040F0008A579E4F0E94141E882331F1E09184015B +:104100001E9FF0011124EA57FE4F408151816281C8 +:104110007381848195810E946D1D8091840190E05E +:1041200001968770992780938401D9CF0E94351D0D +:104130001092850110928401E6EBF1E086E0DF0148 +:104140001D928A95E9F7CACF2C960FB6F894DEBF78 +:104150000FBECDBFDF91CF911F910895EF92FF92D7 +:104160000F931F93CF93DF93FC01009709F46FC067 +:10417000F12CEE24E394EF0121968491843740F4EE +:10418000843008F055C0813081F0823021F15FC069 +:10419000853709F447C0C0F19CE7980F903708F0C5 +:1041A00056C08F770E94C41945C08F010E5F1F4F04 +:1041B000FE01849190E2980F983050F48770FE2DA4 +:1041C00001C0FF0F8A95EAF78F2F0E94512315C077 +:1041D0000E94FC1814C08F010E5F1F4FFE018491D6 +:1041E00090E2980F983068F48770FE2D01C0FF0FA1 +:1041F0008A95EAF78F2F0E9457230E947A23E801BD +:1042000019C00E94C419FBCFCF010296FE01C491D0 +:10421000CC2361F0EFE9FFE03197F1F700C0000037 +:10422000C150F6CFCF010296FE01F490EC0102C01E +:104230000E94FC188F2D882341F0EFE9FFE03197B1 +:10424000F1F700C000008150F6CFFE0194CFDF915E +:10425000CF911F910F91FF90EF9008950895609373 +:10426000C0017093C1018093C2019093C3010C946B +:10427000231D0F931F930091C0011091C101209144 +:10428000C2013091C301062B172B282B392B009329 +:10429000C0011093C1012093C2013093C3011F914B +:1042A0000F910C94231D0F931F930091C001109147 +:1042B000C1012091C2013091C30106231723282395 +:1042C00039230093C0011093C1012093C2013093A0 +:1042D000C3011F910F910C94231D0F931F93009105 +:1042E000C0011091C1012091C2013091C301062784 +:1042F0001727282739270093C0011093C101209365 +:10430000C2013093C3011F910F910C94231D109291 +:10431000BC011092BD011092BE011092BF010C941D +:10432000231D41E050E060E070E004C0440F551FE1 +:10433000661F771F8A95D2F74093BC015093BD0149 +:104340006093BE017093BF010C94231D41E050E0C7 +:1043500060E070E004C0440F551F661F771F8A9508 +:10436000D2F78091BC019091BD01A091BE01B091A6 +:10437000BF01842B952BA62BB72B8093BC01909368 +:10438000BD01A093BE01B093BF010C94231D41E079 +:1043900050E060E070E004C0440F551F661F771FB7 +:1043A0008A95D2F740955095609570958091BC01A3 +:1043B0009091BD01A091BE01B091BF0184239523CE +:1043C000A623B7238093BC019093BD01A093BE01A7 +:1043D000B093BF010C94231D41E050E060E070E019 +:1043E00004C0440F551F661F771F8A95D2F780912E +:1043F000BC019091BD01A091BE01B091BF01842785 +:104400009527A627B7278093BC019093BD01A09361 +:10441000BE01B093BF010C94231D0F931F93009115 +:10442000BC011091BD012091BE013091BF01062B4E +:10443000172B282B392B0093BC011093BD0120931F +:10444000BE013093BF011F910F910C94231D0F9358 +:104450001F930091BC011091BD012091BE013091CC +:10446000BF0106231723282339230093BC0110938F +:10447000BD012093BE013093BF011F910F910C9499 +:10448000231D0F931F930091BC011091BD0120913A +:10449000BE013091BF01062717272827392700932F +:1044A000BC011093BD012093BE013093BF011F9149 +:1044B0000F910C94231D0895CF92DF92EF92FF92FB +:1044C0000F931F93CF93DF93EC01C090C001D09066 +:1044D000C101E090C201F090C3018091BC019091B4 +:1044E000BD01A091BE01B091BF01C82AD92AEA2A14 +:1044F000FB2A0FE110E0B701A601002E04C076955B +:104500006795579547950A94D2F740FF07C0BE01BB +:10451000802F0E94720E8130910539F401501109EB +:1045200050F7BE0180E00E94720EDF91CF911F9183 +:104530000F91FF90EF90DF90CF90089590910C0134 +:10454000992361F190910D01992341F1982F96954E +:10455000969596959F3088F4E0910E01F0910F01A9 +:10456000E90FF11D877021E030E001C0220F8A952C +:10457000EAF78181822B818308959091D70190FF82 +:104580002DC01F928F9381E99AE09F938F930E9491 +:104590004D0A0F900F900F900F90089540910E01CB +:1045A00050910F0120E030E09FEFFA01E20FF31F7E +:1045B0006281681799F09F3F19F4611101C0922F31 +:1045C0002F5F3F4F2E30310581F79F3F39F0FA01C1 +:1045D000E90FF11D97FDFA95828308950895909152 +:1045E0000C01992369F190910D01992349F1982FBC +:1045F0009695969596959F3090F4E0910E01F091E6 +:104600000F01E90FF11D877021E030E001C0220F9A +:104610008A95EAF720958181282321830895909136 +:10462000D70190FF1FC01F928F9383E79AE09F935B +:104630008F930E944D0A0F900F900F900F90089546 +:1046400040910E0150910F0120E030E0FA01E20F9D +:10465000F31F9281981301C012822F5F3F4F2E30BB +:104660003105A1F7089581E090E0E0910E01F0910D +:104670000F01E80FF91F1082019680319105A9F70B +:1046800008959091D601982B9093D6010895809526 +:104690009091D60198239093D60108951092D60157 +:1046A00008959091D501982B9093D5010895809508 +:1046B0009091D50198239093D50108951092D5013A +:1046C00008958093C40108951092C4010895409103 +:1046D0000E0150910F0120E030E080E0FA01E20F7E +:1046E000F31F918191118F5F2F5F3F4F2F30310565 +:1046F000A9F70895E0910E01F0910F018091D60184 +:104700008083E0910E01F0910F0180819091D5019D +:10471000892B80839091C401992361F0E0910E016F +:10472000F0910F018081892B80830E946723811182 +:104730001092C40180910E0190910F010C947E178C +:1047400090933B0180933A0108958295982F9C7C29 +:1047500096959695837344E0849F90011124922B43 +:10476000892F8A7A86959575990F892B08951F93BD +:10477000CF93DF931F92CDB7DEB799830E94A52315 +:10478000182F9981892F0E94A523212F30E0322FE5 +:104790002227A901482BCA010F90DF91CF911F91C9 +:1047A00008958091F001843009F11092D80120E43D +:1047B00088E190E00FB6F894A895809360000FBE52 +:1047C0002093600083B7817F846083BF83B781605B +:1047D00083BF7894889583B78E7F83BF88E10FB6B7 +:1047E000F89480936000109260000FBE08950895C1 +:1047F0000895CF930E94F7230E94180C0E94F8237B +:10480000C0E08C2F0E94430D811105C0CF5FCE30D8 +:10481000C1F780E001C081E0CF9108950C94351D6F +:1048200082E084BD93E095BD9AEF97BD80936E00C2 +:1048300008952FB7F8948091D9019091DA01A09151 +:10484000DB01B091DC012FBF0895CF92DF92EF9290 +:10485000FF920F931F932FB7F8944091D901509175 +:10486000DA016091DB017091DC012FBF6A017B01ED +:10487000EE24FF248C0120E030E0C016D106E206D1 +:10488000F30610F441505109481B590BCA011F91FE +:104890000F91FF90EF90DF90CF9008951F920F92AD +:1048A0000FB60F9211248F939F93AF93BF93809174 +:1048B000D9019091DA01A091DB01B091DC01019660 +:1048C000A11DB11D8093D9019093DA01A093DB0162 +:1048D000B093DC01BF91AF919F918F910F900FBE6C +:1048E0000F901F9018950E947914F8942FEF87EA83 +:1048F00091E6215080409040E1F700C0000087E041 +:1049000090EBDC018093F9019093FA01A093FB01F5 +:10491000B093FC012CE088E190E00FB6F894A895E4 +:10492000809360000FBE20936000FFCFEF92FF9254 +:104930000F931F93CF93DF93E82EF12C8F2D0E94BE +:10494000430DC0E0D0E0082F10E098010C2E02C00B +:10495000359527950A94E2F720FD05C02196C630CB +:10496000D10599F709C06C2F7F2D80E00E94500E71 +:10497000E812F4CF81E005C0F3948EE0F812DECFA8 +:1049800080E0DF91CF911F910F91FF90EF900895FC +:10499000CF93C82F8CE20E949624882321F08C2F7D +:1049A000CF910C94962480E0CF910895CF930E94EC +:1049B0002326811102C00E94092686EB9AE00E94FC +:1049C000B409C5E6C15049F00E94180C8FE39CE978 +:1049D0000197F1F700C00000F5CF8FEA9AE00E943E +:1049E000B40989E20E94C824811111C18AE20E949F +:1049F000C82481110E94092685E00E94C8248111E3 +:104A00000E9473240E942E268093D70187E00E9483 +:104A1000C824882399F18BE10E94C824882351F08F +:104A20009091D70191FB882780F921E0822780FBB4 +:104A300091F922C08EE00E94C824882351F0909101 +:104A4000D70192FB882780F921E0822780FB92F929 +:104A500013C080E10E94C8249091D701882341F0BF +:104A600093FB882780F921E0822780FB93F904C01B +:104A7000892F809580FB90F99093D7018091D70181 +:104A80000E9432260E9440268093EA0180EE0E9416 +:104A9000C824882341F08091EA01982F909590FBDB +:104AA00080F98093EA0189E30E94C824882359F0A1 +:104AB0009091EA0191FB882780F921E0822780FB11 +:104AC00091F99093EA0182EE0E94C824882359F05C +:104AD0009091EA0192FB882780F921E0822780FBF0 +:104AE00092F99093EA0186EE0E94C824882359F037 +:104AF0009091EA0193FB882780F921E0822780FBCF +:104B000093F99093EA0183EE0E94C824882359F018 +:104B10009091EA0194FB882780F921E0822780FBAD +:104B200094F99093EA0185E30E94C824882359F000 +:104B30009091EA0195FB882780F921E0822780FB8C +:104B400095F99093EA0181E30E94C824882359F0E3 +:104B50009091EA0196FB882780F921E0822780FB6B +:104B600096F99093EA0181E10E94C824882359F0C4 +:104B70009091EA0197FB882780F921E0822780FB4A +:104B800097F99093EA018091EA010E94442680916E +:104B9000EA0187FB882780F980930D0187E20E9454 +:104BA000C824C82F8EE10E94C8248111C2608FE101 +:104BB0000E94C8248111C46080E20E94C82481112F +:104BC000C86081E20E94C8248111C06182E20E9413 +:104BD000C8248111C06283E20E94C8248111C0648C +:104BE00084E20E94C824882311F0C06802C0CC234C +:104BF00029F08C2F0E943B266C2F03C00E94372681 +:104C0000682F70E080E090E0CF910C942F21CF913D +:104C100008956DEE7EEF80E090E00E94FE2F60E050 +:104C200082E090E00E94F02F60E083E090E00E943C +:104C3000F02F60E084E090E00E94F02F60E085E0DB +:104C400090E00C94F02F80E090E00E94EA2F21E0A9 +:104C50008D3E9E4F09F020E0822F089582E090E083 +:104C60000C94E22F682F82E090E00C94F02F83E008 +:104C700090E00C94E22F682F83E090E00C94F02FEA +:104C800084E090E00C94E22F682F84E090E00C9494 +:104C9000F02F8091DF0180FF0BC06091130185E050 +:104CA000689FB001112475956795759567952AC021 +:104CB00081FF09C06091130185E0689FB001112454 +:104CC000759567951FC082FF07C06091130185E04D +:104CD000689FB001112416C04091E0014423C9F03F +:104CE00060911201461788F72091130185E0289FF3 +:104CF00090011124429FC001439F900D112470E048 +:104D00000E94B42F6038710540F46115710539F0C7 +:104D100002C065E070E0862F08958FE7089581E076 +:104D200008958091DF0180FF08C06091110170E05B +:104D3000759567957595679521C081FF06C060914F +:104D4000110170E07595679519C082FF04C06091EC +:104D5000110170E010C08091E0018823C1F06091E2 +:104D600010018617A0F790911101989FC00111249E +:104D700070E00E94B42F6038710528F46115710548 +:104D800021F0862F08958FE7089581E0089561E06E +:104D900070E0F4CF803F21F40E944926819504C041 +:104DA000813F29F40E9449268093E3010895823FC0 +:104DB00021F40E944926819504C0833F29F40E9472 +:104DC00049268093E2010895893F19F40E949126B3 +:104DD00005C08A3F31F40E94912681958093E401B9 +:104DE00008958B3F21F40E949126819504C08C3F49 +:104DF00029F40E9491268093E5010895843F21F4CF +:104E00008091E101816017C0853F21F48091E1012B +:104E1000826011C0863F21F48091E10184600BC063 +:104E2000873F21F48091E101886005C0883F31F41B +:104E30008091E10180618093E10108958D3F21F42B +:104E40008091DF0181600BC08E3F21F48091DF01F2 +:104E5000826005C08F3F29F48091DF0184608093D8 +:104E6000DF010895803F39F48091E30187FF6CC032 +:104E70001092E30169C0813F29F48091E301181683 +:104E8000BCF362C09091E201823F29F497FF5CC0BD +:104E90001092E20159C0833F19F41916CCF354C0A3 +:104EA000893F41F48091E40118160CF04DC0109236 +:104EB000E4014AC08A3F29F48091E40187FF44C09D +:104EC000F6CF8B3F39F48091E50187FF3DC010920A +:104ED000E5013AC08C3F29F48091E5011816BCF336 +:104EE00033C0843F21F48091E1018E7F17C0853F5C +:104EF00021F48091E1018D7F11C0863F21F48091E2 +:104F0000E1018B7F0BC0873F21F48091E101877F16 +:104F100005C0883F31F48091E1018F7E8093E101EB +:104F200013C08D3F21F48091DF018E7F0BC08E3F37 +:104F300021F48091DF018D7F05C08F3F29F480919E +:104F4000DF018B7F8093DF018091E20181110EC030 +:104F50008091E30181110AC08091E401811106C0B2 +:104F60008091E501811102C01092E00108958091C5 +:104F7000D70183FF7EC082EF9AE00E94B40980913E +:104F8000E1011F928F938DEE9AE09F938F930E9481 +:104F90004D0A8BEE9AE00E94B4092091E201822F23 +:104FA000992787FD90959F932F9388EE9AE09F9382 +:104FB0008F930E944D0A86EE9AE00E94B4092091D8 +:104FC000E301822F992787FD90959F932F9383EE7E +:104FD0009AE09F938F930E944D0A81EE9AE00E947F +:104FE000B4092091E401822F992787FD90959F9322 +:104FF0002F938EED9AE09F938F930E944D0A8CED34 +:105000009AE00E94B4092091E501822F992787FD3B +:1050100090959F932F9389ED9AE09F938F930E9491 +:105020004D0A86ED9AE00E94B4098091E0011F923A +:105030008F9383ED9AE09F938F930E944D0A81EDA9 +:105040009AE00E94B4098091DF011F928F938EEC49 +:105050009AE09F938F930E944D0A8BEC9AE00E94F6 +:10506000B4098DB79EB74C960FB6F8949EBF0FBE8D +:105070008DBF81EE91E00E94C3170E941924909386 +:10508000DE018093DD0108951F93CF93DF9380911C +:10509000DD019091DE010E9425244091E00144232E +:1050A00021F02091140130E006C0209115015AE052 +:1050B000259F900111248217930708F482C08091E4 +:1050C000E2011091E301D091E401C091E501811169 +:1050D00007C0111105C0D11103C0CC2309F471C060 +:1050E0004F3F19F04F5F4093E001181624F40E94DF +:1050F00049268093E2018091E20187FF05C00E946A +:10510000492681958093E201111624F40E944926D4 +:105110008093E3018091E30187FF05C00E94492647 +:1051200081958093E3016091E201662339F110914A +:10513000E301112319F1772767FD7095872F972FCA +:105140000E94B92E23E333E343E35FE30E941D2F64 +:105150000E94862E6093E201612F772767FD70958C +:10516000872F972F0E94B92E23E333E343E35FE3B6 +:105170000E941D2F0E94862E6093E3011D1624F4C9 +:105180000E9491268093E4018091E40187FF05C08D +:105190000E94912681958093E4011C1624F40E94BC +:1051A00091268093E5018091E50187FF05C00E946B +:1051B000912681958093E501DF91CF911F910C9409 +:1051C000B727DF91CF911F910895E1EEF1E085E0DF +:1051D000DF011D928A95E9F71092E0011092DF013C +:1051E000089585E19DE00E94B4091F9281E08F93AC +:1051F0001F9285E08F9387EC9CE09F938F930E9492 +:105200004D0A0F900F900F900F900F900F900895F0 +:105210008330E9F128F4813061F0823009F108959A +:10522000853009F462C008F449C0863009F474C0BE +:10523000089520911501862F90E0820F911D8F3FD8 +:10524000910520F4620F6093150103C08FEF8093E6 +:105250001501809115011F928F9380E09CE072C030 +:1052600020911401862F90E0820F911D8F3F9105B0 +:1052700020F4620F6093140103C08FEF8093140138 +:10528000809114011F928F938EEE9BE05BC0209162 +:105290001301862F90E0820F911D8F3F910520F41E +:1052A000620F6093130103C08FEF8093130180910D +:1052B00013011F928F938BED9BE044C0209112014C +:1052C000862F90E0820F911D8F3F910520F4620F91 +:1052D0006093120103C08FEF80931201809112013D +:1052E0001F928F9386EC9BE02DC020911101862F99 +:1052F00090E0820F911D8F3F910520F4620F609323 +:10530000110103C08FEF80931101809111011F9251 +:105310008F938DEA9BE016C020911001862F90E0BC +:10532000820F911D8F3F910520F4620F6093100151 +:1053300003C08FEF80931001809110011F928F9313 +:1053400082E99BE09F938F930E944D0A0F900F90EC +:105350000F900F900895833081F128F4813059F037 +:105360008230D1F00895853009F449C0B8F1863013 +:1053700009F456C0089580911501681720F4861B22 +:105380008093150102C010921501809115011F92A2 +:105390008F9383E89BE054C080911401681720F438 +:1053A000861B8093140102C0109214018091140195 +:1053B0001F928F9381E79BE043C080911301681790 +:1053C00020F4861B8093130102C010921301809178 +:1053D00013011F928F938EE59BE032C080911201E2 +:1053E000681720F4861B8093120102C010921201EC +:1053F000809112011F928F9389E49BE021C08091DC +:105400001101681720F4861B8093110102C01092CD +:105410001101809111011F928F9380E39BE010C0D6 +:1054200080911001681720F4861B8093100102C040 +:1054300010921001809110011F928F9385E19BE0E3 +:105440009F938F930E944D0A0F900F900F900F9093 +:105450000895CF93C82F1F928F932AE13EE03F9388 +:105460002F930E944D0A61E070E080E090E004C05C +:10547000660F771F881F991FCA95D2F70E942F21A8 +:105480000F900F900F900F90CF910C94351DCF93EC +:105490008D3109F465C0B0F58E3009F4CBC100F54B +:1054A000873009F49BC1A8F4863009F06AC2809164 +:1054B000D701817F8E7F8093D7018FE19EE00E948C +:1054C000B40984E692E10E94B40981E08093E70187 +:1054D00080C1883009F44FC08B3009F47CC151C2BF +:1054E000863109F4EDC138F4803109F4B6C1813157 +:1054F00009F42DC246C2893109F4CBC18B3109F4BC +:1055000086C13FC2853309F434C248F4873209F4B6 +:1055100030C208F430C2893209F42BC232C283345B +:1055200038F48A3308F029C2883309F454C129C2F7 +:10553000833409F41EC2883409F023C20E94351D49 +:1055400083E592E10E94B4099FEF23ED80E391503F +:1055500020408040E1F700C000000E94732439C160 +:1055600083E792E10E94B4090E94402E0E947217C4 +:105570000E94B00F2EC188E692E10E94B40980E338 +:1055800090E10E94B4090E9437261F928F938DE20A +:1055900090E19F938F930E944D0A8BE290E10E94CD +:1055A000B4090E942E26C82F88E190E10E94B40918 +:1055B0001F92CF9323E130E13F932F930E944D0A36 +:1055C00081E190E10E94B40987E090E10E94B40972 +:1055D0008C2F81701F928F9324E030E13F932F93A3 +:1055E0000E944D0A82E090E10E94B40988EF9FE09A +:1055F0000E94B409C1FB882780F91F928F9325EF81 +:105600003FE03F932F930E944D0A83EF9FE00E945B +:10561000B40987EE9FE00E94B409C2FB882780F995 +:105620001F928F9324EE3FE03F932F930E944D0AE9 +:1056300082EE9FE00E94B40989ED9FE00E94B409C8 +:10564000C3FBCC27C0F91F92CF9386ED9FE09F93B9 +:105650008F930E944D0A84ED9FE00E94B4090E943E +:105660004026C82F80EC9FE00E94B4091F92CF9380 +:105670002BEB3FE03F932F930E944D0A89EB9FE075 +:105680000E94B40980EA9FE00E94B4098C2F8170C7 +:105690001F928F932DE93FE03F932F930E944D0A75 +:1056A0008DB79EB780960FB6F8949EBF0FBE8DBF84 +:1056B0008BE99FE00E94B40984E89FE00E94B4094E +:1056C000C1FB882780F91F928F9321E83FE03F9329 +:1056D0002F930E944D0A8FE79FE00E94B4098DE648 +:1056E0009FE00E94B409C2FB882780F91F928F9324 +:1056F0002AE63FE03F932F930E944D0A88E69FE001 +:105700000E94B40986E59FE00E94B409C3FB882784 +:1057100080F91F928F9323E53FE03F932F930E94E0 +:105720004D0A81E59FE00E94B40987E49FE00E9452 +:10573000B409C4FB882780F91F928F9324E43FE0CB +:105740003F932F930E944D0A82E49FE00E94B40988 +:1057500080E39FE00E94B409C5FB882780F91F926F +:105760008F932DE23FE03F932F930E944D0A8BE2EF +:105770009FE00E94B4098FE09FE00E94B409C6FB3D +:10578000882780F91F928F932CE03FE03F932F935F +:105790000E944D0A8AE09FE00E94B40982E09FE0E7 +:1057A0000E94B409C7FBCC27C0F91F92CF938FEF9B +:1057B0009EE09F938F930E944D0A8DEF9EE00E9482 +:1057C000B4098DB79EB74C960FB6F8949EBF0FBE26 +:1057D0008DBFC1E0DBC086E49EE058C08091D70158 +:1057E000C82FC17080FF09C086E492E10E94B4090D +:1057F0008091D701817F8E7F44C08AE392E10E942D +:10580000B4098091D70181608093D701E2CF809164 +:10581000D70181FBCC27C0F991E0C927C0FB81F9F2 +:105820008093D701CC2319F08DE292E125C08FE15E +:1058300092E12CC08091D70182FBCC27C0F991E086 +:10584000C927C0FB82F98093D701CC2319F080E1EE +:1058500092E112C080E092E119C08091D70183FBF0 +:10586000CC27C0F991E0C927C0FB83F98093D70109 +:10587000CC2351F084EF91E10E94B4098091D701CB +:1058800081608093D70182C087EE91E10E94B409C4 +:10589000A0CF88ED91E10E94B4098CEA91E10E94C9 +:1058A000B4098FE691E10E94B40982E491E10E947B +:1058B000B4098EEF90E10E94B40980ED90E1E6CF4B +:1058C00082EC90E10E94B4090E9472171F928F939C +:1058D00088EA90E19F938F930E944D0A80910C017A +:1058E0001F928F9381E990E19F938F930E944D0ABD +:1058F00080916E011F928F938EE790E19F938F931B +:105900000E944D0A80910D011F928F938BE690E1CA +:105910009F938F930E944D0A8091D9019091DA0153 +:10592000A091DB01B091DC01BF93AF939F938F9364 +:1059300087E590E19F938F930E944D0A8DB79EB7A4 +:1059400046960FB6F8949EBF0FBE8DBF42CF0E9401 +:10595000351DC0910D0181E0C827C0930D01CC23F6 +:1059600029F08DE490E10E94B40910C082E490E136 +:105970008DCF80E003C08D5101C089530E94292A38 +:1059800028CF80E490E10E94B409C0E08C2FCF9131 +:10599000089580E0089580E00895CF93C82F809106 +:1059A000E701813081F020F0823009F44CC042C11F +:1059B000A0910E01B0910F018C91813169F082327A +:1059C00009F03AC109C0A0910E01B0910F018C916C +:1059D000813111F0823249F48C2F0E94C92C81113F +:1059E0002FC08C2F0E94472A2CC08C2F0E94CB2CBA +:1059F000811126C0C431E1F070F4CB3081F0C031A8 +:105A0000D1F40E94F12882E19EE00E94B40982E074 +:105A10008093E70115C0C93259F0C83361F48FE1B2 +:105A20009EE00E94B40986E19EE00E94B40908C08D +:105A30001092E70103C180E19EE00E94B409FEC01C +:105A400081E08170FDC0C43220F5CE3108F0C0C0C5 +:105A5000CB3099F1C8F4C73009F0D2C08AE0809306 +:105A6000150194E19093140193E0909313018093B6 +:105A7000120188E08093110188E28093100186EB87 +:105A80009CE00E94B409BFC0C33149F1C431C1F0E8 +:105A9000B7C0CB3409F4A9C028F4C93289F0C8339F +:105AA00061F0AEC0C13509F49EC0C23509F499C099 +:105AB000CE3409F0A5C06AE09EC00E94F128A3C0C0 +:105AC0008091E601882319F01092E6019CC083ECD6 +:105AD0009CE00E94B40981E08093E701B1C08DE9A8 +:105AE0009CE00E94B4098BE89CE00E94B40980917C +:105AF00015011F928F9388E89CE09F938F930E94DB +:105B00004D0A86E89CE00E94B40984E79CE00E946C +:105B1000B409809114011F928F9381E79CE09F93B9 +:105B20008F930E944D0A8FE69CE00E94B40980E6A4 +:105B30009CE00E94B409809113011F928F938DE520 +:105B40009CE09F938F930E944D0A8BE59CE00E94FE +:105B5000B4098AE49CE00E94B409809112011F926A +:105B60008F9387E49CE09F938F930E944D0A85E476 +:105B70009CE00E94B40980E39CE00E94B4098091FB +:105B800011011F928F938DE29CE09F938F930E944F +:105B90004D0A8BE29CE00E94B40984E19CE00E94E3 +:105BA000B409809110011F928F9381E19CE09F9333 +:105BB0008F930E944D0A8FE09CE00E94B4098DB73C +:105BC0009EB748960FB6F8949EBF0FBE8DBF1BC000 +:105BD000CE51EC2FF0E0E15DFE4F80818093E60135 +:105BE00012C061E003C061E006C06AE08091E60196 +:105BF0000E94082908C08091E6010E94AB2903C0D9 +:105C000084EB9CE013C08091E601882369F01F9229 +:105C10008F938EEA9CE09F938F930E944D0A0F9082 +:105C20000F900F900F9004C08BEA9CE00E94B40983 +:105C300081E006C01092E70180E002C080E001CF61 +:105C4000CF910895E1E8F0E08081886080838081D1 +:105C5000816080838FB7F89493E09093890090EDF2 +:105C6000909388008FBF0895EFE6F0E08081826016 +:105C700080830895EFE6F0E080818D7F8083089532 +:105C8000EFE6F0E0808192E08927808308951F92FB +:105C90000F920FB60F9211242F933F934F935F9360 +:105CA0006F937F938F939F93AF93BF93EF93FF93E4 +:105CB0008091E8019091E90101969093E901809328 +:105CC000E801811103C082E00E94B00FE091E90178 +:105CD000E695E695F0E0ED57FD4EE4918091E80100 +:105CE0008E1303C080E00E94B00FFF91EF91BF912F +:105CF000AF919F918F917F916F915F914F913F9164 +:105D00002F910F900FBE0F901F90189504D068949C +:105D1000B1118DC0089570D088F09F5790F0B92FC1 +:105D20009927B751A0F0D1F0660F771F881F991FF0 +:105D30001AF0BA95C9F712C0B13081F077D0B1E04E +:105D4000089574C0672F782F8827B85F39F0B93F5E +:105D5000CCF3869577956795B395D9F73EF49095F2 +:105D60008095709561957F4F8F4F9F4F0895E89470 +:105D700009C097FB3EF490958095709561957F4F93 +:105D80008F4F9F4F9923A9F0F92F96E9BB27939541 +:105D9000F695879577956795B795F111F8CFFAF451 +:105DA000BB0F11F460FF1BC06F5F7F4F8F4F9F4F82 +:105DB00016C0882311F096E911C0772321F09EE8E0 +:105DC000872F762F05C0662371F096E8862F70E046 +:105DD00060E02AF09A95660F771F881FDAF7880F20 +:105DE0009695879597F9089557FD9058440F551F3C +:105DF00059F05F3F71F04795880F97FB991F61F04D +:105E00009F3F79F087950895121613061406551FC3 +:105E1000F2CF4695F1DF08C0161617061806991F2F +:105E2000F1CF86957105610508940895E894BB2724 +:105E300066277727CB0197F908950BD078C069D0F2 +:105E400028F06ED018F0952309F05AC05FC01124D5 +:105E5000EECFCADFA0F3959FD1F3950F50E0551F09 +:105E6000629FF001729FBB27F00DB11D639FAA27AF +:105E7000F00DB11DAA1F649F6627B00DA11D661FFE +:105E8000829F2227B00DA11D621F739FB00DA11D1F +:105E9000621F839FA00D611D221F749F3327A00DD9 +:105EA000611D231F849F600D211D822F762F6A2F75 +:105EB00011249F5750408AF0E1F088234AF0EE0FFA +:105EC000FF1FBB1F661F771F881F91505040A9F707 +:105ED0009E3F510570F014C0AACF5F3FECF3983E8F +:105EE000DCF3869577956795B795F795E7959F5F6E +:105EF000C1F7FE2B880F911D9695879597F9089508 +:105F000097F99F6780E870E060E008959FEF80EC6C +:105F1000089500240A94161617061806090608950F +:105F200000240A9412161306140605060895092E75 +:105F30000394000C11F4882352F0BB0F40F4BF2BE4 +:105F400011F460FF04C06F5F7F4F8F4F9F4F089524 +:105F5000991B79E004C0991F961708F0961B881FBB +:105F60007A95C9F78095089597FB072E16F400944B +:105F700007D077FD09D00E94CE2F07FC05D03EF454 +:105F8000909581959F4F0895709561957F4F0895E5 +:105F9000EE0FFF1F0590F491E02D0994AA1BBB1B87 +:105FA00051E107C0AA1FBB1FA617B70710F0A61B19 +:105FB000B70B881F991F5A95A9F780959095BC013A +:105FC000CD010895F999FECF92BD81BDF89A992728 +:105FD00080B50895A8E1B0E042E050E00C940530AF +:105FE000262FF999FECF1FBA92BD81BD20BD0FB6F5 +:105FF000F894FA9AF99A0FBE019608950E94F02F2C +:10600000272F0C94F12FDC01CB01FC01F999FECF75 +:1060100006C0F2BDE1BDF89A319600B40D92415030 +:0A6020005040B8F70895F894FFCF40 +:10602A002002B10FA2107F104B1018100101C501F8 +:10603A0028080A03140A3F4D362039000AB3097D9D +:10604A00095D0924099708B008C908E2080209018C +:0A605A000203040506070809000010 +:00000001FF From 606d63e602bf5a01912a4c5b9c8536c705bcc777 Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sat, 23 Jan 2016 19:18:37 +0100 Subject: [PATCH 38/52] Fixed small issues in README.md - fixed rendering of the basic layer on GitHub - fixed missing Calculator, Mail & Browser Home keys in Fn Layer --- keyboard/ergodox_ez/keymaps/tm2030/README.md | 56 ++++++++++---------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/tm2030/README.md b/keyboard/ergodox_ez/keymaps/tm2030/README.md index 55942709be..7ea175b443 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/README.md +++ b/keyboard/ergodox_ez/keymaps/tm2030/README.md @@ -15,34 +15,36 @@ Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F ## Base Layer This is the default layer, close to the TM with the following differences: -- Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. -- Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. -- `shuffle` and `desktop` are not supported. -- `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). -- `right-ctrl` is moved on `End`. -- `]` is moved in place of the dash (`-`). -- Dash (`-`) and `=` are moved on bottom right row. -- Arrows and `PgUp`/`PgDn` are moved on the thumbs. - ,--------------------------------------------------. ,--------------------------------------------------. - | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | - |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| - | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| - |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| - | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| - `-----------------------------------' `-----------------------------------' - ,--------------. ,-------------. - |Esc/Alt| num | | Left |Right | - ,------+-------+------| |------+------+------. - | | | PgUp | | Up | | | - |Space |LShift |------| |------|RShift|Space | - | | | PgDn | | Down | | | - `---------------------' `--------------------' + - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. + - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. + - `shuffle` and `desktop` are not supported. + - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). + - `right-ctrl` is moved on `End`. + - `]` is moved in place of the dash (`-`). + - Dash (`-`) and `=` are moved on bottom right row. + - Arrows and `PgUp`/`PgDn` are moved on the thumbs. +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | +|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| +| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| +|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' +``` ### Layer Switching - Use `num` to toggle the Numeric Layer. @@ -118,7 +120,7 @@ Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | | | | | | |VolUp | | | | | | | | Pause | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | |------| |------| | | | | | | + | | | | Calc | Mail |Browsr|------| |------| | | | | | | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | | | cut | copy |paste | Mute |VolDn | | | | | | | | | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' From 3e31fa4c50562b0d441262963ac6489351e7035d Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sat, 23 Jan 2016 19:29:14 +0100 Subject: [PATCH 39/52] Fixed rendering of the Layer Switching section --- keyboard/ergodox_ez/keymaps/tm2030/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/tm2030/README.md b/keyboard/ergodox_ez/keymaps/tm2030/README.md index 7ea175b443..096939dc28 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/README.md +++ b/keyboard/ergodox_ez/keymaps/tm2030/README.md @@ -48,7 +48,8 @@ This is the default layer, close to the TM with the following differences: ### Layer Switching - Use `num` to toggle the Numeric Layer. -- Hold `fn` to temporarily activate the Numeric & Fn Layers +- Hold `fn` to temporarily activate the Numeric & Fn Layers. + As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. ## Dvorak Layer From e5aee62e54d0b6f02ff170f4e9bf1e738d36fb4c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jan 2016 20:29:54 -0500 Subject: [PATCH 40/52] starting the hand-wiring guide --- HAND-WIRE.md | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 323 insertions(+) create mode 100644 HAND-WIRE.md diff --git a/HAND-WIRE.md b/HAND-WIRE.md new file mode 100644 index 0000000000..3f4d75b272 --- /dev/null +++ b/HAND-WIRE.md @@ -0,0 +1,323 @@ +# Quantum Hand-wiring Guide + +Parts list: +* *x* keyswitches (MX, Matias, Gateron, etc) +* *x* diodes +* Keyboard plate (metal, plastic, cardboard, etc) +* Wire (strained for wiring to the Teensy, anything for the rows/columns) +* Soldering iron set at 600ºF or 315ºC (if temperature-controlled) +* Resin-cored solder (leaded or lead-free) +* Adequate ventilation/a fan +* Tweezers (optional) +* Wire cutters/snippers + +## How the matrix works (why we need diodes) + +The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + row0 ---(key0)---(key1) row0 ---(key0)---(key1) + | | | | + row1 ---(key2)---(key3) row1 ---(key2)---(key3) + +The `x` represents that the column/row associated has a value of 1, or is HIGH. Here, we see that no keys are being pressed, so no rows get an `x`. For one keyswitch, keep in mind that one side of the contacts is connected to its row, and the other, its column. + +When we press `key0`, `col0` gets connected to `row0`, so the values that the firmware receives for that row is `0b01` (the `0b` here means that this is a bit value, meaning all of the following digits are bits - 0 or 1 - and represent the keys in that column). We'll use this notation to show when a keyswitch has been pressed, to show that the column and row are being connected: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1) + | | | | + row1 ---(key2)---(key3) row1 ---(key2)---(key3) + +We can now see that `row0` has an `x`, so has the value of 1. As a whole, the data the firmware receives when `key0` is pressed is + + col0: 0b01 + col1: 0b00 + │└row0 + └row1 + +A problem arises when you start pressing more than one key at a time. Looking at our matrix again, it should become pretty obvious: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1) + | | | | + x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3) + + Remember that this ^ is still connected to row1 + +The data we get from that is: + + col0: 0b11 + col1: 0b11 + │└row0 + └row1 + +Which isn't accurate, since we only have 3 keys pressed down, not all 4. This behavior is called ghosting, and only happens in odd scenarios like this, but can be much more common on a bigger keyboard. The way we can get around this is by placing a diode after the keyswitch, but before it connects to its row. A diode only allows current to pass through one way, which will protect our other columns/rows from being activated in the previous example. We'll represent a dioded matrix like this; + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + │ │ | │ + (key0) (key1) (key0) (key1) + ! │ ! │ ! | ! │ + row0 ─────┴────────┘ │ row0 ─────┴────────┘ │ + │ │ | │ + (key2) (key3) (key2) (key3) + ! ! ! ! + row1 ─────┴────────┘ row1 ─────┴────────┘ + +In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|` + +Now when we press the three keys, invoking what would be a ghosting scenario: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + │ │ │ │ + (┌─┤0) (┌─┤1) (┌─┤0) (┌─┤1) + ! │ ! │ ! │ ! │ + x row0 ─────┴────────┘ │ x row0 ─────┴────────┘ │ + │ │ │ │ + (key2) (┌─┘3) (key2) (┌─┘3) + ! ! ! ! + row1 ─────┴────────┘ x row1 ─────┴────────┘ + +Things act as they should! Which will get us the following data: + + col0: 0b01 + col1: 0b11 + │└row0 + └row1 + +The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS. + +## The actual hand-wiring + +### Getting things in place + +When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards. + +To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns. + +Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps. + +Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy. + +### Preparing the diodes + +It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads): + + ┌─────┬─┐ + ───┤ │ ├─┐ + └─────┴─┘ │ + │ + +We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row. + +### Soldering the diodes + +Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The straight end of the diode should be touching the left contact on the switch, and the bent end should be facing to the right and resting on the switch there, like this: + + │o + ┌┴┐ o + │ │ O + ├─┤ + └┬┘ + └───────────── + +Letting the diode rest, grab your solder, and touch both it and the soldering iron to the left contact at the same time - the rosin in the solder should make it easy for the solder to flow over both the diode and the keyswitch contact. The diode may move a little, and if it does, carefully position it back it place by grabbing the bent end of the diode - the other end will become hot very quickly. If you find that it's moving too much, using needle-nose pliers of some sort may help to keep the diode still when soldering. + +The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face. + +After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiney) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process. + +When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this: + + │o │o + ┌┴┐ o ┌┴┐ o + │ │ O │ │ O + ├─┤ ├─┤ + └┬┘ └┬┘ + └────────────────┴───────────── + +After completing a row, use the wire cutters to trim the excess wire from the tops of the diodes, and from the right side on the final switch. This process will need to completed for each row you have. + +When all of the diodes are completely soldered, it's a good idea to quickly inspect each one to ensure that your solder joints are solid and sturdy - repairing things after this is possible, but more difficult. + +### Soldering the columns + +You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch. + +If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron. + +Before beginning to solder, it helps to have your wire pre-bent (if using single-cored), or at least have an idea of how you're going to route the column (especially if you're making a staggered board). Where you go in particular doesn't matter too much, as we'll be basing our keymap definitions on how it was wired - just make sure every key in a particular row is in a unique column, and that they're in order from left to right. + +If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes. + +### Wiring things to the Teensy + +Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple. + +The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware. + +Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach. + +Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering. + +As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future. + +When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work. + +As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain! + +### Getting some basic firmware set-up + +From here, you should have a working keyboard with the correct firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch. + +To start out, download [the firmware](https://github.com/jackhumbert/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/). + +The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `` replaced by the name of your project - it'll need to be different from any other project in the `keyboard/` folder: + + ./new_project.sh + +You'll want to navigate to the `keyboard//` folder by typing, like the print-out from the script specifies: + + cd keyboard/ + +#### config.h + +The first thing we're going to want to modify is the `config.h` file. On line 32 and 33, you'll see `MATRIX_ROWS` and `MATRIX_COLS` - set both these variables to however many rows and columns you have on your keyboard. + +On line 38 and 39 you'll see the `COLS` and `ROWS` definitions - this is where you'll enter the pins you used, in order (left-to-right when looking at the top of the keyboard, but right-to-left when looking at the bottom). + +There are some other variables that you'll be able to modify (lines 23-29), but it's not necessary to do that now (or ever, really). + +#### \.h + +The next file you'll want to look at is `.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix. + +We'll dive into how this will work with the following example. Say we have a keyboard like this: + + ┌───┬───┬───┐ + │ │ │ │ + ├───┴─┬─┴───┤ + │ │ │ + └─────┴─────┘ + +This can be described by saying the top row is 3 1u keys, and the bottom row is 2 1.5u keys. The difference between the two rows is important, because the bottom row has an unused column spot (3 v 2). Let's say that this is how we wired the columns: + + ┌───┬───┬───┐ + │ ┋ │ ┋ │ ┋ │ + ├─┋─┴─┬─┴─┋─┤ + │ ┋ │ ┋ │ + └─────┴─────┘ + +The middle column is unused on the bottom row in this example. Our `KEYMAP` definition would look like this: + + #define KEYMAP( \ + k00, k01, k02, \ + k10, k11, \ + ) \ + { \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ + } + +Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring. + +Let's say that instead, we wired our keyboard like this (a fair thing to do): + + ┌───┬───┬───┐ + │ ┋ │ ┋│ ┋ │ + ├─┋─┴─┬┋┴───┤ + │ ┋ │┋ │ + └─────┴─────┘ + +This would require our `KEYMAP` definition to look like this: + + #define KEYMAP( \ + k00, k01, k02, \ + k10, k11, \ + ) \ + { \ + { k00, k01, k02 }, \ + { k10, k11, KC_NO }, \ + } + +Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it. + +#### keymaps/default.c + +This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make KEYMAP=`, which will pull `keymaps/.c`. + +The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer. + +Using our previous example, let's say we want to create the following layout: + + ┌───┬───┬───┐ + │ A │ 1 │ H │ + ├───┴─┬─┴───┤ + │ TAB │ SPC │ + └─────┴─────┘ + +This can be accomplished by using the following `keymaps` definition: + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* Base */ + KC_A, KC_1, KC_H, \ + KC_TAB, KC_SPC \ + ), + }; + +Note that the layout of the keycodes is similar to the physical layout of our keyboard - this make it much easier to see what's going on. A lot of the keycodes should be fairly obvious, but for a full list of them, check out [tmk_code/doc/keycode.txt](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt) - there are also a lot of aliases to condense your keymap file. + +It's also important to use the `KEYMAP` function we defined earlier - this is what allows the firmware to associate our intended readable keymap with the actual wiring. + +#### Compiling your firmware + +After you've written out your entire keymap, you're ready to get the firmware compiled and onto your Teensy. Before compiling, you'll need to get your [development environment set-up](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboard/planck/PCB_GUIDE.md#setting-up-the-environment) - you can skip the dfu-programmer instructions, but you'll need to download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to get the firmware on your Teensy. + +Once everything is installed, running `make` in the terminal should get you some output, and eventually a `.hex` file in that folder. If you're having trouble with this step, see the end of the guide for the trouble-shooting section. + +Once you have your `.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboard//` folder, and select the `.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go! + +#### Testing your firmware + +Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys: + +0. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced. +1. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough. +2. Check the solder joints on the diode - if the diode is loose, part of your row may register, while the other may not. +3. Check the solder joints on the columns - if your column wiring is loose, part or all of the column may not work. +4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides. +5. Check the .h file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable. +6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly. + +If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end. + +#### Securing the Teensy, finishing your hardware, getting fancier firmware + +Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out. + +There are a lot of possibilities inside the firmware - check out the [README](https://github.com/jackhumbert/qmk_firmware/blob/master/README.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb) + +## Trouble-shooting compiling + +### Windows + +#### fork: Resource temporarily unavailable + +http://www.avrfreaks.net/forum/windows-81-compilation-error + +### Mac + +### Linux From ae620fe8562254a5c00a48b863cabd4c87abd613 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jan 2016 20:35:13 -0500 Subject: [PATCH 41/52] rename file --- keyboard/planck/keymaps/keymap_eric.c | 42 --------------------------- 1 file changed, 42 deletions(-) delete mode 100644 keyboard/planck/keymaps/keymap_eric.c diff --git a/keyboard/planck/keymaps/keymap_eric.c b/keyboard/planck/keymaps/keymap_eric.c deleted file mode 100644 index ffeec5f805..0000000000 --- a/keyboard/planck/keymaps/keymap_eric.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "planck.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { - {KC_BSLS, S(KC_SLSH), KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, - {TG(1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {KC_LGUI, KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RGUI}, - {KC_LCBR, KC_LCTL, KC_LALT, LT(1, TG(2)), KC_SPC, KC_TAB, KC_ENT, KC_BSPC, LT(1, TG(3)), KC_RALT, KC_RCTL, KC_RCBR} - }, - - [1] = { - {KC_PIPE, KC_COLN, KC_LBRC, KC_RBRC, S(KC_P), S(KC_Y), S(KC_F), S(KC_G), S(KC_C), S(KC_R), S(KC_L), KC_AMPR}, - {KC_TRNS, S(KC_A), S(KC_O), S(KC_E), S(KC_U), S(KC_I), S(KC_D), S(KC_H), S(KC_T), S(KC_N), S(KC_S), KC_GRV}, - {KC_TRNS, KC_SCLN, S(KC_Q), S(KC_J), S(KC_K), S(KC_X), S(KC_B), S(KC_M), S(KC_W), S(KC_V), S(KC_Z), KC_TRNS}, - {S(KC_COMM), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_DOT)} - }, - - [2] = { - {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO}, - {KC_NO, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO}, - {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS}, - {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} - }, - - [3] = { - {KC_EXLM, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_EQL}, - {TG(4), KC_NO, KC_PGUP, KC_HOME, KC_INSERT, KC_NO, KC_NO, BL_DEC, KC_UP, BL_INC, KC_NO, KC_NO}, - {KC_TRNS, KC_NO, KC_PGDN, KC_END, KC_DELETE, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS}, - {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} - }, - - [4] = { - {KC_TILD, KC_HASH, KC_LPRN, KC_RPRN, S(KC_QUOT), KC_PERC, KC_UNDS, KC_CIRC, KC_DLR, KC_AT, KC_ASTR, KC_PLUS}, - {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS}, - {KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; \ No newline at end of file From 6a55a5fe484f15f37e790e276cb77ae06b534358 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jan 2016 20:40:40 -0500 Subject: [PATCH 42/52] not sure how this got here.. --- .../ergodox_ez/keymaps/keymap_generated.c | 78 ------------------- 1 file changed, 78 deletions(-) delete mode 100644 keyboard/ergodox_ez/keymaps/keymap_generated.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_generated.c b/keyboard/ergodox_ez/keymaps/keymap_generated.c deleted file mode 100644 index 54fd3059f2..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_generated.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* - -#define SYMB 0 - -[0] = KEYMAP( \ -\ -KC_KP_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DELETE, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TAB, KC_LEFT, KC_RIGHT, KC_TRANSPARENT, KC_LGUI, KC_HOME, KC_SPACE, KC_BSPACE, KC_END, KC_RIGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_TRANSPARENT, KC_N, KC_M, KC_COMMA, KC_DOT, KC_LCTRL, KC_LSHIFT, KC_UP, KC_DOWN, KC_LBRACKET, KC_RBRACKET, KC_TRANSPARENT, KC_LALT, KC_ESCAPE, KC_PGUP, KC_PGDOWN, KC_TAB, KC_ENTER \ -\ -), - -[1] = KEYMAP( \ -\ -KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRANSPARENT, KC_UP, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, KC_DOWN, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRANSPARENT, KC_TRANSPARENT, , KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_TRANSPARENT, KC_TRANSPARENT, KC_KP_DOT, KC_KP_0, KC_KP_EQUAL, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT \ -\ -), - -[2] = KEYMAP( \ -\ -KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_UP, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_BTN3, KC_MS_BTN2, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MEDIA_PLAY_PAUSE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_TRANSPARENT, KC_TRANSPARENT, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT \ -\ -), - -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - -}; - -// Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } - -}; From 24f2698fba0055128eb90fbde793e3c84900df69 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jan 2016 20:45:52 -0500 Subject: [PATCH 43/52] changes to the template --- new_project.sh | 2 +- quantum/template/Makefile | 6 +-- quantum/template/README.md | 6 +-- quantum/template/config.h | 8 +-- quantum/template/keymaps/keymap_default.c | 66 ----------------------- quantum/template/template.h | 12 ++--- 6 files changed, 15 insertions(+), 85 deletions(-) delete mode 100644 quantum/template/keymaps/keymap_default.c diff --git a/new_project.sh b/new_project.sh index 86ecf692f4..199ced4113 100755 --- a/new_project.sh +++ b/new_project.sh @@ -12,7 +12,7 @@ sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/template.c > keyboard/$KEYBOA sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboard/$KEYBOARD/config.h sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/README.md > keyboard/$KEYBOARD/README.md sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboard/$KEYBOARD/Makefile -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/keymap_default.c > keyboard/$KEYBOARD/keymaps/keymap_default.c +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default.c > keyboard/$KEYBOARD/keymaps/default.c cp quantum/template/bootloader.hex keyboard/$KEYBOARD/bootloader.hex echo "######################################################" diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 99c97a62cf..2efa691380 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -53,9 +53,9 @@ TARGET_DIR = . SRC = %KEYBOARD%.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h @@ -107,7 +107,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Atmel DFU loader 4096 # LUFA bootloader 4096 # USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 +OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options diff --git a/quantum/template/README.md b/quantum/template/README.md index ecea7dd698..f34862cd9b 100644 --- a/quantum/template/README.md +++ b/quantum/template/README.md @@ -88,7 +88,7 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - ## Macro shortcuts: Send a whole string when pressing just one key -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymaps/default.c). ```c const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. @@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. \ No newline at end of file +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/quantum/template/config.h b/quantum/template/config.h index 9afedbcc07..7d6149f436 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -29,14 +29,14 @@ along with this program. If not, see . #define DESCRIPTION A custom keyboard /* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 // Planck PCB default pin-out // Change this to how you wired your keyboard // COLS: Left to right, ROWS: Top to bottom -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } +#define COLS (int []){ F1, F0, B0 } +#define ROWS (int []){ D0, D5 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/quantum/template/keymaps/keymap_default.c b/quantum/template/keymaps/keymap_default.c deleted file mode 100644 index 1e6684da7b..0000000000 --- a/quantum/template/keymaps/keymap_default.c +++ /dev/null @@ -1,66 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "%KEYBOARD%.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/quantum/template/template.h b/quantum/template/template.h index de3edf3242..d4d78e4c91 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -11,16 +11,12 @@ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ + k00, k01, k02, \ + k10, k11, \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ } void * matrix_init_user(void); From fd72a46c139c0450299e6e4ebbf4ffba531c9e2d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jan 2016 20:52:01 -0500 Subject: [PATCH 44/52] Makefile back to defaults --- keyboard/planck/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index dece6a7f17..8414b2ccc0 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -138,9 +138,9 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = YES # MIDI controls -AUDIO_ENABLE = YES # Audio output on port C6 +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID From 0a40654b82520849fcc587e8fb76c823378649a6 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 13:14:50 -0800 Subject: [PATCH 45/52] Add support for WS2812 LEDs --- keyboard/planck/Makefile | 13 +- keyboard/planck/config.h | 15 + keyboard/planck/keymaps/yang/keymap.c | 146 ++++++++ keyboard/planck/light_ws2812.c | 181 +++++++++ keyboard/planck/light_ws2812.h | 73 ++++ keyboard/planck/planck.c | 7 +- keyboard/planck/planck.h | 9 +- keyboard/planck/rgblight.c | 505 ++++++++++++++++++++++++++ keyboard/planck/rgblight.h | 87 +++++ 9 files changed, 1029 insertions(+), 7 deletions(-) create mode 100644 keyboard/planck/keymaps/yang/keymap.c create mode 100755 keyboard/planck/light_ws2812.c create mode 100755 keyboard/planck/light_ws2812.h create mode 100644 keyboard/planck/rgblight.c create mode 100644 keyboard/planck/rgblight.h diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 8414b2ccc0..d37005260a 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -27,7 +27,7 @@ # make flip-ee = Download the eeprom file to the device, using Atmel FLIP # (must have Atmel FLIP installed). # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -137,17 +137,25 @@ CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = YES # MIDI controls # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 bottom RGB light ifdef BACKLIGHT_ENABLE SRC += backlight.c endif +ifdef RGBLIGHT_ENABLE + SRC += light_ws2812.c + SRC += rgblight.c + OPT_DEFS += -DRGBLIGHT_ENABLE +endif + + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -157,4 +165,3 @@ VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) include $(TOP_DIR)/quantum/quantum.mk - diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index a4c711db82..856de73066 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -58,6 +58,21 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#ifndef RGBLIGHT_HUE_STEP +#define RGBLIGHT_HUE_STEP 10 +#endif +#ifndef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 17 +#endif +#ifndef RGBLIGHT_VAL_STEP +#define RGBLIGHT_VAL_STEP 17 +#endif + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboard/planck/keymaps/yang/keymap.c b/keyboard/planck/keymaps/yang/keymap.c new file mode 100644 index 0000000000..541b1a57e4 --- /dev/null +++ b/keyboard/planck/keymaps/yang/keymap.c @@ -0,0 +1,146 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _RGB 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_RGB] = { /* RGBLIGHT */ + {KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, + {KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + +} +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboard/planck/light_ws2812.c b/keyboard/planck/light_ws2812.c new file mode 100755 index 0000000000..f20043067e --- /dev/null +++ b/keyboard/planck/light_ws2812.c @@ -0,0 +1,181 @@ +/* +* light weight WS2812 lib V2.0b +* +* Controls WS2811/WS2812/WS2812B RGB-LEDs +* Author: Tim (cpldcpu@gmail.com) +* +* Jan 18th, 2014 v2.0b Initial Version +* Nov 29th, 2015 v2.3 Added SK6812RGBW support +* +* License: GNU GPL v2 (see License.txt) +*/ + +#include "light_ws2812.h" +#include +#include +#include +#include "debug.h" + +// Setleds for standard RGB +void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds) +{ + ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); +} + +void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask) +{ + ws2812_DDRREG |= pinmask; // Enable DDR + ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); + _delay_us(50); +} + +// Setleds for SK6812RGBW +void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) +{ + ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR + ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(ws2812_pin)); + _delay_us(80); +} + +void ws2812_sendarray(uint8_t *data,uint16_t datlen) +{ + ws2812_sendarray_mask(data,datlen,_BV(ws2812_pin)); +} + +/* + This routine writes an array of bytes with RGB values to the Dataout pin + using the fast 800kHz clockless WS2811/2812 protocol. +*/ + +// Timing in ns +#define w_zeropulse 350 +#define w_onepulse 900 +#define w_totalperiod 1250 + +// Fixed cycles used by the inner loop +#define w_fixedlow 2 +#define w_fixedhigh 4 +#define w_fixedtotal 8 + +// Insert NOPs to match the timing, if possible +#define w_zerocycles (((F_CPU/1000)*w_zeropulse )/1000000) +#define w_onecycles (((F_CPU/1000)*w_onepulse +500000)/1000000) +#define w_totalcycles (((F_CPU/1000)*w_totalperiod +500000)/1000000) + +// w1 - nops between rising edge and falling edge - low +#define w1 (w_zerocycles-w_fixedlow) +// w2 nops between fe low and fe high +#define w2 (w_onecycles-w_fixedhigh-w1) +// w3 nops to complete loop +#define w3 (w_totalcycles-w_fixedtotal-w1-w2) + +#if w1>0 + #define w1_nops w1 +#else + #define w1_nops 0 +#endif + +// The only critical timing parameter is the minimum pulse length of the "0" +// Warn or throw error if this timing can not be met with current F_CPU settings. +#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000) +#if w_lowtime>550 + #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?" +#elif w_lowtime>450 + #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)." + #warning "Please consider a higher clockspeed, if possible" +#endif + +#if w2>0 +#define w2_nops w2 +#else +#define w2_nops 0 +#endif + +#if w3>0 +#define w3_nops w3 +#else +#define w3_nops 0 +#endif + +#define w_nop1 "nop \n\t" +#define w_nop2 "rjmp .+0 \n\t" +#define w_nop4 w_nop2 w_nop2 +#define w_nop8 w_nop4 w_nop4 +#define w_nop16 w_nop8 w_nop8 + +void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) +{ + uint8_t curbyte,ctr,masklo; + uint8_t sreg_prev; + + masklo =~maskhi&ws2812_PORTREG; + maskhi |= ws2812_PORTREG; + sreg_prev=SREG; + cli(); + + while (datlen--) { + curbyte=*data++; + + asm volatile( + " ldi %0,8 \n\t" + "loop%=: \n\t" + " out %2,%3 \n\t" // '1' [01] '0' [01] - re +#if (w1_nops&1) +w_nop1 +#endif +#if (w1_nops&2) +w_nop2 +#endif +#if (w1_nops&4) +w_nop4 +#endif +#if (w1_nops&8) +w_nop8 +#endif +#if (w1_nops&16) +w_nop16 +#endif + " sbrs %1,7 \n\t" // '1' [03] '0' [02] + " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low + " lsl %1 \n\t" // '1' [04] '0' [04] +#if (w2_nops&1) + w_nop1 +#endif +#if (w2_nops&2) + w_nop2 +#endif +#if (w2_nops&4) + w_nop4 +#endif +#if (w2_nops&8) + w_nop8 +#endif +#if (w2_nops&16) + w_nop16 +#endif + " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high +#if (w3_nops&1) +w_nop1 +#endif +#if (w3_nops&2) +w_nop2 +#endif +#if (w3_nops&4) +w_nop4 +#endif +#if (w3_nops&8) +w_nop8 +#endif +#if (w3_nops&16) +w_nop16 +#endif + + " dec %0 \n\t" // '1' [+2] '0' [+2] + " brne loop%=\n\t" // '1' [+3] '0' [+4] + : "=&d" (ctr) + : "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo) + ); + } + + SREG=sreg_prev; +} diff --git a/keyboard/planck/light_ws2812.h b/keyboard/planck/light_ws2812.h new file mode 100755 index 0000000000..54eef22d9e --- /dev/null +++ b/keyboard/planck/light_ws2812.h @@ -0,0 +1,73 @@ +/* + * light weight WS2812 lib include + * + * Version 2.3 - Nev 29th 2015 + * Author: Tim (cpldcpu@gmail.com) + * + * Please do not change this file! All configuration is handled in "ws2812_config.h" + * + * License: GNU GPL v2 (see License.txt) + + + */ + +#ifndef LIGHT_WS2812_H_ +#define LIGHT_WS2812_H_ + +#include +#include +//#include "ws2812_config.h" + +/* + * Structure of the LED array + * + * cRGB: RGB for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106 + * cRGBW: RGBW for SK6812RGBW + */ + +struct cRGB { uint8_t g; uint8_t r; uint8_t b; }; +struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;}; + + + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50�s to reset the LEDs + */ + +void ws2812_setleds (struct cRGB *ledarray, uint16_t number_of_leds); +void ws2812_setleds_pin (struct cRGB *ledarray, uint16_t number_of_leds,uint8_t pinmask); +void ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t number_of_leds); + +/* + * Old interface / Internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +void ws2812_sendarray (uint8_t *array,uint16_t length); +void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask); + + +/* + * Internal defines + */ +#ifndef CONCAT +#define CONCAT(a, b) a ## b +#endif +#ifndef CONCAT_EXP +#define CONCAT_EXP(a, b) CONCAT(a, b) +#endif + +// #define ws2812_PORTREG CONCAT_EXP(PORT,ws2812_port) +// #define ws2812_DDRREG CONCAT_EXP(DDR,ws2812_port) + +#endif /* LIGHT_WS2812_H_ */ diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index b62862af04..63ca54761c 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -15,6 +15,11 @@ void * matrix_init_kb(void) { backlight_init_ports(); #endif + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + + // Turn status LED on DDRE |= (1<<6); PORTE |= (1<<6); @@ -28,4 +33,4 @@ void * matrix_scan_kb(void) { if (matrix_scan_user) { (*matrix_scan_user)(); } -}; \ No newline at end of file +}; diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index e775ea7c62..00b01b54df 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -6,6 +6,9 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#ifdef RGBLIGHT_ENABLE + #include "rgblight.h" +#endif #include #ifdef MIDI_ENABLE #include @@ -22,7 +25,7 @@ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ -} +} #define PLANCK_GRID( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -35,9 +38,9 @@ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ -} +} void * matrix_init_user(void); void * matrix_scan_user(void); -#endif \ No newline at end of file +#endif diff --git a/keyboard/planck/rgblight.c b/keyboard/planck/rgblight.c new file mode 100644 index 0000000000..552456aae3 --- /dev/null +++ b/keyboard/planck/rgblight.c @@ -0,0 +1,505 @@ +#include +#include +#include +#include "progmem.h" +#include "timer.h" +#include "rgblight.h" +#include "debug.h" + +const uint8_t DIM_CURVE[] PROGMEM = { + 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, + 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, + 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, + 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, + 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, + 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, + 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, + 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, + 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, + 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, + 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255, +}; +const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = {0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18,20,21,23,25,27,29,31,33,35,37,40,42,44,47,49,52,54,57,59,62,65,67,70,73,76,79,82,85,88,90,93,97,100,103,106,109,112,115,118,121,124,127,131,134,137,140,143,146,149,152,155,158,162,165,167,170,173,176,179,182,185,188,190,193,196,198,201,203,206,208,211,213,215,218,220,222,224,226,228,230,232,234,235,237,238,240,241,243,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243,241,240,238,237,235,234,232,230,228,226,224,222,220,218,215,213,211,208,206,203,201,198,196,193,190,188,185,182,179,176,173,170,167,165,162,158,155,152,149,146,143,140,137,134,131,128,124,121,118,115,112,109,106,103,100,97,93,90,88,85,82,79,76,73,70,67,65,62,59,57,54,52,49,47,44,42,40,37,35,33,31,29,27,25,23,21,20,18,17,15,14,12,11,10,9,7,6,5,5,4,3,2,2,1,1,1,0,0,0}; +const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; +const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; +const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; +const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20}; + +rgblight_config_t rgblight_config; +rgblight_config_t inmem_config; +struct cRGB led[RGBLED_NUM]; +uint8_t rgblight_inited = 0; + + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { + /* convert hue, saturation and brightness ( HSB/HSV ) to RGB + The DIM_CURVE is used only on brightness/value and on saturation (inverted). + This looks the most natural. + */ + uint8_t r, g, b; + + val = pgm_read_byte(&DIM_CURVE[val]); + sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]); + + uint8_t base; + + if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. + r = val; + g = val; + b = val; + } else { + base = ((255 - sat) * val) >> 8; + + switch (hue / 60) { + case 0: + r = val; + g = (((val - base)*hue) / 60) + base; + b = base; + break; + + case 1: + r = (((val - base)*(60 - (hue % 60))) / 60) + base; + g = val; + b = base; + break; + + case 2: + r = base; + g = val; + b = (((val - base)*(hue % 60)) / 60) + base; + break; + + case 3: + r = base; + g = (((val - base)*(60 - (hue % 60))) / 60) + base; + b = val; + break; + + case 4: + r = (((val - base)*(hue % 60)) / 60) + base; + g = base; + b = val; + break; + + case 5: + r = val; + g = base; + b = (((val - base)*(60 - (hue % 60))) / 60) + base; + break; + } + } + setrgb(r,g,b, led1); +} + +void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) { + (*led1).r = r; + (*led1).g = g; + (*led1).b = b; +} + + +uint32_t eeconfig_read_rgblight(void) { + return eeprom_read_dword(EECONFIG_RGBLIGHT); +} +void eeconfig_write_rgblight(uint32_t val) { + eeprom_write_dword(EECONFIG_RGBLIGHT, val); +} +void eeconfig_write_rgblight_default(void) { + dprintf("eeconfig_write_rgblight_default\n"); + rgblight_config.enable = 1; + rgblight_config.mode = 1; + rgblight_config.hue = 200; + rgblight_config.sat = 204; + rgblight_config.val = 204; + eeconfig_write_rgblight(rgblight_config.raw); +} +void eeconfig_debug_rgblight(void) { + dprintf("rgblight_config eprom\n"); + dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); + dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); + dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); + dprintf("rgblight_config.sat = %d\n", rgblight_config.sat); + dprintf("rgblight_config.val = %d\n", rgblight_config.val); +} + +void rgblight_init(void) { + debug_enable = 1; // Debug ON! + dprintf("rgblight_init called.\n"); + rgblight_inited = 1; + dprintf("rgblight_init start!\n"); + if (!eeconfig_is_enabled()) { + dprintf("rgblight_init eeconfig is not enabled.\n"); + eeconfig_init(); + eeconfig_write_rgblight_default(); + } + rgblight_config.raw = eeconfig_read_rgblight(); + if (!rgblight_config.mode) { + dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); + eeconfig_write_rgblight_default(); + rgblight_config.raw = eeconfig_read_rgblight(); + } + eeconfig_debug_rgblight(); // display current eeprom values + + rgblight_timer_init(); // setup the timer + + if (rgblight_config.enable) { + rgblight_mode(rgblight_config.mode); + } +} + +void rgblight_increase(void) { + uint8_t mode; + if (rgblight_config.mode < RGBLIGHT_MODES) { + mode = rgblight_config.mode + 1; + } + rgblight_mode(mode); +} + +void rgblight_decrease(void) { + uint8_t mode; + if (rgblight_config.mode > 1) { //mode will never < 1, if mode is less than 1, eeprom need to be initialized. + mode = rgblight_config.mode-1; + } + rgblight_mode(mode); +} + +void rgblight_step(void) { + uint8_t mode; + mode = rgblight_config.mode + 1; + if (mode > RGBLIGHT_MODES) { + mode = 1; + } + rgblight_mode(mode); +} + +void rgblight_mode(uint8_t mode) { + if (!rgblight_config.enable) { + return; + } + if (mode<1) { + rgblight_config.mode = 1; + } else if (mode > RGBLIGHT_MODES) { + rgblight_config.mode = RGBLIGHT_MODES; + } else { + rgblight_config.mode = mode; + } + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight mode: %u\n", rgblight_config.mode); + if (rgblight_config.mode == 1) { + rgblight_timer_disable(); + } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) { + // MODE 2-5, breathing + // MODE 6-8, rainbow mood + // MODE 9-14, rainbow swirl + // MODE 15-20, snake + // MODE 21-23, knight + rgblight_timer_enable(); + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); +} + +void rgblight_toggle(void) { + rgblight_config.enable ^= 1; + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); + if (rgblight_config.enable) { + rgblight_mode(rgblight_config.mode); + } else { + rgblight_timer_disable(); + _delay_ms(50); + rgblight_set(); + } +} + + +void rgblight_increase_hue(void){ + uint16_t hue; + hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360; + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_decrease_hue(void){ + uint16_t hue; + if (rgblight_config.hue-RGBLIGHT_HUE_STEP <0 ) { + hue = (rgblight_config.hue+360-RGBLIGHT_HUE_STEP) % 360; + } else { + hue = (rgblight_config.hue-RGBLIGHT_HUE_STEP) % 360; + } + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_increase_sat(void) { + uint8_t sat; + if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) { + sat = 255; + } else { + sat = rgblight_config.sat+RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_decrease_sat(void){ + uint8_t sat; + if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) { + sat = 0; + } else { + sat = rgblight_config.sat-RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_increase_val(void){ + uint8_t val; + if (rgblight_config.val + RGBLIGHT_VAL_STEP > 255) { + val = 255; + } else { + val = rgblight_config.val+RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} +void rgblight_decrease_val(void) { + uint8_t val; + if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) { + val = 0; + } else { + val = rgblight_config.val-RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} + +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val){ + inmem_config.raw = rgblight_config.raw; + if (rgblight_config.enable) { + struct cRGB tmp_led; + sethsv(hue, sat, val, &tmp_led); + inmem_config.hue = hue; + inmem_config.sat = sat; + inmem_config.val = val; + // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val); + rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); + } +} +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ + if (rgblight_config.enable) { + if (rgblight_config.mode == 1) { + // same static color + rgblight_sethsv_noeeprom(hue, sat, val); + } else { + // all LEDs in same color + if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { + // breathing mode, ignore the change of val, use in memory value instead + val = rgblight_config.val; + } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 14) { + // rainbow mood and rainbow swirl, ignore the change of hue + hue = rgblight_config.hue; + } + } + rgblight_config.hue = hue; + rgblight_config.sat = sat; + rgblight_config.val = val; + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + } +} + +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b){ + // dprintf("rgblight set rgb: %u,%u,%u\n", r,g,b); + for (uint8_t i=0;i>8)&0xff; + OCR3AL = RGBLED_TIMER_TOP&0xff; + SREG = sreg; +} +void rgblight_timer_enable(void) { + TIMSK3 |= _BV(OCIE3A); + dprintf("TIMER3 enabled.\n"); +} +void rgblight_timer_disable(void) { + TIMSK3 &= ~_BV(OCIE3A); + dprintf("TIMER3 disabled.\n"); +} +void rgblight_timer_toggle(void) { + TIMSK3 ^= _BV(OCIE3A); + dprintf("TIMER3 toggled.\n"); +} + +ISR(TIMER3_COMPA_vect) { + // Mode = 1, static light, do nothing here + if (rgblight_config.mode>=2 && rgblight_config.mode<=5) { + // mode = 2 to 5, breathing mode + rgblight_effect_breathing(rgblight_config.mode-2); + + } else if (rgblight_config.mode>=6 && rgblight_config.mode<=8) { + rgblight_effect_rainbow_mood(rgblight_config.mode-6); + } else if (rgblight_config.mode>=9 && rgblight_config.mode<=14) { + rgblight_effect_rainbow_swirl(rgblight_config.mode-9); + } else if (rgblight_config.mode>=15 && rgblight_config.mode<=20) { + rgblight_effect_snake(rgblight_config.mode-15); + } else if (rgblight_config.mode>=21 && rgblight_config.mode<=23) { + rgblight_effect_knight(rgblight_config.mode-21); + } +} + +// effects +void rgblight_effect_breathing(uint8_t interval) { + static uint8_t pos = 0; + static uint16_t last_timer = 0; + + if (timer_elapsed(last_timer)=RGBLED_NUM) k=RGBLED_NUM-1; + if (i==k) { + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, &preled[i]); + } + } + } + if (RGBLIGHT_EFFECT_KNIGHT_OFFSET) { + for (i=0;iRGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH) { + pos = RGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH-1; + increament = 1; + } else { + pos += 1; + } + } + +} diff --git a/keyboard/planck/rgblight.h b/keyboard/planck/rgblight.h new file mode 100644 index 0000000000..fd39ead09f --- /dev/null +++ b/keyboard/planck/rgblight.h @@ -0,0 +1,87 @@ +#ifndef RGBLIGHT_H +#define RGBLIGHT_H + +#ifndef RGBLIGHT_MODES +#define RGBLIGHT_MODES 23 +#endif + +#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 +#endif + +#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 +#endif +#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 11 +#endif + +#ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH +#define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4 +#endif + +#ifndef RGBLIGHT_HUE_STEP +#define RGBLIGHT_HUE_STEP 10 +#endif +#ifndef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 17 +#endif +#ifndef RGBLIGHT_VAL_STEP +#define RGBLIGHT_VAL_STEP 17 +#endif + +#define RGBLED_TIMER_TOP F_CPU/(256*64) + +#include +#include +#include "eeconfig.h" +#include "light_ws2812.h" + +typedef union { + uint32_t raw; + struct { + bool enable :1; + uint8_t mode :6; + uint16_t hue :9; + uint8_t sat :8; + uint8_t val :8; + }; +} rgblight_config_t; + +void rgblight_init(void); +void rgblight_increase(void); +void rgblight_decrease(void); +void rgblight_toggle(void); +void rgblight_step(void); +void rgblight_mode(uint8_t mode); +void rgblight_set(void); +void rgblight_increase_hue(void); +void rgblight_decrease_hue(void); +void rgblight_increase_sat(void); +void rgblight_decrease_sat(void); +void rgblight_increase_val(void); +void rgblight_decrease_val(void); +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val); +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); + +#define EECONFIG_RGBLIGHT (uint8_t *)7 +uint32_t eeconfig_read_rgblight(void); +void eeconfig_write_rgblight(uint32_t val); +void eeconfig_write_rgblight_default(void); +void eeconfig_debug_rgblight(void); + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); +void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1); +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); + +void rgblight_timer_init(void); +void rgblight_timer_enable(void); +void rgblight_timer_disable(void); +void rgblight_timer_toggle(void); +void rgblight_effect_breathing(uint8_t interval); +void rgblight_effect_rainbow_mood(uint8_t interval); +void rgblight_effect_rainbow_swirl(uint8_t interval); +void rgblight_effect_snake(uint8_t interval); +void rgblight_effect_knight(uint8_t interval); + +#endif From ba9ac457b2159097ecfd9848c5171c52e3a68260 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 17:05:47 -0800 Subject: [PATCH 46/52] Integrate WS2812 code into quantum core --- keyboard/planck/Makefile | 8 +------- keyboard/planck/config.h | 6 ------ {keyboard/planck => quantum}/light_ws2812.c | 0 {keyboard/planck => quantum}/light_ws2812.h | 0 quantum/quantum.mk | 9 +++++++-- {keyboard/planck => quantum}/rgblight.c | 0 {keyboard/planck => quantum}/rgblight.h | 0 7 files changed, 8 insertions(+), 15 deletions(-) rename {keyboard/planck => quantum}/light_ws2812.c (100%) rename {keyboard/planck => quantum}/light_ws2812.h (100%) rename {keyboard/planck => quantum}/rgblight.c (100%) rename {keyboard/planck => quantum}/rgblight.h (100%) diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index d37005260a..7619399b98 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -143,18 +143,12 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 bottom RGB light +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. ifdef BACKLIGHT_ENABLE SRC += backlight.c endif -ifdef RGBLIGHT_ENABLE - SRC += light_ws2812.c - SRC += rgblight.c - OPT_DEFS += -DRGBLIGHT_ENABLE -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index 856de73066..d3719e0cb1 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -63,15 +63,9 @@ along with this program. If not, see . #define ws2812_DDRREG DDRD #define ws2812_pin PD1 #define RGBLED_NUM 28 // Number of LEDs -#ifndef RGBLIGHT_HUE_STEP #define RGBLIGHT_HUE_STEP 10 -#endif -#ifndef RGBLIGHT_SAT_STEP #define RGBLIGHT_SAT_STEP 17 -#endif -#ifndef RGBLIGHT_VAL_STEP #define RGBLIGHT_VAL_STEP 17 -#endif /* * Feature disable options diff --git a/keyboard/planck/light_ws2812.c b/quantum/light_ws2812.c similarity index 100% rename from keyboard/planck/light_ws2812.c rename to quantum/light_ws2812.c diff --git a/keyboard/planck/light_ws2812.h b/quantum/light_ws2812.h similarity index 100% rename from keyboard/planck/light_ws2812.h rename to quantum/light_ws2812.h diff --git a/quantum/quantum.mk b/quantum/quantum.mk index df72241788..de93af7e8c 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -2,7 +2,7 @@ QUANTUM_DIR = quantum # # project specific files SRC += $(QUANTUM_DIR)/keymap_common.c \ - $(QUANTUM_DIR)/led.c + $(QUANTUM_DIR)/led.c # ifdef KEYMAP_FILE # ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)')) @@ -35,6 +35,12 @@ ifdef UNICODE_ENABLE SRC += $(QUANTUM_DIR)/keymap_unicode.c endif +ifdef RGBLIGHT_ENABLE + SRC += $(QUANTUM_DIR)/light_ws2812.c + SRC += $(QUANTUM_DIR)/rgblight.c + OPT_DEFS += -DRGBLIGHT_ENABLE +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -45,4 +51,3 @@ include $(TMK_DIR)/protocol/lufa.mk include $(TMK_DIR)/common.mk include $(TMK_DIR)/rules.mk - diff --git a/keyboard/planck/rgblight.c b/quantum/rgblight.c similarity index 100% rename from keyboard/planck/rgblight.c rename to quantum/rgblight.c diff --git a/keyboard/planck/rgblight.h b/quantum/rgblight.h similarity index 100% rename from keyboard/planck/rgblight.h rename to quantum/rgblight.h From 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 17:19:33 -0800 Subject: [PATCH 47/52] fix bugs in animation effects --- quantum/rgblight.c | 2 +- quantum/rgblight.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 552456aae3..2215cf5cdf 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -445,7 +445,7 @@ void rgblight_effect_snake(uint8_t interval) { rgblight_set(); if (increament == 1) { if (pos - 1 < 0) { - pos = 13; + pos = RGBLED_NUM-1; } else { pos -= 1; } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index fd39ead09f..9e1562328f 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -13,7 +13,7 @@ #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 #endif #ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET -#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 11 +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9 #endif #ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH From 84657a9e4be2dfa54338b659d8f0a49c2f50e3f4 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 17:54:35 -0800 Subject: [PATCH 48/52] Add a photo for the demonstration of RGB underflow --- .../keymaps/yang/planck-with-rgb-underglow.jpg | Bin 0 -> 343033 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg diff --git a/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c636b9a83dfc9d5acc6e9f4d887dee98b3d65a7d GIT binary patch literal 343033 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 MX=nb>ocjMa0R}Ftr2qf` literal 0 HcmV?d00001 From 2d29795de81b6655735ee5b74a57deaaa4c63f1d Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 17:56:43 -0800 Subject: [PATCH 49/52] add one more photo --- keyboard/planck/keymaps/yang/WS2812-wiring.jpg | Bin 0 -> 290495 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboard/planck/keymaps/yang/WS2812-wiring.jpg diff --git a/keyboard/planck/keymaps/yang/WS2812-wiring.jpg b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c65cd283a424e6c33ca33bc5d41cbfb10521f37 GIT binary patch literal 290495 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

9^H#HX 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 `cFy=Srz>=OVq0Bx__crvV@K`n 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 z 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 Date: Sun, 24 Jan 2016 18:12:19 -0800 Subject: [PATCH 50/52] Update README --- README.md | 52 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2ed05e76e2..9c476e507a 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u KC_PIPE | KC_COLN : -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): @@ -86,15 +86,15 @@ These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LS We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. -### Temporarily setting the default layer +### Temporarily setting the default layer `DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. @@ -115,7 +115,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // case 0: // this would trigger when you hit a key mapped as M(0) if (record->event.pressed) { return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } + } break; } return MACRO_NONE; @@ -141,11 +141,11 @@ Everything is assuming you're in Qwerty (in software) by default, but there is b #include "keymap_.h" Where is "colemak" or "dvorak". After including this line, you will get access to: - + * `CM_*` for all of the Colemak-equivalent characters * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. @@ -188,7 +188,7 @@ The method does not require Unicode support in the keyboard itself but depends i First you need to select a modifier combination that is not in use by any of your programs. CtrlAltWin is not used very widely and should therefore be perfect for this. There is a macro defined for a mod-tab combo `LCAG_T`. -Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. +Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. In the default script of AutoHotkey you can define custom hotkeys. @@ -198,3 +198,33 @@ In the default script of AutoHotkey you can define custom hotkeys. The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a. AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. + +## RGB Under Glow Mod + +![Planck with RGB Underglow](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg) + +Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY). + +For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring the VCC, GND, and DI, you can enable the underglow in your Makefile. + + RGBLIGHT_ENABLE = yes + +Please note that the underglow is not compatible with MIDI functions. So you cannot enable both of them at the same time. + +Please add the following options into your config.h, and set them up according your hardware configuration. + + #define ws2812_PORTREG PORTF + #define ws2812_DDRREG DDRF + #define ws2812_pin PF4 + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboard/planck/keymaps/yang/keymap.c` + +### WS2812 Wiring + +![WS2812 Wiring](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/WS2812-wiring.jpg) + +Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20. From f277079dfa831d44456f00f307e26cf79d36c03d Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sun, 24 Jan 2016 18:16:40 -0800 Subject: [PATCH 51/52] no message --- keyboard/planck/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 7619399b98..307b0c7f4f 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -137,13 +137,13 @@ CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = YES # MIDI controls # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. ifdef BACKLIGHT_ENABLE SRC += backlight.c From baddbc6b23b34b5873e7a355c55f1e04485881f6 Mon Sep 17 00:00:00 2001 From: tonyabra Date: Sun, 24 Jan 2016 23:33:26 -0600 Subject: [PATCH 52/52] Simplified osx layout for ergodox ez --- .../ergodox_ez/keymaps/tonyabra_osx/keymap.c | 184 +++ .../ergodox_ez/keymaps/tonyabra_osx/readme.md | 5 + .../keymaps/tonyabra_osx/tonyabra_osx.hex | 1471 +++++++++++++++++ 3 files changed, 1660 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c b/keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c new file mode 100644 index 0000000000..fb7c00983e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | = | | - | 6 | 7 | 8 | 9 | 0 | Enter | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; | '" | + * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` | { | } | '" | | Left | Up | Down | Right| L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Del | Alt | | Alt | Ctrl | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + TG(SYMB), KC_GRV, KC_LBRC, KC_RBRC,KC_QUOT, + KC_DELT,KC_LALT, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT,KC_UP, KC_DOWN,KC_RIGHT, TG(MDIA), + KC_RALT, KC_RCTL, + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md new file mode 100644 index 0000000000..f9d76efc23 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ OS X Simplified Configuration + +This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. + +This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex b/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex new file mode 100644 index 0000000000..c3481dccbe --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex @@ -0,0 +1,1471 @@ +:100000000C9400070C9444070C9444070C94440788 +:100010000C9444070C9444070C9444070C94440734 +:100020000C9444070C9444070C9458120C942A1313 +:100030000C9444070C9444070C9444070C94440714 +:100040000C9444070C94002C0C9444070C94440723 +:100050000C9444070C94F8210C9444070C94440726 +:100060000C9444070C9444070C9444070C944407E4 +:100070000C9444070C9444070C9444070C944407D4 +:100080000C9444070C9444070C9444070C944407C4 +:100090000C9444070C9444070C9444070C944407B4 +:1000A0000C9444070C9444070C9444079713B91319 +:1000B000A714B913A714FE132114A71476148914D6 +:1000C000D017D017FF17FF1742188018991A991ADE +:1000D0009918991A9A199A196D1A991A991A841ACB +:1000E0000000F0A129002B002A00E10001540000CB +:1000F0001E00140004001D0035004D001F001A00F2 +:1001000016001B002F002A00200008000700060030 +:1001100030002C00210015000900190034004A00AD +:10012000220017000A00050000004C002E000154B8 +:100130000000E3000000E2002D0001540000E30095 +:100140000000E60023001C000B0011000000E4008A +:10015000240018000D00100050004B0025000C007A +:100160000E00360052002800260012000F00370053 +:1001700051002B0027001300330038004F004E00C1 +:10018000280031003400E5000254000001000100A5 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE000100010000000A0025300D +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20342E392E3372 +:100C2000204156522D4C4942433A20312E382E3124 +:100C3000204156525F415243483A20617672350A4C +:100C4000004F5054494F4E533A204C554641204294 +:100C50004F4F544D41474943204D4F5553454B4508 +:100C6000592045585452414B455920434F4E534FFC +:100C70004C4520434F4D4D414E44204E4B524F204A +:100C80003531320A004255494C443A2066643732C5 +:100C9000613436202832323A35363A3234204A61CD +:100CA0006E2032342032303136290A005649443A17 +:100CB00020307846454544284572676F446F782058 +:100CC000455A29205049443A20307831333037286A +:100CD0004572676F446F7820455A29205645523A2D +:100CE000203078303030310A00444553433A207484 +:100CF0002E6D2E6B2E206B6579626F61726420669B +:100D000069726D7761726520666F72204572676FD8 +:100D1000646F780A000A092D2056657273696F6E38 +:100D2000202D0A000A6D6F7573653A206F66660A9A +:100D3000000A6D6F7573653A206F6E0A000A6B6565 +:100D400079626F6172643A206F66660A000A6B65A9 +:100D500079626F6172643A206F6E0A000A6D617485 +:100D60007269783A206F66660A000A6D617472696A +:100D7000783A206F6E0A000A64656275673A206FE0 +:100D80006E0A000A64656275673A206F66660A003B +:100D90000A0A626F6F746C6F616465722E2E2E206A +:100DA00000433E20006565636F6E6669673A0A001E +:100DB000536C656570204C454420746573740A005B +:100DC0000000000000000000000000010204060A0C +:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD +:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD +:100DF0000F0A0604020100000000000000000000CD +:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 +:100E100024C08091F9019091FA01A091FB01B09159 +:100E2000FC018730904BA740B04BB9F41092F90108 +:100E30001092FA011092FB011092FC0114BE84B7CB +:100E4000877F84BF88E10FB6F8948093600010928A +:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 +:100E6000ECE9FBE502C005900D92AA33B107D9F772 +:100E700011E0AAE3B1E001C01D92A93FB107E1F77B +:100E80000E94900F0C94CC2D0C940000FF93EF93D4 +:100E9000E0913A01F0913B01309709F00995EF910B +:100EA000FF910895FC018591803011F0EFDFFBCFB9 +:100EB0000895FF27E0E230E247FF0CC0419597FF1D +:100EC00009C0EDE26095709580959095611D711D4A +:100ED000811D911D27FF02C0219530E350E2AA2712 +:100EE000660F771F881F991FAA1FA41710F0A41B55 +:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 +:100F0000F395611571058105910541F7ED3211F4F5 +:100F1000EF93F395F21718F43F93F395FBCF8F916E +:100F2000B5DFFA95E1F70895E991F991859180305F +:100F300021F0853219F0AADFF9CF089520E0E89476 +:100F400055915532C1F3503311F4689455915A3389 +:100F500048F4505390F3220F022E220F220F200D3F +:100F6000250FF4CF0EF4219589919991533619F3F9 +:100F7000533729F1533559F1BC0188279927E89453 +:100F80005C3621F48991999168945591543639F4DD +:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 +:100FA0004AE039F0583540E121F0523642E009F08C +:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC +:100FC000EF93FC0181918030B9F360DFFBCFFF9399 +:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 +:100FE000A3DFCF91DF91089561110BC0FC018281D5 +:100FF000882321F085EE0E946D1603C085EE0E94C5 +:10100000351780E090E0089508956091BC017091DB +:10101000BD018091BE019091BF010E94FB205698B6 +:101020005E9825982D9826982E9827982F9881308D +:1010300019F0823021F00895259A2D9A0895269A64 +:101040002E9A089585E098E0892B11F00E940508FA +:1010500080E090E0089556985E9825982D982698FF +:101060002E9827982F988FEF90E090938900809387 +:10107000880090938B0080938A0090938D008093DA +:101080008C00259A2D9A2FEF80E792E02150804026 +:101090009040E1F700C00000269A2E9A2FEF80E7DB +:1010A00092E0215080409040E1F700C00000279A74 +:1010B0002F9A2FEF80E792E0215080409040E1F797 +:1010C00000C0000025982D982FEF80E792E0215076 +:1010D00080409040E1F700C0000026982E982FEF46 +:1010E00080E792E0215080409040E1F700C000008E +:1010F00027982F9856985E9825982D9826982E9880 +:1011000027982F98089589EA8093800089E080933A +:10111000810024982C983F988AB18F748AB96E9870 +:10112000479A8BB1806B8BB9769A0E942B0884E02A +:1011300098E0892B11F00E94040880E090E0089567 +:1011400080E28093000180913C0181110EC00E94D9 +:10115000EF0881E080933C012FEF83ED90E3215075 +:1011600080409040E1F700C0000080E40E94F50854 +:101170008093000181112EC00E941F0980930001FD +:10118000811128C00E941F0980930001811122C093 +:101190008FE30E941F098093000181111BC00E94F0 +:1011A000170980E40E94F50880930001811112C0A4 +:1011B0008CE00E941F098093000181110BC00E94E6 +:1011C0001F0980930001811105C08FE30E941F0950 +:1011D000809300010E9417098091000108951092E8 +:1011E000B9008AE08093B800089594EA9093BC0017 +:1011F0009091BC0097FFFCCF9091B900987F9830F8 +:1012000021F0903111F081E008958093BB0084E8D3 +:101210008093BC008091BC0087FFFCCF8091B90017 +:10122000887F883111F0803471F780E0089584E977 +:101230008093BC008091BC0084FDFCCF0895809316 +:10124000BB0084E88093BC008091BC0087FFFCCF8A +:101250009091B900987F81E0983209F480E0089578 +:1012600084E88093BC008091BC0087FFFCCF809114 +:10127000BB00089580910001811115C080E40E9497 +:10128000F5088093000181110CC082E10E941F09C2 +:1012900080930001811105C08FEF0E941F09809388 +:1012A00000010E94170984B1807F84B985B1807FD5 +:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 +:1012C000469808950E94A008809300010E943A0960 +:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 +:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 +:1012F00083E898E0892B11F00C94830808959F925D +:10130000AF92BF92CF92DF92EF92FF920F931F9313 +:10131000CF93DF93809100018823E1F080913D011C +:101320008F5F80933D01811115C082E493E00E949C +:1013300052070E94A00880930001882329F088E2C8 +:1013400093E00E94520706C084E193E00E94520796 +:101350000E942B080EE311E0C0E0D0E0BB24B39460 +:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 +:10137000F22EC730D10500F580910001811164C0C3 +:1013800080E40E94F50880930001811112C082E17F +:101390000E941F098093000181110BC0C6010C2E11 +:1013A00001C0880F0A94EAF780950E941F09809374 +:1013B00000010E94170948C0CA30A1F028F4C830C3 +:1013C00059F0C93061F005C0CC3089F070F0CD30F3 +:1013D00089F0209A289810C0219A29980DC0229A45 +:1013E0002A980AC0239A2B9807C0529A01C0539A90 +:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 +:10140000799902C082E001C080E091709B25982B01 +:101410007C9902C084E001C080E0892B7D9902C0E4 +:1014200038E001C030E0832B7E9902C020E101C08A +:1014300020E0822B9FB19095991F9927991F929533 +:10144000990F907E892B10C080910001811174C08A +:1014500080E40E94F50880930001882309F459C0B4 +:10146000912C0E941709892DF8019081981739F164 +:10147000808380910101882301F18091D70180FF51 +:1014800004C08AE093E00E9452078091D70180FF58 +:101490000CC0809101011F928F93FF92EF920E94E6 +:1014A000EB070F900F900F900F908091D70180FF66 +:1014B00004C083E093E00E945207A09201010E94C1 +:1014C0003A0921960F5F1F4FCE30D10509F051CF59 +:1014D000809101018823B1F081508093010188231C +:1014E00039F08FE99FE00197F1F700C000000AC0D2 +:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 +:101500008E13FCCF82E298E0892BC1F00E94220862 +:1015100015C083E10E941F09809300018111A0CFB3 +:1015200081E40E94F50880930001811199CF0E9407 +:101530003009982E909495CF80E096CF81E0DF918E +:10154000CF911F910F91FF90EF90DF90CF90BF90C0 +:10155000AF909F900895E82FF0E0E45BFE4F80810C +:101560000895CF92DF92EF92FF920F931F93CF9344 +:10157000DF938CEE92E00E9452078CE4E82E81E02B +:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 +:1015900012E0DF93CF93DF92CF920E94EB0784EEAD +:1015A00092E00E945207F70181917F0190E00E9432 +:1015B00061219F938F931F930F930E94EB078CEDF4 +:1015C00092E00E94520721968DB79EB708960FB6FB +:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE +:1015E000CF911F910F91FF90EF90DF90CF900895D2 +:1015F0008B3B910578F4883A910540F5853A910541 +:10160000D0F48430910508F0B1C08130910509F41F +:10161000ADC06BC0803E910508F467C0883E91055F +:1016200008F4A4C09C01205F31092031310508F085 +:101630005CC090650895853A910509F459C0863AD1 +:10164000910509F058C082E890E40895883A910520 +:1016500009F454C0893A910509F453C08A3A9105B6 +:1016600009F452C08B3A910509F451C08C3A9105A6 +:1016700009F450C08D3A910509F44FC0803B9105A3 +:1016800009F44EC08E3A910509F44DC08F3A910588 +:1016900009F44CC0813B910509F44BC0823B910594 +:1016A00009F44AC0833B910509F449C0843B910584 +:1016B00009F448C0853B910509F447C0863B910574 +:1016C00009F446C0873B910509F445C0883B910564 +:1016D00009F444C0893B910509F443C08A3B910554 +:1016E00009F442C080E094E4089580E090E0089519 +:1016F00081E890E4089583E890E4089582EE94E40C +:10170000089589EE94E408958AEE94E4089585EBB3 +:1017100094E4089586EB94E4089587EB94E40895A7 +:101720008CEC94E408958DEC94E4089583E895E4BA +:1017300008958AE895E4089582E995E4089584E996 +:1017400095E4089581E296E4089583E296E408958D +:1017500084E296E4089585E296E4089586E296E4AC +:10176000089587E296E408958AE296E4089508953C +:1017700096E0799FF001112494E5899FE00DF11D19 +:101780001124E60FF11DEE0FFF1FEC51FF4F859165 +:1017900094910895880F991FFC01E05AF0408591BB +:1017A00094910895880F991FFC01E052FF4F859195 +:1017B0009491089526E0729FF001112444E5849FDE +:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E +:1017D000FF4F859194919C013A9521154FE1340773 +:1017E00008F41EC13F512115304120F49F700E9422 +:1017F000D20B08959C0130532115304118F49927DC +:10180000906C0895811520E5920769F40E94BB1A37 +:101810004FEF84E39CE0415080409040E1F700C0EE +:1018200000000C941D22813020E5920751F48CE5D4 +:1018300093E00E9452078091D70181608093D70185 +:1018400008959C0130552115304108F051C0292FD1 +:1018500033272F70332721303105D9F4AC01437081 +:10186000552702C0220F331F4A95E2F73C68AC01AE +:1018700064E0440F551F6A95E1F744275370242B09 +:10188000352B73E0880F991F7A95E1F780769927B9 +:101890001DC02230310529F4982F8827816F906A66 +:1018A000089523303105A9F4AC014370552721E098 +:1018B00030E002C0220F331F4A95E2F73C6843E054 +:1018C000880F991F4A95E1F7807E9770822B932BA2 +:1018D000089524303105E1F4AC014370552721E02F +:1018E00030E002C0220F331F4A95E2F73A68E7CF93 +:1018F0009C0130572115304118F49F709062089573 +:101900009C0130582115304118F49F70906A089559 +:10191000803E9105E0F4803C910558F581339105B6 +:1019200009F46FC048F48932910509F463C08A3222 +:10193000910509F46DC072C089339105E9F08238D0 +:101940009105D1F08533910509F44DC067C0833E00 +:10195000910581F138F4803E9105B9F0823E910500 +:10196000D9F05CC0863E910561F1873E9105A1F1F9 +:1019700055C00E94CA0B08952091EA0120FD02C0C3 +:1019800021FF4CC080EE90E049C08091EA0180FFC9 +:10199000F9CF89E390E042C08091EA0182FF0EC056 +:1019A0008091EA0184FF03C080E090E037C083EEBD +:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 +:1019C0002DC08091EA0183FF0BC08091EA0184FD64 +:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 +:1019E00086EE90E01BC08091EA0185FF07C089E286 +:1019F00090E014C08091EA0185FFF9CF85E390E083 +:101A00000DC08091EA0186FF07C08AE290E006C01F +:101A10008091EA0186FFF9CF81E390E00E94F80A05 +:101A20000895089580916D0108959FB7F8941092DC +:101A30005C019FBF9091F001943009F057C09091E4 +:101A4000E9009F703091EC00232F217030FD20E8D9 +:101A5000922B24E02093E9002091EB0020FF43C06B +:101A60002091EE0027FF3FC020915A01222321F050 +:101A70002091E80025FF37C010925A0126E03091EE +:101A8000E80035FD15C03091F001343061F530913A +:101A9000EB0035FD28C0215021F481E080935A01EC +:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 +:101AB0008093F1008091E80085FD0AC08091E800E4 +:101AC00080FFFCCF8091E8008E778093E80006C00D +:101AD0008FB7F89421E020935C018FBF9F709093A3 +:101AE000E90080E008959F709093E9008FEF0895DA +:101AF000CF93DF9300D01F92CDB7DEB79C018091CA +:101B0000F001843019F593E099833B832A83909305 +:101B1000E9008FEF9091E800815095FD06C095EDAA +:101B20009A95F1F700008111F5CF8091E80085FFCB +:101B30000DC040E050E063E070E0CE0101960E94ED +:101B400048108091E8008E778093E8000F900F9006 +:101B50000F90DF91CF910895CF93DF9300D01F9224 +:101B6000CDB7DEB72091F001243021F522E02983A2 +:101B70009B838A8383E08093E9008FEF9091E80054 +:101B8000815095FD06C095ED9A95F1F70000811101 +:101B9000F5CF8091E80085FF0DC040E050E063E0A4 +:101BA00070E0CE0101960E9448108091E8008E7787 +:101BB0008093E8000F900F900F90DF91CF910895E0 +:101BC0002091F0012430F1F422E02093E9002FEF7E +:101BD0003091E800215035FD06C035ED3A95F1F71A +:101BE00000002111F5CF2091E80025FF0BC040E057 +:101BF00050E065E070E00E9448108091E8008E7728 +:101C00008093E8000895CF93DF932091F001243072 +:101C100009F048C0EC0180910C018823E1F080912B +:101C20000D018823C1F085E08093E9008FEF90914A +:101C3000E800815095FD06C095E19A95F1F7000006 +:101C40008111F5CF8091E80085FF2CC040E050E085 +:101C500060E170E017C081E08093E9008FEF909120 +:101C6000E800815095FD06C095ED9A95F1F70000CA +:101C70008111F5CF8091E80085FF14C040E050E06D +:101C800068E070E0CE010E9448108091E8008E77F5 +:101C90008093E80080E1FE01ADE5B1E001900D9296 +:101CA0008A95E1F7DF91CF91089583E993E00E944F +:101CB00052078091EF01811109C00E94DD110E943D +:101CC0003A128091E20084608093E20008958FE8E8 +:101CD00093E00E9452071092EF0108958BE893E081 +:101CE0000C94520787E893E00E9452070C94ED2B66 +:101CF00083E893E00E9452070E94B7210E94F32BD1 +:101D00000E94DF140C94110D20915B012F5F822F34 +:101D100062E30E94612D992319F020935B010895DD +:101D200010925B0180915C01882371F18091F00138 +:101D3000843041F58091E9008F702091EC00922F62 +:101D4000917020FD90E8892B94E09093E9009091A8 +:101D5000EB0090FF14C09091EE0097FF10C090919F +:101D6000E80095FF03C01092F100F9CF9091E800D0 +:101D700090FF05C09091E8009E779093E8008F70E7 +:101D80008093E90010925C01089542E061EC81E0EB +:101D90000E94571142E061EC82E00E94571142E03C +:101DA00061EC83E00E94571142E261EC84E00E9402 +:101DB000571142E161EC85E00C9457118091F201DA +:101DC000833009F455C030F4813071F0823009F469 +:101DD0008EC008958A3009F47AC08B3009F460C04F +:101DE000893009F09CC020C08091F101813A09F04E +:101DF00096C08091E800877F8093E8008091F5018C +:101E00009091F601892B21F460E18DE591E003C00A +:101E100060E080E090E070E00E9493108091E80024 +:101E20008B778093E80008958091F101813209F069 +:101E300076C08091F5019091F601009719F0049712 +:101E400009F06DC08091E800877F8093E800809161 +:101E5000E80082FD05C08091F0018111F8CF5FC0DC +:101E60008091F10080936D018091E8008B7753C0E1 +:101E70008091F101813A09F052C08091F501909171 +:101E8000F601892B09F04BC08091E800877F809391 +:101E9000E8008091E80080FFFCCF80910C0136C003 +:101EA0008091F1018132D9F58091F5019091F6018F +:101EB000892BA9F58091E800877F8093E8000E9434 +:101EC0008C118091F30180930C010C94BB1A8091CA +:101ED000F101813221F58091E800877F8093E8004D +:101EE0000E948C118091F40180936E01089580917D +:101EF000F101813AA1F48091E800877F8093E800A6 +:101F00008091E80080FFFCCF80916E018093F1000A +:101F10008091E8008E778093E8000C948C110895EE +:101F200084B7877F84BF88E10FB6F8948093600000 +:101F3000109260000FBE90E080E80FB6F894809396 +:101F40006100909361000FBE0E946C150E94DD112C +:101F50000E943A128091E20084608093E20085E161 +:101F60009DE00E94F62078940E94BF140E946E1596 +:101F700082E091E00E94DA140E94DB2B82E793E07A +:101F80000E9452078091F001853089F48EE693E03B +:101F90000E9452070E947B218091EE01882391F3D9 +:101FA0000E94A321882371F30E943210EBCF0E947C +:101FB0009C15E8CF292F332723303105C9F064F46D +:101FC0002130310581F02230310509F043C08DE820 +:101FD00090E02BEC33E042C021323105F1F02232A7 +:101FE000310541F137C082E190E028E534E036C0A8 +:101FF00099278130910541F08230910541F0892B7C +:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 +:10201000F3E0849190E09F0121C06530D8F4E62F71 +:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 +:1020300090E014C0653070F470E0FB01EE0FFF1FFC +:10204000E55EFE4F20813181FB01EA5EFE4F80811B +:1020500090E004C080E090E020E030E0FA013183BD +:102060002083089580E189BD82E189BD09B400FE25 +:10207000FDCF8091D8008F7D8093D8008091E000C3 +:1020800082608093E0008091E00081FDFCCF0895A4 +:10209000CF92DF92EF92FF920F931F93CF93DF9334 +:1020A000EC018B016A010E94AB11811133C0C11494 +:1020B000D10439F0F60180819181081B190BC80FFA +:1020C000D91FE12CF12C0115110519F18091E800BF +:1020D00085FD16C08091E8008E778093E800C114DA +:1020E000D10449F0F60180819181E80EF91EF18258 +:1020F000E08285E00FC00E94AB11882321F30AC063 +:1021000089918093F10001501109FFEFEF1AFF0A46 +:10211000DACF80E0DF91CF911F910F91FF90EF9088 +:10212000DF90CF9008952091F7013091F8012617A4 +:10213000370748F06115710539F42091E8002E77D2 +:102140002093E80001C0B90140E061157105A9F1D3 +:102150002091F001222309F443C0253009F442C044 +:102160002091E80023FD40C02091E80022FD32C00C +:102170002091E80020FFE9CF4091F3002091F20088 +:1021800030E0342BFC01CF016115710559F0283086 +:10219000310540F481918093F100615071092F5F06 +:1021A0003F4FF1CF41E02830310509F040E0209168 +:1021B000E8002E772093E800C8CF4111C9CF0AC0AC +:1021C0008091F001882361F0853061F08091E80012 +:1021D00083FD0AC08091E80082FFF2CF80E008957D +:1021E00082E0089583E0089581E008952091F70149 +:1021F0003091F8012617370748F06115710539F459 +:102200002091E8002E772093E80001C0B901FC017D +:1022100020E06115710591F18091F001882309F4A6 +:1022200040C0853009F43FC08091E80083FD3DC087 +:102230008091E80082FD2FC08091E80080FFE9CF07 +:102240002091F3008091F20090E0922B61157105CE +:1022500059F08830910540F424912093F100319693 +:10226000615071090196F2CF21E0089709F020E052 +:102270008091E8008E778093E800CBCF2111CCCFFE +:102280000AC08091F001882361F0853061F080916F +:10229000E80083FD0AC08091E80082FFF2CF80E071 +:1022A000089582E0089583E0089581E00895982FCD +:1022B000973058F59093E900981739F07091EC0039 +:1022C0002091ED005091F00003C0242F762F50E0B4 +:1022D00021FF19C03091EB003E7F3093EB0030912D +:1022E000ED003D7F3093ED003091EB003160309395 +:1022F000EB007093EC002093ED005093F0002091E0 +:10230000EE0027FF07C09F5FD3CF8F708093E90057 +:1023100081E0089580E008958091F10187FF11C068 +:102320008091E80082FD05C08091F0018111F8CF15 +:1023300011C08091E8008B770BC08091F001882359 +:1023400049F08091E80080FFF8CF8091E8008E7717 +:102350008093E80008952091E4003091E50095E62F +:102360004091EC00842F817040FF22C08091E800F2 +:1023700080FD1CC08091F001882391F0853091F0A0 +:102380008091EB0085FD10C04091E4005091E50084 +:102390004217530729F39A01915011F784E00895E9 +:1023A00082E0089583E0089581E0089580E0089533 +:1023B0004091E80042FFDECF08950E944B120E9438 +:1023C0005312E0EEF0E0808181608083E8EDF0E080 +:1023D00080818F77808319BCA7EDB0E08C918E7FD0 +:1023E0008C9380818F7E80831092EF0108950F93EC +:1023F0001F93CF93DF930E944B120E945312C8ED9C +:10240000D0E088818F7788838881806888838881FD +:102410008F7D888319BC1092F0011092EC0110920C +:10242000EE011092ED0100EE10E0F80180818B7F4B +:10243000808388818160888342E060E080E00E9440 +:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 +:10245000808181608083808188608083F8018081B1 +:102460008E7F8083888180618883DF91CF911F91E7 +:102470000F910895E8EDF0E080818F7E8083E7ED95 +:10248000F0E080818160808384E082BF81E080937E +:10249000EF010C94F711E8EDF0E080818E7F8083EE +:1024A0001092E20008951092DA001092E10008956F +:1024B0001F920F920FB60F9211242F933F934F93B9 +:1024C0005F936F937F938F939F93AF93BF93EF939C +:1024D000FF938091E10082FF0BC08091E20082FFB8 +:1024E00007C08091E1008B7F8093E1000E94840E01 +:1024F0008091DA0080FF1FC08091D80080FF1BC050 +:102500008091DA008E7F8093DA008091D90080FF7D +:102510000DC080E189BD82E189BD09B400FEFDCF17 +:1025200081E08093F0010E94550E05C019BC109205 +:10253000F0010E94670E8091E10080FF19C0809138 +:10254000E20080FF15C08091E2008E7F8093E20060 +:102550008091E20080618093E2008091D8008062E7 +:102560008093D80019BC85E08093F0010E94720E20 +:102570008091E10084FF30C08091E20084FF2CC094 +:1025800080E189BD82E189BD09B400FEFDCF809163 +:10259000D8008F7D8093D8008091E1008F7E80935A +:1025A000E1008091E2008F7E8093E2008091E20062 +:1025B00081608093E2008091EC01882311F084E037 +:1025C00007C08091E30087FD02C081E001C083E085 +:1025D0008093F0010E94780E8091E10083FF29C072 +:1025E0008091E20083FF25C08091E100877F809386 +:1025F000E10082E08093F0011092EC018091E10013 +:102600008E7F8093E1008091E2008E7F8093E200D4 +:102610008091E20080618093E20042E060E080E02F +:102620000E9457118091F00088608093F0000E9412 +:102630006E0EFF91EF91BF91AF919F918F917F911E +:102640006F915F914F913F912F910F900FBE0F901F +:102650001F9018951F920F920FB60F9211242F936F +:102660003F934F935F936F937F938F939F93AF931A +:10267000BF93CF93DF93EF93FF93C091E900CF70A7 +:102680008091EC00D82FD17080FDD0E81092E90045 +:102690008091F000877F8093F00078940E946E1301 +:1026A0001092E9008091F00088608093F000CD2BBB +:1026B000CF70C093E900FF91EF91DF91CF91BF916F +:1026C000AF919F918F917F916F915F914F913F91CA +:1026D0002F910F900FBE0F901F9018951F93CF93BF +:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 +:1026F000CDBFE1EFF1E088E08E0F9091F100919372 +:102700008E13FBCF0E94DE0E8091E80083FF1FC175 +:102710008091F1019091F201492F50E04A3051052A +:1027200008F015C1FA01EA5AFF4F0C94812D803848 +:1027300081F0823809F00BC18091F5018F70809390 +:10274000E9008091EB0085FB882780F91092E90071 +:1027500006C08091ED019091EE01911182609091FF +:10276000E800977F9093E8008093F1001092F100C9 +:10277000C8C0282F2D7F09F0EAC0882319F08230C5 +:1027800061F0E5C08091F301813009F0E0C0933041 +:1027900009F080E08093EE012BC08091F30181115C +:1027A00027C08091F5018F7009F4D1C08093E900B2 +:1027B0002091EB0020FF1CC0933021F48091EB00AE +:1027C000806214C09091EB0090619093EB0021E047 +:1027D00030E0A90102C0440F551F8A95E2F74093EB +:1027E000EA001092EA008091EB0088608093EB0091 +:1027F0001092E9008091E800877F86C08111A7C010 +:102800001091F3011F778091E3008078812B8093F2 +:10281000E3008091E800877F8093E8000E948C119C +:102820008091E80080FFFCCF8091E3008068809376 +:10283000E300111102C082E001C083E08093F00147 +:1028400086C08058823008F082C08091F301909158 +:10285000F4018C3D53E0950779F583E08A838AE2A1 +:1028600089834FB7F894DE01139620E03EE051E2F1 +:10287000E32FF0E050935700E49120FF03C0E2956E +:10288000EF703F5FEF708E2F90E0EA3010F0C79648 +:1028900001C0C0968D939D932F5F243149F74FBFA0 +:1028A0008091E800877F8093E8006AE270E0CE01C3 +:1028B00001960E94931014C0AE014F5F5F4F60916C +:1028C000F5010E94DA0FBC01892B09F440C09091F8 +:1028D000E800977F9093E80089819A810E94F61022 +:1028E0008091E8008B778093E80031C0803879F5DB +:1028F0008091E800877F8093E8008091EC018093CD +:10290000F1008091E8008E778093E8000E948C119E +:102910001EC081111CC09091F3019230C0F48091CF +:10292000E800877F8093E8009093EC010E948C116F +:102930008091EC01811106C08091E30087FD02C007 +:1029400081E001C084E08093F0010E94C50E809177 +:10295000E80083FF0AC08091E800877F8093E80049 +:102960008091EB0080628093EB00AA960FB6F894FA +:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 +:102980008091F0018823A1F0C091E900CF7090916F +:10299000EC00892F817090FD80E8C82B1092E9002F +:1029A0008091E80083FD0E946E13CF70C093E90010 +:1029B000CF91089590937401809373010895E091ED +:1029C0007301F0917401309721F00190F081E02DB6 +:1029D000099480E00895EF92FF920F931F93CF9395 +:1029E000DF93E0917301F09174013097B1F18C01A4 +:1029F0000280F381E02D09958091D70182FF2DC0DF +:102A000080FF04C08DE895E00E945207E80110E1C4 +:102A100087E8E82E85E0F82E8091D70180FF0BC073 +:102A200088811F928F93FF92EF920E94EB070F9085 +:102A30000F900F900F90115021961111EDCF8091B2 +:102A4000D70180FF0AC085E895E0DF91CF911F9103 +:102A50000F91FF90EF900C945207DF91CF911F914F +:102A60000F91FF90EF900895E0917301F091740140 +:102A7000309721F00480F581E02D0994089520918C +:102A80007101309172018217930771F09093720176 +:102A900080937101E0917301F0917401309721F0FE +:102AA0000680F781E02D0994089520916F013091FF +:102AB00070018217930771F09093700180936F01FA +:102AC000E0917301F0917401309721F00084F18559 +:102AD000E02D0994089508950C946B150E94B92176 +:102AE0000E9462090C947F22CF93C82F8091D70156 +:102AF00082FF1EC080FF04C086EA95E00E94520754 +:102B00008091D70180FF0CC01F92CF9381EA95E09E +:102B10009F938F930E94EB070F900F900F900F9051 +:102B20008091D70180FF04C08FE995E00E94520791 +:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 +:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD +:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 +:102B600081E0D82E00E010E0E02E802F0E94AB0A1A +:102B7000F60141916F01F42EF826B1F40F5F1F4F5B +:102B80000E30110589F78FEF89838A831B820E949B +:102B9000C2218160782F9D838C8349815A816B810A +:102BA0008D810E943F1640C09091D70191FF04C0D3 +:102BB0008B870E94B10A8B8520E030E04F2D50E0DA +:102BC000922FBA01022E02C0759567950A94E2F71A +:102BD00060FF24C02E83EF8221E030E0690102C053 +:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D +:102BF00009F420E028870E94C2218160782F9A87FB +:102C000089874E815F8168858A850E943F16F80119 +:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 +:102C20002630310569F6AACF0E94F0251091750172 +:102C30000E94DF141817A1F00E94DF148093750121 +:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC +:102C50001F910F91FF90EF90DF90CF900C9474151F +:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C +:102C70001F910F91FF90EF90DF90CF900895CF9329 +:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C +:102C9000CDBF4F83588769877A878B87DE0111966E +:102CA00086E0FD0111928A95E9F785E0FE013796ED +:102CB00001900D928A95E1F749815A816B817C815F +:102CC0008D819E810E94551D2B960FB6F894DEBF14 +:102CD0000FBECDBFDF91CF910895CF93882309F424 +:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 +:102CF00089E30E94F11F0E94D02089E30CC0833831 +:102D000079F40E94DF1480FDAEC083E50E94F11FBC +:102D10000E94D02083E50E944420CF910C94D020C3 +:102D2000843859F40E94DF1482FD9DC087E40E941C +:102D3000F11F0E94D02087E4EECF8CEF8C0F813AF8 +:102D400048F48C2F0E94832A81118DC08C2F0E9401 +:102D5000F11FE3CF80E28C0F883048F4C77081E028 +:102D600001C0880FCA95EAF70E949920D6CF8BE55B +:102D70008C0F833078F4C53A29F0C63A31F083E8F5 +:102D800090E005C081E890E002C082E890E0CF9139 +:102D90000C943F1588E58C0F833108F064C0C83A65 +:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 +:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 +:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 +:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 +:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC +:102DF00082EE90E035C089EE90E032C08AEE90E03D +:102E00002FC085EB90E02CC086EB90E029C087EBCB +:102E100090E026C08CEC90E023C08DEC90E020C0C8 +:102E200083E891E01DC08AE891E01AC082E991E050 +:102E300017C084E991E014C081E292E011C083E2FE +:102E400092E00EC084E292E00BC085E292E008C0FE +:102E500086E292E005C087E292E002C08AE292E058 +:102E6000CF910C945515CF910895882309F44BC048 +:102E7000823859F40E94DF1481FF45C089E30E9423 +:102E8000F11F0E94D02089E30CC0833871F40E94A6 +:102E9000DF1480FF38C083E50E94F11F0E94D0201C +:102EA00083E50E9444200C94D020843859F40E9479 +:102EB000DF1482FF28C087E40E94F11F0E94D02007 +:102EC00087E4EFCF9CEF980F913A58F390E2980F78 +:102ED000983050F4877091E001C0990F8A95EAF715 +:102EE000892F0E949F20DFCF9BE5980F933020F41D +:102EF00080E090E00C943F15885A833120F480E004 +:102F000090E00C9455150895882321F00E94992093 +:102F10000C94D0200895882321F00E949F200C94C7 +:102F2000D0200895BF92CF92DF92EF92FF920F933D +:102F30001F93CF93DF9300D000D000D0CDB7DEB782 +:102F400025E0FC01DE01119601900D922A95E1F732 +:102F5000FC01408131810281258122952F7063819E +:102F60007481672B09F4E5C23F3F19F44F3F09F420 +:102F7000E0C27C0149833A8389819A812E830E9431 +:102F8000B01F182FB92E0E94AF1F0E94761EEB2D86 +:102F9000E295EF70F0E0E05AFF4F2E810C94812D06 +:102FA0008B2D807F9B2D9F70F92E882319F0F29432 +:102FB00080EFF822002349F0FF2009F467C28F2D2B +:102FC0000E94A9200E94D02061C2812F0E94351743 +:102FD000FF2009F4AEC28F2D0E94AF2026960FB6B7 +:102FE000F894DEBF0FBECDBFDF91CF911F910F913F +:102FF000FF90EF90DF90CF90BF900C94D0203B2DAE +:10300000307F8B2D8F70303211F08295807F1123AD +:1030100019F0113021F12CC00023B9F0222309F45A +:10302000A0C1213009F09DC126960FB6F894DEBFED +:103030000FBECDBFDF91CF911F910F91FF90EF9009 +:10304000DF90CF90BF900C94B920222319F021304B +:1030500009F46FC28E830E94BC208E8196C100232A +:1030600021F0223008F065C27CC1211162C28DC1FD +:10307000002321F0222309F474C108C2222309F499 +:1030800084C119C22B2D26952695237030E0211579 +:10309000310521F021303105D1F04BC2002321F060 +:1030A000812F9B2D937002C080E090E026960FB692 +:1030B000F894DEBF0FBECDBFDF91CF911F910F916E +:1030C000FF90EF90DF90CF90BF900C943F150023BE +:1030D00021F0812F9B2D937002C080E090E0269616 +:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 +:1030F0000F91FF90EF90DF90CF90BF900C945515FB +:10310000812F002319F00E94762402C00E94DE2441 +:1031100026960FB6F894DEBF0FBECDBFDF91CF91DC +:103120001F910F91FF90EF90DF90CF90BF900C9484 +:1031300063258B2D837009F07BC00111FAC1812FAB +:10314000829586958770880F880F912F9F70C92E62 +:10315000D12CE12CF12C082E04C0CC0CDD1CEE1C73 +:10316000FF1C0A94D2F714FF12C04FE050E060E059 +:1031700070E004C0440F551F661F771F8A95D2F771 +:10318000CB01BA01609570958095909503C060E081 +:1031900070E0CB012B2D269526952370422F50E011 +:1031A00042305105D9F04330510569F16C297D2930 +:1031B0008E299F294130510551F126960FB6F8947A +:1031C000DEBF0FBECDBFDF91CF911F910F91FF905A +:1031D000EF90DF90CF90BF900C949D1E6C297D29BD +:1031E0008E299F2926960FB6F894DEBF0FBECDBF5D +:1031F000DF91CF911F910F91FF90EF90DF90CF90D3 +:10320000BF900C94B91E0E949D1EC701B601269660 +:103210000FB6F894DEBF0FBECDBFDF91CF911F91E7 +:103220000F91FF90EF90DF90CF90BF900C94811E94 +:10323000002319F08B2D817001C08695882309F435 +:1032400078C1812F829586958770880F880F912F7E +:103250009F70C92ED12CE12CF12C082E04C0CC0C6F +:10326000DD1CEE1CFF1C0A94D2F714FF12C04FE0C5 +:1032700050E060E070E004C0440F551F661F771FE8 +:103280008A95D2F7CB01BA0160957095809590959B +:1032900003C060E070E0CB012B2D269526952370AE +:1032A000422F50E042305105D9F04330510569F1C9 +:1032B0006C297D298E299F294130510551F126968F +:1032C0000FB6F894DEBF0FBECDBFDF91CF911F9137 +:1032D0000F91FF90EF90DF90CF90BF900C94771FED +:1032E0006C297D298E299F2926960FB6F894DEBF7A +:1032F0000FBECDBFDF91CF911F910F91FF90EF9047 +:10330000DF90CF90BF900C94931F0E94771FC7014E +:10331000B60126960FB6F894DEBF0FBECDBFDF9183 +:10332000CF911F910F91FF90EF90DF90CF90BF90C2 +:103330000C945B1F103FD1F118F4103E50F4A1C063 +:10334000123F09F463C008F44CC0133F09F473C082 +:1033500098C01F708B2D8F710023A1F00E94F41E66 +:10336000812F26960FB6F894DEBF0FBECDBFDF913A +:10337000CF911F910F91FF90EF90DF90CF90BF9072 +:103380000C9484170E94151F812F26960FB6F8946F +:10339000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1033A000EF90DF90CF90BF900C948B170023A9F083 +:1033B0002111BFC08B2D8F7126960FB6F894DEBFFA +:1033C0000FBECDBFDF91CF911F910F91FF90EF9076 +:1033D000DF90CF90BF900C943A1F223008F0A9C024 +:1033E000E9CF0023A9F08B2D8F7126960FB6F894A4 +:1033F000DEBF0FBECDBFDF91CF911F910F91FF9028 +:10340000EF90DF90CF90BF900C94F41E002359F3FF +:103410008B2D8F7126960FB6F894DEBF0FBECDBFF1 +:10342000DF91CF911F910F91FF90EF90DF90CF90A0 +:10343000BF900C94151F002399F08B2D8F71269649 +:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5 +:103450000F91FF90EF90DF90CF90BF900C94DF1E04 +:1034600026960FB6F894DEBF0FBECDBFDF91CF9189 +:103470001F910F91FF90EF90DF90CF90BF900C9431 +:10348000D51E0023A9F0222309F4ADCF812F269663 +:103490000FB6F894DEBF0FBECDBFDF91CF911F9165 +:1034A0000F91FF90EF90DF90CF90BF900C946D162E +:1034B000222309F4ADCF812F26960FB6F894DEBFF4 +:1034C0000FBECDBFDF91CF911F910F91FF90EF9075 +:1034D000DF90CF90BF900C9435174B2D4F70612F1C +:1034E000C7010E94F40726960FB6F894DEBF0FBE00 +:1034F000CDBFDF91CF911F910F91FF90EF90DF90A3 +:10350000CF90BF900C94F91D4B2D4F70612FC701C8 +:1035100026960FB6F894DEBF0FBECDBFDF91CF91D8 +:103520001F910F91FF90EF90DF90CF90BF900C9480 +:10353000B70B26960FB6F894DEBF0FBECDBFDF9156 +:10354000CF911F910F91FF90EF90DF90CF90BF90A0 +:1035500008950E94B6200E948B200E94D0200E94D5 +:1035600096260E94632580E090E00E943F1580E04F +:1035700090E00C9455150E94A6200C94A91A0E9464 +:10358000B01F292F22952F7030E02C3031054CF4DC +:103590002A3031056CF4225031092230310588F48B +:1035A00007C02C30310549F02F30310531F009C00A +:1035B000803E48F0803F29F406C093FB882780F9BD +:1035C000089580E0089581E00895CF93DF9300D0BF +:1035D00000D01F92CDB7DEB70F900F900F900F90D5 +:1035E0000F90DF91CF910895CF93DF9300D000D05B +:1035F00000D0CDB7DEB726960FB6F894DEBF0FBE6B +:10360000CDBFDF91CF9108951F93CF93DF93C091EA +:10361000840116E080918501C81799F0D0E01C9FC5 +:10362000F0011D9FF00D1124EA57FE4F408151819A +:1036300062817381848195810E94F41A2196C770FA +:10364000E9CFDF91CF911F9108954091B60150913C +:10365000B7016091B8017091B9018091BA01909160 +:10366000BB010C94F41A8091BB0182958F7009F014 +:1036700054C08091B801882309F44FC0809184011F +:10368000A09185016091B6017091B7014091B90197 +:103690005091BA01B6E08A1709F43FC090E0411595 +:1036A0005105C1F17F3F11F46F3FA1F1B89FF001C7 +:1036B000B99FF00D1124EA57FE4F218172132AC0E1 +:1036C0002081621327C02281211124C023813481EB +:1036D0002417350710F421503109241B350B283CE1 +:1036E0003105C0F42091BB012F7020612093BB01F4 +:1036F00026E0289FF001299FF00D1124E557FE4F89 +:1037000080818F708061808386EB91E00E949217A8 +:103710000C94041B01968770BECF0895CF92DF9260 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:1037300062970FB6F894DEBF0FBECDBF8C0185E057 +:10374000F801DE011D9601900D928A95E1F7D801EE +:103750004C9111965C91119712966C911297139659 +:10376000CD90DC9014973091B6017091B7018091A3 +:10377000B9019091BA01009709F46BC17F3F19F428 +:103780003F3F09F466C1E090B801EE2009F4C0C0E3 +:103790002091BB01C816D90628F0F601E81BF90BE9 +:1037A000CF0104C0809590958C0D9D1DFF24F3944E +:1037B000883C910578F0F12C207F09F0C6C07C2D63 +:1037C000D98AC88A89890E94E51A86EB91E00E940D +:1037D0009217B1C0822F807F09F046C0751314C0C4 +:1037E000341312C0611110C02F7020612093BB01EF +:1037F0000E94251B86EB91E00E9492178091BB01ED +:10380000D80115968C932EC0CD2819F15F3F11F485 +:103810004F3FF9F0F62E61111CC080918401209178 +:10382000850136E0821709F45AC090E0389FF00114 +:10383000399FF00D1124EA57FE4F7181571306C0CE +:103840007081471303C07281711103C001968770A4 +:10385000E9CFF62E662309F418C18091BB0181607F +:103860008093BB01F12C11C1751308C0341306C03D +:10387000611104C08091BB01D801C3C04D875E8730 +:103880008D859E856A8B0E94BF1A6A898823E1F123 +:103890006623D1F12091BB01822F82958F7090E039 +:1038A000029774F08091B6019091B70198878F8349 +:1038B0001986DB86CA862C87CE0107960E9492174E +:1038C00086E0F801A6EBB1E001900D928A95E1F750 +:1038D0000E94331B0E94251BFF24F394D6C04D8702 +:1038E0005E878D859E850E94B01F292F22952F709F +:1038F00030E0223031050CF0BCC09F7009F0B6C03A +:10390000805E883008F4C1C0C8010E949217E4CFDD +:10391000C816D90608F453C0F601E81BF90BCF010D +:10392000883C910508F450C0F12C7C2DD98AC88AB6 +:1039300089890E94E51AE6EBF1E086E0DF011D923D +:103940008A95E9F70E94251BA0C0751314C0341393 +:1039500012C0611110C08091BB01F8018583C801BC +:103960000E94921786E0E6EBF1E0DF011D928A9556 +:10397000E9F7FE2C8AC04D875E878D859E856A8B10 +:103980000E94BF1A6A89882309F4BECF662309F40E +:10399000BBCF2091BB01822F82958F7090E0029760 +:1039A0000CF48ECF8091B6019091B7019A838983F0 +:1039B0001B82DD82CC822E83CE0101967FCF809543 +:1039C00090958C0D9D1DACCFF62E662309F49CCFEF +:1039D00075132EC034132CC02091BB0120FD1FC0D5 +:1039E000822F82958F70D9F0D80115962C93159758 +:1039F0008F3049F08F5F982F9295907F822F8F7034 +:103A0000892B15968C93C8010E94921786E0F801C5 +:103A1000A6EBB1E001900D928A95E1F793CF86E095 +:103A2000F801A6EBB1E001900D928A95E1F72DC067 +:103A30004D875E878D859E850E94BF1A811140CF7C +:103A40008091BB0181608093BB01C8010E949217E5 +:103A50001CC0662309F458CF4D875E878D859E85EF +:103A60000E94BF1A882309F44FCF2ACF811148CF73 +:103A70000CC0243031050CF047CF9F7009F440CFC3 +:103A8000F8019581907F09F03BCF8F2D62960FB69C +:103A9000F894DEBF0FBECDBFDF91CF911F910F9184 +:103AA000FF90EF90DF90CF9008951F93CF93DF9317 +:103AB000CDB7DEB72C970FB6F894DEBF0FBECDBFE3 +:103AC0004F83588769877A878B879C87CE010796B3 +:103AD0000E948E1B882369F08F8198852A853B85FB +:103AE000232BF1F19F3F09F063C08F3F09F060C0C5 +:103AF00037C086E0FE013796DE01119601900D92E7 +:103B00008A95E1F76F817885EA85FB85309741F1E9 +:103B10007F3F11F46F3F21F12091850130E0C90111 +:103B20000196877099274091840150E0841795078A +:103B300009F447C069837A83FD83EC8396E0929F02 +:103B4000D001939FB00D1124AA57BE4FFE013196AC +:103B500001900D929A95E1F7809385010E94041BD4 +:103B600016E080918401909185018917C1F1189F19 +:103B7000C00111248A579E4F0E948E1B882379F121 +:103B8000E09184011E9FF0011124EA57FE4F40810D +:103B9000518162817381848195810E94F41A8091A0 +:103BA000840190E001968770992780938401D9CF92 +:103BB0004F81588569857A858B859C850E94F41A8A +:103BC000CFCF0E94BB1A1092850110928401E6EBC0 +:103BD000F1E086E0DF011D928A95E9F7C1CF2C96CE +:103BE0000FB6F894DEBF0FBECDBFDF91CF911F910E +:103BF0000895EF92FF920F931F93CF93DF938C0161 +:103C0000892B09F46CC0F12CEE24E394E801219691 +:103C1000F8018491843740F4843008F051C0813039 +:103C200081F0823019F15BC0853709F444C0A8F1F6 +:103C30009CE7980F903708F052C08F770E94351795 +:103C400041C00E5F1F4FFE01C49180E28C0F88308F +:103C500048F4C7708E2D01C0880FCA95EAF70E94FC +:103C6000A92014C08C2F0E946D162DC00E5F1F4F0F +:103C7000FE01C49180E28C0F883058F4C7708E2DFD +:103C800001C0880FCA95EAF70E94AF200E94D02099 +:103C90001AC08C2F0E94351716C00E5F1F4FFE01F1 +:103CA000C491CC2381F08FE99FE00197F1F700C028 +:103CB0000000C150F6CF0E5F1F4FFE01F49003C00D +:103CC0000E946D168E018F2D882309F49FCFEFE996 +:103CD000FFE03197F1F700C000008150F5CFDF9190 +:103CE000CF911F910F91FF90EF90089508956093E9 +:103CF000C0017093C1018093C2019093C3010C94E1 +:103D0000A91A0F931F930091C0011091C101209136 +:103D1000C2013091C301DC01CB01802B912BA22B7E +:103D2000B32B8093C0019093C101A093C201B093C3 +:103D3000C3011F910F910C94A91A0F931F93009127 +:103D4000C0011091C1012091C2013091C301DC0179 +:103D5000CB0180239123A223B3238093C0019093AE +:103D6000C101A093C201B093C3011F910F910C94A4 +:103D7000A91A0F931F930091C0011091C1012091C6 +:103D8000C2013091C301DC01CB0180279127A2271A +:103D9000B3278093C0019093C101A093C201B09357 +:103DA000C3011F910F910C94A91A1092BC0110929B +:103DB000BD011092BE011092BF010C94A91A41E0FE +:103DC00050E060E070E004C0440F551F661F771F8D +:103DD0008A95D2F74093BC015093BD016093BE0118 +:103DE0007093BF010C94A91A41E050E060E070E0CC +:103DF00004C0440F551F661F771F8A95D2F7809124 +:103E0000BC019091BD01A091BE01B091BF01482BB2 +:103E1000592B6A2B7B2B4093BC015093BD016093BF +:103E2000BE017093BF010C94A91A41E050E060E01C +:103E300070E004C0440F551F661F771F8A95D2F7A4 +:103E400040955095609570958091BC019091BD0111 +:103E5000A091BE01B091BF01482359236A237B235F +:103E60004093BC015093BD016093BE017093BF01AC +:103E70000C94A91A41E050E060E070E004C0440FE7 +:103E8000551F661F771F8A95D2F78091BC019091CC +:103E9000BD01A091BE01B091BF01482759276A27F3 +:103EA0007B274093BC015093BD016093BE0170938A +:103EB000BF010C94A91A0F931F930091BC0110919C +:103EC000BD012091BE013091BF01DC01CB01802BEF +:103ED000912BA22BB32B8093BC019093BD01A09397 +:103EE000BE01B093BF011F910F910C94A91A0F93BB +:103EF0001F930091BC011091BD012091BE01309132 +:103F0000BF01DC01CB0180239123A223B323809343 +:103F1000BC019093BD01A093BE01B093BF011F915E +:103F20000F910C94A91A0F931F930091BC0110914B +:103F3000BD012091BE013091BF01DC01CB01802782 +:103F40009127A227B3278093BC019093BD01A09332 +:103F5000BE01B093BF011F910F910C94A91A08954F +:103F6000CF92DF92EF92FF920F931F93CF93DF9345 +:103F70008C01C090C001D090C101E090C201F090CE +:103F8000C3014091BC015091BD016091BE0170918F +:103F9000BF01C42AD52AE62AF72ACFE1D0E0D7010B +:103FA000C6010C2E04C0B695A795979587950A94DF +:103FB000D2F780FF07C0B8018C2F0E94DA0B813046 +:103FC000910531F4219758F7B80180E00E94DA0B8F +:103FD000DF91CF911F910F91FF90EF90DF90CF90E5 +:103FE000089590910C01992321F090910D01911168 +:103FF00009C020910E0130910F01F90132969FEF17 +:1040000040E030C0982F9695969596959F30A0F4F5 +:10401000E0910E01F0910F01E90FF11D877021E091 +:1040200030E0A90102C0440F551F8A95E2F7CA018A +:104030009181892B818308959091D70190FF23C0AE +:104040001F928F9387ED95E09F938F930E94EB07CC +:104050000F900F900F900F9008959F3F39F04F5F92 +:104060004E3041F051915813F8CF0DC05111F7CF98 +:10407000942FF5CF9F3F39F0F901E90FF11D97FD1E +:10408000FA9582830895089590910C01992321F067 +:1040900090910D01911109C020910E0130910F01F5 +:1040A000F9013296205F3F4F30C0982F9695969534 +:1040B00096959F30A8F4E0910E01F0910F01E90F61 +:1040C000F11D877021E030E0A90102C0440F551FA7 +:1040D0008A95E2F7CA0180959181892381830895A9 +:1040E0009091D70190FF16C01F928F9389EB95E0B6 +:1040F0009F938F930E94EB070F900F900F900F905C +:1041000008953196E217F30729F090819813F9CFBB +:104110001082F7CF089581E090E0E0910E01F091D8 +:104120000F01E80FF91F1082019680319105A9F760 +:1041300008959091D601892B8093D601089580959A +:104140009091D60189238093D60108951092D601CB +:1041500008959091D501892B8093D501089580957C +:104160009091D50189238093D50108951092D501AE +:1041700008958093C40108951092C4010895809118 +:104180000E0190910F01FC0131969C01205F3F4F81 +:1041900080E0919191118F5FE217F307D1F70895B5 +:1041A000E0910E01F0910F018091D6018083E091A2 +:1041B0000E01F0910F0190818091D501892B8083B0 +:1041C0008091C401882361F0E0910E01F0910F010C +:1041D0009081892B80830E94BF2081111092C4019D +:1041E00080910E0190910F010C94EB1490933B0180 +:1041F00080933A010895CF92DF92EF92FF926C0183 +:10420000EE24FF24C114D104E104F10421F0C7011C +:10421000B60120E101C020E0C72ED82EE92EFF24F0 +:10422000C114D104E104F10419F0285FC701B601FB +:104230006B017C0154E0F694E794D794C7945A95A7 +:10424000D1F7C114D104E104F10419F02C5FC701C6 +:10425000B6016B017C0142E0F694E794D794C794D1 +:104260004A95D1F7C114D104E104F10419F02E5F8D +:10427000C701B601DC01CB01B695A7959795879547 +:10428000892B8A2B8B2B09F02F5F822FFF90EF90C9 +:10429000DF90CF9008958295982F9C7C392F36958A +:1042A0003695282F237344E0249FC0011124932FB7 +:1042B000982B292F2A7A2695892F8575880F822B8E +:1042C00008951F93CF93DF931F92CDB7DEB79983E5 +:1042D0000E944B21182F9981892F0E944B21212F59 +:1042E00030E0322F2227A901482BCA010F90DF911D +:1042F000CF911F9108958091F001843009F11092BF +:10430000D80120E488E190E00FB6F894A895809356 +:1043100060000FBE2093600083B7817F846083BFFD +:1043200083B7816083BF7894889583B78E7F83BF7E +:1043300088E10FB6F89480936000109260000FBE81 +:10434000089508950895CF930E94A1210E947F09A6 +:104350000E94A221C0E08C2F0E94AB0A811104C0F0 +:10436000CF5FCE30C1F701C081E0CF9108950C94AA +:10437000BB1A82E084BD93E095BD9AEF97BD809310 +:104380006E0008952FB7F8948091D9019091DA01C9 +:10439000A091DB01B091DC012FBF0895CF92DF9295 +:1043A000EF92FF920F931F932FB7F8944091D9018A +:1043B0005091DA016091DB017091DC012FBF6A013D +:1043C0007B01EE24FF248C0120E030E0C016D106F2 +:1043D000E206F30610F4415051099A01281B390BEB +:1043E000C9011F910F91FF90EF90DF90CF9008953A +:1043F0001F920F920FB60F9211248F939F93AF933A +:10440000BF938091D9019091DA01A091DB01B09125 +:10441000DC010196A11DB11D8093D9019093DA01B1 +:10442000A093DB01B093DC01BF91AF919F918F917D +:104430000F900FBE0F901F9018950E94DD11F894F9 +:104440002FEF87EA91E6215080409040E1F700C0CD +:10445000000087E090EBDC018093F9019093FA0172 +:10446000A093FB01B093FC019CE088E10FB6F894A7 +:10447000A895809360000FBE90936000FFCFEF92ED +:10448000FF920F931F93CF93DF93D82FC0E08C2F11 +:104490000E94AB0A00E010E0E82EF12CC701002ECC +:1044A00002C0959587950A94E2F780FD06C00F5FDC +:1044B0001F4F0630110591F709C0602F7C2F80E057 +:1044C0000E94B80BD813F3CF81E004C0CF5FCE3089 +:1044D000F1F680E0DF91CF911F910F91FF90EF9067 +:1044E0000895CF93C82F8CE20E943F22882321F0A9 +:1044F0008C2FCF910C943F2280E0CF910895CF93E1 +:104500000E94CE23811102C00E94B4238CEF95E05B +:104510000E945207C5E6C15049F00E947F098FE30F +:104520009CE90197F1F700C00000F5CF85EF95E019 +:104530000E94520789E20E947122811113C18AE20E +:104540000E94712281110E94B42385E00E94712291 +:1045500081110E941D220E94D9238093D70187E0F8 +:104560000E9471228823A9F18BE10E947122882385 +:1045700051F08091D70181FB222720F991E0922709 +:1045800090FB81F90EC08EE00E947122882361F0B9 +:104590008091D70182FB222720F991E0922790FB9E +:1045A00082F98093D70115C080E10E947122909119 +:1045B000D701882341F093FB222720F981E082274D +:1045C00080FB93F904C0892F809580FB90F990932C +:1045D000D7018091D7010E94DD230E94EB238093B5 +:1045E000EA0180EE0E947122882341F08091EA0165 +:1045F000982F909590FB80F98093EA0189E30E94BF +:104600007122882359F08091EA0181FB222720F949 +:1046100091E0922790FB81F98093EA0182EE0E945B +:104620007122882359F08091EA0182FB222720F928 +:1046300091E0922790FB82F98093EA0186EE0E9436 +:104640007122882359F08091EA0183FB222720F907 +:1046500091E0922790FB83F98093EA0183EE0E9418 +:104660007122882359F08091EA0184FB222720F9E6 +:1046700091E0922790FB84F98093EA0185E30E9400 +:104680007122882359F08091EA0185FB222720F9C5 +:1046900091E0922790FB85F98093EA0181E30E94E3 +:1046A0007122882359F08091EA0186FB222720F9A4 +:1046B00091E0922790FB86F98093EA0181E10E94C4 +:1046C0007122882359F08091EA0187FB222720F983 +:1046D00091E0922790FB87F98093EA018091EA01AB +:1046E0000E94EF238091EA0187FB882780F980935D +:1046F0000D0187E20E947122C82F8EE10E94712273 +:104700008111C2608FE10E9471228111C46080E238 +:104710000E9471228111C86081E20E947122811180 +:10472000C06182E20E9471228111C06283E20E9414 +:1047300071228111C06484E20E947122882311F0E9 +:10474000C06802C0CC2329F08C2F0E94E6236C2F76 +:1047500003C00E94E223682F70E080E090E0CF91D8 +:104760000C94771ECF9108956DEE7EEF80E090E07F +:104770000E94B72D60E082E090E00E94A92D60E0E9 +:1047800083E090E00E94A92D60E084E090E00E9428 +:10479000A92D60E085E090E00C94A92D80E090E0E8 +:1047A0000E94A32D21E08D3E9E4F09F020E0822F34 +:1047B000089582E090E00C949B2D682F82E090E0B9 +:1047C0000C94A92D83E090E00C949B2D682F83E03E +:1047D00090E00C94A92D84E090E00C949B2D682F20 +:1047E00084E090E00C94A92D8091DF0180FF0BC044 +:1047F0006091130185E0689FB0011124759567955C +:10480000759567952BC081FF09C06091130185E004 +:10481000689FB00111247595679520C082FF07C07D +:104820006091130185E0689FB001112417C0909139 +:10483000E0019923D1F060911201961788F7209139 +:10484000130185E0289F90011124929FA001939F5E +:10485000500D112470E0CA010E946D2D6038710561 +:1048600040F46115710539F002C065E070E0862FF3 +:1048700008958FE7089581E008958091DF0180FF1A +:1048800008C06091110170E0759567957595679501 +:1048900021C081FF06C06091110170E07595679598 +:1048A00019C082FF04C06091110170E010C09091A6 +:1048B000E0019923C1F0609110019617A0F7809153 +:1048C0001101899FC001112470E00E946D2D603894 +:1048D000710528F46115710521F0862F08958FE781 +:1048E000089581E0089561E070E0F4CF803F21F405 +:1048F0000E94F423819504C0813F29F40E94F4238F +:104900008093E3010895823F21F40E94F42381956E +:1049100004C0833F29F40E94F4238093E2010895A8 +:10492000893F19F40E943D2405C08A3F31F40E945A +:104930003D2481958093E40108958B3F21F40E94EA +:104940003D24819504C08C3F29F40E943D2480932E +:10495000E5010895843F21F48091E101816017C051 +:10496000853F21F48091E101826011C0863F21F4EE +:104970008091E10184600BC0873F21F48091E101C7 +:10498000886005C0883F31F48091E10180618093A7 +:10499000E10108958D3F21F48091DF0181600BC01A +:1049A0008E3F21F48091DF01826005C08F3F29F4A2 +:1049B0008091DF0184608093DF010895803F39F4A6 +:1049C0008091E30187FF6CC01092E30169C0813FD1 +:1049D00029F48091E3011816BCF362C09091E201C2 +:1049E000823F29F497FF5CC01092E20159C0833FD7 +:1049F00019F41916CCF354C0893F41F48091E401B5 +:104A000018160CF04DC01092E4014AC08A3F29F4F8 +:104A10008091E40187FF44C0F6CF8B3F39F4809149 +:104A2000E50187FF3DC01092E5013AC08C3F29F4B3 +:104A30008091E5011816BCF333C0843F21F48091C6 +:104A4000E1018E7F17C0853F21F48091E1018D7FC8 +:104A500011C0863F21F48091E1018B7F0BC0873F1D +:104A600021F48091E101877F05C0883F31F4809176 +:104A7000E1018F7E8093E10113C08D3F21F480918D +:104A8000DF018E7F0BC08E3F21F48091DF018D7F8F +:104A900005C08F3F29F48091DF018B7F8093DF0178 +:104AA0008091E20181110EC08091E30181110AC061 +:104AB0008091E401811106C08091E501811102C05D +:104AC0001092E00108958091D70183FF7EC088E3B2 +:104AD00096E00E9452078091E1011F928F9383E339 +:104AE00096E09F938F930E94EB0781E396E00E94EC +:104AF00052078091E201282F332727FD30953F93FD +:104B00008F938EE296E09F938F930E94EB078CE247 +:104B100096E00E9452078091E301282F332727FD5A +:104B200030953F938F9389E296E09F938F930E94F5 +:104B3000EB0787E296E00E9452078091E401282F5C +:104B4000332727FD30953F938F9384E296E09F9320 +:104B50008F930E94EB0782E296E00E9452078091B9 +:104B6000E501282F332727FD30953F938F938FE161 +:104B700096E09F938F930E94EB078CE196E00E9452 +:104B800052078091E0011F928F9389E196E09F93F5 +:104B90008F930E94EB0787E196E00E945207809175 +:104BA000DF011F928F9384E196E09F938F930E9481 +:104BB000EB0781E196E00E9452078DB79EB74C96B5 +:104BC0000FB6F8949EBF0FBE8DBF81EE91E00E949C +:104BD00034150E94C2219093DE018093DD01089577 +:104BE0001F93CF93DF938091DD019091DE010E94AE +:104BF000CE21AC019091E001992321F02091140184 +:104C000030E006C0209115018AE0289F9001112410 +:104C10004217530708F486C08091E201C091E30176 +:104C2000D091E4011091E501811107C0C11176C056 +:104C3000D11174C0111172C075C09F3F19F09F5FF0 +:104C40009093E001181624F40E94F4238093E2016B +:104C50008091E20187FF05C00E94F4238195809333 +:104C6000E2011C1624F40E94F4238093E301809156 +:104C7000E30187FF05C00E94F42381958093E3013F +:104C80006091E201662339F1C091E301CC2319F16F +:104C9000772767FD7095872F972F0E94722C23E34B +:104CA00033E343E35FE30E94D62C0E943F2C6093E2 +:104CB000E2016C2F772767FD7095872F972F0E9451 +:104CC000722C23E333E343E35FE30E94D62C0E947C +:104CD0003F2C6093E3011D1624F40E943D24809331 +:104CE000E4018091E40187FF05C00E943D24819585 +:104CF0008093E401111624F40E943D248093E50181 +:104D00008091E50187FF05C00E943D248195809335 +:104D1000E501DF91CF911F910C9463259F3F09F02E +:104D20008ECF96CFDF91CF911F910895E1EEF1E004 +:104D300085E0DF011D928A95E9F71092E00110925B +:104D4000DF0108958BE598E00E9452071F9281E0F1 +:104D50008F931F9285E08F938DE098E09F938F93C0 +:104D60000E94EB070F900F900F900F900F900F90F5 +:104D700008958330E9F128F4813061F0823009F13F +:104D80000895853009F462C008F449C0863009F4FA +:104D900074C0089580911501262F30E0280F311D31 +:104DA0002F3F310524F4680F6093150103C08FEF86 +:104DB00080931501809115011F928F9386E497E0EF +:104DC00072C080911401262F30E0280F311D2F3F33 +:104DD000310524F4680F6093140103C08FEF8093B2 +:104DE0001401809114011F928F9384E397E05BC0BC +:104DF00080911301262F30E0280F311D2F3F310500 +:104E000024F4680F6093130103C08FEF80931301A4 +:104E1000809113011F928F9381E297E044C08091AB +:104E20001201262F30E0280F311D2F3F310524F4C9 +:104E3000680F6093120103C08FEF8093120180917D +:104E400012011F928F938CE097E02DC08091110189 +:104E5000262F30E0280F311D2F3F310524F4680F35 +:104E60006093110103C08FEF8093110180911101B4 +:104E70001F928F9383EF96E016C080911001262F2A +:104E800030E0280F311D2F3F310524F4680F609367 +:104E9000100103C08FEF80931001809110011F92C9 +:104EA0008F9388ED96E09F938F930E94EB070F906E +:104EB0000F900F900F900895833081F128F4813086 +:104EC00059F08230D1F00895853009F449C0B8F125 +:104ED000863009F456C0089580911501681720F4B2 +:104EE000861B8093150102C0109215018091150157 +:104EF0001F928F9389EC96E054C08091140168173B +:104F000020F4861B8093140102C01092140180913A +:104F100014011F928F9387EB96E043C08091130199 +:104F2000681720F4861B8093130102C010921301AE +:104F3000809113011F928F9384EA96E032C0809192 +:104F40001201681720F4861B8093120102C0109290 +:104F50001201809112011F928F938FE896E021C079 +:104F600080911101681720F4861B8093110102C003 +:104F700010921101809111011F928F9386E796E0A4 +:104F800010C080911001681720F4861B80931001D7 +:104F900002C010921001809110011F928F938BE537 +:104FA00096E09F938F930E94EB070F900F900F90C6 +:104FB0000F900895CF93C82F1F928F9380E699E0AA +:104FC0009F938F930E94EB0781E090E0A0E0B0E018 +:104FD000BC01CD0104C0660F771F881F991FCA95B9 +:104FE000D2F70E94771E0F900F900F900F90CF91E5 +:104FF0000C94BB1ACF938D3109F465C0B0F58E3097 +:1050000009F4CCC100F5873009F49BC1A8F48630BF +:1050100009F06DC28091D701817F8E7F8093D70187 +:1050200085E699E00E94520781EA9DE00E945207BE +:1050300081E08093E70180C1883009F44FC08B3054 +:1050400009F47CC154C2863109F4F0C138F48031CE +:1050500009F4B8C1813109F430C249C2893109F477 +:10506000CEC18B3109F486C142C2853309F437C2FF +:1050700048F4873209F433C208F433C2893209F4A0 +:105080002EC235C2833438F48A3308F02CC28833F8 +:1050900009F454C12CC2833409F421C2883409F0C4 +:1050A00026C20E94BB1A80E99DE00E9452079FEF32 +:1050B00023ED80E3915020408040E1F700C00000E4 +:1050C0000E941D2239C180EB9DE00E9452070E9480 +:1050D000F92B0E94DF140E94110D2EC185EA9DE07C +:1050E0000E94520786E79BE00E9452070E94E2233B +:1050F0001F928F9383E79BE09F938F930E94EB0710 +:1051000081E79BE00E9452070E94D923C82F8EE5B9 +:105110009BE00E9452071F92CF9389E59BE09F93EB +:105120008F930E94EB0787E59BE00E9452078DE476 +:105130009BE00E9452078C2F81701F928F938AE40C +:105140009BE09F938F930E94EB0788E49BE00E9473 +:1051500052078EE39BE00E945207C1FB882780F92B +:105160001F928F938BE39BE09F938F930E94EB079B +:1051700089E39BE00E9452078DE29BE00E94520768 +:10518000C2FB882780F91F928F938AE29BE09F934E +:105190008F930E94EB0788E29BE00E9452078FE109 +:1051A0009BE00E945207C3FBCC27C0F91F92CF930C +:1051B0008CE19BE09F938F930E94EB078AE19BE039 +:1051C0000E9452070E94EB23C82F86E09BE00E94BA +:1051D00052071F92CF9381E09BE09F938F930E9491 +:1051E000EB078FEF9AE00E94520786EE9AE00E944A +:1051F00052078C2F81701F928F9383EE9AE09F93BA +:105200008F930E94EB078DB79EB780960FB6F894E8 +:105210009EBF0FBE8DBF81EE9AE00E9452078AECBE +:105220009AE00E945207C1FB882780F91F928F9352 +:1052300087EC9AE09F938F930E94EB0785EC9AE0AE +:105240000E94520783EB9AE00E945207C2FB882714 +:1052500080F91F928F9380EB9AE09F938F930E9427 +:10526000EB078EEA9AE00E9452078CE99AE00E94CE +:105270005207C3FB882780F91F928F9389E99AE030 +:105280009F938F930E94EB0787E99AE00E94520751 +:105290008DE89AE00E945207C4FB882780F91F928C +:1052A0008F938AE89AE09F938F930E94EB0788E898 +:1052B0009AE00E94520786E79AE00E945207C5FBD7 +:1052C000882780F91F928F9383E79AE09F938F93AB +:1052D0000E94EB0781E79AE00E94520785E59AE079 +:1052E0000E945207C6FB882780F91F928F9382E5A0 +:1052F0009AE09F938F930E94EB0780E59AE00E94CB +:10530000520788E49AE00E945207C7FBCC27C0F9F5 +:105310001F92CF9385E49AE09F938F930E94EB07AF +:1053200083E49AE00E9452078DB79EB74C960FB661 +:10533000F8949EBF0FBE8DBFC1E0DEC08CE899E03F +:105340005BC08091D701C82FC17080FF09C083E87E +:105350009DE00E9452078091D701817F8E7F47C0D8 +:1053600087E79DE00E9452078091D701816080937A +:10537000D701E2CF9091D70191FBCC27C0F981E012 +:10538000C827892FC0FB81F98093D701CC2319F05E +:105390008AE69DE027C08CE59DE02EC09091D70164 +:1053A00092FBCC27C0F981E0C827892FC0FB82F986 +:1053B0008093D701CC2319F08DE49DE013C08DE3D9 +:1053C0009DE01AC09091D70193FBCC27C0F981E0F2 +:1053D000C827892FC0FB83F98093D701CC2351F0D4 +:1053E00081E39DE00E9452078091D7018160809304 +:1053F000D70182C084E29DE00E9452079DCF85E1E3 +:105400009DE00E94520789EE9CE00E9452078CEAC0 +:105410009CE00E94520785E89CE00E94520781E4CC +:105420009CE00E94520786E19CE0E6CF88E09CE089 +:105430000E9452070E94DF141F928F938EEE9BE012 +:105440009F938F930E94EB0780910C011F928F9383 +:1054500087ED9BE09F938F930E94EB0780916E01F5 +:105460001F928F9384EC9BE09F938F930E94EB0796 +:1054700080910D011F928F9381EB9BE09F938F93FF +:105480000E94EB078091D9019091DA01A091DB0194 +:10549000B091DC01BF93AF939F938F938DE99BE015 +:1054A0009F938F930E94EB078DB79EB746960FB6DA +:1054B000F8949EBF0FBE8DBF3FCF0E94BB1AC09114 +:1054C0000D0181E0C827C0930D01CC2329F083E9A9 +:1054D0009BE00E94520710C088E89BE08DCF80E0DF +:1054E00003C08D5101C089530E94DA2725CF86E879 +:1054F0009BE00E945207C0E08C2FCF91089580E07E +:10550000089580E00895CF93C82F8091E7018130FE +:1055100081F020F0823009F44FC045C1E0910E01C6 +:10552000F0910F018081813169F0823209F03DC133 +:1055300009C0E0910E01F0910F018081813111F0DD +:10554000823261F48C2F0E947F2A811104C08C2F3B +:105550000E94FA272FC081E090E02CC08C2F0E947F +:10556000812A811126C0C431E1F070F4CB3081F082 +:10557000C031D1F40E94A22688E599E00E9452072A +:1055800082E08093E70115C0C93259F0C83361F455 +:1055900085E699E00E9452078CE599E00E94520747 +:1055A00008C01092E70103C186E599E00E94520706 +:1055B000FEC081E08170FDC0C43220F5CE3108F01C +:1055C000C0C0CB3099F1C8F4C73009F0D2C08AE02E +:1055D0008093150194E19093140193E0909313014B +:1055E0008093120188E08093110188E2809310017A +:1055F0008CEF97E00E945207BFC0C33149F1C4311C +:10560000C1F0B7C0CB3409F4A9C028F4C93289F07D +:10561000C83361F0AEC0C13509F49EC0C23509F48B +:1056200099C0CE3409F0A5C06AE09EC00E94A226AF +:10563000A3C08091E601882319F01092E6019CC076 +:1056400089E098E00E94520781E08093E701B1C0B1 +:1056500083EE97E00E94520781ED97E00E94520787 +:10566000809115011F928F938EEC97E09F938F93FB +:105670000E94EB078CEC97E00E9452078AEB97E0C0 +:105680000E945207809114011F928F9387EB97E03D +:105690009F938F930E94EB0785EB97E00E94520740 +:1056A00086EA97E00E945207809113011F928F9320 +:1056B00083EA97E09F938F930E94EB0781EA97E03C +:1056C0000E94520780E997E00E94520780911201E0 +:1056D0001F928F938DE897E09F938F930E94EB0723 +:1056E0008BE897E00E94520786E797E00E945207F6 +:1056F000809111011F928F9383E797E09F938F937F +:105700000E94EB0781E797E00E9452078AE597E045 +:105710000E945207809110011F928F9387E597E0B6 +:105720009F938F930E94EB0785E597E00E945207B5 +:105730008DB79EB748960FB6F8949EBF0FBE8DBF2B +:105740001BC0CE51EC2FF0E0E15DFE4F80818093D5 +:10575000E60112C061E003C061E006C06AE080912A +:10576000E6010E94B92608C08091E6010E945C27EC +:1057700003C08AEF97E013C08091E601882369F0A7 +:105780001F928F9384EF97E09F938F930E94EB0774 +:105790000F900F900F900F9004C081EF97E00E9440 +:1057A000520781E006C01092E70180E002C080E06D +:1057B00001CFCF910895E1E8F0E080818860808397 +:1057C0008081816080838FB7F89493E09093890003 +:1057D00090ED909388008FBF0895EFE6F0E0808110 +:1057E000826080830895EFE6F0E080818D7F808382 +:1057F0000895EFE6F0E0908182E0892780830895A4 +:105800001F920F920FB60F9211242F933F934F9335 +:105810005F936F937F938F939F93AF93BF93EF9318 +:10582000FF938091E8019091E90101969093E9013D +:105830008093E801811103C082E00E94110DE09184 +:10584000E901E695E695F0E0E054F24FE4918091AD +:10585000E8018E1303C080E00E94110DFF91EF91CB +:10586000BF91AF919F918F917F916F915F914F9178 +:105870003F912F910F900FBE0F901F90189504D05D +:105880006894B1118DC0089570D088F09F5790F042 +:10589000B92F9927B751A0F0D1F0660F771F881F55 +:1058A000991F1AF0BA95C9F712C0B13081F077D0BC +:1058B000B1E0089574C0672F782F8827B85F39F05A +:1058C000B93FCCF3869577956795B395D9F73EF4B4 +:1058D00090958095709561957F4F8F4F9F4F08955C +:1058E000E89409C097FB3EF490958095709561957A +:1058F0007F4F8F4F9F4F9923A9F0F92F96E9BB2730 +:105900009395F695879577956795B795F111F8CFAB +:10591000FAF4BB0F11F460FF1BC06F5F7F4F8F4F16 +:105920009F4F16C0882311F096E911C0772321F00C +:105930009EE8872F762F05C0662371F096E8862FA4 +:1059400070E060E02AF09A95660F771F881FDAF7FB +:10595000880F9695879597F9089557FD9058440FAD +:10596000551F59F05F3F71F04795880F97FB991FBE +:1059700061F09F3F79F0879508951216130614067B +:10598000551FF2CF4695F1DF08C016161706180608 +:10599000991FF1CF86957105610508940895E894E3 +:1059A000BB2766277727CB0197F908950BD078C0DE +:1059B00069D028F06ED018F0952309F05AC05FC066 +:1059C0001124EECFCADFA0F3959FD1F3950F50E0DD +:1059D000551F629FF001729FBB27F00DB11D639FA1 +:1059E000AA27F00DB11DAA1F649F6627B00DA11D47 +:1059F000661F829F2227B00DA11D621F739FB00DED +:105A0000A11D621F839FA00D611D221F749F33275C +:105A1000A00D611D231F849F600D211D822F762FF5 +:105A20006A2F11249F5750408AF0E1F088234AF0F2 +:105A3000EE0FFF1FBB1F661F771F881F915050403E +:105A4000A9F79E3F510570F014C0AACF5F3FECF359 +:105A5000983EDCF3869577956795B795F795E7952A +:105A60009F5FC1F7FE2B880F911D9695879597F93B +:105A7000089597F99F6780E870E060E008959FEFD0 +:105A800080EC089500240A941616170618060906D5 +:105A9000089500240A9412161306140605060895A4 +:105AA000092E0394000C11F4882352F0BB0F40F42C +:105AB000BF2B11F460FF04C06F5F7F4F8F4F9F4F6C +:105AC0000895991B79E004C0991F961708F0961B5A +:105AD000881F7A95C9F78095089597FB072E16F4CD +:105AE000009407D077FD09D00E94872D07FC05D0D0 +:105AF0003EF4909581959F4F0895709561957F4FE5 +:105B00000895EE0FFF1F0590F491E02D0994AA1B54 +:105B1000BB1B51E107C0AA1FBB1FA617B70710F098 +:105B2000A61BB70B881F991F5A95A9F780959095CA +:105B3000BC01CD010895F999FECF92BD81BDF89ABF +:105B4000992780B50895A8E1B0E042E050E00C94B8 +:105B5000BE2D262FF999FECF1FBA92BD81BD20BD63 +:105B60000FB6F894FA9AF99A0FBE019608950E941A +:105B7000A92D272F0C94AA2DDC01CB01FC01F9994A +:105B8000FECF06C0F2BDE1BDF89A319600B40D9289 +:0C5B900041505040B8F70895F894FFCF42 +:105B9C002002120D030EE00DAC0D780D0101C501B4 +:105BAC0028080A03140A3F4D3620394605F904C368 +:105BBC0004A3046A04DD03F6030F0428044804015B +:0A5BCC0002030405060708090000A3 +:00000001FF