From dfb0a512a0f9d22c1bd7cadc519422a09cf378de Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:43:22 -0700 Subject: Added personal configs and keymap to infinity60/keymaps --- keyboards/infinity60/config.h | 2 +- keyboards/infinity60/keymaps/jpetermans/Makefile | 6 + keyboards/infinity60/keymaps/jpetermans/config.h | 11 ++ keyboards/infinity60/keymaps/jpetermans/keymap.c | 145 +++++++++++++++++++++++ 4 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 keyboards/infinity60/keymaps/jpetermans/Makefile create mode 100644 keyboards/infinity60/keymaps/jpetermans/config.h create mode 100644 keyboards/infinity60/keymaps/jpetermans/keymap.c (limited to 'keyboards') diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h index f8346fe16..83930901c 100644 --- a/keyboards/infinity60/config.h +++ b/keyboards/infinity60/config.h @@ -54,7 +54,7 @@ along with this program. If not, see . //#define INFINITY_PROTOTYPE /* Keymap for Infinity 1.1a (first revision with LED support) */ -//#define INFINITY_LED +#define INFINITY_LED /* * Feature disable options diff --git a/keyboards/infinity60/keymaps/jpetermans/Makefile b/keyboards/infinity60/keymaps/jpetermans/Makefile new file mode 100644 index 000000000..225e4cad4 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/Makefile @@ -0,0 +1,6 @@ +#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +#BOOTMAGIC_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/infinity60/keymaps/jpetermans/config.h b/keyboards/infinity60/keymaps/jpetermans/config.h new file mode 100644 index 000000000..72a2ed081 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/config.h @@ -0,0 +1,11 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + + +#include "../../config.h" + +//overrides +#undef TAPPING_TOGGLE +#define TAPPING_TOGGLE 2 + +#endif diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c new file mode 100644 index 000000000..be0bee544 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -0,0 +1,145 @@ +#include "infinity60.h" +#include "backlight.h" + +//Helpful Defines +#define _______ KC_TRNS + +//Define Layer Names +#define _BASE 0 +#define _NUMPAD 1 +#define _FNAV 2 +#define _MEDIA 3 +#define _TILDE 4 + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui | FN | Ctrl | + * `-----------------------------------------------------------' + */ + /* default */ + [_BASE] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_NO,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ + TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ + F(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_NO, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \ + ), + + /* F-, arrow, and media keys */ + [_FNAV] = KEYMAP( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\ + KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \ + _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ + _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \ + _______,_______,_______, _______, F(0),KC_NLCK,_______,_______ \ + ), + + /* numpad */ + [_NUMPAD] = KEYMAP( \ + _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, \ + MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO, \ + _______,_______,_______, MO(_BASE), _______,_______,_______,_______ \ + ), + + /* media */ + [_MEDIA] = KEYMAP( \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,F(2),M(1),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ + ), + /* ~ */ + [_TILDE] = KEYMAP( \ + KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \ + _______,_______,_______, _______, _______,_______, _______,_______ \ + ), + /* template */ + [5] = KEYMAP( \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \ + _______,_______,_______, _______, _______,_______, _______,_______ \ + ), +}; + +//id for user defined functions and macros +enum function_id { + NONE, +}; + +enum macro_id { + ACTION_LEDS_ALL, +}; + +const uint16_t fn_actions[] = { + [0] = ACTION_KEY(LALT(LCTL(KC_DEL))), + [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), + [2] = ACTION_BACKLIGHT_TOGGLE() +/* [1] = ACTION_FUNCTION(ACTION_LEDS_GAME), + + [4] = ACTION_USAGE_CONSUMER(0x1B4), + [5] = ACTION_USAGE_CONSUMER(0x196), + [6] = ACTION_USAGE_CONSUMER(0x1A6), + [7] = ACTION_USAGE_CONSUMER(0x1A0) +*/ +}; + +/* custom action function */ +/* +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + (void)opt; + switch(id) { + case 1: + if(record->event.pressed) { + // signal the LED controller thread + chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE); + } + break; + } + +} +*/ + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + return MACRO( I(5), END); + } + break; + case 1: + if (record->event.pressed) { + } + 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) { + +}; + -- cgit v1.2.3-24-g4f1b From b73c935d3652df58fc573c83986424ab47a2ba14 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:45:15 -0700 Subject: Added tmk whitefox led files --- keyboards/infinity60/led.c | 28 ++- keyboards/infinity60/led_controller.c | 354 ++++++++++++++++++++++++++++++++++ keyboards/infinity60/led_controller.h | 93 +++++++++ 3 files changed, 474 insertions(+), 1 deletion(-) create mode 100644 keyboards/infinity60/led_controller.c create mode 100644 keyboards/infinity60/led_controller.h (limited to 'keyboards') diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index aed66c7c0..e17a5dd0d 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -1,5 +1,5 @@ /* -Copyright 2012 Jun Wako +Copyright 2015 Jun Wako This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,32 @@ along with this program. If not, see . #include "led.h" +#include "led_controller.h" +/* WARNING! This function needs to be callable from + * both regular threads and ISRs, unlocked (during resume-from-sleep). + * In particular, I2C functions (interrupt-driven) should NOT be called from here. + */ void led_set(uint8_t usb_led) { +/* + // PTA5: LED (1:on/0:off) + GPIOA->PDDR |= (1<<1); + PORTA->PCR[5] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + if (usb_led & (1<PSOR |= (1<<5); + } else { + GPIOA->PCOR |= (1<<5); + } + */ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * LED controller code + * WF uses IS31FL3731C matrix LED driver from ISSI + * datasheet: http://www.issi.com/WW/pdf/31FL3731C.pdf + */ + +#include "ch.h" +#include "hal.h" + +#include "led_controller.h" + +#include "hook.h" +#include "suspend.h" + +#include "usb_main.h" + +/* WF LED MAP + - digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A + + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 + 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 + 48 51 52 53 54 55 56 57 58 61 62 63 64 65 66 + 67 68 71 72 73 74 75 76 77 78 81 82 83 84 85 + 86 87 88 91 92 93 (94) 95 96 97 +*/ + +/* + each page has 0xB4 bytes + 0 - 0x11: LED control (on/off): + order: CA1, CB1, CA2, CB2, .... (CA - matrix A, CB - matrix B) + CAn controls Cn-8 .. Cn-1 (LSbit) + 0x12 - 0x23: blink control (like "LED control") + 0x24 - 0xB3: PWM control: byte per LED, 0xFF max on + order same as above (CA 1st row (8bytes), CB 1st row (8bytes), ...) +*/ + +/* Which LED should be used for CAPS LOCK indicator + * The usual Caps Lock position is C4-8, so the address is + * 0x24 + (4-1)*0x10 + (8-1) = 0x5B */ +#if !defined(CAPS_LOCK_LED_ADDRESS) +#define CAPS_LOCK_LED_ADDRESS 0x5B +#endif + +/* Which LED should breathe during sleep */ +#if !defined(BREATHE_LED_ADDRESS) +#define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS +#endif + +/* ================= + * ChibiOS I2C setup + * ================= */ +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +/* ============== + * variables + * ============== */ +// internal communication buffers +uint8_t tx[2] __attribute__((aligned(2))); +uint8_t rx[1] __attribute__((aligned(2))); + +// buffer for sending the whole page at once (used also as a temp buffer) +uint8_t full_page[0xB4+1] = {0}; + +// LED mask (which LEDs are present, selected by bits) +const uint8_t is31_wf_leds_mask[0x12] = { + 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, + 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00 +}; + +/* ============================ + * communication functions + * ============================ */ +msg_t is31_select_page(uint8_t page) { + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, US2ST(IS31_TIMEOUT)); +} + +msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size) { + is31_select_page(page); + return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, buffer, size, NULL, 0, US2ST(IS31_TIMEOUT)); +} + +msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data) { + is31_select_page(page); + tx[0] = reg; + tx[1] = data; + return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, US2ST(IS31_TIMEOUT)); +} + +msg_t is31_read_register(uint8_t b, uint8_t reg, uint8_t *result) { + is31_select_page(b); + + tx[0] = reg; + return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 1, result, 1, US2ST(IS31_TIMEOUT)); +} + +/* ======================== + * initialise the IS31 chip + * ======================== */ +void is31_init(void) { + // just to be sure that it's all zeroes + __builtin_memset(full_page,0,0xB4+1); + // zero function page, all registers (assuming full_page is all zeroes) + is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); + // disable hardware shutdown + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(GPIOB, 16); + chThdSleepMilliseconds(10); + // software shutdown + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, 0); + chThdSleepMilliseconds(10); + // zero function page, all registers + is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); + chThdSleepMilliseconds(10); + // software shutdown disable (i.e. turn stuff on) + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + chThdSleepMilliseconds(10); + // zero all LED registers on all 8 pages + uint8_t i; + for(i=0; i<8; i++) { + is31_write_data(i, full_page, 0xB4 + 1); + chThdSleepMilliseconds(1); + } +} + +/* ================== + * LED control thread + * ================== */ +#define LED_MAILBOX_NUM_MSGS 5 +static msg_t led_mailbox_queue[LED_MAILBOX_NUM_MSGS]; +mailbox_t led_mailbox; +static THD_WORKING_AREA(waLEDthread, 256); +static THD_FUNCTION(LEDthread, arg) { + (void)arg; + chRegSetThreadName("LEDthread"); + + uint8_t temp; + uint8_t save_page, save_breath1, save_breath2; + msg_t msg, retval; + + while(true) { + // wait for a message (asynchronous) + // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't + // be processed right away) + chMBFetch(&led_mailbox, &msg, TIME_INFINITE); + + // process 'msg' here + switch(msg) { + case LED_MSG_CAPS_ON: + // turn caps on on pages 1 and 2 + is31_write_register(0, CAPS_LOCK_LED_ADDRESS, 0xFF); + is31_write_register(1, CAPS_LOCK_LED_ADDRESS, 0xFF); + is31_write_register(2, CAPS_LOCK_LED_ADDRESS, 0xFF); + break; + case LED_MSG_CAPS_OFF: + // turn caps off on pages 1 and 2 + is31_write_register(0, CAPS_LOCK_LED_ADDRESS, 0); + is31_write_register(1, CAPS_LOCK_LED_ADDRESS, 0); + is31_write_register(2, CAPS_LOCK_LED_ADDRESS, 0); + break; + case LED_MSG_SLEEP_LED_ON: + // save current settings + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); + // use pages 7 and 8 for (hardware) breathing (assuming they're empty) + is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); + is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); + retval = MSG_TIMEOUT; + temp = 6; + while(retval == MSG_TIMEOUT) { + // switch to the other page + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); + temp = (temp == 6 ? 7 : 6); + // the times should be sufficiently long for IS31 to finish switching pages + retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); + } + // received a message (should be a wakeup), so restore previous state + chThdSleepMilliseconds(3000); // need to wait until the page change finishes + // note: any other messages are queued + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); + break; + case LED_MSG_SLEEP_LED_OFF: + // should not get here; wakeup should be received in the branch above + break; + case LED_MSG_ALL_TOGGLE: + // read current page into 'temp' + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + chThdSleepMilliseconds(1); + // switch to 'the other' page + if(temp==2) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + } else { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 2); + } + break; + case LED_MSG_GAME_TOGGLE: + // read current page into 'temp' + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + chThdSleepMilliseconds(1); + // switch to 'the other' page + if(temp==1) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + } else { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 1); + } + break; + } + } +} + +/* LED game mode */ +const uint8_t led_game[83] = { + 0x24, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x94, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0xA4, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, +}; + +/* ALL LEDs */ +const uint8_t led_all[83] = { + 0x24, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x34, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x44, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x54, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x64, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x74, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x84, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x94, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xA4, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, +}; + +/* ============= + * hook into TMK + * ============= */ +void hook_early_init(void) { + uint8_t i; + + /* initialise I2C */ + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; + + chThdSleepMilliseconds(10); + + /* initialise IS31 chip */ + is31_init(); + + /* enable WF LEDs on all pages */ + full_page[0] = 0; + __builtin_memcpy(full_page+1, is31_wf_leds_mask, 0x12); + for(i=0; i<8; i++) { + is31_write_data(i, full_page, 1+0x12); + } + + /* enable breathing when the displayed page changes */ + // Fade-in Fade-out, time = 26ms * 2^N, N=3 + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (3<<4)|3); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); + + /* Write pages */ + for(i=0; i<9; i++) { + is31_write_data(1,(uint8_t *)(led_game+(9*i)),9); + chThdSleepMilliseconds(5); + is31_write_data(2,(uint8_t *)(led_all+(9*i)),9); + chThdSleepMilliseconds(5); + } + + // clean up the capslock LED + is31_write_register(1, CAPS_LOCK_LED_ADDRESS, 0); + is31_write_register(2, CAPS_LOCK_LED_ADDRESS, 0); + + /* more time consuming LED processing should be offloaded into + * a thread, with asynchronous messaging. */ + chMBObjectInit(&led_mailbox, led_mailbox_queue, LED_MAILBOX_NUM_MSGS); + chThdCreateStatic(waLEDthread, sizeof(waLEDthread), LOWPRIO, LEDthread, NULL); +} + +void hook_usb_suspend_entry(void) { +#ifdef SLEEP_LED_ENABLE + chSysLockFromISR(); + chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_ON); + chSysUnlockFromISR(); +#endif /* SLEEP_LED_ENABLE */ +} + +void hook_usb_suspend_loop(void) { + chThdSleepMilliseconds(100); + /* Remote wakeup */ + if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { + send_remote_wakeup(&USB_DRIVER); + } +} + +void hook_usb_wakeup(void) { +#ifdef SLEEP_LED_ENABLE + chSysLockFromISR(); + chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_OFF); + chSysUnlockFromISR(); +#endif /* SLEEP_LED_ENABLE */ +} diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h new file mode 100644 index 000000000..dcf346e04 --- /dev/null +++ b/keyboards/infinity60/led_controller.h @@ -0,0 +1,93 @@ +/* +Copyright 2016 flabbergast + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _LED_CONTROLLER_H_ +#define _LED_CONTROLLER_H_ + +/* ========================= + * communication functions + * ========================= */ + +msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size); +msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data); +msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); + +/* ============================= + * IS31 chip related definitions + * ============================= */ + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' + +#define IS31_TIMEOUT 10000 // needs to be long enough to write a whole page + +/* ============================== + * LED Thread related definitions + * ============================== */ + +extern mailbox_t led_mailbox; + +// constants for signaling the LED controller thread +#define LED_MSG_CAPS_ON 1 +#define LED_MSG_CAPS_OFF 2 +#define LED_MSG_SLEEP_LED_ON 3 +#define LED_MSG_SLEEP_LED_OFF 4 +#define LED_MSG_ALL_TOGGLE 5 +#define LED_MSG_GAME_TOGGLE 6 + +#endif /* _LED_CONTROLLER_H_ */ -- cgit v1.2.3-24-g4f1b From da4c2d2e3e4cd566ccf0c5a468f1a544c4b2be55 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:46:54 -0700 Subject: Adjust led_controller.c matrix sttings and init function --- keyboards/infinity60/led_controller.c | 123 ++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 58 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index bc501d9f2..c5303a3e7 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -23,22 +23,24 @@ along with this program. If not, see . #include "ch.h" #include "hal.h" +#include "print.h" #include "led_controller.h" -#include "hook.h" #include "suspend.h" #include "usb_main.h" -/* WF LED MAP +/* Infinity60 LED MAP - digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A - 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 - 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 - 48 51 52 53 54 55 56 57 58 61 62 63 64 65 66 - 67 68 71 72 73 74 75 76 77 78 81 82 83 84 85 - 86 87 88 91 92 93 (94) 95 96 97 + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* + 28 31 32 33 34 35 36 37 38 41 42 43 44 45 + 46 47 48 51 52 53 54 55 56 57 58 61 62 + 63 64 65 66 67 68 71 72 73 74 75 76 77* + 78 81 82 83 84 85 86 87 + +*Unused in Alphabet Layout */ /* @@ -52,10 +54,10 @@ along with this program. If not, see . */ /* Which LED should be used for CAPS LOCK indicator - * The usual Caps Lock position is C4-8, so the address is - * 0x24 + (4-1)*0x10 + (8-1) = 0x5B */ + * The usual Caps Lock position is C4-6, so the address is + * 0x24 + (4-1)*0x10 + (8-1) = 0x59 */ #if !defined(CAPS_LOCK_LED_ADDRESS) -#define CAPS_LOCK_LED_ADDRESS 0x5B +#define CAPS_LOCK_LED_ADDRESS 0x59 #endif /* Which LED should breathe during sleep */ @@ -81,9 +83,12 @@ uint8_t rx[1] __attribute__((aligned(2))); uint8_t full_page[0xB4+1] = {0}; // LED mask (which LEDs are present, selected by bits) -const uint8_t is31_wf_leds_mask[0x12] = { +// See page comment above, control alternates CA matrix/CB matrix +// IC60 pcb uses only CA matrix. +// Each byte is a control pin for 8 leds 8-1 +const uint8_t is31_ic60_leds_mask[0x12] = { 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00 + 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x00 }; /* ============================ @@ -233,56 +238,55 @@ static THD_FUNCTION(LEDthread, arg) { } } +//These relate to the LED map above, row and column +//0x24 = first byte (CA1) of PWM page, 0x34 is 17th byte (CA2) /* LED game mode */ -const uint8_t led_game[83] = { +const uint8_t led_game[72] = { 0x24, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x64, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xA4, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* ALL LEDs */ -const uint8_t led_all[83] = { +const uint8_t led_all[72] = { 0x24, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x34, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x44, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x44, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x54, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x74, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x84, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x94, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0xA4, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; /* ============= * hook into TMK * ============= */ -void hook_early_init(void) { +void led_controller_init(void) { uint8_t i; + xprintf("led_controller_init"); /* initialise I2C */ /* I2C pins */ palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL @@ -299,9 +303,9 @@ void hook_early_init(void) { /* initialise IS31 chip */ is31_init(); - /* enable WF LEDs on all pages */ + /* enable LEDs on all pages */ full_page[0] = 0; - __builtin_memcpy(full_page+1, is31_wf_leds_mask, 0x12); + __builtin_memcpy(full_page+1, is31_ic60_leds_mask, 0x12); for(i=0; i<8; i++) { is31_write_data(i, full_page, 1+0x12); } @@ -312,7 +316,7 @@ void hook_early_init(void) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); /* Write pages */ - for(i=0; i<9; i++) { + for(i=0; i<8; i++) { is31_write_data(1,(uint8_t *)(led_game+(9*i)),9); chThdSleepMilliseconds(5); is31_write_data(2,(uint8_t *)(led_all+(9*i)),9); @@ -329,26 +333,29 @@ void hook_early_init(void) { chThdCreateStatic(waLEDthread, sizeof(waLEDthread), LOWPRIO, LEDthread, NULL); } -void hook_usb_suspend_entry(void) { -#ifdef SLEEP_LED_ENABLE - chSysLockFromISR(); - chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_ON); - chSysUnlockFromISR(); -#endif /* SLEEP_LED_ENABLE */ -} - -void hook_usb_suspend_loop(void) { - chThdSleepMilliseconds(100); - /* Remote wakeup */ - if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { - send_remote_wakeup(&USB_DRIVER); - } -} - -void hook_usb_wakeup(void) { -#ifdef SLEEP_LED_ENABLE - chSysLockFromISR(); - chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_OFF); - chSysUnlockFromISR(); -#endif /* SLEEP_LED_ENABLE */ -} +//TODO: Don't know equivalent QMK hooks for these +// +//void hook_usb_suspend_entry(void) { +//#ifdef SLEEP_LED_ENABLE +// chSysLockFromISR(); +// chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_ON); +// chSysUnlockFromISR(); +//#endif /* SLEEP_LED_ENABLE */ +//} +// +//void hook_usb_suspend_loop(void) { +// chThdSleepMilliseconds(100); +// /* Remote wakeup */ +// if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { +// send_remote_wakeup(&USB_DRIVER); +// } +//} +// +//void hook_usb_wakeup(void) { +//#ifdef SLEEP_LED_ENABLE +// chSysLockFromISR(); +// chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_OFF); +// chSysUnlockFromISR(); +//#endif /* SLEEP_LED_ENABLE */ +//} +//*/ -- cgit v1.2.3-24-g4f1b From f66361d678047af31d9d48ca6c22afcc48756882 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:48:31 -0700 Subject: add led init function to header for use in keymap.c --- keyboards/infinity60/led_controller.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index dcf346e04..7db02389f 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -26,6 +26,12 @@ msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size); msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data); msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); +/* ========================= + * init functions + * ========================= */ + +void led_controller_init(void); + /* ============================= * IS31 chip related definitions * ============================= */ @@ -83,11 +89,13 @@ msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); extern mailbox_t led_mailbox; // constants for signaling the LED controller thread -#define LED_MSG_CAPS_ON 1 -#define LED_MSG_CAPS_OFF 2 -#define LED_MSG_SLEEP_LED_ON 3 -#define LED_MSG_SLEEP_LED_OFF 4 -#define LED_MSG_ALL_TOGGLE 5 -#define LED_MSG_GAME_TOGGLE 6 +enum led_msg_t { + LED_MSG_CAPS_ON, + LED_MSG_CAPS_OFF, + LED_MSG_SLEEP_LED_ON, + LED_MSG_SLEEP_LED_OFF, + LED_MSG_ALL_TOGGLE, + LED_MSG_GAME_TOGGLE +}; #endif /* _LED_CONTROLLER_H_ */ -- cgit v1.2.3-24-g4f1b From 02ef122cbbf7b9f94de5f1248fd7f8ec0351f4b4 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:51:33 -0700 Subject: Add led_controller.h to user keymap.c --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 27 ++++++++++++++---------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index be0bee544..2c38068fe 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -1,5 +1,5 @@ #include "infinity60.h" -#include "backlight.h" +#include "led_controller.h" //Helpful Defines #define _______ KC_TRNS @@ -57,7 +57,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ - _______,_______,F(2),M(1),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,F(2),F(3),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ ), /* ~ */ @@ -85,12 +85,15 @@ enum function_id { enum macro_id { ACTION_LEDS_ALL, + ACTION_LEDS_GAME }; const uint16_t fn_actions[] = { [0] = ACTION_KEY(LALT(LCTL(KC_DEL))), [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), - [2] = ACTION_BACKLIGHT_TOGGLE() + [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), + [3] = ACTION_FUNCTION(ACTION_LEDS_GAME) + /* [1] = ACTION_FUNCTION(ACTION_LEDS_GAME), [4] = ACTION_USAGE_CONSUMER(0x1B4), @@ -101,27 +104,29 @@ const uint16_t fn_actions[] = { }; /* custom action function */ -/* void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { (void)opt; switch(id) { - case 1: + case ACTION_LEDS_ALL: if(record->event.pressed) { // signal the LED controller thread chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE); } - break; - } - + break; + case ACTION_LEDS_GAME: + if(record->event.pressed) { + // signal the LED controller thread + chMBPost(&led_mailbox, LED_MSG_ALL_TOGGLE, TIME_IMMEDIATE); + } + break; + } } -*/ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case 0: if (record->event.pressed) { - return MACRO( I(5), END); } break; case 1: @@ -135,7 +140,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - + led_controller_init(); }; // Runs constantly in the background, in a loop. -- cgit v1.2.3-24-g4f1b From 91f2e9fb5ec03aa4f8aee3a8a181ed0283170cf3 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 13:53:18 -0700 Subject: match hal settings to whitefox, fix make rules --- keyboards/infinity60/halconf.h | 4 ++-- keyboards/infinity60/rules.mk | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/halconf.h b/keyboards/infinity60/halconf.h index 46b37a4f4..f89dfc2e1 100644 --- a/keyboards/infinity60/halconf.h +++ b/keyboards/infinity60/halconf.h @@ -76,7 +76,7 @@ * @brief Enables the I2C subsystem. */ #if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE +#define HAL_USE_I2C TRUE #endif /** @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk index 56d6470b5..f58bb2642 100644 --- a/keyboards/infinity60/rules.mk +++ b/keyboards/infinity60/rules.mk @@ -1,6 +1,7 @@ # project specific files SRC = matrix.c \ - led.c + led.c \ + led_controller.c ## chip/board settings # - the next two should match the directories in @@ -63,4 +64,4 @@ CONSOLE_ENABLE ?= yes # Console for debug COMMAND_ENABLE ?= yes # Commands for debug and configuration SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover -CUSTOM_MATRIX ?= yes # Custom matrix file \ No newline at end of file +CUSTOM_MATRIX ?= yes # Custom matrix file -- cgit v1.2.3-24-g4f1b From 56be3007570a3b6b2e2f78f500cea4fb22430459 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 14:23:14 -0700 Subject: Add Kinetis_i2c settings consistent with whitefox mcuconf --- keyboards/infinity60/mcuconf.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/mcuconf.h b/keyboards/infinity60/mcuconf.h index f453304b7..6af85d079 100644 --- a/keyboards/infinity60/mcuconf.h +++ b/keyboards/infinity60/mcuconf.h @@ -47,9 +47,12 @@ * USB driver settings */ #define KINETIS_USB_USE_USB0 TRUE -/* Need to redefine this, since the default is for K20x */ -/* This is for Teensy LC; you should comment it out (or change to 5) - * for Teensy 3.x */ -#define KINETIS_USB_USB0_IRQ_PRIORITY 2 +#define KINETIS_USB_USB0_IRQ_PRIORITY 5 + +/* + * I2C driver settings + */ +#define KINETIS_I2C_USE_I2C0 TRUE +#define KINETIS_I2C_I2C0_PRIORITY 4 #endif /* _MCUCONF_H_ */ -- cgit v1.2.3-24-g4f1b From d89114400c398b900e27bf324a7973d1e0f25e58 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 15:22:13 -0700 Subject: Small keymap tweak and clean up. --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 2c38068fe..d6c2b7bb5 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -55,8 +55,8 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* media */ [_MEDIA] = KEYMAP( \ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, _______, KC_UP, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, KC_LEFT, KC_DOWN, KC_RGHT,_______, _______,_______, \ _______,_______,F(2),F(3),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ ), @@ -93,14 +93,6 @@ const uint16_t fn_actions[] = { [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), [3] = ACTION_FUNCTION(ACTION_LEDS_GAME) - -/* [1] = ACTION_FUNCTION(ACTION_LEDS_GAME), - - [4] = ACTION_USAGE_CONSUMER(0x1B4), - [5] = ACTION_USAGE_CONSUMER(0x196), - [6] = ACTION_USAGE_CONSUMER(0x1A6), - [7] = ACTION_USAGE_CONSUMER(0x1A0) -*/ }; /* custom action function */ -- cgit v1.2.3-24-g4f1b From af13e9a12d64f74873e5bf429fdedcda37b3036a Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 6 Apr 2017 16:27:51 -0700 Subject: Moved led page arrays to keymap.c and added keymap header to define individual led addresses --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 80 ++++++++++++++++++++-- .../keymaps/jpetermans/keymap_jpetermans.h | 78 +++++++++++++++++++++ keyboards/infinity60/led_controller.c | 51 +------------- 3 files changed, 152 insertions(+), 57 deletions(-) create mode 100644 keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 2c38068fe..7b90bc8ed 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -1,5 +1,6 @@ #include "infinity60.h" #include "led_controller.h" +#include "keymap_jpetermans.h" //Helpful Defines #define _______ KC_TRNS @@ -86,6 +87,66 @@ enum function_id { enum macro_id { ACTION_LEDS_ALL, ACTION_LEDS_GAME +//TODO: ACTION_LED_LAYER which reads current layer and turns on appropriate LED +}; + +/* + Configuring led control can be done + 1. full keyboard at a time - define led array, or + 2. individual - send specific led address (defined in keymap.h) + + The arrays relate to the mcu's LED pages (8 available) desribed in led_controller.c + 0x24 (pcb row 1) is first byte of PWM portion of LED page + 0x34 (pcb row 2) is 17th byte of PWM portion of LED page + array translates to row and column positions + + + Infinity60 LED MAP + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* + 28 31 32 33 34 35 36 37 38 41 42 43 44 45 + 46 47 48 51 52 53 54 55 56 57 58 61 62 + 63 64 65 66 67 68 71 72 73 74 75 76 77* + 78 81 82 83 84 85 86 87 +*Unused in Alphabet Layout +*/ + +//"WASD" +const uint8_t led_game[72] = { + 0x24, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, + 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x64, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +const uint8_t led_all[72] = { + 0x24, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x34, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x44, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x54, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x64, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x74, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x84, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x94, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; const uint16_t fn_actions[] = { @@ -94,13 +155,6 @@ const uint16_t fn_actions[] = { [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), [3] = ACTION_FUNCTION(ACTION_LEDS_GAME) -/* [1] = ACTION_FUNCTION(ACTION_LEDS_GAME), - - [4] = ACTION_USAGE_CONSUMER(0x1B4), - [5] = ACTION_USAGE_CONSUMER(0x196), - [6] = ACTION_USAGE_CONSUMER(0x1A6), - [7] = ACTION_USAGE_CONSUMER(0x1A0) -*/ }; /* custom action function */ @@ -140,7 +194,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { + uint8_t j; + led_controller_init(); + +//TODO: do pages need to be written at init or ok on demand? + /* Write pages */ + for(j=0; j<8; j++) { + is31_write_data(1,(uint8_t *)(led_game+(9*j)),9); + chThdSleepMilliseconds(5); + is31_write_data(2,(uint8_t *)(led_all+(9*j)),9); + chThdSleepMilliseconds(5); + } + }; // Runs constantly in the background, in a loop. diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h b/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h new file mode 100644 index 000000000..240374423 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h @@ -0,0 +1,78 @@ +/* LED layout mainly based on default Standard configuration + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ` | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Bksp| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * | LCtl|LGui|LAlt | Space | RAlt|RGui|RMenu|RCtl| + * `-----------------------------------------------------------' +*/ + + +#define ADDR_LED_ESC 0x24 +#define ADDR_LED_1 0x25 +#define ADDR_LED_2 0x26 +#define ADDR_LED_3 0x27 +#define ADDR_LED_4 0x28 +#define ADDR_LED_5 0x29 +#define ADDR_LED_6 0x2A +#define ADDR_LED_7 0x2B +#define ADDR_LED_8 0x34 +#define ADDR_LED_9 0x35 +#define ADDR_LED_0 0x36 +#define ADDR_LED_MINS 0x37 +#define ADDR_LED_EQL 0x38 +#define ADDR_LED_BSLS 0x39 +//#define ADDR_LED_GRV 0x3A //not used by Alphabet layout +#define ADDR_LED_TAB 0x3B +#define ADDR_LED_Q 0x44 +#define ADDR_LED_W 0x45 +#define ADDR_LED_E 0x46 +#define ADDR_LED_R 0x47 +#define ADDR_LED_T 0x48 +#define ADDR_LED_Y 0x49 +#define ADDR_LED_U 0x4A +#define ADDR_LED_I 0x4B +#define ADDR_LED_O 0x54 +#define ADDR_LED_P 0x55 +#define ADDR_LED_LBRC 0x56 +#define ADDR_LED_RBRC 0x57 +#define ADDR_LED_BSPC 0x58 +#define ADDR_LED_CAPS 0x59 +#define ADDR_LED_A 0x5A +#define ADDR_LED_S 0x5B +#define ADDR_LED_D 0x64 +#define ADDR_LED_F 0x65 +#define ADDR_LED_G 0x66 +#define ADDR_LED_H 0x67 +#define ADDR_LED_J 0x68 +#define ADDR_LED_K 0x69 +#define ADDR_LED_L 0x6A +#define ADDR_LED_SCLN 0x6B +#define ADDR_LED_QUOT 0x74 +#define ADDR_LED_ENT 0x75 +#define ADDR_LED_LSFT 0x76 +#define ADDR_LED_Z 0x77 +#define ADDR_LED_X 0x78 +#define ADDR_LED_C 0x79 +#define ADDR_LED_V 0x7A +#define ADDR_LED_B 0x7B +#define ADDR_LED_N 0x84 +#define ADDR_LED_M 0x85 +#define ADDR_LED_COMM 0x86 +#define ADDR_LED_DOT 0x87 +#define ADDR_LED_SLSH 0x88 +#define ADDR_LED_RSFT 0x89 +//#define ADDR_LED_FN0 0x8A //not used by Alphabet layout +#define ADDR_LED_LCTL 0x8B +#define ADDR_LED_LGUI 0x94 +#define ADDR_LED_LALT 0x95 +#define ADDR_LED_SPC 0x96 +#define ADDR_LED_RALT 0x97 +#define ADDR_LED_RGUI 0x98 +#define ADDR_LED_MENU 0x99 +#define ADDR_LED_RCTL 0x9A diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index c5303a3e7..9579bc08b 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -171,6 +171,7 @@ static THD_FUNCTION(LEDthread, arg) { // process 'msg' here switch(msg) { +//TODO: make this generic and able to turn on/off any address and loop through all(or current) pages case LED_MSG_CAPS_ON: // turn caps on on pages 1 and 2 is31_write_register(0, CAPS_LOCK_LED_ADDRESS, 0xFF); @@ -238,48 +239,6 @@ static THD_FUNCTION(LEDthread, arg) { } } -//These relate to the LED map above, row and column -//0x24 = first byte (CA1) of PWM page, 0x34 is 17th byte (CA2) -/* LED game mode */ -const uint8_t led_game[72] = { - 0x24, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x34, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x54, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x64, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x84, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x94, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* ALL LEDs */ -const uint8_t led_all[72] = { - 0x24, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x34, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0x44, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x54, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x64, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x74, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x84, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x94, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; - /* ============= * hook into TMK * ============= */ @@ -315,14 +274,6 @@ void led_controller_init(void) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (3<<4)|3); is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); - /* Write pages */ - for(i=0; i<8; i++) { - is31_write_data(1,(uint8_t *)(led_game+(9*i)),9); - chThdSleepMilliseconds(5); - is31_write_data(2,(uint8_t *)(led_all+(9*i)),9); - chThdSleepMilliseconds(5); - } - // clean up the capslock LED is31_write_register(1, CAPS_LOCK_LED_ADDRESS, 0); is31_write_register(2, CAPS_LOCK_LED_ADDRESS, 0); -- cgit v1.2.3-24-g4f1b From a2ac8837790030b771744402aac8d8ab0e1967aa Mon Sep 17 00:00:00 2001 From: jpetermans Date: Fri, 7 Apr 2017 15:58:17 -0700 Subject: add ability to toggle individual led by address --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 78 +++++++----- keyboards/infinity60/led.c | 3 + keyboards/infinity60/led_controller.c | 148 ++++++++++++----------- 3 files changed, 128 insertions(+), 101 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 7b90bc8ed..c7145ed78 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -12,6 +12,10 @@ #define _MEDIA 3 #define _TILDE 4 +/* ================================== + * KEYMAPS + * ==================================*/ + const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 0: Default Layer * ,-----------------------------------------------------------. @@ -58,7 +62,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ - _______,_______,F(2),F(3),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,F(2),F(3),F(4),_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ ), /* ~ */ @@ -86,28 +90,35 @@ enum function_id { enum macro_id { ACTION_LEDS_ALL, - ACTION_LEDS_GAME -//TODO: ACTION_LED_LAYER which reads current layer and turns on appropriate LED + ACTION_LEDS_GAME, + ACTION_LED_1 }; + +/* ================================== + * LED MAPPING + * ==================================*/ + +//TODO: ACTION_LED_LAYER which reads current layer and turns on appropriate LED /* - Configuring led control can be done + Configuring led control can be done as 1. full keyboard at a time - define led array, or - 2. individual - send specific led address (defined in keymap.h) - - The arrays relate to the mcu's LED pages (8 available) desribed in led_controller.c + 2. individual led - send specific led address (defined in keymap.h) + + Infinity60 LED MAP + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* + 28 31 32 33 34 35 36 37 38 41 42 43 44 45 + 46 47 48 51 52 53 54 55 56 57 58 61 62 + 63 64 65 66 67 68 71 72 73 74 75 76 77* + 78 81 82 83 84 85 86 87 + *Unused in Alphabet Layout + + The full keyboard arrays map to the mcu's LED pages + (8 available) desribed in led_controller.c + 0x24 (pcb row 1) is first byte of PWM portion of LED page 0x34 (pcb row 2) is 17th byte of PWM portion of LED page array translates to row and column positions - - - Infinity60 LED MAP - 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* - 28 31 32 33 34 35 36 37 38 41 42 43 44 45 - 46 47 48 51 52 53 54 55 56 57 58 61 62 - 63 64 65 66 67 68 71 72 73 74 75 76 77* - 78 81 82 83 84 85 86 87 -*Unused in Alphabet Layout */ //"WASD" @@ -153,7 +164,8 @@ const uint16_t fn_actions[] = { [0] = ACTION_KEY(LALT(LCTL(KC_DEL))), [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), - [3] = ACTION_FUNCTION(ACTION_LEDS_GAME) + [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), + [4] = ACTION_FUNCTION(ACTION_LED_1) }; @@ -162,15 +174,21 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { (void)opt; switch(id) { case ACTION_LEDS_ALL: - if(record->event.pressed) { - // signal the LED controller thread - chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE); - } + if(record->event.pressed) { + // signal the LED controller thread + chMBPost(&led_mailbox, 1, TIME_IMMEDIATE); + } break; case ACTION_LEDS_GAME: if(record->event.pressed) { // signal the LED controller thread - chMBPost(&led_mailbox, LED_MSG_ALL_TOGGLE, TIME_IMMEDIATE); + chMBPost(&led_mailbox, 2, TIME_IMMEDIATE); + } + break; + case ACTION_LED_1: + if(record->event.pressed) { + // signal the LED controller thread + chMBPost(&led_mailbox, ADDR_LED_1, TIME_IMMEDIATE); } break; } @@ -179,14 +197,14 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { - case 0: - if (record->event.pressed) { - } - break; - case 1: - if (record->event.pressed) { - } - break; + case 0: + if (record->event.pressed) { + } + break; + case 1: + if (record->event.pressed) { + } + break; } return MACRO_NONE; }; diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index e17a5dd0d..815a529fc 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -36,6 +36,9 @@ void led_set(uint8_t usb_led) { GPIOA->PCOR |= (1<<5); } */ +//TODO: How does this test if led is set +//usb_led --> led_set(usb_led) <-- chibios/host_keyboard_leds <-- keyboard_leds from usbSetupTransfer +//keyboard_leds is enum'd in chibios/main.c if (usb_led & (1<= 0x24) { + xprintf("Power pre-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + is31_read_register(0, msg, &temp); + chThdSleepMilliseconds(10); + xprintf("Post-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + chThdSleepMilliseconds(10); + pwm = (temp > 0x00 ? 0x00 : 0xFF); + xprintf("pwm after: %X\n", pwm); + chThdSleepMilliseconds(10); + for(i=0; i<8; i++) { + is31_write_register(i, msg, pwm); + } + xprintf("Power post-change\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + chThdSleepMilliseconds(10); + } + break; + } } + xprintf("--------------------\n"); } } - -/* ============= - * hook into TMK - * ============= */ +/* ===================== + * hook into user keymap + * ===================== */ void led_controller_init(void) { uint8_t i; -- cgit v1.2.3-24-g4f1b From dda858c437e2fd0336f070ccb5d1f6e412815d9a Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 10 Apr 2017 17:36:47 -0700 Subject: revised led controller code to allow for more options unable to switch picture displays --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 103 +++---- keyboards/infinity60/led.c | 4 +- keyboards/infinity60/led_controller.c | 333 ++++++++++++++++++----- keyboards/infinity60/led_controller.h | 33 ++- 4 files changed, 340 insertions(+), 133 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index c7145ed78..cfc288916 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -98,8 +98,6 @@ enum macro_id { * LED MAPPING * ==================================*/ -//TODO: ACTION_LED_LAYER which reads current layer and turns on appropriate LED - /* Configuring led control can be done as 1. full keyboard at a time - define led array, or @@ -121,43 +119,50 @@ enum macro_id { array translates to row and column positions */ -//"WASD" -const uint8_t led_game[72] = { - 0x24, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x34, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x54, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x64, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x84, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x94, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +//LED Layer indicator (1 per layer 3-7) +const uint8_t led_single_layer[5] = { + 12,13,14,15,16 }; - -const uint8_t led_all[72] = { - 0x24, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x34, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x44, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x54, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x64, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x74, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x84, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x94, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +//LED Page 1 - All off +//LED Page 2 - All on +//LED Page 3 - _Nav +const uint8_t led_nav[33] = { + 11,12,13,14,15,16,17,18,21,22,23,24,25, + 28, 37,38,41,42,45, + 46,47,48, 54,55,56,57,58, + 64,65,66, 71, + 84,85 +}; +//LED Page 4 - _Numpad +const uint8_t led_numpad[17] = { + 18,21,22,23, + 37,38,41,42, + 55,56,57,58, + 72,73,74,75, + 85 +}; +//LED Page 5 - _Media +const uint8_t led_media[12] = { + 23,24,25, + 38, + 55,56,57, + 73,74,75, + 83, 86 +}; +//LED Page 6 - _Game +const uint8_t led_game[5] = { + //row 1 + 11, + //row 2 + //row 3 + 32, + //row 4 + 47, 48, + //row 5 + 51 + //row 6 + //row 7 + //row 8 }; const uint16_t fn_actions[] = { @@ -172,17 +177,20 @@ const uint16_t fn_actions[] = { /* custom action function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { (void)opt; + msg_t msg; switch(id) { case ACTION_LEDS_ALL: if(record->event.pressed) { // signal the LED controller thread - chMBPost(&led_mailbox, 1, TIME_IMMEDIATE); + msg=(TOGGLE_LED << 8) | 12; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LEDS_GAME: if(record->event.pressed) { // signal the LED controller thread - chMBPost(&led_mailbox, 2, TIME_IMMEDIATE); + msg=(TOGGLE_LAYER_LEDS << 8) | 5; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LED_1: @@ -212,19 +220,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - uint8_t j; led_controller_init(); //TODO: do pages need to be written at init or ok on demand? - /* Write pages */ - for(j=0; j<8; j++) { - is31_write_data(1,(uint8_t *)(led_game+(9*j)),9); +/* Write pages */ + write_led_page(3, led_nav, 33); chThdSleepMilliseconds(5); - is31_write_data(2,(uint8_t *)(led_all+(9*j)),9); + + write_led_page(4, led_numpad, 17); chThdSleepMilliseconds(5); - } + write_led_page(5, led_media, 12); + chThdSleepMilliseconds(5); + + write_led_page(6, led_game, 5); + chThdSleepMilliseconds(5); }; // Runs constantly in the background, in a loop. diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index 815a529fc..d2f554549 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -42,12 +42,12 @@ void led_set(uint8_t usb_led) { if (usb_led & (1<. * The usual Caps Lock position is C4-6, so the address is * 0x24 + (4-1)*0x10 + (8-1) = 0x59 */ #if !defined(CAPS_LOCK_LED_ADDRESS) -#define CAPS_LOCK_LED_ADDRESS 0x59 +#define CAPS_LOCK_LED_ADDRESS 0x46 +#endif + +#if !defined(NUM_LOCK_LED_ADDRESS) +#define NUM_LOCK_LED_ADDRESS 0x85 #endif /* Which LED should breathe during sleep */ @@ -85,12 +89,21 @@ uint8_t full_page[0xB4+1] = {0}; // LED mask (which LEDs are present, selected by bits) // See page comment above, control alternates CA matrix/CB matrix // IC60 pcb uses only CA matrix. -// Each byte is a control pin for 8 leds 8-1 +// Each byte is a control pin for 8 leds ordered 8-1 const uint8_t is31_ic60_leds_mask[0x12] = { 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x00 }; +// array to hold brightness pwm steps +const uint8_t pwm_levels[5] = { + 0x00, 0x16, 0x4E, 0xA1, 0xFF +}; + +// array to write to pwm register +uint8_t pwm_reg_array[9] = {0}; + + /* ============================ * communication functions * ============================ */ @@ -109,6 +122,7 @@ msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data) { is31_select_page(page); tx[0] = reg; tx[1] = data; + xprintf("page display: %X\n", page); return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, US2ST(IS31_TIMEOUT)); } @@ -160,98 +174,267 @@ static THD_FUNCTION(LEDthread, arg) { (void)arg; chRegSetThreadName("LEDthread"); - uint8_t i; - uint8_t temp, pwm; - uint8_t save_page, save_breath1, save_breath2; + uint8_t i, page; + + //persistent status variables + uint8_t backlight_status, lock_status, led_step, active_layer; + uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes + + //mailbox variables + uint8_t temp, msg_type, msg_led; + msg_t msg; + +/* //control register variables + uint8_t page, save_page, save_breath1, save_breath2; msg_t msg, retval; +*/ + +// initialize persistent variables +backlight_status = 0; +lock_status = 0;//TODO: does keyboard remember locks? +led_step = 4; //full brightness +active_layer = 0; while(true) { // wait for a message (asynchronous) // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't // be processed right away) chMBFetch(&led_mailbox, &msg, TIME_INFINITE); + msg_type = (msg >> 8) & 0xFF; //first byte is msg type + msg_led = (msg) & 0xFF; //second byte is action information - // process 'msg' here - // if msg between 0-7, then process as page#, otherwise a specific LED address xprintf("--------------------\n"); - xprintf("mailbox fetch\ntemp: %X - msg: %X\n", temp, msg); - if (msg < 8) { - - // read current page into 'temp' - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - chThdSleepMilliseconds(1); - // If page is already in layer, switch off (layer 0) - xprintf("Layer: post-read\ntemp: %X\n", temp); - if(temp == msg) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); - } else { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg); - } - xprintf("Layer: post-change\ntemp: %X\n", temp); - - } else { - - switch(msg) { -//TODO: make this generic and able to turn on/off any address and loop through all(or current) pages -//TODO: set number of layers somewhere and loop through all when setting specific led - case LED_MSG_SLEEP_LED_ON: - // save current settings - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); - // use pages 7 and 8 for (hardware) breathing (assuming they're empty) - is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); - is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); - retval = MSG_TIMEOUT; - temp = 6; - while(retval == MSG_TIMEOUT) { - // switch to the other page - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); - temp = (temp == 6 ? 7 : 6); - // the times should be sufficiently long for IS31 to finish switching pages - retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); + xprintf("mailbox fetch\nmsg: %X\n", msg); + xprintf("type: %X - led: %X\n", msg_type, msg_led); //test if msg_type is 1 or 2 bytes after mask + switch (msg_type){ + case KEY_LIGHT: + //TODO: lighting key led on keypress + break; + + case TOGGLE_LED: + //TODO: toggle existing indicator off, or let user do this, but write frame 7 for every led change + //turn on single led, msg_led = row/col of led + set_led_bit(led_control_reg, msg_led, 1); + + is31_write_data (7, led_control_reg, 0x12+1); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + active_layer = 7; + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + xprintf("page display: %X\n", temp); + break; + + case TOGGLE_ALL: + xprintf("TOGGLE_ALL\n"); + //msg_led = unused, TODO: consider using msg_led to toggle layer display + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + + xprintf("temp: %X\n", temp); + //if LED_ALL is on then toggle off, any other layer, turn on LED_ALL + if(temp == 1) { + xprintf("page display true: %X\n", temp); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + } else { + xprintf("page display false: %X\n", temp); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 1); + } + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + xprintf("page display: %X\n", temp); + break; + + case TOGGLE_BACKLIGHT: + //msg_led = unused + backlight_status ^= 1; + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + active_layer = temp; + + page = backlight_status == 0 ? 0 : active_layer; + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, page); + break; + + case TOGGLE_LAYER_LEDS://show layer indicator or full map of layer keys. + //TODO: change so user can flag which they want, indiv or full map in fn_actions + //msg_led = layer to toggle on + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + + if(temp == msg_led) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + active_layer = 7; + } else { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); + active_layer = msg_led; + } + break; + + case TOGGLE_LOCK_LED: + //msg_led = 0-3 for lock flags + lock_status ^= msg_led; //TODO: confirm toggling works and doesn't get out of sync + set_lock_leds(led_control_reg, lock_status); + break; + + case MODE_BREATH: + break; + case STEP_BRIGHTNESS: + //pwm_levels[] bounds checking, loop through array + //TODO: find a cleaner way to walk through this logic + if (msg_led == 0) { + if (led_step == 0) { + led_step = 4; + } else { + led_step--; } - // received a message (should be a wakeup), so restore previous state - chThdSleepMilliseconds(3000); // need to wait until the page change finishes - // note: any other messages are queued - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); - break; - case LED_MSG_SLEEP_LED_OFF: - // should not get here; wakeup should be received in the branch above break; - break; - default: - if(msg >= 0x24) { - xprintf("Power pre-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + } else { + if (led_step == 4) { + led_step = 0; + } else { + led_step++; + } + } + + //TODO: this seems a messy way to populate the pwm register + //populate the 9 byte rows to be written to each pin, first byte is register (pin) address + for(i=1; i<9; i++) { + pwm_reg_array[i]=pwm_levels[led_step]; + } + for(i=0; i<8; i++) { + pwm_reg_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address + is31_write_data(0, pwm_reg_array, 9); + chThdSleepMilliseconds(5); + } + break; + +/* case LED_MSG_SLEEP_LED_ON: + // save current settings + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); + // use pages 7 and 8 for (hardware) breathing (assuming they're empty) + is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); + is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); + retval = MSG_TIMEOUT; + temp = 6; + while(retval == MSG_TIMEOUT) { + // switch to the other page + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); + temp = (temp == 6 ? 7 : 6); + // the times should be sufficiently long for IS31 to finish switching pages + retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); + } + // received a message (should be a wakeup), so restore previous state + chThdSleepMilliseconds(3000); // need to wait until the page change finishes + // note: any other messages are queued + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); + break; + case LED_MSG_SLEEP_LED_OFF: + // should not get here; wakeup should be received in the branch above break; + break; + default: + //TODO: individual led state unchanged if page arrays are selected in code above + //avoidable if full pages are written on the fly + //or use pg8 for individual leds, have pointer to currently on led address for toggling + if (msg == 0x59 || msg == 0x84) { + //toggle lock keys on all layers + for (i=0,i<8,i++) { is31_read_register(0, msg, &temp); - chThdSleepMilliseconds(10); - xprintf("Post-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); - chThdSleepMilliseconds(10); pwm = (temp > 0x00 ? 0x00 : 0xFF); - xprintf("pwm after: %X\n", pwm); - chThdSleepMilliseconds(10); - for(i=0; i<8; i++) { - is31_write_register(i, msg, pwm); - } - xprintf("Power post-change\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); - chThdSleepMilliseconds(10); + is31_write_register(i,msg,pwm); + } + + } else if(msg >= 0x24) { + xprintf("Power pre-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + is31_read_register(7, msg, &temp); + xprintf("Post-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + if (msg == active_led) { + //toggle led power + pwm = (temp > 0x00 ? 0x00 : 0xFF); + + //Use 8th led page for individual led indicators + is31_write_register(7, msg, pwm); + } else { + is31_write_register(7, active_led, 0x00); + is31_write_register(7, msg, 0xFF); + } + xprintf("Power post-change\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); } break; - } +*/ } xprintf("--------------------\n"); } } + + +/* ======================== + * led bit processing + * ======================== */ +void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) { + uint8_t row_byte, column_bit; + //msg_led tens column is pin#, A-control register is every other 8 bits + //ones column is bit position in 8-bit mask + //control register will be one bit shifted into position along register's full 0x12 bytes + ////first byte is register address 0x00 + row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1; + column_bit = 1<<(msg_led % 10 - 1); + + if (toggle_on) { + led_control_reg[row_byte] |= 1<<(column_bit); + } else { + led_control_reg[row_byte] &= ~1<<(column_bit); + } +} + +void set_lock_leds(uint8_t *led_control_reg, uint8_t lock_status) { + uint8_t i; + + switch (lock_status) { + case 1: + set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1);//TODO: define lock addresses by matrix#, and loop for all frames + set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 0); + break; + case 2: + set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 0); + set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 1); + break; + case 3: + set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 1); + set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1); + break; + } + + for(i=1; i<8; i++) { //keep LED_OFF layer all off, including locks + is31_write_data (i, led_control_reg, 0x12+1); + chThdSleepMilliseconds(5); + } +} + +void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count) { +//TODO: init function that accepts array of led addresses and sets them by row + uint8_t i; + uint8_t row, col; + uint8_t temp_control_reg[0x13] = {0};//led control register start address + 0x12 bytes + xprintf("-------------\n"); + xprintf("write page %X\n", page); + + for(i=0;i Date: Mon, 10 Apr 2017 22:23:45 -0700 Subject: led init code missing pwm writes for Frame 1 --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 32 ++++++++++++++++++------ keyboards/infinity60/led_controller.c | 23 +++++++++++------ 2 files changed, 40 insertions(+), 15 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index cfc288916..87a1afc3e 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -62,7 +62,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ - _______,_______,F(2),F(3),F(4),_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,F(2),F(3),F(4),F(5),F(6),F(7), KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ ), /* ~ */ @@ -91,7 +91,9 @@ enum function_id { enum macro_id { ACTION_LEDS_ALL, ACTION_LEDS_GAME, - ACTION_LED_1 + ACTION_LEDS_NAV, + ACTION_LEDS_MEDIA, + ACTION_LEDS_NUMPAD }; /* ================================== @@ -170,7 +172,9 @@ const uint16_t fn_actions[] = { [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), - [4] = ACTION_FUNCTION(ACTION_LED_1) + [4] = ACTION_FUNCTION(ACTION_LEDS_MEDIA), + [5] = ACTION_FUNCTION(ACTION_LEDS_NAV), + [6] = ACTION_FUNCTION(ACTION_LEDS_NUMPAD) }; @@ -182,23 +186,35 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { case ACTION_LEDS_ALL: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LED << 8) | 12; + msg=(TOGGLE_ALL << 8) | 0; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LEDS_GAME: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 5; + msg=(TOGGLE_LED << 8) | 11; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LED_1: + case ACTION_LEDS_NAV: if(record->event.pressed) { // signal the LED controller thread - chMBPost(&led_mailbox, ADDR_LED_1, TIME_IMMEDIATE); + msg=(TOGGLE_LAYER_LEDS << 8) | 3; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + } + case ACTION_LEDS_NUMPAD: + if(record->event.pressed) { + // signal the LED controller thread + msg=(TOGGLE_LAYER_LEDS << 8) | 4; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + } + case ACTION_LEDS_MEDIA: + if(record->event.pressed) { + // signal the LED controller thread + msg=(TOGGLE_LAYER_LEDS << 8) | 5; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } - break; } } diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 03f061a20..2a7431a4c 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -122,7 +122,6 @@ msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data) { is31_select_page(page); tx[0] = reg; tx[1] = data; - xprintf("page display: %X\n", page); return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, US2ST(IS31_TIMEOUT)); } @@ -379,6 +378,8 @@ void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) ////first byte is register address 0x00 row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1; column_bit = 1<<(msg_led % 10 - 1); + xprintf("row %X\n", row_byte); + xprintf("col %X\n", column_bit); if (toggle_on) { led_control_reg[row_byte] |= 1<<(column_bit); @@ -451,15 +452,23 @@ void led_controller_init(void) { /* initialise IS31 chip */ is31_init(); - /* enable LEDs on all pages */ - full_page[0] = 0; - __builtin_memcpy(full_page+1, is31_ic60_leds_mask, 0x12); + //set Display Option Register so all pwm intensity is controlled from Frame 1 + is31_write_register(IS31_FUNCTIONREG, IS31_REG_DISPLAYOPT, IS31_REG_DISPLAYOPT_INTENSITY_SAME); + + /* set full pwm on Frame 1 */ + for(i=1; i<9; i++) { + pwm_reg_array[i]=0xFF; + } for(i=0; i<8; i++) { - is31_write_data(i, full_page, 1+0x12); + pwm_reg_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address + is31_write_data(0, pwm_reg_array, 9); + chThdSleepMilliseconds(5); } - //set Display Option Register so all pwm intensity is controlled from Frame 1 - is31_write_register(IS31_FUNCTIONREG, IS31_REG_DISPLAYOPT, IS31_REG_DISPLAYOPT_INTENSITY_SAME); + //set all led bits on for Frame 2 LEDS_ALL + full_page[0] = 0; + __builtin_memcpy(full_page+1, is31_ic60_leds_mask, 0x12); + is31_write_data(1, full_page, 1+0x12); /* enable breathing when the displayed page changes */ // Fade-in Fade-out, time = 26ms * 2^N, N=3 -- cgit v1.2.3-24-g4f1b From 0881f2dbfa6887347afad577def01c246050df61 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Tue, 11 Apr 2017 23:33:48 -0700 Subject: fixed write_led_page col shift, added option for lock led display --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 24 +++-- keyboards/infinity60/led_controller.c | 109 +++++++---------------- keyboards/infinity60/led_controller.h | 1 + 3 files changed, 53 insertions(+), 81 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 87a1afc3e..2eb66b506 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -93,7 +93,8 @@ enum macro_id { ACTION_LEDS_GAME, ACTION_LEDS_NAV, ACTION_LEDS_MEDIA, - ACTION_LEDS_NUMPAD + ACTION_LEDS_NUMPAD, + ACTION_LEDS_TEST }; /* ================================== @@ -174,7 +175,9 @@ const uint16_t fn_actions[] = { [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), [4] = ACTION_FUNCTION(ACTION_LEDS_MEDIA), [5] = ACTION_FUNCTION(ACTION_LEDS_NAV), - [6] = ACTION_FUNCTION(ACTION_LEDS_NUMPAD) + [6] = ACTION_FUNCTION(ACTION_LEDS_NUMPAD), + [7] = ACTION_FUNCTION(ACTION_LEDS_TEST) + }; @@ -193,7 +196,14 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { case ACTION_LEDS_GAME: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LED << 8) | 11; + msg=(TOGGLE_LAYER_LEDS << 8) | 6; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + } + break; + case ACTION_LEDS_MEDIA: + if(record->event.pressed) { + // signal the LED controller thread + msg=(TOGGLE_LAYER_LEDS << 8) | 5; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; @@ -203,18 +213,21 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { msg=(TOGGLE_LAYER_LEDS << 8) | 3; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } + break; case ACTION_LEDS_NUMPAD: if(record->event.pressed) { // signal the LED controller thread msg=(TOGGLE_LAYER_LEDS << 8) | 4; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } - case ACTION_LEDS_MEDIA: + break; + case ACTION_LEDS_TEST: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 5; + msg=(TOGGLE_LED << 8) | 12; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } + break; } } @@ -236,6 +249,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { + xprintf("init start"); led_controller_init(); diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 2a7431a4c..89c477ee7 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -101,7 +101,7 @@ const uint8_t pwm_levels[5] = { }; // array to write to pwm register -uint8_t pwm_reg_array[9] = {0}; +uint8_t pwm_register_array[9] = {0}; /* ============================ @@ -147,10 +147,6 @@ void is31_init(void) { // software shutdown is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, 0); chThdSleepMilliseconds(10); - // TODO: This already done above, remove? - // zero function page, all registers - is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); - chThdSleepMilliseconds(10); // software shutdown disable (i.e. turn stuff on) is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); chThdSleepMilliseconds(10); @@ -176,7 +172,7 @@ static THD_FUNCTION(LEDthread, arg) { uint8_t i, page; //persistent status variables - uint8_t backlight_status, lock_status, led_step, active_layer; + uint8_t backlight_status, lock_status, led_step_status, layer_status; uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes //mailbox variables @@ -191,8 +187,8 @@ static THD_FUNCTION(LEDthread, arg) { // initialize persistent variables backlight_status = 0; lock_status = 0;//TODO: does keyboard remember locks? -led_step = 4; //full brightness -active_layer = 0; +led_step_status = 4; //full brightness +layer_status = 0; while(true) { // wait for a message (asynchronous) @@ -213,13 +209,13 @@ active_layer = 0; case TOGGLE_LED: //TODO: toggle existing indicator off, or let user do this, but write frame 7 for every led change //turn on single led, msg_led = row/col of led + xprintf("TOGGLE_LED\n"); set_led_bit(led_control_reg, msg_led, 1); is31_write_data (7, led_control_reg, 0x12+1); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - active_layer = 7; + layer_status = 7; is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - xprintf("page display: %X\n", temp); break; case TOGGLE_ALL: @@ -227,40 +223,39 @@ active_layer = 0; //msg_led = unused, TODO: consider using msg_led to toggle layer display is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - xprintf("temp: %X\n", temp); //if LED_ALL is on then toggle off, any other layer, turn on LED_ALL if(temp == 1) { - xprintf("page display true: %X\n", temp); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); } else { - xprintf("page display false: %X\n", temp); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 1); } is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - xprintf("page display: %X\n", temp); break; case TOGGLE_BACKLIGHT: //msg_led = unused + //TODO: consider Frame 0 as on/off layer and toggle led control register here + xprintf("TOGGLE_BACKLIGHT\n"); backlight_status ^= 1; is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - active_layer = temp; + layer_status = temp; - page = backlight_status == 0 ? 0 : active_layer; + page = backlight_status == 0 ? 0 : layer_status; is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, page); break; case TOGGLE_LAYER_LEDS://show layer indicator or full map of layer keys. //TODO: change so user can flag which they want, indiv or full map in fn_actions //msg_led = layer to toggle on + xprintf("TOGGLE_LAYER_LEDS\n"); is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); if(temp == msg_led) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - active_layer = 7; + layer_status = 7; } else { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); - active_layer = msg_led; + layer_status = msg_led; } break; @@ -275,29 +270,27 @@ active_layer = 0; case STEP_BRIGHTNESS: //pwm_levels[] bounds checking, loop through array //TODO: find a cleaner way to walk through this logic - if (msg_led == 0) { - if (led_step == 0) { - led_step = 4; - } else { - led_step--; - } + if (msg_led == 0 && led_step_status == 0) { + led_step_status = 4; } else { - if (led_step == 4) { - led_step = 0; - } else { - led_step++; - } + led_step_status--; + } + + if (msg_led == 1 && led_step_status == 4) { + led_step_status = 0; + } else { + led_step_status++; } //TODO: this seems a messy way to populate the pwm register + //mimic whitefox init which uses memcpy //populate the 9 byte rows to be written to each pin, first byte is register (pin) address for(i=1; i<9; i++) { - pwm_reg_array[i]=pwm_levels[led_step]; + pwm_register_array[i]=pwm_levels[led_step_status]; } for(i=0; i<8; i++) { - pwm_reg_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address - is31_write_data(0, pwm_reg_array, 9); - chThdSleepMilliseconds(5); + pwm_register_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address + is31_write_data(0, pwm_register_array, 9);//first page controls pwm in all pages (init Display Option register) } break; @@ -330,36 +323,6 @@ active_layer = 0; case LED_MSG_SLEEP_LED_OFF: // should not get here; wakeup should be received in the branch above break; break; - default: - //TODO: individual led state unchanged if page arrays are selected in code above - //avoidable if full pages are written on the fly - //or use pg8 for individual leds, have pointer to currently on led address for toggling - if (msg == 0x59 || msg == 0x84) { - //toggle lock keys on all layers - for (i=0,i<8,i++) { - is31_read_register(0, msg, &temp); - pwm = (temp > 0x00 ? 0x00 : 0xFF); - is31_write_register(i,msg,pwm); - } - - } else if(msg >= 0x24) { - xprintf("Power pre-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); - is31_read_register(7, msg, &temp); - xprintf("Post-read\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); - if (msg == active_led) { - //toggle led power - pwm = (temp > 0x00 ? 0x00 : 0xFF); - - //Use 8th led page for individual led indicators - is31_write_register(7, msg, pwm); - } else { - is31_write_register(7, active_led, 0x00); - is31_write_register(7, msg, 0xFF); - } - xprintf("Power post-change\ntemp: %X - msg: %X - pwm: %X\n", temp, msg, pwm); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - break; */ } xprintf("--------------------\n"); @@ -378,8 +341,6 @@ void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) ////first byte is register address 0x00 row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1; column_bit = 1<<(msg_led % 10 - 1); - xprintf("row %X\n", row_byte); - xprintf("col %X\n", column_bit); if (toggle_on) { led_control_reg[row_byte] |= 1<<(column_bit); @@ -393,7 +354,7 @@ void set_lock_leds(uint8_t *led_control_reg, uint8_t lock_status) { switch (lock_status) { case 1: - set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1);//TODO: define lock addresses by matrix#, and loop for all frames + set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1); set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 0); break; case 2: @@ -406,9 +367,8 @@ void set_lock_leds(uint8_t *led_control_reg, uint8_t lock_status) { break; } - for(i=1; i<8; i++) { //keep LED_OFF layer all off, including locks + for(i=BACKLIGHT_OFF_LOCK_LED_OFF; i<8; i++) { //set in led_controller.h is31_write_data (i, led_control_reg, 0x12+1); - chThdSleepMilliseconds(5); } } @@ -417,18 +377,15 @@ void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count) uint8_t i; uint8_t row, col; uint8_t temp_control_reg[0x13] = {0};//led control register start address + 0x12 bytes - xprintf("-------------\n"); - xprintf("write page %X\n", page); for(i=0;i Date: Wed, 12 Apr 2017 23:32:38 -0700 Subject: Updated lock led init --- keyboards/infinity60/led.c | 26 +++++++-- keyboards/infinity60/led_controller.c | 104 ++++++++++++++++++++++------------ keyboards/infinity60/led_controller.h | 11 ++-- 3 files changed, 96 insertions(+), 45 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index d2f554549..c78e2d119 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -16,6 +16,7 @@ along with this program. If not, see . */ #include "hal.h" +#include "print.h" #include "led.h" @@ -26,6 +27,7 @@ along with this program. If not, see . * In particular, I2C functions (interrupt-driven) should NOT be called from here. */ void led_set(uint8_t usb_led) { + msg_t msg; /* // PTA5: LED (1:on/0:off) GPIOA->PDDR |= (1<<1); @@ -36,18 +38,32 @@ void led_set(uint8_t usb_led) { GPIOA->PCOR |= (1<<5); } */ -//TODO: How does this test if led is set -//usb_led --> led_set(usb_led) <-- chibios/host_keyboard_leds <-- keyboard_leds from usbSetupTransfer -//keyboard_leds is enum'd in chibios/main.c + if (usb_led & (1<. #include "ch.h" #include "hal.h" #include "print.h" +#include "led.h" #include "led_controller.h" @@ -57,11 +58,11 @@ along with this program. If not, see . * The usual Caps Lock position is C4-6, so the address is * 0x24 + (4-1)*0x10 + (8-1) = 0x59 */ #if !defined(CAPS_LOCK_LED_ADDRESS) -#define CAPS_LOCK_LED_ADDRESS 0x46 +#define CAPS_LOCK_LED_ADDRESS 46 #endif #if !defined(NUM_LOCK_LED_ADDRESS) -#define NUM_LOCK_LED_ADDRESS 0x85 +#define NUM_LOCK_LED_ADDRESS 85 #endif /* Which LED should breathe during sleep */ @@ -215,7 +216,6 @@ layer_status = 0; is31_write_data (7, led_control_reg, 0x12+1); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); layer_status = 7; - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); break; case TOGGLE_ALL: @@ -259,12 +259,18 @@ layer_status = 0; } break; - case TOGGLE_LOCK_LED: - //msg_led = 0-3 for lock flags - lock_status ^= msg_led; //TODO: confirm toggling works and doesn't get out of sync - set_lock_leds(led_control_reg, lock_status); + case TOGGLE_NUM_LOCK: + //msg_led = 0 or 1, off/on + //TODO: confirm toggling works and doesn't get out of sync + set_lock_leds(USB_LED_NUM_LOCK, msg_led); break; + case TOGGLE_CAPS_LOCK: + //msg_led = 0 or 1, off/on + //TODO: confirm toggling works and doesn't get out of sync + set_lock_leds(USB_LED_CAPS_LOCK, msg_led); + break; + case MODE_BREATH: break; case STEP_BRIGHTNESS: @@ -335,11 +341,10 @@ layer_status = 0; * ======================== */ void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) { uint8_t row_byte, column_bit; - //msg_led tens column is pin#, A-control register is every other 8 bits + //msg_led tens column is pin# //ones column is bit position in 8-bit mask - //control register will be one bit shifted into position along register's full 0x12 bytes - ////first byte is register address 0x00 - row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1; + //first byte is register address 0x00 + row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1;// A register is every other 8 bits column_bit = 1<<(msg_led % 10 - 1); if (toggle_on) { @@ -349,31 +354,61 @@ void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) } } -void set_lock_leds(uint8_t *led_control_reg, uint8_t lock_status) { - uint8_t i; - - switch (lock_status) { - case 1: - set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1); - set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 0); - break; - case 2: - set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 0); - set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 1); - break; - case 3: - set_led_bit(led_control_reg, NUM_LOCK_LED_ADDRESS, 1); - set_led_bit(led_control_reg, CAPS_LOCK_LED_ADDRESS, 1); - break; - } - - for(i=BACKLIGHT_OFF_LOCK_LED_OFF; i<8; i++) { //set in led_controller.h - is31_write_data (i, led_control_reg, 0x12+1); +//TODO: not toggling off correctly +//TODO: confirm led_off page still has FF pwm for all +void set_lock_leds(uint8_t lock_type, uint8_t lock_status) { + uint8_t page; + uint8_t led_addr, temp; + uint8_t control_reg[2] = {0};//register address and led bits + + switch(lock_type) { + case USB_LED_NUM_LOCK: + led_addr = NUM_LOCK_LED_ADDRESS; + break; + case USB_LED_CAPS_LOCK: + led_addr = CAPS_LOCK_LED_ADDRESS; + break; + #ifdef SCROLL_LOCK_LED_ADDRESS + case USB_LED_SCROLL_LOCK: + led_addr = SCROLL_LOCK_LED_ADDRESS; + break; + #endif + #ifdef COMPOSE_LED_ADDRESS + case USB_LED_COMPOSE: + led_addr = COMPOSE_LED_ADDRESS; + break; + #endif + #ifdef SCROLL_LOCK_LED_ADDRESS + case USB_LED_KANA: + led_addr = KANA_LED_ADDRESS; + break; + #endif + } + xprintf("led_addr: %X\n", led_addr); + chThdSleepMilliseconds(30); + control_reg[0] = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte + xprintf("control_reg: %X\n", control_reg[0]); + chThdSleepMilliseconds(30); + + for(page=BACKLIGHT_OFF_LOCK_LED_OFF; page<8; page++) { //set in led_controller.h + is31_read_register(page,control_reg[0],&temp);//need to maintain status of leds in this row (1 byte) + chThdSleepMilliseconds(30); + xprintf("1lock byte: %X\n", temp); + chThdSleepMilliseconds(30); + if (lock_status) { + temp |= 1<<(led_addr % 10 - 1); + } else { + temp &= ~1<<(led_addr % 10 - 1); + } + chThdSleepMilliseconds(30); + xprintf("2lock byte: %X\n", temp); + chThdSleepMilliseconds(30); + control_reg[1] = temp; + is31_write_data (page, control_reg, 0x02); } } void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count) { -//TODO: init function that accepts array of led addresses and sets them by row uint8_t i; uint8_t row, col; uint8_t temp_control_reg[0x13] = {0};//led control register start address + 0x12 bytes @@ -433,9 +468,8 @@ void led_controller_init(void) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); // clean up the lock LEDs - //TODO: adjust for new addressing and additional frames - //is31_write_register(1, CAPS_LOCK_LED_ADDRESS, 0); - //is31_write_register(2, CAPS_LOCK_LED_ADDRESS, 0); + set_lock_leds(USB_LED_NUM_LOCK, 0); + set_lock_leds(USB_LED_CAPS_LOCK, 0); /* more time consuming LED processing should be offloaded into * a thread, with asynchronous messaging. */ diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index e9d897303..740862018 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -32,9 +32,9 @@ msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); void led_controller_init(void); -#define CAPS_LOCK_LED_ADDRESS 0x46 -#define NUM_LOCK_LED_ADDRESS 0x85 -#define BACKLIGHT_OFF_LOCK_LED_OFF 1 //set to 0 to show lock leds even if backlight off +#define CAPS_LOCK_LED_ADDRESS 46 +#define NUM_LOCK_LED_ADDRESS 85 +#define BACKLIGHT_OFF_LOCK_LED_OFF 0 //set to 0 to show lock leds even if backlight off /* ============================= * IS31 chip related definitions @@ -93,7 +93,7 @@ void led_controller_init(void); extern mailbox_t led_mailbox; void set_led_bit (uint8_t *led_control_reg, uint8_t led_msg, uint8_t toggle_on); -void set_lock_leds (uint8_t *led_control_reg, uint8_t lock_status); +void set_lock_leds (uint8_t lock_type, uint8_t lock_status); void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count); // constants for signaling the LED controller thread @@ -103,7 +103,8 @@ enum led_msg_t { TOGGLE_ALL, TOGGLE_BACKLIGHT, TOGGLE_LAYER_LEDS, - TOGGLE_LOCK_LED, + TOGGLE_NUM_LOCK, + TOGGLE_CAPS_LOCK, MODE_BREATH, STEP_BRIGHTNESS }; -- cgit v1.2.3-24-g4f1b From 1b1adf35bb746a875c2b846e1b1b405075c94847 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 13 Apr 2017 17:15:24 -0700 Subject: more flexible led processing functions, all and on/off/toggle functioning --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 4 +- keyboards/infinity60/led.c | 14 +-- keyboards/infinity60/led_controller.c | 147 ++++++++++++++--------- keyboards/infinity60/led_controller.h | 10 +- 4 files changed, 97 insertions(+), 78 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 2eb66b506..6f14b66cb 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -210,14 +210,14 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { case ACTION_LEDS_NAV: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 3; + msg=(OFF_LED << 8) | 12; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LEDS_NUMPAD: if(record->event.pressed) { // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 4; + msg=(ON_LED << 8) | 12; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index c78e2d119..92069dc59 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -16,7 +16,6 @@ along with this program. If not, see . */ #include "hal.h" -#include "print.h" #include "led.h" @@ -28,16 +27,7 @@ along with this program. If not, see . */ void led_set(uint8_t usb_led) { msg_t msg; -/* - // PTA5: LED (1:on/0:off) - GPIOA->PDDR |= (1<<1); - PORTA->PCR[5] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - if (usb_led & (1<PSOR |= (1<<5); - } else { - GPIOA->PCOR |= (1<<5); - } - */ + if (usb_led & (1< 0) {//check current led page to prevent double blink + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } + layer_status = 7; + break; + case ON_LED: + xprintf("ON_LED\n"); + set_led_bit(7, control_register_word, msg_led, 1); + is31_write_data (7, control_register_word, 0x02); + if (layer_status > 7) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } + layer_status = 7; + break; case TOGGLE_LED: - //TODO: toggle existing indicator off, or let user do this, but write frame 7 for every led change - //turn on single led, msg_led = row/col of led xprintf("TOGGLE_LED\n"); - set_led_bit(led_control_reg, msg_led, 1); + set_led_bit(7, control_register_word, msg_led, 2); - is31_write_data (7, led_control_reg, 0x12+1); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + is31_write_data (7, control_register_word, 0x02); + if (layer_status > 7) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } layer_status = 7; break; case TOGGLE_ALL: xprintf("TOGGLE_ALL\n"); //msg_led = unused, TODO: consider using msg_led to toggle layer display - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - //if LED_ALL is on then toggle off, any other layer, turn on LED_ALL - if(temp == 1) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 1 off + + led_control_reg[0] = 0; + if (temp==0) { + xprintf("all leds on"); + __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 1); + xprintf("all leds off"); + __builtin_memset(led_control_reg+1, 0, 0x12); } - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + + is31_write_data(0, led_control_reg, 0x13); + if (layer_status > 0) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + } + layer_status=0; + //TODO: Double blink when all on break; case TOGGLE_BACKLIGHT: //msg_led = unused //TODO: consider Frame 0 as on/off layer and toggle led control register here + //TODO: need to test tracking of active layer with layer_state from qmk xprintf("TOGGLE_BACKLIGHT\n"); backlight_status ^= 1; is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); @@ -274,6 +303,7 @@ layer_status = 0; case MODE_BREATH: break; case STEP_BRIGHTNESS: + //TEST: Step brightness code //pwm_levels[] bounds checking, loop through array //TODO: find a cleaner way to walk through this logic if (msg_led == 0 && led_step_status == 0) { @@ -336,30 +366,42 @@ layer_status = 0; } -/* ======================== - * led bit processing - * ======================== */ -void set_led_bit (uint8_t *led_control_reg, uint8_t msg_led, uint8_t toggle_on) { - uint8_t row_byte, column_bit; - //msg_led tens column is pin# - //ones column is bit position in 8-bit mask - //first byte is register address 0x00 - row_byte = ((msg_led / 10) % 10 - 1 ) * 2 + 1;// A register is every other 8 bits - column_bit = 1<<(msg_led % 10 - 1); - - if (toggle_on) { - led_control_reg[row_byte] |= 1<<(column_bit); - } else { - led_control_reg[row_byte] &= ~1<<(column_bit); +/* ============================== + * led processing functions + * ============================== */ + +void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action) { + //returns 2 bytes led control register address and byte mask to write + + uint8_t control_reg_addr, column_bit, column_byte, temp; + //first byte is led control register address 0x00 + //msg_led tens column is pin#, ones column is bit position in 8-bit mask + control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte + column_bit = 1<<(led_addr % 10 - 1); + + is31_read_register(page,control_reg_addr,&temp);//need to maintain status of leds in this row (1 byte) + column_byte = temp; + + switch(action) { + case 0: + column_byte &= ~1<<(column_bit); + break; + case 1: + column_byte |= 1<<(column_bit); + break; + case 2: + column_byte ^= 1<<(column_bit); + break; } + + led_control_reg[0] = control_reg_addr; + led_control_reg[1] = column_byte; } -//TODO: not toggling off correctly -//TODO: confirm led_off page still has FF pwm for all -void set_lock_leds(uint8_t lock_type, uint8_t lock_status) { - uint8_t page; - uint8_t led_addr, temp; - uint8_t control_reg[2] = {0};//register address and led bits +void set_lock_leds(uint8_t lock_type, uint8_t led_on) { + uint8_t page, led_addr; + uint8_t led_control_write[2] = {0}; + //TODO: consolidate control register to top level array vs. three scattered around switch(lock_type) { case USB_LED_NUM_LOCK: @@ -384,44 +426,30 @@ void set_lock_leds(uint8_t lock_type, uint8_t lock_status) { break; #endif } - xprintf("led_addr: %X\n", led_addr); - chThdSleepMilliseconds(30); - control_reg[0] = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte - xprintf("control_reg: %X\n", control_reg[0]); - chThdSleepMilliseconds(30); for(page=BACKLIGHT_OFF_LOCK_LED_OFF; page<8; page++) { //set in led_controller.h - is31_read_register(page,control_reg[0],&temp);//need to maintain status of leds in this row (1 byte) - chThdSleepMilliseconds(30); - xprintf("1lock byte: %X\n", temp); - chThdSleepMilliseconds(30); - if (lock_status) { - temp |= 1<<(led_addr % 10 - 1); - } else { - temp &= ~1<<(led_addr % 10 - 1); - } - chThdSleepMilliseconds(30); - xprintf("2lock byte: %X\n", temp); - chThdSleepMilliseconds(30); - control_reg[1] = temp; - is31_write_data (page, control_reg, 0x02); + //TODO: check if frame2 (or frame1, first byte all on), and ignore if true + //also if BACKLIGHT_OFF_LOCK_LED_OFF set + set_led_bit(page,led_control_write,led_addr,led_on); + is31_write_data (page, led_control_write, 0x02); } } void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count) { uint8_t i; uint8_t row, col; - uint8_t temp_control_reg[0x13] = {0};//led control register start address + 0x12 bytes + uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes for(i=0;i Date: Thu, 13 Apr 2017 17:51:37 -0700 Subject: fixed bit shift in led_set_bit --- keyboards/infinity60/led_controller.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index eb3ccafc1..e98d8de50 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -376,26 +376,40 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint uint8_t control_reg_addr, column_bit, column_byte, temp; //first byte is led control register address 0x00 //msg_led tens column is pin#, ones column is bit position in 8-bit mask + chThdSleepMilliseconds(10); + xprintf("led_addr: %d ", led_addr); control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte column_bit = 1<<(led_addr % 10 - 1); is31_read_register(page,control_reg_addr,&temp);//need to maintain status of leds in this row (1 byte) + chThdSleepMilliseconds(10); + xprintf("col_bit: %X ", column_bit); column_byte = temp; + chThdSleepMilliseconds(10); + xprintf("action: %X ", action); switch(action) { case 0: - column_byte &= ~1<<(column_bit); + xprintf("off-"); + chThdSleepMilliseconds(10); + column_byte &= ~column_bit; break; case 1: - column_byte |= 1<<(column_bit); + xprintf("on-"); + chThdSleepMilliseconds(10); + column_byte |= column_bit; break; case 2: - column_byte ^= 1<<(column_bit); + xprintf("toggle-"); + chThdSleepMilliseconds(10); + column_byte ^= column_bit; break; } led_control_reg[0] = control_reg_addr; led_control_reg[1] = column_byte; + chThdSleepMilliseconds(10); + xprintf("set_bit row: %X set_bit col: %X\n", led_control_reg[0], led_control_reg[1]); } void set_lock_leds(uint8_t lock_type, uint8_t led_on) { @@ -427,11 +441,13 @@ void set_lock_leds(uint8_t lock_type, uint8_t led_on) { #endif } - for(page=BACKLIGHT_OFF_LOCK_LED_OFF; page<8; page++) { //set in led_controller.h + for(page=0; page<8; page++) { //set in led_controller.h //TODO: check if frame2 (or frame1, first byte all on), and ignore if true //also if BACKLIGHT_OFF_LOCK_LED_OFF set set_led_bit(page,led_control_write,led_addr,led_on); - is31_write_data (page, led_control_write, 0x02); + xprintf("lock_led row: %X lock_led col%X\n", led_control_write[0], led_control_write[1]); + is31_write_data(page, led_control_write, 0x02); + chThdSleepMilliseconds(10); } } -- cgit v1.2.3-24-g4f1b From c0ec1756afda7a49848faff23781bf54cd9fa3c3 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Fri, 14 Apr 2017 18:20:12 -0700 Subject: Added backlight step functionality --- keyboards/infinity60/led_controller.c | 322 +++++++++++++++++----------------- keyboards/infinity60/led_controller.h | 2 +- 2 files changed, 160 insertions(+), 164 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index e98d8de50..cb91f9f35 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -170,12 +170,12 @@ static THD_FUNCTION(LEDthread, arg) { (void)arg; chRegSetThreadName("LEDthread"); - uint8_t i, page; - uint8_t control_register_word[2] = {0}; + uint8_t i, j, page; + uint8_t control_register_word[2] = {0};//register address - byte to write uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes //persistent status variables - uint8_t backlight_status, led_step_status, layer_status; + uint8_t backlight_status, pwm_step_status, layer_status; //mailbox variables uint8_t temp, msg_type, msg_led; @@ -187,9 +187,9 @@ static THD_FUNCTION(LEDthread, arg) { */ // initialize persistent variables -backlight_status = 0; -led_step_status = 4; //full brightness -layer_status = 0; +backlight_status = 0; //start backlight off +pwm_step_status = 4; //full brightness +layer_status = 0; //start frame 0 (all off/on) while(true) { // wait for a message (asynchronous) @@ -202,170 +202,172 @@ layer_status = 0; xprintf("--------------------\n"); xprintf("mailbox fetch\nmsg: %X\n", msg); xprintf("type: %X - led: %X\n", msg_type, msg_led); //test if msg_type is 1 or 2 bytes after mask - switch (msg_type){ - case KEY_LIGHT: - //TODO: lighting key led on keypress - break; - - //turn on/off/toggle single led, msg_led = row/col of led - case OFF_LED: - xprintf("OFF_LED\n"); - set_led_bit(7, control_register_word, msg_led, 0); - is31_write_data (7, control_register_word, 0x02); - if (layer_status > 0) {//check current led page to prevent double blink - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - layer_status = 7; - break; - case ON_LED: - xprintf("ON_LED\n"); - set_led_bit(7, control_register_word, msg_led, 1); - is31_write_data (7, control_register_word, 0x02); - if (layer_status > 7) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - layer_status = 7; - break; - case TOGGLE_LED: - xprintf("TOGGLE_LED\n"); - set_led_bit(7, control_register_word, msg_led, 2); - is31_write_data (7, control_register_word, 0x02); - if (layer_status > 7) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - layer_status = 7; + switch (msg_type){ + case KEY_LIGHT: + //TODO: lighting key led on keypress break; + + //turn on/off/toggle single led, msg_led = row/col of led + case OFF_LED: + xprintf("OFF_LED\n"); + set_led_bit(7, control_register_word, msg_led, 0); + is31_write_data (7, control_register_word, 0x02); + if (layer_status > 0) {//check current led page to prevent double blink + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } + layer_status = 7; + break; + case ON_LED: + xprintf("ON_LED\n"); + set_led_bit(7, control_register_word, msg_led, 1); + is31_write_data (7, control_register_word, 0x02); + if (layer_status > 7) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } + layer_status = 7; + break; + case TOGGLE_LED: + xprintf("TOGGLE_LED\n"); + set_led_bit(7, control_register_word, msg_led, 2); - case TOGGLE_ALL: - xprintf("TOGGLE_ALL\n"); - //msg_led = unused, TODO: consider using msg_led to toggle layer display + is31_write_data (7, control_register_word, 0x02); + if (layer_status > 7) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + } + layer_status = 7; + break; - is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 1 off + case TOGGLE_ALL: + xprintf("TOGGLE_ALL\n"); + //msg_led = unused - led_control_reg[0] = 0; - if (temp==0) { - xprintf("all leds on"); - __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); - } else { - xprintf("all leds off"); - __builtin_memset(led_control_reg+1, 0, 0x12); - } + is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 1 off - is31_write_data(0, led_control_reg, 0x13); - if (layer_status > 0) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); - } - layer_status=0; - //TODO: Double blink when all on - break; + led_control_reg[0] = 0; + if (temp==0) { + xprintf("all leds on"); + __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); + } else { + xprintf("all leds off"); + __builtin_memset(led_control_reg+1, 0, 0x12); + } - case TOGGLE_BACKLIGHT: - //msg_led = unused - //TODO: consider Frame 0 as on/off layer and toggle led control register here - //TODO: need to test tracking of active layer with layer_state from qmk - xprintf("TOGGLE_BACKLIGHT\n"); - backlight_status ^= 1; - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); - layer_status = temp; - - page = backlight_status == 0 ? 0 : layer_status; - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, page); - break; + is31_write_data(0, led_control_reg, 0x13); + if (layer_status > 0) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); + } + layer_status=0; + break; - case TOGGLE_LAYER_LEDS://show layer indicator or full map of layer keys. - //TODO: change so user can flag which they want, indiv or full map in fn_actions - //msg_led = layer to toggle on - xprintf("TOGGLE_LAYER_LEDS\n"); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + case TOGGLE_BACKLIGHT: + //msg_led = unused + //TODO: need to test tracking of active layer with layer_state from qmk + xprintf("TOGGLE_BACKLIGHT\n"); + backlight_status ^= 1; + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + layer_status = temp; - if(temp == msg_led) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - layer_status = 7; - } else { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); - layer_status = msg_led; - } - break; - - case TOGGLE_NUM_LOCK: - //msg_led = 0 or 1, off/on - //TODO: confirm toggling works and doesn't get out of sync - set_lock_leds(USB_LED_NUM_LOCK, msg_led); - break; - - case TOGGLE_CAPS_LOCK: - //msg_led = 0 or 1, off/on - //TODO: confirm toggling works and doesn't get out of sync - set_lock_leds(USB_LED_CAPS_LOCK, msg_led); - break; + page = backlight_status == 0 ? 0 : layer_status; + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, page); + break; - case MODE_BREATH: - break; - case STEP_BRIGHTNESS: - //TEST: Step brightness code - //pwm_levels[] bounds checking, loop through array - //TODO: find a cleaner way to walk through this logic - if (msg_led == 0 && led_step_status == 0) { - led_step_status = 4; - } else { - led_step_status--; - } + case TOGGLE_PAGE_LEDS://show single layer indicator or full map of layer + //msg_led = page to toggle on + xprintf("TOGGLE_LAYER_LEDS\n"); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &temp); + + if(temp == msg_led) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); + layer_status = 7; + } else { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); + layer_status = msg_led; + } + break; + + case TOGGLE_NUM_LOCK: + //msg_led = 0 or 1, off/on + set_lock_leds(USB_LED_NUM_LOCK, msg_led); + break; - if (msg_led == 1 && led_step_status == 4) { - led_step_status = 0; - } else { - led_step_status++; - } + case TOGGLE_CAPS_LOCK: + //msg_led = 0 or 1, off/on + set_lock_leds(USB_LED_CAPS_LOCK, msg_led); + break; - //TODO: this seems a messy way to populate the pwm register - //mimic whitefox init which uses memcpy - //populate the 9 byte rows to be written to each pin, first byte is register (pin) address - for(i=1; i<9; i++) { - pwm_register_array[i]=pwm_levels[led_step_status]; - } - for(i=0; i<8; i++) { - pwm_register_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address - is31_write_data(0, pwm_register_array, 9);//first page controls pwm in all pages (init Display Option register) + case MODE_BREATH: + break; + case STEP_BRIGHTNESS: + xprintf("TOGGLE_BACKLIGHT\n"); + //led_msg = step pwm up or down + //TODO: test step brightness code + //pwm_levels[] bounds checking, loop through array + switch (msg_led) { + case 0: + if (pwm_step_status == 0) { + pwm_step_status = 4; + } else { + pwm_step_status--; + } + break; + + case 1: + if (pwm_step_status == 4) { + pwm_step_status = 0; + } else { + pwm_step_status++; + } + break; } - break; -/* case LED_MSG_SLEEP_LED_ON: - // save current settings - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); - // use pages 7 and 8 for (hardware) breathing (assuming they're empty) - is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); - is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); - retval = MSG_TIMEOUT; - temp = 6; - while(retval == MSG_TIMEOUT) { - // switch to the other page - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); - temp = (temp == 6 ? 7 : 6); - // the times should be sufficiently long for IS31 to finish switching pages - retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); + //populate the 9 byte rows to be written to each pin, first byte is register (pin) address + __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); + + for(i=0; i<8; i++) { + //first byte is register address, every 0x10 9 bytes is A-register pwm pins + pwm_register_array[0] = 0x24 + (i * 0x10); + for(j=0; j<9; j++) { + } + is31_write_data(0,pwm_register_array,9); } - // received a message (should be a wakeup), so restore previous state - chThdSleepMilliseconds(3000); // need to wait until the page change finishes - // note: any other messages are queued - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); - break; - case LED_MSG_SLEEP_LED_OFF: - // should not get here; wakeup should be received in the branch above break; - break; -*/ + break; + +/* case LED_MSG_SLEEP_LED_ON: + // save current settings + is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); + is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); + // use pages 7 and 8 for (hardware) breathing (assuming they're empty) + is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); + is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); + retval = MSG_TIMEOUT; + temp = 6; + while(retval == MSG_TIMEOUT) { + // switch to the other page + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); + temp = (temp == 6 ? 7 : 6); + // the times should be sufficiently long for IS31 to finish switching pages + retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); + } + // received a message (should be a wakeup), so restore previous state + chThdSleepMilliseconds(3000); // need to wait until the page change finishes + // note: any other messages are queued + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); + break; + case LED_MSG_SLEEP_LED_OFF: + // should not get here; wakeup should be received in the branch above break; + break; +*/ + xprintf("--------------------\n"); } - xprintf("--------------------\n"); } } - /* ============================== * led processing functions * ============================== */ @@ -451,14 +453,14 @@ void set_lock_leds(uint8_t lock_type, uint8_t led_on) { } } -void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count) { +void write_led_page (uint8_t page, const uint8_t *user_led_array, uint8_t led_count) { uint8_t i; uint8_t row, col; uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes for(i=0;i Date: Sat, 15 Apr 2017 14:37:55 -0700 Subject: more stable lock led process, added debugging code --- keyboards/infinity60/led_controller.c | 117 ++++++++++++++++++++-------------- 1 file changed, 70 insertions(+), 47 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index cb91f9f35..d88ae14b1 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -70,6 +70,8 @@ along with this program. If not, see . #define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS #endif +#define DEBUG_ENABLED 1 + /* ================= * ChibiOS I2C setup * ================= */ @@ -171,11 +173,11 @@ static THD_FUNCTION(LEDthread, arg) { chRegSetThreadName("LEDthread"); uint8_t i, j, page; - uint8_t control_register_word[2] = {0};//register address - byte to write + uint8_t control_register_word[2] = {0};//2 bytes: register address, byte to write uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes //persistent status variables - uint8_t backlight_status, pwm_step_status, layer_status; + uint8_t backlight_status, pwm_step_status, page_status; //mailbox variables uint8_t temp, msg_type, msg_led; @@ -189,7 +191,7 @@ static THD_FUNCTION(LEDthread, arg) { // initialize persistent variables backlight_status = 0; //start backlight off pwm_step_status = 4; //full brightness -layer_status = 0; //start frame 0 (all off/on) +page_status = 0; //start frame 0 (all off/on) while(true) { // wait for a message (asynchronous) @@ -201,74 +203,89 @@ layer_status = 0; //start frame 0 (all off/on) xprintf("--------------------\n"); xprintf("mailbox fetch\nmsg: %X\n", msg); - xprintf("type: %X - led: %X\n", msg_type, msg_led); //test if msg_type is 1 or 2 bytes after mask + xprintf("type: %X - led: %X\n", msg_type, msg_led); switch (msg_type){ case KEY_LIGHT: //TODO: lighting key led on keypress break; - //turn on/off/toggle single led, msg_led = row/col of led case OFF_LED: + //on/off/toggle single led, msg_led = row/col of led xprintf("OFF_LED\n"); set_led_bit(7, control_register_word, msg_led, 0); is31_write_data (7, control_register_word, 0x02); - if (layer_status > 0) {//check current led page to prevent double blink + + if (page_status < 7) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); } - layer_status = 7; + page_status = 7; break; + case ON_LED: xprintf("ON_LED\n"); set_led_bit(7, control_register_word, msg_led, 1); is31_write_data (7, control_register_word, 0x02); - if (layer_status > 7) { + + if (page_status < 7) {//check current led page to prevent double blink is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); } - layer_status = 7; + page_status = 7; break; + case TOGGLE_LED: xprintf("TOGGLE_LED\n"); set_led_bit(7, control_register_word, msg_led, 2); is31_write_data (7, control_register_word, 0x02); - if (layer_status > 7) { + if (page_status > 7) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); } - layer_status = 7; + page_status = 7; break; case TOGGLE_ALL: xprintf("TOGGLE_ALL\n"); //msg_led = unused - is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 1 off + is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 0 off led_control_reg[0] = 0; - if (temp==0) { - xprintf("all leds on"); + if (temp==0 || page_status > 0) { + xprintf("all leds on"); __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { - xprintf("all leds off"); + xprintf("all leds off"); __builtin_memset(led_control_reg+1, 0, 0x12); } is31_write_data(0, led_control_reg, 0x13); - if (layer_status > 0) { + if (page_status > 0) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); } - layer_status=0; + + //maintain lock leds + if (host_keyboard_leds() & (1<0 || BACKLIGHT_OFF_LOCK_LED_OFF) ? 1 : 0; + + for(page=start; page<8; page++) { set_led_bit(page,led_control_write,led_addr,led_on); - xprintf("lock_led row: %X lock_led col%X\n", led_control_write[0], led_control_write[1]); is31_write_data(page, led_control_write, 0x02); - chThdSleepMilliseconds(10); } } @@ -458,8 +479,10 @@ void write_led_page (uint8_t page, const uint8_t *user_led_array, uint8_t led_co uint8_t row, col; uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes + __builtin_memset(led_control_register,0,13); + for(i=0;i Date: Wed, 26 Apr 2017 23:12:25 -0700 Subject: Simplified processing in led_controller; more control at user level. --- keyboards/infinity60/led_controller.c | 214 +++++++++++++++++++--------------- keyboards/infinity60/led_controller.h | 5 +- 2 files changed, 123 insertions(+), 96 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index d88ae14b1..4dc9b9234 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -25,6 +25,8 @@ along with this program. If not, see . #include "hal.h" #include "print.h" #include "led.h" +#include "action_layer.h" +#include "host.h" #include "led_controller.h" @@ -70,7 +72,7 @@ along with this program. If not, see . #define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS #endif -#define DEBUG_ENABLED 1 +#define DEBUG_ENABLED 0 /* ================= * ChibiOS I2C setup @@ -172,12 +174,12 @@ static THD_FUNCTION(LEDthread, arg) { (void)arg; chRegSetThreadName("LEDthread"); - uint8_t i, j, page; + uint8_t i; uint8_t control_register_word[2] = {0};//2 bytes: register address, byte to write uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes //persistent status variables - uint8_t backlight_status, pwm_step_status, page_status; + uint8_t pwm_step_status, page_status; //mailbox variables uint8_t temp, msg_type, msg_led; @@ -189,7 +191,6 @@ static THD_FUNCTION(LEDthread, arg) { */ // initialize persistent variables -backlight_status = 0; //start backlight off pwm_step_status = 4; //full brightness page_status = 0; //start frame 0 (all off/on) @@ -202,68 +203,63 @@ page_status = 0; //start frame 0 (all off/on) msg_led = (msg) & 0xFF; //second byte is action information xprintf("--------------------\n"); + chThdSleepMilliseconds(10); xprintf("mailbox fetch\nmsg: %X\n", msg); + chThdSleepMilliseconds(10); xprintf("type: %X - led: %X\n", msg_type, msg_led); + chThdSleepMilliseconds(10); switch (msg_type){ case KEY_LIGHT: //TODO: lighting key led on keypress break; + //TODO: custom page that is written using keypresses + //TODO: BLINK_ON/OFF_LED + case OFF_LED: //on/off/toggle single led, msg_led = row/col of led xprintf("OFF_LED\n"); + chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 0); is31_write_data (7, control_register_word, 0x02); - - if (page_status < 7) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - page_status = 7; break; case ON_LED: xprintf("ON_LED\n"); + chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 1); is31_write_data (7, control_register_word, 0x02); - - if (page_status < 7) {//check current led page to prevent double blink - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - page_status = 7; break; case TOGGLE_LED: xprintf("TOGGLE_LED\n"); + chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 2); - is31_write_data (7, control_register_word, 0x02); - if (page_status > 7) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 7); - } - page_status = 7; break; case TOGGLE_ALL: xprintf("TOGGLE_ALL\n"); + chThdSleepMilliseconds(10); //msg_led = unused - is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 0 off - led_control_reg[0] = 0; if (temp==0 || page_status > 0) { xprintf("all leds on"); + chThdSleepMilliseconds(10); __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { xprintf("all leds off"); + chThdSleepMilliseconds(10); __builtin_memset(led_control_reg+1, 0, 0x12); } - is31_write_data(0, led_control_reg, 0x13); + if (page_status > 0) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); } - + //maintain lock leds if (host_keyboard_leds() & (1< 90 || led_addr % 10 > 8) { + xprintf("Invalid address: %d\n", led_addr); + return; + } + //first byte is led control register address 0x00 //msg_led tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte column_bit = 1<<(led_addr % 10 - 1); - is31_read_register(page,control_reg_addr,&temp);//need to maintain status of leds in this row (1 byte) + is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte column_byte = temp; switch(action) { @@ -437,9 +460,11 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint void set_lock_leds(uint8_t lock_type, uint8_t led_on) { uint8_t page, led_addr, start, temp; - uint8_t led_control_write[2] = {0}; - //TODO: consolidate control register to top level array vs. three scattered around + uint8_t led_control_word[2] = {0}; + //TODO: this function call could send led address vs lock_type. + //however, the switch/case allows for additional steps, like audio, depending on type + led_addr = 0; switch(lock_type) { case USB_LED_NUM_LOCK: led_addr = NUM_LOCK_LED_ADDRESS; @@ -465,16 +490,18 @@ void set_lock_leds(uint8_t lock_type, uint8_t led_on) { } //ignore frame0 if all leds are on or if option set in led_controller.h + //TODO: blink of all leds are on, clear blink register if not is31_read_register(0, 0x00, &temp); - start = (temp>0 || BACKLIGHT_OFF_LOCK_LED_OFF) ? 1 : 0; + led_addr += temp == 0 ? 0 : 0x12;//send bit to blink register instead + start = BACKLIGHT_OFF_LOCK_LED_OFF ? 1 : 0; for(page=start; page<8; page++) { - set_led_bit(page,led_control_write,led_addr,led_on); - is31_write_data(page, led_control_write, 0x02); + set_led_bit(page,led_control_word,led_addr,led_on); + is31_write_data(page, led_control_word, 0x02); } } -void write_led_page (uint8_t page, const uint8_t *user_led_array, uint8_t led_count) { +void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { uint8_t i; uint8_t row, col; uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes @@ -516,7 +543,6 @@ void led_controller_init(void) { //set Display Option Register so all pwm intensity is controlled from Frame 0 is31_write_register(IS31_FUNCTIONREG, IS31_REG_DISPLAYOPT, IS31_REG_DISPLAYOPT_INTENSITY_SAME); - //TODO: test new init pwm loop /* set full pwm on Frame 1 */ pwm_register_array[0] = 0; __builtin_memset(pwm_register_array+1, 0xFF, 8); diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index 151100471..b06113b07 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -94,7 +94,7 @@ extern mailbox_t led_mailbox; void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action); void set_lock_leds (uint8_t lock_type, uint8_t led_on); -void write_led_page (uint8_t page, const uint8_t *led_array, uint8_t led_count); +void write_led_page (uint8_t page, uint8_t *led_array, uint8_t led_count); // constants for signaling the LED controller thread enum led_msg_t { @@ -104,7 +104,8 @@ enum led_msg_t { TOGGLE_LED, TOGGLE_ALL, TOGGLE_BACKLIGHT, - TOGGLE_PAGE_LEDS, + DISPLAY_PAGE, + RESET_PAGE, TOGGLE_NUM_LOCK, TOGGLE_CAPS_LOCK, MODE_BREATH, -- cgit v1.2.3-24-g4f1b From b27fb216efaa095d19b0175b9f64f96ff5e3544a Mon Sep 17 00:00:00 2001 From: jpetermans Date: Sun, 30 Apr 2017 16:27:46 -0700 Subject: Testing initial blink support --- keyboards/infinity60/led_controller.c | 254 +++++++++++++++++++++++----------- keyboards/infinity60/led_controller.h | 7 +- 2 files changed, 180 insertions(+), 81 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 4dc9b9234..59ca833b6 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -72,7 +72,7 @@ along with this program. If not, see . #define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS #endif -#define DEBUG_ENABLED 0 +#define DEBUG_ENABLED 1 /* ================= * ChibiOS I2C setup @@ -214,44 +214,58 @@ page_status = 0; //start frame 0 (all off/on) //TODO: lighting key led on keypress break; - //TODO: custom page that is written using keypresses //TODO: BLINK_ON/OFF_LED + break; case OFF_LED: //on/off/toggle single led, msg_led = row/col of led - xprintf("OFF_LED\n"); + xprintf("OFF_LED: %d\n", msg_led); chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 0); is31_write_data (7, control_register_word, 0x02); break; - case ON_LED: - xprintf("ON_LED\n"); + xprintf("ON_LED: %d\n", msg_led); chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 1); is31_write_data (7, control_register_word, 0x02); break; - case TOGGLE_LED: - xprintf("TOGGLE_LED\n"); + xprintf("TOGGLE_LED: %d\n", msg_led); chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 2); is31_write_data (7, control_register_word, 0x02); break; + case BLINK_OFF_LED: + //on/off/toggle single led, msg_led = row/col of led + xprintf("BLINK_ON: %d\n", msg_led); + chThdSleepMilliseconds(10); + set_led_bit(7, control_register_word, msg_led, 4); + is31_write_data (7, control_register_word, 0x02); + break; + case BLINK_ON_LED: + xprintf("BLINK_OFF: %d\n", msg_led); + chThdSleepMilliseconds(10); + set_led_bit(7, control_register_word, msg_led, 5); + is31_write_data (7, control_register_word, 0x02); + break; + case BLINK_TOGGLE_LED: + xprintf("BLINK_TOGGLE: %d\n", msg_led); + chThdSleepMilliseconds(10); + set_led_bit(7, control_register_word, msg_led, 6); + is31_write_data (7, control_register_word, 0x02); + case TOGGLE_ALL: - xprintf("TOGGLE_ALL\n"); + xprintf("TOGGLE_ALL: %d\n", msg_led); chThdSleepMilliseconds(10); //msg_led = unused is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 0 off led_control_reg[0] = 0; + if (temp==0 || page_status > 0) { - xprintf("all leds on"); - chThdSleepMilliseconds(10); __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { - xprintf("all leds off"); - chThdSleepMilliseconds(10); __builtin_memset(led_control_reg+1, 0, 0x12); } is31_write_data(0, led_control_reg, 0x13); @@ -292,15 +306,19 @@ page_status = 0; //start frame 0 (all off/on) case DISPLAY_PAGE://show single layer indicator or full map of layer //msg_led = page to toggle on - xprintf("DISPLAY_PAGE\n"); + xprintf("DISPLAY_PAGE"); chThdSleepMilliseconds(10); if (page_status != msg_led) { + xprintf(" - new page\n"); + chThdSleepMilliseconds(10); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); } page_status = msg_led; break; case RESET_PAGE: + xprintf("RESET_PAGE\n"); + chThdSleepMilliseconds(10); //led_msg = page to reset led_control_reg[0] = 0; __builtin_memset(led_control_reg+1, 0, 0x12); @@ -317,19 +335,23 @@ page_status = 0; //start frame 0 (all off/on) case TOGGLE_NUM_LOCK: //msg_led = 0 or 1, off/on - set_lock_leds(USB_LED_NUM_LOCK, msg_led); + xprintf("NUMLOCK: %d\n", msg_led); + chThdSleepMilliseconds(10); + set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_led); break; case TOGGLE_CAPS_LOCK: + xprintf("CAPSLOCK: %d\n", msg_led); + chThdSleepMilliseconds(10); //msg_led = 0 or 1, off/on - set_lock_leds(USB_LED_CAPS_LOCK, msg_led); + set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_led); break; //TODO: MODE_BREATH case MODE_BREATH: break; case STEP_BRIGHTNESS: - xprintf("TOGGLE_BACKLIGHT\n"); + xprintf("STEP_BACKLIGHT\n"); chThdSleepMilliseconds(10); //led_msg = step pwm up or down switch (msg_led) { @@ -394,27 +416,101 @@ page_status = 0; //start frame 0 (all off/on) chThdSleepMilliseconds(10); } #if DEBUG_ENABLED - uint8_t j, page; + uint8_t j; + uint8_t pages[3]={0x00, 0x07}; //debugging code - print full led/blink/pwm registers on each frame xprintf("----layer state----: %X\n", layer_state); - for(i=0;i<8;i++) { - xprintf("page: %d", i); - chThdSleepMilliseconds(2); - for(j=0;j<0xB4;j++){ - is31_read_register(i,j,&temp); + for(i=0;i<2;i++) { + xprintf("page: %d\n", pages[i]); chThdSleepMilliseconds(2); - xprintf("%02X, ", temp); - if(j % 9 == 0){ + for(j=0;j<0x24;j++){ + if(j > 0 && j % 9 == 0){ xprintf("\n"); - if(j % 18 ==0){ - xprintf("register"); - xprintf("\n"); - } + } + switch (j) { + case 0: + xprintf("\n--on-off--\n"); + chThdSleepMilliseconds(2); + break; + case 0x12: + xprintf("\n--blink--\n"); + chThdSleepMilliseconds(2); + break; } - chThdSleepMilliseconds(1); + is31_read_register(pages[i],j,&temp); + xprintf("%02X, ", temp); + chThdSleepMilliseconds(2); } + + xprintf("\n--pwm--\n"); + chThdSleepMilliseconds(2); + for(j=0x24;j<0xB4;j++) { + is31_read_register(pages[i],j,&temp); + xprintf("%02X, ", temp); + chThdSleepMilliseconds(2); + if(j > 0x24 && (j-4) % 8 == 0){ xprintf("\n"); + } + } + xprintf("\n"); + } + + //Function Register + xprintf("\n--FUNCTION--\n"); + chThdSleepMilliseconds(2); + for(j=0;j<0x0D;j++) { + is31_read_register(0x0B,j,&temp); + switch(j) { + case 0: + xprintf("Config %02X", temp); + chThdSleepMilliseconds(2); + break; + case 1: + xprintf(" - Pict %02X\n", temp); + chThdSleepMilliseconds(2); + break; + case 2: + xprintf("Auto1 %02X", temp); + chThdSleepMilliseconds(2); + break; + case 3: + xprintf(" - Auto2 %02X\n", temp); + chThdSleepMilliseconds(2); + break; + case 5: + xprintf("Disp %02X", temp); + chThdSleepMilliseconds(2); + break; + case 6: + xprintf(" - Audio %02X\n", temp); + chThdSleepMilliseconds(2); + break; + case 7: + xprintf("Frame %02X", temp); + chThdSleepMilliseconds(2); + break; + case 8: + xprintf(" - Breath1 %02X\n", temp); + chThdSleepMilliseconds(2); + break; + case 9: + xprintf("Breath2 %02X - ", temp); + chThdSleepMilliseconds(2); + break; + case 10: + xprintf(" - Shut %02X\n", temp); + chThdSleepMilliseconds(2); + break; + case 11: + xprintf("AGC %02X", temp); + chThdSleepMilliseconds(2); + break; + case 12: + xprintf(" - ADC %02X\n", temp); + chThdSleepMilliseconds(2); + break; } + } #endif } } @@ -425,22 +521,39 @@ page_status = 0; //start frame 0 (all off/on) void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action) { //returns 2 bytes led control register address and byte to write + //0 - bit off, 1 - bit on, 2 - toggle bit + + uint8_t control_reg_addr, column_bit, column_byte, temp, blink_on; - uint8_t control_reg_addr, column_bit, column_byte, temp; //check for valid led address - if (led_addr < 0 || led_addr > 90 || led_addr % 10 > 8) { + if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { xprintf("Invalid address: %d\n", led_addr); return; } + xprintf("set_led_bit: %d\n", led_addr); + xprintf("action: %d\n", action); + chThdSleepMilliseconds(10); + //check blink bit + blink_on = action>>2; + action &= ~(1<<2); //strip blink bit + //first byte is led control register address 0x00 //msg_led tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte + xprintf("pre-reg_addr: %X\n", control_reg_addr); + chThdSleepMilliseconds(10); + control_reg_addr += blink_on == 1 ? 0x12 : 0x00;//shift 12 bytes to blink register + xprintf("blink-reg_addr: %X\n", control_reg_addr); + chThdSleepMilliseconds(10); + column_bit = 1<<(led_addr % 10 - 1); is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte column_byte = temp; + xprintf("column_byte read: %X\n", column_byte); + chThdSleepMilliseconds(10); switch(action) { case 0: column_byte &= ~column_bit; @@ -452,72 +565,58 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint column_byte ^= column_bit; break; } + xprintf("column_byte write: %X\n", column_byte); + chThdSleepMilliseconds(10); //return word to be written in register led_control_reg[0] = control_reg_addr; led_control_reg[1] = column_byte; } -void set_lock_leds(uint8_t lock_type, uint8_t led_on) { - uint8_t page, led_addr, start, temp; - uint8_t led_control_word[2] = {0}; - //TODO: this function call could send led address vs lock_type. - //however, the switch/case allows for additional steps, like audio, depending on type +void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { + uint8_t led_control_word[2] = {0};//register address and led on/off mask - led_addr = 0; - switch(lock_type) { - case USB_LED_NUM_LOCK: - led_addr = NUM_LOCK_LED_ADDRESS; - break; - case USB_LED_CAPS_LOCK: - led_addr = CAPS_LOCK_LED_ADDRESS; - break; - #ifdef SCROLL_LOCK_LED_ADDRESS - case USB_LED_SCROLL_LOCK: - led_addr = SCROLL_LOCK_LED_ADDRESS; - break; - #endif - #ifdef COMPOSE_LED_ADDRESS - case USB_LED_COMPOSE: - led_addr = COMPOSE_LED_ADDRESS; - break; - #endif - #ifdef SCROLL_LOCK_LED_ADDRESS - case USB_LED_KANA: - led_addr = KANA_LED_ADDRESS; - break; - #endif - } - - //ignore frame0 if all leds are on or if option set in led_controller.h - //TODO: blink of all leds are on, clear blink register if not - is31_read_register(0, 0x00, &temp); - led_addr += temp == 0 ? 0 : 0x12;//send bit to blink register instead - start = BACKLIGHT_OFF_LOCK_LED_OFF ? 1 : 0; - - for(page=start; page<8; page++) { - set_led_bit(page,led_control_word,led_addr,led_on); - is31_write_data(page, led_control_word, 0x02); - } + led_control_word[0] = (row - 1 ) * 0x02;// A-register is every other byte + led_control_word[1] = led_byte;// A-register is every other byte + is31_write_data(page, led_control_word, 0x13); } void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { uint8_t i; - uint8_t row, col; + uint8_t pin, col; uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes __builtin_memset(led_control_register,0,13); for(i=0;i Date: Mon, 8 May 2017 11:57:40 -0700 Subject: small code cleanup --- keyboards/infinity60/MEMO.txt | 385 ---------------------------------- keyboards/infinity60/led_controller.c | 385 ++++++++++++++++++---------------- keyboards/infinity60/led_controller.h | 16 +- 3 files changed, 210 insertions(+), 576 deletions(-) delete mode 100644 keyboards/infinity60/MEMO.txt (limited to 'keyboards') diff --git a/keyboards/infinity60/MEMO.txt b/keyboards/infinity60/MEMO.txt deleted file mode 100644 index e2886aa00..000000000 --- a/keyboards/infinity60/MEMO.txt +++ /dev/null @@ -1,385 +0,0 @@ -flabbergast's TMK/ChibiOS port -============================== -2015/10/16 - - -Build ------ -$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git - -$ cd tmk_keyboard -$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios -or -$ cd tmk_keyboard/tmk_core/tool/chibios -$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios - -$ cd tmk_keyboard/keyboard/infinity_chibios -$ make - - - - -Chibios Configuration ---------------------- -halconf.h: for HAL configuration - placed in project directory - read in chibios/os/hal/hal.mk - included in chibios/os/hal/include/hal.h -mcuconf.h: for MCU configuration - placed in project directory - included in halconf.h - - -Chibios Term ------------- -PAL = Port Abstraction Layer - palWritePad - palReadPad - palSetPad - chibios/os/hal/include/pal.h - -LLD = Low Level Driver - - -Makefile --------- - # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) - MCU_FAMILY = KINETIS - MCU_SERIES = KL2x - - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ - # or /ld/ - MCU_LDSCRIPT = MKL26Z64 - - # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ - MCU_STARTUP = kl2x - - # Board: it should exist either in /os/hal/boards/ - # or /boards - BOARD = PJRC_TEENSY_LC - - MCU = cortex-m0 - - # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 - ARMV = 6 - - -halconf.h ---------- - - -mcuconf.h ---------- - - -chconf.h --------- - - -ld script ---------- ---- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 -+++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 -@@ -27,7 +27,8 @@ - { - flash0 : org = 0x00000000, len = 0xc0 - flashcfg : org = 0x00000400, len = 0x10 -- flash : org = 0x00000410, len = 64k - 0x410 -+ flash : org = 0x00000410, len = 62k - 0x410 -+ eeprom_emu : org = 0x0000F800, len = 2k - ram : org = 0x1FFFF800, len = 8k - } - -@@ -35,6 +36,10 @@ - __ram_size__ = LENGTH(ram); - __ram_end__ = __ram_start__ + __ram_size__; - -+__eeprom_workarea_start__ = ORIGIN(eeprom_emu); -+__eeprom_workarea_size__ = LENGTH(eeprom_emu); -+__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; -+ - SECTIONS - { - . = 0; - - - -Configuration/Startup for Infinity 60% --------------------------------------- -Configuration: - - -Clock: -Inifinity - FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz - Clock dividor: - SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock - SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock - SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock - Internal reference clock: - MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL - MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable - FLL multipilication: - MCG_C4[DMX32] = 1 - MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz - -chibios/os/hal/ports/KINETIS/K20x/hal_lld.c - k20x_clock_init(): called in __early_init() defined in board.c - disable watchdog and configure clock - - configurable macros: - KINETIS_NO_INIT: whether init or not - KINETIS_MCG_MODE: clock mode - KINETIS_MCG_MODE_FEI - KINETIS_MCG_MODE_PEE - hal/ports/KINETIS/K20x/hal_lld.h - - -chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h - PALConfig pal_default_config - boardInit() - __early_init() - macro definitions for board infos, freq and mcu type - -chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c - -USB - - -Startup -------- - common/ports/ARMCMx/GCC/crt0_v[67]m.s - Reset_Handler: startup code - common/ports/ARMCMx/GCC/crt1.c - __core_init(): weak - __early_init(): weak - __late_init(): weak - __default_exit(): weak - called from Reset_Handler of crt0 - common/ports/ARMCMx/GCC/vector.c - common/ports/ARMCMx/GCC/ld/*.ld - -chibios/os/common/ports/ARMCMx/compilers/GCC/ -├── crt0_v6m.s -├── crt0_v7m.s -├── crt1.c -├── ld -│   ├── MK20DX128BLDR3.ld -│   ├── MK20DX128BLDR4.ld -│   ├── MK20DX128.ld -│   ├── MK20DX256.ld -│   ├── MKL25Z128.ld -│   ├── MKL26Z128.ld -│   ├── MKL26Z64.ld -│   └── STM32L476xG.ld -├── mk -│   ├── startup_k20x5.mk -│   ├── startup_k20x7.mk -│   ├── startup_k20x.mk -│   ├── startup_kl2x.mk -│   └── startup_stm32l4xx.mk -├── rules.ld -├── rules.mk -└── vectors.c - -chibios/os/hal/ -├── boards -│   ├── FREESCALE_FREEDOM_K20D50M -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── MCHCK_K20 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_3 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_3_1 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_LC -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── readme.txt -│   ├── simulator -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── ST_NUCLEO_F030R8 -│   │   ├── board.c -│   │   ├── board.h -│   │   ├── board.mk -│   │   └── cfg -│   │   └── board.chcfg -├── hal.mk -├── include -│   ├── adc.h -│   ├── can.h -│   ├── dac.h -│   ├── ext.h -│   ├── gpt.h -│   ├── hal_channels.h -│   ├── hal_files.h -│   ├── hal.h -│   ├── hal_ioblock.h -│   ├── hal_mmcsd.h -│   ├── hal_queues.h -│   ├── hal_streams.h -│   ├── i2c.h -│   ├── i2s.h -│   ├── icu.h -│   ├── mac.h -│   ├── mii.h -│   ├── mmc_spi.h -│   ├── pal.h -│   ├── pwm.h -│   ├── rtc.h -│   ├── sdc.h -│   ├── serial.h -│   ├── serial_usb.h -│   ├── spi.h -│   ├── st.h -│   ├── uart.h -│   └── usb.h -├── lib -│   └── streams -│   ├── chprintf.c -│   ├── chprintf.h -│   ├── memstreams.c -│   ├── memstreams.h -│   ├── nullstreams.c -│   └── nullstreams.h -├── osal -│   ├── nil -│   │   ├── osal.c -│   │   ├── osal.h -│   │   └── osal.mk -│   ├── os-less -│   │   └── ARMCMx -│   │   ├── osal.c -│   │   ├── osal.h -│   │   └── osal.mk -│   └── rt -│   ├── osal.c -│   ├── osal.h -│   └── osal.mk -├── ports -│   ├── AVR -│   ├── common -│   │   └── ARMCMx -│   │   ├── mpu.h -│   │   ├── nvic.c -│   │   └── nvic.h -│   ├── KINETIS -│   │   ├── K20x -│   │   │   ├── hal_lld.c -│   │   │   ├── hal_lld.h -│   │   │   ├── kinetis_registry.h -│   │   │   ├── platform.dox -│   │   │   ├── platform.mk -│   │   │   ├── pwm_lld.c -│   │   │   ├── pwm_lld.h -│   │   │   ├── spi_lld.c -│   │   │   └── spi_lld.h -│   │   ├── KL2x -│   │   │   ├── hal_lld.c -│   │   │   ├── hal_lld.h -│   │   │   ├── kinetis_registry.h -│   │   │   ├── platform.mk -│   │   │   ├── pwm_lld.c -│   │   │   └── pwm_lld.h -│   │   ├── LLD -│   │   │   ├── adc_lld.c -│   │   │   ├── adc_lld.h -│   │   │   ├── ext_lld.c -│   │   │   ├── ext_lld.h -│   │   │   ├── gpt_lld.c -│   │   │   ├── gpt_lld.h -│   │   │   ├── i2c_lld.c -│   │   │   ├── i2c_lld.h -│   │   │   ├── pal_lld.c -│   │   │   ├── pal_lld.h -│   │   │   ├── serial_lld.c -│   │   │   ├── serial_lld.h -│   │   │   ├── st_lld.c -│   │   │   ├── st_lld.h -│   │   │   ├── usb_lld.c -│   │   │   └── usb_lld.h -│   │   └── README.md -│   ├── LPC -│   ├── simulator -│   └── STM32 -├── src -│   ├── adc.c -│   ├── can.c -│   ├── dac.c -│   ├── ext.c -│   ├── gpt.c -│   ├── hal.c -│   ├── hal_mmcsd.c -│   ├── hal_queues.c -│   ├── i2c.c -│   ├── i2s.c -│   ├── icu.c -│   ├── mac.c -│   ├── mmc_spi.c -│   ├── pal.c -│   ├── pwm.c -│   ├── rtc.c -│   ├── sdc.c -│   ├── serial.c -│   ├── serial_usb.c -│   ├── spi.c -│   ├── st.c -│   ├── uart.c -│   └── usb.c -└── templates - ├── adc_lld.c - ├── adc_lld.h - ├── can_lld.c - ├── can_lld.h - ├── dac_lld.c - ├── dac_lld.h - ├── ext_lld.c - ├── ext_lld.h - ├── gpt_lld.c - ├── gpt_lld.h - ├── halconf.h - ├── hal_lld.c - ├── hal_lld.h - ├── i2c_lld.c - ├── i2c_lld.h - ├── i2s_lld.c - ├── i2s_lld.h - ├── icu_lld.c - ├── icu_lld.h - ├── mac_lld.c - ├── mac_lld.h - ├── mcuconf.h - ├── osal - │   ├── osal.c - │   ├── osal.h - │   └── osal.mk - ├── pal_lld.c - ├── pal_lld.h - ├── platform.mk - ├── pwm_lld.c - ├── pwm_lld.h - ├── rtc_lld.c - ├── rtc_lld.h - ├── sdc_lld.c - ├── sdc_lld.h - ├── serial_lld.c - ├── serial_lld.h - ├── spi_lld.c - ├── spi_lld.h - ├── st_lld.c - ├── st_lld.h - ├── uart_lld.c - ├── uart_lld.h - ├── usb_lld.c - └── usb_lld.h diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 59ca833b6..c162e9a8f 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -72,8 +72,6 @@ along with this program. If not, see . #define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS #endif -#define DEBUG_ENABLED 1 - /* ================= * ChibiOS I2C setup * ================= */ @@ -145,7 +143,6 @@ void is31_init(void) { __builtin_memset(full_page,0,0xB4+1); // zero function page, all registers (assuming full_page is all zeroes) is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); - // disable hardware shutdown palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); palSetPad(GPIOB, 16); chThdSleepMilliseconds(10); @@ -182,7 +179,7 @@ static THD_FUNCTION(LEDthread, arg) { uint8_t pwm_step_status, page_status; //mailbox variables - uint8_t temp, msg_type, msg_led; + uint8_t temp, msg_type, msg_pin, msg_col, msg_led; msg_t msg; /* //control register variables @@ -199,14 +196,17 @@ page_status = 0; //start frame 0 (all off/on) // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't // be processed right away) chMBFetch(&led_mailbox, &msg, TIME_INFINITE); - msg_type = (msg >> 8) & 0xFF; //first byte is msg type - msg_led = (msg) & 0xFF; //second byte is action information + msg_col = (msg >> 24) & 0xFF;//if needed + msg_pin = (msg >> 16) & 0XFF;//if needed (SET_FULL_ROW) + msg_type = (msg >> 8) & 0xFF; //second byte is msg type + msg_led = (msg) & 0xFF; //first byte is action information xprintf("--------------------\n"); - chThdSleepMilliseconds(10); xprintf("mailbox fetch\nmsg: %X\n", msg); - chThdSleepMilliseconds(10); - xprintf("type: %X - led: %X\n", msg_type, msg_led); + chThdSleepMilliseconds(20); + xprintf("type: %X - pin: %X\n", msg_type, msg_pin); + chThdSleepMilliseconds(20); + xprintf("col: %X - led: %X\n", msg_col, msg_led); chThdSleepMilliseconds(10); switch (msg_type){ @@ -214,8 +214,12 @@ page_status = 0; //start frame 0 (all off/on) //TODO: lighting key led on keypress break; - //TODO: BLINK_ON/OFF_LED - break; + case SET_FULL_ROW: + //write full byte to pin address, msg_pin = pin #, msg_led = byte to write + //writes only to current page + xprintf("SET_FULL_ROW\n"); + write_led_byte(page_status,msg_pin,msg_led); + break; case OFF_LED: //on/off/toggle single led, msg_led = row/col of led @@ -255,6 +259,7 @@ page_status = 0; //start frame 0 (all off/on) chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 6); is31_write_data (7, control_register_word, 0x02); + break; case TOGGLE_ALL: xprintf("TOGGLE_ALL: %d\n", msg_led); @@ -272,17 +277,12 @@ page_status = 0; //start frame 0 (all off/on) if (page_status > 0) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); - } - //maintain lock leds - if (host_keyboard_leds() & (1< 0 && j % 9 == 0){ - xprintf("\n"); - } - switch (j) { - case 0: - xprintf("\n--on-off--\n"); - chThdSleepMilliseconds(2); - break; - case 0x12: - xprintf("\n--blink--\n"); - chThdSleepMilliseconds(2); - break; - } - is31_read_register(pages[i],j,&temp); - xprintf("%02X, ", temp); - chThdSleepMilliseconds(2); - } + } +} - xprintf("\n--pwm--\n"); - chThdSleepMilliseconds(2); - for(j=0x24;j<0xB4;j++) { - is31_read_register(pages[i],j,&temp); - xprintf("%02X, ", temp); - chThdSleepMilliseconds(2); - if(j > 0x24 && (j-4) % 8 == 0){ - xprintf("\n"); - } - } - xprintf("\n"); +/* ============================== + * debug function + * ============================== */ +void print_debug(uint8_t page) { + uint8_t j, debug_temp; + //debugging code - print full led/blink/pwm registers on each frame + xprintf("----layer state----: %X\n", layer_state); + xprintf("page: %d\n", page); + chThdSleepMilliseconds(10); + for(j=0;j<0x24;j++){ + if(j > 0 && j % 9 == 0){ + xprintf("\n"); + } + switch (j) { + case 0: + xprintf("\n--on-off--\n"); + chThdSleepMilliseconds(10); + break; + case 0x12: + xprintf("\n--blink--\n"); + chThdSleepMilliseconds(10); + break; } + is31_read_register(page,j,&debug_temp); + xprintf("%02X, ", debug_temp); + chThdSleepMilliseconds(10); + } - //Function Register - xprintf("\n--FUNCTION--\n"); - chThdSleepMilliseconds(2); - for(j=0;j<0x0D;j++) { - is31_read_register(0x0B,j,&temp); - switch(j) { - case 0: - xprintf("Config %02X", temp); - chThdSleepMilliseconds(2); - break; - case 1: - xprintf(" - Pict %02X\n", temp); - chThdSleepMilliseconds(2); - break; - case 2: - xprintf("Auto1 %02X", temp); - chThdSleepMilliseconds(2); - break; - case 3: - xprintf(" - Auto2 %02X\n", temp); - chThdSleepMilliseconds(2); - break; - case 5: - xprintf("Disp %02X", temp); - chThdSleepMilliseconds(2); - break; - case 6: - xprintf(" - Audio %02X\n", temp); - chThdSleepMilliseconds(2); - break; - case 7: - xprintf("Frame %02X", temp); - chThdSleepMilliseconds(2); - break; - case 8: - xprintf(" - Breath1 %02X\n", temp); - chThdSleepMilliseconds(2); - break; - case 9: - xprintf("Breath2 %02X - ", temp); - chThdSleepMilliseconds(2); - break; - case 10: - xprintf(" - Shut %02X\n", temp); - chThdSleepMilliseconds(2); - break; - case 11: - xprintf("AGC %02X", temp); - chThdSleepMilliseconds(2); - break; - case 12: - xprintf(" - ADC %02X\n", temp); - chThdSleepMilliseconds(2); - break; - } + xprintf("\n--pwm--\n"); + chThdSleepMilliseconds(10); + for(j=0x24;j<0xB4;j++) { + is31_read_register(page,j,&debug_temp); + xprintf("%02X, ", debug_temp); + chThdSleepMilliseconds(10); + if(j > 0x24 && (j-3) % 8 == 0){ + xprintf("\n"); + } + } + xprintf("\n"); + + //Function Register + xprintf("\n--FUNCTION--\n"); + chThdSleepMilliseconds(10); + for(j=0;j<0x0D;j++) { + is31_read_register(0x0B,j,&debug_temp); + switch(j) { + case 0: + xprintf("Config %02X", debug_temp); + chThdSleepMilliseconds(2); + break; + case 1: + xprintf(" - Pict %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; + case 2: + xprintf("Auto1 %02X", debug_temp); + chThdSleepMilliseconds(2); + break; + case 3: + xprintf(" - Auto2 %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; + case 5: + xprintf("Disp %02X", debug_temp); + chThdSleepMilliseconds(2); + break; + case 6: + xprintf(" - Audio %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; + case 7: + xprintf("Frame %02X", debug_temp); + chThdSleepMilliseconds(2); + break; + case 8: + xprintf(" - Breath1 %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; + case 9: + xprintf("Breath2 %02X - ", debug_temp); + chThdSleepMilliseconds(2); + break; + case 10: + xprintf(" - Shut %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; + case 11: + xprintf("AGC %02X", debug_temp); + chThdSleepMilliseconds(2); + break; + case 12: + xprintf(" - ADC %02X\n", debug_temp); + chThdSleepMilliseconds(2); + break; } -#endif } } @@ -523,7 +518,7 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint //returns 2 bytes led control register address and byte to write //0 - bit off, 1 - bit on, 2 - toggle bit - uint8_t control_reg_addr, column_bit, column_byte, temp, blink_on; + uint8_t control_reg_addr, column_bit, column_byte, bit_temp, blink_on; //check for valid led address if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { @@ -541,18 +536,28 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint //first byte is led control register address 0x00 //msg_led tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte - xprintf("pre-reg_addr: %X\n", control_reg_addr); + xprintf("pre-reg_addr: %2X\n", control_reg_addr); chThdSleepMilliseconds(10); control_reg_addr += blink_on == 1 ? 0x12 : 0x00;//shift 12 bytes to blink register - xprintf("blink-reg_addr: %X\n", control_reg_addr); + xprintf("blink-reg_addr: %2X\n", control_reg_addr); + chThdSleepMilliseconds(10); + xprintf("page: %2X\n", page); chThdSleepMilliseconds(10); - column_bit = 1<<(led_addr % 10 - 1); - is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte - column_byte = temp; + is31_read_register(page, 0x06, &bit_temp);//maintain status of leds on this byte + xprintf("reg 06: %2X\n", bit_temp); + is31_read_register(page, 0x17, &bit_temp);//maintain status of leds on this byte + xprintf("reg 17: %2X\n", bit_temp); + is31_read_register(page, 0x18, &bit_temp);//maintain status of leds on this byte + xprintf("reg 18: %2X\n", bit_temp); + is31_read_register(page, 0x19, &bit_temp);//maintain status of leds on this byte + xprintf("reg 19: %2X\n", bit_temp); + is31_read_register(page, control_reg_addr, &bit_temp);//maintain status of leds on this byte + column_bit = 1<<(led_addr % 10 - 1); + column_byte = bit_temp; - xprintf("column_byte read: %X\n", column_byte); + xprintf("column_byte read: %2X\n", column_byte); chThdSleepMilliseconds(10); switch(action) { case 0: @@ -565,7 +570,7 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint column_byte ^= column_bit; break; } - xprintf("column_byte write: %X\n", column_byte); + xprintf("column_byte write: %2X\n", column_byte); chThdSleepMilliseconds(10); //return word to be written in register @@ -574,47 +579,59 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint } void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { - uint8_t led_control_word[2] = {0};//register address and led on/off mask + uint8_t led_control_word[2] = {0};//register address and on/off byte led_control_word[0] = (row - 1 ) * 0x02;// A-register is every other byte - led_control_word[1] = led_byte;// A-register is every other byte - is31_write_data(page, led_control_word, 0x13); + led_control_word[1] = led_byte; + is31_write_data(page, led_control_word, 0x02); } void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { uint8_t i; uint8_t pin, col; - uint8_t led_control_register[0x13] = {0};//led control register start address + 0x12 bytes + uint8_t led_control_register[0x13] = {0};//control register start address + 0x12 bytes __builtin_memset(led_control_register,0,13); for(i=0;i Date: Mon, 8 May 2017 14:35:08 -0700 Subject: CLeaned out debug code --- keyboards/infinity60/led.c | 4 - keyboards/infinity60/led_controller.c | 275 ++-------------------------------- keyboards/infinity60/led_controller.h | 1 - 3 files changed, 14 insertions(+), 266 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index 92069dc59..d60c76fd8 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -29,26 +29,22 @@ void led_set(uint8_t usb_led) { msg_t msg; if (usb_led & (1<. /* * LED controller code - * WF uses IS31FL3731C matrix LED driver from ISSI + * IS31FL3731C matrix LED driver from ISSI * datasheet: http://www.issi.com/WW/pdf/31FL3731C.pdf */ @@ -56,9 +56,7 @@ along with this program. If not, see . order same as above (CA 1st row (8bytes), CB 1st row (8bytes), ...) */ -/* Which LED should be used for CAPS LOCK indicator - * The usual Caps Lock position is C4-6, so the address is - * 0x24 + (4-1)*0x10 + (8-1) = 0x59 */ +// Which LED should be used for CAPS LOCK indicator #if !defined(CAPS_LOCK_LED_ADDRESS) #define CAPS_LOCK_LED_ADDRESS 46 #endif @@ -90,7 +88,6 @@ uint8_t rx[1] __attribute__((aligned(2))); uint8_t full_page[0xB4+1] = {0}; // LED mask (which LEDs are present, selected by bits) -// See page comment above, control alternates CA matrix/CB matrix // IC60 pcb uses only CA matrix. // Each byte is a control pin for 8 leds ordered 8-1 const uint8_t all_on_leds_mask[0x12] = { @@ -182,11 +179,6 @@ static THD_FUNCTION(LEDthread, arg) { uint8_t temp, msg_type, msg_pin, msg_col, msg_led; msg_t msg; -/* //control register variables - uint8_t page, save_page, save_breath1, save_breath2; - msg_t msg, retval; -*/ - // initialize persistent variables pwm_step_status = 4; //full brightness page_status = 0; //start frame 0 (all off/on) @@ -197,77 +189,51 @@ page_status = 0; //start frame 0 (all off/on) // be processed right away) chMBFetch(&led_mailbox, &msg, TIME_INFINITE); msg_col = (msg >> 24) & 0xFF;//if needed - msg_pin = (msg >> 16) & 0XFF;//if needed (SET_FULL_ROW) + msg_pin = (msg >> 16) & 0XFF;//if needed (e.g. SET_FULL_ROW) msg_type = (msg >> 8) & 0xFF; //second byte is msg type msg_led = (msg) & 0xFF; //first byte is action information - xprintf("--------------------\n"); - xprintf("mailbox fetch\nmsg: %X\n", msg); - chThdSleepMilliseconds(20); - xprintf("type: %X - pin: %X\n", msg_type, msg_pin); - chThdSleepMilliseconds(20); - xprintf("col: %X - led: %X\n", msg_col, msg_led); - chThdSleepMilliseconds(10); - switch (msg_type){ - case KEY_LIGHT: - //TODO: lighting key led on keypress - break; - case SET_FULL_ROW: //write full byte to pin address, msg_pin = pin #, msg_led = byte to write //writes only to current page - xprintf("SET_FULL_ROW\n"); write_led_byte(page_status,msg_pin,msg_led); break; case OFF_LED: //on/off/toggle single led, msg_led = row/col of led - xprintf("OFF_LED: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 0); is31_write_data (7, control_register_word, 0x02); break; case ON_LED: - xprintf("ON_LED: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 1); is31_write_data (7, control_register_word, 0x02); break; case TOGGLE_LED: - xprintf("TOGGLE_LED: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 2); is31_write_data (7, control_register_word, 0x02); break; case BLINK_OFF_LED: //on/off/toggle single led, msg_led = row/col of led - xprintf("BLINK_ON: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 4); is31_write_data (7, control_register_word, 0x02); break; case BLINK_ON_LED: - xprintf("BLINK_OFF: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 5); is31_write_data (7, control_register_word, 0x02); break; case BLINK_TOGGLE_LED: - xprintf("BLINK_TOGGLE: %d\n", msg_led); - chThdSleepMilliseconds(10); set_led_bit(7, control_register_word, msg_led, 6); is31_write_data (7, control_register_word, 0x02); break; case TOGGLE_ALL: - xprintf("TOGGLE_ALL: %d\n", msg_led); - chThdSleepMilliseconds(10); //msg_led = unused - is31_read_register(0, 0x00, &temp);//if first byte is on, then toggle frame 0 off + is31_read_register(0, 0x00, &temp); led_control_reg[0] = 0; + //if first byte is on, then toggle frame 0 off if (temp==0 || page_status > 0) { __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { @@ -287,8 +253,6 @@ page_status = 0; //start frame 0 (all off/on) case TOGGLE_BACKLIGHT: //msg_led = on/off - xprintf("TOGGLE_BACKLIGHT\n"); - chThdSleepMilliseconds(10); //populate the 9 byte rows to be written to each pin, first byte is register (pin) address if (msg_led == 1) { @@ -304,13 +268,9 @@ page_status = 0; //start frame 0 (all off/on) } break; - case DISPLAY_PAGE://show single layer indicator or full map of layer - //msg_led = page to toggle on - xprintf("DISPLAY_PAGE\n"); - chThdSleepMilliseconds(10); + case DISPLAY_PAGE: + //msg_led = page to toggle on if (page_status != msg_led) { - xprintf(" - new page\n"); - chThdSleepMilliseconds(10); is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); page_status = msg_led; @@ -321,33 +281,22 @@ page_status = 0; //start frame 0 (all off/on) case RESET_PAGE: //led_msg = page to reset - xprintf("RESET_PAGE\n"); - chThdSleepMilliseconds(10); led_control_reg[0] = 0; __builtin_memset(led_control_reg+1, 0, 0x12); is31_write_data(msg_led, led_control_reg, 0x13); break; case TOGGLE_NUM_LOCK: - //msg_led = 0 or 1, off/on - xprintf("NUMLOCK: %d\n", msg_led); - chThdSleepMilliseconds(10); + //msg_led = 0 or 1, off/on set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_led, page_status); break; - case TOGGLE_CAPS_LOCK: - xprintf("CAPSLOCK: %d\n", msg_led); - chThdSleepMilliseconds(10); - //msg_led = 0 or 1, off/on + //msg_led = 0 or 1, off/on set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_led, page_status); break; - //TODO: MODE_BREATH - case STEP_BRIGHTNESS: - xprintf("STEP_BACKLIGHT\n"); - chThdSleepMilliseconds(10); - //led_msg = step pwm up or down + //led_msg = step pwm up or down switch (msg_led) { case 0: if (pwm_step_status == 0) { @@ -375,137 +324,6 @@ page_status = 0; //start frame 0 (all off/on) is31_write_data(0,pwm_register_array,9); } break; - -/* case LED_MSG_SLEEP_LED_ON: - // save current settings - is31_read_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, &save_page); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, &save_breath1); - is31_read_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, &save_breath2); - // use pages 7 and 8 for (hardware) breathing (assuming they're empty) - is31_write_register(6, BREATHE_LED_ADDRESS, 0xFF); - is31_write_register(7, BREATHE_LED_ADDRESS, 0x00); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (6<<4)|6); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); - retval = MSG_TIMEOUT; - temp = 6; - while(retval == MSG_TIMEOUT) { - // switch to the other page - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, temp); - temp = (temp == 6 ? 7 : 6); - // the times should be sufficiently long for IS31 to finish switching pages - retval = chMBFetch(&led_mailbox, &msg, MS2ST(temp == 6 ? 4000 : 6000)); - } - // received a message (should be a wakeup), so restore previous state - chThdSleepMilliseconds(3000); // need to wait until the page change finishes - // note: any other messages are queued - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, save_breath1); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, save_breath2); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, save_page); - break; - case LED_MSG_SLEEP_LED_OFF: - // should not get here; wakeup should be received in the branch above break; - break; -*/ - xprintf("--------------------\n"); - chThdSleepMilliseconds(10); - } - } -} - -/* ============================== - * debug function - * ============================== */ -void print_debug(uint8_t page) { - uint8_t j, debug_temp; - //debugging code - print full led/blink/pwm registers on each frame - xprintf("----layer state----: %X\n", layer_state); - xprintf("page: %d\n", page); - chThdSleepMilliseconds(10); - for(j=0;j<0x24;j++){ - if(j > 0 && j % 9 == 0){ - xprintf("\n"); - } - switch (j) { - case 0: - xprintf("\n--on-off--\n"); - chThdSleepMilliseconds(10); - break; - case 0x12: - xprintf("\n--blink--\n"); - chThdSleepMilliseconds(10); - break; - } - is31_read_register(page,j,&debug_temp); - xprintf("%02X, ", debug_temp); - chThdSleepMilliseconds(10); - } - - xprintf("\n--pwm--\n"); - chThdSleepMilliseconds(10); - for(j=0x24;j<0xB4;j++) { - is31_read_register(page,j,&debug_temp); - xprintf("%02X, ", debug_temp); - chThdSleepMilliseconds(10); - if(j > 0x24 && (j-3) % 8 == 0){ - xprintf("\n"); - } - } - xprintf("\n"); - - //Function Register - xprintf("\n--FUNCTION--\n"); - chThdSleepMilliseconds(10); - for(j=0;j<0x0D;j++) { - is31_read_register(0x0B,j,&debug_temp); - switch(j) { - case 0: - xprintf("Config %02X", debug_temp); - chThdSleepMilliseconds(2); - break; - case 1: - xprintf(" - Pict %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; - case 2: - xprintf("Auto1 %02X", debug_temp); - chThdSleepMilliseconds(2); - break; - case 3: - xprintf(" - Auto2 %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; - case 5: - xprintf("Disp %02X", debug_temp); - chThdSleepMilliseconds(2); - break; - case 6: - xprintf(" - Audio %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; - case 7: - xprintf("Frame %02X", debug_temp); - chThdSleepMilliseconds(2); - break; - case 8: - xprintf(" - Breath1 %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; - case 9: - xprintf("Breath2 %02X - ", debug_temp); - chThdSleepMilliseconds(2); - break; - case 10: - xprintf(" - Shut %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; - case 11: - xprintf("AGC %02X", debug_temp); - chThdSleepMilliseconds(2); - break; - case 12: - xprintf(" - ADC %02X\n", debug_temp); - chThdSleepMilliseconds(2); - break; } } } @@ -515,50 +333,29 @@ void print_debug(uint8_t page) { * ============================== */ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action) { - //returns 2 bytes led control register address and byte to write + //returns 2 bytes: led control register address and byte to write //0 - bit off, 1 - bit on, 2 - toggle bit uint8_t control_reg_addr, column_bit, column_byte, bit_temp, blink_on; //check for valid led address if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { - xprintf("Invalid address: %d\n", led_addr); return; } - xprintf("set_led_bit: %d\n", led_addr); - xprintf("action: %d\n", action); - chThdSleepMilliseconds(10); - //check blink bit + //check for blink bit blink_on = action>>2; action &= ~(1<<2); //strip blink bit //first byte is led control register address 0x00 //msg_led tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte - xprintf("pre-reg_addr: %2X\n", control_reg_addr); - chThdSleepMilliseconds(10); control_reg_addr += blink_on == 1 ? 0x12 : 0x00;//shift 12 bytes to blink register - xprintf("blink-reg_addr: %2X\n", control_reg_addr); - chThdSleepMilliseconds(10); - xprintf("page: %2X\n", page); - chThdSleepMilliseconds(10); - - - is31_read_register(page, 0x06, &bit_temp);//maintain status of leds on this byte - xprintf("reg 06: %2X\n", bit_temp); - is31_read_register(page, 0x17, &bit_temp);//maintain status of leds on this byte - xprintf("reg 17: %2X\n", bit_temp); - is31_read_register(page, 0x18, &bit_temp);//maintain status of leds on this byte - xprintf("reg 18: %2X\n", bit_temp); - is31_read_register(page, 0x19, &bit_temp);//maintain status of leds on this byte - xprintf("reg 19: %2X\n", bit_temp); + is31_read_register(page, control_reg_addr, &bit_temp);//maintain status of leds on this byte column_bit = 1<<(led_addr % 10 - 1); column_byte = bit_temp; - xprintf("column_byte read: %2X\n", column_byte); - chThdSleepMilliseconds(10); switch(action) { case 0: column_byte &= ~column_bit; @@ -570,8 +367,6 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint column_byte ^= column_bit; break; } - xprintf("column_byte write: %2X\n", column_byte); - chThdSleepMilliseconds(10); //return word to be written in register led_control_reg[0] = control_reg_addr; @@ -589,7 +384,7 @@ void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { uint8_t i; uint8_t pin, col; - uint8_t led_control_register[0x13] = {0};//control register start address + 0x12 bytes + uint8_t led_control_register[0x13] = {0}; __builtin_memset(led_control_register,0,13); @@ -607,30 +402,15 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { uint8_t lock_temp; uint8_t led_control_word[2] = {0}; - xprintf("---set lock---\n"); - chThdSleepMilliseconds(10); - //blink if all leds are on if (page == 0) { is31_read_register(0, 0x00, &lock_temp); - xprintf("AllOnReg: %2X\n", lock_temp); - chThdSleepMilliseconds(10); if (lock_temp == 0xFF) { - xprintf("AllOntrue\n"); - chThdSleepMilliseconds(10); led_action |= (1<<2); //set blink bit - } else { - xprintf("AllOnfalse\n"); - chThdSleepMilliseconds(10); } } set_led_bit(page,led_control_word,led_addr,led_action); - - xprintf("led_word: %2X", led_control_word[0]); - xprintf("%X\n", led_control_word[1]); - chThdSleepMilliseconds(10); - is31_write_data(page, led_control_word, 0x02); } @@ -679,30 +459,3 @@ void led_controller_init(void) { chMBObjectInit(&led_mailbox, led_mailbox_queue, LED_MAILBOX_NUM_MSGS); chThdCreateStatic(waLEDthread, sizeof(waLEDthread), LOWPRIO, LEDthread, NULL); } - -//TODO: Don't know equivalent QMK hooks for these -// -//void hook_usb_suspend_entry(void) { -//#ifdef SLEEP_LED_ENABLE -// chSysLockFromISR(); -// chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_ON); -// chSysUnlockFromISR(); -//#endif /* SLEEP_LED_ENABLE */ -//} -// -//void hook_usb_suspend_loop(void) { -// chThdSleepMilliseconds(100); -// /* Remote wakeup */ -// if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { -// send_remote_wakeup(&USB_DRIVER); -// } -//} -// -//void hook_usb_wakeup(void) { -//#ifdef SLEEP_LED_ENABLE -// chSysLockFromISR(); -// chMBPostI(&led_mailbox, LED_MSG_SLEEP_LED_OFF); -// chSysUnlockFromISR(); -//#endif /* SLEEP_LED_ENABLE */ -//} -//*/ diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index 7bdef7ae6..457b21a92 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -31,7 +31,6 @@ msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); * ============================*/ void led_controller_init(void); -void print_debug (uint8_t page); #define CAPS_LOCK_LED_ADDRESS 46 //pin matrix location #define NUM_LOCK_LED_ADDRESS 85 -- cgit v1.2.3-24-g4f1b From 5df74f3ba73f18f6bbd13b82a3a960c86fa592e1 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 15:13:02 -0700 Subject: updated keymap for new led functions --- keyboards/infinity60/keymaps/jpetermans/Makefile | 2 - keyboards/infinity60/keymaps/jpetermans/keymap.c | 280 ++++++++++++--------- .../keymaps/jpetermans/keymap_jpetermans.h | 78 ------ keyboards/infinity60/keymaps/jpetermans/readme.md | 79 ++++++ 4 files changed, 240 insertions(+), 199 deletions(-) delete mode 100644 keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h create mode 100644 keyboards/infinity60/keymaps/jpetermans/readme.md (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/Makefile b/keyboards/infinity60/keymaps/jpetermans/Makefile index 225e4cad4..df3d1e952 100644 --- a/keyboards/infinity60/keymaps/jpetermans/Makefile +++ b/keyboards/infinity60/keymaps/jpetermans/Makefile @@ -1,5 +1,3 @@ -#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -#BOOTMAGIC_ENABLE = yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 6f14b66cb..1afb7c067 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -1,6 +1,5 @@ #include "infinity60.h" #include "led_controller.h" -#include "keymap_jpetermans.h" //Helpful Defines #define _______ KC_TRNS @@ -12,8 +11,33 @@ #define _MEDIA 3 #define _TILDE 4 +//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles +#define max_pages 6 + +enum ic60_keycodes { + NUMPAD, + FNAV, + MEDIA, + TILDE, + CTLALTDEL, + BACKLIGHT, + BRIGHT, + DIM, + BREATH, + ALL, + GAME, + MODE_SINGLE, + MODE_PAGE, + MODE_FLASH +}; + +uint8_t current_layer_global = 0; +uint8_t led_mode_global = MODE_SINGLE; +uint8_t backlight_status_global = 1; //init on/off state of backlight +uint32_t led_layer_state = 0; + /* ================================== - * KEYMAPS + * KEYMAPS * ==================================*/ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -35,19 +59,10 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_NO,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ - F(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_NO, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,F(TILDE),KC_NO, \ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \ ), - /* F-, arrow, and media keys */ - [_FNAV] = KEYMAP( \ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\ - KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \ - _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ - _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \ - _______,_______,_______, _______, F(0),KC_NLCK,_______,_______ \ - ), - /* numpad */ [_NUMPAD] = KEYMAP( \ _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,\ @@ -57,12 +72,21 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______, MO(_BASE), _______,_______,_______,_______ \ ), + /* F-, arrow, and media keys */ + [_FNAV] = KEYMAP( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\ + KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \ + _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ + _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \ + _______,_______,_______, _______, F(CTLALTDEL),KC_NLCK,_______,_______ \ + ), + /* media */ [_MEDIA] = KEYMAP( \ - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ + _______,F(MODE_SINGLE),F(MODE_PAGE),F(MODE_FLASH),_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ - _______,_______,F(2),F(3),F(4),F(5),F(6),F(7), KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,_______,_______,_______,F(GAME),_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,F(ALL) ,F(BRIGHT),F(DIM),F(BACKLIGHT),_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ ), /* ~ */ @@ -91,21 +115,20 @@ enum function_id { enum macro_id { ACTION_LEDS_ALL, ACTION_LEDS_GAME, - ACTION_LEDS_NAV, - ACTION_LEDS_MEDIA, - ACTION_LEDS_NUMPAD, - ACTION_LEDS_TEST + ACTION_LEDS_BACKLIGHT, + ACTION_LEDS_BRIGHT, + ACTION_LEDS_DIM, + ACTION_LEDS_BREATH, + ACTION_LEDS_SINGLE, + ACTION_LEDS_PAGE, + ACTION_LEDS_FLASH, }; - + /* ================================== - * LED MAPPING + * LED MAPPING * ==================================*/ /* - Configuring led control can be done as - 1. full keyboard at a time - define led array, or - 2. individual led - send specific led address (defined in keymap.h) - Infinity60 LED MAP 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* 28 31 32 33 34 35 36 37 38 41 42 43 44 45 @@ -113,163 +136,182 @@ enum macro_id { 63 64 65 66 67 68 71 72 73 74 75 76 77* 78 81 82 83 84 85 86 87 *Unused in Alphabet Layout - - The full keyboard arrays map to the mcu's LED pages - (8 available) desribed in led_controller.c - - 0x24 (pcb row 1) is first byte of PWM portion of LED page - 0x34 (pcb row 2) is 17th byte of PWM portion of LED page - array translates to row and column positions */ -//LED Layer indicator (1 per layer 3-7) -const uint8_t led_single_layer[5] = { - 12,13,14,15,16 -}; -//LED Page 1 - All off -//LED Page 2 - All on -//LED Page 3 - _Nav -const uint8_t led_nav[33] = { - 11,12,13,14,15,16,17,18,21,22,23,24,25, - 28, 37,38,41,42,45, - 46,47,48, 54,55,56,57,58, - 64,65,66, 71, - 84,85 -}; -//LED Page 4 - _Numpad -const uint8_t led_numpad[17] = { +//======== full page arrays ========= +//LED Page 1 - _Numpad +//any change in array size needs to be mirrored in matrix_init_user +uint8_t led_numpad[16] = { 18,21,22,23, 37,38,41,42, 55,56,57,58, - 72,73,74,75, - 85 + 72,73,74,75 }; -//LED Page 5 - _Media -const uint8_t led_media[12] = { - 23,24,25, - 38, - 55,56,57, - 73,74,75, - 83, 86 +//LED Page 2 - _Nav +uint8_t led_nav[12] = { + 38, + 47,48, 55,56,57, + 64,65,66 }; -//LED Page 6 - _Game -const uint8_t led_game[5] = { - //row 1 +//LED Page 3 - _Media +uint8_t led_media[15] = { + 12,13,14, 23,24,25, + 65,66,67,68, 73,74,75, + 83, 86 +}; +//LED Page 4 - _Game "WASD" +uint8_t led_game[5] = { 11, - //row 2 - //row 3 - 32, - //row 4 - 47, 48, - //row 5 - 51 - //row 6 - //row 7 - //row 8 + 32, + 47,48,51 }; +//======== qmk functions ========= const uint16_t fn_actions[] = { - [0] = ACTION_KEY(LALT(LCTL(KC_DEL))), - [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), - [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), - [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), - [4] = ACTION_FUNCTION(ACTION_LEDS_MEDIA), - [5] = ACTION_FUNCTION(ACTION_LEDS_NAV), - [6] = ACTION_FUNCTION(ACTION_LEDS_NUMPAD), - [7] = ACTION_FUNCTION(ACTION_LEDS_TEST) - - + [CTLALTDEL] = ACTION_KEY(LALT(LCTL(KC_DEL))), + [TILDE] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), + [ALL] = ACTION_FUNCTION(ACTION_LEDS_ALL), + [GAME] = ACTION_FUNCTION(ACTION_LEDS_GAME), + [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT), + [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT), + [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM), + [BREATH] = ACTION_FUNCTION(ACTION_LEDS_BREATH), + [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE), + [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE), + [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH), }; /* custom action function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - (void)opt; msg_t msg; + switch(id) { case ACTION_LEDS_ALL: if(record->event.pressed) { - // signal the LED controller thread + led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; msg=(TOGGLE_ALL << 8) | 0; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LEDS_GAME: + + case ACTION_LEDS_BACKLIGHT: if(record->event.pressed) { - // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 6; + backlight_status_global ^= 1; + msg=(TOGGLE_BACKLIGHT << 8) | (backlight_status_global); chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LEDS_MEDIA: + + case ACTION_LEDS_GAME: if(record->event.pressed) { - // signal the LED controller thread - msg=(TOGGLE_LAYER_LEDS << 8) | 5; + led_mode_global = led_mode_global == GAME ? MODE_SINGLE : GAME; + + msg=(DISPLAY_PAGE << 8) | 4; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LEDS_NAV: + + case ACTION_LEDS_BRIGHT: if(record->event.pressed) { - // signal the LED controller thread - msg=(OFF_LED << 8) | 12; + msg=(STEP_BRIGHTNESS << 8) | 1; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LEDS_NUMPAD: + + case ACTION_LEDS_DIM: if(record->event.pressed) { - // signal the LED controller thread - msg=(ON_LED << 8) | 12; + msg=(STEP_BRIGHTNESS << 8) | 0; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; - case ACTION_LEDS_TEST: + + case ACTION_LEDS_BREATH: if(record->event.pressed) { - // signal the LED controller thread - msg=(TOGGLE_LED << 8) | 12; + msg=(TOGGLE_BREATH << 8) | 0; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; + + //set led_mode for matrix_scan to toggle leds + case ACTION_LEDS_SINGLE: + led_mode_global = MODE_SINGLE; + break; + case ACTION_LEDS_PAGE: + led_mode_global = MODE_PAGE; + break; + case ACTION_LEDS_FLASH: + led_mode_global = MODE_FLASH; + break; + } } const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case 0: - if (record->event.pressed) { - } - break; - case 1: - if (record->event.pressed) { - } - break; - } return MACRO_NONE; }; +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + return true; +} + // Runs just one time when the keyboard initializes. void matrix_init_user(void) { xprintf("init start"); led_controller_init(); -//TODO: do pages need to be written at init or ok on demand? -/* Write pages */ - write_led_page(3, led_nav, 33); - chThdSleepMilliseconds(5); + // Write predefined led pages. + write_led_page(_NUMPAD, led_numpad, 16); + chThdSleepMilliseconds(10); - write_led_page(4, led_numpad, 17); - chThdSleepMilliseconds(5); + write_led_page(_FNAV, led_nav, 12); + chThdSleepMilliseconds(10); - write_led_page(5, led_media, 12); - chThdSleepMilliseconds(5); + write_led_page(_MEDIA, led_media, 15); + chThdSleepMilliseconds(10); - write_led_page(6, led_game, 5); - chThdSleepMilliseconds(5); + write_led_page(4, led_game, 5); + chThdSleepMilliseconds(1000); }; -// Runs constantly in the background, in a loop. +// Loops constantly in the background. void matrix_scan_user(void) { + uint8_t page; + uint8_t led_pin_byte; + msg_t msg; -}; + if (backlight_status_global == 0) {//backlight is off, skip the rest + return; + } + + if (led_layer_state != layer_state && led_mode_global != GAME && led_mode_global != ALL) { + //check mode + //Turn on layer indicator or page depending on mode + switch(led_mode_global) { + case MODE_FLASH: //flash preset page leds then single indicator + page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); + msg=(DISPLAY_PAGE << 8) | (page); + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + chThdSleepMilliseconds(500); + //flow to display single layer leds + + case MODE_SINGLE: //light layer indicators for all active layers + led_pin_byte = layer_state & 0xFF; + msg=(DISPLAY_PAGE << 8) | 7; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + msg=(1<<16) | (SET_FULL_ROW << 8) | (led_pin_byte); + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + break; + + case MODE_PAGE: //display pre-defined led page + page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); + msg=(DISPLAY_PAGE << 8) | (page); + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + break; + } + led_layer_state = layer_state; + } +} diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h b/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h deleted file mode 100644 index 240374423..000000000 --- a/keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h +++ /dev/null @@ -1,78 +0,0 @@ -/* LED layout mainly based on default Standard configuration - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ` | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Bksp| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| - * |-----------------------------------------------------------' - * | LCtl|LGui|LAlt | Space | RAlt|RGui|RMenu|RCtl| - * `-----------------------------------------------------------' -*/ - - -#define ADDR_LED_ESC 0x24 -#define ADDR_LED_1 0x25 -#define ADDR_LED_2 0x26 -#define ADDR_LED_3 0x27 -#define ADDR_LED_4 0x28 -#define ADDR_LED_5 0x29 -#define ADDR_LED_6 0x2A -#define ADDR_LED_7 0x2B -#define ADDR_LED_8 0x34 -#define ADDR_LED_9 0x35 -#define ADDR_LED_0 0x36 -#define ADDR_LED_MINS 0x37 -#define ADDR_LED_EQL 0x38 -#define ADDR_LED_BSLS 0x39 -//#define ADDR_LED_GRV 0x3A //not used by Alphabet layout -#define ADDR_LED_TAB 0x3B -#define ADDR_LED_Q 0x44 -#define ADDR_LED_W 0x45 -#define ADDR_LED_E 0x46 -#define ADDR_LED_R 0x47 -#define ADDR_LED_T 0x48 -#define ADDR_LED_Y 0x49 -#define ADDR_LED_U 0x4A -#define ADDR_LED_I 0x4B -#define ADDR_LED_O 0x54 -#define ADDR_LED_P 0x55 -#define ADDR_LED_LBRC 0x56 -#define ADDR_LED_RBRC 0x57 -#define ADDR_LED_BSPC 0x58 -#define ADDR_LED_CAPS 0x59 -#define ADDR_LED_A 0x5A -#define ADDR_LED_S 0x5B -#define ADDR_LED_D 0x64 -#define ADDR_LED_F 0x65 -#define ADDR_LED_G 0x66 -#define ADDR_LED_H 0x67 -#define ADDR_LED_J 0x68 -#define ADDR_LED_K 0x69 -#define ADDR_LED_L 0x6A -#define ADDR_LED_SCLN 0x6B -#define ADDR_LED_QUOT 0x74 -#define ADDR_LED_ENT 0x75 -#define ADDR_LED_LSFT 0x76 -#define ADDR_LED_Z 0x77 -#define ADDR_LED_X 0x78 -#define ADDR_LED_C 0x79 -#define ADDR_LED_V 0x7A -#define ADDR_LED_B 0x7B -#define ADDR_LED_N 0x84 -#define ADDR_LED_M 0x85 -#define ADDR_LED_COMM 0x86 -#define ADDR_LED_DOT 0x87 -#define ADDR_LED_SLSH 0x88 -#define ADDR_LED_RSFT 0x89 -//#define ADDR_LED_FN0 0x8A //not used by Alphabet layout -#define ADDR_LED_LCTL 0x8B -#define ADDR_LED_LGUI 0x94 -#define ADDR_LED_LALT 0x95 -#define ADDR_LED_SPC 0x96 -#define ADDR_LED_RALT 0x97 -#define ADDR_LED_RGUI 0x98 -#define ADDR_LED_MENU 0x99 -#define ADDR_LED_RCTL 0x9A diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md new file mode 100644 index 000000000..9c5b89173 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -0,0 +1,79 @@ +Backlight for Infinity60 +======================== + +## Led Controller Specs + +The Infinity60 pcb uses the IS31FL3731C matrix LED driver from ISSI [datasheet](http://www.issi.com/WW/pdf/31FL3731C.pdf). The IS31 has the ability to control two led matrices (A & B), each matrix controlling 9 pins, each pin controlling 8 leds. The Infinity only utilizes matrix A. + +Infinity60 LED MAP: +digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A +```c + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* + 28 31 32 33 34 35 36 37 38 41 42 43 44 45 + 46 47 48 51 52 53 54 55 56 57 58 61 62 + 63 64 65 66 67 68 71 72 73 74 75 76 77* + 78 81 82 83 84 85 86 87 +``` +*Unused in Alphabet Layout + +The IS31 includes 8 pages (or frames) 0-7 and each page consists of 0xB4 (144) bytes +- **0 - 17** LED control (on/off). 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). Each byte controls the 8 leds on that pin with bits (8 to 1). +- **18 - 35** Blink control. Same as LED control above, but sets blink on/off. +- **36 - 143** PWM control. One byte per LED, sets PWM from 0 to 255. Same as above, the register alternates bytes between the A & B matrices. + +## Led Controller Code +led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off and page 7 for controlling individual leds. The remaining 6 pages (1-6) are free to preset led maps at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c" + +One function is available to directly control leds: +``` +write_led_page(page#, array of leds by address, # of leds in array) +``` +This function saves a full page using a supplied array of led locations such as: +``` +uint8_t led_numpad[16] = { + 18,21,22,23, + 37,38,41,42, + 55,56,57,58, + 72,73,74,75 +} +write_led_page(5, led_numpad, 16); +``` + +Remaining led control is done through the led mailbox using these message types. +- **SET_FULL_ROW** - 3 bytes: row#, message type, 8-bit mask. Sets all leds on one pin per the bit mask. +- **OFF_LED** - 2 bytes: message type, led address. Turn off specific led. +- **ON_LED** - 2 bytes: message type, led address. Turn on specific led. +- **TOGGLE_LED** - 2 bytes: message type, led address. Toggle specific led on/off. +- **BLINK_OFF_LED** - 2 bytes: message type, led address. Set blink off for specific led. +- **BLINK_ON_LED** - 2 bytes: message type, led address. Set blink on for specific led. +- **BLINK_TOGGLE_LED** - 2 bytes: message type, led address. Toggle blink for specific led. +- **TOGGLE_ALL** - 2 bytes: message type, not used. Turn on/off full backlight. +- **TOGGLE_BACKLIGHT** - 2 bytes: message type, on/off. Sets backlight completely off, no leds will display. +- **DISPLAY_PAGE** - 2 bytes: message type, page to display. Switch to specific pre-set page. +- **RESET_PAGE** - 2 bytes: message type, page to reset. Reset/erase specific page. +- **TOGGLE_NUM_LOCK** - 2 bytes: message type, on/off (NUM_LOCK_LED_ADDRESS). Toggle numlock on/off. Usually run with the `set_leds` function to check state of numlock or capslock. If all leds are on (e.i. TOGGLE_ALL) then this sets numlock to blink instead (this is still a little buggy if toggling on/off quickly). +- **TOGGLE_CAPS_LOCK** - 2 bytes: message type, on/off (CAPS_LOCK_LED_ADDRESS). Same as numlock. +- **STEP_BRIGHTNESS** - 2 bytes: message type, and step up (1) or step down (0). Increase or decrease led brightness. + +## Sending messages in Keymap.c +Sending an action to the led mailbox is done using chMBPost with the following form. +``` +chMBPost(&led_mailbox, message, timeout); +``` +- &led_mailbox - pointer to led mailbox +- message - up to 4 bytes but most messages use only 2. First byte (LSB) is the message to process, the second byte is type. The third is only used to pass row information in SET_FULL_ROW. The fourth byte is currently unused. +-timeout is usually TIME_IMMEDIATE + +An example: +1. set the message to be sent. First byte (LSB) is the led address, and second is the message type +`msg=(ON_LED << 8) | 42;` +2. send msg to the led mailbox +`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + +Another: +`msg=(BLINK_TOGGLE_LED << 8) | 46;` +`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + +Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: +`msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` +`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` -- cgit v1.2.3-24-g4f1b From 821f72eae94ce4f1b93bab1376b2187698206b65 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 16:15:20 -0700 Subject: documentation cleanup --- keyboards/infinity60/keymaps/jpetermans/readme.md | 69 +++++++++++++---------- keyboards/infinity60/led_controller.c | 6 +- 2 files changed, 41 insertions(+), 34 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index 9c5b89173..fcad4b140 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -3,10 +3,10 @@ Backlight for Infinity60 ## Led Controller Specs -The Infinity60 pcb uses the IS31FL3731C matrix LED driver from ISSI [datasheet](http://www.issi.com/WW/pdf/31FL3731C.pdf). The IS31 has the ability to control two led matrices (A & B), each matrix controlling 9 pins, each pin controlling 8 leds. The Infinity only utilizes matrix A. +The Infinity60 (revision 1.1a) pcb uses the IS31FL3731C matrix LED driver from ISSI [(datasheet)](http://www.issi.com/WW/pdf/31FL3731C.pdf). The IS31 has the ability to control two led matrices (A & B), each matrix controlling 9 pins, each pin controlling 8 leds. The Infinity only utilizes matrix A. -Infinity60 LED MAP: -digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A +Infinity60 LED Map: +digits mean "row" and "col", i.e. 45 means pin 4, column 5 in the IS31 datasheet ```c 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* 28 31 32 33 34 35 36 37 38 41 42 43 44 45 @@ -17,19 +17,26 @@ digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A *Unused in Alphabet Layout The IS31 includes 8 pages (or frames) 0-7 and each page consists of 0xB4 (144) bytes -- **0 - 17** LED control (on/off). 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). Each byte controls the 8 leds on that pin with bits (8 to 1). -- **18 - 35** Blink control. Same as LED control above, but sets blink on/off. -- **36 - 143** PWM control. One byte per LED, sets PWM from 0 to 255. Same as above, the register alternates bytes between the A & B matrices. +- **0 - 17** + * LED control (on/off). + * 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). + * Each byte controls the 8 leds on that pin with bits (8 to 1). +- **18 - 35** + * Blink control. + * Same as LED control above, but sets blink on/off. +- **36 - 143** + * PWM control. One byte per LED, sets PWM from 0 to 255. + * Same as above, the register alternates, every 8 *bytes* (not bits) between the A & B matrices. ## Led Controller Code -led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off and page 7 for controlling individual leds. The remaining 6 pages (1-6) are free to preset led maps at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c" +In the Infinity60 project folder, led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off and page 7 for controlling individual leds. The remaining 6 pages (1-6) are free to preset led maps at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c" -One function is available to directly control leds: +One function is available to directly set leds without the mailbox: ``` write_led_page(page#, array of leds by address, # of leds in array) ``` This function saves a full page using a supplied array of led locations such as: -``` +```c uint8_t led_numpad[16] = { 18,21,22,23, 37,38,41,42, @@ -39,24 +46,24 @@ uint8_t led_numpad[16] = { write_led_page(5, led_numpad, 16); ``` -Remaining led control is done through the led mailbox using these message types. -- **SET_FULL_ROW** - 3 bytes: row#, message type, 8-bit mask. Sets all leds on one pin per the bit mask. -- **OFF_LED** - 2 bytes: message type, led address. Turn off specific led. -- **ON_LED** - 2 bytes: message type, led address. Turn on specific led. -- **TOGGLE_LED** - 2 bytes: message type, led address. Toggle specific led on/off. -- **BLINK_OFF_LED** - 2 bytes: message type, led address. Set blink off for specific led. -- **BLINK_ON_LED** - 2 bytes: message type, led address. Set blink on for specific led. -- **BLINK_TOGGLE_LED** - 2 bytes: message type, led address. Toggle blink for specific led. -- **TOGGLE_ALL** - 2 bytes: message type, not used. Turn on/off full backlight. -- **TOGGLE_BACKLIGHT** - 2 bytes: message type, on/off. Sets backlight completely off, no leds will display. -- **DISPLAY_PAGE** - 2 bytes: message type, page to display. Switch to specific pre-set page. -- **RESET_PAGE** - 2 bytes: message type, page to reset. Reset/erase specific page. -- **TOGGLE_NUM_LOCK** - 2 bytes: message type, on/off (NUM_LOCK_LED_ADDRESS). Toggle numlock on/off. Usually run with the `set_leds` function to check state of numlock or capslock. If all leds are on (e.i. TOGGLE_ALL) then this sets numlock to blink instead (this is still a little buggy if toggling on/off quickly). -- **TOGGLE_CAPS_LOCK** - 2 bytes: message type, on/off (CAPS_LOCK_LED_ADDRESS). Same as numlock. -- **STEP_BRIGHTNESS** - 2 bytes: message type, and step up (1) or step down (0). Increase or decrease led brightness. +Remaining led control is done through the led mailbox using these message types: +- **SET_FULL_ROW** (3 bytes) - row#, message type, 8-bit mask. Sets all leds on one pin per the bit mask. +- **OFF_LED** (2 bytes) - message type, led address. Turn off specific led. +- **ON_LED** (2 bytes) - message type, led address. Turn on specific led. +- **TOGGLE_LED** (2 bytes) - message type, led address. Toggle specific led on/off. +- **BLINK_OFF_LED** (2 bytes) - message type, led address. Set blink off for specific led. +- **BLINK_ON_LED** (2 bytes) - message type, led address. Set blink on for specific led. +- **BLINK_TOGGLE_LED** (2 bytes) - message type, led address. Toggle blink for specific led. +- **TOGGLE_ALL** (2 bytes) - message type, not used. Turn on/off full backlight. +- **TOGGLE_BACKLIGHT** (2 bytes) - message type, on/off. Sets backlight completely off, no leds will display. +- **DISPLAY_PAGE** (2 bytes) - message type, page to display. Switch to specific pre-set page. +- **RESET_PAGE** (2 bytes) - message type, page to reset. Reset/erase specific page. +- **TOGGLE_NUM_LOCK** (2 bytes) - message type, on/off (NUM_LOCK_LED_ADDRESS). Toggle numlock on/off. Usually run with the `set_leds` function to check state of numlock or capslock. If all leds are on (e.i. TOGGLE_ALL) then this sets numlock to blink instead (this is still a little buggy if toggling on/off quickly). +- **TOGGLE_CAPS_LOCK** (2 bytes) - message type, on/off (CAPS_LOCK_LED_ADDRESS). Same as numlock. +- **STEP_BRIGHTNESS** (2 bytes) - message type, and step up (1) or step down (0). Increase or decrease led brightness. ## Sending messages in Keymap.c -Sending an action to the led mailbox is done using chMBPost with the following form. +Sending an action to the led mailbox is done using chMBPost: ``` chMBPost(&led_mailbox, message, timeout); ``` @@ -66,14 +73,14 @@ chMBPost(&led_mailbox, message, timeout); An example: 1. set the message to be sent. First byte (LSB) is the led address, and second is the message type -`msg=(ON_LED << 8) | 42;` + *`msg=(ON_LED << 8) | 42;` 2. send msg to the led mailbox -`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Another: -`msg=(BLINK_TOGGLE_LED << 8) | 46;` -`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + *`msg=(BLINK_TOGGLE_LED << 8) | 46;` + *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: -`msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` -`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + *`msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` + *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index d4ad0559b..d776b4fcf 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -186,7 +186,7 @@ page_status = 0; //start frame 0 (all off/on) while(true) { // wait for a message (asynchronous) // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't - // be processed right away) + // be processed right away chMBFetch(&led_mailbox, &msg, TIME_INFINITE); msg_col = (msg >> 24) & 0xFF;//if needed msg_pin = (msg >> 16) & 0XFF;//if needed (e.g. SET_FULL_ROW) @@ -229,7 +229,7 @@ page_status = 0; //start frame 0 (all off/on) break; case TOGGLE_ALL: - //msg_led = unused + //msg_led = unused is31_read_register(0, 0x00, &temp); led_control_reg[0] = 0; @@ -315,7 +315,7 @@ page_status = 0; //start frame 0 (all off/on) break; } - //populate 8 byte rows to write on each pin + //populate 8 byte arrays to write on each pin //first byte is register address, every 0x10 9 bytes are A-register pwm pins __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); -- cgit v1.2.3-24-g4f1b From d1ff2bb9db68b899dbd02d1cdf036551b38dccdc Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 16:17:40 -0700 Subject: readme fix --- keyboards/infinity60/keymaps/jpetermans/readme.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index fcad4b140..4657a84c0 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -73,14 +73,14 @@ chMBPost(&led_mailbox, message, timeout); An example: 1. set the message to be sent. First byte (LSB) is the led address, and second is the message type - *`msg=(ON_LED << 8) | 42;` + * `msg=(ON_LED << 8) | 42;` 2. send msg to the led mailbox - *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Another: - *`msg=(BLINK_TOGGLE_LED << 8) | 46;` - *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + * `msg=(BLINK_TOGGLE_LED << 8) | 46;` + * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: - *`msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` - *`chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` + * `msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` + * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` -- cgit v1.2.3-24-g4f1b From 5fc5661147e4e8bec8a52a8691ac1df2fedd3558 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 16:19:11 -0700 Subject: third readme fix attempt --- keyboards/infinity60/keymaps/jpetermans/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index 4657a84c0..2e0edeacd 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -78,9 +78,9 @@ An example: * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Another: - * `msg=(BLINK_TOGGLE_LED << 8) | 46;` - * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` +- `msg=(BLINK_TOGGLE_LED << 8) | 46;` +- `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: - * `msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` - * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` +- `msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` +- `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` -- cgit v1.2.3-24-g4f1b From 16774333ad47ada2367b5ca283d0af5060ff8415 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 16:28:04 -0700 Subject: last readme fix --- keyboards/infinity60/keymaps/jpetermans/readme.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index 2e0edeacd..7e60a7f0d 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -78,9 +78,13 @@ An example: * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` Another: -- `msg=(BLINK_TOGGLE_LED << 8) | 46;` -- `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` +```c +msg=(BLINK_TOGGLE_LED << 8) | 46; +chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); +``` Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: -- `msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte);` -- `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` +```c +msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte); +chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); +``` -- cgit v1.2.3-24-g4f1b From a144968807f5bf98b2c41cfe153f3df780ed4eaa Mon Sep 17 00:00:00 2001 From: jpetermans Date: Mon, 8 May 2017 16:38:44 -0700 Subject: remove breath functions from keymap --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 10 ---------- keyboards/infinity60/keymaps/jpetermans/readme.md | 11 +++++++---- 2 files changed, 7 insertions(+), 14 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 1afb7c067..630105017 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -23,7 +23,6 @@ enum ic60_keycodes { BACKLIGHT, BRIGHT, DIM, - BREATH, ALL, GAME, MODE_SINGLE, @@ -118,7 +117,6 @@ enum macro_id { ACTION_LEDS_BACKLIGHT, ACTION_LEDS_BRIGHT, ACTION_LEDS_DIM, - ACTION_LEDS_BREATH, ACTION_LEDS_SINGLE, ACTION_LEDS_PAGE, ACTION_LEDS_FLASH, @@ -175,7 +173,6 @@ const uint16_t fn_actions[] = { [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT), [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT), [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM), - [BREATH] = ACTION_FUNCTION(ACTION_LEDS_BREATH), [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE), [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE), [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH), @@ -225,13 +222,6 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; - case ACTION_LEDS_BREATH: - if(record->event.pressed) { - msg=(TOGGLE_BREATH << 8) | 0; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - break; - //set led_mode for matrix_scan to toggle leds case ACTION_LEDS_SINGLE: led_mode_global = MODE_SINGLE; diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index 7e60a7f0d..f50bee617 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -72,10 +72,13 @@ chMBPost(&led_mailbox, message, timeout); -timeout is usually TIME_IMMEDIATE An example: -1. set the message to be sent. First byte (LSB) is the led address, and second is the message type - * `msg=(ON_LED << 8) | 42;` -2. send msg to the led mailbox - * `chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);` +```c +//set the message to be sent. First byte (LSB) is the led address, and second is the message type +msg=(ON_LED << 8) | 42; + +//send msg to the led mailbox +chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); +``` Another: ```c -- cgit v1.2.3-24-g4f1b From 164a6c994b797b66634f7a1c12fcaffd0ffd7506 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Wed, 10 May 2017 15:53:59 -0700 Subject: reorder mailbox msg data; formatting --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 28 ++--- keyboards/infinity60/keymaps/jpetermans/readme.md | 38 +++--- keyboards/infinity60/led.c | 8 +- keyboards/infinity60/led_controller.c | 138 +++++++++++----------- 4 files changed, 101 insertions(+), 111 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 630105017..8d19834b2 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -12,7 +12,7 @@ #define _TILDE 4 //IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles -#define max_pages 6 +#define max_pages 6 enum ic60_keycodes { NUMPAD, @@ -75,7 +75,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FNAV] = KEYMAP( \ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\ KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \ - _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ + _______,_______,KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \ _______,_______,_______, _______, F(CTLALTDEL),KC_NLCK,_______,_______ \ ), @@ -119,7 +119,7 @@ enum macro_id { ACTION_LEDS_DIM, ACTION_LEDS_SINGLE, ACTION_LEDS_PAGE, - ACTION_LEDS_FLASH, + ACTION_LEDS_FLASH }; /* ================================== @@ -137,9 +137,8 @@ enum macro_id { */ //======== full page arrays ========= -//LED Page 1 - _Numpad //any change in array size needs to be mirrored in matrix_init_user -uint8_t led_numpad[16] = { +uint8_t led_numpad[16] = { 18,21,22,23, 37,38,41,42, 55,56,57,58, @@ -186,7 +185,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { case ACTION_LEDS_ALL: if(record->event.pressed) { led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; - msg=(TOGGLE_ALL << 8) | 0; + msg=TOGGLE_ALL; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; @@ -194,7 +193,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { case ACTION_LEDS_BACKLIGHT: if(record->event.pressed) { backlight_status_global ^= 1; - msg=(TOGGLE_BACKLIGHT << 8) | (backlight_status_global); + msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; @@ -203,21 +202,21 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { if(record->event.pressed) { led_mode_global = led_mode_global == GAME ? MODE_SINGLE : GAME; - msg=(DISPLAY_PAGE << 8) | 4; + msg=(4 << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LEDS_BRIGHT: if(record->event.pressed) { - msg=(STEP_BRIGHTNESS << 8) | 1; + msg=(1 << 8) | STEP_BRIGHTNESS; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; case ACTION_LEDS_DIM: if(record->event.pressed) { - msg=(STEP_BRIGHTNESS << 8) | 0; + msg=(0 << 8) | STEP_BRIGHTNESS; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); } break; @@ -282,26 +281,25 @@ void matrix_scan_user(void) { switch(led_mode_global) { case MODE_FLASH: //flash preset page leds then single indicator page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); - msg=(DISPLAY_PAGE << 8) | (page); + msg=(page << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); chThdSleepMilliseconds(500); //flow to display single layer leds case MODE_SINGLE: //light layer indicators for all active layers led_pin_byte = layer_state & 0xFF; - msg=(DISPLAY_PAGE << 8) | 7; + msg=(7 << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - msg=(1<<16) | (SET_FULL_ROW << 8) | (led_pin_byte); + msg=(1<<16) | (led_pin_byte << 8) | SET_FULL_ROW; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); break; case MODE_PAGE: //display pre-defined led page page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); - msg=(DISPLAY_PAGE << 8) | (page); + msg=(page << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); break; } led_layer_state = layer_state; } } - diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index f50bee617..63fd88ec2 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -16,26 +16,24 @@ digits mean "row" and "col", i.e. 45 means pin 4, column 5 in the IS31 datasheet ``` *Unused in Alphabet Layout -The IS31 includes 8 pages (or frames) 0-7 and each page consists of 0xB4 (144) bytes -- **0 - 17** - * LED control (on/off). - * 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). +The IS31 includes 8 pages (or frames) 0-7 and each page consists of 144 bytes +- **bytes 0 - 17** - LED control (on/off). + * 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). * Each byte controls the 8 leds on that pin with bits (8 to 1). -- **18 - 35** - * Blink control. +- **bytes 8 - 35** - Blink control. * Same as LED control above, but sets blink on/off. -- **36 - 143** - * PWM control. One byte per LED, sets PWM from 0 to 255. +- **bytes 36 - 143** - PWM control. + * One byte per LED, sets PWM from 0 to 255. * Same as above, the register alternates, every 8 *bytes* (not bits) between the A & B matrices. ## Led Controller Code -In the Infinity60 project folder, led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off and page 7 for controlling individual leds. The remaining 6 pages (1-6) are free to preset led maps at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c" +In the Infinity60 project folder, led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off. The remaining 7 pages (1-7) are free for preset led maps or single led actions at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c". This code is based on work matt3o and flabbergast did for tmk firmware on the [whitefox](https://github.com/tmk/whitefox). One function is available to directly set leds without the mailbox: ``` write_led_page(page#, array of leds by address, # of leds in array) ``` -This function saves a full page using a supplied array of led locations such as: +This function saves a full page to the controller using a supplied array of led locations such as: ```c uint8_t led_numpad[16] = { 18,21,22,23, @@ -48,13 +46,9 @@ write_led_page(5, led_numpad, 16); Remaining led control is done through the led mailbox using these message types: - **SET_FULL_ROW** (3 bytes) - row#, message type, 8-bit mask. Sets all leds on one pin per the bit mask. -- **OFF_LED** (2 bytes) - message type, led address. Turn off specific led. -- **ON_LED** (2 bytes) - message type, led address. Turn on specific led. -- **TOGGLE_LED** (2 bytes) - message type, led address. Toggle specific led on/off. -- **BLINK_OFF_LED** (2 bytes) - message type, led address. Set blink off for specific led. -- **BLINK_ON_LED** (2 bytes) - message type, led address. Set blink on for specific led. -- **BLINK_TOGGLE_LED** (2 bytes) - message type, led address. Toggle blink for specific led. -- **TOGGLE_ALL** (2 bytes) - message type, not used. Turn on/off full backlight. +- **OFF_LED, ON_LED, TOGGLE_LED** (3 bytes) - message type, led address, and page#. Off/on/toggle specific led. +- **BLINK_OFF_LED, BLINK_ON_LED, BLINK_OFF_LED** (3 bytes) - message type, led address, and page#. Set blink Off/on/toggle for specific led. +- **TOGGLE_ALL** (1 byte) - Turn on/off full backlight. - **TOGGLE_BACKLIGHT** (2 bytes) - message type, on/off. Sets backlight completely off, no leds will display. - **DISPLAY_PAGE** (2 bytes) - message type, page to display. Switch to specific pre-set page. - **RESET_PAGE** (2 bytes) - message type, page to reset. Reset/erase specific page. @@ -68,13 +62,13 @@ Sending an action to the led mailbox is done using chMBPost: chMBPost(&led_mailbox, message, timeout); ``` - &led_mailbox - pointer to led mailbox -- message - up to 4 bytes but most messages use only 2. First byte (LSB) is the message to process, the second byte is type. The third is only used to pass row information in SET_FULL_ROW. The fourth byte is currently unused. --timeout is usually TIME_IMMEDIATE +- message - up to 4 bytes but most messages use only 2. First byte (LSB) is the message type, the remaining three bytes are the message to process. +- timeout is TIME_IMMEDIATE An example: ```c //set the message to be sent. First byte (LSB) is the led address, and second is the message type -msg=(ON_LED << 8) | 42; +msg=(42 << 8) | ON_LED //send msg to the led mailbox chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); @@ -82,12 +76,12 @@ chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); Another: ```c -msg=(BLINK_TOGGLE_LED << 8) | 46; +msg=(46 << 8) | BLINK_TOGGLE_LED chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); ``` Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: ```c -msg=(row<<16) | (SET_FULL_ROW << 8) | (led_pin_byte); +msg=(row<<16) | (led_pin_byte << 8) | SET_FULL_ROW; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); ``` diff --git a/keyboards/infinity60/led.c b/keyboards/infinity60/led.c index d60c76fd8..53147a78a 100644 --- a/keyboards/infinity60/led.c +++ b/keyboards/infinity60/led.c @@ -30,23 +30,23 @@ void led_set(uint8_t usb_led) { if (usb_led & (1<> 24) & 0xFF;//if needed - msg_pin = (msg >> 16) & 0XFF;//if needed (e.g. SET_FULL_ROW) - msg_type = (msg >> 8) & 0xFF; //second byte is msg type - msg_led = (msg) & 0xFF; //first byte is action information + msg_type = msg & 0xFF; //first byte is action information + msg_args[0] = (msg >> 8) & 0xFF; + msg_args[1] = (msg >> 16) & 0XFF; + msg_args[2] = (msg >> 24) & 0xFF; switch (msg_type){ case SET_FULL_ROW: - //write full byte to pin address, msg_pin = pin #, msg_led = byte to write - //writes only to current page - write_led_byte(page_status,msg_pin,msg_led); - break; + //write full byte to pin address, msg_args[1] = pin #, msg_args[0] = 8 bits to write + //writes only to currently displayed page + write_led_byte(page_status, msg_args[1], msg_args[0]); + break; - case OFF_LED: - //on/off/toggle single led, msg_led = row/col of led - set_led_bit(7, control_register_word, msg_led, 0); - is31_write_data (7, control_register_word, 0x02); + case OFF_LED: + //on/off/toggle single led, msg_args[0] = row/col of led + set_led_bit(msg_args[1], control_register_word, msg_args[0], 0); + is31_write_data (msg_args[1], control_register_word, 0x02); break; - case ON_LED: - set_led_bit(7, control_register_word, msg_led, 1); - is31_write_data (7, control_register_word, 0x02); + case ON_LED: + set_led_bit(msg_args[1], control_register_word, msg_args[0], 1); + is31_write_data (msg_args[1], control_register_word, 0x02); break; - case TOGGLE_LED: - set_led_bit(7, control_register_word, msg_led, 2); - is31_write_data (7, control_register_word, 0x02); + case TOGGLE_LED: + set_led_bit(msg_args[1], control_register_word, msg_args[0], 2); + is31_write_data (msg_args[1], control_register_word, 0x02); break; - case BLINK_OFF_LED: - //on/off/toggle single led, msg_led = row/col of led - set_led_bit(7, control_register_word, msg_led, 4); - is31_write_data (7, control_register_word, 0x02); + case BLINK_OFF_LED: + //on/off/toggle single led, msg_args[0] = row/col of led + set_led_bit(msg_args[1], control_register_word, msg_args[0], 4); + is31_write_data (msg_args[1], control_register_word, 0x02); break; - case BLINK_ON_LED: - set_led_bit(7, control_register_word, msg_led, 5); - is31_write_data (7, control_register_word, 0x02); + case BLINK_ON_LED: + set_led_bit(msg_args[1], control_register_word, msg_args[0], 5); + is31_write_data (msg_args[1], control_register_word, 0x02); break; - case BLINK_TOGGLE_LED: - set_led_bit(7, control_register_word, msg_led, 6); - is31_write_data (7, control_register_word, 0x02); + case BLINK_TOGGLE_LED: + set_led_bit(msg_args[1], control_register_word, msg_args[0], 6); + is31_write_data (msg_args[1], control_register_word, 0x02); break; case TOGGLE_ALL: - //msg_led = unused + //turn on/off all leds, msg_args = unused is31_read_register(0, 0x00, &temp); led_control_reg[0] = 0; - //if first byte is on, then toggle frame 0 off + //if first leds are already on, toggle frame 0 off if (temp==0 || page_status > 0) { __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { @@ -252,27 +250,27 @@ page_status = 0; //start frame 0 (all off/on) break; case TOGGLE_BACKLIGHT: - //msg_led = on/off + //msg_args[0] = on/off - //populate the 9 byte rows to be written to each pin, first byte is register (pin) address - if (msg_led == 1) { + //populate 9 byte rows to be written to each pin, first byte is register (pin) address + if (msg_args[0] == 1) { __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); } else { __builtin_memset(pwm_register_array+1, 0, 8); } for(i=0; i<8; i++) { - //first byte is register address, every 0x10 9 bytes is A-register pwm pins + //first byte is register address, every 0x10 9 bytes is A-matrix pwm pins pwm_register_array[0] = 0x24 + (i * 0x10); is31_write_data(0,pwm_register_array,9); } break; case DISPLAY_PAGE: - //msg_led = page to toggle on - if (page_status != msg_led) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_led); - page_status = msg_led; + //msg_args[0] = page to toggle on + if (page_status != msg_args[0]) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_args[0]); + page_status = msg_args[0]; //maintain lock leds led_set(host_keyboard_leds()); @@ -280,24 +278,24 @@ page_status = 0; //start frame 0 (all off/on) break; case RESET_PAGE: - //led_msg = page to reset + //led_args[0] = page to reset led_control_reg[0] = 0; __builtin_memset(led_control_reg+1, 0, 0x12); - is31_write_data(msg_led, led_control_reg, 0x13); + is31_write_data(msg_args[0], led_control_reg, 0x13); break; - + case TOGGLE_NUM_LOCK: - //msg_led = 0 or 1, off/on - set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_led, page_status); + //msg_args[0] = 0 or 1, off/on + set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status); break; case TOGGLE_CAPS_LOCK: - //msg_led = 0 or 1, off/on - set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_led, page_status); + //msg_args[0] = 0 or 1, off/on + set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status); break; case STEP_BRIGHTNESS: - //led_msg = step pwm up or down - switch (msg_led) { + //led_args[0] = step up (1) or down (0) + switch (msg_args[0]) { case 0: if (pwm_step_status == 0) { pwm_step_status = 4; @@ -305,7 +303,7 @@ page_status = 0; //start frame 0 (all off/on) pwm_step_status--; } break; - + case 1: if (pwm_step_status == 4) { pwm_step_status = 0; @@ -316,7 +314,7 @@ page_status = 0; //start frame 0 (all off/on) } //populate 8 byte arrays to write on each pin - //first byte is register address, every 0x10 9 bytes are A-register pwm pins + //first byte is register address, every 0x10 9 bytes are A-matrix pwm pins __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); for(i=0; i<8; i++) { @@ -334,9 +332,9 @@ page_status = 0; //start frame 0 (all off/on) void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action) { //returns 2 bytes: led control register address and byte to write - //0 - bit off, 1 - bit on, 2 - toggle bit + //action: 0 - off, 1 - on, 2 - toggle, 4 - blink on, 5 - blink off, 6 - toggle blink - uint8_t control_reg_addr, column_bit, column_byte, bit_temp, blink_on; + uint8_t control_reg_addr, column_bit, column_byte, temp, blink_bit; //check for valid led address if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { @@ -344,17 +342,17 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint } //check for blink bit - blink_on = action>>2; + blink_bit = action>>2; action &= ~(1<<2); //strip blink bit //first byte is led control register address 0x00 - //msg_led tens column is pin#, ones column is bit position in 8-bit mask - control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-register is every other byte - control_reg_addr += blink_on == 1 ? 0x12 : 0x00;//shift 12 bytes to blink register + //led_addr tens column is pin#, ones column is bit position in 8-bit mask + control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte + control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register - is31_read_register(page, control_reg_addr, &bit_temp);//maintain status of leds on this byte + is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte column_bit = 1<<(led_addr % 10 - 1); - column_byte = bit_temp; + column_byte = temp; switch(action) { case 0: @@ -376,7 +374,7 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { uint8_t led_control_word[2] = {0};//register address and on/off byte - led_control_word[0] = (row - 1 ) * 0x02;// A-register is every other byte + led_control_word[0] = (row - 1 ) * 0x02;// A-matrix is every other byte led_control_word[1] = led_byte; is31_write_data(page, led_control_word, 0x02); } @@ -389,7 +387,7 @@ void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { __builtin_memset(led_control_register,0,13); for(i=0;i Date: Sun, 14 May 2017 16:07:44 -0400 Subject: Initial push of my keymap --- keyboards/s60_x/keymaps/bluebear/Makefile | 18 ++++ keyboards/s60_x/keymaps/bluebear/config.h | 122 +++++++++++++++++++++++ keyboards/s60_x/keymaps/bluebear/keymap.c | 154 +++++++++++++++++++++++++++++ keyboards/s60_x/keymaps/bluebear/readme.md | 25 +++++ 4 files changed, 319 insertions(+) create mode 100644 keyboards/s60_x/keymaps/bluebear/Makefile create mode 100644 keyboards/s60_x/keymaps/bluebear/config.h create mode 100644 keyboards/s60_x/keymaps/bluebear/keymap.c create mode 100644 keyboards/s60_x/keymaps/bluebear/readme.md (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/Makefile b/keyboards/s60_x/keymaps/bluebear/Makefile new file mode 100644 index 000000000..dfefad39d --- /dev/null +++ b/keyboards/s60_x/keymaps/bluebear/Makefile @@ -0,0 +1,18 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = yes # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +TAP_DANCE_ENABLE = no # Enable tap dancing keys + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/s60_x/keymaps/bluebear/config.h b/keyboards/s60_x/keymaps/bluebear/config.h new file mode 100644 index 000000000..2cf96383c --- /dev/null +++ b/keyboards/s60_x/keymaps/bluebear/config.h @@ -0,0 +1,122 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER Sentraq +#define PRODUCT S60-RGB +#define DESCRIPTION QMK keyboard firmware for Sentraq S60-RGB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 3 + +/* Underlight configuration + */ + +#define RGB_DI_PIN F6 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 10 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +// For Tap Dancing + +#define TAPPING_TOGGLE 1 +#define TAPPING_TERM 300 + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c new file mode 100644 index 000000000..3861ad04f --- /dev/null +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -0,0 +1,154 @@ +#include "s60_x.h" + +// Keyboard Layers + +enum keyboard_layers { + BASE = 0, //Base Layer + ARROW, //Arrow/FN Layer + MOUSE, //Mouse Layer + MIDI, //Midi Layer +}; + +// Midi Chord Keycodes + +enum midi_chord_keycodes { + + //Major Chords + + MI_CH_C = SAFE_RANGE, + MI_CH_Cs, + MI_CH_Db = MI_CH_Cs, + MI_CH_D, + MI_CH_Ds, + MI_CH_Eb = MI_CH_Ds, + MI_CH_E, + MI_CH_F, + MI_CH_Fs, + MI_CH_Gb = MI_CH_Fs, + MI_CH_G, + MI_CH_Gs, + MI_CH_Ab = MI_CH_Gs, + MI_CH_A, + MI_CH_As, + MI_CH_Bb = MI_CH_As, + MI_CH_B, + + //Minor Chords + + MI_CH_Cm, + MI_CH_Csm, + MI_CH_Dbm = MI_CH_Csm, + MI_CH_Dm, + MI_CH_Dsm, + MI_CH_Ebm = MI_CH_Dsm, + MI_CH_Em, + MI_CH_Fm, + MI_CH_Fsm, + MI_CH_Gbm = MI_CH_Fsm, + MI_CH_Gm, + MI_CH_Gsm, + MI_CH_Abm = MI_CH_Gsm, + MI_CH_Am, + MI_CH_Asm, + MI_CH_Bbm = MI_CH_Asm, + MI_CH_Bm, +}; + +//Keymaps + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0: Custom Dvorak/HHKBish Base Layer + + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │ \ │ ` │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │BSPC │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CT/ES│ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │▒▒▒▒▒│CT/EN│█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSPO │▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSPC │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │MO(2)│L_GUI│L_ALT│█████│█████│█████│SPFN1│█████│█████│█████│AG/AP│R_GUI│CT|S │CT|AL│█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [BASE] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NO, MT(MOD_RCTL, KC_ENT), \ + KC_LSPO, KC_NO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_NO, KC_RSPC, KC_NO, \ + MO(2), KC_LGUI, KC_LALT, LT(1, KC_SPACE), ALGR_T(KC_APP), KC_RGUI, OSM(MOD_LCTL | MOD_LSFT), OSM(MOD_LCTL | MOD_LALT) + ), + + /* 1: Arrow/Missing Keys Layer + + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │TG(3)│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPS │ │ │ │ │ │ │PGUP │ UP │HOME │ END │ │ INS │ DEL │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │ │ │ │ │LEFT │DOWN │RIGHT│ │ │▒▒▒▒▒│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │▒▒▒▒▒│ │ │ │ │ │SPACE│PGDN │PSCR │SLCK │PAUSE│▒▒▒▒▒│ │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [ARROW] = KEYMAP( + TG(3), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ + KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + /* 2: Mouse Keys Layer + + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │RESET│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ │ │ │ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │ │ │ │ │MS_LT│MS_DN│MS_RT│WH_DN│BTN3 │▒▒▒▒▒│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ PWR │█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [MOUSE] = KEYMAP( + + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS, KC_NO, KC_NO, KC_POWER, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* 3: Midi Layer + + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │TG(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│ │ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ C# │ D# │ │ F# │ G# │ A# │ │ C# │ D# │ │ │ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │OCT- │ C │ D │ E │ F │ G │ A │ B │ C │ D │ E │ F │▒▒▒▒▒│OCT+ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ Am │▒▒▒▒▒│ Em │ Bm │ F#m │ C#m │ G#m │ D#m │ Bbm │ Fm │ Cm │ Gm │▒▒▒▒▒│ Dm │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│A-OFF│█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [MIDI] = KEYMAP( + TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, KC_NO, KC_NO, \ + KC_NO, KC_NO, MI_Cs, MI_Ds, KC_NO, MI_Fs, MI_Gs, MI_As, KC_NO, MI_Cs_1, MI_Ds_1, KC_NO, KC_NO, KC_NO, \ + MI_OCTD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, KC_NO, MI_OCTU, \ + MI_CH_Am, KC_NO, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm, MI_CH_Csm, MI_CH_Gsm, MI_CH_Dsm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, KC_NO, MI_CH_Dm, KC_NO, \ + KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO + ), + +}; diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md new file mode 100644 index 000000000..579683abc --- /dev/null +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -0,0 +1,25 @@ +## Bluebear’s custom S60X layout + +Custom keyboard layout for my S60X, my first ever custom mechanical keyboard kit. + +This layout was inspired in part by the HHKB line of keyboards and a quest to find the perfect ergonomic, logical layout for what I do. If you like this layout, please feel free to use it, modify it and share it. + +## Base Layer + +-Hold left control key for LCTL, and tap it for ESC +-Hold enter key for RCTL and tap for ENT +-Hold the space key to momentarily switch to [ARROW] layer +-Left bottom key acts as momentary switch to the [MOUSE] layer +-Hold right alt key for AltGr and tap for APP(which I have mapped to Compose in OS) +-Hold left shift key for LSFT and tap for ( (Space Cadet style) +-Hold right shift key for RSFT and tap for ) (Space Cadet style) +-Tap key on bottom row, second from the right (where APP usually is) to get CTL-Shift (one shot modifier - next key pressed will be modified by ctl-shift) +-Tap key on bottom right to get CTL-Alt (one shot modifier - next key pressed will be modified by ctl-alt) + +## Mouse Layer + +-Hitting the escape key in this layer will give RESET, which puts the controller into dfu mode for flashing firmware onto it +-Hitting the space key in this layer is like hitting power button on computer + + + -- cgit v1.2.3-24-g4f1b From ee0b34feaf99debbc47fe736001181dffa3cd6b1 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Sun, 14 May 2017 20:07:35 -0400 Subject: Started working on custom midi chord function --- keyboards/s60_x/keymaps/bluebear/keymap.c | 68 +++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 3861ad04f..f963043c1 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -11,6 +11,13 @@ enum keyboard_layers { // Midi Chord Keycodes +bool midi_chord(uint8_t mode, uint16_t root); + +enum midi_chord_modes { + major = 0, + minor, +}; + enum midi_chord_keycodes { //Major Chords @@ -152,3 +159,64 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; + +// Midi Chord Function + +bool midi_chord(uint8_t mode, uint16_t root) { + switch (mode) { + case 0: + uint8_t channel = midi_config.channel; + uint8_t tone = root - MIDI_TONE_MIN; + uint8_t velocity = compute_velocity(midi_config.velocity); + if (record->event.pressed) { + uint8_t root_note = midi_compute_note(root); + uint8_t major_third = midi_compute_note(root) + 4; + uint8_t fifth = midi_compute_note(root) + 7; + midi_send_noteon(&midi_device, channel, root_note, velocity); + midi_send_noteon(&midi_device, channel, major_third, velocity); + midi_send_noteon(&midi_device, channel, fifth, velocity); + tone_status[tone] = root_note; + } + else { + uint8_t root_note = tone_status[tone]; + uint8_t major_third = root_note + 4; + uint8_t fifth = root_note + 7; + if (root_note != MIDI_INVALID_NOTE) + { + midi_send_noteoff(&midi_device, channel, root_note, velocity); + midi_send_noteoff(&midi_device, channel, major_third, velocity); + midi_send_noteoff(&midi_device, channel, fifth, velocity); + } + tone_status[tone] = MIDI_INVALID_NOTE; + } + return false; + case 1: + uint8_t channel = midi_config.channel; + uint8_t tone = root - MIDI_TONE_MIN; + uint8_t velocity = compute_velocity(midi_config.velocity); + if (record->event.pressed) { + uint8_t root_note = midi_compute_note(root); + uint8_t minor_third = midi_compute_note(root) + 3; + uint8_t fifth = midi_compute_note(root) + 7; + midi_send_noteon(&midi_device, channel, root_note, velocity); + midi_send_noteon(&midi_device, channel, major_third, velocity); + midi_send_noteon(&midi_device, channel, fifth, velocity); + tone_status[tone] = root_note; + } + else { + uint8_t root_note = tone_status[tone]; + uint8_t minor_third = root_note + 3; + uint8_t fifth = root_note + 7; + if (root_note != MIDI_INVALID_NOTE) + { + midi_send_noteoff(&midi_device, channel, root_note, velocity); + midi_send_noteoff(&midi_device, channel, minor_third, velocity); + midi_send_noteoff(&midi_device, channel, fifth, velocity); + } + tone_status[tone] = MIDI_INVALID_NOTE; + } + return false; + }; + return true; +}; + -- cgit v1.2.3-24-g4f1b From 814b570ba1f2f9a12996c50844b7c8861ec1e919 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 15 May 2017 22:56:33 -0400 Subject: Working on keymap.c file... --- keyboards/s60_x/keymaps/bluebear/keymap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index f963043c1..124c482b2 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -9,15 +9,16 @@ enum keyboard_layers { MIDI, //Midi Layer }; -// Midi Chord Keycodes +// Midi Chord Keycodes +/* bool midi_chord(uint8_t mode, uint16_t root); enum midi_chord_modes { major = 0, minor, }; - +*/ enum midi_chord_keycodes { //Major Chords @@ -160,6 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +/* // Midi Chord Function bool midi_chord(uint8_t mode, uint16_t root) { @@ -199,7 +201,7 @@ bool midi_chord(uint8_t mode, uint16_t root) { uint8_t minor_third = midi_compute_note(root) + 3; uint8_t fifth = midi_compute_note(root) + 7; midi_send_noteon(&midi_device, channel, root_note, velocity); - midi_send_noteon(&midi_device, channel, major_third, velocity); + midi_send_noteon(&midi_device, channel, minor_third, velocity); midi_send_noteon(&midi_device, channel, fifth, velocity); tone_status[tone] = root_note; } @@ -219,4 +221,4 @@ bool midi_chord(uint8_t mode, uint16_t root) { }; return true; }; - +*/ -- cgit v1.2.3-24-g4f1b From 26c6f6a85c9c16a3be27e6c61609b3da99ec3f73 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Tue, 16 May 2017 22:08:45 -0400 Subject: Added Space Cadet Rollover Disable to config.h --- keyboards/s60_x/keymaps/bluebear/config.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/config.h b/keyboards/s60_x/keymaps/bluebear/config.h index 2cf96383c..94438bdc9 100644 --- a/keyboards/s60_x/keymaps/bluebear/config.h +++ b/keyboards/s60_x/keymaps/bluebear/config.h @@ -119,4 +119,7 @@ along with this program. If not, see . /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ #define MIDI_TONE_KEYCODE_OCTAVES 2 +// Space Cadet Rollover - if set, allows to tap opposite shift key to cancel erroneous press +#define DISABLE_SPACE_CADET_ROLLOVER + #endif -- cgit v1.2.3-24-g4f1b From b766407cbe07e78f5cf5ce2ec77694541d598e0e Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Sun, 21 May 2017 08:40:42 -0400 Subject: Continuing work on keymap.c --- keyboards/s60_x/keymaps/bluebear/keymap.c | 450 +++++++++++++++++++++++++++--- 1 file changed, 416 insertions(+), 34 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 124c482b2..0b3b8b65b 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -4,62 +4,140 @@ enum keyboard_layers { BASE = 0, //Base Layer - ARROW, //Arrow/FN Layer + ARROWFN, //Arrow/FN Layer MOUSE, //Mouse Layer MIDI, //Midi Layer + MORSE, //Morse Code Layer }; +// Midi Chords -// Midi Chord Keycodes -/* -bool midi_chord(uint8_t mode, uint16_t root); - -enum midi_chord_modes { +enum midi_chord_modes { //ACTION_FUNCTION id major = 0, minor, }; -*/ + +enum midi_chord_root { //ACTION_FUNCTION opt + C = 0, + Cs, + Db = Cs, + D, + Ds, + Eb = Ds, + E, + F, + Fs, + Gb = Fs, + G, + Gs, + Ab = Gs, + A, + As, + Bb = As, + B, +}; + enum midi_chord_keycodes { //Major Chords - MI_CH_C = SAFE_RANGE, - MI_CH_Cs, + MI_CH_C = ACTION_FUNCTION(0, 0), + MI_CH_Cs = ACTION_FUNCTION(0, 1), MI_CH_Db = MI_CH_Cs, - MI_CH_D, - MI_CH_Ds, + MI_CH_D = ACTION_FUNCTION(0, 2), + MI_CH_Ds = ACTION_FUNCTION(0, 3), MI_CH_Eb = MI_CH_Ds, - MI_CH_E, - MI_CH_F, - MI_CH_Fs, + MI_CH_E = ACTION_FUNCTION(0, 4), + MI_CH_F = ACTION_FUNCTION(0, 5), + MI_CH_Fs = ACTION_FUNCTION(0, 6), MI_CH_Gb = MI_CH_Fs, - MI_CH_G, - MI_CH_Gs, + MI_CH_G = ACTION_FUNCTION(0, 7), + MI_CH_Gs = ACTION_FUNCTION(0, 8), MI_CH_Ab = MI_CH_Gs, - MI_CH_A, - MI_CH_As, + MI_CH_A = ACTION_FUNCTION(0, 9), + MI_CH_As = ACTION_FUNCTION(0, 10), MI_CH_Bb = MI_CH_As, - MI_CH_B, + MI_CH_B = ACTION_FUNCTION(0, 11), //Minor Chords - MI_CH_Cm, - MI_CH_Csm, + MI_CH_Cm = ACTION_FUNCTION(1, 0), + MI_CH_Csm = ACTION_FUNCTION(1, 1), MI_CH_Dbm = MI_CH_Csm, - MI_CH_Dm, - MI_CH_Dsm, + MI_CH_Dm = ACTION_FUNCTION(1, 2), + MI_CH_Dsm = ACTION_FUNCTION(1, 3), MI_CH_Ebm = MI_CH_Dsm, - MI_CH_Em, - MI_CH_Fm, - MI_CH_Fsm, + MI_CH_Em = ACTION_FUNCTION(1, 4), + MI_CH_Fm = ACTION_FUNCTION(1, 5), + MI_CH_Fsm = ACTION_FUNCTION(1, 6), MI_CH_Gbm = MI_CH_Fsm, - MI_CH_Gm, - MI_CH_Gsm, + MI_CH_Gm = ACTION_FUNCTION(1, 7), + MI_CH_Gsm= ACTION_FUNCTION(1, 8), MI_CH_Abm = MI_CH_Gsm, - MI_CH_Am, - MI_CH_Asm, + MI_CH_Am = ACTION_FUNCTION(1, 9), + MI_CH_Asm = ACTION_FUNCTION(1, 10), MI_CH_Bbm = MI_CH_Asm, - MI_CH_Bm, + MI_CH_Bm = ACTION_FUNCTION(1, 11), +}; + +//Morse Code Macro Keys + +enum morse_macros { + MC_0 = M(0), + MC_1 = M(1), + MC_2 = M(2), + MC_3 = M(3), + MC_4 = M(4), + MC_5 = M(5), + MC_6 = M(6), + MC_7 = M(7), + MC_8 = M(8), + MC_9 = M(9), + MC_A = M(10), + MC_B = M(11), + MC_C = M(12), + MC_D = M(13), + MC_E = M(14), + MC_F = M(15), + MC_G = M(16), + MC_H = M(17), + MC_I = M(18), + MC_J = M(19), + MC_K = M(20), + MC_L = M(21), + MC_M = M(22), + MC_N = M(23), + MC_O = M(24), + MC_P = M(25), + MC_Q = M(26), + MC_R = M(27), + MC_S = M(28), + MC_T = M(29), + MC_U = M(30), + MC_V = M(31), + MC_W = M(32), + MC_X = M(33), + MC_Y = M(34), + MC_Z = M(35), + MC_DOT = M(36), + MC_COMM = M(37), + MC_QUES = M(38), + MC_APOS = M(39), + MC_EXCL = M(40), + MC_SLSH = M(41), + MC_PARO = M(42), + MC_PARC = M(43), + MC_AMP = M(44), + MC_COL = M(45), + MC_SCLN = M(46), + MC_EQL = M(47), + MC_PLUS = M(48), + MC_MINS = M(49), + MC_QUOT = M(50), + MC_DOLR = M(51), + MC_AT = M(52), + MC_UNDS = M(53), + MC_SPACE = M(54), }; //Keymaps @@ -89,7 +167,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(2), KC_LGUI, KC_LALT, LT(1, KC_SPACE), ALGR_T(KC_APP), KC_RGUI, OSM(MOD_LCTL | MOD_LSFT), OSM(MOD_LCTL | MOD_LALT) ), - /* 1: Arrow/Missing Keys Layer + /* 1: Arrow/FN Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │TG(3)│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ @@ -104,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [ARROW] = KEYMAP( + [ARROWFN] = KEYMAP( TG(3), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ @@ -159,12 +237,316 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO ), + /* 4: Morse Code Layer + + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │BSPC │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │▒▒▒▒▒│ENTER│█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │SHIFT│▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│SHIFT│▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│SPACE│█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [MORSE] = KEYMAP( + KC_NO, MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ + KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, KC_RSFT, KC_NO, \ + KC_NO, KC_NO, KC_NO, MC_SPACE, KC_NO, KC_NO, KC_NO, KC_NO + ), + +}; + +// Morse Code Macros + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: //Number 0 + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- + } + break; + case 1: //Number 1 + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.---- + } + break; + case 2: //Number 2 + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //..--- + } + break; + case 3: // Number 3 + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- + } + break; + case 4: //Number 4 + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //....- + } + break; + case 5: //Number 5 + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... + } + break; + case 6: //Number 6 + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... + } + break; + case 7: //Number 7 + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //--... + } + break; + case 8: //Number 8 + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. + } + break; + case 9: //Number 9 + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //----. + } + break; + case 10: //Letter A + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- + } + break; + case 11: //Letter B + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... + } + break; + case 12: //Letter C + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. + } + break; + case 13: //Letter D + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. + } + break; + case 14: //Letter E + if (record->event.pressed) { + return MACRO(T(DOT), T(SPACE), END); //. + } + break; + case 15: //Letter F + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. + } + break; + case 16: //Letter G + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. + } + break; + case 17: //Letter H + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... + } + break; + case 18: //Letter I + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. + } + break; + case 19: //Letter J + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- + } + break; + case 20: //Letter K + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- + } + break; + case 21: //Letter L + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. + } + break; + case 22: //Letter M + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- + } + break; + case 23: //Letter N + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. + } + break; + case 24: //Letter O + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- + } + break; + case 25: //Letter P + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. + } + break; + case 26: //Letter Q + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- + } + break; + case 27: //Letter R + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. + } + break; + case 28: //Letter S + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... + } + break; + case 29: //Letter T + if (record->event.pressed) { + return MACRO(T(MINS), T(SPACE), END); //- + } + break; + case 30: //Letter U + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- + } + break; + case 31: //Letter V + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- + } + break; + case 32: //Letter W + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- + } + break; + case 33: //Letter X + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- + } + break; + case 34: //Letter Y + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- + } + break; + case 35: //Letter Z + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. + } + break; + case 36: //Punctuation . + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- + } + break; + case 37: //Punctuation , + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- + } + break; + case 38: //Punctuation ? + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. + } + break; + case 39: //Punctuation ' + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-....- + } + break; + case 40: //Punctuation ! + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- + } + break; + case 41: //Punctuation / + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-..-. + } + break; + case 42: //Punctuation ( + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. + } + break; + case 43: //Punctuation ) + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- + } + break; + case 44: //Punctuation & + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... + } + break; + case 45: //Punctuation : + if (record->event.pressed) { + return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... + } + break; + case 46: //Punctuation ; + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-.-. + } + break; + case 47: //Punctuation = + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-...- + } + break; + case 48: //Punctuation + + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. + } + break; + case 49: //Punctuation - + if (record->event.pressed) { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-....- + } + break; + case 50: //Punctuation " + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. + } + break; + case 51: //Punctuation $ + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- + } + break; + case 52: //Punctuation @ + if (record->event.pressed) { + return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. + } + break; + case 53: //Punctuation _ + if (record->event.pressed) { + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- + case 54: //Morse Space + if (record->event.pressed) { + return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse + } + break; + } + return MACRO_NONE; }; /* // Midi Chord Function -bool midi_chord(uint8_t mode, uint16_t root) { switch (mode) { case 0: uint8_t channel = midi_config.channel; -- cgit v1.2.3-24-g4f1b From 06433eb1a0563fe8c17bdd31c42d5f6b94a6e508 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Sun, 21 May 2017 22:37:20 -0400 Subject: More work on keymap.c and config.h --- keyboards/s60_x/keymaps/bluebear/config.h | 5 +- keyboards/s60_x/keymaps/bluebear/keymap.c | 296 +++++++++++++++++++----------- 2 files changed, 197 insertions(+), 104 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/config.h b/keyboards/s60_x/keymaps/bluebear/config.h index 94438bdc9..5c0d08833 100644 --- a/keyboards/s60_x/keymaps/bluebear/config.h +++ b/keyboards/s60_x/keymaps/bluebear/config.h @@ -121,5 +121,8 @@ along with this program. If not, see . // Space Cadet Rollover - if set, allows to tap opposite shift key to cancel erroneous press #define DISABLE_SPACE_CADET_ROLLOVER - + +// Prevent stuck modifiers +#define PREVENT_STUCK_MODIFIERS + #endif diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 0b3b8b65b..d383d2e28 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -3,7 +3,7 @@ // Keyboard Layers enum keyboard_layers { - BASE = 0, //Base Layer + BASE, //Base Layer ARROWFN, //Arrow/FN Layer MOUSE, //Mouse Layer MIDI, //Midi Layer @@ -13,12 +13,12 @@ enum keyboard_layers { // Midi Chords enum midi_chord_modes { //ACTION_FUNCTION id - major = 0, + major, minor, }; enum midi_chord_root { //ACTION_FUNCTION opt - C = 0, + C, Cs, Db = Cs, D, @@ -41,43 +41,43 @@ enum midi_chord_keycodes { //Major Chords - MI_CH_C = ACTION_FUNCTION(0, 0), - MI_CH_Cs = ACTION_FUNCTION(0, 1), + MI_CH_C = ACTION_FUNCTION_OPT(major,C), + MI_CH_Cs = ACTION_FUNCTION_OPT(major,Cs), MI_CH_Db = MI_CH_Cs, - MI_CH_D = ACTION_FUNCTION(0, 2), - MI_CH_Ds = ACTION_FUNCTION(0, 3), + MI_CH_D = ACTION_FUNCTION_OPT(major,D), + MI_CH_Ds = ACTION_FUNCTION_OPT(major,Ds), MI_CH_Eb = MI_CH_Ds, - MI_CH_E = ACTION_FUNCTION(0, 4), - MI_CH_F = ACTION_FUNCTION(0, 5), - MI_CH_Fs = ACTION_FUNCTION(0, 6), + MI_CH_E = ACTION_FUNCTION_OPT(major,E), + MI_CH_F = ACTION_FUNCTION_OPT(major,F), + MI_CH_Fs = ACTION_FUNCTION_OPT(major,Fs), MI_CH_Gb = MI_CH_Fs, - MI_CH_G = ACTION_FUNCTION(0, 7), - MI_CH_Gs = ACTION_FUNCTION(0, 8), + MI_CH_G = ACTION_FUNCTION_OPT(major,G), + MI_CH_Gs = ACTION_FUNCTION_OPT(major,Gs), MI_CH_Ab = MI_CH_Gs, - MI_CH_A = ACTION_FUNCTION(0, 9), - MI_CH_As = ACTION_FUNCTION(0, 10), + MI_CH_A = ACTION_FUNCTION_OPT(major,A), + MI_CH_As = ACTION_FUNCTION_OPT(major,As), MI_CH_Bb = MI_CH_As, - MI_CH_B = ACTION_FUNCTION(0, 11), + MI_CH_B = ACTION_FUNCTION_OPT(major,B), //Minor Chords - MI_CH_Cm = ACTION_FUNCTION(1, 0), - MI_CH_Csm = ACTION_FUNCTION(1, 1), + MI_CH_Cm = ACTION_FUNCTION_OPT(minor,C), + MI_CH_Csm = ACTION_FUNCTION_OPT(minor,Cs), MI_CH_Dbm = MI_CH_Csm, - MI_CH_Dm = ACTION_FUNCTION(1, 2), - MI_CH_Dsm = ACTION_FUNCTION(1, 3), + MI_CH_Dm = ACTION_FUNCTION_OPT(minor,D), + MI_CH_Dsm = ACTION_FUNCTION_OPT(minor,Ds), MI_CH_Ebm = MI_CH_Dsm, - MI_CH_Em = ACTION_FUNCTION(1, 4), - MI_CH_Fm = ACTION_FUNCTION(1, 5), - MI_CH_Fsm = ACTION_FUNCTION(1, 6), + MI_CH_Em = ACTION_FUNCTION_OPT(minor,E), + MI_CH_Fm = ACTION_FUNCTION_OPT(minor,F), + MI_CH_Fsm = ACTION_FUNCTION_OPT(minor,Fs), MI_CH_Gbm = MI_CH_Fsm, - MI_CH_Gm = ACTION_FUNCTION(1, 7), - MI_CH_Gsm= ACTION_FUNCTION(1, 8), + MI_CH_Gm = ACTION_FUNCTION_OPT(minor,G), + MI_CH_Gsm= ACTION_FUNCTION_OPT(minor,Gs), MI_CH_Abm = MI_CH_Gsm, - MI_CH_Am = ACTION_FUNCTION(1, 9), - MI_CH_Asm = ACTION_FUNCTION(1, 10), + MI_CH_Am = ACTION_FUNCTION_OPT(minor,A), + MI_CH_Asm = ACTION_FUNCTION_OPT(minor,As), MI_CH_Bbm = MI_CH_Asm, - MI_CH_Bm = ACTION_FUNCTION(1, 11), + MI_CH_Bm = ACTION_FUNCTION_OPT(minor,B), }; //Morse Code Macro Keys @@ -166,11 +166,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSPO, KC_NO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_NO, KC_RSPC, KC_NO, \ MO(2), KC_LGUI, KC_LALT, LT(1, KC_SPACE), ALGR_T(KC_APP), KC_RGUI, OSM(MOD_LCTL | MOD_LSFT), OSM(MOD_LCTL | MOD_LALT) ), - + /* 1: Arrow/FN Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │TG(3)│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ + │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │TO(3)│TO(4)│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │CAPS │ │ │ │ │ │ │PGUP │ UP │HOME │ END │ │ INS │ DEL │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -183,17 +183,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [ARROWFN] = KEYMAP( - TG(3), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(4), \ + KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), /* 2: Mouse Keys Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │RESET│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ │ │ │ │ + │RESET│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -217,7 +217,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 3: Midi Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │TG(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│ │ │ + │TO(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ C# │ D# │ │ F# │ G# │ A# │ │ C# │ D# │ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -240,7 +240,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 4: Morse Code Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ + │TO(0)│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │BSPC │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -253,19 +253,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [MORSE] = KEYMAP( - KC_NO, MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ - KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ - KC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, KC_RSFT, KC_NO, \ - KC_NO, KC_NO, KC_NO, MC_SPACE, KC_NO, KC_NO, KC_NO, KC_NO - ), + TO(0), MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TAB, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ + KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, KC_RSFT, KC_NO, \ + KC_NO, KC_NO, KC_NO, MC_SPACE, KC_NO, KC_NO, KC_NO, KC_NO + ), }; // Morse Code Macros -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case 0: //Number 0 if (record->event.pressed) { @@ -319,131 +318,209 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 10: //Letter A if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- } break; case 11: //Letter B if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... } break; case 12: //Letter C if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. } break; case 13: //Letter D if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. } break; case 14: //Letter E if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(SPACE), END); //. } break; case 15: //Letter F if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. } break; case 16: //Letter G if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. } break; case 17: //Letter H - if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); } + return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... + } break; case 18: //Letter I if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. } break; case 19: //Letter J if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- } break; case 20: //Letter K if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- } break; case 21: //Letter L if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. } break; case 22: //Letter M if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- } break; case 23: //Letter N if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. } break; case 24: //Letter O if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- } break; case 25: //Letter P if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. } break; case 26: //Letter Q if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- } break; case 27: //Letter R if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. } break; case 28: //Letter S if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... } break; case 29: //Letter T if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(SPACE), END); //- } break; case 30: //Letter U if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- } break; case 31: //Letter V if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- } break; case 32: //Letter W if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- } break; case 33: //Letter X if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- } break; case 34: //Letter Y if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- } break; case 35: //Letter Z if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. } break; @@ -535,6 +612,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 53: //Punctuation _ if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- + } + break; case 54: //Morse Space if (record->event.pressed) { return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse @@ -547,60 +626,71 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) /* // Midi Chord Function - switch (mode) { - case 0: - uint8_t channel = midi_config.channel; - uint8_t tone = root - MIDI_TONE_MIN; - uint8_t velocity = compute_velocity(midi_config.velocity); - if (record->event.pressed) { - uint8_t root_note = midi_compute_note(root); - uint8_t major_third = midi_compute_note(root) + 4; - uint8_t fifth = midi_compute_note(root) + 7; - midi_send_noteon(&midi_device, channel, root_note, velocity); - midi_send_noteon(&midi_device, channel, major_third, velocity); - midi_send_noteon(&midi_device, channel, fifth, velocity); - tone_status[tone] = root_note; - } - else { - uint8_t root_note = tone_status[tone]; - uint8_t major_third = root_note + 4; - uint8_t fifth = root_note + 7; - if (root_note != MIDI_INVALID_NOTE) - { - midi_send_noteoff(&midi_device, channel, root_note, velocity); - midi_send_noteoff(&midi_device, channel, major_third, velocity); - midi_send_noteoff(&midi_device, channel, fifth, velocity); - } - tone_status[tone] = MIDI_INVALID_NOTE; - } - return false; - case 1: - uint8_t channel = midi_config.channel; - uint8_t tone = root - MIDI_TONE_MIN; - uint8_t velocity = compute_velocity(midi_config.velocity); - if (record->event.pressed) { - uint8_t root_note = midi_compute_note(root); - uint8_t minor_third = midi_compute_note(root) + 3; - uint8_t fifth = midi_compute_note(root) + 7; - midi_send_noteon(&midi_device, channel, root_note, velocity); - midi_send_noteon(&midi_device, channel, minor_third, velocity); - midi_send_noteon(&midi_device, channel, fifth, velocity); - tone_status[tone] = root_note; - } - else { - uint8_t root_note = tone_status[tone]; - uint8_t minor_third = root_note + 3; - uint8_t fifth = root_note + 7; - if (root_note != MIDI_INVALID_NOTE) - { - midi_send_noteoff(&midi_device, channel, root_note, velocity); - midi_send_noteoff(&midi_device, channel, minor_third, velocity); - midi_send_noteoff(&midi_device, channel, fifth, velocity); - } - tone_status[tone] = MIDI_INVALID_NOTE; - } - return false; - }; - return true; +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +uint16_t root_note; +uint8_t channel = midi_config.channel; +uint8_t velocity = compute_velocity(midi_config.velocity); +switch (opt) { +case 0: //Root note C +root_note = MI_C; +case 1: //Root note C#/Db +root_note = MI_Cs; +case 2: // Root note D +root_note = MI_D; +case 3: // Root note D#/Eb +root_note = MI_Ds; +case 4: // Root note E +root_note = MI_E; +case 5: // Root note F +root_note = MI_F; +case 6: // Root note F#/Gb +root_note = MI_Fs; +case 7: // Root note G +root_note = MI_G; +case 8: // Root note G#/Ab +root_note = MI_Gs; +case 9: // Root note A +root_note = MI_A; +case 10: // Root note A#/Bb +root_note = MI_As; +case 11: // Root note B +root_note = MI_B; +switch (id) { +uint8_t tone = root_note - MIDI_TONE_MIN; +uint8_t root = midi_compute_note(root_note); +uint8_t major_third = midi_compute_note(root_note) + 4; +uint8_t minor_third = midi_compute_note(root_note) + 3; +uint8_t fifth = midi_compute_note(root_note) + 7; +case 0: //Major chord +if (record->event.pressed) { +midi_send_noteon(&midi_device, channel, root, velocity); +midi_send_noteon(&midi_device, channel, major_third, velocity); +midi_send_noteon(&midi_device, channel, fifth, velocity); +tone_status[tone] = root; +} +else { +uint8_t root = tone_status[tone]; +if (root != MIDI_INVALID_NOTE) +{ +midi_send_noteoff(&midi_device, channel, root, velocity); +} +tone_status[tone] = MIDI_INVALID_NOTE; +} +case 1: //Minor chord +if (record->event.pressed) { +midi_send_noteon(&midi_device, channel, root_note, velocity); +midi_send_noteon(&midi_device, channel, minor_third, velocity); +midi_send_noteon(&midi_device, channel, fifth, velocity); +} +else { +uint8_t root = tone_status[tone]; +if (root != MIDI_INVALID_NOTE) +{ +midi_send_noteoff(&midi_device, channel, root, velocity); +} +tone_status[tone] = MIDI_INVALID_NOTE; +} +} +} }; */ -- cgit v1.2.3-24-g4f1b From 4d783d0e69444a660c53c95e83bf6ca011bc6c8e Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 22 May 2017 23:30:25 -0400 Subject: More work on my keymap.c and added .png images of my different layers. --- .../bluebear/S60X-Bluebear-ARROWFN-Layer.png | Bin 0 -> 17938 bytes .../keymaps/bluebear/S60X-Bluebear-BASE-Layer.png | Bin 0 -> 28068 bytes .../keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png | Bin 0 -> 21329 bytes .../keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png | Bin 0 -> 14330 bytes .../keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png | Bin 0 -> 16119 bytes keyboards/s60_x/keymaps/bluebear/keymap.c | 219 +++++++++++---------- 6 files changed, 120 insertions(+), 99 deletions(-) create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png new file mode 100644 index 000000000..a7c6df504 Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png new file mode 100644 index 000000000..e77287a0f Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png new file mode 100644 index 000000000..c8df0a9e9 Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png new file mode 100644 index 000000000..0e72d1032 Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png new file mode 100644 index 000000000..c74348389 Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index d383d2e28..32a65a593 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -121,23 +121,12 @@ enum morse_macros { MC_Z = M(35), MC_DOT = M(36), MC_COMM = M(37), - MC_QUES = M(38), - MC_APOS = M(39), - MC_EXCL = M(40), - MC_SLSH = M(41), - MC_PARO = M(42), - MC_PARC = M(43), - MC_AMP = M(44), - MC_COL = M(45), - MC_SCLN = M(46), - MC_EQL = M(47), - MC_PLUS = M(48), - MC_MINS = M(49), - MC_QUOT = M(50), - MC_DOLR = M(51), - MC_AT = M(52), - MC_UNDS = M(53), - MC_SPACE = M(54), + MC_APOS = M(38), + MC_SLSH = M(39), + MC_SCLN = M(40), + MC_EQL = M(41), + MC_MINS = M(42), + MC_SPACE = M(43), }; //Keymaps @@ -183,11 +172,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [ARROWFN] = KEYMAP( - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(4), \ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(4), \ KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS ), /* 2: Mouse Keys Layer @@ -266,54 +255,102 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { - case 0: //Number 0 + case 0: //Number 0-) if (record->event.pressed) { - return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- + } + else { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- + } } break; - case 1: //Number 1 + case 1: //Number 1-! if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.---- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- + } + else { + return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.---- + } } break; - case 2: //Number 2 + case 2: //Number 2-@ if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //..--- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. + } + else { + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //..--- + } } break; case 3: // Number 3 if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- } break; - case 4: //Number 4 + case 4: //Number 4-$ if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //....- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- + } + else { + return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //....- + } } break; case 5: //Number 5 if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... } break; case 6: //Number 6 if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... } break; - case 7: //Number 7 + case 7: //Number 7-& if (record->event.pressed) { - return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //--... + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... + } + else { + return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //--... + } } break; case 8: //Number 8 if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. } break; - case 9: //Number 9 + case 9: //Number 9-( if (record->event.pressed) { - return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //----. + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. + } + else { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //----. + } } break; case 10: //Letter A @@ -526,96 +563,80 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 36: //Punctuation . if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- } break; case 37: //Punctuation , if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- } break; - case 38: //Punctuation ? - if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. - } - break; - case 39: //Punctuation ' - if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-....- - } - break; - case 40: //Punctuation ! + case 38: //Punctuation '-" if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- - } - break; - case 41: //Punctuation / - if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-..-. - } - break; - case 42: //Punctuation ( - if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. - } - break; - case 43: //Punctuation ) - if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- - } - break; - case 44: //Punctuation & - if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... - } - break; - case 45: //Punctuation : - if (record->event.pressed) { - return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... - } - break; - case 46: //Punctuation ; - if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-.-. - } - break; - case 47: //Punctuation = - if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-...- - } - break; - case 48: //Punctuation + - if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. + } + else { + return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-....- + } } break; - case 49: //Punctuation - + case 39: //Punctuation /-? if (record->event.pressed) { - return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-....- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. + } + else { + return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-..-. + } } break; - case 50: //Punctuation " + case 40: //Punctuation ;-: if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... + } + else { + return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-.-. + } } break; - case 51: //Punctuation $ + case 41: //Punctuation =-+ if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. + } + else { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-...- + } } break; - case 52: //Punctuation @ + case 42: //Punctuation --_ if (record->event.pressed) { - return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. - } - break; - case 53: //Punctuation _ - if (record->event.pressed) { - return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- + } + else { + return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-....- + } } break; - case 54: //Morse Space + case 43: //Morse Space if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + } return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse } break; -- cgit v1.2.3-24-g4f1b From f54b4771eb23027be1bd66a6fe1300713b593d58 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Wed, 24 May 2017 11:20:50 -0700 Subject: keymap example update and tweak to set_led_bit function --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 6 ++--- keyboards/infinity60/keymaps/jpetermans/readme.md | 12 +++++----- keyboards/infinity60/led_controller.c | 27 ++++++++++------------- 3 files changed, 21 insertions(+), 24 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index 8d19834b2..cc4633b1b 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -59,7 +59,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,F(TILDE),KC_NO, \ - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \ + KC_LCTL, KC_LGUI,KC_LALT, LT(_FNAV, KC_SPC), KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \ ), /* numpad */ @@ -68,7 +68,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, \ MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______, \ _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO, \ - _______,_______,_______, MO(_BASE), _______,_______,_______,_______ \ + _______,_______,_______, TO(_BASE), _______,_______,_______,_______ \ ), /* F-, arrow, and media keys */ @@ -290,7 +290,7 @@ void matrix_scan_user(void) { led_pin_byte = layer_state & 0xFF; msg=(7 << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - msg=(1<<16) | (led_pin_byte << 8) | SET_FULL_ROW; + msg=(1 << 16) | (led_pin_byte << 8) | SET_FULL_ROW; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); break; diff --git a/keyboards/infinity60/keymaps/jpetermans/readme.md b/keyboards/infinity60/keymaps/jpetermans/readme.md index 63fd88ec2..b83057ea7 100644 --- a/keyboards/infinity60/keymaps/jpetermans/readme.md +++ b/keyboards/infinity60/keymaps/jpetermans/readme.md @@ -16,9 +16,9 @@ digits mean "row" and "col", i.e. 45 means pin 4, column 5 in the IS31 datasheet ``` *Unused in Alphabet Layout -The IS31 includes 8 pages (or frames) 0-7 and each page consists of 144 bytes +The IS31 includes 8 led pages (or frames) 0-7 than can be displayed, and each page consists of 144 bytes. - **bytes 0 - 17** - LED control (on/off). - * 18 pins which alternate between A and B matrices (CA1, CB1, CA2, CB2, ..). + * 18 pins which alternate between A and B matrices (A1, B1, A2, B2, ..). * Each byte controls the 8 leds on that pin with bits (8 to 1). - **bytes 8 - 35** - Blink control. * Same as LED control above, but sets blink on/off. @@ -31,7 +31,7 @@ In the Infinity60 project folder, led_controller.c sets up ability to write led One function is available to directly set leds without the mailbox: ``` -write_led_page(page#, array of leds by address, # of leds in array) +write_led_page(page#, array of leds by address, # of addresses in array) ``` This function saves a full page to the controller using a supplied array of led locations such as: ```c @@ -45,7 +45,7 @@ write_led_page(5, led_numpad, 16); ``` Remaining led control is done through the led mailbox using these message types: -- **SET_FULL_ROW** (3 bytes) - row#, message type, 8-bit mask. Sets all leds on one pin per the bit mask. +- **SET_FULL_ROW** (3 bytes) - message type, 8-bit mask, and row#. Sets all leds on one pin per the bit mask. - **OFF_LED, ON_LED, TOGGLE_LED** (3 bytes) - message type, led address, and page#. Off/on/toggle specific led. - **BLINK_OFF_LED, BLINK_ON_LED, BLINK_OFF_LED** (3 bytes) - message type, led address, and page#. Set blink Off/on/toggle for specific led. - **TOGGLE_ALL** (1 byte) - Turn on/off full backlight. @@ -68,7 +68,7 @@ chMBPost(&led_mailbox, message, timeout); An example: ```c //set the message to be sent. First byte (LSB) is the led address, and second is the message type -msg=(42 << 8) | ON_LED +msg=(42 << 8) | ON_LED; //send msg to the led mailbox chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); @@ -76,7 +76,7 @@ chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); Another: ```c -msg=(46 << 8) | BLINK_TOGGLE_LED +msg=(46 << 8) | BLINK_TOGGLE_LED; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); ``` diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index a66edb927..04793cc01 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -25,7 +25,6 @@ along with this program. If not, see . #include "hal.h" #include "print.h" #include "led.h" -#include "action_layer.h" #include "host.h" #include "led_controller.h" @@ -199,31 +198,25 @@ static THD_FUNCTION(LEDthread, arg) { break; case OFF_LED: - //on/off/toggle single led, msg_args[0] = row/col of led + //on/off/toggle single led, msg_args[0] = row/col of led, msg_args[1] = page set_led_bit(msg_args[1], control_register_word, msg_args[0], 0); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case ON_LED: set_led_bit(msg_args[1], control_register_word, msg_args[0], 1); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case TOGGLE_LED: set_led_bit(msg_args[1], control_register_word, msg_args[0], 2); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case BLINK_OFF_LED: //on/off/toggle single led, msg_args[0] = row/col of led set_led_bit(msg_args[1], control_register_word, msg_args[0], 4); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case BLINK_ON_LED: set_led_bit(msg_args[1], control_register_word, msg_args[0], 5); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case BLINK_TOGGLE_LED: set_led_bit(msg_args[1], control_register_word, msg_args[0], 6); - is31_write_data (msg_args[1], control_register_word, 0x02); break; case TOGGLE_ALL: @@ -282,6 +275,10 @@ static THD_FUNCTION(LEDthread, arg) { led_control_reg[0] = 0; __builtin_memset(led_control_reg+1, 0, 0x12); is31_write_data(msg_args[0], led_control_reg, 0x13); + + //repeat for blink register + led_control_reg[0] = 0x12; + is31_write_data(msg_args[0], led_control_reg, 0x13); break; case TOGGLE_NUM_LOCK: @@ -330,7 +327,7 @@ static THD_FUNCTION(LEDthread, arg) { * led processing functions * ============================== */ -void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action) { +void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uint8_t action) { //returns 2 bytes: led control register address and byte to write //action: 0 - off, 1 - on, 2 - toggle, 4 - blink on, 5 - blink off, 6 - toggle blink @@ -341,11 +338,9 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint return; } - //check for blink bit - blink_bit = action>>2; + blink_bit = action>>2;//check for blink bit action &= ~(1<<2); //strip blink bit - //first byte is led control register address 0x00 //led_addr tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register @@ -367,8 +362,9 @@ void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint } //return word to be written in register - led_control_reg[0] = control_reg_addr; - led_control_reg[1] = column_byte; + led_control_word[0] = control_reg_addr; + led_control_word[1] = column_byte; + is31_write_data (page, led_control_word, 0x02); } void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { @@ -403,13 +399,14 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { //blink if all leds are on if (page == 0) { is31_read_register(0, 0x00, &temp); + chThdSleepMilliseconds(10); + if (temp == 0xFF) { led_action |= (1<<2); //set blink bit } } set_led_bit(page,led_control_word,led_addr,led_action); - is31_write_data(page, led_control_word, 0x02); } /* ===================== -- cgit v1.2.3-24-g4f1b From 083267680d15b5d03d31c6775b1046063c762e78 Mon Sep 17 00:00:00 2001 From: jpetermans Date: Wed, 24 May 2017 12:26:56 -0700 Subject: Restore deleted MEMO.txt from master --- keyboards/infinity60/MEMO.txt | 385 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 385 insertions(+) create mode 100644 keyboards/infinity60/MEMO.txt (limited to 'keyboards') diff --git a/keyboards/infinity60/MEMO.txt b/keyboards/infinity60/MEMO.txt new file mode 100644 index 000000000..e2886aa00 --- /dev/null +++ b/keyboards/infinity60/MEMO.txt @@ -0,0 +1,385 @@ +flabbergast's TMK/ChibiOS port +============================== +2015/10/16 + + +Build +----- +$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git + +$ cd tmk_keyboard +$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios +or +$ cd tmk_keyboard/tmk_core/tool/chibios +$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios + +$ cd tmk_keyboard/keyboard/infinity_chibios +$ make + + + + +Chibios Configuration +--------------------- +halconf.h: for HAL configuration + placed in project directory + read in chibios/os/hal/hal.mk + included in chibios/os/hal/include/hal.h +mcuconf.h: for MCU configuration + placed in project directory + included in halconf.h + + +Chibios Term +------------ +PAL = Port Abstraction Layer + palWritePad + palReadPad + palSetPad + chibios/os/hal/include/pal.h + +LLD = Low Level Driver + + +Makefile +-------- + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = KINETIS + MCU_SERIES = KL2x + + # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT = MKL26Z64 + + # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP = kl2x + + # Board: it should exist either in /os/hal/boards/ + # or /boards + BOARD = PJRC_TEENSY_LC + + MCU = cortex-m0 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 6 + + +halconf.h +--------- + + +mcuconf.h +--------- + + +chconf.h +-------- + + +ld script +--------- +--- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 ++++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 +@@ -27,7 +27,8 @@ + { + flash0 : org = 0x00000000, len = 0xc0 + flashcfg : org = 0x00000400, len = 0x10 +- flash : org = 0x00000410, len = 64k - 0x410 ++ flash : org = 0x00000410, len = 62k - 0x410 ++ eeprom_emu : org = 0x0000F800, len = 2k + ram : org = 0x1FFFF800, len = 8k + } + +@@ -35,6 +36,10 @@ + __ram_size__ = LENGTH(ram); + __ram_end__ = __ram_start__ + __ram_size__; + ++__eeprom_workarea_start__ = ORIGIN(eeprom_emu); ++__eeprom_workarea_size__ = LENGTH(eeprom_emu); ++__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; ++ + SECTIONS + { + . = 0; + + + +Configuration/Startup for Infinity 60% +-------------------------------------- +Configuration: + + +Clock: +Inifinity + FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz + Clock dividor: + SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock + SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock + SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock + Internal reference clock: + MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL + MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable + FLL multipilication: + MCG_C4[DMX32] = 1 + MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz + +chibios/os/hal/ports/KINETIS/K20x/hal_lld.c + k20x_clock_init(): called in __early_init() defined in board.c + disable watchdog and configure clock + + configurable macros: + KINETIS_NO_INIT: whether init or not + KINETIS_MCG_MODE: clock mode + KINETIS_MCG_MODE_FEI + KINETIS_MCG_MODE_PEE + hal/ports/KINETIS/K20x/hal_lld.h + + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h + PALConfig pal_default_config + boardInit() + __early_init() + macro definitions for board infos, freq and mcu type + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c + +USB + + +Startup +------- + common/ports/ARMCMx/GCC/crt0_v[67]m.s + Reset_Handler: startup code + common/ports/ARMCMx/GCC/crt1.c + __core_init(): weak + __early_init(): weak + __late_init(): weak + __default_exit(): weak + called from Reset_Handler of crt0 + common/ports/ARMCMx/GCC/vector.c + common/ports/ARMCMx/GCC/ld/*.ld + +chibios/os/common/ports/ARMCMx/compilers/GCC/ +├── crt0_v6m.s +├── crt0_v7m.s +├── crt1.c +├── ld +│   ├── MK20DX128BLDR3.ld +│   ├── MK20DX128BLDR4.ld +│   ├── MK20DX128.ld +│   ├── MK20DX256.ld +│   ├── MKL25Z128.ld +│   ├── MKL26Z128.ld +│   ├── MKL26Z64.ld +│   └── STM32L476xG.ld +├── mk +│   ├── startup_k20x5.mk +│   ├── startup_k20x7.mk +│   ├── startup_k20x.mk +│   ├── startup_kl2x.mk +│   └── startup_stm32l4xx.mk +├── rules.ld +├── rules.mk +└── vectors.c + +chibios/os/hal/ +├── boards +│   ├── FREESCALE_FREEDOM_K20D50M +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── MCHCK_K20 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3_1 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_LC +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── readme.txt +│   ├── simulator +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── ST_NUCLEO_F030R8 +│   │   ├── board.c +│   │   ├── board.h +│   │   ├── board.mk +│   │   └── cfg +│   │   └── board.chcfg +├── hal.mk +├── include +│   ├── adc.h +│   ├── can.h +│   ├── dac.h +│   ├── ext.h +│   ├── gpt.h +│   ├── hal_channels.h +│   ├── hal_files.h +│   ├── hal.h +│   ├── hal_ioblock.h +│   ├── hal_mmcsd.h +│   ├── hal_queues.h +│   ├── hal_streams.h +│   ├── i2c.h +│   ├── i2s.h +│   ├── icu.h +│   ├── mac.h +│   ├── mii.h +│   ├── mmc_spi.h +│   ├── pal.h +│   ├── pwm.h +│   ├── rtc.h +│   ├── sdc.h +│   ├── serial.h +│   ├── serial_usb.h +│   ├── spi.h +│   ├── st.h +│   ├── uart.h +│   └── usb.h +├── lib +│   └── streams +│   ├── chprintf.c +│   ├── chprintf.h +│   ├── memstreams.c +│   ├── memstreams.h +│   ├── nullstreams.c +│   └── nullstreams.h +├── osal +│   ├── nil +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   ├── os-less +│   │   └── ARMCMx +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   └── rt +│   ├── osal.c +│   ├── osal.h +│   └── osal.mk +├── ports +│   ├── AVR +│   ├── common +│   │   └── ARMCMx +│   │   ├── mpu.h +│   │   ├── nvic.c +│   │   └── nvic.h +│   ├── KINETIS +│   │   ├── K20x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.dox +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   ├── pwm_lld.h +│   │   │   ├── spi_lld.c +│   │   │   └── spi_lld.h +│   │   ├── KL2x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   └── pwm_lld.h +│   │   ├── LLD +│   │   │   ├── adc_lld.c +│   │   │   ├── adc_lld.h +│   │   │   ├── ext_lld.c +│   │   │   ├── ext_lld.h +│   │   │   ├── gpt_lld.c +│   │   │   ├── gpt_lld.h +│   │   │   ├── i2c_lld.c +│   │   │   ├── i2c_lld.h +│   │   │   ├── pal_lld.c +│   │   │   ├── pal_lld.h +│   │   │   ├── serial_lld.c +│   │   │   ├── serial_lld.h +│   │   │   ├── st_lld.c +│   │   │   ├── st_lld.h +│   │   │   ├── usb_lld.c +│   │   │   └── usb_lld.h +│   │   └── README.md +│   ├── LPC +│   ├── simulator +│   └── STM32 +├── src +│   ├── adc.c +│   ├── can.c +│   ├── dac.c +│   ├── ext.c +│   ├── gpt.c +│   ├── hal.c +│   ├── hal_mmcsd.c +│   ├── hal_queues.c +│   ├── i2c.c +│   ├── i2s.c +│   ├── icu.c +│   ├── mac.c +│   ├── mmc_spi.c +│   ├── pal.c +│   ├── pwm.c +│   ├── rtc.c +│   ├── sdc.c +│   ├── serial.c +│   ├── serial_usb.c +│   ├── spi.c +│   ├── st.c +│   ├── uart.c +│   └── usb.c +└── templates + ├── adc_lld.c + ├── adc_lld.h + ├── can_lld.c + ├── can_lld.h + ├── dac_lld.c + ├── dac_lld.h + ├── ext_lld.c + ├── ext_lld.h + ├── gpt_lld.c + ├── gpt_lld.h + ├── halconf.h + ├── hal_lld.c + ├── hal_lld.h + ├── i2c_lld.c + ├── i2c_lld.h + ├── i2s_lld.c + ├── i2s_lld.h + ├── icu_lld.c + ├── icu_lld.h + ├── mac_lld.c + ├── mac_lld.h + ├── mcuconf.h + ├── osal + │   ├── osal.c + │   ├── osal.h + │   └── osal.mk + ├── pal_lld.c + ├── pal_lld.h + ├── platform.mk + ├── pwm_lld.c + ├── pwm_lld.h + ├── rtc_lld.c + ├── rtc_lld.h + ├── sdc_lld.c + ├── sdc_lld.h + ├── serial_lld.c + ├── serial_lld.h + ├── spi_lld.c + ├── spi_lld.h + ├── st_lld.c + ├── st_lld.h + ├── uart_lld.c + ├── uart_lld.h + ├── usb_lld.c + └── usb_lld.h -- cgit v1.2.3-24-g4f1b From 1a0dfbbc96b32aeae27ace398282c18227fc4b4e Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Wed, 24 May 2017 21:15:41 -0400 Subject: More updates to keymap.c - still errors with midi when trying to compile --- keyboards/s60_x/keymaps/bluebear/keymap.c | 132 ++++++++++++++---------------- 1 file changed, 61 insertions(+), 71 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 32a65a593..dfb0b966a 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -161,9 +161,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │TO(3)│TO(4)│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │CAPS │ │ │ │ │ │ │PGUP │ UP │HOME │ END │ │ INS │ DEL │█████│ + │ │ │ │ │ │ │ │PGUP │ UP │ │ │ │ INS │ DEL │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │ │ │ │ │LEFT │DOWN │RIGHT│ │ │▒▒▒▒▒│ │█████│ + │CAPS │HOME │ │ END │ │ │ │LEFT │DOWN │RIGHT│ │ │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │▒▒▒▒▒│ │ │ │ │ │SPACE│PGDN │PSCR │SLCK │PAUSE│▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -173,8 +173,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [ARROWFN] = KEYMAP( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(4), \ - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_HOME, KC_END, KC_NO, KC_INS, KC_DEL, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_NO, KC_NO, KC_NO, KC_INS, KC_DEL, \ + KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS ), @@ -644,74 +644,64 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; }; -/* // Midi Chord Function void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -uint16_t root_note; -uint8_t channel = midi_config.channel; -uint8_t velocity = compute_velocity(midi_config.velocity); -switch (opt) { -case 0: //Root note C -root_note = MI_C; -case 1: //Root note C#/Db -root_note = MI_Cs; -case 2: // Root note D -root_note = MI_D; -case 3: // Root note D#/Eb -root_note = MI_Ds; -case 4: // Root note E -root_note = MI_E; -case 5: // Root note F -root_note = MI_F; -case 6: // Root note F#/Gb -root_note = MI_Fs; -case 7: // Root note G -root_note = MI_G; -case 8: // Root note G#/Ab -root_note = MI_Gs; -case 9: // Root note A -root_note = MI_A; -case 10: // Root note A#/Bb -root_note = MI_As; -case 11: // Root note B -root_note = MI_B; -switch (id) { -uint8_t tone = root_note - MIDI_TONE_MIN; -uint8_t root = midi_compute_note(root_note); -uint8_t major_third = midi_compute_note(root_note) + 4; -uint8_t minor_third = midi_compute_note(root_note) + 3; -uint8_t fifth = midi_compute_note(root_note) + 7; -case 0: //Major chord -if (record->event.pressed) { -midi_send_noteon(&midi_device, channel, root, velocity); -midi_send_noteon(&midi_device, channel, major_third, velocity); -midi_send_noteon(&midi_device, channel, fifth, velocity); -tone_status[tone] = root; -} -else { -uint8_t root = tone_status[tone]; -if (root != MIDI_INVALID_NOTE) -{ -midi_send_noteoff(&midi_device, channel, root, velocity); -} -tone_status[tone] = MIDI_INVALID_NOTE; -} -case 1: //Minor chord -if (record->event.pressed) { -midi_send_noteon(&midi_device, channel, root_note, velocity); -midi_send_noteon(&midi_device, channel, minor_third, velocity); -midi_send_noteon(&midi_device, channel, fifth, velocity); -} -else { -uint8_t root = tone_status[tone]; -if (root != MIDI_INVALID_NOTE) -{ -midi_send_noteoff(&midi_device, channel, root, velocity); -} -tone_status[tone] = MIDI_INVALID_NOTE; -} -} + uint16_t root_note; + uint8_t channel = midi_config.channel; + uint8_t velocity = compute_velocity(midi_config.velocity); + switch (opt) { + case 0: //Root note C + root_note = MI_C; + case 1: //Root note C#/Db + root_note = MI_Cs; + case 2: // Root note D + root_note = MI_D; + case 3: // Root note D#/Eb + root_note = MI_Ds; + case 4: // Root note E + root_note = MI_E; + case 5: // Root note F + root_note = MI_F; + case 6: // Root note F#/Gb + root_note = MI_Fs; + case 7: // Root note G + root_note = MI_G; + case 8: // Root note G#/Ab + root_note = MI_Gs; + case 9: // Root note A + root_note = MI_A; + case 10: // Root note A#/Bb + root_note = MI_As; + case 11: // Root note B + root_note = MI_B; + switch (id) { + uint8_t root = midi_compute_note(root_note); + uint8_t major_third = midi_compute_note(root_note) + 4; + uint8_t minor_third = midi_compute_note(root_note) + 3; + uint8_t fifth = midi_compute_note(root_note) + 7; + case 0: //Major chord + if (record->event.pressed) { + midi_send_noteon(&midi_device, channel, root, velocity); + midi_send_noteon(&midi_device, channel, major_third, velocity); + midi_send_noteon(&midi_device, channel, fifth, velocity); + } + else { + midi_send_noteoff(&midi_device, channel, root, velocity); + midi_send_noteoff(&midi_device, channel, major_third, velocity); + midi_send_noteoff(&midi_device, channel, fifth, velocity); + } + case 1: //Minor chord + if (record->event.pressed) { + midi_send_noteon(&midi_device, channel, root_note, velocity); + midi_send_noteon(&midi_device, channel, minor_third, velocity); + midi_send_noteon(&midi_device, channel, fifth, velocity); + } + else { + midi_send_noteoff(&midi_device, channel, root, velocity); + midi_send_noteoff(&midi_device, channel, minor_third, velocity); + midi_send_noteoff(&midi_device, channel, fifth, velocity); + } + } + } } -}; -*/ -- cgit v1.2.3-24-g4f1b From ac97870801a684b228cb7a667ea423d0ec381b1e Mon Sep 17 00:00:00 2001 From: jpetermans Date: Thu, 25 May 2017 13:00:21 -0700 Subject: reduce recurring writes to lock leds --- keyboards/infinity60/led_controller.c | 58 ++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 04793cc01..5c177d26b 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -135,16 +135,24 @@ msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result) { * initialise the IS31 chip * ======================== */ void is31_init(void) { + xprintf("_is31_init\n"); // just to be sure that it's all zeroes __builtin_memset(full_page,0,0xB4+1); // zero function page, all registers (assuming full_page is all zeroes) is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); + // disable hardware shutdown palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); palSetPad(GPIOB, 16); chThdSleepMilliseconds(10); - // software shutdown disable (i.e. turn stuff on) + // software shutdown is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); chThdSleepMilliseconds(10); + // zero function page, all registers + is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); + chThdSleepMilliseconds(10); + // software shutdown disable (i.e. turn stuff on) + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + chThdSleepMilliseconds(10); // zero all LED registers on all 8 pages uint8_t i; for(i=0; i<8; i++) { @@ -169,7 +177,7 @@ static THD_FUNCTION(LEDthread, arg) { uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes //persistent status variables - uint8_t pwm_step_status, page_status; + uint8_t pwm_step_status, page_status, capslock_status, numlock_status; //mailbox variables uint8_t temp, msg_type; @@ -179,6 +187,8 @@ static THD_FUNCTION(LEDthread, arg) { // initialize persistent variables pwm_step_status = 4; //full brightness page_status = 0; //start frame 0 (all off/on) + numlock_status = (host_keyboard_leds() & (1<> 16) & 0XFF; msg_args[2] = (msg >> 24) & 0xFF; + xprintf("msg_type: %d-%d-%d\n", msg_type, msg_args[0], msg_args[1]); + switch (msg_type){ case SET_FULL_ROW: + xprintf("FULL ROW: %d-%d\n", msg_args[0], msg_args[1]); //write full byte to pin address, msg_args[1] = pin #, msg_args[0] = 8 bits to write //writes only to currently displayed page write_led_byte(page_status, msg_args[1], msg_args[0]); break; case OFF_LED: + xprintf("OFF: %d-%d\n", msg_args[0], msg_args[1]); //on/off/toggle single led, msg_args[0] = row/col of led, msg_args[1] = page set_led_bit(msg_args[1], control_register_word, msg_args[0], 0); break; case ON_LED: + xprintf("ON: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 1); break; case TOGGLE_LED: + xprintf("TOGGLE: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 2); break; case BLINK_OFF_LED: + xprintf("B_on: %d-%d\n", msg_args[0], msg_args[1]); //on/off/toggle single led, msg_args[0] = row/col of led set_led_bit(msg_args[1], control_register_word, msg_args[0], 4); break; case BLINK_ON_LED: + xprintf("B_off: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 5); break; case BLINK_TOGGLE_LED: + xprintf("B_togg: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 6); break; case TOGGLE_ALL: //turn on/off all leds, msg_args = unused + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + chThdSleepMilliseconds(5); is31_read_register(0, 0x00, &temp); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + xprintf("TOGGLE_ALL: %d-%d\n", msg_args[0], msg_args[1]); + xprintf("temp: %d\n", temp); + led_control_reg[0] = 0; //if first leds are already on, toggle frame 0 off @@ -243,6 +268,7 @@ static THD_FUNCTION(LEDthread, arg) { break; case TOGGLE_BACKLIGHT: + xprintf("TOGGLE_BKLT: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = on/off //populate 9 byte rows to be written to each pin, first byte is register (pin) address @@ -261,6 +287,7 @@ static THD_FUNCTION(LEDthread, arg) { case DISPLAY_PAGE: //msg_args[0] = page to toggle on + xprintf("DSPY_PG: %d-%d\n", msg_args[0], msg_args[1]); if (page_status != msg_args[0]) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_args[0]); page_status = msg_args[0]; @@ -282,15 +309,24 @@ static THD_FUNCTION(LEDthread, arg) { break; case TOGGLE_NUM_LOCK: + xprintf("NMLK: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = 0 or 1, off/on - set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status); + if (numlock_status != msg_args[0]) { + set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status); + numlock_status = msg_args[0]; + } break; case TOGGLE_CAPS_LOCK: + xprintf("CPLK: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = 0 or 1, off/on - set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status); + if (capslock_status != msg_args[0]) { + set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status); + capslock_status = msg_args[0]; + } break; case STEP_BRIGHTNESS: + xprintf("Step: %d-%d\n", msg_args[0], msg_args[1]); //led_args[0] = step up (1) or down (0) switch (msg_args[0]) { case 0: @@ -337,6 +373,7 @@ void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uin if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { return; } + xprintf("_set action-led: %x-%d\n", action, led_addr); blink_bit = action>>2;//check for blink bit action &= ~(1<<2); //strip blink bit @@ -344,10 +381,17 @@ void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uin //led_addr tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register + xprintf("_set control address: %x\n", control_reg_addr); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + chThdSleepMilliseconds(5); is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + xprintf("_set temp_byte_mask: %x\n", temp); + column_bit = 1<<(led_addr % 10 - 1); column_byte = temp; + xprintf("_set col_byte_mask: %x\n", column_byte); switch(action) { case 0: @@ -398,13 +442,16 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { //blink if all leds are on if (page == 0) { + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + chThdSleepMilliseconds(5); is31_read_register(0, 0x00, &temp); - chThdSleepMilliseconds(10); + is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); if (temp == 0xFF) { led_action |= (1<<2); //set blink bit } } + xprintf("_lock action: %d\n", led_action); set_led_bit(page,led_control_word,led_addr,led_action); } @@ -415,6 +462,7 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { void led_controller_init(void) { uint8_t i; + xprintf("led_init\n"); /* initialise I2C */ /* I2C pins */ palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL -- cgit v1.2.3-24-g4f1b From b4b06f81b5024bb5963753edfc07f9e2e0054cfd Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Thu, 25 May 2017 23:03:33 -0400 Subject: More changes to keymap.c to try and get midi chords to work --- keyboards/s60_x/keymaps/bluebear/keymap.c | 160 ++++++++++++++++-------------- 1 file changed, 86 insertions(+), 74 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index dfb0b966a..2dc7500cd 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -258,7 +258,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 0: //Number 0-) if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- } else { @@ -269,7 +269,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 1: //Number 1-! if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- } else { @@ -280,7 +280,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 2: //Number 2-@ if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. } else { @@ -291,7 +291,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 3: // Number 3 if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- } @@ -299,7 +299,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 4: //Number 4-$ if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- } else { @@ -310,7 +310,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 5: //Number 5 if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... } @@ -318,7 +318,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 6: //Number 6 if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... } @@ -326,7 +326,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 7: //Number 7-& if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... } else { @@ -337,7 +337,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 8: //Number 8 if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. } @@ -345,7 +345,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 9: //Number 9-( if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. } else { @@ -356,7 +356,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 10: //Letter A if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- } @@ -364,7 +364,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 11: //Letter B if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... } @@ -372,7 +372,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 12: //Letter C if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. } @@ -380,7 +380,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 13: //Letter D if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. } @@ -388,7 +388,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 14: //Letter E if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(SPACE), END); //. } @@ -396,7 +396,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 15: //Letter F if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. } @@ -404,7 +404,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 16: //Letter G if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. } @@ -412,7 +412,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 17: //Letter H if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... } @@ -420,7 +420,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 18: //Letter I if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. } @@ -428,7 +428,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 19: //Letter J if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- } @@ -436,7 +436,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 20: //Letter K if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- } @@ -444,7 +444,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 21: //Letter L if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. } @@ -452,7 +452,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 22: //Letter M if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- } @@ -460,7 +460,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 23: //Letter N if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. } @@ -468,7 +468,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 24: //Letter O if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- } @@ -476,7 +476,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 25: //Letter P if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. } @@ -484,7 +484,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 26: //Letter Q if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- } @@ -492,7 +492,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 27: //Letter R if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. } @@ -500,7 +500,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 28: //Letter S if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... } @@ -508,7 +508,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 29: //Letter T if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(SPACE), END); //- } @@ -516,7 +516,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 30: //Letter U if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- } @@ -524,7 +524,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 31: //Letter V if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- } @@ -532,7 +532,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 32: //Letter W if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- } @@ -540,7 +540,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 33: //Letter X if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- } @@ -548,7 +548,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 34: //Letter Y if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- } @@ -556,7 +556,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 35: //Letter Z if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. } @@ -564,7 +564,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 36: //Punctuation . if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- } @@ -572,7 +572,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 37: //Punctuation , if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- } @@ -580,7 +580,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 38: //Punctuation '-" if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. } else { @@ -591,7 +591,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 39: //Punctuation /-? if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. } else { @@ -602,7 +602,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 40: //Punctuation ;-: if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... } else { @@ -613,7 +613,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 41: //Punctuation =-+ if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. } else { @@ -624,7 +624,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 42: //Punctuation --_ if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- } else { @@ -635,7 +635,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case 43: //Morse Space if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + clear_mods(); } return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse } @@ -647,61 +647,73 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Midi Chord Function void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - uint16_t root_note; - uint8_t channel = midi_config.channel; - uint8_t velocity = compute_velocity(midi_config.velocity); + uint16_t root_note = MIDI_INVALID_NOTE; switch (opt) { case 0: //Root note C root_note = MI_C; + break; case 1: //Root note C#/Db root_note = MI_Cs; + break; case 2: // Root note D root_note = MI_D; + break; case 3: // Root note D#/Eb root_note = MI_Ds; + break; case 4: // Root note E root_note = MI_E; + break; case 5: // Root note F root_note = MI_F; + break; case 6: // Root note F#/Gb root_note = MI_Fs; + break; case 7: // Root note G root_note = MI_G; + break; case 8: // Root note G#/Ab root_note = MI_Gs; + break; case 9: // Root note A root_note = MI_A; + break; case 10: // Root note A#/Bb root_note = MI_As; + break; case 11: // Root note B root_note = MI_B; - switch (id) { - uint8_t root = midi_compute_note(root_note); - uint8_t major_third = midi_compute_note(root_note) + 4; - uint8_t minor_third = midi_compute_note(root_note) + 3; - uint8_t fifth = midi_compute_note(root_note) + 7; - case 0: //Major chord - if (record->event.pressed) { - midi_send_noteon(&midi_device, channel, root, velocity); - midi_send_noteon(&midi_device, channel, major_third, velocity); - midi_send_noteon(&midi_device, channel, fifth, velocity); - } - else { - midi_send_noteoff(&midi_device, channel, root, velocity); - midi_send_noteoff(&midi_device, channel, major_third, velocity); - midi_send_noteoff(&midi_device, channel, fifth, velocity); - } - case 1: //Minor chord - if (record->event.pressed) { - midi_send_noteon(&midi_device, channel, root_note, velocity); - midi_send_noteon(&midi_device, channel, minor_third, velocity); - midi_send_noteon(&midi_device, channel, fifth, velocity); - } - else { - midi_send_noteoff(&midi_device, channel, root, velocity); - midi_send_noteoff(&midi_device, channel, minor_third, velocity); - midi_send_noteoff(&midi_device, channel, fifth, velocity); - } + break; + } + // uint8_t root = midi_compute_note(root_note); + uint8_t major_third = root_note + 4; + uint8_t minor_third = root_note + 3; + uint8_t fifth = root_note + 7; + switch (id) { + case 0: //Major chord + if (record->event.pressed) { + register_code16(root_note); + register_code16(major_third); + register_code16(fifth); } + else { + unregister_code16(root_note); + unregister_code16(major_third); + unregister_code16(fifth); + } + break; + case 1: //Minor chord + if (record->event.pressed) { + register_code16(root_note); + register_code16(minor_third); + register_code16(fifth); + } + else { + unregister_code16(root_note); + unregister_code16(minor_third); + unregister_code16(fifth); + } + break; } } -- cgit v1.2.3-24-g4f1b From 6b1f707ce9431abfff6e6f8aa5730c77578fbc08 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Fri, 26 May 2017 09:54:40 -0400 Subject: Still working on these MIDI CHORDS! --- keyboards/s60_x/keymaps/bluebear/Makefile | 4 ++-- keyboards/s60_x/keymaps/bluebear/keymap.c | 33 +++++++++---------------------- 2 files changed, 11 insertions(+), 26 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/Makefile b/keyboards/s60_x/keymaps/bluebear/Makefile index dfefad39d..a444eeb7f 100644 --- a/keyboards/s60_x/keymaps/bluebear/Makefile +++ b/keyboards/s60_x/keymaps/bluebear/Makefile @@ -1,8 +1,8 @@ BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI controls diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 2dc7500cd..0047a87d3 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -184,7 +184,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │RESET│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ + │DEBUG│ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │ │ │ │ │MS_LT│MS_DN│MS_RT│WH_DN│BTN3 │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -197,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MOUSE] = KEYMAP( RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ + DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_TRNS, KC_NO, KC_NO, KC_POWER, KC_NO, KC_NO, KC_NO, KC_NO @@ -646,7 +646,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Midi Chord Function -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +void action_function_opt(keyrecord_t *record, uint8_t id, uint8_t opt) { uint16_t root_note = MIDI_INVALID_NOTE; switch (opt) { case 0: //Root note C @@ -686,34 +686,19 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { root_note = MI_B; break; } - // uint8_t root = midi_compute_note(root_note); uint8_t major_third = root_note + 4; uint8_t minor_third = root_note + 3; uint8_t fifth = root_note + 7; switch (id) { case 0: //Major chord - if (record->event.pressed) { - register_code16(root_note); - register_code16(major_third); - register_code16(fifth); - } - else { - unregister_code16(root_note); - unregister_code16(major_third); - unregister_code16(fifth); - } + process_midi(root_note, record); + process_midi(major_third, record); + process_midi(fifth, record); break; case 1: //Minor chord - if (record->event.pressed) { - register_code16(root_note); - register_code16(minor_third); - register_code16(fifth); - } - else { - unregister_code16(root_note); - unregister_code16(minor_third); - unregister_code16(fifth); - } + process_midi(root_note, record); + process_midi(minor_third, record); + process_midi(fifth, record); break; } } -- cgit v1.2.3-24-g4f1b From e87691fa5db011e50fa2a9a5e2881dfda9392bef Mon Sep 17 00:00:00 2001 From: ariasuni Date: Sat, 27 May 2017 00:25:35 +0200 Subject: Fix undefined reference errors with avr-gcc 7.1 --- keyboards/ergodox/ez/ez.c | 26 +++++++++++++++++++++++++- keyboards/gh60/gh60.c | 28 +++++++++++++++++++++------- keyboards/pegasushoof/pegasushoof.c | 8 ++++++++ keyboards/xd60/xd60.c | 8 ++++++++ 4 files changed, 62 insertions(+), 8 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/ez.c b/keyboards/ergodox/ez/ez.c index 3e19f2302..d50224954 100644 --- a/keyboards/ergodox/ez/ez.c +++ b/keyboards/ergodox/ez/ez.c @@ -1,6 +1,30 @@ #include "ez.h" #include "i2cmaster.h" + +extern inline void ergodox_board_led_on(void); +extern inline void ergodox_right_led_1_on(void); +extern inline void ergodox_right_led_2_on(void); +extern inline void ergodox_right_led_3_on(void); +extern inline void ergodox_right_led_on(uint8_t led); + +extern inline void ergodox_board_led_off(void); +extern inline void ergodox_right_led_1_off(void); +extern inline void ergodox_right_led_2_off(void); +extern inline void ergodox_right_led_3_off(void); +extern inline void ergodox_right_led_off(uint8_t led); + +extern inline void ergodox_led_all_on(void); +extern inline void ergodox_led_all_off(void); + +extern inline void ergodox_right_led_1_set(uint8_t n); +extern inline void ergodox_right_led_2_set(uint8_t n); +extern inline void ergodox_right_led_3_set(uint8_t n); +extern inline void ergodox_right_led_set(uint8_t led, uint8_t n); + +extern inline void ergodox_led_all_set(uint8_t n); + + bool i2c_initialized = 0; uint8_t mcp23018_status = 0x20; @@ -57,7 +81,7 @@ uint8_t init_mcp23018(void) { // cli(); if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) - i2c_initialized++; + i2c_initialized = true; _delay_ms(1000); } diff --git a/keyboards/gh60/gh60.c b/keyboards/gh60/gh60.c index f5a158e12..441c799fa 100644 --- a/keyboards/gh60/gh60.c +++ b/keyboards/gh60/gh60.c @@ -1,25 +1,39 @@ #include "gh60.h" + +extern inline void gh60_caps_led_on(void); +extern inline void gh60_poker_leds_on(void); +extern inline void gh60_fn_led_on(void); +extern inline void gh60_esc_led_on(void); +extern inline void gh60_wasd_leds_on(void); + +extern inline void gh60_caps_led_off(void); +extern inline void gh60_poker_leds_off(void); +extern inline void gh60_fn_led_off(void); +extern inline void gh60_esc_led_off(void); +extern inline void gh60_wasd_leds_off(void); + + void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - + if (usb_led & (1<. #include "pegasushoof.h" + +extern inline void ph_caps_led_on(void); +extern inline void ph_caps_led_off(void); + +extern inline void ph_sclk_led_on(void); +extern inline void ph_sclk_led_off(void); + + __attribute__ ((weak)) void matrix_init_user(void) { }; diff --git a/keyboards/xd60/xd60.c b/keyboards/xd60/xd60.c index 4307f5f59..c3b63e5ea 100644 --- a/keyboards/xd60/xd60.c +++ b/keyboards/xd60/xd60.c @@ -1,5 +1,13 @@ #include "xd60.h" + +extern inline void xd60_caps_led_on(void); +extern inline void xd60_bl_led_on(void); + +extern inline void xd60_caps_led_off(void); +extern inline void xd60_bl_led_off(void); + + void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here -- cgit v1.2.3-24-g4f1b From a5846757359a27f9e5ed67cfe96f1d92e72b1b4b Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Sun, 28 May 2017 08:14:17 -0400 Subject: Midi Chord Function is now working! But some chords lag... --- keyboards/s60_x/keymaps/bluebear/Makefile | 4 +- keyboards/s60_x/keymaps/bluebear/keymap.c | 166 ++++++++++++++++++++++-------- 2 files changed, 124 insertions(+), 46 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/Makefile b/keyboards/s60_x/keymaps/bluebear/Makefile index a444eeb7f..dfefad39d 100644 --- a/keyboards/s60_x/keymaps/bluebear/Makefile +++ b/keyboards/s60_x/keymaps/bluebear/Makefile @@ -1,8 +1,8 @@ BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI controls diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 0047a87d3..3be39c3fa 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -37,47 +37,90 @@ enum midi_chord_root { //ACTION_FUNCTION opt B, }; -enum midi_chord_keycodes { +enum midi_chord_id { //ACTION_FUNCTION Progmem Id //Major Chords - MI_CH_C = ACTION_FUNCTION_OPT(major,C), - MI_CH_Cs = ACTION_FUNCTION_OPT(major,Cs), + CMajor, + CsMajor, + DbMajor = CsMajor, + DMajor, + DsMajor, + EbMajor = DsMajor, + EMajor, + FMajor, + FsMajor, + GbMajor = FsMajor, + GMajor, + GsMajor, + AbMajor = GsMajor, + AMajor, + AsMajor, + BbMajor = AsMajor, + BMajor, + + //Minor Chords + + CMinor, + CsMinor, + DbMinor = CsMinor, + DMinor, + DsMinor, + EbMinor = DsMinor, + EMinor, + FMinor, + FsMinor, + GbMinor = FsMinor, + GMinor, + GsMinor, + AbMinor = GsMinor, + AMinor, + AsMinor, + BbMinor = AsMinor, + BMinor, +}; + +enum midi_chord_keycodes { //Midi Chocd Keycodes + + //Major Chord Keycodes + + MI_CH_C = F(CMajor), + MI_CH_Cs = F(CsMajor), MI_CH_Db = MI_CH_Cs, - MI_CH_D = ACTION_FUNCTION_OPT(major,D), - MI_CH_Ds = ACTION_FUNCTION_OPT(major,Ds), + MI_CH_D = F(DMajor), + MI_CH_Ds = F(DsMajor), MI_CH_Eb = MI_CH_Ds, - MI_CH_E = ACTION_FUNCTION_OPT(major,E), - MI_CH_F = ACTION_FUNCTION_OPT(major,F), - MI_CH_Fs = ACTION_FUNCTION_OPT(major,Fs), + MI_CH_E = F(EMajor), + MI_CH_F = F(FMajor), + MI_CH_Fs = F(FsMajor), MI_CH_Gb = MI_CH_Fs, - MI_CH_G = ACTION_FUNCTION_OPT(major,G), - MI_CH_Gs = ACTION_FUNCTION_OPT(major,Gs), + MI_CH_G = F(GMajor), + MI_CH_Gs = F(GsMajor), MI_CH_Ab = MI_CH_Gs, - MI_CH_A = ACTION_FUNCTION_OPT(major,A), - MI_CH_As = ACTION_FUNCTION_OPT(major,As), + MI_CH_A = F(AMajor), + MI_CH_As = F(AsMajor), MI_CH_Bb = MI_CH_As, - MI_CH_B = ACTION_FUNCTION_OPT(major,B), + MI_CH_B = F(BMajor), - //Minor Chords + //Minor Chord Keycodes - MI_CH_Cm = ACTION_FUNCTION_OPT(minor,C), - MI_CH_Csm = ACTION_FUNCTION_OPT(minor,Cs), + MI_CH_Cm = F(CMinor), + MI_CH_Csm = F(CsMinor), MI_CH_Dbm = MI_CH_Csm, - MI_CH_Dm = ACTION_FUNCTION_OPT(minor,D), - MI_CH_Dsm = ACTION_FUNCTION_OPT(minor,Ds), + MI_CH_Dm = F(DMinor), + MI_CH_Dsm = F(DsMinor), MI_CH_Ebm = MI_CH_Dsm, - MI_CH_Em = ACTION_FUNCTION_OPT(minor,E), - MI_CH_Fm = ACTION_FUNCTION_OPT(minor,F), - MI_CH_Fsm = ACTION_FUNCTION_OPT(minor,Fs), + MI_CH_Em = F(EMinor), + MI_CH_Fm = F(FMinor), + MI_CH_Fsm = F(FsMinor), MI_CH_Gbm = MI_CH_Fsm, - MI_CH_Gm = ACTION_FUNCTION_OPT(minor,G), - MI_CH_Gsm= ACTION_FUNCTION_OPT(minor,Gs), + MI_CH_Gm = F(GMinor), + MI_CH_Gsm = F(GsMinor), MI_CH_Abm = MI_CH_Gsm, - MI_CH_Am = ACTION_FUNCTION_OPT(minor,A), - MI_CH_Asm = ACTION_FUNCTION_OPT(minor,As), + MI_CH_Am = F(AMinor), + MI_CH_Asm = F(AsMinor), MI_CH_Bbm = MI_CH_Asm, - MI_CH_Bm = ACTION_FUNCTION_OPT(minor,B), + MI_CH_Bm = F(BMinor), }; //Morse Code Macro Keys @@ -646,56 +689,91 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Midi Chord Function -void action_function_opt(keyrecord_t *record, uint8_t id, uint8_t opt) { +const uint16_t PROGMEM fn_actions[] = { + + //Major Chords + + [CMajor] = ACTION_FUNCTION_OPT(major, C), + [CsMajor] = ACTION_FUNCTION_OPT(major, Cs), + [DMajor] = ACTION_FUNCTION_OPT(major, D), + [DsMajor] = ACTION_FUNCTION_OPT(major, Ds), + [EMajor] = ACTION_FUNCTION_OPT(major, E), + [FMajor] = ACTION_FUNCTION_OPT(major, F), + [FsMajor] = ACTION_FUNCTION_OPT(major, Fs), + [GMajor] = ACTION_FUNCTION_OPT(major, G), + [GsMajor] = ACTION_FUNCTION_OPT(major, Gs), + [AMajor] = ACTION_FUNCTION_OPT(major, A), + [AsMajor] = ACTION_FUNCTION_OPT(major, As), + [BMajor] = ACTION_FUNCTION_OPT(major, B), + + //Minor Chords + + [CMinor] = ACTION_FUNCTION_OPT(minor, C), + [CsMinor] = ACTION_FUNCTION_OPT(minor, Cs), + [DMinor] = ACTION_FUNCTION_OPT(minor, D), + [DsMinor] = ACTION_FUNCTION_OPT(minor, Ds), + [EMinor] = ACTION_FUNCTION_OPT(minor, E), + [FMinor] = ACTION_FUNCTION_OPT(minor, F), + [FsMinor] = ACTION_FUNCTION_OPT(minor, Fs), + [GMinor] = ACTION_FUNCTION_OPT(minor, G), + [GsMinor] = ACTION_FUNCTION_OPT(minor, Gs), + [AMinor] = ACTION_FUNCTION_OPT(minor, A), + [AsMinor] = ACTION_FUNCTION_OPT(minor, As), + [BMinor] = ACTION_FUNCTION_OPT(minor, B), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { uint16_t root_note = MIDI_INVALID_NOTE; switch (opt) { - case 0: //Root note C + case C: //Root note C root_note = MI_C; break; - case 1: //Root note C#/Db + case Cs: //Root note C#/Db root_note = MI_Cs; break; - case 2: // Root note D + case D: // Root note D root_note = MI_D; break; - case 3: // Root note D#/Eb + case Ds: // Root note D#/Eb root_note = MI_Ds; break; - case 4: // Root note E + case E: // Root note E root_note = MI_E; break; - case 5: // Root note F + case F: // Root note F root_note = MI_F; break; - case 6: // Root note F#/Gb + case Fs: // Root note F#/Gb root_note = MI_Fs; break; - case 7: // Root note G + case G: // Root note G root_note = MI_G; break; - case 8: // Root note G#/Ab + case Gs: // Root note G#/Ab root_note = MI_Gs; break; - case 9: // Root note A + case A: // Root note A root_note = MI_A; break; - case 10: // Root note A#/Bb + case As: // Root note A#/Bb root_note = MI_As; break; - case 11: // Root note B + case B: // Root note B root_note = MI_B; break; } - uint8_t major_third = root_note + 4; - uint8_t minor_third = root_note + 3; - uint8_t fifth = root_note + 7; + uint16_t major_third = root_note + 4; + uint16_t minor_third = root_note + 3; + uint16_t fifth = root_note + 7; switch (id) { - case 0: //Major chord + case major: //Major chord + dprintf("Root Note:%d - Major Third:%d - Fifth:%d\n", root_note, major_third, fifth); process_midi(root_note, record); process_midi(major_third, record); process_midi(fifth, record); break; - case 1: //Minor chord + case minor: //Minor chord + dprintf("Root Note:%d - Minor Third:%d - Fifth:%d\n", root_note, minor_third, fifth); process_midi(root_note, record); process_midi(minor_third, record); process_midi(fifth, record); -- cgit v1.2.3-24-g4f1b From 58af88eb512bc223e1c09115290f9da390795aa3 Mon Sep 17 00:00:00 2001 From: binaryplease Date: Mon, 29 May 2017 00:52:38 +0200 Subject: copied default planck keymap to handwired_binaryplease; --- .../planck/keymaps/handwired_binaryplease/Makefile | 3 + .../planck/keymaps/handwired_binaryplease/config.h | 29 ++ .../planck/keymaps/handwired_binaryplease/keymap.c | 317 +++++++++++++++++++++ .../keymaps/handwired_binaryplease/readme.md | 2 + 4 files changed, 351 insertions(+) create mode 100644 keyboards/planck/keymaps/handwired_binaryplease/Makefile create mode 100644 keyboards/planck/keymaps/handwired_binaryplease/config.h create mode 100644 keyboards/planck/keymaps/handwired_binaryplease/keymap.c create mode 100644 keyboards/planck/keymaps/handwired_binaryplease/readme.md (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/Makefile b/keyboards/planck/keymaps/handwired_binaryplease/Makefile new file mode 100644 index 000000000..457a3d01d --- /dev/null +++ b/keyboards/planck/keymaps/handwired_binaryplease/Makefile @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/handwired_binaryplease/config.h b/keyboards/planck/keymaps/handwired_binaryplease/config.h new file mode 100644 index 000000000..4c6158199 --- /dev/null +++ b/keyboards/planck/keymaps/handwired_binaryplease/config.h @@ -0,0 +1,29 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c new file mode 100644 index 000000000..d149019fe --- /dev/null +++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c @@ -0,0 +1,317 @@ +// 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" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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. + +enum planck_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/handwired_binaryplease/readme.md b/keyboards/planck/keymaps/handwired_binaryplease/readme.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/handwired_binaryplease/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + -- cgit v1.2.3-24-g4f1b From 64e4c47ae4f21396d3e6078e6149d8f1a901af25 Mon Sep 17 00:00:00 2001 From: binaryplease Date: Mon, 29 May 2017 01:14:25 +0200 Subject: disabled backlight and audio --- .../planck/keymaps/handwired_binaryplease/Makefile | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/Makefile b/keyboards/planck/keymaps/handwired_binaryplease/Makefile index 457a3d01d..538b1c26c 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/Makefile +++ b/keyboards/planck/keymaps/handwired_binaryplease/Makefile @@ -1,3 +1,74 @@ ifndef QUANTUM_DIR include ../../../../Makefile endif + + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= yes # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. +API_SYSEX_ENABLE = no + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -- cgit v1.2.3-24-g4f1b From a83662329db8b5f22d8570f10567a8deef975408 Mon Sep 17 00:00:00 2001 From: binaryplease Date: Mon, 29 May 2017 01:28:18 +0200 Subject: overwriting optins in makefile and configuration --- .../planck/keymaps/handwired_binaryplease/config.h | 32 +++++++++------------- 1 file changed, 13 insertions(+), 19 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/config.h b/keyboards/planck/keymaps/handwired_binaryplease/config.h index 4c6158199..7de80f195 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/config.h +++ b/keyboards/planck/keymaps/handwired_binaryplease/config.h @@ -3,27 +3,21 @@ #include "../../config.h" -/* - * MIDI options - */ +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define MANUFACTURER binaryplease +#define PRODUCT Teensy_Planck +#define DESCRIPTION A compact ortholinear keyboard using a teensy 2.0 -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 +#define MATRIX_ROW_PINS { D3, D2, D1, D0 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, D4 } +#define UNUSED_PINS -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -#define MIDI_BASIC +#define BACKLIGHT_PIN B7 -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 0 -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 -#endif \ No newline at end of file +#endif -- cgit v1.2.3-24-g4f1b From 3ea572673957ec67e3548a961a34e68b0b4b085f Mon Sep 17 00:00:00 2001 From: binaryplease Date: Mon, 29 May 2017 13:53:13 +0200 Subject: redefined options in config.h --- keyboards/planck/keymaps/handwired_binaryplease/config.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/config.h b/keyboards/planck/keymaps/handwired_binaryplease/config.h index 7de80f195..5a90634bf 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/config.h +++ b/keyboards/planck/keymaps/handwired_binaryplease/config.h @@ -4,6 +4,22 @@ #include "../../config.h" /* USB Device descriptor parameter */ + + + +#undef VENDOR_ID +#undef PRODUCT_ID +#undef MANUFACTURER +#undef PRODUCT +#undef DESCRIPTION +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#undef UNUSED_PINS +#undef BACKLIGHT_PIN +#undef BACKLIGHT_LEVELS + + + #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define MANUFACTURER binaryplease -- cgit v1.2.3-24-g4f1b From 4c48c29c0e65f66f95290a6f056d0af5b3cc5ab0 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 29 May 2017 22:09:06 -0400 Subject: Added MIDI_CHORD layer and other little fixes. Updated readme.md --- .../bluebear/S60X-Bluebear-ARROWFN-Layer.png | Bin 17938 -> 18499 bytes .../keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png | Bin 21329 -> 0 bytes .../keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png | Bin 16119 -> 16499 bytes keyboards/s60_x/keymaps/bluebear/keymap.c | 195 ++++++++++++++++++--- keyboards/s60_x/keymaps/bluebear/readme.md | 60 ++++++- 5 files changed, 226 insertions(+), 29 deletions(-) delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png index a7c6df504..1f659d184 100644 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png deleted file mode 100644 index c8df0a9e9..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png index c74348389..4e92a60c7 100644 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 3be39c3fa..44ebb5aad 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -3,11 +3,12 @@ // Keyboard Layers enum keyboard_layers { - BASE, //Base Layer - ARROWFN, //Arrow/FN Layer - MOUSE, //Mouse Layer - MIDI, //Midi Layer - MORSE, //Morse Code Layer + BASE, //Base Layer + ARROWFN, //Arrow/FN Layer + MOUSE, //Mouse Layer + MIDI_BASE, //Midi Layer + MIDI_CHORDS, //Midi Chord Layer + MORSE, //Morse Code Layer }; // Midi Chords @@ -15,6 +16,8 @@ enum keyboard_layers { enum midi_chord_modes { //ACTION_FUNCTION id major, minor, + dom_seventh, + dim_seventh, }; enum midi_chord_root { //ACTION_FUNCTION opt @@ -78,6 +81,46 @@ enum midi_chord_id { //ACTION_FUNCTION Progmem Id AsMinor, BbMinor = AsMinor, BMinor, + + //Dominant Seventh Chords + + CDom7, + CsDom7, + DbDom7 = CsDom7, + DDom7, + DsDom7, + EbDom7 = DsDom7, + EDom7, + FDom7, + FsDom7, + GbDom7 = FsDom7, + GDom7, + GsDom7, + AbDom7 = GsDom7, + ADom7, + AsDom7, + BbDom7 = AsDom7, + BDom7, + + //Diminished Seventh Chords + + CDim7, + CsDim7, + DbDim7 = CsDim7, + DDim7, + DsDim7, + EbDim7 = DsDim7, + EDim7, + FDim7, + FsDim7, + GbDim7 = FsDim7, + GDim7, + GsDim7, + AbDim7 = GsDim7, + ADim7, + AsDim7, + BbDim7 = AsDim7, + BDim7, }; enum midi_chord_keycodes { //Midi Chocd Keycodes @@ -121,6 +164,46 @@ enum midi_chord_keycodes { //Midi Chocd Keycodes MI_CH_Asm = F(AsMinor), MI_CH_Bbm = MI_CH_Asm, MI_CH_Bm = F(BMinor), + + //Dominant Seventh Keycodes + + MI_CH_CDom7 = F(CDom7), + MI_CH_CsDom7 = F(CsDom7), + MI_CH_DbDom7 = MI_CH_CsDom7, + MI_CH_DDom7 = F(DDom7), + MI_CH_DsDom7 = F(DsDom7), + MI_CH_EbDom7 = MI_CH_DsDom7, + MI_CH_EDom7 = F(EDom7), + MI_CH_FDom7 = F(FDom7), + MI_CH_FsDom7 = F(FsDom7), + MI_CH_GbDom7 = MI_CH_FsDom7, + MI_CH_GDom7 = F(GDom7), + MI_CH_GsDom7 = F(GsDom7), + MI_CH_AbDom7 = MI_CH_GsDom7, + MI_CH_ADom7 = F(ADom7), + MI_CH_AsDom7 = F(AsDom7), + MI_CH_BbDom7 = MI_CH_AsDom7, + MI_CH_BDom7 = F(BDom7), + + //Diminished Seventh Keycodes + + MI_CH_CDim7 = F(CDim7), + MI_CH_CsDim7 = F(CsDim7), + MI_CH_DbDim7 = MI_CH_CsDim7, + MI_CH_DDim7 = F(DDim7), + MI_CH_DsDim7 = F(DsDim7), + MI_CH_EbDim7 = MI_CH_DsDim7, + MI_CH_EDim7 = F(EDim7), + MI_CH_FDim7 = F(FDim7), + MI_CH_FsDim7 = F(FsDim7), + MI_CH_GbDim7 = MI_CH_FsDim7, + MI_CH_GDim7 = F(GDim7), + MI_CH_GsDim7 = F(GsDim7), + MI_CH_AbDim7 = MI_CH_GsDim7, + MI_CH_ADim7 = F(ADim7), + MI_CH_AsDim7 = F(AsDim7), + MI_CH_BbDim7 = MI_CH_AsDim7, + MI_CH_BDim7 = F(BDim7), }; //Morse Code Macro Keys @@ -202,7 +285,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 1: Arrow/FN Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │TO(3)│TO(4)│ + │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │TO(3)│TO(5)│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │ │ │ │ │PGUP │ UP │ │ │ │ INS │ DEL │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -215,7 +298,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [ARROWFN] = KEYMAP( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(4), \ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(5), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_NO, KC_NO, KC_NO, KC_INS, KC_DEL, \ KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, \ @@ -225,7 +308,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 2: Mouse Keys Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │RESET│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ │ + │RESET│ F13 │ F14 │ F15 │ F16 │ F17 │ F18 │ F19 │ F20 │ F21 │ F22 │ F23 │ F24 │ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │DEBUG│ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -239,37 +322,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MOUSE] = KEYMAP( - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ + RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, \ DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_TRNS, KC_NO, KC_NO, KC_POWER, KC_NO, KC_NO, KC_NO, KC_NO ), - /* 3: Midi Layer + /* 3: Midi Base Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │TO(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│ │ │ + │TO(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│ │TO(4)│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ C# │ D# │ │ F# │ G# │ A# │ │ C# │ D# │ │ │ │█████│ + │OCT+ │ │ C# │ D# │ │ F# │ G# │ A# │ │ C# │ D# │ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │OCT- │ C │ D │ E │ F │ G │ A │ B │ C │ D │ E │ F │▒▒▒▒▒│OCT+ │█████│ + │OCT- │ C │ D │ E │ F │ G │ A │ B │ C │ D │ E │ F │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ Am │▒▒▒▒▒│ Em │ Bm │ F#m │ C#m │ G#m │ D#m │ Bbm │ Fm │ Cm │ Gm │▒▒▒▒▒│ Dm │▒▒▒▒▒│ + │ Cm │▒▒▒▒▒│ Gm │ Dm │ Am │ Em │ Bm │ Gbm │ Dbm │ Abm │ Ebm │ Bbm │▒▒▒▒▒│ Fm │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │█████│█████│█████│A-OFF│█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ - [MIDI] = KEYMAP( - TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, KC_NO, KC_NO, \ - KC_NO, KC_NO, MI_Cs, MI_Ds, KC_NO, MI_Fs, MI_Gs, MI_As, KC_NO, MI_Cs_1, MI_Ds_1, KC_NO, KC_NO, KC_NO, \ - MI_OCTD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, KC_NO, MI_OCTU, \ - MI_CH_Am, KC_NO, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm, MI_CH_Csm, MI_CH_Gsm, MI_CH_Dsm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, KC_NO, MI_CH_Dm, KC_NO, \ - KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO - ), + [MIDI_BASE] = KEYMAP( + TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, KC_NO, TO(4), \ + MI_OCTU, KC_NO, MI_Cs, MI_Ds, KC_NO, MI_Fs, MI_Gs, MI_As, KC_NO, MI_Cs_1, MI_Ds_1, KC_NO, KC_NO, KC_NO, \ + MI_OCTD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, KC_NO, KC_NO, \ + MI_CH_Cm, KC_NO, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, KC_NO, MI_CH_Fm, KC_NO, \ + KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* 4: Midi Chord Layer - /* 4: Morse Code Layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │TO(0)│ Cmaj│ Gmaj│ Dmaj│ Amaj│ Emaj│ Bmaj│Gbmaj│Dbmaj│Abmaj│Ebmaj│Bbmaj│ Fmaj│TO(3)│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │OCT+ │ Cm │ Gm │ Dm │ Am │ Em │ Bbm │ Gbm │ Dbm │ Abm │ Ebm │ Bbm │ Fm │ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │OCT- │Cdom7│Gdom7│Ddom7│Adom7│Edom7│Bdom7│Gbdo7│Dbdo7│Abdo7│Ebdo7│Bbdo7│▒▒▒▒▒│Fdom7│█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │Cdim7│▒▒▒▒▒│Gdim7│Ddim7│Adim7│Edim7│Bdim7│Gbdi7│Dbdi7│Abdi7│Ebdi7│Bbdi7│▒▒▒▒▒│Fdim7│▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│A-OFF│█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [MIDI_CHORDS] = KEYMAP( + TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, TO(3), KC_NO, \ + MI_OCTU, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bbm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ + MI_OCTD, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_GbDom7, MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, KC_NO, MI_CH_FDom7, \ + MI_CH_CDim7, KC_NO, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_GbDim7, MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, KC_NO, MI_CH_FDim7, KC_NO, \ + KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* 5: Morse Code Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │TO(0)│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ @@ -720,6 +826,36 @@ const uint16_t PROGMEM fn_actions[] = { [AMinor] = ACTION_FUNCTION_OPT(minor, A), [AsMinor] = ACTION_FUNCTION_OPT(minor, As), [BMinor] = ACTION_FUNCTION_OPT(minor, B), + + //Dominant 7th + + [CDom7] = ACTION_FUNCTION_OPT(dom_seventh, C), + [CsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Cs), + [DDom7] = ACTION_FUNCTION_OPT(dom_seventh, D), + [DsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Ds), + [EDom7] = ACTION_FUNCTION_OPT(dom_seventh, E), + [FDom7] = ACTION_FUNCTION_OPT(dom_seventh, F), + [FsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Fs), + [GDom7] = ACTION_FUNCTION_OPT(dom_seventh, G), + [GsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Gs), + [ADom7] = ACTION_FUNCTION_OPT(dom_seventh, A), + [AsDom7] = ACTION_FUNCTION_OPT(dom_seventh, As), + [BDom7] = ACTION_FUNCTION_OPT(dom_seventh, B), + + //Diminished 7th + + [CDim7] = ACTION_FUNCTION_OPT(dim_seventh, C), + [CsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Cs), + [DDim7] = ACTION_FUNCTION_OPT(dim_seventh, D), + [DsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Ds), + [EDim7] = ACTION_FUNCTION_OPT(dim_seventh, E), + [FDim7] = ACTION_FUNCTION_OPT(dim_seventh, F), + [FsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Fs), + [GDim7] = ACTION_FUNCTION_OPT(dim_seventh, G), + [GsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Gs), + [ADim7] = ACTION_FUNCTION_OPT(dim_seventh, A), + [AsDim7] = ACTION_FUNCTION_OPT(dim_seventh, As), + [BDim7] = ACTION_FUNCTION_OPT(dim_seventh, B), }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -764,19 +900,30 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } uint16_t major_third = root_note + 4; uint16_t minor_third = root_note + 3; + //uint16_t flat_fifth = root_note + 6; uint16_t fifth = root_note + 7; + uint16_t minor_seventh = root_note + 10; + uint16_t diminished_seventh = root_note -3; switch (id) { case major: //Major chord - dprintf("Root Note:%d - Major Third:%d - Fifth:%d\n", root_note, major_third, fifth); process_midi(root_note, record); process_midi(major_third, record); process_midi(fifth, record); break; case minor: //Minor chord - dprintf("Root Note:%d - Minor Third:%d - Fifth:%d\n", root_note, minor_third, fifth); process_midi(root_note, record); process_midi(minor_third, record); process_midi(fifth, record); break; + case dom_seventh: //Dominant Seventh chord + process_midi(root_note, record); + process_midi(major_third, record); + process_midi(minor_seventh, record); + break; + case dim_seventh: //Diminished Seventh Chord + process_midi(root_note, record); + process_midi(minor_third, record); + process_midi(diminished_seventh, record); + break; } } diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 579683abc..9a70cde96 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -1,25 +1,75 @@ -## Bluebear’s custom S60X layout +# Bluebear’s custom S60X layout Custom keyboard layout for my S60X, my first ever custom mechanical keyboard kit. This layout was inspired in part by the HHKB line of keyboards and a quest to find the perfect ergonomic, logical layout for what I do. If you like this layout, please feel free to use it, modify it and share it. -## Base Layer +## BASE Layer +![BASE Layer](S60X-Bluebear-BASE-Layer.png) + +-Dvorak keyboard layout -Hold left control key for LCTL, and tap it for ESC -Hold enter key for RCTL and tap for ENT --Hold the space key to momentarily switch to [ARROW] layer --Left bottom key acts as momentary switch to the [MOUSE] layer +-Hold the space key to momentarily switch to ARROWFN layer +-Left bottom key acts as momentary switch to the MOUSE layer -Hold right alt key for AltGr and tap for APP(which I have mapped to Compose in OS) -Hold left shift key for LSFT and tap for ( (Space Cadet style) -Hold right shift key for RSFT and tap for ) (Space Cadet style) -Tap key on bottom row, second from the right (where APP usually is) to get CTL-Shift (one shot modifier - next key pressed will be modified by ctl-shift) -Tap key on bottom right to get CTL-Alt (one shot modifier - next key pressed will be modified by ctl-alt) -## Mouse Layer +## ARROWFN Layer + +![ARROWFN Layer](S60X-Bluebear-ARROWFN-Layer.png) + +-Number row becomes F1 to F12 +-C, T, H, N keys become Up, Down, Left, Right +-Access to various other keys normally found on a full sized keyboard +-Top right button toggles MORSE layer +-Second from right, top row, toggles MIDI_BASE layer +## MOUSE Layer + +![MOUSE Layer](S60X-Bluebear-MOUSE-Layer.png) + +-Move the mouse with mouse keys -Hitting the escape key in this layer will give RESET, which puts the controller into dfu mode for flashing firmware onto it -Hitting the space key in this layer is like hitting power button on computer +-Hitting the tab button toggles caps lock +-Number row becomes F13 to F24 + +## MIDI_BASE Layer + +![MIDI_BASE Layer](S60X-Bluebear-MIDI_BASE-Layer.png) + +This layer was inspired by the Satan Midi layout (https://github.com/qmk/qmk_firmware/tree/master/keyboards/satan/keymaps/midi) and gives access to basic MIDI notes. What I added were two layers of MIDI chords (major and minor triads) arranged in a circle of fifths pattern. Thanks to @fredizzimo for helping me with the code for these chords. + +-Top right button toggles MORSE_CHORDS layer +-Escape brings you back to the BASE layer + +## MIDI_CHORDS Layer + +![MIDI_CHORDS Layer](S60X-Bluebear-MIDI_CHORDS-Layer.png) + +After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the Stradella Base system (https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. + +-Second from right, top row, toggles MIDI_BASE layer +-Escape brings you back to the BASE layer + +## MORSE LAYER + +![MORSE Layer](S60X-Bluebear-MORSE-Layer.png) + +This layer is really just for fun, and because I am a ham radio operator and morse code enthusiast. Hitting the alphanumerical keys in this layer will send a series of dits (.) and dahs (-) representing that character in morse code. + +-Escape brings you back to the BASE layer + +### THIS IS STILL A WORK IN PROGRESS + +This keyboard layout is still a work in progress and there are a couple of kinks left to iron out. But it is still very usable and the midi and morse code layers are lots of fun to use. Please feel free to use, share and improve all, or part of this layout. + + -- cgit v1.2.3-24-g4f1b From 1ef911d150e361668be72e0082ade728a199e889 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 29 May 2017 22:11:48 -0400 Subject: Added a few images --- .../bluebear/120-button_Stradella_chart.svg | 5190 ++++++++++++++++++++ .../bluebear/S60X-Bluebear-MIDI_BASE-Layer.png | Bin 0 -> 22521 bytes .../bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png | Bin 0 -> 23687 bytes 3 files changed, 5190 insertions(+) create mode 100644 keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg b/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg new file mode 100644 index 000000000..bd878faa1 --- /dev/null +++ b/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg @@ -0,0 +1,5190 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png new file mode 100644 index 000000000..58ad1605f Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png new file mode 100644 index 000000000..74a373ae2 Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png differ -- cgit v1.2.3-24-g4f1b From cd4ccee703770bf5dce977f539e53f30e139313d Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 29 May 2017 22:13:52 -0400 Subject: Corrected typo in readme.md --- keyboards/s60_x/keymaps/bluebear/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 9a70cde96..50af6d835 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -48,9 +48,9 @@ This layer was inspired by the Satan Midi layout (https://github.com/qmk/qmk_fir -Top right button toggles MORSE_CHORDS layer -Escape brings you back to the BASE layer -## MIDI_CHORDS Layer +## MIDI_CHORD Layer -![MIDI_CHORDS Layer](S60X-Bluebear-MIDI_CHORDS-Layer.png) +![MIDI_CHORD Layer](S60X-Bluebear-MIDI_CHORDS-Layer.png) After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the Stradella Base system (https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. -- cgit v1.2.3-24-g4f1b From 06684555d21059e55a549fc6c24936920e35f965 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 29 May 2017 22:16:17 -0400 Subject: Another typo... --- keyboards/s60_x/keymaps/bluebear/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 50af6d835..6f54d4d58 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -50,7 +50,7 @@ This layer was inspired by the Satan Midi layout (https://github.com/qmk/qmk_fir ## MIDI_CHORD Layer -![MIDI_CHORD Layer](S60X-Bluebear-MIDI_CHORDS-Layer.png) +![MIDI_CHORD Layer](S60X-Bluebear-MIDI_CHORD-Layer.png) After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the Stradella Base system (https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. -- cgit v1.2.3-24-g4f1b From fbaf964a854a8fc754871730deb219ab48fd6937 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Tue, 30 May 2017 21:27:00 -0400 Subject: Improvements to Midi and keymap --- keyboards/s60_x/keymaps/bluebear/keymap.c | 114 +++++++++++++++--------------- 1 file changed, 57 insertions(+), 57 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 44ebb5aad..87a792a01 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -13,14 +13,14 @@ enum keyboard_layers { // Midi Chords -enum midi_chord_modes { //ACTION_FUNCTION id +enum midi_chord_modes { //ACTION_FUNCTION opt major, minor, dom_seventh, dim_seventh, }; -enum midi_chord_root { //ACTION_FUNCTION opt +enum midi_chord_root { //ACTION_FUNCTION id C, Cs, Db = Cs, @@ -301,8 +301,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TO(3), TO(5), \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_NO, KC_NO, KC_NO, KC_INS, KC_DEL, \ KC_CAPS, KC_HOME, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_TRNS, KC_NO, \ + KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), /* 2: Mouse Keys Layer @@ -324,9 +324,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, \ DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_TRNS, KC_NO, KC_NO, KC_POWER, KC_NO, KC_NO, KC_NO, KC_NO + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_TRNS, \ + 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_NO, KC_TRNS, KC_NO, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_POWER, KC_TRNS, KC_TRNS, KC_NO, KC_NO ), /* 3: Midi Base Layer @@ -799,68 +799,68 @@ const uint16_t PROGMEM fn_actions[] = { //Major Chords - [CMajor] = ACTION_FUNCTION_OPT(major, C), - [CsMajor] = ACTION_FUNCTION_OPT(major, Cs), - [DMajor] = ACTION_FUNCTION_OPT(major, D), - [DsMajor] = ACTION_FUNCTION_OPT(major, Ds), - [EMajor] = ACTION_FUNCTION_OPT(major, E), - [FMajor] = ACTION_FUNCTION_OPT(major, F), - [FsMajor] = ACTION_FUNCTION_OPT(major, Fs), - [GMajor] = ACTION_FUNCTION_OPT(major, G), - [GsMajor] = ACTION_FUNCTION_OPT(major, Gs), - [AMajor] = ACTION_FUNCTION_OPT(major, A), - [AsMajor] = ACTION_FUNCTION_OPT(major, As), - [BMajor] = ACTION_FUNCTION_OPT(major, B), + [CMajor] = ACTION_FUNCTION_OPT(C, major), + [CsMajor] = ACTION_FUNCTION_OPT(Cs, major), + [DMajor] = ACTION_FUNCTION_OPT(D, major), + [DsMajor] = ACTION_FUNCTION_OPT(Ds, major), + [EMajor] = ACTION_FUNCTION_OPT(E, major), + [FMajor] = ACTION_FUNCTION_OPT(F, major), + [FsMajor] = ACTION_FUNCTION_OPT(Fs, major), + [GMajor] = ACTION_FUNCTION_OPT(G, major), + [GsMajor] = ACTION_FUNCTION_OPT(Gs, major), + [AMajor] = ACTION_FUNCTION_OPT(A, major), + [AsMajor] = ACTION_FUNCTION_OPT(As, major), + [BMajor] = ACTION_FUNCTION_OPT(B, major), //Minor Chords - [CMinor] = ACTION_FUNCTION_OPT(minor, C), - [CsMinor] = ACTION_FUNCTION_OPT(minor, Cs), - [DMinor] = ACTION_FUNCTION_OPT(minor, D), - [DsMinor] = ACTION_FUNCTION_OPT(minor, Ds), - [EMinor] = ACTION_FUNCTION_OPT(minor, E), - [FMinor] = ACTION_FUNCTION_OPT(minor, F), - [FsMinor] = ACTION_FUNCTION_OPT(minor, Fs), - [GMinor] = ACTION_FUNCTION_OPT(minor, G), - [GsMinor] = ACTION_FUNCTION_OPT(minor, Gs), - [AMinor] = ACTION_FUNCTION_OPT(minor, A), - [AsMinor] = ACTION_FUNCTION_OPT(minor, As), - [BMinor] = ACTION_FUNCTION_OPT(minor, B), + [CMinor] = ACTION_FUNCTION_OPT(C, minor), + [CsMinor] = ACTION_FUNCTION_OPT(Cs, minor), + [DMinor] = ACTION_FUNCTION_OPT(D, minor), + [DsMinor] = ACTION_FUNCTION_OPT(Ds, minor), + [EMinor] = ACTION_FUNCTION_OPT(E, minor), + [FMinor] = ACTION_FUNCTION_OPT(F, minor), + [FsMinor] = ACTION_FUNCTION_OPT(Fs, minor), + [GMinor] = ACTION_FUNCTION_OPT(G, minor), + [GsMinor] = ACTION_FUNCTION_OPT(Gs, minor), + [AMinor] = ACTION_FUNCTION_OPT(A, minor), + [AsMinor] = ACTION_FUNCTION_OPT(As, minor), + [BMinor] = ACTION_FUNCTION_OPT(B, minor), //Dominant 7th - [CDom7] = ACTION_FUNCTION_OPT(dom_seventh, C), - [CsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Cs), - [DDom7] = ACTION_FUNCTION_OPT(dom_seventh, D), - [DsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Ds), - [EDom7] = ACTION_FUNCTION_OPT(dom_seventh, E), - [FDom7] = ACTION_FUNCTION_OPT(dom_seventh, F), - [FsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Fs), - [GDom7] = ACTION_FUNCTION_OPT(dom_seventh, G), - [GsDom7] = ACTION_FUNCTION_OPT(dom_seventh, Gs), - [ADom7] = ACTION_FUNCTION_OPT(dom_seventh, A), - [AsDom7] = ACTION_FUNCTION_OPT(dom_seventh, As), - [BDom7] = ACTION_FUNCTION_OPT(dom_seventh, B), + [CDom7] = ACTION_FUNCTION_OPT(C, dom_seventh), + [CsDom7] = ACTION_FUNCTION_OPT(Cs, dom_seventh), + [DDom7] = ACTION_FUNCTION_OPT(D, dom_seventh), + [DsDom7] = ACTION_FUNCTION_OPT(Ds, dom_seventh), + [EDom7] = ACTION_FUNCTION_OPT(E, dom_seventh), + [FDom7] = ACTION_FUNCTION_OPT(F, dom_seventh), + [FsDom7] = ACTION_FUNCTION_OPT(Fs, dom_seventh), + [GDom7] = ACTION_FUNCTION_OPT(G, dom_seventh), + [GsDom7] = ACTION_FUNCTION_OPT(Gs, dom_seventh), + [ADom7] = ACTION_FUNCTION_OPT(A, dom_seventh), + [AsDom7] = ACTION_FUNCTION_OPT(As, dom_seventh), + [BDom7] = ACTION_FUNCTION_OPT(B, dom_seventh), //Diminished 7th - [CDim7] = ACTION_FUNCTION_OPT(dim_seventh, C), - [CsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Cs), - [DDim7] = ACTION_FUNCTION_OPT(dim_seventh, D), - [DsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Ds), - [EDim7] = ACTION_FUNCTION_OPT(dim_seventh, E), - [FDim7] = ACTION_FUNCTION_OPT(dim_seventh, F), - [FsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Fs), - [GDim7] = ACTION_FUNCTION_OPT(dim_seventh, G), - [GsDim7] = ACTION_FUNCTION_OPT(dim_seventh, Gs), - [ADim7] = ACTION_FUNCTION_OPT(dim_seventh, A), - [AsDim7] = ACTION_FUNCTION_OPT(dim_seventh, As), - [BDim7] = ACTION_FUNCTION_OPT(dim_seventh, B), + [CDim7] = ACTION_FUNCTION_OPT(C, dim_seventh), + [CsDim7] = ACTION_FUNCTION_OPT(Cs, dim_seventh), + [DDim7] = ACTION_FUNCTION_OPT(D, dim_seventh), + [DsDim7] = ACTION_FUNCTION_OPT(Ds, dim_seventh), + [EDim7] = ACTION_FUNCTION_OPT(E, dim_seventh), + [FDim7] = ACTION_FUNCTION_OPT(F, dim_seventh), + [FsDim7] = ACTION_FUNCTION_OPT(Fs, dim_seventh), + [GDim7] = ACTION_FUNCTION_OPT(G, dim_seventh), + [GsDim7] = ACTION_FUNCTION_OPT(Gs, dim_seventh), + [ADim7] = ACTION_FUNCTION_OPT(A, dim_seventh), + [AsDim7] = ACTION_FUNCTION_OPT(As, dim_seventh), + [BDim7] = ACTION_FUNCTION_OPT(B, dim_seventh), }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { uint16_t root_note = MIDI_INVALID_NOTE; - switch (opt) { + switch (id) { case C: //Root note C root_note = MI_C; break; @@ -904,7 +904,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { uint16_t fifth = root_note + 7; uint16_t minor_seventh = root_note + 10; uint16_t diminished_seventh = root_note -3; - switch (id) { + switch (opt) { case major: //Major chord process_midi(root_note, record); process_midi(major_third, record); -- cgit v1.2.3-24-g4f1b From 9af272e4bb685faabd1d879231f2718f0c00b32d Mon Sep 17 00:00:00 2001 From: jpetermans Date: Tue, 30 May 2017 21:52:44 -0700 Subject: Update lock led processing and remove debug msgs --- keyboards/infinity60/keymaps/jpetermans/keymap.c | 1 - keyboards/infinity60/led_controller.c | 32 ++++++------------------ keyboards/infinity60/led_controller.h | 3 ++- keyboards/infinity60/rules.mk | 2 +- 4 files changed, 10 insertions(+), 28 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index cc4633b1b..59249ff72 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -247,7 +247,6 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - xprintf("init start"); led_controller_init(); diff --git a/keyboards/infinity60/led_controller.c b/keyboards/infinity60/led_controller.c index 5c177d26b..21f95a9c1 100644 --- a/keyboards/infinity60/led_controller.c +++ b/keyboards/infinity60/led_controller.c @@ -135,7 +135,6 @@ msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result) { * initialise the IS31 chip * ======================== */ void is31_init(void) { - xprintf("_is31_init\n"); // just to be sure that it's all zeroes __builtin_memset(full_page,0,0xB4+1); // zero function page, all registers (assuming full_page is all zeroes) @@ -200,41 +199,33 @@ static THD_FUNCTION(LEDthread, arg) { msg_args[1] = (msg >> 16) & 0XFF; msg_args[2] = (msg >> 24) & 0xFF; - xprintf("msg_type: %d-%d-%d\n", msg_type, msg_args[0], msg_args[1]); switch (msg_type){ case SET_FULL_ROW: - xprintf("FULL ROW: %d-%d\n", msg_args[0], msg_args[1]); //write full byte to pin address, msg_args[1] = pin #, msg_args[0] = 8 bits to write //writes only to currently displayed page write_led_byte(page_status, msg_args[1], msg_args[0]); break; case OFF_LED: - xprintf("OFF: %d-%d\n", msg_args[0], msg_args[1]); //on/off/toggle single led, msg_args[0] = row/col of led, msg_args[1] = page set_led_bit(msg_args[1], control_register_word, msg_args[0], 0); break; case ON_LED: - xprintf("ON: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 1); break; case TOGGLE_LED: - xprintf("TOGGLE: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 2); break; case BLINK_OFF_LED: - xprintf("B_on: %d-%d\n", msg_args[0], msg_args[1]); //on/off/toggle single led, msg_args[0] = row/col of led set_led_bit(msg_args[1], control_register_word, msg_args[0], 4); break; case BLINK_ON_LED: - xprintf("B_off: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 5); break; case BLINK_TOGGLE_LED: - xprintf("B_togg: %d-%d\n", msg_args[0], msg_args[1]); set_led_bit(msg_args[1], control_register_word, msg_args[0], 6); break; @@ -244,12 +235,10 @@ static THD_FUNCTION(LEDthread, arg) { chThdSleepMilliseconds(5); is31_read_register(0, 0x00, &temp); is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - xprintf("TOGGLE_ALL: %d-%d\n", msg_args[0], msg_args[1]); - xprintf("temp: %d\n", temp); led_control_reg[0] = 0; - //if first leds are already on, toggle frame 0 off + //toggle led mask based on current state (temp) if (temp==0 || page_status > 0) { __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); } else { @@ -262,13 +251,14 @@ static THD_FUNCTION(LEDthread, arg) { page_status=0; - //maintain lock leds + //maintain lock leds, reset to off and force recheck to blink of all leds toggled on + numlock_status = 0; + capslock_status = 0; led_set(host_keyboard_leds()); } break; case TOGGLE_BACKLIGHT: - xprintf("TOGGLE_BKLT: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = on/off //populate 9 byte rows to be written to each pin, first byte is register (pin) address @@ -287,12 +277,13 @@ static THD_FUNCTION(LEDthread, arg) { case DISPLAY_PAGE: //msg_args[0] = page to toggle on - xprintf("DSPY_PG: %d-%d\n", msg_args[0], msg_args[1]); if (page_status != msg_args[0]) { is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_args[0]); page_status = msg_args[0]; - //maintain lock leds + //maintain lock leds, reset to off and force recheck for new page + numlock_status = 0; + capslock_status = 0; led_set(host_keyboard_leds()); } break; @@ -309,7 +300,6 @@ static THD_FUNCTION(LEDthread, arg) { break; case TOGGLE_NUM_LOCK: - xprintf("NMLK: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = 0 or 1, off/on if (numlock_status != msg_args[0]) { set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status); @@ -317,7 +307,6 @@ static THD_FUNCTION(LEDthread, arg) { } break; case TOGGLE_CAPS_LOCK: - xprintf("CPLK: %d-%d\n", msg_args[0], msg_args[1]); //msg_args[0] = 0 or 1, off/on if (capslock_status != msg_args[0]) { set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status); @@ -326,7 +315,6 @@ static THD_FUNCTION(LEDthread, arg) { break; case STEP_BRIGHTNESS: - xprintf("Step: %d-%d\n", msg_args[0], msg_args[1]); //led_args[0] = step up (1) or down (0) switch (msg_args[0]) { case 0: @@ -373,7 +361,6 @@ void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uin if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { return; } - xprintf("_set action-led: %x-%d\n", action, led_addr); blink_bit = action>>2;//check for blink bit action &= ~(1<<2); //strip blink bit @@ -381,17 +368,14 @@ void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uin //led_addr tens column is pin#, ones column is bit position in 8-bit mask control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register - xprintf("_set control address: %x\n", control_reg_addr); is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); chThdSleepMilliseconds(5); is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - xprintf("_set temp_byte_mask: %x\n", temp); column_bit = 1<<(led_addr % 10 - 1); column_byte = temp; - xprintf("_set col_byte_mask: %x\n", column_byte); switch(action) { case 0: @@ -451,7 +435,6 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { led_action |= (1<<2); //set blink bit } } - xprintf("_lock action: %d\n", led_action); set_led_bit(page,led_control_word,led_addr,led_action); } @@ -462,7 +445,6 @@ void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) { void led_controller_init(void) { uint8_t i; - xprintf("led_init\n"); /* initialise I2C */ /* I2C pins */ palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL diff --git a/keyboards/infinity60/led_controller.h b/keyboards/infinity60/led_controller.h index 457b21a92..eb6060f26 100644 --- a/keyboards/infinity60/led_controller.h +++ b/keyboards/infinity60/led_controller.h @@ -75,7 +75,8 @@ void led_controller_init(void); // D2:D0 extinguish time (3.5ms*2^i) #define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_ON 0x1 +#define IS31_REG_SHUTDOWN_OFF 0x1 +#define IS31_REG_SHUTDOWN_ON 0x0 #define IS31_REG_AGCCTRL 0x0B #define IS31_REG_ADCRATE 0x0C diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk index f58bb2642..c19f62401 100644 --- a/keyboards/infinity60/rules.mk +++ b/keyboards/infinity60/rules.mk @@ -56,7 +56,7 @@ OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration ## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE ?= yes # Mouse keys EXTRAKEY_ENABLE ?= yes # Audio control and System control -- cgit v1.2.3-24-g4f1b From 9cfa37bb3dba3a93edb47c0b08075aa05ea6b492 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Fri, 2 Jun 2017 22:57:57 -0400 Subject: Improvements and corrections to morse code macros layer --- keyboards/s60_x/keymaps/bluebear/keymap.c | 88 +++++++++++++++---------------- 1 file changed, 44 insertions(+), 44 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 87a792a01..c4baadfc6 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -406,7 +406,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case 0: //Number 0-) if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- } @@ -417,7 +417,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 1: //Number 1-! if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- } @@ -428,7 +428,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 2: //Number 2-@ if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. } @@ -439,7 +439,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 3: // Number 3 if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- @@ -447,7 +447,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 4: //Number 4-$ if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- } @@ -458,7 +458,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 5: //Number 5 if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... @@ -466,7 +466,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 6: //Number 6 if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... @@ -474,7 +474,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 7: //Number 7-& if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... } @@ -485,7 +485,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 8: //Number 8 if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. @@ -493,7 +493,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 9: //Number 9-( if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. } @@ -504,7 +504,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 10: //Letter A if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- @@ -512,7 +512,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 11: //Letter B if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... @@ -520,7 +520,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 12: //Letter C if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. @@ -528,7 +528,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 13: //Letter D if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. @@ -536,7 +536,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 14: //Letter E if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(SPACE), END); //. @@ -544,7 +544,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 15: //Letter F if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. @@ -552,7 +552,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 16: //Letter G if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. @@ -560,7 +560,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 17: //Letter H if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... @@ -568,7 +568,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 18: //Letter I if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. @@ -576,7 +576,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 19: //Letter J if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- @@ -584,7 +584,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 20: //Letter K if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- @@ -592,7 +592,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 21: //Letter L if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. @@ -600,7 +600,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 22: //Letter M if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- @@ -608,7 +608,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 23: //Letter N if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. @@ -616,7 +616,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 24: //Letter O if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- @@ -624,7 +624,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 25: //Letter P if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. @@ -632,7 +632,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 26: //Letter Q if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- @@ -640,7 +640,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 27: //Letter R if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. @@ -648,7 +648,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 28: //Letter S if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... @@ -656,7 +656,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 29: //Letter T if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(SPACE), END); //- @@ -664,7 +664,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 30: //Letter U if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- @@ -672,7 +672,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 31: //Letter V if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- @@ -680,7 +680,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 32: //Letter W if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- @@ -688,7 +688,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 33: //Letter X if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- @@ -696,7 +696,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 34: //Letter Y if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- @@ -704,7 +704,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 35: //Letter Z if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. @@ -712,7 +712,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 36: //Punctuation . if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- @@ -720,7 +720,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 37: //Punctuation , if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- @@ -728,7 +728,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 38: //Punctuation '-" if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. } @@ -739,7 +739,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 39: //Punctuation /-? if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. } @@ -750,7 +750,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 40: //Punctuation ;-: if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... } @@ -761,7 +761,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 41: //Punctuation =-+ if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. } @@ -772,7 +772,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 42: //Punctuation --_ if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- } @@ -783,7 +783,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 43: //Morse Space if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); } return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse -- cgit v1.2.3-24-g4f1b From a916f4e8b897b6b8925d7113d84f9eac7e7b67be Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 3 Jun 2017 14:34:50 +0300 Subject: Let BACKLIGHT_ENABLE control the Infinity LEDs --- keyboards/ergodox/infinity/animations.c | 4 ++-- keyboards/ergodox/infinity/rules.mk | 9 ++------- keyboards/ergodox/keymaps/333fred/Makefile | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c index 4c9f6d9c8..0e732b741 100644 --- a/keyboards/ergodox/infinity/animations.c +++ b/keyboards/ergodox/infinity/animations.c @@ -25,7 +25,7 @@ #include "lcd_backlight_keyframes.h" #endif -#ifdef LED_ENABLE +#ifdef BACKLIGHT_ENABLE #include "led_keyframes.h" #endif @@ -61,7 +61,7 @@ keyframe_animation_t default_suspend_animation = { }; #endif -#if defined(LED_ENABLE) +#if defined(BACKLIGHT_ENABLE) #define CROSSFADE_TIME 1000 #define GRADIENT_TIME 3000 diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 9e6170d89..af29ebce8 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -62,15 +62,10 @@ CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes VISUALIZER_ENABLE ?= yes LCD_ENABLE ?= yes -LED_ENABLE ?= no +BACKLIGHT_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no -ifdef LCD_ENABLE include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk -endif - -ifdef LED_ENABLE -include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk -endif \ No newline at end of file +include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/333fred/Makefile b/keyboards/ergodox/keymaps/333fred/Makefile index 87985bda1..b977722a2 100644 --- a/keyboards/ergodox/keymaps/333fred/Makefile +++ b/keyboards/ergodox/keymaps/333fred/Makefile @@ -1,7 +1,7 @@ SUBPROJECT_DEFAULT = infinity LCD_BACKLIGHT_ENABLE = yes LCD_ENABLE = yes -LED_ENABLE = yes +BACKLIGHT_ENABLE = yes BACKLIGHT_ENABLE = yes NKRO_ENABLE = yes TAP_DANCE_ENABLE = yes -- cgit v1.2.3-24-g4f1b From 0f9bfafb9e1fea118a0a61ff2baaff73b05ec157 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 3 Jun 2017 15:31:02 +0300 Subject: Turn off LED matrix by default --- .../ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c index ea09c4bb0..247269446 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -173,7 +173,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { } // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); gfxSleepMilliseconds(10); // Finish Init @@ -183,7 +183,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { g->g.Width = GDISP_SCREEN_WIDTH; g->g.Height = GDISP_SCREEN_HEIGHT; g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; + g->g.Powermode = powerOff; g->g.Backlight = GDISP_INITIAL_BACKLIGHT; g->g.Contrast = GDISP_INITIAL_CONTRAST; return TRUE; -- cgit v1.2.3-24-g4f1b From 2a7f9a7e46e1f4350be249c267fa7c35fd6562b5 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 3 Jun 2017 21:30:52 +0300 Subject: Add backlight control to the IS31FL3731 driver --- .../infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c index 247269446..0b48783d6 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -43,7 +43,7 @@ extern const uint8_t CIE1931_CURVE[]; #define GDISP_INITIAL_CONTRAST 0 #endif #ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 + #define GDISP_INITIAL_BACKLIGHT 0 #endif #define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) @@ -204,7 +204,8 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { uint8_t* src = PRIV(g)->frame_buffer; for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[*src]; + uint8_t val = (uint16_t)*src * g->g.Backlight / 100; + PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; ++src; } } @@ -297,8 +298,13 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { g->g.Orientation = (orientation_t)g->p.ptr; return; - case GDISP_CONTROL_CONTRAST: - return; + case GDISP_CONTROL_BACKLIGHT: + if (g->g.Backlight == (unsigned)g->p.ptr) + return; + unsigned val = (unsigned)g->p.ptr; + g->g.Backlight = val > 255 ? 255 : val; + g->flags |= GDISP_FLG_NEEDFLUSH; + return; } } #endif // GDISP_NEED_CONTROL -- cgit v1.2.3-24-g4f1b From b51a0db6ed03d939baad7cb9d87ed13c3653c7d2 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 3 Jun 2017 22:04:10 +0300 Subject: Add backlight support to the default Ergodox Infinity animations --- keyboards/ergodox/infinity/animations.c | 69 +++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 11 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c index 0e732b741..675519e30 100644 --- a/keyboards/ergodox/infinity/animations.c +++ b/keyboards/ergodox/infinity/animations.c @@ -32,31 +32,78 @@ #include "visualizer_keyframes.h" -#if defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE) +#if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE) + +static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { +#ifdef LCD_ENABLE + lcd_keyframe_enable(animation, state); +#endif +#ifdef LCD_BACKLIGHT_ENABLE + backlight_keyframe_enable(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + led_keyframe_enable(animation, state); +#endif + return false; +} + +static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { +#ifdef LCD_ENABLE + lcd_keyframe_disable(animation, state); +#endif +#ifdef LCD_BACKLIGHT_ENABLE + backlight_keyframe_disable(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + led_keyframe_disable(animation, state); +#endif + return false; +} + +static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { + bool ret = false; +#ifdef LCD_BACKLIGHT_ENABLE + ret |= backlight_keyframe_animate_color(animation, state); +#endif +#ifdef BACLIGHT_ENABLE + ret |= led_keyframe_fade_in_all(animation, state); +#endif + return ret; +} + +static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { + bool ret = false; +#ifdef LCD_BACKLIGHT_ENABLE + ret |= backlight_keyframe_animate_color(animation, state); +#endif +#ifdef BACLIGHT_ENABLE + ret |= led_keyframe_fade_out_all(animation, state); +#endif + return ret; +} + // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time keyframe_animation_t default_startup_animation = { - .num_frames = 4, + .num_frames = 3, .loop = false, - .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(5000), 0}, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(5000)}, .frame_functions = { - lcd_keyframe_enable, - backlight_keyframe_enable, + keyframe_enable, lcd_keyframe_draw_logo, - backlight_keyframe_animate_color, + keyframe_fade_in, }, }; keyframe_animation_t default_suspend_animation = { - .num_frames = 4, + .num_frames = 3, .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, .frame_functions = { lcd_keyframe_display_layer_text, - backlight_keyframe_animate_color, - lcd_keyframe_disable, - backlight_keyframe_disable, + keyframe_fade_out, + keyframe_disable, }, }; #endif -- cgit v1.2.3-24-g4f1b From 1b8ed53f21702d279dc5b5bffc2d0213943a22ad Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 5 Jun 2017 22:17:35 -0400 Subject: Added a couple of custom keys and updated layer image --- .../keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png | Bin 16499 -> 18972 bytes keyboards/s60_x/keymaps/bluebear/keymap.c | 43 +++++++++++++++++---- 2 files changed, 36 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png index 4e92a60c7..f37249b81 100644 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png differ diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index c4baadfc6..22356db2b 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -255,6 +255,13 @@ enum morse_macros { MC_SPACE = M(43), }; +// Custom Keys + +enum custom_keys { + MAGSYS, // Magic SysRq key - Sends Alt-PSCR + TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del +}; + //Keymaps const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -312,9 +319,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │DEBUG│ │ │ │ │ │ │BTN1 │MS_UP│BTN2 │WH_UP│ │ │ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │ │ │ │ │MS_LT│MS_DN│MS_RT│WH_DN│BTN3 │▒▒▒▒▒│ │█████│ + │TFS │ │ │ │ │ │ │MS_LT│MS_DN│MS_RT│WH_DN│BTN3 │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ + │MAGSYS▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │█████│█████│█████│ PWR │█████│█████│█████│ │ │ │ │█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ @@ -324,8 +331,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, \ DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_UP, KC_BTN2, KC_WH_U, KC_NO, KC_NO, KC_NO, \ - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_TRNS, \ - 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_NO, KC_TRNS, KC_NO, \ + TFS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_WH_D, KC_BTN3, KC_NO, KC_TRNS, \ + MAGSYS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_POWER, KC_TRNS, KC_TRNS, KC_NO, KC_NO ), @@ -400,13 +407,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -// Morse Code Macros +// Macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { + + // Morse Code Macros + case 0: //Number 0-) if (record->event.pressed) { - if (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { clear_mods(); return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- } @@ -791,7 +801,26 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; } return MACRO_NONE; -}; +} + +// Custom Keys + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case MAGSYS: //Magic SysRq function - Toggles key on and off depending on state of LALT key + if (record->event.pressed) { + if (keyboard_report->mods & (MOD_BIT(KC_LALT))) { + unregister_code(KC_PSCR); + unregister_code(KC_LALT); + } else { + register_code(KC_LALT); + register_code(KC_PSCR); + } + } + break; + } + return true; +} // Midi Chord Function -- cgit v1.2.3-24-g4f1b From 8f80f35186353801b960d536339b70f43f484c46 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Wed, 7 Jun 2017 22:01:28 -0400 Subject: Working on Morse Code Macros --- keyboards/s60_x/keymaps/bluebear/keymap.c | 33 ++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 22356db2b..1ecddb8d5 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -407,21 +407,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -// Macros +// Custom Function - Check if shift is pressed + +bool check_shift(void); + +bool check_shift() { + if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT))) { + return KC_LSHIFT; + } + if (keyboard_report->mods & (MOD_BIT(KC_RSHIFT))) { + return KC_RSHIFT; + } + else { + return false; + } +} + +// Morse Code Macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + uint16_t is_shift = check_shift(); switch(id) { - - // Morse Code Macros - case 0: //Number 0-) if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- - } + if (is_shift == false) { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- + } else { - return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- + unregister_mods(MOD_BIT(is_shift)); + return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- + register_code(is_shift); } } break; -- cgit v1.2.3-24-g4f1b From 7146dfea6e564660e525c5c8280d5c73a73697f3 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Wed, 7 Jun 2017 23:57:14 -0400 Subject: Created special shift keys for Morse layer that change variable value, enabling to send “shifted” special morse code characters. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/s60_x/keymaps/bluebear/keymap.c | 172 +++++------------------------- 1 file changed, 29 insertions(+), 143 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 1ecddb8d5..878a54e28 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -258,7 +258,9 @@ enum morse_macros { // Custom Keys enum custom_keys { - MAGSYS, // Magic SysRq key - Sends Alt-PSCR + MAGSYS = SAFE_RANGE, // Magic SysRq key - Sends Alt-PSCR + MC_LSFT, + MC_RSFT, TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del }; @@ -401,49 +403,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(0), MC_1, MC_2, MC_3, MC_4, MC_5, MC_6, MC_7, MC_8, MC_9, MC_0, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_TAB, MC_APOS, MC_COMM, MC_DOT, MC_P, MC_Y, MC_F, MC_G, MC_C, MC_R, MC_L, MC_SLSH, MC_EQL, KC_BSPC, \ KC_NO, MC_A, MC_O, MC_E, MC_U, MC_I, MC_D, MC_H, MC_T, MC_N, MC_S, MC_MINS, KC_NO, KC_ENT, \ - KC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, KC_RSFT, KC_NO, \ + MC_LSFT, KC_NO, MC_SCLN, MC_Q, MC_J, MC_K, MC_X, MC_B, MC_M, MC_W, MC_V, MC_Z, KC_NO, MC_RSFT, KC_NO, \ KC_NO, KC_NO, KC_NO, MC_SPACE, KC_NO, KC_NO, KC_NO, KC_NO ), }; -// Custom Function - Check if shift is pressed - -bool check_shift(void); - -bool check_shift() { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT))) { - return KC_LSHIFT; - } - if (keyboard_report->mods & (MOD_BIT(KC_RSHIFT))) { - return KC_RSHIFT; - } - else { - return false; - } -} - // Morse Code Macros +int mc_shift_on = false; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - uint16_t is_shift = check_shift(); switch(id) { case 0: //Number 0-) if (record->event.pressed) { - if (is_shift == false) { - return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- - } - else { - unregister_mods(MOD_BIT(is_shift)); + if (mc_shift_on == true) { return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- - register_code(is_shift); + } + else { + return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //----- } } break; case 1: //Number 1-! if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.-- } else { @@ -453,8 +437,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 2: //Number 2-@ if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-. } else { @@ -464,16 +447,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 3: // Number 3 if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- } break; case 4: //Number 4-$ if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..- } else { @@ -483,24 +462,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 5: //Number 5 if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... } break; case 6: //Number 6 if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... } break; case 7: //Number 7-& if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-... } else { @@ -510,16 +482,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 8: //Number 8 if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. } break; case 9: //Number 9-( if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--. } else { @@ -529,232 +497,149 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 10: //Letter A if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- } break; case 11: //Letter B if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... } break; case 12: //Letter C if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. } break; case 13: //Letter D if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. } break; case 14: //Letter E if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(SPACE), END); //. } break; case 15: //Letter F if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. } break; case 16: //Letter G if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. } break; case 17: //Letter H if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... } break; case 18: //Letter I if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. } break; case 19: //Letter J if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- } break; case 20: //Letter K if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- } break; case 21: //Letter L if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. } break; case 22: //Letter M if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- } break; case 23: //Letter N if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. } break; case 24: //Letter O if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- } break; case 25: //Letter P if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. } break; case 26: //Letter Q if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- } break; case 27: //Letter R if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. } break; case 28: //Letter S if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... } break; case 29: //Letter T if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(SPACE), END); //- } break; case 30: //Letter U if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- } break; case 31: //Letter V if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- } break; case 32: //Letter W if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- } break; case 33: //Letter X if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- } break; case 34: //Letter Y if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { } return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- } break; case 35: //Letter Z if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. } break; case 36: //Punctuation . if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- } break; case 37: //Punctuation , if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- } break; case 38: //Punctuation '-" if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-. } else { @@ -764,8 +649,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 39: //Punctuation /-? if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--.. } else { @@ -775,8 +659,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 40: //Punctuation ;-: if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---... } else { @@ -786,8 +669,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 41: //Punctuation =-+ if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-. } else { @@ -797,8 +679,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 42: //Punctuation --_ if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); + if (mc_shift_on == true) { return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.- } else { @@ -808,9 +689,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { break; case 43: //Morse Space if (record->event.pressed) { - if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { - clear_mods(); - } return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse } break; @@ -833,6 +711,14 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { } } break; + case MC_LSFT ... MC_RSFT: + if (record->event.pressed) { + mc_shift_on = true; + } + else { + mc_shift_on = false; + } + break; } return true; } -- cgit v1.2.3-24-g4f1b From 1b02b2006e61f55fa7a38b929e6d604d0f6504e8 Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sun, 4 Jun 2017 22:13:17 +0200 Subject: Add support for KMAC --- keyboards/kmac/Makefile | 18 ++ keyboards/kmac/config.h | 178 ++++++++++++++++ keyboards/kmac/keymaps/default/Makefile | 37 ++++ keyboards/kmac/keymaps/default/config.h | 24 +++ keyboards/kmac/keymaps/default/keymap.c | 97 +++++++++ keyboards/kmac/keymaps/default/readme.md | 56 +++++ keyboards/kmac/keymaps/winkeyless/Makefile | 37 ++++ keyboards/kmac/keymaps/winkeyless/config.h | 24 +++ keyboards/kmac/keymaps/winkeyless/keymap.c | 97 +++++++++ keyboards/kmac/keymaps/winkeyless/readme.md | 57 +++++ keyboards/kmac/kmac.c | 109 ++++++++++ keyboards/kmac/kmac.h | 56 +++++ keyboards/kmac/matrix.c | 311 ++++++++++++++++++++++++++++ keyboards/kmac/readme.md | 45 ++++ keyboards/kmac/rules.mk | 72 +++++++ keyboards/readme.md | 1 + 16 files changed, 1219 insertions(+) create mode 100644 keyboards/kmac/Makefile create mode 100644 keyboards/kmac/config.h create mode 100644 keyboards/kmac/keymaps/default/Makefile create mode 100644 keyboards/kmac/keymaps/default/config.h create mode 100644 keyboards/kmac/keymaps/default/keymap.c create mode 100644 keyboards/kmac/keymaps/default/readme.md create mode 100644 keyboards/kmac/keymaps/winkeyless/Makefile create mode 100644 keyboards/kmac/keymaps/winkeyless/config.h create mode 100644 keyboards/kmac/keymaps/winkeyless/keymap.c create mode 100644 keyboards/kmac/keymaps/winkeyless/readme.md create mode 100644 keyboards/kmac/kmac.c create mode 100644 keyboards/kmac/kmac.h create mode 100644 keyboards/kmac/matrix.c create mode 100644 keyboards/kmac/readme.md create mode 100644 keyboards/kmac/rules.mk (limited to 'keyboards') diff --git a/keyboards/kmac/Makefile b/keyboards/kmac/Makefile new file mode 100644 index 000000000..840dc9a28 --- /dev/null +++ b/keyboards/kmac/Makefile @@ -0,0 +1,18 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/kmac/config.h b/keyboards/kmac/config.h new file mode 100644 index 000000000..5c164bfc1 --- /dev/null +++ b/keyboards/kmac/config.h @@ -0,0 +1,178 @@ +/* +Copyright 2017 Mathias Andersson + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6050 +#define DEVICE_VER 0x0104 +#define MANUFACTURER KBDMania +#define PRODUCT KMAC +#define DESCRIPTION QMK keyboard firmware for KMAC + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * The KMAC uses demultiplexers for the cols, they are only included here as documentation. + * See matrix.c for more details. +*/ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, B7 } +#define MATRIX_COL_PINS { C6, B6, F0, F1, C7, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION CUSTOM_MATRIX + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +#endif diff --git a/keyboards/kmac/keymaps/default/Makefile b/keyboards/kmac/keymaps/default/Makefile new file mode 100644 index 000000000..a8a44889d --- /dev/null +++ b/keyboards/kmac/keymaps/default/Makefile @@ -0,0 +1,37 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# QMK Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # 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 = no # MIDI support (+2400 to 4200, depending on config) +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kmac/keymaps/default/config.h b/keyboards/kmac/keymaps/default/config.h new file mode 100644 index 000000000..a3828f7d5 --- /dev/null +++ b/keyboards/kmac/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kmac/keymaps/default/keymap.c b/keyboards/kmac/keymaps/default/keymap.c new file mode 100644 index 000000000..3553e8492 --- /dev/null +++ b/keyboards/kmac/keymaps/default/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kmac.h" + +// Helpful defines +#define _______ KC_TRNS + +// 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 _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_FL] = KEYMAP( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), +}; + +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) { + SEND_STRING("The"); + return false; + } + break; + case 1: + if (record->event.pressed) { + SEND_STRING("Custom"); + return false; + } + break; + case 2: + if (record->event.pressed) { + SEND_STRING("Keyboard"); + return false; + } + break; + case 3: + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/kmac/keymaps/default/readme.md b/keyboards/kmac/keymaps/default/readme.md new file mode 100644 index 000000000..d384e0d6a --- /dev/null +++ b/keyboards/kmac/keymaps/default/readme.md @@ -0,0 +1,56 @@ +# Keymap for the winkey version of KMAC + +This is the default keymap for the winkey version of the PCB. It implements the same features as the official default KMAC firmware. + +See [keymap.c](keymap.c) for details. + +## Layers + +The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. + +### Layer 1: Default Layer + ,---. ,---------------. ,---------------. ,---------------. ,-----------. + |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| + `---' `---------------' `---------------' `---------------' `-----------' + ,-----------------------------------------------------------. ,-----------. + |~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|Hom|PgU| + |-----------------------------------------------------------| |-----------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| + |-----------------------------------------------------------| '-----------' + |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + |-----------------------------------------------------------| ,---. + |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | |Up | + |-----------------------------------------------------------| ,-----------. + |Ctl|Gui|Alt| Space |Alt|Gui|Fn |Ctl| |Lef|Dow|Rig| + `-----------------------------------------------------------' `-----------' + +### Layer 2: Function Layer + ,---. ,---------------. ,---------------. ,---------------. ,-----------. + |Led| |M1 |M2 |M3 |M4 | |M5 |M6 |M7 |M8 | |M9 |M10|M11|M12| | | | | + `---' `---------------' `---------------' `---------------' `-----------' + ,-----------------------------------------------------------. ,-----------. + | | | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------| |-----------| + | | | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------| '-----------' + | | | | | | | | | | | | | | + |-----------------------------------------------------------| ,---. + | | | | | | | | | | | | | | | + |-----------------------------------------------------------| ,-----------. + | | | | | | | | | | | | | + `-----------------------------------------------------------' `-----------' + +## Macros + +These are mostly useless and serve more like examples I guess. + +| Macro | Action | +|:-----:| -------------------------------------- | +| 1 | Types `The` | +| 2 | Types `Custom` | +| 3 | Types `Keyboard` | +| 4 | Inputs `` `` `` | + +## Building + +To build the firmware with the default keymap, run `make default`. diff --git a/keyboards/kmac/keymaps/winkeyless/Makefile b/keyboards/kmac/keymaps/winkeyless/Makefile new file mode 100644 index 000000000..a8a44889d --- /dev/null +++ b/keyboards/kmac/keymaps/winkeyless/Makefile @@ -0,0 +1,37 @@ +# Copyright 2013 Jun Wako +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# QMK Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # 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 = no # MIDI support (+2400 to 4200, depending on config) +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kmac/keymaps/winkeyless/config.h b/keyboards/kmac/keymaps/winkeyless/config.h new file mode 100644 index 000000000..a3828f7d5 --- /dev/null +++ b/keyboards/kmac/keymaps/winkeyless/config.h @@ -0,0 +1,24 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kmac/keymaps/winkeyless/keymap.c b/keyboards/kmac/keymaps/winkeyless/keymap.c new file mode 100644 index 000000000..f986dec27 --- /dev/null +++ b/keyboards/kmac/keymaps/winkeyless/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kmac.h" + +// Helpful defines +#define _______ KC_TRNS + +// 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 _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = KEYMAP_WINKEYLESS( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_FL] = KEYMAP_WINKEYLESS( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), +}; + +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) { + SEND_STRING("The"); + return false; + } + break; + case 1: + if (record->event.pressed) { + SEND_STRING("Custom"); + return false; + } + break; + case 2: + if (record->event.pressed) { + SEND_STRING("Keyboard"); + return false; + } + break; + case 3: + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/kmac/keymaps/winkeyless/readme.md b/keyboards/kmac/keymaps/winkeyless/readme.md new file mode 100644 index 000000000..b921f7b0f --- /dev/null +++ b/keyboards/kmac/keymaps/winkeyless/readme.md @@ -0,0 +1,57 @@ +# Keymap for the winkeyless version of KMAC + +This is the default keymap for the winkeyless version of the PCB. It implements the same features as the official default KMAC firmware. + + +See [keymap.c](keymap.c) for details. + +## Layers + +The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. + +### Layer 1: Default Layer + ,---. ,---------------. ,---------------. ,---------------. ,-----------. + |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| + `---' `---------------' `---------------' `---------------' `-----------' + ,-----------------------------------------------------------. ,-----------. + |~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|Hom|PgU| + |-----------------------------------------------------------| |-----------| + |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| + |-----------------------------------------------------------| '-----------' + |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + |-----------------------------------------------------------| ,---. + |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | |Up | + |-----------------------------------------------------------| ,-----------. + |Ctl|Gui|Alt| Space |Alt|Fn |Ctl| |Lef|Dow|Rig| + `-----------------------------------------------------------' `-----------' + +### Layer 2: Function Layer + ,---. ,---------------. ,---------------. ,---------------. ,-----------. + |Led| |M1 |M2 |M3 |M4 | |M5 |M6 |M7 |M8 | |M9 |M10|M11|M12| | | | | + `---' `---------------' `---------------' `---------------' `-----------' + ,-----------------------------------------------------------. ,-----------. + | | | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------| |-----------| + | | | | | | | | | | | | | | | | | | | + |-----------------------------------------------------------| '-----------' + | | | | | | | | | | | | | | + |-----------------------------------------------------------| ,---. + | | | | | | | | | | | | | | | + |-----------------------------------------------------------| ,-----------. + | | | | | | | | | | | | + `-----------------------------------------------------------' `-----------' + +## Macros + +These are mostly useless and serve more like examples I guess. + +| Macro | Action | +|:-----:| -------------------------------------- | +| 1 | Types `The` | +| 2 | Types `Custom` | +| 3 | Types `Keyboard` | +| 4 | Inputs `` `` `` | + +## Building + +To build the firmware with the keymap for the winkeyless version, run `make winkeyless`. diff --git a/keyboards/kmac/kmac.c b/keyboards/kmac/kmac.c new file mode 100644 index 000000000..34647e81a --- /dev/null +++ b/keyboards/kmac/kmac.c @@ -0,0 +1,109 @@ +/* Copyright 2017 Mathias Andersson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "kmac.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + led_init_ports(); + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_init_ports(void) { + DDRB |= (1<<0); // OUT + DDRE |= (1<<6); // OUT +} + +/* LED pin configuration + * Scroll Lock: Low PE6 + * Caps Lock: Low PB0 + */ +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef KMAC_H +#define KMAC_H + +#include "quantum.h" + +// Keymap for the winkey version of the PCB. +#define KEYMAP( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ +/* 0 1 2 3 4 5 6 7 8 9 A B C D E F G */ \ +/* 0 */ { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ +/* 1 */ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ +/* 2 */ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ +/* 3 */ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \ +/* 4 */ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, KC_NO, K4D, KC_NO, K4F, KC_NO }, \ +/* 5 */ { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, K58, KC_NO, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ +} + +// Keymap for the winkeyless version of the PCB. +#define KEYMAP_WINKEYLESS( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, K5D, K5E, K5F, K5G \ +) KEYMAP( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4F, \ + K50, K51, K52, K55, K58, K5A, KC_NO, K5D, K5E, K5F, K5G \ +) + +#endif diff --git a/keyboards/kmac/matrix.c b/keyboards/kmac/matrix.c new file mode 100644 index 000000000..bab638bdf --- /dev/null +++ b/keyboards/kmac/matrix.c @@ -0,0 +1,311 @@ +/* +Copyright 2017 Mathias Andersson + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include +#include +#if defined(__AVR__) +#include +#endif +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + + +/* Set 0 if debouncing isn't needed */ +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif + +#define COL_SHIFTER ((uint32_t)1) + +static uint16_t debouncing_time; +static bool debouncing = false; + + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static void init_rows(void); +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); +static void unselect_cols(void); +static void select_col(uint8_t col); + +inline +uint8_t matrix_rows(void) { + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) { + return MATRIX_COLS; +} + +void matrix_init(void) { + unselect_cols(); + init_rows(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); +} + +uint8_t matrix_scan(void) +{ + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { + bool matrix_changed = read_rows_on_col(matrix_debouncing, current_col); + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } + } + + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + debouncing = false; + } + + matrix_scan_quantum(); + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1> 4) & _BV(E2 & 0xF)) == 0) + { + // Pin LO, set col bit + current_matrix[row_index] |= (COL_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[row_index] &= ~(COL_SHIFTER << current_col); + } + } + else { + if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF))) + { + // Pin HI, set col bit + current_matrix[row_index] |= (COL_SHIFTER << current_col); + } + else + { + // Pin LO, clear col bit + current_matrix[row_index] &= ~(COL_SHIFTER << current_col); + } + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect cols + unselect_cols(); + + return matrix_changed; +} + +/* Row pin configuration + * row: 0 1 2 3 4 5 + * pin: D0 D1 D2 D3 D5 B7 + * + * Caps lock uses its own pin E2 + */ +static void init_rows(void) +{ + DDRD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // IN + PORTD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // LO + DDRB &= ~(1<<7); // IN + PORTB &= ~(1<<7); // LO + + DDRE &= ~(1<<2); // IN + PORTE |= (1<<2); // HI +} + +/* Columns 0 - 15 + * These columns uses two 74HC237D 3 to 8 bit demultiplexers. + * col / pin: PC6 PB6 PF0 PF1 PC7 + * 0: 1 0 0 0 0 + * 1: 1 0 1 0 0 + * 2: 1 0 0 1 0 + * 3: 1 0 1 1 0 + * 4: 1 0 0 0 1 + * 5: 1 0 1 0 1 + * 6: 1 0 0 1 1 + * 7: 1 0 1 1 1 + * 8: 0 1 0 0 0 + * 9: 0 1 1 0 0 + * 10: 0 1 0 1 0 + * 11: 0 1 1 1 0 + * 12: 0 1 0 0 1 + * 13: 0 1 1 0 1 + * 14: 0 1 0 1 1 + * 15: 0 1 1 1 1 + * + * col: 16 + * pin: PB5 + */ +static void unselect_cols(void) +{ + DDRB |= (1<<5) | (1<<6); // OUT + PORTB &= ~((1<<5) | (1<<6)); // LO + + DDRC |= (1<<6) | (1<<7); // OUT + PORTC &= ~((1<<6) | (1<<7)); // LO + + DDRF |= (1<<0) | (1<<1); // OUT + PORTF &= ~((1<<0) | (1<<1)); // LO +} + +static void select_col(uint8_t col) +{ + switch (col) { + case 0: + PORTC |= (1<<6); // HI + break; + case 1: + PORTC |= (1<<6); // HI + PORTF |= (1<<0); // HI + break; + case 2: + PORTC |= (1<<6); // HI + PORTF |= (1<<1); // HI + break; + case 3: + PORTC |= (1<<6); // HI + PORTF |= (1<<0) | (1<<1); // HI + break; + case 4: + PORTC |= (1<<6); // HI + PORTC |= (1<<7); // HI + break; + case 5: + PORTC |= (1<<6); // HI + PORTF |= (1<<0); // HI + PORTC |= (1<<7); // HI + break; + case 6: + PORTC |= (1<<6); // HI + PORTF |= (1<<1); // HI + PORTC |= (1<<7); // HI + break; + case 7: + PORTC |= (1<<6); // HI + PORTF |= (1<<0) | (1<<1); // HI + PORTC |= (1<<7); // HI + break; + case 8: + PORTB |= (1<<6); // HI + break; + case 9: + PORTB |= (1<<6); // HI + PORTF |= (1<<0); // HI + break; + case 10: + PORTB |= (1<<6); // HI + PORTF |= (1<<1); // HI + break; + case 11: + PORTB |= (1<<6); // HI + PORTF |= (1<<0) | (1<<1); // HI + break; + case 12: + PORTB |= (1<<6); // HI + PORTC |= (1<<7); // HI + break; + case 13: + PORTB |= (1<<6); // HI + PORTF |= (1<<0); // HI + PORTC |= (1<<7); // HI + break; + case 14: + PORTB |= (1<<6); // HI + PORTF |= (1<<1); // HI + PORTC |= (1<<7); // HI + break; + case 15: + PORTB |= (1<<6); // HI + PORTF |= (1<<0) | (1<<1); // HI + PORTC |= (1<<7); // HI + break; + case 16: + PORTB |= (1<<5); // HI + break; + } +} diff --git a/keyboards/kmac/readme.md b/keyboards/kmac/readme.md new file mode 100644 index 000000000..e7d97778f --- /dev/null +++ b/keyboards/kmac/readme.md @@ -0,0 +1,45 @@ +KMAC keyboard firmware +====================== + +A Korean custom keyboard designed by Byungho Kim and the KBDMania community. + +## Supported models + +All the tenkeyless models should be supported. + +## Bootloader + +The PCB is hardwired to run the bootloader if the key at the `Caps Lock` position is held down when connecting the keyboard. + +It is also possible to use Boot Magic and Command to access the bootloader. + +## Quantum MK Firmware + +For the full Quantum feature list, see the [documentation](https://docs.qmk.fm). + +## Building + +The KMAC are available with two different PCB layouts, a winkey version and a winkeyless version. A default keymap are provided for each versions of the PCB. + +Depending on which PCB and keymap you would like to use, you will have to compile the firmware slightly differently. All of the commands should be run in the [keyboards/kmac](/keyboards/kmac) folder. + +### Winkey keymap + +The [default keymap](keymaps/default) are designed for the winkey version of the PCB. + +### Winkeyless Keymap + +A [keymap](keymaps/winkeyless) for the winkeyless version of the PCB are also provided. + +### Custom keymaps + +To define your own keymap, copy one of the [existing keymap](keymaps) folders and give it the name of your keymap. Then check the [keymap documentation](https://docs.qmk.fm/Keymap.html) for details on how to modify the keymap. + +To make it easy to define keymaps for the different versions of the PCB two macros are provided. + +| PCB | Macro | +| -------------- | --------------------- | +| Winkey PCB | `KEYMAP()` | +| Winkeyless PCB | `KEYMAP_WINKEYLESS()` | + +To build the firmware with a custom keymap, run `make ` diff --git a/keyboards/kmac/rules.mk b/keyboards/kmac/rules.mk new file mode 100644 index 000000000..54c9aa256 --- /dev/null +++ b/keyboards/kmac/rules.mk @@ -0,0 +1,72 @@ +# Project specific files +SRC = matrix.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 8000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +CUSTOM_MATRIX ?= yes # Custom matrix file +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= yes # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +FAUXCLICKY_ENABLE ?= no # Use buzzer to emulate clicky switches diff --git a/keyboards/readme.md b/keyboards/readme.md index 5b7b28207..4fa2a74de 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -45,6 +45,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not * [JD45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe. * [KC60](/keyboards/kc60) — A programmable Chinese-made keyboard, lost in the mists of time. * [Kinesis Advantage](/keyboards/kinesis) — Contoured ergonomic keyboard by Kinesis Computer Ergonomics. +* [KMAC](/keyboards/kmac) — Korean custom keyboard. * [The Kitten Paw](/keyboards/kitten_paw) — A replacement controller (2016 revision) for the Filco Majestouch by [Bathroom Epiphanies](https://github.com/BathroomEpiphanies). * [Lets Split](/keyboards/lets_split) - Split ortholinear 40% keyboard. * [Phantom](/keyboards/phantom) — A tenkeyless kit by Teel, also from Geekhack. -- cgit v1.2.3-24-g4f1b From e4eb4eaa16d7e86290c825dd17df9c192378c107 Mon Sep 17 00:00:00 2001 From: Martin Gondermann Date: Fri, 9 Jun 2017 04:55:34 +0200 Subject: Fix layer LED signalling in magicmonty keymap (#1373) * Fix layer LED signalling in magicmonty keymap * Include the breathing modes in layer signalling * Reverts mode to 1 as the other modes flicker * Add Cursor keys on VIM positions and PAUSE to function layer --- keyboards/clueboard/keymaps/magicmonty/keymap.c | 19 ++++++++++++------- keyboards/clueboard/keymaps/magicmonty/layout.png | Bin 165761 -> 181744 bytes 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/magicmonty/keymap.c b/keyboards/clueboard/keymaps/magicmonty/keymap.c index fdfe2151d..6ca843aab 100644 --- a/keyboards/clueboard/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/keymaps/magicmonty/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = KEYMAP( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP, \ - _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,_______, _______, _______, _______, _______, _______, \ - MO(_FL), _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,_______, KC_PAUS, _______, _______, _______, _______, \ + MO(_FL), _______, MO(_CL),_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RGHT, _______, _______, _______, _______, \ _______, _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, _______, KC_PGUP, \ _______, _______, _______,_______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), @@ -116,24 +116,29 @@ enum layer_id { void clueboard_set_led(uint8_t id) { switch (id) { case LAYER_BASE: - rgblight_sethsv(346, 0, 255); + rgblight_sethsv_noeeprom(346, 0, 255); break; case LAYER_FUNCTION: - rgblight_sethsv(46, 255, 255); + rgblight_sethsv_noeeprom(46, 255, 255); break; case LAYER_MEDIA: - rgblight_sethsv(86, 255, 255); + rgblight_sethsv_noeeprom(86, 255, 255); break; case LAYER_CONTROL: - rgblight_sethsv(346, 255, 255); + rgblight_sethsv_noeeprom(346, 255, 255); break; case LAYER_MOUSE: - rgblight_sethsv(206, 255, 255); + rgblight_sethsv_noeeprom(206, 255, 255); break; } }; void matrix_scan_user(void) { + rgblight_config_t rgblight_config; + rgblight_config.raw = eeconfig_read_rgblight(); + + if (!rgblight_config.enable || rgblight_config.mode != 1) { return; } + uint32_t layer = layer_state; if (layer & (1<<_FL)) { diff --git a/keyboards/clueboard/keymaps/magicmonty/layout.png b/keyboards/clueboard/keymaps/magicmonty/layout.png index 168eec2d6..9e866a92c 100644 Binary files a/keyboards/clueboard/keymaps/magicmonty/layout.png and b/keyboards/clueboard/keymaps/magicmonty/layout.png differ -- cgit v1.2.3-24-g4f1b From 2a667eba2ae88aeff5e29ec33a337b4fab07fb63 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 8 Jun 2017 20:42:24 -0700 Subject: Cleanup the Clueboard readme files. --- keyboards/clueboard/keymaps/caps_fn/layout.png | Bin 112289 -> 0 bytes keyboards/clueboard/keymaps/caps_fn/readme.md | 11 +---------- keyboards/clueboard/keymaps/default/layout.png | Bin 112442 -> 0 bytes keyboards/clueboard/keymaps/default/readme.md | 11 +---------- keyboards/clueboard/keymaps/jokrik/readme.md | 9 --------- keyboards/clueboard/keymaps/mac_optimized/layout.png | Bin 107368 -> 0 bytes keyboards/clueboard/keymaps/mac_optimized/readme.md | 11 +---------- keyboards/clueboard/keymaps/magicmonty/layout.png | Bin 181744 -> 0 bytes keyboards/clueboard/keymaps/magicmonty/readme.md | 11 +---------- keyboards/clueboard/keymaps/maximised/layout.png | Bin 111157 -> 0 bytes keyboards/clueboard/keymaps/maximised/readme.md | 11 +---------- keyboards/clueboard/keymaps/mouse_keys/layout.png | Bin 143816 -> 0 bytes keyboards/clueboard/keymaps/mouse_keys/readme.md | 9 --------- keyboards/clueboard/keymaps/serubin/layout-base.png | Bin 38703 -> 0 bytes keyboards/clueboard/keymaps/serubin/layout-fn.png | Bin 35216 -> 0 bytes keyboards/clueboard/keymaps/serubin/layout-media.png | Bin 28944 -> 0 bytes keyboards/clueboard/keymaps/serubin/readme.md | 15 +++------------ keyboards/clueboard/keymaps/shift_fn/layout.png | Bin 107234 -> 0 bytes keyboards/clueboard/keymaps/shift_fn/readme.md | 11 ----------- keyboards/clueboard/keymaps/skully/layout.png | Bin 111676 -> 0 bytes keyboards/clueboard/keymaps/skully/readme.md | 17 ++++++----------- keyboards/clueboard/keymaps/smt/layout.png | Bin 130672 -> 0 bytes keyboards/clueboard/keymaps/smt/readme.md | 11 +---------- keyboards/clueboard/keymaps/unix_optimized/layout.png | Bin 111171 -> 0 bytes keyboards/clueboard/keymaps/unix_optimized/readme.md | 11 +---------- keyboards/clueboard/keymaps/win_optimized/layout.png | Bin 110405 -> 0 bytes keyboards/clueboard/keymaps/win_optimized/readme.md | 11 +---------- 27 files changed, 17 insertions(+), 132 deletions(-) delete mode 100644 keyboards/clueboard/keymaps/caps_fn/layout.png delete mode 100644 keyboards/clueboard/keymaps/default/layout.png delete mode 100644 keyboards/clueboard/keymaps/mac_optimized/layout.png delete mode 100644 keyboards/clueboard/keymaps/magicmonty/layout.png delete mode 100644 keyboards/clueboard/keymaps/maximised/layout.png delete mode 100644 keyboards/clueboard/keymaps/mouse_keys/layout.png delete mode 100644 keyboards/clueboard/keymaps/serubin/layout-base.png delete mode 100644 keyboards/clueboard/keymaps/serubin/layout-fn.png delete mode 100644 keyboards/clueboard/keymaps/serubin/layout-media.png delete mode 100644 keyboards/clueboard/keymaps/shift_fn/layout.png delete mode 100644 keyboards/clueboard/keymaps/skully/layout.png delete mode 100644 keyboards/clueboard/keymaps/smt/layout.png delete mode 100644 keyboards/clueboard/keymaps/unix_optimized/layout.png delete mode 100644 keyboards/clueboard/keymaps/win_optimized/layout.png (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/caps_fn/layout.png b/keyboards/clueboard/keymaps/caps_fn/layout.png deleted file mode 100644 index a5bd57adb..000000000 Binary files a/keyboards/clueboard/keymaps/caps_fn/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/caps_fn/readme.md b/keyboards/clueboard/keymaps/caps_fn/readme.md index 74ad01fca..47a530a80 100644 --- a/keyboards/clueboard/keymaps/caps_fn/readme.md +++ b/keyboards/clueboard/keymaps/caps_fn/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/kGADucy.png) # Caps Fn Layout diff --git a/keyboards/clueboard/keymaps/default/layout.png b/keyboards/clueboard/keymaps/default/layout.png deleted file mode 100644 index cd318163e..000000000 Binary files a/keyboards/clueboard/keymaps/default/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/default/readme.md b/keyboards/clueboard/keymaps/default/readme.md index cede17ee1..019131aeb 100644 --- a/keyboards/clueboard/keymaps/default/readme.md +++ b/keyboards/clueboard/keymaps/default/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) # Default Clueboard Layout diff --git a/keyboards/clueboard/keymaps/jokrik/readme.md b/keyboards/clueboard/keymaps/jokrik/readme.md index cc5eeba96..a845e65f1 100644 --- a/keyboards/clueboard/keymaps/jokrik/readme.md +++ b/keyboards/clueboard/keymaps/jokrik/readme.md @@ -1,11 +1,2 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - # Jokrik's Clueboard Layout diff --git a/keyboards/clueboard/keymaps/mac_optimized/layout.png b/keyboards/clueboard/keymaps/mac_optimized/layout.png deleted file mode 100644 index e84ba54ea..000000000 Binary files a/keyboards/clueboard/keymaps/mac_optimized/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/mac_optimized/readme.md b/keyboards/clueboard/keymaps/mac_optimized/readme.md index 940e09125..282da369d 100644 --- a/keyboards/clueboard/keymaps/mac_optimized/readme.md +++ b/keyboards/clueboard/keymaps/mac_optimized/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png) # Default Clueboard Layout for Mac diff --git a/keyboards/clueboard/keymaps/magicmonty/layout.png b/keyboards/clueboard/keymaps/magicmonty/layout.png deleted file mode 100644 index 9e866a92c..000000000 Binary files a/keyboards/clueboard/keymaps/magicmonty/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/magicmonty/readme.md b/keyboards/clueboard/keymaps/magicmonty/readme.md index 728c18822..2959172df 100644 --- a/keyboards/clueboard/keymaps/magicmonty/readme.md +++ b/keyboards/clueboard/keymaps/magicmonty/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/ngg4EAY.png) # MouseKeys Layout diff --git a/keyboards/clueboard/keymaps/maximised/layout.png b/keyboards/clueboard/keymaps/maximised/layout.png deleted file mode 100644 index bdc5d7623..000000000 Binary files a/keyboards/clueboard/keymaps/maximised/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/maximised/readme.md b/keyboards/clueboard/keymaps/maximised/readme.md index b95d1750f..fc82e6879 100644 --- a/keyboards/clueboard/keymaps/maximised/readme.md +++ b/keyboards/clueboard/keymaps/maximised/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png) # Maximised Clueboard Layout diff --git a/keyboards/clueboard/keymaps/mouse_keys/layout.png b/keyboards/clueboard/keymaps/mouse_keys/layout.png deleted file mode 100644 index 52e5c4581..000000000 Binary files a/keyboards/clueboard/keymaps/mouse_keys/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/mouse_keys/readme.md b/keyboards/clueboard/keymaps/mouse_keys/readme.md index 97ac6dfa2..7fb038205 100644 --- a/keyboards/clueboard/keymaps/mouse_keys/readme.md +++ b/keyboards/clueboard/keymaps/mouse_keys/readme.md @@ -1,12 +1,3 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - ![Clueboard Layout Image](layout.png) # MouseKeys Layout diff --git a/keyboards/clueboard/keymaps/serubin/layout-base.png b/keyboards/clueboard/keymaps/serubin/layout-base.png deleted file mode 100644 index 8dcdc0643..000000000 Binary files a/keyboards/clueboard/keymaps/serubin/layout-base.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/serubin/layout-fn.png b/keyboards/clueboard/keymaps/serubin/layout-fn.png deleted file mode 100644 index 3cff46a72..000000000 Binary files a/keyboards/clueboard/keymaps/serubin/layout-fn.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/serubin/layout-media.png b/keyboards/clueboard/keymaps/serubin/layout-media.png deleted file mode 100644 index 753cb64fa..000000000 Binary files a/keyboards/clueboard/keymaps/serubin/layout-media.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/serubin/readme.md b/keyboards/clueboard/keymaps/serubin/readme.md index e39adbb16..78eef5352 100644 --- a/keyboards/clueboard/keymaps/serubin/readme.md +++ b/keyboards/clueboard/keymaps/serubin/readme.md @@ -1,23 +1,14 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - # Serubin's Clueboard Layout This is the layout based on the clueboard default, modified for development on Mac, PC, and Windows. This layout also handles media and volume keys on all the previously listed platforms. Most importantly, Capslock has been replaced by a dual function Esc/Ctrl key. This is particularly handy for use in Vim. #### Base Layer -![Base Layout Image](layout-base.png) +![Base Layout Image](http://i.imgur.com/qL78n1y.png) #### Fn Layer -![Fn Layout Image](layout-fn.png) +![Fn Layout Image](http://i.imgur.com/QuwxePw.png) #### Media Layer -![Media Layer Image](layout-media.png) +![Media Layer Image](http://i.imgur.com/oOfWXMf.png) diff --git a/keyboards/clueboard/keymaps/shift_fn/layout.png b/keyboards/clueboard/keymaps/shift_fn/layout.png deleted file mode 100644 index 66d85410c..000000000 Binary files a/keyboards/clueboard/keymaps/shift_fn/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/shift_fn/readme.md b/keyboards/clueboard/keymaps/shift_fn/readme.md index 369f556f8..4bd920ad4 100644 --- a/keyboards/clueboard/keymaps/shift_fn/readme.md +++ b/keyboards/clueboard/keymaps/shift_fn/readme.md @@ -1,14 +1,3 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) - # Shift Fn Clueboard Layout This is an experimental layout. It makes the left shift key a dual roll key. diff --git a/keyboards/clueboard/keymaps/skully/layout.png b/keyboards/clueboard/keymaps/skully/layout.png deleted file mode 100644 index 64854aaef..000000000 Binary files a/keyboards/clueboard/keymaps/skully/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md index 08255dfbc..b9ad1b09a 100644 --- a/keyboards/clueboard/keymaps/skully/readme.md +++ b/keyboards/clueboard/keymaps/skully/readme.md @@ -1,16 +1,11 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/VaoGn3M.png) # skullY's Clueboard Layout This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing. -The most notable change from the default layout is putting Ctrl on the Capslock key. I also swap Alt and Cmd because I mostly use a Mac day to day. +I've made the following changes from the default layout: + +* shift_fn on left shift +* Change capslock to control +* Swap Alt and Cmd diff --git a/keyboards/clueboard/keymaps/smt/layout.png b/keyboards/clueboard/keymaps/smt/layout.png deleted file mode 100644 index 6c27277a9..000000000 Binary files a/keyboards/clueboard/keymaps/smt/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/smt/readme.md b/keyboards/clueboard/keymaps/smt/readme.md index 6a8b3edb4..7fc0f0248 100644 --- a/keyboards/clueboard/keymaps/smt/readme.md +++ b/keyboards/clueboard/keymaps/smt/readme.md @@ -1,15 +1,6 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - # smt Clueboard Layout (HHKB variant) -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/Ll5gGte.png) This is smt's HHKB variant layout, based on the default layout that comes flashed on every Clueboard. The primary differences from the default are: diff --git a/keyboards/clueboard/keymaps/unix_optimized/layout.png b/keyboards/clueboard/keymaps/unix_optimized/layout.png deleted file mode 100644 index ea7d30e35..000000000 Binary files a/keyboards/clueboard/keymaps/unix_optimized/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/unix_optimized/readme.md b/keyboards/clueboard/keymaps/unix_optimized/readme.md index 3510e138b..9e6d0e902 100644 --- a/keyboards/clueboard/keymaps/unix_optimized/readme.md +++ b/keyboards/clueboard/keymaps/unix_optimized/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/BnWlOht.png) # Default Clueboard Layout diff --git a/keyboards/clueboard/keymaps/win_optimized/layout.png b/keyboards/clueboard/keymaps/win_optimized/layout.png deleted file mode 100644 index 7d8c82da7..000000000 Binary files a/keyboards/clueboard/keymaps/win_optimized/layout.png and /dev/null differ diff --git a/keyboards/clueboard/keymaps/win_optimized/readme.md b/keyboards/clueboard/keymaps/win_optimized/readme.md index cede17ee1..703a37be0 100644 --- a/keyboards/clueboard/keymaps/win_optimized/readme.md +++ b/keyboards/clueboard/keymaps/win_optimized/readme.md @@ -1,13 +1,4 @@ -``` - ___ _____ _ _ _ __ __ _ __ -|__ \ / ____| | | | | | / / / /(_) / / - ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / - |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / - |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ - (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) -``` - -![Clueboard Layout Image](layout.png) +![Clueboard Layout Image](http://i.imgur.com/fsqOqZo.png) # Default Clueboard Layout -- cgit v1.2.3-24-g4f1b From 9ac2ed280ce3034c60d82e0d2ab50a1f0f06f432 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 9 Jun 2017 10:11:34 -0400 Subject: move mechmini to own folder --- keyboards/mechmini/Makefile | 3 + keyboards/mechmini/README.md | 56 ++++ keyboards/mechmini/config.h | 38 +++ keyboards/mechmini/keymaps/default/keymap.c | 28 ++ keyboards/mechmini/matrix.c | 104 ++++++++ keyboards/mechmini/mechmini.c | 0 keyboards/mechmini/mechmini.h | 41 +++ keyboards/mechmini/program | 74 ++++++ keyboards/mechmini/rules.mk | 43 +++ keyboards/mechmini/usbconfig.h | 396 ++++++++++++++++++++++++++++ keyboards/ps2avrGB/README.md | 6 - keyboards/ps2avrGB/ps2avrGB.h | 17 -- 12 files changed, 783 insertions(+), 23 deletions(-) create mode 100644 keyboards/mechmini/Makefile create mode 100644 keyboards/mechmini/README.md create mode 100644 keyboards/mechmini/config.h create mode 100644 keyboards/mechmini/keymaps/default/keymap.c create mode 100644 keyboards/mechmini/matrix.c create mode 100644 keyboards/mechmini/mechmini.c create mode 100644 keyboards/mechmini/mechmini.h create mode 100644 keyboards/mechmini/program create mode 100644 keyboards/mechmini/rules.mk create mode 100644 keyboards/mechmini/usbconfig.h (limited to 'keyboards') diff --git a/keyboards/mechmini/Makefile b/keyboards/mechmini/Makefile new file mode 100644 index 000000000..57b2ef62e --- /dev/null +++ b/keyboards/mechmini/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/mechmini/README.md b/keyboards/mechmini/README.md new file mode 100644 index 000000000..72743319f --- /dev/null +++ b/keyboards/mechmini/README.md @@ -0,0 +1,56 @@ +mechmini keyboard firmware +========================== + +This is a port of the QMK firmware for boards that are based on the +ps2avrGB firmware, like the [ps2avrGB +keyboard](https://www.keyclack.com/product/gb-ps2avrgb/) or the ones sold +by [Winkeyless](http://winkeyless.kr/product/ps2avrgb-parts/). + +Note that this is a complete replacement for the firmware, so you won't be +using Bootmapper Client to change any keyboard settings, since not all the +USB report options are supported. + + +## Installing + +First, install the requirements. These commands are for OSX, but all you +need is the AVR toolchain and `bootloadHID` for flashing: + +``` +$ brew cask install crosspack-avr +$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb +``` + +In order to use the `./program` script, which can reboot the board into +the bootloader, you'll need Python 2 with PyUSB installed: + +``` +$ pip install pyusb +``` + +Then, with the keyboard plugged in, simply run this command from the +`qmk_firmware` directory: + +``` +$ make mechmini-program +``` + +If you prefer, you can just build it and flash the firmware directly with +`bootloadHID` if you boot the board while holding down `L_Ctrl` to keep it +in the bootloader: + +``` +$ make mechmini +$ bootloadHID -r mechmini_default.hex +``` + +## Troubleshooting + +From my experience, it's really hard to brick these boards. But these +tricks have been useful when it got stuck in a weird scenario. + +1. Try plugging the board in while pressing `L_Ctrl`. This will force it + to boot only the bootloader without loading the firmware. Once this is + done, just reflash the board with the original firmware. +2. Sometimes USB hubs can act weird, so try connecting the board directly + to your computer or plugging/unplugging the USB hub. diff --git a/keyboards/mechmini/config.h b/keyboards/mechmini/config.h new file mode 100644 index 000000000..b5c696f3f --- /dev/null +++ b/keyboards/mechmini/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#define VENDOR_ID 0x20A0 +#define PRODUCT_ID 0x422D +// TODO: share these strings with usbconfig.h +// Edit usbconfig.h to change these. +#define MANUFACTURER winkeyless.kr +#define PRODUCT ps2avrGB + +/* matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 15 + +#define NO_UART 1 +#define BOOTLOADHID_BOOTLOADER 1 + +/* key combination for command */ +#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) + +#endif diff --git a/keyboards/mechmini/keymaps/default/keymap.c b/keyboards/mechmini/keymaps/default/keymap.c new file mode 100644 index 000000000..4b3ed916c --- /dev/null +++ b/keyboards/mechmini/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ps2avrGB.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + MECHMINI_KEYMAP( + TAB, Q, W, E, R, T, Y, U, I, O, P, BSLS, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, + GRV, LALT, LGUI, SPC, ENT, RGUI, RALT, RCTL + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; diff --git a/keyboards/mechmini/matrix.c b/keyboards/mechmini/matrix.c new file mode 100644 index 000000000..beaa54c40 --- /dev/null +++ b/keyboards/mechmini/matrix.c @@ -0,0 +1,104 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include + +#include "matrix.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +static uint8_t debouncing = DEBOUNCE; + +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +void matrix_init(void) { + // all outputs for rows high + DDRB = 0xFF; + PORTB = 0xFF; + // all inputs for columns + DDRA = 0x00; + DDRC &= ~(0x111111<<2); + DDRD &= ~(1<> 1) & 0x55) | ((x << 1) & 0xaa); + x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc); + x = ((x >> 4) & 0x0f) | ((x << 4) & 0xf0); + return x; +} + +uint8_t matrix_scan(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + matrix_set_row_status(row); + _delay_us(5); + + matrix_row_t cols = ( + // cols 0..7, PORTA 0 -> 7 + (~PINA) & 0xFF + ) | ( + // cols 8..13, PORTC 7 -> 0 + bit_reverse((~PINC) & 0xFF) << 8 + ) | ( + // col 14, PORTD 7 + ((~PIND) & (1 << PIND7)) << 7 + ); + + if (matrix_debouncing[row] != cols) { + matrix_debouncing[row] = cols; + debouncing = DEBOUNCE; + } + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} + +void matrix_print(void) { +} diff --git a/keyboards/mechmini/mechmini.c b/keyboards/mechmini/mechmini.c new file mode 100644 index 000000000..e69de29bb diff --git a/keyboards/mechmini/mechmini.h b/keyboards/mechmini/mechmini.h new file mode 100644 index 000000000..4dc1e8887 --- /dev/null +++ b/keyboards/mechmini/mechmini.h @@ -0,0 +1,41 @@ +/* +Copyright 2017 Luiz Ribeiro + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include "keycode.h" +#include "action.h" + +#define KEYMAP( \ + K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, \ + K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, \ + K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, \ + K00, K10, K20, K56, K57, KB0, KC0, K66 \ +) \ +{ \ + { KC_##K00, KC_##K10, KC_##K20, KC_##K56, KC_NO, KC_NO, KC_##K57, KC_NO, KC_##KB0, KC_##KC0, KC_##K66, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_##K01, KC_##K11, KC_##K21, KC_##K31, KC_##K41, KC_##K51, KC_##K46, KC_##KE6, KC_##KE7, KC_##K47, KC_##KA1, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_##K02, KC_##K12, KC_##K22, KC_##K32, KC_##K42, KC_##K52, KC_##K36, KC_##KD6, KC_##KD7, KC_##K37, KC_##KA2, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_##K03, KC_##K13, KC_##K23, KC_##K33, KC_##K43, KC_##K53, KC_##K26, KC_##KC6, KC_##KC7, KC_##K27, KC_##KA3, KC_##KB3, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} + +#endif diff --git a/keyboards/mechmini/program b/keyboards/mechmini/program new file mode 100644 index 000000000..a88d9cd9b --- /dev/null +++ b/keyboards/mechmini/program @@ -0,0 +1,74 @@ +#!/usr/bin/env python +# Copyright 2017 Luiz Ribeiro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from __future__ import print_function + +import os +import sys +import time +import usb + +if len(sys.argv) < 2: + print('Usage: %s ' % sys.argv[0]) + sys.exit(1) + +print('Searching for ps2avrGB... ', end='') + +dev = usb.core.find(idVendor=0x20A0, idProduct=0x422D) +if dev is None: + raise ValueError('Device not found') + +print('Found', end='\n\n') + +print('Device Information:') +print(' idVendor: %d (0x%04x)' % (dev.idVendor, dev.idVendor)) +print(' idProduct: %d (0x%04x)' % (dev.idProduct, dev.idProduct)) +print('Manufacturer: %s' % (dev.iManufacturer)) +print('Serial: %s' % (dev.iSerialNumber)) +print('Product: %s' % (dev.iProduct), end='\n\n') + +print('Transferring control to bootloader... ', end='') + +dev.set_configuration() + +request_type = usb.util.build_request_type( + usb.util.CTRL_OUT, + usb.util.CTRL_TYPE_CLASS, + usb.util.CTRL_RECIPIENT_DEVICE) + +USBRQ_HID_SET_REPORT = 0x09 +HID_REPORT_OPTION = 0x0301 + + +try: + dev.ctrl_transfer( + request_type, + USBRQ_HID_SET_REPORT, + HID_REPORT_OPTION, + 0, + [0, 0, 0xFF] + [0] * 5 + ) +except usb.core.USBError: + # for some reason I keep getting USBError, but it works! + pass + +# wait a bit until bootloader starts up +time.sleep(2) + +print('OK') +print('Programming...') +if os.system('bootloadHID -r "%s"' % sys.argv[1]) == 0: + print('\nDone!') diff --git a/keyboards/mechmini/rules.mk b/keyboards/mechmini/rules.mk new file mode 100644 index 000000000..e2b5922ea --- /dev/null +++ b/keyboards/mechmini/rules.mk @@ -0,0 +1,43 @@ +# Copyright 2017 Luiz Ribeiro +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# MCU name +MCU = atmega32a +PROTOCOL = VUSB + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes +BACKLIGHT_ENABLE = no + +# processor frequency +F_CPU = 12000000 + +# build options +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = yes +COMMAND_ENABLE = yes + +OPT_DEFS = -DDEBUG_LEVEL=0 +OPT_DEFS += -DBOOTLOADER_SIZE=2048 + +# custom matrix setup +CUSTOM_MATRIX = yes +SRC = matrix.c + +# programming options +PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex diff --git a/keyboards/mechmini/usbconfig.h b/keyboards/mechmini/usbconfig.h new file mode 100644 index 000000000..d2d848fcd --- /dev/null +++ b/keyboards/mechmini/usbconfig.h @@ -0,0 +1,396 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#ifndef __usbconfig_h_included__ +#define __usbconfig_h_included__ + +#include "config.h" + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 1 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +#define USB_CFG_MAX_BUS_POWER 500 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 1 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x00, 0x02 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r' +#define USB_CFG_VENDOR_NAME_LEN 13 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B' +#define USB_CFG_DEVICE_NAME_LEN 8 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ +/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +#define usbMsgPtr_t unsigned short +/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to + * a scalar type here because gcc generates slightly shorter code for scalar + * arithmetics than for pointer arithmetics. Remove this define for backward + * type compatibility or define it to an 8 bit type if you use data in RAM only + * and all RAM is below 256 bytes (tiny memory model in IAR CC). + */ + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +/* Set INT1 for D- falling edge to count SOF */ +/* #define USB_INTR_CFG EICRA */ +#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10)) +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE EIMSK */ +#define USB_INTR_ENABLE_BIT INT1 +/* #define USB_INTR_PENDING EIFR */ +#define USB_INTR_PENDING_BIT INTF1 +#define USB_INTR_VECTOR INT1_vect + +#endif /* __usbconfig_h_included__ */ diff --git a/keyboards/ps2avrGB/README.md b/keyboards/ps2avrGB/README.md index 16135eccd..f8360aec0 100644 --- a/keyboards/ps2avrGB/README.md +++ b/keyboards/ps2avrGB/README.md @@ -40,12 +40,6 @@ Then, with the keyboard plugged in, simply run this command from the $ make ps2avrGB-program ``` -Or if you have a MechMini: - -``` -$ make ps2avrGB-mechmini-program -``` - If you prefer, you can just build it and flash the firmware directly with `bootloadHID` if you boot the board while holding down `L_Ctrl` to keep it in the bootloader: diff --git a/keyboards/ps2avrGB/ps2avrGB.h b/keyboards/ps2avrGB/ps2avrGB.h index 1c7a9c147..813f31f80 100644 --- a/keyboards/ps2avrGB/ps2avrGB.h +++ b/keyboards/ps2avrGB/ps2avrGB.h @@ -58,21 +58,4 @@ along with this program. If not, see . { KC_##K07, KC_##K17, KC_##K27, KC_##K37, KC_##K47, KC_##K57, KC_##K67, KC_##K77, KC_NO, KC_NO, KC_##KA7, KC_##KB7, KC_##KC7, KC_##KD7, KC_##KE7 } \ } -#define MECHMINI_KEYMAP( \ - K03, K13, K23, K33, K43, K53, K26, KC6, KC7, K27, KA3, KB3, \ - K02, K12, K22, K32, K42, K52, K36, KD6, KD7, K37, KA2, \ - K01, K11, K21, K31, K41, K51, K46, KE6, KE7, K47, KA1, \ - K00, K10, K20, K56, K57, KB0, KC0, K66 \ -) \ -{ \ - { KC_##K00, KC_##K10, KC_##K20, KC_##K56, KC_NO, KC_NO, KC_##K57, KC_NO, KC_##KB0, KC_##KC0, KC_##K66, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_##K01, KC_##K11, KC_##K21, KC_##K31, KC_##K41, KC_##K51, KC_##K46, KC_##KE6, KC_##KE7, KC_##K47, KC_##KA1, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_##K02, KC_##K12, KC_##K22, KC_##K32, KC_##K42, KC_##K52, KC_##K36, KC_##KD6, KC_##KD7, KC_##K37, KC_##KA2, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_##K03, KC_##K13, KC_##K23, KC_##K33, KC_##K43, KC_##K53, KC_##K26, KC_##KC6, KC_##KC7, KC_##K27, KC_##KA3, KC_##KB3, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ -} - #endif -- cgit v1.2.3-24-g4f1b From 3b38e6954add9b5b19fc194210438e1a865879ca Mon Sep 17 00:00:00 2001 From: Nic Aitch Date: Fri, 9 Jun 2017 09:14:44 -0500 Subject: Use single brackets for portability with other shells --- keyboards/lets_split/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index 79860ea35..43eff99e7 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk @@ -78,7 +78,7 @@ CUSTOM_MATRIX = yes avrdude: build ls /dev/tty* > /tmp/1; \ echo "Reset your Pro Micro now"; \ - while [[ -z $$USB ]]; do \ + while [ -z $$USB ]; do \ sleep 1; \ ls /dev/tty* > /tmp/2; \ USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ -- cgit v1.2.3-24-g4f1b From 8c4a59611a665bc25e75c84e93e09ed64e223b18 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 9 Jun 2017 10:22:58 -0400 Subject: due diligence, etc --- keyboards/mechmini/config.h | 2 +- keyboards/mechmini/keymaps/default/keymap.c | 4 ++-- keyboards/mechmini/rules.mk | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/mechmini/config.h b/keyboards/mechmini/config.h index b5c696f3f..ecd50ca29 100644 --- a/keyboards/mechmini/config.h +++ b/keyboards/mechmini/config.h @@ -23,7 +23,7 @@ along with this program. If not, see . // TODO: share these strings with usbconfig.h // Edit usbconfig.h to change these. #define MANUFACTURER winkeyless.kr -#define PRODUCT ps2avrGB +#define PRODUCT mechmini /* matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/mechmini/keymaps/default/keymap.c b/keyboards/mechmini/keymaps/default/keymap.c index 4b3ed916c..786132f7b 100644 --- a/keyboards/mechmini/keymaps/default/keymap.c +++ b/keyboards/mechmini/keymaps/default/keymap.c @@ -13,10 +13,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "ps2avrGB.h" +#include "mechmini.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - MECHMINI_KEYMAP( + KEYMAP( TAB, Q, W, E, R, T, Y, U, I, O, P, BSLS, LCTL, A, S, D, F, G, H, J, K, L, SCLN, LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, diff --git a/keyboards/mechmini/rules.mk b/keyboards/mechmini/rules.mk index e2b5922ea..26dfe36d0 100644 --- a/keyboards/mechmini/rules.mk +++ b/keyboards/mechmini/rules.mk @@ -40,4 +40,4 @@ CUSTOM_MATRIX = yes SRC = matrix.c # programming options -PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex +PROGRAM_CMD = ./keyboards/mechmini/program $(TARGET).hex -- cgit v1.2.3-24-g4f1b From fc39a288edd1c43c385ac75f4f353b0a72333cae Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 9 Jun 2017 10:25:20 -0400 Subject: remove mechmini keymap from ps2avrGB --- keyboards/ps2avrGB/keymaps/mechmini/keymap.c | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 keyboards/ps2avrGB/keymaps/mechmini/keymap.c (limited to 'keyboards') diff --git a/keyboards/ps2avrGB/keymaps/mechmini/keymap.c b/keyboards/ps2avrGB/keymaps/mechmini/keymap.c deleted file mode 100644 index 4b3ed916c..000000000 --- a/keyboards/ps2avrGB/keymaps/mechmini/keymap.c +++ /dev/null @@ -1,28 +0,0 @@ -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "ps2avrGB.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - MECHMINI_KEYMAP( - TAB, Q, W, E, R, T, Y, U, I, O, P, BSLS, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, - GRV, LALT, LGUI, SPC, ENT, RGUI, RALT, RCTL - ) -}; - -const uint16_t PROGMEM fn_actions[] = { -}; -- cgit v1.2.3-24-g4f1b From d2aec1625d17b77e989aa33c4270a102947642dd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 9 Jun 2017 14:05:26 -0400 Subject: removes some images --- .../keymaps/replicaJunction/atreus-replica-base.png | Bin 75363 -> 0 bytes .../keymaps/replicaJunction/atreus-replica-extend.png | Bin 92445 -> 0 bytes .../replicaJunction/atreus-replica-function.png | Bin 91749 -> 0 bytes .../keymaps/replicaJunction/atreus-replica-game.png | Bin 72856 -> 0 bytes .../keymaps/replicaJunction/atreus-replica-num.png | Bin 74690 -> 0 bytes keyboards/atreus/keymaps/replicaJunction/readme.md | 10 +++++----- keyboards/atreus62/keymaps/mneme/README.md | 6 +++--- keyboards/atreus62/keymaps/mneme/img/base.png | Bin 457157 -> 0 bytes keyboards/atreus62/keymaps/mneme/img/fun.png | Bin 425368 -> 0 bytes keyboards/atreus62/keymaps/mneme/img/sym.png | Bin 433218 -> 0 bytes keyboards/handwired/magicforce68/README.md | 2 +- keyboards/handwired/magicforce68/wiring-layout.png | Bin 73739 -> 0 bytes keyboards/handwired/trackpoint/README.md | 2 +- keyboards/handwired/trackpoint/wiring.png | Bin 7217 -> 0 bytes keyboards/kc60/keymaps/stanleylai/base_layer.png | Bin 35164 -> 0 bytes keyboards/kc60/keymaps/stanleylai/rgb_layer.png | Bin 19192 -> 0 bytes keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png | Bin 117155 -> 0 bytes keyboards/kc60/keymaps/workman-dead/readme.md | 2 +- .../nyquist/imgs/split-keyboard-i2c-schematic.png | Bin 26565 -> 0 bytes .../nyquist/imgs/split-keyboard-serial-schematic.png | Bin 19487 -> 0 bytes keyboards/nyquist/readme.md | 4 ++-- 21 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png delete mode 100644 keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png delete mode 100644 keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png delete mode 100644 keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png delete mode 100644 keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png delete mode 100644 keyboards/atreus62/keymaps/mneme/img/base.png delete mode 100644 keyboards/atreus62/keymaps/mneme/img/fun.png delete mode 100644 keyboards/atreus62/keymaps/mneme/img/sym.png delete mode 100644 keyboards/handwired/magicforce68/wiring-layout.png delete mode 100644 keyboards/handwired/trackpoint/wiring.png delete mode 100644 keyboards/kc60/keymaps/stanleylai/base_layer.png delete mode 100644 keyboards/kc60/keymaps/stanleylai/rgb_layer.png delete mode 100644 keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png delete mode 100644 keyboards/nyquist/imgs/split-keyboard-i2c-schematic.png delete mode 100644 keyboards/nyquist/imgs/split-keyboard-serial-schematic.png (limited to 'keyboards') diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png deleted file mode 100644 index 1d5bd78db..000000000 Binary files a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-base.png and /dev/null differ diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png deleted file mode 100644 index cf4db3e2c..000000000 Binary files a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-extend.png and /dev/null differ diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png deleted file mode 100644 index 30e5621e4..000000000 Binary files a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-function.png and /dev/null differ diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png deleted file mode 100644 index 95f8be5e0..000000000 Binary files a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-game.png and /dev/null differ diff --git a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png b/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png deleted file mode 100644 index 3c445f90c..000000000 Binary files a/keyboards/atreus/keymaps/replicaJunction/atreus-replica-num.png and /dev/null differ diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md index 6ac3cb00a..6a330bdbf 100644 --- a/keyboards/atreus/keymaps/replicaJunction/readme.md +++ b/keyboards/atreus/keymaps/replicaJunction/readme.md @@ -10,7 +10,7 @@ I won't claim that this layout is perfect for everyone. It does make several sig ## Base Layer ## -![Atreus base layout](atreus-replica-base.png) +![Atreus base layout](http://imgur.com/YbOjS7O) The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/). @@ -22,7 +22,7 @@ In addition to the Shift keys, there are three dual-purpose keys: Ctrl (Delete), ## Extend Layer ## -![Atreus extend layer](atreus-replica-extend.png) +![Atreus extend layer](http://imgur.com/WiKkMQw) This layout is designed primarily for keyboard navigation. Arrow keys are easily accessible under the right hand (a welcome change from the original Atreus layout, which places them under the left hand), along with Home/End and PgUp/PgDn. @@ -34,7 +34,7 @@ The Space key exists to prevent going from this layer directly into the Number l ## Number and Symbol Layer ## -![Atreus number and symbol layer](atreus-replica-num.png) +![Atreus number and symbol layer](http://imgur.com/gfTXcjC) This layer provides the only way of accessing number keys on this keyboard, since it's too small for its own number row. Note that even though they are laid out in the number pad fashion, they send the "regular" number keystrokes. Games and programs that specifically use NumPad keys are not supported in this layout at the moment. @@ -42,7 +42,7 @@ This layer also provides plenty of symbol shortcuts. Most of these can be access ## Function Layer ## -![Atreus function layer](atreus-replica-function.png) +![Atreus function layer](http://imgur.com/m5x0MxZ) Function keys (F1-F12) are on this layer. Their layout in groups of four comes from Jeremy's Atreus layout in this repository. I'd been using 1-9 in a numpad layout, then adding 10-12 on the side...I suppose it took seeing someone else do it this way for me to realize how much more sense it makes. @@ -52,7 +52,7 @@ Finally, the reset key is on this layer, as well as toggles from Colemak to QWER ## Gaming Layer ## -![Atreus gaming layer](atreus-replica-game.png) +![Atreus gaming layer](http://imgur.com/4S5AO4E) This is a small layer developed to allow some simple gameplay without a mouse. This layer is a toggle (from the Number layer), so it is designed to stay on while in use. diff --git a/keyboards/atreus62/keymaps/mneme/README.md b/keyboards/atreus62/keymaps/mneme/README.md index 7bb5da9fc..e65bf5de1 100644 --- a/keyboards/atreus62/keymaps/mneme/README.md +++ b/keyboards/atreus62/keymaps/mneme/README.md @@ -21,7 +21,7 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym ## Base layer -![Base layer](img/base.png) +![Base layer](http://imgur.com/zTYxnE0) * The number row doubles as a function row. Short presses produces numbers, long presses produces Fxx @@ -40,14 +40,14 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym ## Nav layer -![Nav layer](img/fun.png) +![Nav layer](http://imgur.com/cbMWVDC) Basic navigation on the right hand and modifiers close by for the left. The latter because I tend to use `ctrl+arrows` quite a lot. ## Sym layer -![Sym layer](img/sym.png) +![Sym layer](http://imgur.com/n2jmqFU) * Easy access to most symbols I use on a daily basis. Most common are on the home row, the rest are grouped as best as I could. diff --git a/keyboards/atreus62/keymaps/mneme/img/base.png b/keyboards/atreus62/keymaps/mneme/img/base.png deleted file mode 100644 index 3e77a5183..000000000 Binary files a/keyboards/atreus62/keymaps/mneme/img/base.png and /dev/null differ diff --git a/keyboards/atreus62/keymaps/mneme/img/fun.png b/keyboards/atreus62/keymaps/mneme/img/fun.png deleted file mode 100644 index 961a19724..000000000 Binary files a/keyboards/atreus62/keymaps/mneme/img/fun.png and /dev/null differ diff --git a/keyboards/atreus62/keymaps/mneme/img/sym.png b/keyboards/atreus62/keymaps/mneme/img/sym.png deleted file mode 100644 index 5e2c80335..000000000 Binary files a/keyboards/atreus62/keymaps/mneme/img/sym.png and /dev/null differ diff --git a/keyboards/handwired/magicforce68/README.md b/keyboards/handwired/magicforce68/README.md index 4f0ccecf9..2877169ef 100644 --- a/keyboards/handwired/magicforce68/README.md +++ b/keyboards/handwired/magicforce68/README.md @@ -5,7 +5,7 @@ This firmware is for a Magicforce 68 that's had its PCB removed and is handwired ## Wiring Layout -![Wiring Layout](wiring-layout.png) +![Wiring Layout](http://imgur.com/NmTCv5u) ## Pinout diff --git a/keyboards/handwired/magicforce68/wiring-layout.png b/keyboards/handwired/magicforce68/wiring-layout.png deleted file mode 100644 index 816b10b2b..000000000 Binary files a/keyboards/handwired/magicforce68/wiring-layout.png and /dev/null differ diff --git a/keyboards/handwired/trackpoint/README.md b/keyboards/handwired/trackpoint/README.md index a22fca295..bbfcaab0c 100644 --- a/keyboards/handwired/trackpoint/README.md +++ b/keyboards/handwired/trackpoint/README.md @@ -3,7 +3,7 @@ This is just a simple demo to show how to integrate IBM Trackpoint in QMK. Wiring used in the demonstration: -![Wiring example](./wiring.png) +![Wiring example](http://imgur.com/8ghG2U8) Some documentation: * [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint) diff --git a/keyboards/handwired/trackpoint/wiring.png b/keyboards/handwired/trackpoint/wiring.png deleted file mode 100644 index 45806e007..000000000 Binary files a/keyboards/handwired/trackpoint/wiring.png and /dev/null differ diff --git a/keyboards/kc60/keymaps/stanleylai/base_layer.png b/keyboards/kc60/keymaps/stanleylai/base_layer.png deleted file mode 100644 index 97235c6af..000000000 Binary files a/keyboards/kc60/keymaps/stanleylai/base_layer.png and /dev/null differ diff --git a/keyboards/kc60/keymaps/stanleylai/rgb_layer.png b/keyboards/kc60/keymaps/stanleylai/rgb_layer.png deleted file mode 100644 index 2bba028bb..000000000 Binary files a/keyboards/kc60/keymaps/stanleylai/rgb_layer.png and /dev/null differ diff --git a/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png b/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png deleted file mode 100644 index cc6a630a5..000000000 Binary files a/keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.png and /dev/null differ diff --git a/keyboards/kc60/keymaps/workman-dead/readme.md b/keyboards/kc60/keymaps/workman-dead/readme.md index f1fcdc960..7b4f543f7 100644 --- a/keyboards/kc60/keymaps/workman-dead/readme.md +++ b/keyboards/kc60/keymaps/workman-dead/readme.md @@ -1,7 +1,7 @@ # Workman dead with spacefn (kc60 @ QMK) ## Layout reference -![workman dead with spacefn](./kc60-wm-dead.png) +![workman dead with spacefn](http://imgur.com/Ep8gePQ) ## Build diff --git a/keyboards/nyquist/imgs/split-keyboard-i2c-schematic.png b/keyboards/nyquist/imgs/split-keyboard-i2c-schematic.png deleted file mode 100644 index 888294718..000000000 Binary files a/keyboards/nyquist/imgs/split-keyboard-i2c-schematic.png and /dev/null differ diff --git a/keyboards/nyquist/imgs/split-keyboard-serial-schematic.png b/keyboards/nyquist/imgs/split-keyboard-serial-schematic.png deleted file mode 100644 index 7621d38ed..000000000 Binary files a/keyboards/nyquist/imgs/split-keyboard-serial-schematic.png and /dev/null differ diff --git a/keyboards/nyquist/readme.md b/keyboards/nyquist/readme.md index b2bf01389..c70bf0257 100644 --- a/keyboards/nyquist/readme.md +++ b/keyboards/nyquist/readme.md @@ -86,11 +86,11 @@ and modify the `matrix.c` accordingly. The wiring for serial: -![serial wiring](imgs/split-keyboard-serial-schematic.png) +![serial wiring](http://imgur.com/BnCGU1Y) The wiring for i2c: -![i2c wiring](imgs/split-keyboard-i2c-schematic.png) +![i2c wiring](http://imgur.com/5eiArDA) The pull-up resistors may be placed on either half. It is also possible to use 4 resistors and have the pull-ups in both halves, but this is -- cgit v1.2.3-24-g4f1b From e3f657dfeb1f1e96def6fa56430443ab7bf16126 Mon Sep 17 00:00:00 2001 From: binaryplease Date: Sat, 10 Jun 2017 02:01:51 +0200 Subject: commented out unused layers --- .../planck/keymaps/handwired_binaryplease/keymap.c | 116 ++++++++++----------- 1 file changed, 58 insertions(+), 58 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c index d149019fe..9253010eb 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c +++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c @@ -18,22 +18,22 @@ extern keymap_config_t keymap_config; enum planck_layers { _QWERTY, _COLEMAK, - _DVORAK, + /*_DVORAK,*/ _LOWER, _RAISE, - _PLOVER, + /*_PLOVER,*/ _ADJUST }; enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, - DVORAK, - PLOVER, + /*DVORAK,*/ + /*PLOVER,*/ LOWER, RAISE, - BACKLIT, - EXT_PLV + BACKLIT + /*EXT_PLV*/ }; // Fillers to make layering more clear @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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 }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LGUI, _______, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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 }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -89,12 +89,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_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 }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, +/*[_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 },*/ + /*{KC_LCTL, BACKLIT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}*/ +/*},*/ /* Lower * ,-----------------------------------------------------------------------------------. @@ -144,12 +144,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_PLOVER] = { - {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, - {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} -}, +/*[_PLOVER] = {*/ + /*{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },*/ + /*{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},*/ + /*{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},*/ + /*{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}*/ +/*},*/ /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -211,15 +211,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - return false; - break; + /*case DVORAK:*/ + /*if (record->event.pressed) {*/ + /*#ifdef AUDIO_ENABLE*/ + /*PLAY_NOTE_ARRAY(tone_dvorak, false, 0);*/ + /*#endif*/ + /*persistant_default_layer_set(1UL<<_DVORAK);*/ + /*}*/ + /*return false;*/ + /*break;*/ case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -251,34 +251,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case PLOVER: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - return false; - break; + /*case PLOVER:*/ + /*if (record->event.pressed) {*/ + /*#ifdef AUDIO_ENABLE*/ + /*stop_all_notes();*/ + /*PLAY_NOTE_ARRAY(tone_plover, false, 0);*/ + /*#endif*/ + /*layer_off(_RAISE);*/ + /*layer_off(_LOWER);*/ + /*layer_off(_ADJUST);*/ + /*layer_on(_PLOVER);*/ + /*if (!eeconfig_is_enabled()) {*/ + /*eeconfig_init();*/ + /*}*/ + /*keymap_config.raw = eeconfig_read_keymap();*/ + /*keymap_config.nkro = 1;*/ + /*eeconfig_update_keymap(keymap_config.raw);*/ + /*}*/ + /*return false;*/ + /*break;*/ + /*case EXT_PLV:*/ + /*if (record->event.pressed) {*/ + /*#ifdef AUDIO_ENABLE*/ + /*PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);*/ + /*#endif*/ + /*layer_off(_PLOVER);*/ + /*}*/ + /*return false;*/ + /*break;*/ } return true; } -- cgit v1.2.3-24-g4f1b From 0c1dc91d7450731afbd3ed69635bcb0f6035d959 Mon Sep 17 00:00:00 2001 From: binaryplease Date: Sat, 10 Jun 2017 02:42:27 +0200 Subject: removed swapping keys in adjust layer --- keyboards/planck/keymaps/handwired_binaryplease/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c index 9253010eb..51dbc00d0 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c +++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, _______, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } -- cgit v1.2.3-24-g4f1b From 1502c9c93529c44ba7c67f48c939fbeca2c97bed Mon Sep 17 00:00:00 2001 From: binaryplease Date: Sat, 10 Jun 2017 02:44:28 +0200 Subject: put colemak and qwert switching on the top right --- keyboards/planck/keymaps/handwired_binaryplease/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c index 51dbc00d0..25a422dbb 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c +++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, - {_______, _______, _______, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, _______, _______, _______, _______, _______, QWERTY, COLEMAK}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } -- cgit v1.2.3-24-g4f1b From ca01d94005f67ec4fa9528353481faa622d949ae Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 10 Jun 2017 14:58:24 -0400 Subject: convert docs to lowercase and underscores --- keyboards/kc60/keymaps/stanleylai/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kc60/keymaps/stanleylai/readme.md b/keyboards/kc60/keymaps/stanleylai/readme.md index 1db72610d..815649d98 100644 --- a/keyboards/kc60/keymaps/stanleylai/readme.md +++ b/keyboards/kc60/keymaps/stanleylai/readme.md @@ -14,10 +14,10 @@ For the full Quantum feature list, see [the parent readme.md](/readme.md). - Fn Layer indicated on keycap front legends. - Tapping Caps Lock key toggles Caps. Holding it down momentarily switches us to the Fn Layer. - Holding down "Fn" and "Page Down" momentarily switches us to the RGB Layer. Tapping "Page Down" behaves as expected. -![Base Layer](base_layer.jpg) +![Base Layer](http://imgur.com/aAi6lDe) ### RGB Layer Reference -![RGB Layer](rgb_layer.jpg) +![RGB Layer](http://imgur.com/ZWIfuPM) ## WS2812 Support By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](../ws2812/ws2812_wiring.jpg) for wiring reference. -- cgit v1.2.3-24-g4f1b From b1e01e9d1ffcc6ca0803f30c09d3eebe6a90186b Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Sat, 10 Jun 2017 21:04:16 -0400 Subject: Support Sentraq S65-X Add initial support for ANSI layout of S65-X. Includes support for controlling RGB underlighting. --- keyboards/s65_x/Makefile | 3 + keyboards/s65_x/config.h | 55 ++++++++ keyboards/s65_x/keymaps/default/keymap.c | 222 ++++++++++++++++++++++++++++++ keyboards/s65_x/keymaps/default/readme.md | 27 ++++ keyboards/s65_x/readme.md | 82 +++++++++++ keyboards/s65_x/rules.mk | 67 +++++++++ keyboards/s65_x/s65_x.c | 30 ++++ keyboards/s65_x/s65_x.h | 25 ++++ 8 files changed, 511 insertions(+) create mode 100644 keyboards/s65_x/Makefile create mode 100644 keyboards/s65_x/config.h create mode 100644 keyboards/s65_x/keymaps/default/keymap.c create mode 100644 keyboards/s65_x/keymaps/default/readme.md create mode 100644 keyboards/s65_x/readme.md create mode 100644 keyboards/s65_x/rules.mk create mode 100644 keyboards/s65_x/s65_x.c create mode 100644 keyboards/s65_x/s65_x.h (limited to 'keyboards') diff --git a/keyboards/s65_x/Makefile b/keyboards/s65_x/Makefile new file mode 100644 index 000000000..57b2ef62e --- /dev/null +++ b/keyboards/s65_x/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/s65_x/config.h b/keyboards/s65_x/config.h new file mode 100644 index 000000000..0af9f6dd1 --- /dev/null +++ b/keyboards/s65_x/config.h @@ -0,0 +1,55 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define PRODUCT S65-X-RGB +#define DESCRIPTION q.m.k. keyboard firmware for S60-X RGB +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sentraq + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C7, C6, B6, B5, B4 } +#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, E6, B0, B1, D5, B2, B3, D0, D1, D2, D4, D6, D7, F7 } +#define UNUSED_PINS + +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c new file mode 100644 index 000000000..c0737c11b --- /dev/null +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -0,0 +1,222 @@ +#include "s65_x.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Main layer, swapped alt and GUI for Mac + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + /* 0: ANSI qwerty */ + [_BL] = ANSI_KEYMAP( + F(3), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ + F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + /* 1: Locking arrow keys to WASD for when you need dedicated arrow keys + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_AL] = ANSI_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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS), + + /* 2: Fn layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_FL] = ANSI_KEYMAP( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY, KC_TRNS), + + /* 3: Locking layer for controlling the underglow + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │█████│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_UL] = ANSI_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_TRNS, \ + KC_TRNS, F(4), F(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, F(6), F(7), F(8), F(9), F(10), F(11), 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), +}; + +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, + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow + [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode + [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + [12] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void matrix_scan_user(void) { + + /* uint32_t layer = layer_state; */ + /* if (layer & (1<<1)) { */ + /* gh60_wasd_leds_on(); */ + /* } else { */ + /* gh60_wasd_leds_off(); */ + /* } */ + /* */ + /* if (layer & (1<<2)) { */ + /* gh60_esc_led_on(); */ + /* } else { */ + /* gh60_esc_led_off(); */ + /* } */ +}; + +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; +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +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; + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +}; diff --git a/keyboards/s65_x/keymaps/default/readme.md b/keyboards/s65_x/keymaps/default/readme.md new file mode 100644 index 000000000..c180ffdf9 --- /dev/null +++ b/keyboards/s65_x/keymaps/default/readme.md @@ -0,0 +1,27 @@ +### 1 ANSI +A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. + +#### 1.0 Default layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +#### 1.1 Fn layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/s65_x/readme.md b/keyboards/s65_x/readme.md new file mode 100644 index 000000000..e086a2056 --- /dev/null +++ b/keyboards/s65_x/readme.md @@ -0,0 +1,82 @@ +S65-x keyboard firmware +====================== +DIY 65% keyboard from Sentraq. + +## S65X Resources +- [Sentraq page](https://sentraq.com/collections/group-buys/products/gb-s65-x-rgb-diy-kit?variant=39246723914) + +## Flashing your keyboard +The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). + +[QMK Firmware Flasher](https://github.com/qmk/qmk_firmware_flasher/releases) may work, as the S65-X keyboard uses the ATMega32U4 microcontroller, but it is untested. Use at your own risk. + +**Programming the firmware (Windows)** + +1. download and install FLIP (http://www.atmel.com/tools/FLIP.aspx) +2. connect the keyboard, press the program button on the underside of the board (S1) and wait until it enumerates (you'll hear the "disconnect" and "connect" sound) +3. go to device manager, find the atmega32u4 chip and click "update driver" +4. choose location manually: folder named "usb" inside the installation directory of FLIP +5. once the driver is installed, run flip +6. Device -> Select: choose ATMega32U4 +7. Settings -> Communication -> USB, FLIP should show the signature at this point (58 1E 95 87) +8. File -> Load HEX file: choose the hex firmware: .hex +9. click "Run" +10. after programming is done, disconnect the device from USB and connect again. + + +**Programming the firmware (Linux/Mac)** + +1. Download and install/compile/unpack dfu-programmer from http://dfu-programmer.sourceforge.net/. +2. Issue the following commands in the command prompt after connecting the device and pressing the programming button (S1). You may need root permissions or udev rules to do that. + 1. `sudo dfu-programmer atmega32u4 erase` + 2. `sudo dfu-programmer atmega32u4 flash .hex` + 3. `sudo dfu-programmer atmega32u4 start` +3. The keyboard should start working. If it doesn't, reconnect the cable. + +## Building the firmware + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + + $ make default + +For a more detailed explanation of the build process and the environment setup, see the ["Getting Started" section](/readme.md#getting-started). + +## Keymaps + +Currently only an ANSI keymap is provided, hopefully others will contribute theirs. + +### 0 Initial explanations +The █████ blocks on the layouts hides the switch positions that do not exist physically on the PCB. If you feel like hacking the keyboard and adding new keys, those are the positions that can be used. You'll have to modify the [keymap_common.h](keymap_common.h) file for that. + +The ▒▒▒▒▒ blocks hides switch positions not used on this particular layout, but they do exist on the PCB. + +There is no LED support on the PCB at the moment, but I'll let the code for that untouched. + + +### 1 [Standard - ANSI (default layout)](keymaps/default/keymap.c) + +#### 1.0 Default layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +#### 1.1 Fn layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + diff --git a/keyboards/s65_x/rules.mk b/keyboards/s65_x/rules.mk new file mode 100644 index 000000000..9d8b559af --- /dev/null +++ b/keyboards/s65_x/rules.mk @@ -0,0 +1,67 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +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 +RGBLIGHT_ENABLE ?= yes # Enable RGB light diff --git a/keyboards/s65_x/s65_x.c b/keyboards/s65_x/s65_x.c new file mode 100644 index 000000000..f3f8ffbc8 --- /dev/null +++ b/keyboards/s65_x/s65_x.c @@ -0,0 +1,30 @@ +#include "s65_x.h" +#include "led.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + matrix_scan_user(); +}; + +void led_init_ports(void) { + // * Set our LED pins as output + DDRB |= (1<<7); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< Date: Sun, 11 Jun 2017 15:36:28 -0400 Subject: remove most .pngs --- keyboards/ergodox/keymaps/ab/keyboard-layout.png | Bin 80776 -> 0 bytes keyboards/ergodox/keymaps/ab/readme.md | 2 +- .../ergodox/keymaps/absenth/absenth_highres.png | Bin 1463041 -> 0 bytes keyboards/ergodox/keymaps/absenth/readme.md | 2 +- keyboards/ergodox/keymaps/bepo/bepo.png | Bin 80249 -> 0 bytes keyboards/ergodox/keymaps/bepo/readme.md | 2 + .../keymaps/colemak_osx_pc_no/keyboard-layout.png | Bin 103158 -> 0 bytes .../ergodox/keymaps/colemak_osx_pc_no/readme.md | 2 +- .../ergodox/keymaps/csharp_dev/csharp_dev.png | Bin 97642 -> 0 bytes .../keymaps/csharp_dev/csharp_dev_legend.png | Bin 387797 -> 0 bytes keyboards/ergodox/keymaps/csharp_dev/readme.md | 3 +- keyboards/ergodox/keymaps/default/default.png | Bin 193672 -> 0 bytes keyboards/ergodox/keymaps/default/default.png.md | 1 + .../keymaps/default/default_firmware_v1.2-2.png | Bin 257921 -> 0 bytes .../ergodox/keymaps/default/default_highres.png | Bin 1459389 -> 0 bytes .../ergodox/keymaps/default/default_highres.png.md | 1 + keyboards/ergodox/keymaps/default/readme.md | 2 +- .../keymaps/default_osx/default_osx_highres.png | Bin 772418 -> 0 bytes keyboards/ergodox/keymaps/default_osx/readme.md | 2 +- keyboards/ergodox/keymaps/dvorak/dvorak.png | Bin 87314 -> 0 bytes keyboards/ergodox/keymaps/dvorak/dvorak.png.md | 1 + .../dvorak_intl_squisher/keyboard-layout0.png | Bin 73585 -> 0 bytes .../dvorak_intl_squisher/keyboard-layout1.png | Bin 59122 -> 0 bytes .../dvorak_intl_squisher/keyboard-layout2.png | Bin 53319 -> 0 bytes .../ergodox/keymaps/dvorak_intl_squisher/readme.md | 6 +- .../keymaps/emacs_osx_dk/default_highres.png | Bin 142146 -> 0 bytes keyboards/ergodox/keymaps/emacs_osx_dk/readme.md | 2 +- keyboards/ergodox/keymaps/familiar/README.md | 2 +- keyboards/ergodox/keymaps/familiar/familiar.png | Bin 149846 -> 0 bytes .../ergodox/keymaps/german-kinergo/layout-code.png | Bin 55386 -> 0 bytes .../keymaps/german-kinergo/layout-media.png | Bin 67634 -> 0 bytes .../ergodox/keymaps/german-kinergo/layout.png | Bin 71175 -> 0 bytes keyboards/ergodox/keymaps/german-kinergo/readme.md | 6 +- keyboards/ergodox/keymaps/jafo/jafo_highres.png | Bin 179460 -> 0 bytes keyboards/ergodox/keymaps/jafo/readme.md | 2 +- .../keyboard-layout.png | Bin 140077 -> 0 bytes .../keymaps/norwegian_programmer_osx_pc/readme.md | 2 +- .../keyboard-layout.png | Bin 97519 -> 0 bytes .../norwegian_programmer_osx_pc_colemak/readme.md | 2 +- .../ergodox/keymaps/ordinary/ordinary-base.png | Bin 120512 -> 0 bytes .../ergodox/keymaps/ordinary/ordinary-media.png | Bin 123523 -> 0 bytes .../ergodox/keymaps/ordinary/ordinary-special.png | Bin 68292 -> 0 bytes .../ergodox/keymaps/ordinary/ordinary-symbol.png | Bin 90642 -> 0 bytes keyboards/ergodox/keymaps/ordinary/readme.md | 8 +- .../ergodox/keymaps/osx_de/osx_de_highres.png | Bin 298446 -> 0 bytes .../ergodox/keymaps/osx_de/osx_de_highres.png.md | 1 + .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png | Bin 183892 -> 0 bytes .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md | 1 + .../osx_de_experimental_highres.png | Bin 303904 -> 0 bytes .../osx_de_experimental_highres.png.md | 1 + .../osx_whiskey_tango_foxtrot_capslock.png | Bin 185064 -> 0 bytes .../osx_whiskey_tango_foxtrot_capslock/readme.md | 2 +- keyboards/ergodox/keymaps/plums/plums.png | Bin 223300 -> 0 bytes keyboards/ergodox/keymaps/plums/readme.md | 2 +- .../keymaps/romanzolotarev-norman-osx/readme.md | 2 +- .../romanzolotarev-norman-osx.png | Bin 96954 -> 0 bytes .../readme.md | 2 +- .../romanzolotarev-norman-plover-osx-hjkl.png | Bin 130692 -> 0 bytes .../romanzolotarev-norman-plover-osx/readme.md | 2 +- .../romanzolotarev-norman-plover-osx.png | Bin 130464 -> 0 bytes .../romanzolotarev-norman-qwerty-osx/readme.md | 2 +- .../romanzolotarev-norman-qwerty-osx.png | Bin 100627 -> 0 bytes keyboards/ergodox/keymaps/siroken3/default.png | Bin 193672 -> 0 bytes keyboards/ergodox/keymaps/siroken3/default.png.md | 1 + .../keymaps/siroken3/default_firmware_v1.2-2.png | Bin 257921 -> 0 bytes .../ergodox/keymaps/siroken3/default_highres.png | Bin 1459389 -> 0 bytes .../keymaps/siroken3/default_highres.png.md | 1 + keyboards/ergodox/keymaps/siroken3/readme.md | 2 +- .../keymaps/swissgerman/keyboard-layout.png | Bin 75633 -> 0 bytes .../keymaps/swissgerman/keyboard-layout_1_2.png | Bin 58099 -> 0 bytes keyboards/ergodox/keymaps/swissgerman/readme.md | 4 +- .../keymaps/teckinesis/ordinary-special.png | Bin 63065 -> 0 bytes .../keymaps/teckinesis/ordinary-special.png.md | 1 + keyboards/ergodox/keymaps/teckinesis/readme.md | 6 +- .../ergodox/keymaps/teckinesis/teckinesis-base.png | Bin 93743 -> 0 bytes .../keymaps/teckinesis/teckinesis-media.png | Bin 112216 -> 0 bytes .../keymaps/teckinesis/teckinesis-symbol.png | Bin 97350 -> 0 bytes .../ergodox/keymaps/tkuichooseyou/compiled.hex | 1137 ------------------- keyboards/ergodox/keymaps/townk_osx/readme.md | 6 +- .../ergodox/keymaps/townk_osx/townk_osx_base.png | Bin 785859 -> 0 bytes .../ergodox/keymaps/townk_osx/townk_osx_fn.png | Bin 390041 -> 0 bytes .../ergodox/keymaps/townk_osx/townk_osx_keypad.png | Bin 424425 -> 0 bytes .../twentylives_dvorak_with_hebrew/keymap.png | Bin 119825 -> 0 bytes .../twentylives_dvorak_with_hebrew/keymap2.png | Bin 292705 -> 0 bytes .../twentylives_dvorak_with_hebrew/readme.md | 4 +- .../keymaps/zweihander-osx/zweihander-osx.hex | 1151 -------------------- keyboards/ergodox/readme.md | 2 +- 87 files changed, 51 insertions(+), 2327 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/ab/keyboard-layout.png delete mode 100644 keyboards/ergodox/keymaps/absenth/absenth_highres.png delete mode 100644 keyboards/ergodox/keymaps/bepo/bepo.png delete mode 100644 keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png delete mode 100644 keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png delete mode 100644 keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png delete mode 100644 keyboards/ergodox/keymaps/default/default.png create mode 100644 keyboards/ergodox/keymaps/default/default.png.md delete mode 100644 keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png delete mode 100644 keyboards/ergodox/keymaps/default/default_highres.png create mode 100644 keyboards/ergodox/keymaps/default/default_highres.png.md delete mode 100644 keyboards/ergodox/keymaps/default_osx/default_osx_highres.png delete mode 100644 keyboards/ergodox/keymaps/dvorak/dvorak.png create mode 100644 keyboards/ergodox/keymaps/dvorak/dvorak.png.md delete mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png delete mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png delete mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png delete mode 100644 keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png delete mode 100644 keyboards/ergodox/keymaps/familiar/familiar.png delete mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout-code.png delete mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout-media.png delete mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout.png delete mode 100644 keyboards/ergodox/keymaps/jafo/jafo_highres.png delete mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png delete mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png delete mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-base.png delete mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-media.png delete mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-special.png delete mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png delete mode 100644 keyboards/ergodox/keymaps/osx_de/osx_de_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de/osx_de_highres.png.md delete mode 100644 keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md delete mode 100644 keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png.md delete mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png delete mode 100644 keyboards/ergodox/keymaps/plums/plums.png delete mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png delete mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png delete mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png delete mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png delete mode 100644 keyboards/ergodox/keymaps/siroken3/default.png create mode 100644 keyboards/ergodox/keymaps/siroken3/default.png.md delete mode 100644 keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png delete mode 100644 keyboards/ergodox/keymaps/siroken3/default_highres.png create mode 100644 keyboards/ergodox/keymaps/siroken3/default_highres.png.md delete mode 100644 keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png delete mode 100644 keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png delete mode 100644 keyboards/ergodox/keymaps/teckinesis/ordinary-special.png create mode 100644 keyboards/ergodox/keymaps/teckinesis/ordinary-special.png.md delete mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png delete mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png delete mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png delete mode 100644 keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex delete mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png delete mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png delete mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png delete mode 100644 keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png delete mode 100644 keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png delete mode 100644 keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/ab/keyboard-layout.png b/keyboards/ergodox/keymaps/ab/keyboard-layout.png deleted file mode 100644 index 740684461..000000000 Binary files a/keyboards/ergodox/keymaps/ab/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ab/readme.md b/keyboards/ergodox/keymaps/ab/readme.md index 4ad80efe6..fde1c1726 100644 --- a/keyboards/ergodox/keymaps/ab/readme.md +++ b/keyboards/ergodox/keymaps/ab/readme.md @@ -1,7 +1,7 @@ # Beginner's keymap for Ergodox-EZ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. -![Beginner's Keymap](keyboard-layout.png) +![Beginner's Keymap](https://i.imgur.com/dAIocc8.png) #### Pros * Easier to switch between regular keyboards and Ergodox-EZ. diff --git a/keyboards/ergodox/keymaps/absenth/absenth_highres.png b/keyboards/ergodox/keymaps/absenth/absenth_highres.png deleted file mode 100644 index c07aa8803..000000000 Binary files a/keyboards/ergodox/keymaps/absenth/absenth_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/absenth/readme.md b/keyboards/ergodox/keymaps/absenth/readme.md index 0c04bf417..744c67afe 100644 --- a/keyboards/ergodox/keymaps/absenth/readme.md +++ b/keyboards/ergodox/keymaps/absenth/readme.md @@ -8,4 +8,4 @@ * Sept. 8, 2016 (V0.1): * Made A key double as MEDIA Layer change when you hold it. Added mouse buttons to the large thumb buttons on the left side on the Media Layer. Added vi/vim style arrow keys on HJKL on media layer. -![Absenth](absenth_highres.png) +![Absenth](https://i.imgur.com/D1enl2x.jpg) diff --git a/keyboards/ergodox/keymaps/bepo/bepo.png b/keyboards/ergodox/keymaps/bepo/bepo.png deleted file mode 100644 index 54992f5ae..000000000 Binary files a/keyboards/ergodox/keymaps/bepo/bepo.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/bepo/readme.md b/keyboards/ergodox/keymaps/bepo/readme.md index 2959ac829..14a1d2219 100644 --- a/keyboards/ergodox/keymaps/bepo/readme.md +++ b/keyboards/ergodox/keymaps/bepo/readme.md @@ -1,3 +1,5 @@ +![bepo.png](https://i.imgur.com/TnO8ApW.png) + # BEPO keymap for the ErgoDox This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this readme will be in french. diff --git a/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png deleted file mode 100644 index 57df5a1f9..000000000 Binary files a/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md index 48f095cae..b28483f39 100644 --- a/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md +++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md @@ -20,4 +20,4 @@ Tap for the next character to be shifted, hold down for regular shift functional ## Layout -![keyboard-layout](keyboard-layout.png) +![keyboard-layout](https://i.imgur.com/168aGmR.png) diff --git a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png deleted file mode 100644 index 6fba568fc..000000000 Binary files a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png deleted file mode 100644 index b0a1c513c..000000000 Binary files a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/csharp_dev/readme.md b/keyboards/ergodox/keymaps/csharp_dev/readme.md index 96af077ad..980480d62 100644 --- a/keyboards/ergodox/keymaps/csharp_dev/readme.md +++ b/keyboards/ergodox/keymaps/csharp_dev/readme.md @@ -16,7 +16,8 @@ The biggest flaw in standard QWERTY keyboards was that I always needed to perfor Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. -![CSharpDev](csharp_dev_legend.png) +![CSharpDev](https://i.imgur.com/PkNqi7V.png) +![CSharpDev](https://i.imgur.com/0IcMgMf.png) ## Layout design principles * No key combination required for the most common input characters ( (),[],{},<> ... ) diff --git a/keyboards/ergodox/keymaps/default/default.png b/keyboards/ergodox/keymaps/default/default.png deleted file mode 100644 index 6575f7b5e..000000000 Binary files a/keyboards/ergodox/keymaps/default/default.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/default/default.png.md b/keyboards/ergodox/keymaps/default/default.png.md new file mode 100644 index 000000000..744e7d172 --- /dev/null +++ b/keyboards/ergodox/keymaps/default/default.png.md @@ -0,0 +1 @@ +https://i.imgur.com/fKX0Zbs.png diff --git a/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png b/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png deleted file mode 100644 index e3c321cc0..000000000 Binary files a/keyboards/ergodox/keymaps/default/default_firmware_v1.2-2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/default/default_highres.png b/keyboards/ergodox/keymaps/default/default_highres.png deleted file mode 100644 index 7d9f045f4..000000000 Binary files a/keyboards/ergodox/keymaps/default/default_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/default/default_highres.png.md b/keyboards/ergodox/keymaps/default/default_highres.png.md new file mode 100644 index 000000000..074e0634d --- /dev/null +++ b/keyboards/ergodox/keymaps/default/default_highres.png.md @@ -0,0 +1 @@ +https://i.imgur.com/giAc3M9.jpg diff --git a/keyboards/ergodox/keymaps/default/readme.md b/keyboards/ergodox/keymaps/default/readme.md index 979ce0f5b..1150a4f70 100644 --- a/keyboards/ergodox/keymaps/default/readme.md +++ b/keyboards/ergodox/keymaps/default/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](default_firmware_v1.2-2.png) +![Default](https://i.imgur.com/Be53jH7.png) \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png deleted file mode 100644 index 04f46bbd5..000000000 Binary files a/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/default_osx/readme.md b/keyboards/ergodox/keymaps/default_osx/readme.md index aa749aac9..28ca0339b 100644 --- a/keyboards/ergodox/keymaps/default_osx/readme.md +++ b/keyboards/ergodox/keymaps/default_osx/readme.md @@ -5,4 +5,4 @@ So, I took the default firmware and just made a couple of tweaks that make it ea 1. The Cmd key is now on the right side, making Cmd+Space easier. 2. The media keys work on OSX (But not on Windows). -![default osx](default_osx_highres.png) +![default osx](https://i.imgur.com/z0aqFDq.png) diff --git a/keyboards/ergodox/keymaps/dvorak/dvorak.png b/keyboards/ergodox/keymaps/dvorak/dvorak.png deleted file mode 100644 index cb8316309..000000000 Binary files a/keyboards/ergodox/keymaps/dvorak/dvorak.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/dvorak/dvorak.png.md b/keyboards/ergodox/keymaps/dvorak/dvorak.png.md new file mode 100644 index 000000000..002215001 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak/dvorak.png.md @@ -0,0 +1 @@ +https://i.imgur.com/zLx5fus.png diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png deleted file mode 100644 index 6a36f9bfa..000000000 Binary files a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png deleted file mode 100644 index c6e6d913c..000000000 Binary files a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png deleted file mode 100644 index 23f56ff4c..000000000 Binary files a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md index 984106ff4..7a48bf524 100644 --- a/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md +++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md @@ -19,9 +19,9 @@ Known issues: * Alt+Shift does not work reliably (depends on the X11 kb layout? Not entirely clear...) -![layer0](keyboard-layout0.png) -![layer1](keyboard-layout1.png) -![layer2](keyboard-layout2.png) +![layer0](https://i.imgur.com/AL70X44.png) +![layer1](https://i.imgur.com/k1DcUdt.png) +![layer2](https://i.imgur.com/nK80mKf.png) ## Changelog diff --git a/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png b/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png deleted file mode 100644 index 1d2583740..000000000 Binary files a/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md index 4839988d9..bd12c7d9a 100644 --- a/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md +++ b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md @@ -7,4 +7,4 @@ Gui button takes a predominant place on the thumb cluster, as I'm using a mac os Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. -![Default](default_highres.png) +![Default](https://i.imgur.com/EDgp9xj.png) diff --git a/keyboards/ergodox/keymaps/familiar/README.md b/keyboards/ergodox/keymaps/familiar/README.md index e4336d9b5..7252f571a 100644 --- a/keyboards/ergodox/keymaps/familiar/README.md +++ b/keyboards/ergodox/keymaps/familiar/README.md @@ -45,7 +45,7 @@ $ make ergodox-ez-familiar-teensy ## Usage -[![Familiar Layout](familiar.png)](http://www.keyboard-layout-editor.com/#/gists/13508a9f99cff381d58b7be6f7dcc644) +[![Familiar Layout](https://i.imgur.com/jflmkBb.png)](http://www.keyboard-layout-editor.com/#/gists/13508a9f99cff381d58b7be6f7dcc644) ### Layers 1. Base Layer: QWERTY, with arrow keys at bottom right. diff --git a/keyboards/ergodox/keymaps/familiar/familiar.png b/keyboards/ergodox/keymaps/familiar/familiar.png deleted file mode 100644 index f8b50e75e..000000000 Binary files a/keyboards/ergodox/keymaps/familiar/familiar.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox/keymaps/german-kinergo/layout-code.png deleted file mode 100644 index a0ef551e1..000000000 Binary files a/keyboards/ergodox/keymaps/german-kinergo/layout-code.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox/keymaps/german-kinergo/layout-media.png deleted file mode 100644 index 56aea1dca..000000000 Binary files a/keyboards/ergodox/keymaps/german-kinergo/layout-media.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout.png b/keyboards/ergodox/keymaps/german-kinergo/layout.png deleted file mode 100644 index 76a1aa5d7..000000000 Binary files a/keyboards/ergodox/keymaps/german-kinergo/layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/readme.md b/keyboards/ergodox/keymaps/german-kinergo/readme.md index beb74cf75..addead0c1 100644 --- a/keyboards/ergodox/keymaps/german-kinergo/readme.md +++ b/keyboards/ergodox/keymaps/german-kinergo/readme.md @@ -21,15 +21,15 @@ Modifications I made with regard to the aforementioned layouts: ## Default Layer -![Layout of the default layer](layout.png "Layout of the default layer") +![Layout of the default layer](https://i.imgur.com/BIn8QF8.png "Layout of the default layer") ## Code Layer -![Layout of the code layer](layout-code.png "Layout of the code layer") +![Layout of the code layer](https://i.imgur.com/RHZjBlt.png "Layout of the code layer") ## Media Layer -![Layout of the media layer](layout-media.png "Layout of the media layer") +![Layout of the media layer](https://i.imgur.com/qRMmrL4.png "Layout of the media layer") Christoph Schmitz <schm4704 at web dot de> 2016-01-28 diff --git a/keyboards/ergodox/keymaps/jafo/jafo_highres.png b/keyboards/ergodox/keymaps/jafo/jafo_highres.png deleted file mode 100644 index e3d7cef85..000000000 Binary files a/keyboards/ergodox/keymaps/jafo/jafo_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/jafo/readme.md b/keyboards/ergodox/keymaps/jafo/readme.md index c870dfd05..219cb0622 100644 --- a/keyboards/ergodox/keymaps/jafo/readme.md +++ b/keyboards/ergodox/keymaps/jafo/readme.md @@ -17,4 +17,4 @@ manager, so I made these changes: - Making the Ctrl (held) and Esc (tap) on my thumbs symmetric. Not sure I need that with the Esc left of A and Ctrl on the Z and / keys when held... -![Jafo](jafo_highres.png) +![Jafo](https://i.imgur.com/ISEc630.png) diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png deleted file mode 100644 index 544b5658e..000000000 Binary files a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md index f7e8baf56..444f2e920 100644 --- a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md +++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md @@ -27,4 +27,4 @@ If you really need the norwegian symbols in a program, you can access them using ## Layout -![keyboard-layout](keyboard-layout.png) +![keyboard-layout](https://i.imgur.com/Qz3E9po.png) diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png deleted file mode 100644 index 462de5c56..000000000 Binary files a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md index aaaec3e53..ad568ecd4 100644 --- a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md +++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md @@ -27,4 +27,4 @@ If you really need the norwegian symbols in a program, you can access them using ## Layout -![keyboard-layout](keyboard-layout.png) +![keyboard-layout](https://i.imgur.com/sArgD9S.png) diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-base.png b/keyboards/ergodox/keymaps/ordinary/ordinary-base.png deleted file mode 100644 index 18c6c4ab2..000000000 Binary files a/keyboards/ergodox/keymaps/ordinary/ordinary-base.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png deleted file mode 100644 index 491f698d8..000000000 Binary files a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png deleted file mode 100644 index 4fb9d1d16..000000000 Binary files a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png deleted file mode 100644 index 1277f7483..000000000 Binary files a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ordinary/readme.md b/keyboards/ergodox/keymaps/ordinary/readme.md index e13cb7ec8..2e8d86960 100644 --- a/keyboards/ergodox/keymaps/ordinary/readme.md +++ b/keyboards/ergodox/keymaps/ordinary/readme.md @@ -18,7 +18,7 @@ no rights reserved, use for any purposes, credit me if you are a nice person * The keys under pinky fingers and index fingers will *reverse* the keyboard layout. * *Escape* is red and it is always found in that location (*except* when the layout is reversed). -![Ordinary base layout](ordinary-base.png) +![Ordinary base layout](https://i.imgur.com/CA5t9dF.png) The four big orange keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. @@ -35,7 +35,7 @@ The Ordinary Layout can be used to perform one-handed chorded text input. If you * *Number pad* in dark green under the right hand includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads so that NumLock is not needed. * The dark gray keys do nothing in case you bump them by accident. -![Ordinary symbol layout](ordinary-symbol.png) +![Ordinary symbol layout](https://i.imgur.com/JnX3lV2.png) The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout. I slightly rearranged the symbols, added some symbols, expanded the number pad, and straightened out the F-Keys. It's very handy to have the symbols directly underneath the normal typing keys. @@ -49,7 +49,7 @@ The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout * The light purple keys are various operating system keys such as NumLock and Mute and a button to navigate to My Computer (usually your home dir). * The dark gray keys do nothing in case you bump them by accident. -![Ordinary media layout](ordinary-media.png) +![Ordinary media layout](https://i.imgur.com/1jJnQrG.png) This layer is a substantial extension of the Media layer on the Ergodox EZ default layout. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. @@ -65,7 +65,7 @@ Multiple layers can be turned on at once. The Capitals layer will affect charact ## Special Sequences ## -![Ordinary special layout](ordinary-special.png) +![Ordinary special layout](https://i.imgur.com/XHXELD5.png) The Special Shift layer is mostly used to lock the shift keys but in order to make this layout more _ordinary_ there are a few special sequences which put some keys near their most common traditional locations. diff --git a/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png deleted file mode 100644 index d442a992c..000000000 Binary files a/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png.md b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png.md new file mode 100644 index 000000000..ee3dc5350 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png.md @@ -0,0 +1 @@ +https://i.imgur.com/kvSzkXK.png diff --git a/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png deleted file mode 100644 index 193aa339e..000000000 Binary files a/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md new file mode 100644 index 000000000..4d4b777e0 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md @@ -0,0 +1 @@ +https://i.imgur.com/5s9UKyc.png diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png deleted file mode 100644 index 031d874a7..000000000 Binary files a/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png.md b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png.md new file mode 100644 index 000000000..1fca8a5bb --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png.md @@ -0,0 +1 @@ +https://i.imgur.com/GIkRdX3.png diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png deleted file mode 100644 index 8d49e5e61..000000000 Binary files a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md index 618db6ff4..42cb19576 100644 --- a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md +++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md @@ -35,4 +35,4 @@ I have only tested this on an original Ergodox with a Teensy 2.0. - Layer 1 board light is on solid - Layer 2 board light blinks at speed controlled by BLINK_BASE -![osx whiskey tango foxtrot](osx_whiskey_tango_foxtrot_capslock.png) +![osx whiskey tango foxtrot](https://i.imgur.com/yQl1DFe.png) diff --git a/keyboards/ergodox/keymaps/plums/plums.png b/keyboards/ergodox/keymaps/plums/plums.png deleted file mode 100644 index 2f127c4ca..000000000 Binary files a/keyboards/ergodox/keymaps/plums/plums.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/plums/readme.md b/keyboards/ergodox/keymaps/plums/readme.md index b72329eef..32930e0d6 100644 --- a/keyboards/ergodox/keymaps/plums/readme.md +++ b/keyboards/ergodox/keymaps/plums/readme.md @@ -8,4 +8,4 @@ * Shortcut for shush (Hyper+m) * Combo modifier for LGUI + LALT -![Plums](plums.png) +![Plums](https://i.imgur.com/0HkgLvb.png) diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md index 4fa1814fb..637f9cba2 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md @@ -9,7 +9,7 @@ Looking for multiple-layer layouts? arrows](../romanzolotarev-norman-plover-osx-hjkl/) - [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) -[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) +[![keyboard-layout](https://i.imgur.com/U14664K.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) ## How to use Vim key diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png deleted file mode 100644 index 4b9433be2..000000000 Binary files a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md index 16cebd091..577d5749c 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -10,7 +10,7 @@ There are four layers: Looking for IJKL arrows? [Here we go](../romanzolotarev-norman-plover-osx/). -[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) +[![keyboard-layout](https://i.imgur.com/uvMxLuJ.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) ## Switching diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png deleted file mode 100644 index cdc535f79..000000000 Binary files a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md index 804c52a76..6703bb8bc 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -10,7 +10,7 @@ There are four layers: Looking for HJKL arrows? [Here we go](../romanzolotarev-norman-plover-osx-hjkl/). -[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) +[![keyboard-layout](https://i.imgur.com/kseXR4Z.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) ## Switching diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png deleted file mode 100644 index 10b0752be..000000000 Binary files a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md index 0e78c130b..41859f1ad 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md @@ -5,7 +5,7 @@ There are two layers: - **BASE** is [Norman layout](https://normanlayout.info/). - **QWRT** is QWERTY. -[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) +[![keyboard-layout](https://i.imgur.com/jfKBznw.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) ## Switching diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png deleted file mode 100644 index 34762ecb7..000000000 Binary files a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/siroken3/default.png b/keyboards/ergodox/keymaps/siroken3/default.png deleted file mode 100644 index 6575f7b5e..000000000 Binary files a/keyboards/ergodox/keymaps/siroken3/default.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/siroken3/default.png.md b/keyboards/ergodox/keymaps/siroken3/default.png.md new file mode 100644 index 000000000..440b424d0 --- /dev/null +++ b/keyboards/ergodox/keymaps/siroken3/default.png.md @@ -0,0 +1 @@ +https://i.imgur.com/9xDhYOd.png diff --git a/keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png b/keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png deleted file mode 100644 index e3c321cc0..000000000 Binary files a/keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/siroken3/default_highres.png b/keyboards/ergodox/keymaps/siroken3/default_highres.png deleted file mode 100644 index 7d9f045f4..000000000 Binary files a/keyboards/ergodox/keymaps/siroken3/default_highres.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/siroken3/default_highres.png.md b/keyboards/ergodox/keymaps/siroken3/default_highres.png.md new file mode 100644 index 000000000..22453303d --- /dev/null +++ b/keyboards/ergodox/keymaps/siroken3/default_highres.png.md @@ -0,0 +1 @@ +https://i.imgur.com/E5oJXz5.jpg diff --git a/keyboards/ergodox/keymaps/siroken3/readme.md b/keyboards/ergodox/keymaps/siroken3/readme.md index 979ce0f5b..ed085ebfd 100644 --- a/keyboards/ergodox/keymaps/siroken3/readme.md +++ b/keyboards/ergodox/keymaps/siroken3/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](default_firmware_v1.2-2.png) +![Default](https://i.imgur.com/h8k5P0l.png) diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png deleted file mode 100644 index aff6af851..000000000 Binary files a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png deleted file mode 100644 index 54c4a7587..000000000 Binary files a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/swissgerman/readme.md b/keyboards/ergodox/keymaps/swissgerman/readme.md index b1061c1dd..fa7fc1618 100644 --- a/keyboards/ergodox/keymaps/swissgerman/readme.md +++ b/keyboards/ergodox/keymaps/swissgerman/readme.md @@ -6,8 +6,8 @@ Keyboard diagrams created with the [keyboard layout editor](http://www.keyboard- Diagram sources: [default layer](keyboard-layout.json), [layer 1 & 2](keyboard-layout_1_2.json) -![Layout Layer 0](keyboard-layout.png) -![Layout Layer 1&2](keyboard-layout_1_2.png) +![Layout Layer 0](https://i.imgur.com/yf4HNXV.png) +![Layout Layer 1&2](https://i.imgur.com/Q814cKa.png) ## Changelog * Jan 21, 2017: diff --git a/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png deleted file mode 100644 index 6eecf447e..000000000 Binary files a/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png.md b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png.md new file mode 100644 index 000000000..20b8761ed --- /dev/null +++ b/keyboards/ergodox/keymaps/teckinesis/ordinary-special.png.md @@ -0,0 +1 @@ +https://i.imgur.com/p3y6E8F.png diff --git a/keyboards/ergodox/keymaps/teckinesis/readme.md b/keyboards/ergodox/keymaps/teckinesis/readme.md index 9494a4d4c..6804bb06f 100644 --- a/keyboards/ergodox/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox/keymaps/teckinesis/readme.md @@ -12,7 +12,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Base Layout ## [teckinesis (Base Layer)](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0) -![teckinesis base layout](teckinesis-base.png) +![teckinesis base layout](https://i.imgur.com/DeehOSY.png) ### Changes from The Ordinary Layout ### @@ -27,7 +27,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Symbols Layer ## [teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61) -![teckinesis symbols layout](teckinesis-symbol.png) +![teckinesis symbols layout](https://i.imgur.com/u8faqMq.png) ### Changes from The Ordinary Layout ### @@ -36,7 +36,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Media Layer ## [teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908) -![teckinesis media layout](teckinesis-media.png) +![teckinesis media layout](https://i.imgur.com/NgdJkuh.png) ### Changes from The Ordinary Layout ### diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png deleted file mode 100644 index 7c4584e9f..000000000 Binary files a/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png deleted file mode 100644 index cc51605f9..000000000 Binary files a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png deleted file mode 100644 index 7ca86cf47..000000000 Binary files a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex b/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex deleted file mode 100644 index a8cf4527a..000000000 --- a/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex +++ /dev/null @@ -1,1137 +0,0 @@ -:100000000C947B020C94C2020C94C2020C94C202A7 -:100010000C94C2020C94C2020C94C2020C94C20250 -:100020000C94C2020C94C2020C94F70D0C94C90EED -:100030000C94C2020C94C2020C94C2020C94C20230 -:100040000C94C2020C9486210C94C2020C94C2023D -:100050000C94C2020C94681C0C94C2020C94C20250 -:100060000C94C2020C94C2020C94C2020C94C20200 -:100070000C94C2020C94C2020C94C2020C94C202F0 -:100080000C94C2020C94C2020C94C2020C94C202E0 -:100090000C94C2020C94C2020C94C2020C94C202D0 -:1000A0000C94C2020C94C2020C94C202360F580F78 -:1000B0004610580F46109D0FC00F461015102810FF -:1000C000F712F712261326135C137C13AD14AD142C -:1000D0008713AD14371437149E14AD14AD14A71440 -:1000E0004414441444144414441444144414441450 -:1000F0004414441444144414441444144414441440 -:10010000561463146A1471147B140000F0A12E00BD -:100110002B002961E100354100001E00140004009D -:100120001D0034004D001F001A0016001B00E104E2 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:100150000500000065642F0A006F0000E300000046 -:10016000E300300A00670000E30000004C002300B9 -:100170001C000B00110000002961240018000D0074 -:10018000100052004B0025000C000E0036005100FC -:100190002800260012000F0037002F002B00270038 -:1001A00013003342380030004E002D00310034007F -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:1003500000012240000705810308000A090401008A -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150026FF00950695 -:1004B00075088100C000000000000000000000007E -:1004C000010204060A0F17202C3A4A5D71879DB37A -:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 -:1004E0004A3A2C20170F0A060402010000000000FF -:1004F00000000000000011241FBECFEFDAE0DEBFD5 -:10050000CDBF04B603FE27C0809101029091020284 -:10051000A0910302B09104028730904BA740B04BEA -:10052000D1F4109201021092020210920302109272 -:10053000040214BE84B7877F84BF0FB6F894A895D1 -:1005400080916000886180936000109260000FBE0F -:10055000E0E0FFE3099511E0A0E0B1E0E6EBF6E4AE -:1005600002C005900D92A433B107D9F712E0A4E3BD -:10057000B1E001C01D92A130B107E1F70E943C0B30 -:100580000C9459230C9400001092B9008AE08093D7 -:10059000B800089594EA9093BC009091BC0097FF36 -:1005A000FCCF9091B900987F983021F0903111F0F4 -:1005B00081E008958093BB0084E88093BC00809123 -:1005C000BC0087FFFCCF8091B900887F883111F093 -:1005D000803471F780E0089584E98093BC008091B5 -:1005E000BC0084FDFCCF08958093BB0084E8809319 -:1005F000BC008091BC0087FFFCCF9091B900987F30 -:1006000081E0983209F480E0089584E88093BC008A -:100610008091BC0087FFFCCF8091BB00089580B320 -:100620008C7080BB81B3836F81BB08958091010181 -:10063000811115C080E40E94CA02809301018111DA -:100640000CC082E10E94F40280930101811105C077 -:100650008FEF0E94F402809301010E94EC0284B1AA -:10066000807F84B985B1807F85B98AB1837F8AB95B -:100670008BB1837F8BB93E98469808950E94E00421 -:10068000809301010E9416030E940F03A5E3B1E0CD -:10069000E3E4F1E08EE08E0F11921D928E13FCCFF9 -:1006A0000C94CA040E94E004809301010E94160386 -:1006B0000E940F03A5E3B1E0E3E4F1E08EE08E0FCA -:1006C00011921D928E13FCCF0895BF92CF92DF92AC -:1006D000EF92FF920F931F93CF93DF9380910101CD -:1006E000882379F0809134018F5F809334018111E8 -:1006F00008C00E94E00480930101811102C00E94A1 -:10070000720405E311E0C0E0D0E0DD24D39482E080 -:10071000C82EEE24E394F12CC730D10500F580916A -:100720000101811164C080E40E94CA02809301012A -:10073000811112C082E10E94F402809301018111B3 -:100740000BC0C7010C2E01C0880F0A94EAF78095F0 -:100750000E94F402809301010E94EC0248C0CA305A -:10076000A1F028F4C83059F0C93061F005C0CC3090 -:1007700089F070F0CD3089F0209A289810C0219A25 -:1007800029980DC0229A2A980AC0239A2B9807C04C -:10079000529A01C0539A5B9802C03E9A469890EADA -:1007A0009A95F1F79FB1799902C082E001C080E08B -:1007B00091709D25982B7C9902C084E001C080E057 -:1007C000892B7D9902C038E001C030E0832B7E99EF -:1007D00002C020E101C020E0822B9FB19095991FBB -:1007E0009927991F9295990F907E892B0FC0809120 -:1007F0000101811149C080E40E94CA028093010175 -:10080000882379F1B12C0E94EC028B2DF8019081A4 -:10081000981719F08083C09200010E941603219658 -:100820000F5F1F4FCE30D10509F076CF80910001C8 -:10083000882361F1815080930001882339F08FE98A -:100840009FE00197F1F700C0000020C0A3E4B1E0F1 -:10085000E5E3F1E0CF01825F91919D938E13FCCF90 -:1008600015C083E10E94F402809301018111CACF77 -:1008700081E40E94CA02809301018111C3CF0E94CA -:100880000503B82EB094BFCF80E0C0CF0E947004A3 -:1008900081E0DF91CF911F910F91FF90EF90DF905A -:1008A000CF90BF900895E82FF0E0ED5BFE4F808180 -:1008B000089508950F931F93CF93DF93C3E4D1E07E -:1008C00010E00C2F025F899190E00E948C1B180FA2 -:1008D0000C13F9CF812FDF91CF911F910F910895C4 -:1008E0000C94400556985E9825982D9826982E9839 -:1008F00027982F988FEF90E090938900809388003D -:1009000090938B0080938A0090938D0080938C004D -:10091000259A2D9A2FEF80E792E021508040904059 -:10092000E1F700C00000269A2E9A2FEF80E792E0B0 -:10093000215080409040E1F700C00000279A2F9A94 -:100940002FEF80E792E0215080409040E1F700C017 -:10095000000025982D982FEF80E792E021508040ED -:100960009040E1F700C0000026982E982FEF80E716 -:1009700092E0215080409040E1F700C000002798AD -:100980002F9856985E9825982D9826982E982798F7 -:100990002F98089589EA8093800089E080938100F0 -:1009A00024982C983F988AB18F748AB96E98479A88 -:1009B0008BB1806B8BB9769A0E9472040C943F05C0 -:1009C00080E2809301018091510181110EC00E944B -:1009D000C40281E0809351012FEF83ED90E3215019 -:1009E00080409040E1F700C0000080E40E94CA020D -:1009F0008093010181112EC00E94F40280930101B5 -:100A0000811128C00E94F40280930101811122C04B -:100A10008FE30E94F4028093010181111BC00E94A8 -:100A2000EC0280E40E94CA0280930101811112C08D -:100A30008CE00E94F4028093010181110BC00E949E -:100A4000F40280930101811105C08FE30E94F4023A -:100A5000809301010E94EC028091010108956111CF -:100A60000BC0FC018281882321F085EE0E949B113E -:100A700003C085EE0E94631280E090E0089508951F -:100A80006091C2017091C3018091C4019091C50130 -:100A90000E94981B56985E9825982D9826982E9817 -:100AA00027982F98813019F0823021F00895259AE7 -:100AB0002D9A0895269A2E9A089581E0089581E04E -:100AC00008950C945F050895282F882339F090E04D -:100AD0002A3010F44D9608950697089587E290E025 -:100AE0000895AF92BF92DF92EF92FF920F931F9300 -:100AF000CF93DF938C01FC01C081D181CE010E9494 -:100B0000111ABE010E94E908EC01B8010E946105BA -:100B1000882309F4D1C1F8018281882309F4C6C071 -:100B200080916201811127C0C431F0E7DF0709F02D -:100B3000BDC10E94630581E0809362010E94321C66 -:100B400090936101809360011092550110925701BA -:100B500010925601109259011092580110925B01A7 -:100B600010925A0110925D0110925C0110925F0187 -:100B700010925E01A1C180916001909161010E947B -:100B80003E1C883C910570F480915501E82FF0E0FF -:100B9000EE0FFF1FEA5AFE4FD183C0838F5F809311 -:100BA00055018AC1C13020E8D20708F451C0F801CC -:100BB0008281882309F47EC05E01E894B7F88091B1 -:100BC0005401813079F050F08230C1F482EE0E94FD -:100BD0009B1187E50E949B1187E50EC082EE0E9463 -:100BE0009B110CC080EE0E949B1181EE0E949B1114 -:100BF00088E10E949B1188E10E9463128CE0E82E3C -:100C0000F12CC5010E2C02C0969587950A94E2F747 -:100C10008F700E946405D82E0E949B118D2D0E941A -:100C20006312F4E0EF1AF1082CEFE2162FEFF20650 -:100C300041F780915401813029F010F0823041F465 -:100C400082EE04C080EE0E94631281EE0E94631265 -:100C5000C43180E7D80768F4C23090E7D90708F0BC -:100C600046C0C115E0E7DE0771F0C130D047A1F101 -:100C70000CC1C33320E7D20709F4D8C0C433D0472E -:100C800009F4EBC002C1F8018281882309F402C192 -:100C90000E941815FFEF24E38CE0F15020408040C3 -:100CA000E1F700C000000E948D1C06C1C13080E841 -:100CB000D80770F2C43120E7D20708F0B3C0C230C1 -:100CC00080E7D807A0F4C11590E7D90709F4E2C07E -:100CD000C130D04709F0D9C0F8018281882309F4D6 -:100CE000D9C08091DF0181608093DF01E5C0F80108 -:100CF0008281882309F4CEC00E94E71C811102C0C2 -:100D00000E94CD1C0E94FA1C90E09093F301809306 -:100D1000F201C230F0E7DF0721F48091F201816037 -:100D20007AC0C33020E7D20721F48091F2018260BB -:100D300072C0C43080E7D80721F48091F20184604A -:100D40006AC0C53090E7D90719F48091F20127C035 -:100D5000C630E0E7DE0721F48091F20180615BC0DC -:100D6000C730F0E7DF0721F48091F201806253C0C1 -:100D7000C83020E7D20721F48091F20180644BC093 -:100D8000C93080E7D80721F48091F201806843C020 -:100D9000CA3090E7D90729F48091F2018460886015 -:100DA0003AC0CB30E0E7DE0721F48091F2018E7F7C -:100DB00032C0CC30F0E7DF0721F48091F2018D7F63 -:100DC0002AC0CD3020E7D20721F48091F2018B7F39 -:100DD00022C0CE3080E7D80719F48091F2011AC002 -:100DE0008091F201CF3090E7D90711F48F7E13C0C4 -:100DF000C031E0E7DE0711F48F7D0DC0C131F0E7AF -:100E0000DF0711F48F7B07C0C231D04711F48F7711 -:100E100002C08B7F877F8093F2018091F2010E9454 -:100E2000FE1C4AC0C333F0E7DF07A1F4F80182815A -:100E3000882321F01092520182E016C08091520165 -:100E4000811106C086E20E949B1186E20E94631215 -:100E500082E018C0C433D047C1F4F80182818823EE -:100E600031F01092530180E20E94B21225C08091AD -:100E70005301811106C087E20E949B1187E20E9404 -:100E8000631280E20E94B91217C081E08093520180 -:100E900080935301C801DF91CF911F910F91FF9073 -:100EA000EF90DF90BF90AF900C945D05C130F0E8FB -:100EB000DF0708F081CECCCE80E0DF91CF911F918B -:100EC0000F91FF90EF90DF90BF90AF90089526E0D4 -:100ED000729FF001112444E5849FE00DF11D11245F -:100EE000E60FF11DEE0FFF1FE25FFE4F859194911B -:100EF0000E94FB08811560E49607B0F5811570E348 -:100F0000970708F0DEC0803E9105D8F4803C91053B -:100F100008F06CC0883A910578F4853A910508F09C -:100F20006BC08130910509F452C108F40FC18430BF -:100F3000910508F04CC10AC18B3B910508F467C0CC -:100F400005C18F3F910509F048F4803F910508F0F5 -:100F5000ADC0883E910508F43AC1F8C0811520E281 -:100F6000920708F0A5C00895811543E5940790F411 -:100F7000811562E5960708F0C8C0811571E59707ED -:100F800008F0BEC0811520E5920708F09DC09F7053 -:100F9000906A0895811545E59407D8F4811564E5B4 -:100FA000960708F0C8C0482F4695469570E2479FBF -:100FB000A00111248370992721E030E0B90102C01B -:100FC000660F771F8A95E2F7CB01842B952B9A68E1 -:100FD0000895811576E5970708F4B2C09C01305654 -:100FE0002115304108F0B2C09F70AEC0FC01EE0F79 -:100FF000FF1FE657F04062C0853A910509F4A9C089 -:10100000863A910509F0A8C082E890E40895883AEC -:10101000910509F4A4C0893A910509F4A3C08A3A5C -:10102000910509F4A2C08B3A910509F4A1C08C3A4C -:10103000910509F4A0C08D3A910509F49FC0803B49 -:10104000910509F49EC08E3A910509F49DC08F3A2E -:10105000910509F49CC0813B910509F49BC0823B3A -:10106000910509F49AC0833B910509F499C0843B2A -:10107000910509F498C0853B910509F497C0863B1A -:10108000910509F496C0873B910509F495C0883B0A -:10109000910509F494C0893B910509F493C08A3BFA -:1010A000910509F492C080E094E408959065089554 -:1010B000FC01FF70EE0FFF1FE65FFE4F85919491DC -:1010C00008959927906C0895482F437021E030E0EF -:1010D00002C0220F331F4A95E2F73C68AC0164E07E -:1010E000569547956A95E1F74370342B8F70869536 -:1010F000869560E2869FC0011124822B932B089570 -:10110000982F8827816F906A0895482F46954695B5 -:1011100070E2479FA00111248370992721E030E0FD -:10112000B90102C0660F771F8A95E2F7CB01842BC5 -:10113000952B9C680895982F8827846F906A08954E -:101140008F719927982F88279062089580E090E00A -:10115000089581E890E4089583E890E4089582EE8C -:1011600094E4089589EE94E408958AEE94E4089551 -:1011700085EB94E4089586EB94E4089587EB94E47A -:1011800008958CEC94E408958DEC94E4089583E83C -:1011900095E408958AE895E4089582E995E4089530 -:1011A00084E995E4089581E296E4089583E296E463 -:1011B000089584E296E4089585E296E4089586E22F -:1011C00096E4089587E296E408958AE296E4089505 -:1011D000089596E0799FF001112494E5899FE00D30 -:1011E000F11D1124E60FF11DEE0FFF1FE25FFE4F10 -:1011F0008591949108958238910549F1B0F4813335 -:10120000910509F458C048F48932910509F44EC09B -:101210008A32910509F454C008958533910509F483 -:1012200040C08933910599F00895833E910529F1D5 -:1012300038F4803E910591F0823E9105A1F0089529 -:10124000863E9105F9F0873E910531F10895209190 -:10125000F20120FD3AC021FD38C008958091F201CD -:1012600080FD35C032C08091F20182FF32C0809192 -:10127000F20184FD30C083EE39C08091F20182FD1D -:1012800028C0F5CF8091F20183FF27C08091F20141 -:1012900084FD21C087EE2AC08091F20183FD1DC02C -:1012A000F5CF8091F20185FD1AC01BC08091F2013B -:1012B00085FD17C014C08091F20186FD14C015C0D1 -:1012C0008091F20186FD11C00EC080EE0FC089E34F -:1012D0000DC082EE0BC080E009C086EE07C089E237 -:1012E00005C085E303C08AE201C081E390E0089570 -:1012F00008950C947809809173010895CF93DF933A -:1013000000D01F92CDB7DEB79C018091F8018430E8 -:1013100019F593E099833B832A839093E9008FEF3B -:101320009091E800815095FD06C095ED9A95F1F7F2 -:1013300000008111F5CF8091E80085FF0DC040E0ED -:1013400050E063E070E0CE0101960E94E70B8091CF -:10135000E8008E778093E8000F900F900F90DF9158 -:10136000CF910895CF93DF9300D01F92CDB7DEB712 -:101370002091F801243021F522E029839B838A8380 -:1013800083E08093E9008FEF9091E800815095FD14 -:1013900006C095ED9A95F1F700008111F5CF809187 -:1013A000E80085FF0DC040E050E063E070E0CE0152 -:1013B00001960E94E70B8091E8008E778093E80009 -:1013C0000F900F900F90DF91CF9108952091F80129 -:1013D0002430F1F422E02093E9002FEF3091E8006F -:1013E000215035FD06C035ED3A95F1F70000211189 -:1013F000F5CF2091E80025FF0BC040E050E065E00C -:1014000070E00E94E70B8091E8008E778093E800FF -:101410000895CF93DF93EC019091F801943009F097 -:1014200046C080910C018823D9F080910D0188235A -:10143000B9F09093E9008FEF9091E800815095FD0D -:1014400006C095E19A95F1F700008111F5CF8091E2 -:10145000E80085FF2CC040E050E060E170E017C07C -:1014600081E08093E9008FEF9091E800815095FD35 -:1014700006C095ED9A95F1F700008111F5CF8091A6 -:10148000E80085FF14C040E050E068E070E0CE0165 -:101490000E94E70B8091E8008E778093E80080E15E -:1014A000FE01A3E6B1E001900D928A95E1F7DF918C -:1014B000CF9108958091F701811109C00E947C0DA0 -:1014C0000E94D90D8091E20084608093E20008952B -:1014D0001092F701089508950C9473210E94231C23 -:1014E0000E9479210E947F100C94790942E061ECFE -:1014F00081E00E94F60C42E061EC82E00E94F60C72 -:1015000042E061EC83E00E94F60C42E161EC84E091 -:101510000C94F60C8091FA01833009F455C030F434 -:10152000813071F0823009F48EC008958A3009F458 -:101530007AC08B3009F460C0893009F09CC020C0AB -:101540008091F901813A09F096C08091E800877F87 -:101550008093E8008091FD019091FE01892B21F498 -:1015600060E183E691E003C060E080E090E070E03D -:101570000E94320C8091E8008B778093E8000895F8 -:101580008091F901813209F076C08091FD0190913E -:10159000FE01009719F0039709F06DC08091E800F3 -:1015A000877F8093E8008091E80082FD05C08091EC -:1015B000F8018111F8CF5FC08091F1008093730131 -:1015C0008091E8008B7753C08091F901813A09F04E -:1015D00052C08091FD019091FE01892B09F04BC012 -:1015E0008091E800877F8093E8008091E80080FF89 -:1015F000FCCF80910C0136C08091F9018132D9F580 -:101600008091FD019091FE01892BA9F58091E80060 -:10161000877F8093E8000E942B0D8091FB018093CF -:101620000C010C9418158091F901813221F58091FB -:10163000E800877F8093E8000E942B0D8091FC01D9 -:101640008093740108958091F901813AA1F4809109 -:10165000E800877F8093E8008091E80080FFFCCF5E -:10166000809174018093F1008091E8008E778093DF -:10167000E8000C942B0D089584B7877F84BF0FB6C4 -:10168000F894A89580916000886180936000109222 -:1016900060000FBE80E880936100109261000E949C -:1016A000CE100E947C0D0E94D90D8091E2008460D2 -:1016B0008093E20078940E945F100E94D01082E034 -:1016C00091E00E947A100E9461218091F80185309A -:1016D00069F40E94E81B8091F6018823B1F30E940F -:1016E000151C882391F30E94D10BEFCF0E94D610D6 -:1016F000ECCF292F332723303105C9F064F4213092 -:10170000310581F02230310509F043C08DE690E0CB -:101710002AE333E042C021323105F1F022323105B3 -:1017200041F137C082E190E027EA33E036C09927E3 -:101730008130910541F08230910541F0892B49F5C6 -:10174000E6E3F3E005C0EEE1F3E002C0E6E0F3E03B -:10175000849190E09F0121C06430D8F4E62FF0E03E -:10176000EE0FFF1FEE5DFE4F2081318189E090E09A -:1017700014C0643070F470E0FB01EE0FFF1FE65EF2 -:10178000FE4F20813181FB01EA5EFE4F808190E0B7 -:1017900004C080E090E020E030E0FA013183208353 -:1017A000089580E189BD82E189BD09B400FEFDCFC5 -:1017B0008091D8008F7D8093D8008091E000826076 -:1017C0008093E0008091E00081FDFCCF0895CF92EE -:1017D000DF92EF92FF920F931F93CF93DF93EC0171 -:1017E0008B016A010E944A0D811133C0C114D104DA -:1017F00039F0F60180819181081B190BC80FD91FA0 -:10180000E12CF12C0115110519F18091E80085FDFD -:1018100016C08091E8008E778093E800C114D1044F -:1018200049F0F60180819181E80EF91EF182E08293 -:1018300085E00FC00E944A0D882321F30AC08991D8 -:101840008093F10001501109FFEFEF1AFF0ADACF80 -:1018500080E0DF91CF911F910F91FF90EF90DF908B -:10186000CF9008952091FF0130910002261737078D -:1018700048F06115710539F42091E8002E77209326 -:10188000E80001C0B90140E061157105A9F120919E -:10189000F801222309F443C0253009F442C0209105 -:1018A000E80023FD40C02091E80022FD32C02091D5 -:1018B000E80020FFE9CF4091F3002091F20030E0F2 -:1018C000342BFC01CF016115710559F02830310529 -:1018D00040F481918093F100615071092F5F3F4F77 -:1018E000F1CF41E02830310509F040E02091E800D7 -:1018F0002E772093E800C8CF4111C9CF0AC080914C -:10190000F801882361F0853061F08091E80083FD63 -:101910000AC08091E80082FFF2CF80E0089582E063 -:10192000089583E0089581E008952091FF013091AA -:1019300000022617370748F06115710539F4209128 -:10194000E8002E772093E80001C0B901FC0120E0F7 -:101950006115710591F18091F801882309F440C067 -:10196000853009F43FC08091E80083FD3DC080913F -:10197000E80082FD2FC08091E80080FFE9CF209130 -:10198000F3008091F20090E0922B6115710559F0FF -:101990008830910540F424912093F10031966150F4 -:1019A00071090196F2CF21E0089709F020E08091BB -:1019B000E8008E778093E800CBCF2111CCCF0AC00E -:1019C0008091F801882361F0853061F08091E80012 -:1019D00083FD0AC08091E80082FFF2CF80E0089585 -:1019E00082E0089583E0089581E00895982F97306C -:1019F00058F59093E900981739F07091EC00209118 -:101A0000ED005091F00003C0242F762F50E021FF0D -:101A100019C03091EB003E7F3093EB003091ED0028 -:101A20003D7F3093ED003091EB0031603093EB005F -:101A30007093EC002093ED005093F0002091EE00A5 -:101A400027FF07C09F5FD3CF8F708093E90081E0AD -:101A5000089580E008958091F90187FF11C0809179 -:101A6000E80082FD05C08091F8018111F8CF11C016 -:101A70008091E8008B770BC08091F801882349F0B2 -:101A80008091E80080FFF8CF8091E8008E77809306 -:101A9000E80008952091E4003091E50095E640913A -:101AA000EC00842F817040FF22C08091E80080FD0F -:101AB0001CC08091F801882391F0853091F08091CD -:101AC000EB0085FD10C04091E4005091E500421705 -:101AD000530729F39A01915011F784E0089582E0A9 -:101AE000089583E0089581E0089580E0089540918D -:101AF000E80042FFDECF08950E94EA0D0E94F20D39 -:101B0000E0EEF0E0808181608083E8EDF0E08081AC -:101B10008F77808319BCA7EDB0E08C918E7F8C937A -:101B200080818F7E80831092F70108950F931F9319 -:101B3000CF93DF930E94EA0D0E94F20DC8EDD0E032 -:101B400088818F77888388818068888388818F7D6A -:101B5000888319BC1092F8011092F4011092F601DA -:101B60001092F50100EE10E0F80180818B7F8083F8 -:101B700088818160888342E060E080E00E94F60C0A -:101B8000E1EEF0E080818E7F8083E2EEF0E0808104 -:101B900081608083808188608083F80180818E7F6E -:101BA0008083888180618883DF91CF911F910F911D -:101BB0000895E8EDF0E080818F7E8083E7EDF0E02E -:101BC00080818160808384E082BF81E08093F7011F -:101BD0000C94960DE8EDF0E080818E7F808310926A -:101BE000E20008951092DA001092E10008951F9229 -:101BF0000F920FB60F9211242F933F934F935F9341 -:101C00006F937F938F939F93AF93BF93EF93FF93C4 -:101C10008091E10082FF0BC08091E20082FF07C04B -:101C20008091E1008B7F8093E1000E945E108091A3 -:101C3000DA0080FF1FC08091D80080FF1BC0809118 -:101C4000DA008E7F8093DA008091D90080FF0DC08A -:101C500080E189BD82E189BD09B400FEFDCF81E04C -:101C60008093F8010E945A0A05C019BC1092F8012D -:101C70000E94680A8091E10080FF19C08091E20013 -:101C800080FF15C08091E2008E7F8093E2008091FA -:101C9000E20080618093E2008091D80080628093AE -:101CA000D80019BC85E08093F8010E946C0A8091ED -:101CB000E10084FF30C08091E20084FF2CC080E10D -:101CC00089BD82E189BD09B400FEFDCF8091D800B5 -:101CD0008F7D8093D8008091E1008F7E8093E1001A -:101CE0008091E2008F7E8093E2008091E20081602B -:101CF0008093E2008091F401882311F084E007C012 -:101D00008091E30087FD02C081E001C083E0809301 -:101D1000F8010E946E0A8091E10083FF29C0809142 -:101D2000E20083FF25C08091E100877F8093E1007E -:101D300082E08093F8011092F4018091E1008E7F9F -:101D40008093E1008091E2008E7F8093E200809199 -:101D5000E20080618093E20042E060E080E00E9467 -:101D6000F60C8091F00088608093F0000E946B0A6E -:101D7000FF91EF91BF91AF919F918F917F916F9163 -:101D80005F914F913F912F910F900FBE0F901F9039 -:101D900018951F920F920FB60F9211242F933F9315 -:101DA0004F935F936F937F938F939F93AF93BF9363 -:101DB000CF93DF93EF93FF93C091E900CF708091B1 -:101DC000EC00D82FD17080FDD0E81092E90080910E -:101DD000F000877F8093F00078940E940D0F10929E -:101DE000E9008091F00088608093F000CD2BCF70E7 -:101DF000C093E900FF91EF91DF91CF91BF91AF9137 -:101E00009F918F917F916F915F914F913F912F9112 -:101E10000F900FBE0F901F9018951F93CF93DF93D5 -:101E2000CDB7DEB7AA970FB6F894DEBF0FBECDBF11 -:101E3000E9EFF1E088E08E0F9091F10091938E131D -:101E4000FBCF0E948A0A8091E80083FF1FC1809126 -:101E5000F9019091FA01492F50E04A30510508F0FC -:101E600015C1FA01EA5AFF4F0C940A23803881F019 -:101E7000823809F00BC18091FD018F708093E900D9 -:101E80008091EB0085FB882780F91092E90006C05D -:101E90008091F5019091F601911182609091E80096 -:101EA000977F9093E8008093F1001092F100C8C0F2 -:101EB000282F2D7F09F0EAC0882319F0823061F0C5 -:101EC000E5C08091FB01813009F0E0C0933009F05A -:101ED00080E08093F6012BC08091FB01811127C027 -:101EE0008091FD018F7009F4D1C08093E9002091A9 -:101EF000EB0020FF1CC0933021F48091EB00806246 -:101F000014C09091EB0090619093EB0021E030E0E1 -:101F1000A90102C0440F551F8A95E2F74093EA00D9 -:101F20001092EA008091EB0088608093EB001092A1 -:101F3000E9008091E800877F86C08111A7C01091D9 -:101F4000FB011F778091E3008078812B8093E30071 -:101F50008091E800877F8093E8000E942B0D80919C -:101F6000E80080FFFCCF8091E30080688093E3006D -:101F7000111102C082E001C083E08093F80186C0A5 -:101F80008058823008F082C08091FB019091FC0162 -:101F90008C3D53E0950779F583E08A838AE2898353 -:101FA0004FB7F894DE01139620E03EE051E2E32FB4 -:101FB000F0E050935700E49120FF03C0E295EF70EA -:101FC0003F5FEF708E2F90E0EA3010F0C79601C0AF -:101FD000C0968D939D932F5F243149F74FBF809119 -:101FE000E800877F8093E8006AE270E0CE01019606 -:101FF0000E94320C14C0AE014F5F5F4F6091FD0133 -:102000000E94790BBC01892B09F440C09091E80033 -:10201000977F9093E80089819A810E94950C809126 -:10202000E8008B778093E80031C0803879F58091A3 -:10203000E800877F8093E8008091F4018093F100AD -:102040008091E8008E778093E8000E942B0D1EC0DF -:1020500081111CC09091FB019230C0F48091E80086 -:10206000877F8093E8009093F4010E942B0D80916C -:10207000F401811106C08091E30087FD02C081E078 -:1020800001C084E08093F8010E94760A8091E80004 -:1020900083FF0AC08091E800877F8093E8008091E9 -:1020A000EB0080628093EB00AA960FB6F894DEBF37 -:1020B0000FBECDBFDF91CF911F9108950895CF93AB -:1020C0008091F8018823A1F0C091E900CF70909130 -:1020D000EC00892F817090FD80E8C82B1092E900F8 -:1020E0008091E80083FD0E940D0FCF70C093E9003E -:1020F000CF91089590937A01809379010895E091AA -:102100007901F0917A01309721F00190F081E02D72 -:10211000099480E00895E0917901F0917A01309777 -:1021200021F00280F381E02D09940895E091790176 -:10213000F0917A01309721F00480F581E02D099427 -:10214000089520917701309178018217930771F0FB -:102150009093780180937701E0917901F0917A0171 -:10216000309721F00680F781E02D099408952091A1 -:102170007501309176018217930771F09093760183 -:1021800080937501E0917901F0917A01309721F007 -:102190000084F185E02D0994089508950C94CD10E4 -:1021A0000E94291C0E943E030C94AF1C9F92AF9288 -:1021B000BF92CF92DF92EF92FF920F931F93CF9334 -:1021C000DF9300D000D000D0CDB7DEB70E9465030A -:1021D0000DE010E0AA24A394B12C902E802F0E9431 -:1021E0005304980124583E4F6901F901F080F82604 -:1021F000A1F40150110988F78FEF89838A831B822C -:102200000E94321C8160782F9D838C8349815A8182 -:102210006B818D810E946D112FC09091DF0191FF24 -:1022200004C08E830E9459048E8125E030E0A50110 -:10223000022E01C0440F0A94EAF7E42E4F21C1F0A8 -:1022400029839A828E2191E009F490E09B830E9479 -:10225000321C8160782F9D838C8349815A816B81E8 -:102260008D810E946D11F6018081E826E08204C014 -:1022700021503109E0F6BDCF0E947D1E10917B01F7 -:102280000E947F101817B9F00E947F1080937B0185 -:1022900026960FB6F894DEBF0FBECDBFDF91CF916B -:1022A0001F910F91FF90EF90DF90CF90BF90AF9074 -:1022B0009F900C94790926960FB6F894DEBF0FBE56 -:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 -:1022D000CF90BF90AF909F900895CF93DF93CDB7ED -:1022E000DEB72B970FB6F894DEBF0FBECDBF4F837E -:1022F000588769877A878B87DE01119686E0FD0112 -:1023000011928A95E9F785E0FE01379601900D92CA -:102310008A95E1F749815A816B817C818D819E810B -:102320000E94B6172B960FB6F894DEBF0FBECDBF36 -:10233000DF91CF910895CF93882309F4C2C0C82FAD -:10234000823859F40E947F1081FDBBC089E30E944E -:10235000901A0E945D1B89E30CC0833879F40E94B7 -:102360007F1080FDAEC083E50E94901A0E945D1B25 -:1023700083E50E94D21ACF910C945D1B843859F4E6 -:102380000E947F1082FD9DC087E40E94901A0E94E7 -:102390005D1B87E4EECF8CEF8C0F813A48F48C2FD5 -:1023A0000E94C72081118DC08C2F0E94901AE3CF0C -:1023B00080E28C0F883048F4C77081E001C0880F3C -:1023C000CA95EAF70E94161BD6CF8BE58C0F833097 -:1023D00078F4C53A29F0C63A31F083E890E005C0B8 -:1023E00081E890E002C082E890E0CF910C94A110C7 -:1023F00088E58C0F833108F064C0C83A39F1C93AD6 -:1024000041F1CA3A49F1CB3A51F1CC3A59F1CD3ABE -:1024100061F1C03B69F1CE3A71F1CF3A79F1C13B3C -:1024200081F1C23B89F1C33B91F1C43B99F1C53BBA -:10243000A1F1C63BA9F1C73BB1F1C83BB9F1C93B1A -:10244000C1F1CA3BC9F180E090E038C082EE90E073 -:1024500035C089EE90E032C08AEE90E02FC085EB67 -:1024600090E02CC086EB90E029C087EB90E026C07E -:102470008CEC90E023C08DEC90E020C083E891E0EC -:102480001DC08AE891E01AC082E991E017C084E992 -:1024900091E014C081E292E011C083E292E00EC0AC -:1024A00084E292E00BC085E292E008C086E292E00E -:1024B00005C087E292E002C08AE292E0CF910C94DC -:1024C000B710CF910895882309F44BC0823859F48E -:1024D0000E947F1081FF45C089E30E94901A0E94EC -:1024E0005D1B89E30CC0833871F40E947F1080FF6C -:1024F00038C083E50E94901A0E945D1B83E50E940C -:10250000D21A0C945D1B843859F40E947F1082FF0C -:1025100028C087E40E94901A0E945D1B87E4EFCFD9 -:102520009CEF980F913A58F390E2980F983050F43E -:10253000877091E001C0990F8A95EAF7892F0E9470 -:102540001C1BDFCF9BE5980F933020F480E090E0D8 -:102550000C94A110885A833120F480E090E00C9410 -:10256000B7100895882321F00E94161B0C945D1B60 -:102570000895882321F00E941C1B0C945D1B089574 -:102580007F928F929F92AF92BF92CF92DF92EF9203 -:10259000FF920F931F93CF93DF931F92CDB7DEB7B8 -:1025A0007C01C62E772EFC01058102950F701281E9 -:1025B00011110E94331B0E94891A882379F011237C -:1025C00069F080E28C0D883048F082E00E94721A37 -:1025D0000E94891A91E0D82ED92601C0D12CE72D6E -:1025E000E295EF70F0E0E05AFF4F0C940A23872D3C -:1025F000807F072D0F70882311F00295007F112333 -:1026000089F0002309F490C180E28C0D883020F419 -:10261000802F0E94161B03C0802F0E94261B0E9441 -:102620005D1B82C18C2D0E946312002309F495C1A9 -:1026300080E28C0D883020F4802F0E941C1B03C088 -:10264000802F0E942C1B0E945D1B87C1972D907FBD -:10265000872D8F70903211F08295807FCC2021F0F1 -:10266000F1E0CF16B1F01EC0112349F0002309F4A8 -:1026700014C1013009F011C10E94461B6EC1002334 -:1026800019F0013009F469C189830E94491B8981CD -:102690000AC1112321F0023008F05FC1FEC0011110 -:1026A0005CC101C1112321F0002309F4F6C03CC133 -:1026B000002309F4F8C03EC1872D86958695837066 -:1026C00090E0009719F0019761F047C1112321F0C4 -:1026D0008C2D972D937002C080E090E00E94A11095 -:1026E0003CC1112321F08C2D972D937002C080E006 -:1026F00090E00E94B71031C18C2D112319F00E9477 -:10270000851D02C00E94ED1D0E94721E26C1872DEC -:10271000837009F052C0111120C18C2D82958695CD -:102720008770880F880F9C2D9F70892E912CA12C6B -:10273000B12C082E04C0880C991CAA1CBB1C0A943E -:10274000D2F7C4FE14C00FE010E020E030E0B90181 -:10275000A80104C0440F551F661F771F8A95D2F742 -:10276000CB01BA01609570958095909503C060E0AB -:1027700070E0CB01272D26952695237030E022307E -:10278000310569F02330310589F0682979298A29D2 -:102790009B292130310571F00E94FE18DEC06829A6 -:1027A00079298A299B290E941A19D7C00E94FE18EC -:1027B000C501B4010E94E218D0C0112319F0872D81 -:1027C000817001C08695882309F4C7C08C2D82953D -:1027D00086958770880F880F9C2D9F70892E912C6D -:1027E000A12CB12C082E04C0880C991CAA1CBB1C5F -:1027F0000A94D2F7C4FE14C00FE010E020E030E0ED -:10280000B901A80104C0440F551F661F771F8A95A0 -:10281000D2F7CB01BA01609570958095909503C071 -:1028200060E070E0CB01272D269526952370422F7E -:1028300050E04230510569F04330510589F0682974 -:1028400079298A299B294130510571F00E94D819B4 -:1028500084C0682979298A299B290E94F4197DC09E -:102860000E94D819C501B4010E94BC1976C08C2DF4 -:1028700090E0FC01E05EF109E531F10508F050C09F -:10288000E059FF4F0C940A230C2D0F70872D8F7188 -:10289000112331F00E945519802F0E94B2125DC0A1 -:1028A0000E947619802F0E94B91257C0112339F067 -:1028B000011153C0872D8F710E949B194EC00230A9 -:1028C00008F04BC0F7CF112339F0872D8F710E948C -:1028D000551943C01123C9F3872D8F710E947619B2 -:1028E0003CC0112329F0872D8F710E94401935C0FB -:1028F0000E94361932C0112351F0172D1F71812FFC -:102900000E94551963E0812F0E94691A26C081E058 -:102910000E94721A023008F182E00E94721A1DC0F1 -:10292000112331F0002389F28C2D0E949B1115C0D8 -:10293000002391F28C2D0E9463120FC0472D4F701F -:102940006C2DC7010E942F050E945A1806C0472D02 -:102950004F706C2DC7010E94E808DD20F9F00E943D -:10296000651A80FD1BC0F70112820E945F1A0E9447 -:102970005519C7010E94DD140E945F1A0F90DF9164 -:10298000CF911F910F91FF90EF90DF90CF90BF906C -:10299000AF909F908F907F900C9476190F90DF915D -:1029A000CF911F910F91FF90EF90DF90CF90BF904C -:1029B000AF909F908F907F9008950F931F93CF9328 -:1029C000DF93EC01888199812B813C81232BB9F025 -:1029D0009F3F11F48F3F99F0CE010E94710588232B -:1029E00071F0688179818A810E945B1A8C010E9452 -:1029F000101A0E94D718B801CE010E94C012DF91B0 -:102A0000CF911F910F9108950E94331B0E94431B89 -:102A10000E94081B0E945D1B0E94231F0E94721EC1 -:102A200080E090E00E94A11080E090E00C94B7104C -:102A30000E94231B0C9404150E94501A292F2295E2 -:102A40002F7030E02C3031054CF42A3031056CF415 -:102A50002250310922303105A8F407C02C3031054D -:102A600069F02F30310551F00DC0803F69F018F446 -:102A7000803E40F409C0843F29F406C093FB8827B8 -:102A800080F9089580E0089581E00895CF93DF9361 -:102A900000D000D01F92CDB7DEB70F900F900F90EF -:102AA0000F900F90DF91CF910895CF93DF9300D0D7 -:102AB00000D000D0CDB7DEB726960FB6F894DEBFB3 -:102AC0000FBECDBFDF91CF9108951F93CF93DF93BA -:102AD000C0918A0116E080918B01C81799F0D0E06F -:102AE0001C9FF0011D9FF00D1124E457FE4F408103 -:102AF000518162817381848195810E94551521964F -:102B0000C770E9CFDF91CF911F9108954091BC012B -:102B10005091BD016091BE017091BF018091C001D3 -:102B20009091C1010C9455158091C10182958F70CF -:102B300009F054C08091BE01882309F44FC08091F0 -:102B40008A01A0918B016091BC017091BD014091FF -:102B5000BF015091C001B6E08A1709F43FC090E070 -:102B600041155105C1F17F3F11F46F3FA1F1B89FAD -:102B7000F001B99FF00D1124E457FE4F218172132B -:102B80002AC02081621327C02281211124C0238101 -:102B900034812417350710F421503109241B350BDB -:102BA000283C3105C0F42091C1012F702061209391 -:102BB000C10126E0289FF001299FF00D1124EF5656 -:102BC000FE4F80818F70806180838CEB91E00E944A -:102BD000DD140C94651501968770BECF0895CF92D1 -:102BE000DF92EF92FF920F931F93CF93DF93CDB7B6 -:102BF000DEB762970FB6F894DEBF0FBECDBF8C0173 -:102C000085E0F801DE011D9601900D928A95E1F7AD -:102C1000D8014C9111965C91119712966C91129774 -:102C20001396CD90DC9014973091BC017091BD014A -:102C30008091BF019091C001009709F46BC17F3F63 -:102C400019F43F3F09F466C1E090BE01EE2009F49B -:102C5000C0C02091C101C816D90628F0F601E81BB2 -:102C6000F90BCF0104C0809590958C0D9D1DFF241C -:102C7000F394883C910578F0F12C207F09F0C6C0D0 -:102C80007C2DD98AC88A89890E9446158CEB91E0EF -:102C90000E94DD14B1C0822F807F09F046C07513F9 -:102CA00014C0341312C0611110C02F702061209322 -:102CB000C1010E9486158CEB91E00E94DD14809189 -:102CC000C101D80115968C932EC0CD2819F15F3F14 -:102CD00011F44F3FF9F0F62E61111CC080918A016A -:102CE00020918B0136E0821709F45AC090E0389F9A -:102CF000F001399FF00D1124E457FE4F71815713F5 -:102D000006C07081471303C07281711103C0019620 -:102D10008770E9CFF62E662309F418C18091C101AE -:102D200081608093C101F12C11C1751308C0341367 -:102D300006C0611104C08091C101D801C3C04D8794 -:102D40005E878D859E856A8B0E941C156A89882303 -:102D5000E1F16623D1F12091C101822F82958F701C -:102D600090E0029774F08091BC019091BD0198872A -:102D70008F831986DB86CA862C87CE0107960E9430 -:102D8000DD1486E0F801ACEBB1E001900D928A957C -:102D9000E1F70E9494150E948615FF24F394D6C093 -:102DA0004D875E878D859E850E94501A292F22951A -:102DB0002F7030E0223031050CF0BCC09F7009F05C -:102DC000B6C0805E883008F4C1C0C8010E94DD141E -:102DD000E4CFC816D90608F453C0F601E81BF90B76 -:102DE000CF01883C910508F450C0F12C7C2DD98A84 -:102DF000C88A89890E944615ECEBF1E086E0DF0184 -:102E00001D928A95E9F70E948615A0C0751314C01B -:102E1000341312C0611110C08091C101F801858383 -:102E2000C8010E94DD1486E0ECEBF1E0DF011D92A9 -:102E30008A95E9F7FE2C8AC04D875E878D859E8531 -:102E40006A8B0E941C156A89882309F4BECF662309 -:102E500009F4BBCF2091C101822F82958F7090E041 -:102E600002970CF48ECF8091BC019091BD019A83A2 -:102E700089831B82DD82CC822E83CE0101967FCF97 -:102E8000809590958C0D9D1DACCFF62E662309F490 -:102E90009CCF75132EC034132CC02091C10120FD8E -:102EA0001FC0822F82958F70D9F0D80115962C9370 -:102EB00015978F3049F08F5F982F9295907F822FD2 -:102EC0008F70892B15968C93C8010E94DD1486E0C3 -:102ED000F801ACEBB1E001900D928A95E1F793CF48 -:102EE00086E0F801ACEBB1E001900D928A95E1F734 -:102EF0002DC04D875E878D859E850E941C15811192 -:102F000040CF8091C10181608093C101C8010E94BE -:102F1000DD141CC0662309F458CF4D875E878D856C -:102F20009E850E941C15882309F44FCF2ACF81115A -:102F300048CF0CC0243031050CF047CF9F7009F406 -:102F400040CFF8019581907F09F03BCF8F2D62969D -:102F50000FB6F894DEBF0FBECDBFDF91CF911F91AA -:102F60000F91FF90EF90DF90CF9008951F93CF9334 -:102F7000DF93CDB7DEB72C970FB6F894DEBF0FBE48 -:102F8000CDBF4F83588769877A878B879C87CE010F -:102F900007960E94EF15882369F08F8198852A850E -:102FA0003B85232BF1F19F3F09F063C08F3F09F070 -:102FB00060C037C086E0FE013796DE0111960190B1 -:102FC0000D928A95E1F76F817885EA85FB853097C8 -:102FD00041F17F3F11F46F3F21F120918B0130E0EF -:102FE000C90101968770992740918A0150E08417A2 -:102FF000950709F447C069837A83FD83EC8396E0E3 -:10300000929FD001939FB00D1124A457BE4FFE0193 -:10301000319601900D929A95E1F780938B010E9471 -:10302000651516E080918A0190918B018917C1F195 -:10303000189FC001112484579E4F0E94EF158823CA -:1030400079F1E0918A011E9FF0011124E457FE4FAF -:103050004081518162817381848195810E945515DF -:1030600080918A0190E001968770992780938A0168 -:10307000D9CF4F81588569857A858B859C850E943B -:103080005515CFCF0E94181510928B0110928A010E -:10309000ECEBF1E086E0DF011D928A95E9F7C1CF04 -:1030A0002C960FB6F894DEBF0FBECDBFDF91CF9147 -:1030B0001F910895EF92FF920F931F93CF93DF9389 -:1030C0008C01892B09F46CC0F12CEE24E394E80107 -:1030D0002196F8018491843740F4843008F051C07F -:1030E000813081F0823019F15BC0853709F444C02A -:1030F000A8F19CE7980F903708F052C08F770E9494 -:10310000631241C00E5F1F4FFE01C49180E28C0F1D -:10311000883048F4C7708E2D01C0880FCA95EAF731 -:103120000E94361B14C08C2F0E949B112DC00E5F75 -:103130001F4FFE01C49180E28C0F883058F4C77095 -:103140008E2D01C0880FCA95EAF70E943C1B0E9491 -:103150005D1B1AC08C2F0E94631216C00E5F1F4F9A -:10316000FE01C491CC2381F08FE99FE00197F1F734 -:1031700000C00000C150F6CF0E5F1F4FFE01F4905B -:1031800003C00E949B118E018F2D882309F49FCFCD -:10319000EFE9FFE03197F1F700C000008150F5CF73 -:1031A000DF91CF911F910F91FF90EF9008950895B7 -:1031B0006093C6017093C7018093C8019093C901C1 -:1031C0000C9404150F931F930091C6011091C70131 -:1031D0002091C8013091C901DC01CB01802B912BDA -:1031E000A22BB32B8093C6019093C701A093C80173 -:1031F000B093C9011F910F910C9404150F931F9365 -:103200000091C6011091C7012091C8013091C901F8 -:10321000DC01CB0180239123A223B3238093C60139 -:103220009093C701A093C801B093C9011F910F915A -:103230000C9404150F931F930091C6011091C701C0 -:103240002091C8013091C901DC01CB018027912771 -:10325000A227B3278093C6019093C701A093C8010A -:10326000B093C9011F910F910C9404151092C201E3 -:103270001092C3011092C4011092C5010C94041560 -:1032800041E050E060E070E004C0440F551F661F4D -:10329000771F8A95D2F74093C2015093C301609380 -:1032A000C4017093C5010C94041541E050E060E046 -:1032B00070E004C0440F551F661F771F8A95D2F730 -:1032C0008091C2019091C301A091C401B091C50148 -:1032D000482B592B6A2B7B2B4093C2015093C3017F -:1032E0006093C4017093C5010C94041541E050E053 -:1032F00060E070E004C0440F551F661F771F8A9579 -:10330000D2F740955095609570958091C20190914B -:10331000C301A091C401B091C501482359236A2378 -:103320007B234093C2015093C3016093C401709307 -:10333000C5010C94041541E050E060E070E004C069 -:10334000440F551F661F771F8A95D2F78091C201DF -:103350009091C301A091C401B091C501482759279C -:103360006A277B274093C2015093C3016093C40135 -:103370007093C5010C9404150F931F930091C20123 -:103380001091C3012091C4013091C501DC01CB0132 -:10339000802B912BA22BB32B8093C2019093C3015E -:1033A000A093C401B093C5011F910F910C94041513 -:1033B0000F931F930091C2011091C3012091C4018A -:1033C0003091C501DC01CB0180239123A223B323DB -:1033D0008093C2019093C301A093C401B093C5012F -:1033E0001F910F910C9404150F931F930091C2012C -:1033F0001091C3012091C4013091C501DC01CB01C2 -:1034000080279127A227B3278093C2019093C301FD -:10341000A093C401B093C5011F910F910C940415A2 -:103420000895CF92DF92EF92FF920F931F93CF9365 -:10343000DF938C01C090C601D090C701E090C80115 -:10344000F090C9018091C2019091C301A091C40183 -:10345000B091C501C82AD92AEA2AFB2ACFE1D0E0D7 -:10346000D701C6010C2E04C0B695A79597958795F0 -:103470000A94D2F780FF06C0B8018C2F0E9467071C -:10348000019721F4219760F780E001C08C2FDF9134 -:10349000CF911F910F91FF90EF90DF90CF90089503 -:1034A000CF93DF93EC010E94111ABE010E946707BF -:1034B000DF91CF910895CB010E94501A0895809119 -:1034C000CA0185958595859508958091CA01877073 -:1034D000089598E0899F90011124262B2093CA011A -:1034E0000C9455192091CA01809582238093CA01BA -:1034F000982F977069F430E0482F552747FD509575 -:103500002417350729F08595859585950C947619AE -:1035100008959091CA01977081E009F480E00895C0 -:1035200090910C01992321F090910D01911109C006 -:1035300020910E0130910F01F90132969FEF40E08A -:103540001FC0982F9695969596959F3050F5E091CF -:103550000E01F0910F01E90FF11D877021E030E0BD -:10356000A90102C0440F551F8A95E2F7CA01918153 -:10357000892B818308959F3F39F04F5F4E3041F092 -:1035800051915813F8CF0DC05111F7CF942FF5CFAB -:103590009F3F39F0F901E90FF11D97FDFA958283FC -:1035A0000895089590910C01992321F090910D01B7 -:1035B000911109C020910E0130910F01F90132964D -:1035C000205F3F4F1FC0982F9695969596959F30F8 -:1035D000F0F4E0910E01F0910F01E90FF11D8770F9 -:1035E00021E030E0A90102C0440F551F8A95E2F79F -:1035F000CA01809591818923818308953196E217CC -:10360000F30729F090819813F9CF1082F7CF08952E -:1036100081E090E0E0910E01F0910F01E80FF91FB9 -:103620001082019680319105A9F708959091DE01ED -:10363000892B8093DE01089580959091DE01892386 -:103640008093DE0108951092DE0108959091DD01CE -:10365000892B8093DD01089580959091DD01892368 -:103660008093DD0108951092DD0108959091DC01B1 -:10367000892B8093DC01089580959091DC0189234A -:103680008093DC0108951092DC0108958093CB01B2 -:1036900008951092CB01089580910E0190910F0131 -:1036A000FC0131969C01205F3F4F80E09191911188 -:1036B0008F5FE217F307D1F70895E0910E01F091C3 -:1036C0000F018091DE018083E0910E01F0910F01E6 -:1036D00090818091DD01892B8083E0910E01F09132 -:1036E0000F0190818091DC01892B80838091CB0137 -:1036F000882361F0E0910E01F0910F019081892BF8 -:1037000080830E944C1B81111092CB0180910E018D -:1037100090910F010C948B1020E0009739F0AC01D0 -:1037200041505109842395232F5FF7CF822F0895AD -:10373000CF92DF92EF92FF926C01EE24FF24C1142E -:10374000D104E104F10421F0C701B60120E101C078 -:1037500020E0C72ED82EE92EFF24C114D104E104A5 -:10376000F10419F0285FC701B6016B017C0154E038 -:10377000F694E794D794C7945A95D1F7C114D1041D -:10378000E104F10419F02C5FC701B6016B017C0163 -:1037900042E0F694E794D794C7944A95D1F7C114C0 -:1037A000D104E104F10419F02E5FC701B601DC0178 -:1037B000CB01B695A79597958795892B8A2B8B2B4F -:1037C00009F02F5F822FFF90EF90DF90CF90089548 -:1037D0008091F801843039F11092E00120E488E111 -:1037E00090E00FB6F894A895809360000FBE2093E8 -:1037F000600080E00E94790983B7817F846083BF85 -:1038000083B7816083BF7894889583B78E7F83BFA9 -:103810000FB6F894A895809160008861809360004D -:10382000109260000FBE089508950E9452030E94F6 -:1038300065030E94141C0E945A0491E0811101C08A -:1038400090E0892F08950E9418150E947F100C9413 -:10385000790982E084BD93E095BD9AEF97BD80938E -:103860006E0008952FB7F8948091E1019091E201E4 -:10387000A091E301B091E4012FBF0895CF92DF92B0 -:10388000EF92FF920F931F932FB7F8944091E101AD -:103890005091E2016091E3017091E4012FBF6A0150 -:1038A0007B01EE24FF248C0120E030E0C016D1061D -:1038B000E206F30610F4415051099A01281B390B16 -:1038C000C9011F910F91FF90EF90DF90CF90089565 -:1038D0001F920F920FB60F9211248F939F93AF9365 -:1038E000BF938091E1019091E201A091E301B09139 -:1038F000E4010196A11DB11D8093E1019093E201C5 -:10390000A093E301B093E401BF91AF919F918F9198 -:103910000F900FBE0F901F9018950E947C0DF89489 -:103920002FEF87EA91E6215080409040E1F700C0F8 -:10393000000087E090EBDC0180930102909302028B -:10394000A0930302B09304029CE088E10FB6F894C0 -:10395000A895809360000FBE90936000FFCF0E94F7 -:10396000E71C811102C00E94CD1C0E94F21C8093B2 -:10397000DF010E94FA1C90E09093F3018093F20122 -:1039800087FB882780F980930D010E94F61C682F21 -:1039900070E080E090E00C94D8186DEE7EEF80E04F -:1039A00090E00E94432360E082E090E00E94322396 -:1039B00060E083E090E00E94322360E084E090E0E9 -:1039C0000E94322360E085E090E00C94322380E096 -:1039D00090E00E942C2321E08D3E9E4F09F020E0D4 -:1039E000822F089582E090E00C94242383E090E0FD -:1039F0000C94242384E090E00C942423682F84E02A -:103A000090E00C9432238091E70180FF0BC060911D -:103A1000130185E0689FB001112475956795759530 -:103A200067952BC081FF09C06091130185E0689FF5 -:103A3000B00111247595679520C082FF07C0609181 -:103A4000130185E0689FB001112417C09091E8012F -:103A50009923D1F060911201961788F720911301F4 -:103A600085E0289F90011124929FA001939F500D03 -:103A7000112470E0CA010E94F6226038710540F4FA -:103A80006115710539F002C065E070E0862F089578 -:103A90008FE7089581E008958091E70180FF08C0D5 -:103AA0006091110170E0759567957595679521C0D6 -:103AB00081FF06C06091110170E07595679519C08E -:103AC00082FF04C06091110170E010C09091E80184 -:103AD0009923C1F0609110019617A0F78091110110 -:103AE000899FC001112470E00E94F62260387105A0 -:103AF00028F46115710521F0862F08958FE7089548 -:103B000081E0089561E070E0F4CF803F21F40E94ED -:103B1000031D819504C0813F29F40E94031D8093F9 -:103B2000EB010895823F21F40E94031D819504C09A -:103B3000833F29F40E94031D8093EA010895893F81 -:103B400019F40E944C1D05C08A3F31F40E944C1D9F -:103B500081958093EC0108958B3F21F40E944C1DC8 -:103B6000819504C08C3F29F40E944C1D8093ED0187 -:103B70000895843F21F48091E901816017C0853F59 -:103B800021F48091E901826011C0863F21F4809187 -:103B9000E90184600BC0873F21F48091E9018860CE -:103BA00005C0883F31F48091E90180618093E9018B -:103BB00008958D3F21F48091E70181600BC08E3F15 -:103BC00021F48091E701826005C08F3F29F4809144 -:103BD000E70184608093E7010895803F39F4809184 -:103BE000EB0187FF6CC01092EB0169C0813F29F4A3 -:103BF0008091EB011816BCF362C09091EA01823FFC -:103C000029F497FF5CC01092EA0159C0833F19F470 -:103C10001916CCF354C0893F41F48091EC01181679 -:103C20000CF04DC01092EC014AC08A3F29F48091FB -:103C3000EC0187FF44C0F6CF8B3F39F48091ED0152 -:103C400087FF3DC01092ED013AC08C3F29F480916E -:103C5000ED011816BCF333C0843F21F48091E901D3 -:103C60008E7F17C0853F21F48091E9018D7F11C0BF -:103C7000863F21F48091E9018B7F0BC0873F21F4BF -:103C80008091E901877F05C0883F31F48091E90187 -:103C90008F7E8093E90113C08D3F21F48091E7016D -:103CA0008E7F0BC08E3F21F48091E7018D7F05C090 -:103CB0008F3F29F48091E7018B7F8093E70180910A -:103CC000EA0181110EC08091EB0181110AC080913F -:103CD000EC01811106C08091ED01811102C01092AA -:103CE000E801089589EE91E00E9496100E94321C2E -:103CF0009093E6018093E50108951F93CF93DF939E -:103D00008091E5019091E6010E943E1CAC019091EA -:103D1000E801992321F02091140130E006C02091A0 -:103D200015018AE0289F900111244217530708F4D7 -:103D300086C08091EA01C091EB01D091EC01109115 -:103D4000ED01811107C0C11176C0D11174C01111EC -:103D500072C075C09F3F19F09F5F9093E8011816DD -:103D600024F40E94031D8093EA018091EA0187FFF9 -:103D700005C00E94031D81958093EA011C1624F45E -:103D80000E94031D8093EB018091EB0187FF05C02A -:103D90000E94031D81958093EB016091EA016623E7 -:103DA00039F1C091EB01CC2319F1772767FD7095AC -:103DB000872F972F0E94FD2123E333E343E35FE343 -:103DC0000E9461220E94C5216093EA016C2F77272F -:103DD00067FD7095872F972F0E94FD2123E333E322 -:103DE00043E35FE30E9461220E94C5216093EB01DF -:103DF0001D1624F40E944C1D8093EC018091EC016F -:103E000087FF05C00E944C1D81958093EC0111161F -:103E100024F40E944C1D8093ED018091ED0187FFF9 -:103E200005C00E944C1D81958093ED01DF91CF91DB -:103E30001F910C94721E9F3F09F08ECF96CFDF9199 -:103E4000CF911F910895E9EEF1E085E0DF011D9229 -:103E50008A95E9F71092E8011092E70108958330FE -:103E600081F128F4813059F08230D1F00895853005 -:103E700009F449C0B8F1863009F456C0089580911C -:103E80001501262F30E0280F311D2F3F310524F476 -:103E9000680F6093150108958FEF809315010895C1 -:103EA00080911401262F30E0280F311D2F3F31055E -:103EB00024F4680F6093140108958FEF8093140128 -:103EC000089580911301262F30E0280F311D2F3FD8 -:103ED000310524F4680F6093130108958FEF8093E8 -:103EE0001301089580911201262F30E0280F311D13 -:103EF0002F3F310524F4680F6093120108958FEF6E -:103F000080931201089580911101262F30E0280F2F -:103F1000311D2F3F310524F4680F6093110108957E -:103F20008FEF80931101089580911001262F30E0CA -:103F3000280F311D2F3F310524F4680F60931001C5 -:103F400008958FEF809310010895833011F128F4C4 -:103F5000813049F0823091F00895853081F120F16F -:103F60008630C1F1089580911501681720F4861BF1 -:103F70008093150108951092150108958091140100 -:103F8000681720F4861B8093140108951092140181 -:103F9000089580911301681720F4861B8093130104 -:103FA000089510921301089580911201681720F46A -:103FB000861B80931201089510921201089580913A -:103FC0001101681720F4861B809311010895109247 -:103FD0001101089580911001681720F4861B8093C9 -:103FE000100108951092100108950F931F938D31C1 -:103FF00009F471C008F045C0803109F485C008F5A6 -:10400000873009F46FC068F4863009F0ADC0809144 -:10401000DF01817F8E7F8093DF0181E08093EF015C -:10402000A4C08B3009F49EC08E3009F09DC08091F1 -:10403000DF0182FB222720F991E0922790FB82F991 -:104040006CC0863109F48EC060F4813109F08CC0F7 -:104050000E94181590910D0181E0892780930D0130 -:1040600081C0893109F47EC08B3109F07DC0809117 -:10407000DF0181FB222720F991E0922790FB81F953 -:104080004CC0853309F466C048F4873209F462C035 -:1040900008F44FC0893209F45DC066C0833438F437 -:1040A0008A3308F044C0883309F45CC05DC08334AF -:1040B00009F450C0883409F057C00E9418150FEF5A -:1040C00013ED20E3015010402040E1F700C0000054 -:1040D0000E948D1C47C00E947F210E947F100E9479 -:1040E000790940C09091DF01892F8095817080FB14 -:1040F00090F929F0966098609093DF0136C0997F1F -:10410000977F9093DF012EC08091DF0183FB2227F0 -:1041100020F991E0922790FB83F98093DF019923A6 -:1041200009F18091DF0181608093DF011BC0895319 -:1041300001C08D5141E050E060E070E08A019B01D8 -:1041400004C0000F111F221F331F8A95D2F7C90127 -:10415000B80104C061E070E080E090E00E94D818EF -:104160000E94181581E001C080E01F910F91089511 -:1041700080E0089580E008958E518A3030F4E82F71 -:10418000F0E0E65DFE4F8081089580E00895CF93D2 -:10419000C82F8091EF01813079F018F08230E9F179 -:1041A00086C0E0910E01F0910F018081813169F0AC -:1041B000823209F07EC009C0E0910E01F0910F013A -:1041C0008081813111F0823261F48C2F0E94B820FD -:1041D000811104C08C2F0E94F51F1DC081E090E06A -:1041E0001AC08C2F0E94BA20811114C0C43179F0FA -:1041F00048F4CB3079F0C03109F05FC082E08093A1 -:10420000EF0108C0C93219F0C83321F056C010922E -:10421000EF0153C081E0817052C0C93281F110F5C5 -:10422000C43169F1A8F4C73009F045C08AE0809331 -:10423000150194E19093140193E0909313018093FE -:10424000120188E08093110188E28093100133C04D -:1042500082EE8C0F863078F58C2F0E94BC208093E4 -:10426000EE0129C0CE34E9F020F4CB3421F56AE028 -:1042700013C0C13579F0C235F1F461E00DC0809111 -:10428000EE01882319F01092EE0115C081E08093B1 -:10429000EF0115C061E006C08091EE010E942F1F62 -:1042A0000AC06AE08091EE010E94A51F04C010922E -:1042B000EF0180E004C081E002C080E0ACCFCF918C -:1042C0000895E1E8F0E080818860808380818160EA -:1042D00080838FB7F89493E09093890090ED90934A -:1042E00088008FBF0895EFE6F0E0808182608083D0 -:1042F0000895EFE6F0E080818D7F80830895EFE6FA -:10430000F0E0908182E08927808308951F920F92C8 -:104310000FB60F9211242F933F934F935F936F9398 -:104320007F938F939F93AF93BF93EF93FF9380916E -:10433000F0019091F10101969093F1018093F001C9 -:10434000811103C082E00E947909E091F101E695B4 -:10435000E695F0E0EB54FB4FE4918091F0018E1371 -:1043600003C080E00E947909FF91EF91BF91AF9166 -:104370009F918F917F916F915F914F913F912F917D -:104380000F900FBE0F901F9018950E94CC2168943B -:10439000B1110C945B2208950E94402288F09F572F -:1043A00098F0B92F9927B751B0F0E1F0660F771F59 -:1043B000881F991F1AF0BA95C9F714C0B13091F04F -:1043C0000E945A22B1E008950C945A22672F782F48 -:1043D0008827B85F39F0B93FCCF386957795679514 -:1043E000B395D9F73EF490958095709561957F4F80 -:1043F0008F4F9F4F0895E89409C097FB3EF4909526 -:104400008095709561957F4F8F4F9F4F9923A9F0AD -:10441000F92F96E9BB279395F6958795779567953C -:10442000B795F111F8CFFAF4BB0F11F460FF1BC080 -:104430006F5F7F4F8F4F9F4F16C0882311F096E913 -:1044400011C0772321F09EE8872F762F05C06623C1 -:1044500071F096E8862F70E060E02AF09A95660F7A -:10446000771F881FDAF7880F9695879597F9089533 -:1044700057FD9058440F551F59F05F3F71F0479515 -:10448000880F97FB991F61F09F3F79F087950895FA -:10449000121613061406551FF2CF4695F1DF08C019 -:1044A000161617061806991FF1CF86957105610536 -:1044B00008940895E894BB2766277727CB0197F9DE -:1044C00008950E9474220C94E5220E94D72238F0AD -:1044D0000E94DE2220F0952311F00C94CE220C9441 -:1044E000D42211240C945B220E94382270F3959FF1 -:1044F000C1F3950F50E0551F629FF001729FBB27DB -:10450000F00DB11D639FAA27F00DB11DAA1F649F76 -:104510006627B00DA11D661F829F2227B00DA11D29 -:10452000621F739FB00DA11D621F839FA00D611DAF -:10453000221F749F3327A00D611D231F849F600DD0 -:10454000211D822F762F6A2F11249F5750409AF0F9 -:10455000F1F088234AF0EE0FFF1FBB1F661F771F85 -:10456000881F91505040A9F79E3F510580F00C9450 -:10457000CE220C945B225F3FE4F3983ED4F3869501 -:1045800077956795B795F795E7959F5FC1F7FE2BF0 -:10459000880F911D9695879597F9089597F99F67CC -:1045A00080E870E060E008959FEF80EC08950024BB -:1045B0000A941616170618060906089500240A9488 -:1045C00012161306140605060895092E0394000C0E -:1045D00011F4882352F0BB0F40F4BF2B11F460FF9D -:1045E00004C06F5F7F4F8F4F9F4F089597FB072E3B -:1045F00016F4009407D077FD09D00E94102307FC21 -:1046000005D03EF4909581959F4F089570956195E2 -:104610007F4F0895EE0FFF1F0590F491E02D099450 -:10462000AA1BBB1B51E107C0AA1FBB1FA617B707D8 -:1046300010F0A61BB70B881F991F5A95A9F78095F4 -:104640009095BC01CD010895F999FECF92BD81BD31 -:10465000F89A992780B50895A8E1B0E042E050E0CB -:104660000C944B23262FF999FECF92BD81BDF89A69 -:10467000019700B4021631F020BD0FB6F894FA9AF3 -:10468000F99A0FBE08950196272F0E9433230C94A8 -:104690003223DC01CB01FC01F999FECF06C0F2BD4B -:1046A000E1BDF89A319600B40D9241505040B8F7F0 -:0646B0000895F894FFCF0D -:1046B60002207B09090AE609B2097E090101CC013B -:1046C60028080A03140A404D363975042804F203F3 -:1046D600B9034C0365037E03970301020304050631 -:0446E60007080900B8 -:00000001FF diff --git a/keyboards/ergodox/keymaps/townk_osx/readme.md b/keyboards/ergodox/keymaps/townk_osx/readme.md index c2853ca17..a2dcd35fa 100644 --- a/keyboards/ergodox/keymaps/townk_osx/readme.md +++ b/keyboards/ergodox/keymaps/townk_osx/readme.md @@ -21,9 +21,9 @@ from the Kinesis I was using so far. Here are the layout mapping in images so you can have a glimpse on it: -![Base Layout](townk_osx_base.png) -![fn Layout](townk_osx_fn.png) -![Keypad & Mouse Layout](townk_osx_keypad.png) +![Base Layout](https://i.imgur.com/m1yyQvU.png) +![fn Layout](https://i.imgur.com/AJIzrjq.png) +![Keypad & Mouse Layout](https://i.imgur.com/9I6Qr0e.png) Notice that, differently from the default behavior, my layer keys are not transparent by default, which means that if you press any non-labeled white key, nothing will be diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png deleted file mode 100644 index f9bc8b443..000000000 Binary files a/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png deleted file mode 100644 index 983b72348..000000000 Binary files a/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png deleted file mode 100644 index 8f04b4327..000000000 Binary files a/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png deleted file mode 100644 index 82c81dcae..000000000 Binary files a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png deleted file mode 100644 index ec8e7494d..000000000 Binary files a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md index 99b8182f5..fbd54fd51 100644 --- a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md +++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md @@ -6,5 +6,5 @@ * these are only good when using a public computer or one you can't change settings on, because you need to change both keyboard layout and os layout each time you change language. A better solution is to use [hebrew-hw-dvorak](https://github.com/20lives/hebrew-hw-dvorak) as os layout. -![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png) -![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png) +![layout image](https://i.imgur.com/wp2ouhf.png) +![layout image](https://i.imgur.com/Z9XCgPW.png) diff --git a/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex b/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex deleted file mode 100644 index 832504b02..000000000 --- a/keyboards/ergodox/keymaps/zweihander-osx/zweihander-osx.hex +++ /dev/null @@ -1,1151 +0,0 @@ -:100000000C94D3020C941A030C941A030C941A0344 -:100010000C941A030C941A030C941A030C941A03EC -:100020000C941A030C941A030C94B71F0C94892097 -:100030000C941A030C941A030C941A030C941A03CC -:100040000C941A030C94FC1A0C941A030C941A03C3 -:100050000C941A030C9414160C941A030C941A039F -:100060000C941A030C941A030C941A030C941A039C -:100070000C941A030C941A030C941A030C941A038C -:100080000C941A030C941A030C941A030C941A037C -:100090000C941A030C941A030C941A030C941A036C -:1000A0000C941A030C941A030C941A03730C730C1B -:1000B000A20CA20CD80CF80C290E290E030D290E47 -:1000C000B30DB30D1A0E290E290E230EC00DC00D4F -:1000D000C00DC00DC00DC00DC00DC00DC00DC00DB8 -:1000E000C00DC00DC00DC00DC00DC00DD20DDF0D77 -:1000F000E60DED0DF70DF620182106221821062237 -:100100005D2180210622D521E821750A01E2012C1A -:10011000022C02E274FA011602160104020401091B -:1001200002090104020401150215010C020C012848 -:10013000022800750A01E2012C022C02E274FA0185 -:10014000170217010802080115021501100210011B -:100150000C020C0111021101040204010F020F0133 -:1001600028022800750A01E2012C022C02E274FA2E -:100170000105020501050205010802080107020741 -:10018000010C020C011702170128022800750A0150 -:10019000E30116021602E301E3012B022B02E30145 -:1001A000E30115021502E300750A01E301160216C8 -:1001B00002E301E3012B022B02E3000000F0A12E79 -:1001C000004C002A00E100E00000001E00140004C2 -:1001D000001D00E200E2001F001A0016001B00E3F1 -:1001E000002B00200008000700060050002C002112 -:1001F000001500090019004F004B00220017000AEB -:1002000000050000003500015301510000E300002B -:10021000003400015301510000E3000000290023D5 -:10022000001C000B00110000002A00240018000D23 -:1002300000100052004E0025000C000E0036005148 -:10024000002800260012000F0037002F002B002787 -:10025000001300334238613000E0002D00310034DB -:1002600068E5002C00000001000100010001000110 -:100270000000003A002F0036020100010001003B9F -:1002800000300037020100010001003C002F02266F -:10029000020100010001003D0030022702010001BF -:1002A0000001003E00340234002E00000001000175 -:1002B0000001000000010000000100010001000039 -:1002C000000100000001003F0038002D0033020053 -:1002D0000001004000240021001E00270001004111 -:1002E00000250022001F00370001004200260023E5 -:1002F00000200050000100430025022E022E004F76 -:10030000000100440045000100010001000000015F -:10031000000100010001000100000069000100016E -:10032000000100010001006A000100043001000129 -:1003300000010001004B004E00010001000100011E -:100340000001300100010001004A000100033001FA -:100350000002300000010001000100000001000067 -:100360000001001408010000000100000001001A53 -:100370000830082F082C0200000100350A520C50EA -:10038000002C00A9004D00350852005100AC00AA15 -:100390000019080100510C4F00AB00A8000608012D -:1003A0000001000100010001001B08A5000100AED2 -:1003B000000100010000000000000000000000003B -:1003C0000000010204060A0F17202C3A4A5D7187CB -:1003D0009DB3C7DAE9F5FCFFFCF5E9DAC7B39D8701 -:1003E000715D4A3A2C20170F0A0604020100000032 -:1003F0000000000000000016034500720067006F57 -:100400000044006F007800200045005A00000016EC -:10041000034500720067006F0044006F0078002001 -:100420000045005A0000000403090409026D00049D -:100430000100A0FA090400000103010100092111D3 -:100440000100012240000705810308000A09040198 -:10045000000103010200092111010001224D0007E2 -:1004600005820308000A09040200010300000009D4 -:1004700021110100012236000705830308000A0943 -:1004800004030001030000000921110100012239C9 -:10049000000705840310000112011001000000088C -:1004A000EDFE071301000102000105010906A1018B -:1004B000050719E029E71500250195087501810256 -:1004C0000508190129059505750191029501750326 -:1004D0009101050719002977150025019578750107 -:1004E0008102C005010980A101850216810026B79D -:1004F000001A81002AB700751095018100C0050C13 -:100500000901A1018503160100269C021A01002A97 -:100510009C02751095018100C005010902A1010925 -:1005200001A1000509190129051500250195057589 -:100530000181029501750381010501093009311519 -:1005400081257F95027508810609381581257F95DB -:100550000175088106050C0A38021581257F950171 -:1005600075088106C0C005010906A101050719E04B -:1005700029E7150025019508750181029501750887 -:10058000810105081901290595057501910295015B -:10059000750391010507190029FF150026FF009535 -:1005A0000675088100C011241FBECFEFDAE0DEBF60 -:1005B000CDBF04B603FE27C08091010290910202D4 -:1005C000A0910302B09104028730904BA740B04B3A -:1005D000D1F41092010210920202109203021092C2 -:1005E000040214BE84B7877F84BF0FB6F894A89521 -:1005F00080916000886180936000109260000FBE5F -:10060000E0E0FFE3099511E0A0E0B1E0E0EAF7E403 -:1006100002C005900D92A433B107D9F712E0A4E30C -:10062000B1E001C01D92A130B107E1F70E94FC1CAE -:100630000C94CE230C9400001092B9008AE08093B1 -:10064000B800089594EA9093BC009091BC0097FF85 -:10065000FCCF9091B900987F983021F0903111F043 -:1006600081E008958093BB0084E88093BC00809172 -:10067000BC0087FFFCCF8091B900887F883111F0E2 -:10068000803471F780E0089584E98093BC00809104 -:10069000BC0084FDFCCF08958093BB0084E8809368 -:1006A000BC008091BC0087FFFCCF9091B900987F7F -:1006B00081E0983209F480E0089584E88093BC00DA -:1006C0008091BC0087FFFCCF8091BB00089580B370 -:1006D0008C7080BB81B3836F81BB089580910101D1 -:1006E000811115C080E40E942203809301018111D1 -:1006F0000CC082E10E944C0380930101811105C06E -:100700008FEF0E944C03809301010E94440384B147 -:10071000807F84B985B1807F85B98AB1837F8AB9AA -:100720008BB1837F8BB93E98469808950C94E4046E -:100730000E942509809301010E946E030E946703B5 -:10074000A5E3B1E0E3E4F1E08EE08E0F11921D929B -:100750008E13FCCF0C940F090E9425098093010190 -:100760000E946E030E946703A5E3B1E0E3E4F1E0B9 -:100770008EE08E0F11921D928E13FCCF0895BF92C2 -:10078000CF92DF92EF92FF920F931F93CF93DF935D -:1007900080910101882379F0809134018F5F8093EB -:1007A0003401811108C00E94250980930101811143 -:1007B00002C00E94B70805E311E0C0E0D0E0EE24DB -:1007C000E394F12CDD24D39495E0C92EC730D105F4 -:1007D00000F58091010181113CC080E40E94220358 -:1007E00080930101811112C082E10E944C03809329 -:1007F000010181110BC0C7010C2E01C0880F0A94A2 -:10080000EAF780950E944C03809301010E94440303 -:1008100020C0CA30A1F028F4C83059F0C93061F0C6 -:1008200005C0CC3089F070F0CD3089F0209A28983E -:1008300010C0219A29980DC0229A2A980AC0239A9A -:100840002B9807C0529A01C0539A5B9802C03E9AF7 -:10085000469880EA8A95F1F7C730D10518F580915E -:100860000101811144C080E40E94220380930101B0 -:10087000882311F0B12C12C083E10E944C038093B5 -:1008800001018111F7CF81E40E94220380930101CD -:100890008111F0CF0E945D03B82EB0940E944403F2 -:1008A0008B2D26C08FB181708D25799902C092E081 -:1008B00001C090E0892B7C9902C024E001C020E0B7 -:1008C000822B7D9902C028E001C020E0822B7E9916 -:1008D00002C090E101C090E0892B9FB19095991FD3 -:1008E0009927991F9295990F907E892B01C080E0DE -:1008F000F8019081981719F08083C09200010E943E -:100900006E0321960F5F1F4FCE30D10509F05ECFE9 -:10091000809100018823A1F08150809300018823F9 -:1009200029F0F5E0FA95F1F700000AC0A3E4B1E080 -:10093000E5E3F1E0CF01825F91919D938E13FCCFAF -:100940000E94410681E0DF91CF911F910F91FF90AE -:10095000EF90DF90CF90BF900895E82FF0E0ED5B2F -:10096000FE4F808108950895FC016230B9F028F4AB -:10097000662341F0613061F023C06330A9F0643038 -:10098000C9F01EC082818823D9F088EA91E00895D9 -:1009900082818823A9F08DE891E0089582818823DF -:1009A00079F084E691E008958281882349F083E319 -:1009B00091E008958281882319F08AE091E00895FA -:1009C00080E090E0089508956091B0017091B101C8 -:1009D0008091B2019091B3010E94081556985E98DB -:1009E00025982D9826982E9827982F98813019F0C1 -:1009F000823021F00895259A2D9A0895269A2E9AEC -:100A0000089581E0089581E008950C9403050E9403 -:100A1000940E2FEF84E39CE0215080409040E1F75A -:100A200000C000000C9439160F931F93CF93DF93EF -:100A30008C01FC01C081D181CE010E948D13BE01C9 -:100A40000E94D807EC01B8010E940505882309F42B -:100A500012C1B801CE010E946808882309F40BC1B5 -:100A6000B801CE010E948109882309F404C1C43170 -:100A7000F0E7DF0708F0CDC0C23080E7D80708F400 -:100A8000A3C0F8018281882309F4AAC00E947215CC -:100A9000811102C00E9458150E94851590E0909324 -:100AA000F3018093F201C230F0E7DF0721F4809177 -:100AB000F201816082C0C33080E7D80721F48091C1 -:100AC000F20182607AC0C430E0E7DE0721F4809151 -:100AD000F201846072C0C530F0E7DF0719F480913D -:100AE000F20127C0C63080E7D80721F48091F201D7 -:100AF000806163C0C730E0E7DE0721F48091F20136 -:100B000080625BC0C830F0E7DF0721F48091F2011A -:100B1000806453C0C93080E7D80721F48091F20186 -:100B200080684BC0CA30E0E7DE0729F48091F2010B -:100B30008460886042C0CB30F0E7DF0721F4809109 -:100B4000F2018E7F3AC0CC3080E7D80721F4809143 -:100B5000F2018D7F32C0CD30E0E7DE0721F48091D5 -:100B6000F2018B7F2AC0CE30F0E7DF0719F48091C5 -:100B7000F20122C0CF3080E7D80721F48091F20142 -:100B80008F7E1BC0C031E0E7DE0721F48091F201C7 -:100B90008F7D13C0C131F0E7DF0721F48091F201AE -:100BA0008F7B0BC0C231D04721F48091F2018F7747 -:100BB00004C08091F2018B7F877F8093F201809146 -:100BC000F2010E94891557C0C115E0E7DE0779F0F0 -:100BD000C130D047A1F081E0809351018093520150 -:100BE000C801DF91CF911F910F910C940105F8017D -:100BF0008281882309F43FC00E9407053CC0F801A8 -:100C000082818823C1F18091CD0181608093CD01E3 -:100C100032C0CB3380E7D807A1F4F8018281882362 -:100C200021F01092510182E016C080915101811192 -:100C300006C086E20E940C0B86E20E94DF0B82E077 -:100C400018C0CC33D04739F6F8018281882331F0BF -:100C50001092520180E20E942E0C0DC08091520130 -:100C6000811106C087E20E940C0B87E20E94DF0B15 -:100C700080E20E94350C80E0DF91CF911F910F91AF -:100C800008950C94960308950C9443060C9444061E -:100C900026E0729FF001112444E5849FE00DF11DD0 -:100CA0001124E60FF11DEE0FFF1FE154FE4F859159 -:100CB00094910E94EA07811560E49607B0F58115CA -:100CC00070E3970708F0E6C0803E9105D8F4803CB9 -:100CD000910508F06CC0883A910578F4853A910541 -:100CE00008F06BC08130910509F460C108F417C1A8 -:100CF0008430910508F05AC112C18D3B910508F46A -:100D000067C00DC18F3F910509F048F4803F910500 -:100D100008F0B5C0883E910508F448C100C18115AE -:100D200020E2920708F0ADC00895811543E59407CD -:100D300090F4811562E5960708F0D0C0811571E541 -:100D4000970708F0C6C0811520E5920708F0A5C0F6 -:100D50009F70906A0895811545E59407D8F4811530 -:100D600064E5960708F0D0C0482F4695469570E296 -:100D7000479FA00111248370992721E030E0B90139 -:100D800002C0660F771F8A95E2F7CB01842B952B63 -:100D90009A680895811576E5970708F4BAC09C0112 -:100DA00030562115304108F0BAC09F70B6C0FC0122 -:100DB000EE0FFF1FE55CFF4F6AC0853A910509F40D -:100DC000B1C0863A910509F0B0C082E890E4089578 -:100DD000883A910509F4ACC0893A910509F4ABC091 -:100DE0008A3A910509F4AAC08B3A910509F4A9C081 -:100DF0008C3A910509F4A8C08B3B910509F4A7C072 -:100E00008C3B910509F4A6C08D3A910509F4A5C063 -:100E1000803B910509F4A4C08E3A910509F4A3C062 -:100E20008F3A910509F4A2C0813B910509F4A1C054 -:100E3000823B910509F4A0C0833B910509F49FC052 -:100E4000843B910509F49EC0853B910509F49DC042 -:100E5000863B910509F49CC0873B910509F49BC032 -:100E6000883B910509F49AC0893B910509F499C022 -:100E70008A3B910509F498C080E094E40895906558 -:100E80000895FC01FF70EE0FFF1FE554FE4F8591A2 -:100E9000949108959927906C0895482F437021E00C -:100EA00030E002C0220F331F4A95E2F73C68AC01E4 -:100EB00064E0569547956A95E1F74370342B8F703F -:100EC0008695869560E2869FC0011124822B932B24 -:100ED0000895982F8827816F906A0895482F469526 -:100EE000469570E2479FA00111248370992721E065 -:100EF00030E0B90102C0660F771F8A95E2F7CB0197 -:100F0000842B952B9C680895982F8827846F906A6E -:100F100008958F719927982F88279062089580E00F -:100F200090E0089581E890E4089583E890E40895BE -:100F300082EE94E4089589EE94E408958AEE94E4B0 -:100F4000089585EB94E4089586EB94E4089583EB8B -:100F500094E4089584EB94E4089587EB94E4089571 -:100F60008CEC94E408958DEC94E4089583E895E482 -:100F700008958AE895E4089582E995E4089584E95E -:100F800095E4089581E296E4089583E296E4089555 -:100F900084E296E4089585E296E4089586E296E474 -:100FA000089587E296E408958AE296E40895089504 -:100FB00096E0799FF001112494E5899FE00DF11DE1 -:100FC0001124E60FF11DEE0FFF1FE154FE4F859136 -:100FD000949108958238910549F1B0F481339105D7 -:100FE00009F458C048F48932910509F44EC08A3298 -:100FF000910509F454C008958533910509F440C062 -:101000008933910599F00895833E910529F138F4CB -:10101000803E910591F0823E9105A1F00895863EB3 -:101020009105F9F0873E910531F108952091F20183 -:1010300020FD3AC021FD38C008958091F20180FD65 -:1010400035C032C08091F20182FF32C08091F2013E -:1010500084FD30C083EE39C08091F20182FD28C04A -:10106000F5CF8091F20183FF27C08091F20184FDCA -:1010700021C087EE2AC08091F20183FD1DC0F5CF0B -:101080008091F20185FD1AC01BC08091F20185FD9F -:1010900017C014C08091F20186FD14C015C0809164 -:1010A000F20186FD11C00EC080EE0FC089E30DC0B5 -:1010B00082EE0BC080E009C086EE07C089E205C061 -:1010C00085E303C08AE201C081E390E008950895BA -:1010D0000F931F93CF93FB012281211102C0C1E026 -:1010E00041C08C01C0916001C11125C0843190477D -:1010F000B1F70E94670881E0809360010E94DE15CD -:1011000090935F0180935E011092530110925501FC -:1011100010925401109257011092560110925901E9 -:101120001092580110925B0110925A0110925D01C9 -:1011300010925C0117C080915E0190915F010E9446 -:10114000EA15883C910558F690915301E92FF0E09B -:10115000EE0FFF1FEC5AFE4F118300839F5F9093A9 -:101160005301C0E08C2FCF911F910F910895569895 -:101170005E9825982D9826982E9827982F988FEF6F -:1011800090E0909389008093880090938B008093E7 -:101190008A0090938D0080938C00259A2D9A2FEFD2 -:1011A00080E792E0215080409040E1F700C00000CD -:1011B000269A2E9A2FEF80E792E0215080409040AF -:1011C000E1F700C00000279A2F9A2FEF80E792E006 -:1011D000215080409040E1F700C0000025982D98F4 -:1011E0002FEF80E792E0215080409040E1F700C06F -:1011F000000026982E982FEF80E792E02150804043 -:101200009040E1F700C0000027982F9856985E980C -:1012100025982D9826982E9827982F98089589EA32 -:101220008093800089E08093810024982C983F98D7 -:101230008AB18F748AB96E98479A8BB1806B8BB9DB -:10124000769A0E94B7080C94E30480E2809301012F -:101250008091610181110EC00E941C0381E0809386 -:1012600061012FEF83ED90E3215080409040E1F742 -:1012700000C0000080E40E942203809301018111DC -:101280002EC00E944C0380930101811128C00E944E -:101290004C0380930101811122C08FE30E944C0313 -:1012A0008093010181111BC00E94440380E40E94CD -:1012B000220380930101811112C08CE00E944C0333 -:1012C0008093010181110BC00E944C0380930101A6 -:1012D000811105C08FE30E944C03809301010E949D -:1012E0004403809101010895282F882339F090E06C -:1012F0002A3010F44D9608950697089587E290E0FD -:101300000895FF920F931F93CF93DF93813020E8CE -:10131000920708F44DC0FB012281222309F448C042 -:10132000EC01DF7780916201813079F050F08230FA -:10133000C1F482EE0E940C0B87E50E940C0B87E53E -:101340000EC082EE0E940C0B0CC080EE0E940C0BB3 -:1013500081EE0E940C0B88E10E940C0B88E10E9438 -:10136000DF0B0CE010E0CE01002E02C096958795B1 -:101370000A94E2F78F700E947409F82E0E940C0BF9 -:101380008F2D0E94DF0B045011090C3FFFEF1F0748 -:1013900051F780916201813029F010F0823041F4E0 -:1013A00082EE04C080EE0E94DF0B81EE0E94DF0B14 -:1013B00081E0DF91CF911F910F91FF90089590935D -:1013C0006801809367010895E0916701F0916801D9 -:1013D000309721F00190F081E02D099480E008958C -:1013E000E0916701F0916801309721F00280F3816C -:1013F000E02D09940895E0916701F091680130971C -:1014000021F00480F581E02D099408952091650173 -:10141000309166018217930771F090936601809373 -:101420006501E0916701F0916801309721F0068035 -:10143000F781E02D099408952091630130916401B2 -:101440008217930771F09093640180936301E09198 -:101450006701F0916801309721F00084F185E02D5B -:101460000994089508950C94320A0E94D5150E949B -:1014700098030C945B16CF92DF92EF92FF920F933A -:101480001F93CF93DF93CDB7DEB72B970FB6F894AA -:10149000DEBF0FBECDBF0E94BF038AE6C82E81E02B -:1014A000D82E00E010E0E02E802F0E94AD04F6015F -:1014B00041916F01F42EF826B1F40F5F1F4F0E30EB -:1014C000110589F78FEF89838A831B820E94DE15BD -:1014D0008160782F9D838C8349815A816B818D81B6 -:1014E0000E94DE0A40C09091CD0191FF04C08B871D -:1014F0000E94B3048B8520E030E04F2D50E0922F06 -:10150000BA01022E02C0759567950A94E2F760FF52 -:1015100024C02E83EF8221E030E0690102C0CC0CB0 -:10152000DD1C9A95E2F790E08C219D21892B09F42E -:1015300020E028870E94DE158160782F9A878987AE -:101540004E815F8168858A850E94DE0AF801E6592E -:10155000FE4F8081C826C08206C02F5F3F4F2630D5 -:10156000310569F6AACF0E94F317109169010E9414 -:10157000E4091817A1F00E94E409809369012B96F1 -:101580000FB6F894DEBF0FBECDBFDF91CF911F9194 -:101590000F91FF90EF90DF90CF900C9446062B9622 -:1015A0000FB6F894DEBF0FBECDBFDF91CF911F9174 -:1015B0000F91FF90EF90DF90CF900895CF93DF933E -:1015C000CDB7DEB72B970FB6F894DEBF0FBECDBFF9 -:1015D0004F83588769877A878B87DE01119686E06B -:1015E000FD0111928A95E9F785E0FE013796019099 -:1015F0000D928A95E1F749815A816B817C818D81B9 -:101600009E810E9432112B960FB6F894DEBF0FBE5A -:10161000CDBFDF91CF910895CF93882309F4CDC03A -:10162000C82F823859F40E94E40981FDC6C089E3BD -:101630000E940C140E94D91489E30CC0833879F4F9 -:101640000E94E40980FDB9C083E50E940C140E9449 -:10165000D91483E50E944E14CF910C94D914843888 -:1016600059F40E94E40982FDA8C087E40E940C148A -:101670000E94D91487E4EECF8CEF8C0F813A48F4A6 -:101680008C2F0E943D1A811198C08C2F0E940C143F -:10169000E3CF80E28C0F883048F4C77081E001C04E -:1016A000880FCA95EAF70E949214D6CF8BE58C0F6B -:1016B000833078F4C53A29F0C63A31F083E890E0F7 -:1016C00005C081E890E002C082E890E0CF910C94E0 -:1016D000060A88E58C0F853108F06FC0C83A61F1C1 -:1016E000C93A69F1CA3A71F1CB3A79F1CC3A81F150 -:1016F000CB3B89F1CC3B91F1CD3A99F1C03BA1F1C3 -:10170000CE3AA9F1CF3AB1F1C13BB9F1C23BC1F137 -:10171000C33BC9F1C43BD1F1C53BD9F1C63BE1F1B3 -:10172000C73BE9F1C83BF1F1C93BF9F1CA3B09F408 -:101730003FC080E090E03EC082EE90E03BC089EE8A -:1017400090E038C08AEE90E035C085EB90E032C082 -:1017500086EB90E02FC083EB90E02CC084EB90E010 -:1017600029C087EB90E026C08CEC90E023C08DEC84 -:1017700090E020C083E891E01DC08AE891E01AC0A3 -:1017800082E991E017C084E991E014C081E292E01F -:1017900011C083E292E00EC084E292E00BC085E2C9 -:1017A00092E008C086E292E005C087E292E002C0C3 -:1017B0008AE292E0CF910C941C0ACF91089588237D -:1017C00009F44BC0823859F40E94E40981FF45C0F6 -:1017D00089E30E940C140E94D91489E30CC0833859 -:1017E00071F40E94E40980FF38C083E50E940C1464 -:1017F0000E94D91483E50E944E140C94D9148438A5 -:1018000059F40E94E40982FF28C087E40E940C1466 -:101810000E94D91487E4EFCF9CEF980F913A58F3C8 -:1018200090E2980F983050F4877091E001C0990FC2 -:101830008A95EAF7892F0E949814DFCF9BE5980FCD -:10184000933020F480E090E00C94060A885A8531A9 -:1018500020F480E090E00C941C0A0895882321F085 -:101860000E9492140C94D9140895882321F00E94A8 -:1018700098140C94D91408957F928F929F92AF92EE -:10188000BF92CF92DF92EF92FF920F931F93CF936D -:10189000DF931F92CDB7DEB77C01C62E772EFC01F9 -:1018A000058102950F70128111110E94AF140E94E0 -:1018B0000514882379F0112369F080E28C0D8830BB -:1018C00048F082E00E94EE130E94051491E0D82EA9 -:1018D000D92601C0D12CE72DE295EF70F0E0EA5A4D -:1018E000FF4F0C947F23872D807F072D0F70882357 -:1018F00011F00295007F112389F0002309F490C1B3 -:1019000080E28C0D883020F4802F0E94921403C056 -:10191000802F0E94A2140E94D91482C18C2D0E9493 -:10192000DF0B002309F495C180E28C0D883020F490 -:10193000802F0E94981403C0802F0E94A8140E9438 -:10194000D91487C1972D907F872D8F70903211F019 -:101950008295807FCC2021F0F1E0CF16B1F01EC03F -:10196000112349F0002309F414C1013009F011C119 -:101970000E94C2146EC1002319F0013009F469C13C -:1019800089830E94C51489810AC1112321F0023084 -:1019900008F05FC1FEC001115CC101C1112321F03B -:1019A000002309F4F6C03CC1002309F4F8C03EC18D -:1019B000872D86958695837090E0009719F00197A2 -:1019C00061F047C1112321F08C2D972D937002C037 -:1019D00080E090E00E94060A3CC1112321F08C2D8A -:1019E000972D937002C080E090E00E941C0A31C1E4 -:1019F0008C2D112319F00E94FB1602C00E94631760 -:101A00000E94E81726C1872D837009F052C011117A -:101A100020C18C2D829586958770880F880F9C2D0C -:101A20009F70892E912CA12CB12C082E04C0880CFB -:101A3000991CAA1CBB1C0A94D2F7C4FE14C00FE068 -:101A400010E020E030E0B901A80104C0440F551FA8 -:101A5000661F771F8A95D2F7CB01BA016095709502 -:101A60008095909503C060E070E0CB01272D26950E -:101A70002695237030E02230310569F0233031059E -:101A800089F0682979298A299B292130310571F04B -:101A90000E947A12DEC0682979298A299B290E942E -:101AA0009612D7C00E947A12C501B4010E945E123C -:101AB000D0C0112319F0872D817001C0869588232D -:101AC00009F4C7C08C2D829586958770880F880F82 -:101AD0009C2D9F70892E912CA12CB12C082E04C016 -:101AE000880C991CAA1CBB1C0A94D2F7C4FE14C013 -:101AF0000FE010E020E030E0B901A80104C0440F7D -:101B0000551F661F771F8A95D2F7CB01BA016095E2 -:101B100070958095909503C060E070E0CB01272D13 -:101B2000269526952370422F50E04230510569F0EA -:101B30004330510589F0682979298A299B29413048 -:101B4000510571F00E94541384C0682979298A29AB -:101B50009B290E9470137DC00E945413C501B401DB -:101B60000E94381376C08C2D90E0FC01E05EF109F4 -:101B7000E531F10508F050C0EA59FF4F0C947F237E -:101B80000C2D0F70872D8F71112331F00E94D1120F -:101B9000802F0E942E0C5DC00E94F212802F0E94A6 -:101BA000350C57C0112339F0011153C0872D8F71A7 -:101BB0000E9417134EC0023008F04BC0F7CF11231C -:101BC00039F0872D8F710E94D11243C01123C9F3C0 -:101BD000872D8F710E94F2123CC0112329F0872DAE -:101BE0008F710E94BC1235C00E94B21232C0112304 -:101BF00051F0172D1F71812F0E94D11263E0812FA8 -:101C00000E94E51326C081E00E94EE13023008F125 -:101C100082E00E94EE131DC0112331F0002389F2EF -:101C20008C2D0E940C0B15C0002391F28C2D0E946C -:101C3000DF0B0FC0472D4F706C2DC7010E94B404FD -:101C40000E94D61106C0472D4F706C2DC7010E940F -:101C5000D707DD20F9F00E94E11380FD1BC0F701DA -:101C600012820E94DB130E94D112C7010E94590EFA -:101C70000E94DB130F90DF91CF911F910F91FF9086 -:101C8000EF90DF90CF90BF90AF909F908F907F901C -:101C90000C94F2120F90DF91CF911F910F91FF9052 -:101CA000EF90DF90CF90BF90AF909F908F907F90FC -:101CB00008950F931F93CF93DF93EC01888199814F -:101CC0002B813C81232BB9F09F3F11F48F3F99F07A -:101CD000CE010E941405882371F0688179818A8180 -:101CE0000E94D7138C010E948C130E945312B801DA -:101CF000CE010E943C0CDF91CF911F910F9108956E -:101D00000E94AF140E94BF140E9484140E94D91430 -:101D10000E9499180E94E81780E090E00E94060A4D -:101D200080E090E00C941C0A0E949F140C94800E9A -:101D30000E94CC13292F22952F7030E02C303105D2 -:101D40004CF42A3031056CF422503109223031052F -:101D5000A8F407C02C30310569F02F30310551F05F -:101D60000DC0803F69F018F4803E40F409C0843F04 -:101D700029F406C093FB882780F9089580E0089530 -:101D800081E00895CF93DF9300D000D01F92CDB7AC -:101D9000DEB70F900F900F900F900F90DF91CF91C3 -:101DA0000895CF93DF9300D000D000D0CDB7DEB739 -:101DB00026960FB6F894DEBF0FBECDBFDF91CF9150 -:101DC00008951F93CF93DF93C091780116E080911F -:101DD0007901C81799F0D0E01C9FF0011D9FF00D0C -:101DE0001124E658FE4F40815181628173818481C4 -:101DF00095810E94D10E2196C770E9CFDF91CF91D6 -:101E00001F9108954091AA015091AB016091AC01DE -:101E10007091AD018091AE019091AF010C94D10E03 -:101E20008091AF0182958F7009F054C08091AC0110 -:101E3000882309F44FC080917801A09179016091C5 -:101E4000AA017091AB014091AD015091AE01B6E095 -:101E50008A1709F43FC090E041155105C1F17F3F59 -:101E600011F46F3FA1F1B89FF001B99FF00D11245B -:101E7000E658FE4F218172132AC02081621327C0C9 -:101E80002281211124C0238134812417350710F4C5 -:101E900021503109241B350B283C3105C0F4209119 -:101EA000AF012F7020612093AF0126E0289FF00141 -:101EB000299FF00D1124E158FE4F80818F708061C1 -:101EC00080838AEA91E00E94590E0C94E10E0196FB -:101ED0008770BECF0895CF92DF92EF92FF920F935B -:101EE0001F93CF93DF93CDB7DEB762970FB6F89409 -:101EF000DEBF0FBECDBF8C0185E0F801DE011D966F -:101F000001900D928A95E1F7D8014C9111965C9160 -:101F1000119712966C9112971396CD90DC901497AE -:101F20003091AA017091AB018091AD019091AE0109 -:101F3000009709F46BC17F3F19F43F3F09F466C174 -:101F4000E090AC01EE2009F4C0C02091AF01C816AA -:101F5000D90628F0F601E81BF90BCF0104C08095E3 -:101F600090958C0D9D1DFF24F394883C910578F08D -:101F7000F12C207F09F0C6C07C2DD98AC88A8989B6 -:101F80000E94C20E8AEA91E00E94590EB1C0822FCF -:101F9000807F09F046C0751314C0341312C061115C -:101FA00010C02F7020612093AF010E94020F8AEAB7 -:101FB00091E00E94590E8091AF01D80115968C9343 -:101FC0002EC0CD2819F15F3F11F44F3FF9F0F62EE6 -:101FD00061111CC0809178012091790136E082174F -:101FE00009F45AC090E0389FF001399FF00D112498 -:101FF000E658FE4F7181571306C07081471303C026 -:102000007281711103C001968770E9CFF62E6623A5 -:1020100009F418C18091AF0181608093AF01F12C68 -:1020200011C1751308C0341306C0611104C080913A -:10203000AF01D801C3C04D875E878D859E856A8BB1 -:102040000E94980E6A898823E1F16623D1F12091DC -:10205000AF01822F82958F7090E0029774F080918B -:10206000AA019091AB0198878F831986DB86CA8677 -:102070002C87CE0107960E94590E86E0F801AAEA45 -:10208000B1E001900D928A95E1F70E94100F0E9435 -:10209000020FFF24F394D6C04D875E878D859E8501 -:1020A0000E94CC13292F22952F7030E02230310569 -:1020B0000CF0BCC09F7009F0B6C0805E883008F498 -:1020C000C1C0C8010E94590EE4CFC816D90608F451 -:1020D00053C0F601E81BF90BCF01883C910508F4C9 -:1020E00050C0F12C7C2DD98AC88A89890E94C20EE1 -:1020F000EAEAF1E086E0DF011D928A95E9F70E94A5 -:10210000020FA0C0751314C0341312C0611110C0A7 -:102110008091AF01F8018583C8010E94590E86E0C5 -:10212000EAEAF1E0DF011D928A95E9F7FE2C8AC008 -:102130004D875E878D859E856A8B0E94980E6A8981 -:10214000882309F4BECF662309F4BBCF2091AF01E9 -:10215000822F82958F7090E002970CF48ECF809141 -:10216000AA019091AB019A8389831B82DD82CC8284 -:102170002E83CE0101967FCF809590958C0D9D1D6D -:10218000ACCFF62E662309F49CCF75132EC0341302 -:102190002CC02091AF0120FD1FC0822F82958F702F -:1021A000D9F0D80115962C9315978F3049F08F5F91 -:1021B000982F9295907F822F8F70892B15968C93F4 -:1021C000C8010E94590E86E0F801AAEAB1E0019028 -:1021D0000D928A95E1F793CF86E0F801AAEAB1E083 -:1021E00001900D928A95E1F72DC04D875E878D8510 -:1021F0009E850E94980E811140CF8091AF01816031 -:102200008093AF01C8010E94590E1CC0662309F4D7 -:1022100058CF4D875E878D859E850E94980E8823B6 -:1022200009F44FCF2ACF811148CF0CC0243031059B -:102230000CF047CF9F7009F440CFF8019581907F53 -:1022400009F03BCF8F2D62960FB6F894DEBF0FBE1C -:10225000CDBFDF91CF911F910F91FF90EF90DF9055 -:10226000CF9008951F93CF93DF93CDB7DEB72C9710 -:102270000FB6F894DEBF0FBECDBF4F835887698776 -:102280007A878B879C87CE0107960E946B0F8823E5 -:1022900069F08F8198852A853B85232BF1F19F3F3B -:1022A00009F063C08F3F09F060C037C086E0FE01CF -:1022B0003796DE01119601900D928A95E1F76F81B4 -:1022C0007885EA85FB85309741F17F3F11F46F3FB8 -:1022D00021F12091790130E0C90101968770992799 -:1022E0004091780150E08417950709F447C069834D -:1022F0007A83FD83EC8396E0929FD001939FB00D8B -:102300001124A658BE4FFE01319601900D929A9568 -:10231000E1F7809379010E94E10E16E08091780147 -:10232000909179018917C1F1189FC0011124865835 -:102330009E4F0E946B0F882379F1E09178011E9FD8 -:10234000F0011124E658FE4F408151816281738172 -:10235000848195810E94D10E8091780190E0019650 -:102360008770992780937801D9CF4F8158856985E7 -:102370007A858B859C850E94D10ECFCF0E94940ECA -:102380001092790110927801EAEAF1E086E0DF012B -:102390001D928A95E9F7C1CF2C960FB6F894DEBF4F -:1023A0000FBECDBFDF91CF911F910895EF92FF92A5 -:1023B0000F931F93CF93DF938C01892B09F46CC08B -:1023C000F12CEE24E394E8012196F80184918437FE -:1023D00040F4843008F051C0813081F0823019F12E -:1023E0005BC0853709F444C0A8F19CE7980F90378B -:1023F00008F052C08F770E94DF0B41C00E5F1F4F65 -:10240000FE01C49180E28C0F883048F4C7708E2D95 -:1024100001C0880FCA95EAF70E94B21414C08C2F2D -:102420000E940C0B2DC00E5F1F4FFE01C49180E275 -:102430008C0F883058F4C7708E2D01C0880FCA9554 -:10244000EAF70E94B8140E94D9141AC08C2F0E9477 -:10245000DF0B16C00E5F1F4FFE01C491CC2381F02D -:102460008FE99FE00197F1F700C00000C150F6CF5F -:102470000E5F1F4FFE01F49003C00E940C0B8E01F3 -:102480008F2D882309F49FCFEFE9FFE03197F1F713 -:1024900000C000008150F5CFDF91CF911F910F91C7 -:1024A000FF90EF90089508956093B4017093B50183 -:1024B0008093B6019093B7010C94800E0F931F93F5 -:1024C0000091B4011091B5012091B6013091B7018E -:1024D000DC01CB01802B912BA22BB32B8093B40179 -:1024E0009093B501A093B601B093B7011F910F91DE -:1024F0000C94800E0F931F930091B4011091B501BD -:102500002091B6013091B701DC01CB0180239123EA -:10251000A223B3238093B4019093B501A093B60195 -:10252000B093B7011F910F910C94800E0F931F93DE -:102530000091B4011091B5012091B6013091B7011D -:10254000DC01CB0180279127A227B3278093B40118 -:102550009093B501A093B601B093B7011F910F916D -:102560000C94800E1092B0011092B1011092B20141 -:102570001092B3010C94800E41E050E060E070E0F6 -:1025800004C0440F551F661F771F8A95D2F74093EA -:10259000B0015093B1016093B2017093B3010C94F8 -:1025A000800E41E050E060E070E004C0440F551F31 -:1025B000661F771F8A95D2F78091B0019091B10183 -:1025C000A091B201B091B301482B592B6A2B7B2B00 -:1025D0004093B0015093B1016093B2017093B30185 -:1025E0000C94800E41E050E060E070E004C0440FC5 -:1025F000551F661F771F8A95D2F7409550956095B5 -:1026000070958091B0019091B101A091B201B0910B -:10261000B301482359236A237B234093B00150938D -:10262000B1016093B2017093B3010C94800E41E04C -:1026300050E060E070E004C0440F551F661F771F34 -:102640008A95D2F78091B0019091B101A091B20129 -:10265000B091B301482759276A277B274093B001DF -:102660005093B1016093B2017093B3010C94800E4A -:102670000F931F930091B0011091B1012091B2010D -:102680003091B301DC01CB01802B912BA22BB32B1A -:102690008093B0019093B101A093B201B093B301C4 -:1026A0001F910F910C94800E0F931F930091B00116 -:1026B0001091B1012091B2013091B301DC01CB0145 -:1026C00080239123A223B3238093B0019093B1017F -:1026D000A093B201B093B3011F910F910C94800E9F -:1026E0000F931F930091B0011091B1012091B2019D -:1026F0003091B301DC01CB0180279127A227B327BA -:102700008093B0019093B101A093B201B093B30153 -:102710001F910F910C94800E0895CF92DF92EF924B -:10272000FF920F931F93CF93DF938C01C090B4015E -:10273000D090B501E090B601F090B7018091B00162 -:102740009091B101A091B201B091B301C82AD92AE8 -:10275000EA2AFB2ACFE1D0E0D701C6010C2E04C043 -:10276000B695A795979587950A94D2F780FF06C0EE -:10277000B8018C2F0E944806019721F4219760F739 -:1027800080E001C08C2FDF91CF911F910F91FF90BE -:10279000EF90DF90CF900895CF93DF93EC010E94EC -:1027A0008D13BE010E944806DF91CF910895CB01A1 -:1027B0000E94CC1308958091B801859585958595E3 -:1027C00008958091B8018770089598E0899F9001DD -:1027D0001124262B2093B8010C94D1122091B8011A -:1027E000809582238093B801982F977069F430E028 -:1027F000482F552747FD50952417350729F0859513 -:10280000859585950C94F21208959091B801977072 -:1028100081E009F480E0089590911501992321F059 -:1028200090910201911109C020910301309104019E -:10283000F90132969FEF40E01FC0982F969596952C -:1028400096959F3050F5E0910301F0910401E90F56 -:10285000F11D877021E030E0A90102C0440F551F2F -:102860008A95E2F7CA019181892B818308959F3F60 -:1028700039F04F5F4E3041F051915813F8CF0DC0F1 -:102880005111F7CF942FF5CF9F3F39F0F901E90FA0 -:10289000F11D97FDFA958283089508959091150191 -:1028A000992321F090910201911109C02091030117 -:1028B00030910401F9013296205F3F4F1FC0982FDD -:1028C0009695969596959F30F0F4E0910301F091DE -:1028D0000401E90FF11D877021E030E0A90102C079 -:1028E000440F551F8A95E2F7CA018095918189238B -:1028F000818308953196E217F30729F090819813A8 -:10290000F9CF1082F7CF089581E090E0E0910301C4 -:10291000F0910401E80FF91F1082019680319105B2 -:10292000A9F708959091CC01892B8093CC0108954B -:1029300080959091CC0189238093CC0108951092C9 -:10294000CC0108959091CB01892B8093CB01089500 -:1029500080959091CB0189238093CB0108951092AB -:10296000CB0108959091CA01892B8093CA010895E3 -:1029700080959091CA0189238093CA01089510928D -:10298000CA0108958093B90108951092B90108957C -:102990008091030190910401FC0131969C01205F1C -:1029A0003F4F80E0919191118F5FE217F307D1F7CC -:1029B0000895E0910301F09104018091CC0180839E -:1029C000E0910301F091040190818091CB01892B6A -:1029D0008083E0910301F091040190818091CA010C -:1029E000892B80838091B901882361F0E0910301F4 -:1029F000F09104019081892B80830E94C814811179 -:102A00001092B90180910301909104010C94F00996 -:102A1000CF92DF92EF92FF926C01EE24FF24C1145B -:102A2000D104E104F10421F0C701B60120E101C0A5 -:102A300020E0C72ED82EE92EFF24C114D104E104D2 -:102A4000F10419F0285FC701B6016B017C0154E065 -:102A5000F694E794D794C7945A95D1F7C114D1044A -:102A6000E104F10419F02C5FC701B6016B017C0190 -:102A700042E0F694E794D794C7944A95D1F7C114ED -:102A8000D104E104F10419F02E5FC701B601DC01A5 -:102A9000CB01B695A79597958795892B8A2B8B2B7C -:102AA00009F02F5F822FFF90EF90DF90CF90089575 -:102AB0006DEE7EEF80E090E00E94B82360E082E05F -:102AC00090E00E94A72360E083E090E00E94A723AB -:102AD00060E084E090E00E94A72360E085E090E061 -:102AE0000C94A72380E090E00E94A12321E08D3E7A -:102AF0009E4F09F020E0822F089582E090E00C9430 -:102B0000992383E090E00C94992384E090E00C9466 -:102B10009923682F84E090E00C94A7238091F8011A -:102B2000843039F11092CE0120E488E190E00FB6B4 -:102B3000F894A895809360000FBE2093600080E019 -:102B40000E94460683B7817F846083BF83B781601C -:102B500083BF7894889583B78E7F83BF0FB6F89430 -:102B6000A895809160008861809360001092600059 -:102B70000FBE08950895CF930E94AC030E94BF0337 -:102B80000E94BA15C0E08C2F0E94AD04811104C0D0 -:102B9000CF5FCE30C1F701C081E0CF9108950E9490 -:102BA000940E0E94E4090C94460682E084BD93E0F2 -:102BB00095BD9AEF97BD80936E0008952FB7F89456 -:102BC0008091CF019091D001A091D101B091D2011B -:102BD0002FBF0895CF92DF92EF92FF920F931F9332 -:102BE0002FB7F8944091CF015091D0016091D1015D -:102BF0007091D2012FBF6A017B01EE24FF248C016A -:102C000020E030E0C016D106E206F30610F4415091 -:102C100051099A01281B390BC9011F910F91FF908F -:102C2000EF90DF90CF9008951F920F920FB60F9202 -:102C300011248F939F93AF93BF938091CF01909175 -:102C4000D001A091D101B091D2010196A11DB11D79 -:102C50008093CF019093D001A093D101B093D20182 -:102C6000BF91AF919F918F910F900FBE0F901F90CA -:102C700018950E943C1FF8942FEF87EA91E62150A7 -:102C800080409040E1F700C0000087E090EBDC015D -:102C90008093010290930202A0930302B093040276 -:102CA0009CE088E10FB6F894A895809360000FBE71 -:102CB00090936000FFCF0E947215811102C00E94A4 -:102CC00058150E947D158093CD010E94851590E0D6 -:102CD0009093F3018093F20187FB882780F980931A -:102CE00002010E948115682F70E080E090E00C9452 -:102CF00054128091D50180FF0BC06091080185E0DE -:102D0000689FB001112475956795759567952BC0DF -:102D100081FF09C06091080185E0689FB00111241E -:102D20007595679520C082FF07C06091080185E016 -:102D3000689FB001112417C09091D6019923D1F05A -:102D400060910701961788F72091080185E0289F78 -:102D500090011124929FA001939F500D112470E0C7 -:102D6000CA010E946B236038710540F4611571053A -:102D700039F002C065E070E0862F08958FE708956E -:102D800081E008958091D50180FF08C0609106011F -:102D900070E0759567957595679521C081FF06C0B0 -:102DA0006091060170E07595679519C082FF04C0B7 -:102DB0006091060170E010C09091D6019923C1F096 -:102DC000609105019617A0F780910601899FC001C7 -:102DD000112470E00E946B236038710528F461159E -:102DE000710521F0862F08958FE7089581E00895F9 -:102DF00061E070E0F4CF803F21F40E947916819564 -:102E000004C0813F29F40E9479168093D901089566 -:102E1000823F21F40E947916819504C0833F29F4F2 -:102E20000E9479168093D8010895893F19F40E9471 -:102E3000C21605C08A3F31F40E94C2168195809364 -:102E4000DA0108958B3F21F40E94C216819504C0D7 -:102E50008C3F29F40E94C2168093DB010895843FC1 -:102E600021F48091D701816017C0853F21F48091C2 -:102E7000D701826011C0863F21F48091D701846020 -:102E80000BC0873F21F48091D701886005C0883F3F -:102E900031F48091D70180618093D70108958D3FEF -:102EA00021F48091D50181600BC08E3F21F4809187 -:102EB000D501826005C08F3F29F48091D5018460DF -:102EC0008093D5010895803F39F48091D90187FF1F -:102ED0006CC01092D90169C0813F29F48091D90159 -:102EE0001816BCF362C09091D801823F29F497FF75 -:102EF0005CC01092D80159C0833F19F41916CCF365 -:102F000054C0893F41F48091DA0118160CF04DC08D -:102F10001092DA014AC08A3F29F48091DA0187FFD2 -:102F200044C0F6CF8B3F39F48091DB0187FF3DC071 -:102F30001092DB013AC08C3F29F48091DB01181616 -:102F4000BCF333C0843F21F48091D7018E7F17C03A -:102F5000853F21F48091D7018D7F11C0863F21F4F8 -:102F60008091D7018B7F0BC0873F21F48091D701DF -:102F7000877F05C0883F31F48091D7018F7E809391 -:102F8000D70113C08D3F21F48091D5018E7F0BC0F6 -:102F90008E3F21F48091D5018D7F05C08F3F29F4AC -:102FA0008091D5018B7F8093D5018091D8018111CB -:102FB0000EC08091D90181110AC08091DA0181117E -:102FC00006C08091DB01811102C01092D6010895E4 -:102FD00087ED91E00E94FB090E94DE159093D401D9 -:102FE0008093D30108951F93CF93DF938091D301F2 -:102FF0009091D4010E94EA15AC019091D6019923D9 -:1030000021F02091090130E006C020910A018AE0F8 -:10301000289F900111244217530708F486C080911D -:10302000D801C091D901D091DA011091DB01811151 -:1030300007C0C11176C0D11174C0111172C075C022 -:103040009F3F19F09F5F9093D601181624F40E94B9 -:1030500079168093D8018091D80187FF05C00E941E -:10306000791681958093D8011C1624F40E94791654 -:103070008093D9018091D90187FF05C00E947916FC -:1030800081958093D9016091D801662339F1C0916F -:10309000D901CC2319F1772767FD7095872F972FDA -:1030A0000E94722223E333E343E35FE30E94D622CC -:1030B0000E943A226093D8016C2F772767FD7095A4 -:1030C000872F972F0E94722223E333E343E35FE3CA -:1030D0000E94D6220E943A226093D9011D1624F440 -:1030E0000E94C2168093DA018091DA0187FF05C041 -:1030F0000E94C21681958093DA01111624F40E9471 -:10310000C2168093DB018091DB0187FF05C00E941E -:10311000C21681958093DB01DF91CF911F910C94B2 -:10312000E8179F3F09F08ECF96CFDF91CF911F9187 -:103130000895E7EDF1E085E0DF011D928A95E9F75A -:103140001092D6011092D5010895833081F128F4B0 -:10315000813059F08230D1F00895853009F449C0AA -:10316000B8F1863009F456C0089580910A01262FDF -:1031700030E0280F311D2F3F310524F4680F609394 -:103180000A0108958FEF80930A0108958091090143 -:10319000262F30E0280F311D2F3F310524F4680F12 -:1031A0006093090108958FEF80930901089580913C -:1031B0000801262F30E0280F311D2F3F310524F460 -:1031C000680F6093080108958FEF809308010895B8 -:1031D00080910701262F30E0280F311D2F3F310548 -:1031E00024F4680F6093070108958FEF809307011F -:1031F000089580910601262F30E0280F311D2F3FC2 -:10320000310524F4680F6093060108958FEF8093D1 -:103210000601089580910501262F30E0280F311D09 -:103220002F3F310524F4680F6093050108958FEF57 -:10323000809305010895833011F128F4813049F01D -:10324000823091F00895853081F120F18630C1F10E -:10325000089580910A01681720F4861B80930A0163 -:10326000089510920A01089580910901681720F4C9 -:10327000861B809309010895109209010895809199 -:103280000801681720F4861B8093080108951092A6 -:103290000801089580910701681720F4861B809328 -:1032A000070108951092070108958091060168179B -:1032B00020F4861B8093060108951092060108955C -:1032C00080910501681720F4861B809305010895FD -:1032D0001092050108950F931F938D3109F471C069 -:1032E00008F045C0803109F485C008F5873009F43D -:1032F0006FC068F4863009F0ADC08091CD01817F48 -:103300008E7F8093CD0181E08093DD01A4C08B305E -:1033100009F49EC08E3009F09DC08091CD0182FBE2 -:10332000222720F991E0922790FB82F96CC0863128 -:1033300009F48EC060F4813109F08CC00E94940EB3 -:103340009091020181E089278093020181C0893137 -:1033500009F47EC08B3109F07DC08091CD0181FBE5 -:10336000222720F991E0922790FB81F94CC0853308 -:1033700009F466C048F4873209F462C008F44FC00B -:10338000893209F45DC066C0833438F48A3308F0AA -:1033900044C0883309F45CC05DC0833409F450C074 -:1033A000883409F057C00E94940E0FEF13ED20E30C -:1033B000015010402040E1F700C000000E94391683 -:1033C00047C00E94F51A0E94E4090E94460640C0C8 -:1033D0009091CD01892F8095817080FB90F929F023 -:1033E000966098609093CD0136C0997F977F9093B7 -:1033F000CD012EC08091CD0183FB222720F991E0E1 -:10340000922790FB83F98093CD01992309F1809154 -:10341000CD0181608093CD011BC0895301C08D51C6 -:1034200041E050E060E070E08A019B0104C0000FC1 -:10343000111F221F331F8A95D2F7C901B80104C09A -:1034400061E070E080E090E00E9454120E94940ECF -:1034500081E001C080E01F910F91089580E0089500 -:1034600080E008958E518A3030F4E82FF0E0EA5E73 -:10347000FE4F8081089580E00895CF93C82F8091FA -:10348000DD01813079F018F08230E9F186C0E091F9 -:103490000301F09104018081813169F0823209F0E9 -:1034A0007EC009C0E0910301F09104018081813167 -:1034B00011F0823261F48C2F0E942E1A811104C007 -:1034C0008C2F0E946B191DC081E090E01AC08C2FD8 -:1034D0000E94301A811114C0C43179F048F4CB3005 -:1034E00079F0C03109F05FC082E08093DD0108C04F -:1034F000C93219F0C83321F056C01092DD0153C013 -:1035000081E0817052C0C93281F110F5C43169F196 -:10351000A8F4C73009F045C08AE080930A0194E11D -:103520009093090193E0909308018093070188E04C -:103530008093060188E28093050133C082EE8C0FF0 -:10354000863078F58C2F0E94321A8093DC0129C0D6 -:10355000CE34E9F020F4CB3421F56AE013C0C13554 -:1035600079F0C235F1F461E00DC08091DC0188236F -:1035700019F01092DC0115C081E08093DD0115C0C7 -:1035800061E006C08091DC010E94A5180AC06AE0D3 -:103590008091DC010E941B1904C01092DD0180E0C3 -:1035A00004C081E002C080E0ACCFCF910895E1E893 -:1035B000F0E08081886080838081816080838FB724 -:1035C000F89493E09093890090ED909388008FBFDA -:1035D0000895EFE6F0E08081826080830895EFE651 -:1035E000F0E080818D7F80830895EFE6F0E09081A8 -:1035F00082E08927808308951F920F920FB60F9261 -:1036000011242F933F934F935F936F937F938F93E7 -:103610009F93AF93BF93EF93FF938091DE019091BF -:10362000DF0101969093DF018093DE01811103C0D9 -:1036300082E00E944606E091DF01E695E695F0E023 -:10364000E954FC4FE4918091DE018E1303C080E0C9 -:103650000E944606FF91EF91BF91AF919F918F918C -:103660007F916F915F914F913F912F910F900FBE7E -:103670000F901F9018958091F0010895CF93DF93DC -:1036800000D01F92CDB7DEB79C018091F801843045 -:1036900019F593E099833B832A839093E9008FEF98 -:1036A0009091E800815095FD06C095ED9A95F1F74F -:1036B00000008111F5CF8091E80085FF0DC040E04A -:1036C00050E063E070E0CE0101960E94A71D80915A -:1036D000E8008E778093E8000F900F900F90DF91B5 -:1036E000CF910895CF93DF9300D01F92CDB7DEB76F -:1036F0002091F801243021F522E029839B838A83DD -:1037000083E08093E9008FEF9091E800815095FD70 -:1037100006C095ED9A95F1F700008111F5CF8091E3 -:10372000E80085FF0DC040E050E063E070E0CE01AE -:1037300001960E94A71D8091E8008E778093E80093 -:103740000F900F900F90DF91CF9108952091F80185 -:103750002430F1F422E02093E9002FEF3091E800CB -:10376000215035FD06C035ED3A95F1F700002111E5 -:10377000F5CF2091E80025FF0BC040E050E065E068 -:1037800070E00E94A71D8091E8008E778093E8008A -:103790000895CF93DF93EC019091F801943009F0F4 -:1037A00046C0809115018823D9F0809102018823B9 -:1037B000B9F09093E9008FEF9091E800815095FD6A -:1037C00006C095E19A95F1F700008111F5CF80913F -:1037D000E80085FF2CC040E050E060E170E017C0D9 -:1037E00081E08093E9008FEF9091E800815095FD92 -:1037F00006C095ED9A95F1F700008111F5CF809103 -:10380000E80085FF14C040E050E068E070E0CE01C1 -:103810000E94A71D8091E8008E778093E80080E1E8 -:10382000FE01A0EEB1E001900D928A95E1F7DF91E3 -:10383000CF9108958091F701811109C00E943C1F2A -:103840000E94991F8091E20084608093E2000895B5 -:103850001092F701089508950C94E91A0E94CF156B -:103860000E94EF1A0E94E4090C94460642E061ECC3 -:1038700081E00E94B61E42E061EC82E00E94B61E2A -:1038800042E061EC83E00E94B61E42E161EC84E01C -:103890000C94B61E8091FA01833009F455C030F4BF -:1038A000813071F0823009F48EC008958A3009F4B5 -:1038B0007AC08B3009F460C0893009F09CC020C008 -:1038C0008091F901813A09F096C08091E800877FE4 -:1038D0008093E8008091FD019091FE01892B21F4F5 -:1038E00060E180EE91E003C060E080E090E070E095 -:1038F0000E94F21D8091E8008B778093E800089584 -:103900008091F901813209F076C08091FD0190919A -:10391000FE01009719F0039709F06DC08091E8004F -:10392000877F8093E8008091E80082FD05C0809148 -:10393000F8018111F8CF5FC08091F1008093F00110 -:103940008091E8008B7753C08091F901813A09F0AA -:1039500052C08091FD019091FE01892B09F04BC06E -:103960008091E800877F8093E8008091E80080FFE5 -:10397000FCCF8091150136C08091F9018132D9F5D3 -:103980008091FD019091FE01892BA9F58091E800BD -:10399000877F8093E8000E94EB1E8091FB0180935B -:1039A00015010C94940E8091F901813221F58091DA -:1039B000E800877F8093E8000E94EB1E8091FC0165 -:1039C0008093F10108958091F901813AA1F48091E9 -:1039D000E800877F8093E8008091E80080FFFCCFBB -:1039E0008091F1018093F1008091E8008E778093BF -:1039F000E8000C94EB1E089584B7877F84BF0FB650 -:103A0000F894A8958091600088618093600010927E -:103A100060000FBE80E880936100109261000E94F8 -:103A2000330A0E943C1F0E94991F8091E20084602B -:103A30008093E20078940E941F220E94350A8BE056 -:103A400091E00E94DF090E94D71A8091F801853029 -:103A500069F40E948E158091F6018823B1F30E94CB -:103A6000BB15882391F30E94911DEFCF0E943B0A62 -:103A7000ECCF292F332723303105C9F064F42130EE -:103A8000310581F02230310509F043C08DE690E028 -:103A90002BE234E042C021323105F1F0223231050F -:103AA00041F137C082E190E028E934E036C099273F -:103AB0008130910541F08230910541F0892B49F523 -:103AC000E7E2F4E005C0EFE0F4E002C0E7EFF3E086 -:103AD000849190E09F0121C06430D8F4E62FF0E09B -:103AE000EE0FFF1FE45DFE4F2081318189E090E001 -:103AF00014C0643070F470E0FB01EE0FFF1FEC5D4A -:103B0000FE4F20813181FB01E05EFE4F808190E01D -:103B100004C080E090E020E030E0FA0131832083AF -:103B2000089580E189BD82E189BD09B400FEFDCF21 -:103B30008091D8008F7D8093D8008091E0008260D2 -:103B40008093E0008091E00081FDFCCF0895CF924A -:103B5000DF92EF92FF920F931F93CF93DF93EC01CD -:103B60008B016A010E940A1F811133C0C114D10464 -:103B700039F0F60180819181081B190BC80FD91FFC -:103B8000E12CF12C0115110519F18091E80085FD5A -:103B900016C08091E8008E778093E800C114D104AC -:103BA00049F0F60180819181E80EF91EF182E082F0 -:103BB00085E00FC00E940A1F882321F30AC0899163 -:103BC0008093F10001501109FFEFEF1AFF0ADACFDD -:103BD00080E0DF91CF911F910F91FF90EF90DF90E8 -:103BE000CF9008952091FF013091000226173707EA -:103BF00048F06115710539F42091E8002E77209383 -:103C0000E80001C0B90140E061157105A9F12091FA -:103C1000F801222309F443C0253009F442C0209161 -:103C2000E80023FD40C02091E80022FD32C0209131 -:103C3000E80020FFE9CF4091F3002091F20030E04E -:103C4000342BFC01CF016115710559F02830310585 -:103C500040F481918093F100615071092F5F3F4FD3 -:103C6000F1CF41E02830310509F040E02091E80033 -:103C70002E772093E800C8CF4111C9CF0AC08091A8 -:103C8000F801882361F0853061F08091E80083FDC0 -:103C90000AC08091E80082FFF2CF80E0089582E0C0 -:103CA000089583E0089581E008952091FF01309107 -:103CB00000022617370748F06115710539F4209185 -:103CC000E8002E772093E80001C0B901FC0120E054 -:103CD0006115710591F18091F801882309F440C0C4 -:103CE000853009F43FC08091E80083FD3DC080919C -:103CF000E80082FD2FC08091E80080FFE9CF20918D -:103D0000F3008091F20090E0922B6115710559F05B -:103D10008830910540F424912093F1003196615050 -:103D200071090196F2CF21E0089709F020E0809117 -:103D3000E8008E778093E800CBCF2111CCCF0AC06A -:103D40008091F801882361F0853061F08091E8006E -:103D500083FD0AC08091E80082FFF2CF80E00895E1 -:103D600082E0089583E0089581E00895982F9730C8 -:103D700058F59093E900981739F07091EC00209174 -:103D8000ED005091F00003C0242F762F50E021FF6A -:103D900019C03091EB003E7F3093EB003091ED0085 -:103DA0003D7F3093ED003091EB0031603093EB00BC -:103DB0007093EC002093ED005093F0002091EE0002 -:103DC00027FF07C09F5FD3CF8F708093E90081E00A -:103DD000089580E008958091F90187FF11C08091D6 -:103DE000E80082FD05C08091F8018111F8CF11C073 -:103DF0008091E8008B770BC08091F801882349F00F -:103E00008091E80080FFF8CF8091E8008E77809362 -:103E1000E80008952091E4003091E50095E6409196 -:103E2000EC00842F817040FF22C08091E80080FD6B -:103E30001CC08091F801882391F0853091F0809129 -:103E4000EB0085FD10C04091E4005091E500421761 -:103E5000530729F39A01915011F784E0089582E005 -:103E6000089583E0089581E0089580E008954091E9 -:103E7000E80042FFDECF08950E94AA1F0E94B21FF1 -:103E8000E0EEF0E0808181608083E8EDF0E0808109 -:103E90008F77808319BCA7EDB0E08C918E7F8C93D7 -:103EA00080818F7E80831092F70108950F931F9376 -:103EB000CF93DF930E94AA1F0E94B21FC8EDD0E0EB -:103EC00088818F77888388818068888388818F7DC7 -:103ED000888319BC1092F8011092F4011092F60137 -:103EE0001092F50100EE10E0F80180818B7F808355 -:103EF00088818160888342E060E080E00E94B61E95 -:103F0000E1EEF0E080818E7F8083E2EEF0E0808160 -:103F100081608083808188608083F80180818E7FCA -:103F20008083888180618883DF91CF911F910F9179 -:103F30000895E8EDF0E080818F7E8083E7EDF0E08A -:103F400080818160808384E082BF81E08093F7017B -:103F50000C94561FE8EDF0E080818E7F80831092F4 -:103F6000E20008951092DA001092E10008951F9285 -:103F70000F920FB60F9211242F933F934F935F939D -:103F80006F937F938F939F93AF93BF93EF93FF9321 -:103F90008091E10082FF0BC08091E20082FF07C0A8 -:103FA0008091E1008B7F8093E1000E941E2280912E -:103FB000DA0080FF1FC08091D80080FF1BC0809175 -:103FC000DA008E7F8093DA008091D90080FF0DC0E7 -:103FD00080E189BD82E189BD09B400FEFDCF81E0A9 -:103FE0008093F8010E941A1C05C019BC1092F801B8 -:103FF0000E94281C8091E10080FF19C08091E2009E -:1040000080FF15C08091E2008E7F8093E200809156 -:10401000E20080618093E2008091D800806280930A -:10402000D80019BC85E08093F8010E942C1C809177 -:10403000E10084FF30C08091E20084FF2CC080E169 -:1040400089BD82E189BD09B400FEFDCF8091D80011 -:104050008F7D8093D8008091E1008F7E8093E10076 -:104060008091E2008F7E8093E2008091E200816087 -:104070008093E2008091F401882311F084E007C06E -:104080008091E30087FD02C081E001C083E080935E -:10409000F8010E942E1C8091E10083FF29C08091CD -:1040A000E20083FF25C08091E100877F8093E100DB -:1040B00082E08093F8011092F4018091E1008E7FFC -:1040C0008093E1008091E2008E7F8093E2008091F6 -:1040D000E20080618093E20042E060E080E00E94C4 -:1040E000B61E8091F00088608093F0000E942B1C27 -:1040F000FF91EF91BF91AF919F918F917F916F91C0 -:104100005F914F913F912F910F900FBE0F901F9095 -:1041100018951F920F920FB60F9211242F933F9371 -:104120004F935F936F937F938F939F93AF93BF93BF -:10413000CF93DF93EF93FF93C091E900CF7080910D -:10414000EC00D82FD17080FDD0E81092E90080916A -:10415000F000877F8093F00078940E94CD20109229 -:10416000E9008091F00088608093F000CD2BCF7043 -:10417000C093E900FF91EF91DF91CF91BF91AF9193 -:104180009F918F917F916F915F914F913F912F916F -:104190000F900FBE0F901F9018951F93CF93DF9332 -:1041A000CDB7DEB7AA970FB6F894DEBF0FBECDBF6E -:1041B000E9EFF1E088E08E0F9091F10091938E137A -:1041C000FBCF0E944A1C8091E80083FF1FC18091B1 -:1041D000F9019091FA01492F50E04A30510508F059 -:1041E00015C1FA01E558FF4F0C947F23803881F008 -:1041F000823809F00BC18091FD018F708093E90036 -:104200008091EB0085FB882780F91092E90006C0B9 -:104210008091F5019091F601911182609091E800F2 -:10422000977F9093E8008093F1001092F100C8C04E -:10423000282F2D7F09F0EAC0882319F0823061F021 -:10424000E5C08091FB01813009F0E0C0933009F0B6 -:1042500080E08093F6012BC08091FB01811127C083 -:104260008091FD018F7009F4D1C08093E900209105 -:10427000EB0020FF1CC0933021F48091EB008062A2 -:1042800014C09091EB0090619093EB0021E030E03E -:10429000A90102C0440F551F8A95E2F74093EA0036 -:1042A0001092EA008091EB0088608093EB001092FE -:1042B000E9008091E800877F86C08111A7C0109136 -:1042C000FB011F778091E3008078812B8093E300CE -:1042D0008091E800877F8093E8000E94EB1E809128 -:1042E000E80080FFFCCF8091E30080688093E300CA -:1042F000111102C082E001C083E08093F80186C002 -:104300008058823008F082C08091FB019091FC01BE -:104310008C3D53E0950779F583E08A838AE28983AF -:104320004FB7F894DE01139620E03EE051E2E32F10 -:10433000F0E050935700E49120FF03C0E295EF7046 -:104340003F5FEF708E2F90E0EA3010F0C79601C00B -:10435000C0968D939D932F5F243149F74FBF809175 -:10436000E800877F8093E8006AE270E0CE01019662 -:104370000E94F21D14C0AE014F5F5F4F6091FD01BE -:104380000E94391DBC01892B09F440C09091E800BE -:10439000977F9093E80089819A810E94551E8091B1 -:1043A000E8008B778093E80031C0803879F5809100 -:1043B000E800877F8093E8008091F4018093F1000A -:1043C0008091E8008E778093E8000E94EB1E1EC06B -:1043D00081111CC09091FB019230C0F48091E800E3 -:1043E000877F8093E8009093F4010E94EB1E8091F8 -:1043F000F401811106C08091E30087FD02C081E0D5 -:1044000001C084E08093F8010E94361C8091E8008E -:1044100083FF0AC08091E800877F8093E800809145 -:10442000EB0080628093EB00AA960FB6F894DEBF93 -:104430000FBECDBFDF91CF911F9108950895CF9307 -:104440008091F8018823A1F0C091E900CF7090918C -:10445000EC00892F817090FD80E8C82B1092E90054 -:104460008091E80083FD0E94CD20CF70C093E900C9 -:10447000CF9108950E9441226894B1110C94D022EA -:1044800008950E94B52288F09F5798F0B92F992778 -:10449000B751B0F0E1F0660F771F881F991F1AF02F -:1044A000BA95C9F714C0B13091F00E94CF22B1E0A3 -:1044B00008950C94CF22672F782F8827B85F39F0A2 -:1044C000B93FCCF3869577956795B395D9F73EF4C8 -:1044D00090958095709561957F4F8F4F9F4F089570 -:1044E000E89409C097FB3EF490958095709561958E -:1044F0007F4F8F4F9F4F9923A9F0F92F96E9BB2744 -:104500009395F695879577956795B795F111F8CFBF -:10451000FAF4BB0F11F460FF1BC06F5F7F4F8F4F2A -:104520009F4F16C0882311F096E911C0772321F020 -:104530009EE8872F762F05C0662371F096E8862FB8 -:1045400070E060E02AF09A95660F771F881FDAF70F -:10455000880F9695879597F9089557FD9058440FC1 -:10456000551F59F05F3F71F04795880F97FB991FD2 -:1045700061F09F3F79F0879508951216130614068F -:10458000551FF2CF4695F1DF08C01616170618061C -:10459000991FF1CF86957105610508940895E894F7 -:1045A000BB2766277727CB0197F908950E94E92258 -:1045B0000C945A230E944C2338F00E94532320F07D -:1045C000952311F00C9443230C94492311240C944B -:1045D000D0220E94AD2270F3959FC1F3950F50E059 -:1045E000551F629FF001729FBB27F00DB11D639FA5 -:1045F000AA27F00DB11DAA1F649F6627B00DA11D4B -:10460000661F829F2227B00DA11D621F739FB00DF0 -:10461000A11D621F839FA00D611D221F749F332760 -:10462000A00D611D231F849F600D211D822F762FF9 -:104630006A2F11249F5750409AF0F1F088234AF0D6 -:10464000EE0FFF1FBB1F661F771F881F9150504042 -:10465000A9F79E3F510580F00C9443230C94D0227F -:104660005F3FE4F3983ED4F3869577956795B795C9 -:10467000F795E7959F5FC1F7FE2B880F911D9695E3 -:10468000879597F9089597F99F6780E870E060E053 -:1046900008959FEF80EC089500240A9416161706DB -:1046A00018060906089500240A9412161306140623 -:1046B00005060895092E0394000C11F4882352F086 -:1046C000BB0F40F4BF2B11F460FF04C06F5F7F4F3E -:1046D0008F4F9F4F089597FB072E16F4009407D035 -:1046E00077FD09D00E94852307FC05D03EF4909504 -:1046F00081959F4F0895709561957F4F0895EE0FB6 -:10470000FF1F0590F491E02D0994AA1BBB1B51E1FA -:1047100007C0AA1FBB1FA617B70710F0A61BB70B31 -:10472000881F991F5A95A9F780959095BC01CD01D6 -:104730000895F999FECF92BD81BDF89A992780B569 -:104740000895A8E1B0E042E050E00C94C023262F89 -:10475000F999FECF92BD81BDF89A019700B4021677 -:1047600031F020BD0FB6F894FA9AF99A0FBE089569 -:104770000196272F0E94A8230C94A723DC01CB01CC -:10478000FC01F999FECF06C0F2BDE1BDF89A319661 -:1047900000B40D9241505040B8F70895F894FFCFFF -:1047A000052001BA0128080A03140A3B1BC91BA6ED -:1047B0001B721B3E1B0101020304050607080900CA -:1047C000404D363966051905E304AA043D04560434 -:0447D0006F048804E6 -:00000001FF diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index 90ede90ae..618422055 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md @@ -152,7 +152,7 @@ The QMK firmware is open-source, so it would be wonderful to have your contribut 1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). 2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. 3. `readme.md` - a readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :) -4. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link, just like I did with the default layout. +4. Any graphics you wish to add must be hosted elsewhere (please don't include images in your PR). This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link (`![alt-text](url)`), just like I did with the default layout. # Finding the keycodes you need -- cgit v1.2.3-24-g4f1b From 54d48140cd4e0f03876b336c170a15076e123c69 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Sun, 11 Jun 2017 16:00:40 -0400 Subject: -MIDI Chords now using process_record_user instead of F(n) keys -Morse Code shift keys implemented --- keyboards/s60_x/keymaps/bluebear/keymap.c | 492 ++++++++++-------------------- 1 file changed, 164 insertions(+), 328 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c index 878a54e28..cfd8d4b55 100644 --- a/keyboards/s60_x/keymaps/bluebear/keymap.c +++ b/keyboards/s60_x/keymaps/bluebear/keymap.c @@ -11,202 +11,7 @@ enum keyboard_layers { MORSE, //Morse Code Layer }; -// Midi Chords - -enum midi_chord_modes { //ACTION_FUNCTION opt - major, - minor, - dom_seventh, - dim_seventh, -}; - -enum midi_chord_root { //ACTION_FUNCTION id - C, - Cs, - Db = Cs, - D, - Ds, - Eb = Ds, - E, - F, - Fs, - Gb = Fs, - G, - Gs, - Ab = Gs, - A, - As, - Bb = As, - B, -}; - -enum midi_chord_id { //ACTION_FUNCTION Progmem Id - - //Major Chords - - CMajor, - CsMajor, - DbMajor = CsMajor, - DMajor, - DsMajor, - EbMajor = DsMajor, - EMajor, - FMajor, - FsMajor, - GbMajor = FsMajor, - GMajor, - GsMajor, - AbMajor = GsMajor, - AMajor, - AsMajor, - BbMajor = AsMajor, - BMajor, - - //Minor Chords - - CMinor, - CsMinor, - DbMinor = CsMinor, - DMinor, - DsMinor, - EbMinor = DsMinor, - EMinor, - FMinor, - FsMinor, - GbMinor = FsMinor, - GMinor, - GsMinor, - AbMinor = GsMinor, - AMinor, - AsMinor, - BbMinor = AsMinor, - BMinor, - - //Dominant Seventh Chords - - CDom7, - CsDom7, - DbDom7 = CsDom7, - DDom7, - DsDom7, - EbDom7 = DsDom7, - EDom7, - FDom7, - FsDom7, - GbDom7 = FsDom7, - GDom7, - GsDom7, - AbDom7 = GsDom7, - ADom7, - AsDom7, - BbDom7 = AsDom7, - BDom7, - - //Diminished Seventh Chords - - CDim7, - CsDim7, - DbDim7 = CsDim7, - DDim7, - DsDim7, - EbDim7 = DsDim7, - EDim7, - FDim7, - FsDim7, - GbDim7 = FsDim7, - GDim7, - GsDim7, - AbDim7 = GsDim7, - ADim7, - AsDim7, - BbDim7 = AsDim7, - BDim7, -}; - -enum midi_chord_keycodes { //Midi Chocd Keycodes - - //Major Chord Keycodes - - MI_CH_C = F(CMajor), - MI_CH_Cs = F(CsMajor), - MI_CH_Db = MI_CH_Cs, - MI_CH_D = F(DMajor), - MI_CH_Ds = F(DsMajor), - MI_CH_Eb = MI_CH_Ds, - MI_CH_E = F(EMajor), - MI_CH_F = F(FMajor), - MI_CH_Fs = F(FsMajor), - MI_CH_Gb = MI_CH_Fs, - MI_CH_G = F(GMajor), - MI_CH_Gs = F(GsMajor), - MI_CH_Ab = MI_CH_Gs, - MI_CH_A = F(AMajor), - MI_CH_As = F(AsMajor), - MI_CH_Bb = MI_CH_As, - MI_CH_B = F(BMajor), - - //Minor Chord Keycodes - - MI_CH_Cm = F(CMinor), - MI_CH_Csm = F(CsMinor), - MI_CH_Dbm = MI_CH_Csm, - MI_CH_Dm = F(DMinor), - MI_CH_Dsm = F(DsMinor), - MI_CH_Ebm = MI_CH_Dsm, - MI_CH_Em = F(EMinor), - MI_CH_Fm = F(FMinor), - MI_CH_Fsm = F(FsMinor), - MI_CH_Gbm = MI_CH_Fsm, - MI_CH_Gm = F(GMinor), - MI_CH_Gsm = F(GsMinor), - MI_CH_Abm = MI_CH_Gsm, - MI_CH_Am = F(AMinor), - MI_CH_Asm = F(AsMinor), - MI_CH_Bbm = MI_CH_Asm, - MI_CH_Bm = F(BMinor), - - //Dominant Seventh Keycodes - - MI_CH_CDom7 = F(CDom7), - MI_CH_CsDom7 = F(CsDom7), - MI_CH_DbDom7 = MI_CH_CsDom7, - MI_CH_DDom7 = F(DDom7), - MI_CH_DsDom7 = F(DsDom7), - MI_CH_EbDom7 = MI_CH_DsDom7, - MI_CH_EDom7 = F(EDom7), - MI_CH_FDom7 = F(FDom7), - MI_CH_FsDom7 = F(FsDom7), - MI_CH_GbDom7 = MI_CH_FsDom7, - MI_CH_GDom7 = F(GDom7), - MI_CH_GsDom7 = F(GsDom7), - MI_CH_AbDom7 = MI_CH_GsDom7, - MI_CH_ADom7 = F(ADom7), - MI_CH_AsDom7 = F(AsDom7), - MI_CH_BbDom7 = MI_CH_AsDom7, - MI_CH_BDom7 = F(BDom7), - - //Diminished Seventh Keycodes - - MI_CH_CDim7 = F(CDim7), - MI_CH_CsDim7 = F(CsDim7), - MI_CH_DbDim7 = MI_CH_CsDim7, - MI_CH_DDim7 = F(DDim7), - MI_CH_DsDim7 = F(DsDim7), - MI_CH_EbDim7 = MI_CH_DsDim7, - MI_CH_EDim7 = F(EDim7), - MI_CH_FDim7 = F(FDim7), - MI_CH_FsDim7 = F(FsDim7), - MI_CH_GbDim7 = MI_CH_FsDim7, - MI_CH_GDim7 = F(GDim7), - MI_CH_GsDim7 = F(GsDim7), - MI_CH_AbDim7 = MI_CH_GsDim7, - MI_CH_ADim7 = F(ADim7), - MI_CH_AsDim7 = F(AsDim7), - MI_CH_BbDim7 = MI_CH_AsDim7, - MI_CH_BDim7 = F(BDim7), -}; - -//Morse Code Macro Keys +// Morse Code Macro Keys enum morse_macros { MC_0 = M(0), @@ -258,10 +63,94 @@ enum morse_macros { // Custom Keys enum custom_keys { + + // Miscellaneous Keycodes + + TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del MAGSYS = SAFE_RANGE, // Magic SysRq key - Sends Alt-PSCR - MC_LSFT, - MC_RSFT, - TFS = LCTL(LALT(KC_DEL)), // Three Finger Salute - Sends Ctl-Alt-Del + MC_LSFT, // Morse Code Left Shift + MC_RSFT, // Morse Code Right Shift + + // MIDI Chord Keycodes - Major + + MI_CH_C, + MI_CH_Cs, + MI_CH_Db = MI_CH_Cs, + MI_CH_D, + MI_CH_Ds, + MI_CH_Eb = MI_CH_Ds, + MI_CH_E, + MI_CH_F, + MI_CH_Fs, + MI_CH_Gb = MI_CH_Fs, + MI_CH_G , + MI_CH_Gs, + MI_CH_Ab = MI_CH_Gs, + MI_CH_A, + MI_CH_As, + MI_CH_Bb = MI_CH_As, + MI_CH_B, + + // MIDI Chord Keycodes Minor + + MI_CH_Cm, + MI_CH_Csm, + MI_CH_Dbm = MI_CH_Csm, + MI_CH_Dm, + MI_CH_Dsm, + MI_CH_Ebm = MI_CH_Dsm, + MI_CH_Em, + MI_CH_Fm, + MI_CH_Fsm, + MI_CH_Gbm = MI_CH_Fsm, + MI_CH_Gm, + MI_CH_Gsm, + MI_CH_Abm = MI_CH_Gsm, + MI_CH_Am, + MI_CH_Asm, + MI_CH_Bbm = MI_CH_Asm, + MI_CH_Bm, + + //MIDI Chord Keycodes Dominant Seventh + + MI_CH_CDom7, + MI_CH_CsDom7, + MI_CH_DbDom7 = MI_CH_CsDom7, + MI_CH_DDom7, + MI_CH_DsDom7, + MI_CH_EbDom7 = MI_CH_DsDom7, + MI_CH_EDom7, + MI_CH_FDom7, + MI_CH_FsDom7, + MI_CH_GbDom7 = MI_CH_FsDom7, + MI_CH_GDom7, + MI_CH_GsDom7, + MI_CH_AbDom7 = MI_CH_GsDom7, + MI_CH_ADom7, + MI_CH_AsDom7, + MI_CH_BbDom7 = MI_CH_AsDom7, + MI_CH_BDom7, + + // MIDI Chord Keycodes Diminished Seventh + + MI_CH_CDim7, + MI_CH_CsDim7, + MI_CH_DbDim7 = MI_CH_CsDim7, + MI_CH_DDim7, + MI_CH_DsDim7, + MI_CH_EbDim7 = MI_CH_DsDim7, + MI_CH_EDim7, + MI_CH_FDim7, + MI_CH_FsDim7, + MI_CH_GbDim7 = MI_CH_FsDim7, + MI_CH_GDim7, + MI_CH_GsDim7, + MI_CH_AbDim7 = MI_CH_GsDim7, + MI_CH_ADim7, + MI_CH_AsDim7, + MI_CH_BbDim7 = MI_CH_AsDim7, + MI_CH_BDim7, + }; //Keymaps @@ -378,7 +267,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MIDI_CHORDS] = KEYMAP( TO(0), MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Gb, MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, TO(3), KC_NO, \ - MI_OCTU, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bbm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ + MI_OCTU, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Gbm, MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, KC_NO, \ MI_OCTD, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_GbDom7, MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, KC_NO, MI_CH_FDom7, \ MI_CH_CDim7, KC_NO, MI_CH_GDim7, MI_CH_DDim7, MI_CH_ADim7, MI_CH_EDim7, MI_CH_BDim7, MI_CH_GbDim7, MI_CH_DbDim7, MI_CH_AbDim7, MI_CH_EbDim7, MI_CH_BbDim7, KC_NO, MI_CH_FDim7, KC_NO, \ KC_NO, KC_NO, KC_NO, MI_ALLOFF, KC_NO, KC_NO, KC_NO, KC_NO @@ -411,10 +300,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Morse Code Macros -int mc_shift_on = false; +int mc_shift_on = false; // Variable that defines whether MC_LSFT or MC_RSFT are pressed const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case 0: //Number 0-) if (record->event.pressed) { if (mc_shift_on == true) { @@ -425,6 +316,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 1: //Number 1-! if (record->event.pressed) { if (mc_shift_on == true) { @@ -435,6 +327,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 2: //Number 2-@ if (record->event.pressed) { if (mc_shift_on == true) { @@ -445,11 +338,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 3: // Number 3 if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...-- } break; + case 4: //Number 4-$ if (record->event.pressed) { if (mc_shift_on == true) { @@ -460,16 +355,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 5: //Number 5 if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //..... } break; + case 6: //Number 6 if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-.... } break; + case 7: //Number 7-& if (record->event.pressed) { if (mc_shift_on == true) { @@ -480,11 +378,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 8: //Number 8 if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---.. } break; + case 9: //Number 9-( if (record->event.pressed) { if (mc_shift_on == true) { @@ -495,126 +395,151 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 10: //Letter A if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(SPACE), END); //.- } break; + case 11: //Letter B if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-... } break; + case 12: //Letter C if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-. } break; + case 13: //Letter D if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(DOT), T(SPACE), END); //-.. } break; + case 14: //Letter E if (record->event.pressed) { return MACRO(T(DOT), T(SPACE), END); //. } break; + case 15: //Letter F if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //..-. } break; + case 16: //Letter G if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(DOT), T(SPACE), END); //--. } break; + case 17: //Letter H if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.... } break; + case 18: //Letter I if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(SPACE), END); //.. } break; + case 19: //Letter J if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.--- } break; + case 20: //Letter K if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.- } break; + case 21: //Letter L if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(SPACE), END); //.-.. } break; + case 22: //Letter M if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(SPACE), END); //-- } break; + case 23: //Letter N if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(SPACE), END); //-. } break; + case 24: //Letter O if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(MINS), T(SPACE), END); //--- } break; + case 25: //Letter P if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //.--. } break; + case 26: //Letter Q if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //--.- } break; + case 27: //Letter R if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-. } break; + case 28: //Letter S if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(SPACE), END); //... } break; + case 29: //Letter T if (record->event.pressed) { return MACRO(T(MINS), T(SPACE), END); //- } break; + case 30: //Letter U if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(MINS), T(SPACE), END); //..- } break; + case 31: //Letter V if (record->event.pressed) { return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...- } break; + case 32: //Letter W if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(MINS), T(SPACE), END); //.-- } break; + case 33: //Letter X if (record->event.pressed) { return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-..- } break; + case 34: //Letter Y if (record->event.pressed) { if (mc_shift_on == true) { @@ -622,21 +547,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-- } break; + case 35: //Letter Z if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //--.. } break; + case 36: //Punctuation . if (record->event.pressed) { return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.- } break; + case 37: //Punctuation , if (record->event.pressed) { return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..-- } break; + case 38: //Punctuation '-" if (record->event.pressed) { if (mc_shift_on == true) { @@ -647,6 +576,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 39: //Punctuation /-? if (record->event.pressed) { if (mc_shift_on == true) { @@ -657,6 +587,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 40: //Punctuation ;-: if (record->event.pressed) { if (mc_shift_on == true) { @@ -667,6 +598,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 41: //Punctuation =-+ if (record->event.pressed) { if (mc_shift_on == true) { @@ -677,6 +609,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 42: //Punctuation --_ if (record->event.pressed) { if (mc_shift_on == true) { @@ -687,6 +620,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 43: //Morse Space if (record->event.pressed) { return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse @@ -699,7 +633,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // Custom Keys bool process_record_user (uint16_t keycode, keyrecord_t *record) { + + uint16_t root_note = MIDI_INVALID_NOTE; // Starting value for the root note of each chord + switch(keycode) { + + // Miscellaneous Keycodes + case MAGSYS: //Magic SysRq function - Toggles key on and off depending on state of LALT key if (record->event.pressed) { if (keyboard_report->mods & (MOD_BIT(KC_LALT))) { @@ -711,6 +651,7 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { } } break; + case MC_LSFT ... MC_RSFT: if (record->event.pressed) { mc_shift_on = true; @@ -719,141 +660,36 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { mc_shift_on = false; } break; - } - return true; -} - -// Midi Chord Function - -const uint16_t PROGMEM fn_actions[] = { - - //Major Chords - - [CMajor] = ACTION_FUNCTION_OPT(C, major), - [CsMajor] = ACTION_FUNCTION_OPT(Cs, major), - [DMajor] = ACTION_FUNCTION_OPT(D, major), - [DsMajor] = ACTION_FUNCTION_OPT(Ds, major), - [EMajor] = ACTION_FUNCTION_OPT(E, major), - [FMajor] = ACTION_FUNCTION_OPT(F, major), - [FsMajor] = ACTION_FUNCTION_OPT(Fs, major), - [GMajor] = ACTION_FUNCTION_OPT(G, major), - [GsMajor] = ACTION_FUNCTION_OPT(Gs, major), - [AMajor] = ACTION_FUNCTION_OPT(A, major), - [AsMajor] = ACTION_FUNCTION_OPT(As, major), - [BMajor] = ACTION_FUNCTION_OPT(B, major), - - //Minor Chords - - [CMinor] = ACTION_FUNCTION_OPT(C, minor), - [CsMinor] = ACTION_FUNCTION_OPT(Cs, minor), - [DMinor] = ACTION_FUNCTION_OPT(D, minor), - [DsMinor] = ACTION_FUNCTION_OPT(Ds, minor), - [EMinor] = ACTION_FUNCTION_OPT(E, minor), - [FMinor] = ACTION_FUNCTION_OPT(F, minor), - [FsMinor] = ACTION_FUNCTION_OPT(Fs, minor), - [GMinor] = ACTION_FUNCTION_OPT(G, minor), - [GsMinor] = ACTION_FUNCTION_OPT(Gs, minor), - [AMinor] = ACTION_FUNCTION_OPT(A, minor), - [AsMinor] = ACTION_FUNCTION_OPT(As, minor), - [BMinor] = ACTION_FUNCTION_OPT(B, minor), - - //Dominant 7th - - [CDom7] = ACTION_FUNCTION_OPT(C, dom_seventh), - [CsDom7] = ACTION_FUNCTION_OPT(Cs, dom_seventh), - [DDom7] = ACTION_FUNCTION_OPT(D, dom_seventh), - [DsDom7] = ACTION_FUNCTION_OPT(Ds, dom_seventh), - [EDom7] = ACTION_FUNCTION_OPT(E, dom_seventh), - [FDom7] = ACTION_FUNCTION_OPT(F, dom_seventh), - [FsDom7] = ACTION_FUNCTION_OPT(Fs, dom_seventh), - [GDom7] = ACTION_FUNCTION_OPT(G, dom_seventh), - [GsDom7] = ACTION_FUNCTION_OPT(Gs, dom_seventh), - [ADom7] = ACTION_FUNCTION_OPT(A, dom_seventh), - [AsDom7] = ACTION_FUNCTION_OPT(As, dom_seventh), - [BDom7] = ACTION_FUNCTION_OPT(B, dom_seventh), - - //Diminished 7th - - [CDim7] = ACTION_FUNCTION_OPT(C, dim_seventh), - [CsDim7] = ACTION_FUNCTION_OPT(Cs, dim_seventh), - [DDim7] = ACTION_FUNCTION_OPT(D, dim_seventh), - [DsDim7] = ACTION_FUNCTION_OPT(Ds, dim_seventh), - [EDim7] = ACTION_FUNCTION_OPT(E, dim_seventh), - [FDim7] = ACTION_FUNCTION_OPT(F, dim_seventh), - [FsDim7] = ACTION_FUNCTION_OPT(Fs, dim_seventh), - [GDim7] = ACTION_FUNCTION_OPT(G, dim_seventh), - [GsDim7] = ACTION_FUNCTION_OPT(Gs, dim_seventh), - [ADim7] = ACTION_FUNCTION_OPT(A, dim_seventh), - [AsDim7] = ACTION_FUNCTION_OPT(As, dim_seventh), - [BDim7] = ACTION_FUNCTION_OPT(B, dim_seventh), -}; -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - uint16_t root_note = MIDI_INVALID_NOTE; - switch (id) { - case C: //Root note C - root_note = MI_C; - break; - case Cs: //Root note C#/Db - root_note = MI_Cs; - break; - case D: // Root note D - root_note = MI_D; - break; - case Ds: // Root note D#/Eb - root_note = MI_Ds; - break; - case E: // Root note E - root_note = MI_E; - break; - case F: // Root note F - root_note = MI_F; - break; - case Fs: // Root note F#/Gb - root_note = MI_Fs; - break; - case G: // Root note G - root_note = MI_G; - break; - case Gs: // Root note G#/Ab - root_note = MI_Gs; - break; - case A: // Root note A - root_note = MI_A; - break; - case As: // Root note A#/Bb - root_note = MI_As; - break; - case B: // Root note B - root_note = MI_B; - break; - } - uint16_t major_third = root_note + 4; - uint16_t minor_third = root_note + 3; - //uint16_t flat_fifth = root_note + 6; - uint16_t fifth = root_note + 7; - uint16_t minor_seventh = root_note + 10; - uint16_t diminished_seventh = root_note -3; - switch (opt) { - case major: //Major chord + // MIDI Chord Keycodes + + case MI_CH_C ... MI_CH_B: // Major Chords + root_note = keycode - MI_CH_C + MI_C; process_midi(root_note, record); - process_midi(major_third, record); - process_midi(fifth, record); + process_midi(root_note + 4, record); // Major Third Note + process_midi(root_note + 7, record); // Fifth Note break; - case minor: //Minor chord + + case MI_CH_Cm ... MI_CH_Bm: // Minor Chord + root_note = keycode - MI_CH_Cm + MI_C; process_midi(root_note, record); - process_midi(minor_third, record); - process_midi(fifth, record); + process_midi(root_note + 3, record); // Minor Third Note + process_midi(root_note + 7, record); // Fifth Note break; - case dom_seventh: //Dominant Seventh chord + + case MI_CH_CDom7 ... MI_CH_BDom7: // Dominant 7th Chord + root_note = keycode - MI_CH_CDom7 + MI_C; process_midi(root_note, record); - process_midi(major_third, record); - process_midi(minor_seventh, record); + process_midi(root_note + 4, record); // Major Third Note + process_midi(root_note + 10, record); // Minor Seventh Note break; - case dim_seventh: //Diminished Seventh Chord + + case MI_CH_CDim7 ... MI_CH_BDim7: // Diminished 7th Chord + root_note = keycode - MI_CH_CDim7 + MI_C; process_midi(root_note, record); - process_midi(minor_third, record); - process_midi(diminished_seventh, record); + process_midi(root_note + 3, record); // Minor Third Note + process_midi(root_note - 3, record); // Diminished 7th Note break; } + return true; } -- cgit v1.2.3-24-g4f1b From a7ce482d142b5e4570ba0f63423ec66e51c51c6f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 11 Jun 2017 21:24:23 -0400 Subject: remove the rest of the .pngs --- keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png | Bin 20663 -> 0 bytes keyboards/ergodox/ez/keymaps/profet_80/readme.md | 2 +- .../ergodox/keymaps/algernon/images/adore-layer.png | Bin 97357 -> 0 bytes .../ergodox/keymaps/algernon/images/base-layer.png | Bin 102318 -> 0 bytes keyboards/ergodox/keymaps/algernon/images/heatmap.png | Bin 139351 -> 0 bytes .../ergodox/keymaps/algernon/images/hun-layer.png | Bin 67924 -> 0 bytes .../keymaps/algernon/images/nav-n-media-layer.png | Bin 94837 -> 0 bytes .../ergodox/keymaps/algernon/images/steno-layer.png | Bin 64086 -> 0 bytes keyboards/ergodox/keymaps/algernon/readme.md | 11 +++++++---- .../keymaps/deadcyclo/images/deadcyclo-base-layout.png | Bin 97053 -> 0 bytes .../deadcyclo/images/deadcyclo-layer-1-symbols.png | Bin 79904 -> 0 bytes .../images/deadcyclo-layer-2-media-and-mouse.png | Bin 65740 -> 0 bytes .../deadcyclo/images/deadcyclo-layer-3-unicode.png | Bin 73624 -> 0 bytes .../deadcyclo/images/deadcyclo-layer-4-unicode-2.png | Bin 66132 -> 0 bytes keyboards/ergodox/keymaps/deadcyclo/readme.md | 10 +++++----- .../keymaps/ishigoya-jp/img/keyboard-layout-enL.png | Bin 84725 -> 0 bytes .../keymaps/ishigoya-jp/img/keyboard-layout-jpL.png | Bin 82660 -> 0 bytes .../keymaps/ishigoya-jp/img/keyboard-layout-numL.png | Bin 72923 -> 0 bytes keyboards/ergodox/keymaps/ishigoya-jp/readme.md | 6 +++--- .../keymaps/jacobono/img/colemak-default-layer.png | Bin 70434 -> 0 bytes .../ergodox/keymaps/jacobono/img/number-dpad-layer.png | Bin 46225 -> 0 bytes .../ergodox/keymaps/jacobono/img/symbol-layer.png | Bin 49615 -> 0 bytes keyboards/ergodox/keymaps/jacobono/readme.md | 6 +++--- keyboards/ergodox/keymaps/msc/img/code_layer.png | Bin 71266 -> 0 bytes keyboards/ergodox/keymaps/msc/img/main_layer.png | Bin 90624 -> 0 bytes keyboards/ergodox/keymaps/msc/img/media_layer.png | Bin 75750 -> 0 bytes keyboards/ergodox/keymaps/msc/readme.md | 6 +++--- keyboards/ergodox/keymaps/supercoder/images/layout.png | Bin 65607 -> 0 bytes keyboards/ergodox/keymaps/supercoder/readme.md | 2 +- keyboards/ergodox/keymaps/videck/readme.md | 2 ++ keyboards/ergodox/keymaps/videck/videck.png | Bin 106851 -> 0 bytes .../keymaps/win10_writers-block/images/base-layer.png | Bin 125979 -> 0 bytes .../keymaps/win10_writers-block/images/media-layer.png | Bin 102643 -> 0 bytes .../win10_writers-block/images/rimworld-layer.png | Bin 90359 -> 0 bytes .../win10_writers-block/images/symbol-layer.png | Bin 101477 -> 0 bytes .../ergodox/keymaps/win10_writers-block/readme.md | 8 ++++---- keyboards/kinesis/alvicstep/docs/readme.txt | 2 ++ keyboards/kinesis/alvicstep/docs/schematic.png | Bin 175014 -> 0 bytes .../lets_split/imgs/split-keyboard-i2c-schematic.png | Bin 26565 -> 0 bytes .../imgs/split-keyboard-serial-schematic.png | Bin 19487 -> 0 bytes keyboards/lets_split/readme.md | 4 ++-- keyboards/planck/keymaps/ab/keyboard-layout.png | Bin 27168 -> 0 bytes keyboards/planck/keymaps/ab/readme.md | 2 +- keyboards/planck/keymaps/circuit/Readme.md | 2 ++ keyboards/planck/keymaps/dbroqua/layout.png | Bin 21895 -> 0 bytes keyboards/planck/keymaps/dbroqua/readme.md | 2 +- keyboards/planck/keymaps/johannes/planck-layout.png | Bin 19661 -> 0 bytes keyboards/planck/keymaps/johannes/readme.md | 2 +- .../docs/KB_US-International-Alternative.png | Bin 54748 -> 0 bytes .../keymaps/ansi_qwertz/docs/KB_US-International.png | Bin 54041 -> 0 bytes keyboards/s60_x/keymaps/ansi_qwertz/readme.md | 4 ++-- keyboards/satan/keymaps/denolfe/README.md | 2 +- keyboards/satan/keymaps/denolfe/keyboard-layout.png | Bin 31762 -> 0 bytes keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png | Bin 66567 -> 0 bytes keyboards/tv44/keymaps/smt/readme.md | 2 +- keyboards/xd60/keymaps/cheese/README.md | 4 ++-- keyboards/xd60/keymaps/cheese/base_layout.png | Bin 23729 -> 0 bytes keyboards/xd60/keymaps/cheese/fn_layout.png | Bin 20690 -> 0 bytes 58 files changed, 44 insertions(+), 35 deletions(-) delete mode 100644 keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/adore-layer.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/base-layer.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/heatmap.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/hun-layer.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png delete mode 100644 keyboards/ergodox/keymaps/algernon/images/steno-layer.png delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png delete mode 100755 keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png delete mode 100755 keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png delete mode 100755 keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png delete mode 100644 keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png delete mode 100644 keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png delete mode 100644 keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png delete mode 100644 keyboards/ergodox/keymaps/msc/img/code_layer.png delete mode 100644 keyboards/ergodox/keymaps/msc/img/main_layer.png delete mode 100644 keyboards/ergodox/keymaps/msc/img/media_layer.png delete mode 100644 keyboards/ergodox/keymaps/supercoder/images/layout.png delete mode 100644 keyboards/ergodox/keymaps/videck/videck.png delete mode 100644 keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png delete mode 100644 keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png delete mode 100644 keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png delete mode 100644 keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png delete mode 100644 keyboards/kinesis/alvicstep/docs/schematic.png delete mode 100644 keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png delete mode 100644 keyboards/lets_split/imgs/split-keyboard-serial-schematic.png delete mode 100644 keyboards/planck/keymaps/ab/keyboard-layout.png delete mode 100644 keyboards/planck/keymaps/dbroqua/layout.png delete mode 100644 keyboards/planck/keymaps/johannes/planck-layout.png delete mode 100644 keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png delete mode 100644 keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png delete mode 100644 keyboards/satan/keymaps/denolfe/keyboard-layout.png delete mode 100644 keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png delete mode 100644 keyboards/xd60/keymaps/cheese/base_layout.png delete mode 100644 keyboards/xd60/keymaps/cheese/fn_layout.png (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png b/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png deleted file mode 100644 index 66b9752eb..000000000 Binary files a/keyboards/ergodox/ez/keymaps/profet_80/ergodox80.png and /dev/null differ diff --git a/keyboards/ergodox/ez/keymaps/profet_80/readme.md b/keyboards/ergodox/ez/keymaps/profet_80/readme.md index b6bbb86d2..7380e3465 100644 --- a/keyboards/ergodox/ez/keymaps/profet_80/readme.md +++ b/keyboards/ergodox/ez/keymaps/profet_80/readme.md @@ -7,4 +7,4 @@ If you own an 80 key Ergodox, use this as an example to get your desired keymap. **NOTE:** This layout is not physically supported by the Ergodox EZ. -![Default80](ergodox80.png) +![Default80](https://i.imgur.com/P2Lga9x.png) diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png deleted file mode 100644 index f6c64ca64..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png deleted file mode 100644 index 5bd0611f6..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/base-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/images/heatmap.png b/keyboards/ergodox/keymaps/algernon/images/heatmap.png deleted file mode 100644 index 4f55c5adf..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/heatmap.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox/keymaps/algernon/images/hun-layer.png deleted file mode 100644 index 104a9544d..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/hun-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png b/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png deleted file mode 100644 index 16d29e124..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png deleted file mode 100644 index 9a2ba55ef..000000000 Binary files a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index 3783eadf1..4c1fb15ff 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md @@ -34,7 +34,7 @@ Some of the things in the layout only work when one uses [Spacemacs][spacemacs] ## Base layer -[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) +[![Base layer](https://i.imgur.com/q1MDvq4.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) At its core, this is a Dvorak layout, with some minor changes. The more interesting parts are how certain keys behave: @@ -62,7 +62,7 @@ The symbols on the front in the image above have the same color as the key that ## ADORE layer -[![ADORE layer](images/adore-layer.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a) +[![ADORE layer](https://i.imgur.com/r3LnQAA.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a) My experimental layout, that I keep tweaking. No full description here, because things are very much in flux. @@ -70,7 +70,7 @@ Note that the **HUN** layer does not work well with ADORE: it still has the same ## Steno layer -[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) +[![Steno layer for Plover](https://i.imgur.com/PgifhBF.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. @@ -110,7 +110,7 @@ Included with the firmware is a small tool that can parse these logs, and create The generated heatmap looks somewhat like this: - ![Heatmap](images/heatmap.png) + ![Heatmap](https://i.imgur.com/tly9XSy.png) ## Layer notification @@ -144,3 +144,6 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the # License The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. + +![nav-n-media-layer.png](https://i.imgur.com/AReX8C9.png) +![hun-layer.png](https://i.imgur.com/uPGBl9J.png) \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png deleted file mode 100644 index 273a49778..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png deleted file mode 100644 index 5adb7ac77..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png deleted file mode 100644 index 5930e38ac..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png deleted file mode 100644 index 0c6473abb..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png deleted file mode 100644 index 4488e1b37..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md index c839f99c9..6ae5299d8 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/readme.md +++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md @@ -13,7 +13,7 @@ All layer images created using [keyboard-layout-editor](http://www.keyboard-layo ## Base layer -[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) +[![Base layer](https://i.imgur.com/PGhP2jZ.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) The base layer here is marked with the us international alt-gr layout, including characters bound to what on an iso keyboard would be alt-gr @@ -34,7 +34,7 @@ type in the unicode hex value, and hit enter. ## Layer 1 - Symbols and RGB -[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) +[![Layer 1 - Symbols and RGB](https://i.imgur.com/SfkkU5D.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) The Symbols and RGB layer contains function keys, commonly used symbols, a numpad and if you have the new Ergodox Ez shine keys for @@ -43,7 +43,7 @@ and a down key for easy scrolling. RGB controller keys are yellow. ## Layer 2 - Media, Mouse and Navigation -[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) +[![Layer 2 - Media, Mouse and Navigation](https://i.imgur.com/UwPHjCO.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) The Media, Mouse and unicode layer contains special keys for moving the mouse and clicking on it with the keyboard. In addition it @@ -51,13 +51,13 @@ provides standard media control keys, and default arrow keys. ## Layer 3 - Unicode -[![Layer 3 - Unicode](images/deadcyclo-layer-3-unicode.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) +[![Layer 3 - Unicode](https://i.imgur.com/HRkeY8j.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) The unicode layer provides keys for directly typing unicode (utf-8) ## Layer 4 - Unicode 2 -[![Layer 43 - Unicode](images/deadcyclo-layer-4-unicode-2.png)](http://www.keyboard-layout-editor.com/#/gists/7b2241110ab8311d9668a0798f3baf4a) +[![Layer 43 - Unicode](https://i.imgur.com/dyB459q.png)](http://www.keyboard-layout-editor.com/#/gists/7b2241110ab8311d9668a0798f3baf4a) The unicode 2 layer provides keys for directly typing unicode (utf-8) diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png deleted file mode 100755 index e6aec35bf..000000000 Binary files a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png deleted file mode 100755 index 69a1f6948..000000000 Binary files a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png b/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png deleted file mode 100755 index 8b2cce5e6..000000000 Binary files a/keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/ishigoya-jp/readme.md b/keyboards/ergodox/keymaps/ishigoya-jp/readme.md index 9ee557335..839fe978d 100644 --- a/keyboards/ergodox/keymaps/ishigoya-jp/readme.md +++ b/keyboards/ergodox/keymaps/ishigoya-jp/readme.md @@ -8,7 +8,7 @@ The system I created this on is a Chromebook, and uses a Japanese keymap, so som #### English layer - layer 0 The English layout is a modified Workman layout, and is pictured below: -![English layout](img/keyboard-layout-enL.png) +![English layout](https://i.imgur.com/X1j2Mya.png) Some of the punctuation keys have been moved to a separate number/symbol layer. @@ -16,7 +16,7 @@ Some of the punctuation keys have been moved to a separate number/symbol layer. The Number / Symbol layer is reachable through a ACTION_LAYER_MOMENTARY function. The blue LED is illuminated when this layer is active. It is accessible from the English or Japanese layers. -![Number layout](img/keyboard-layout-numL.png) +![Number layout](https://i.imgur.com/oNSNXPU.png) #### Japanese layers - layers 1-5 @@ -24,7 +24,7 @@ There are 5 layers involved in Japanese input. The TOJPLOUT macro is mapped to t On keypress, strings of romaji characters are output by the keyboard using macros, and these simulate the input of individual keys on a latin keyboard. -![Japanese layout](img/keyboard-layout-jpL.png) +![Japanese layout](https://i.imgur.com/qMvt92j.png) Layer 1 is the JP layer. Keys on this layer correspond to singleton keys, or keys on the bottom row where a key is shared. For example, pressing the "ふ や" key outputs `ふ` (or "fu"). diff --git a/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png deleted file mode 100644 index 06f63c496..000000000 Binary files a/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png deleted file mode 100644 index 4dd718278..000000000 Binary files a/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png deleted file mode 100644 index ee224cf0c..000000000 Binary files a/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/jacobono/readme.md b/keyboards/ergodox/keymaps/jacobono/readme.md index 48de0509f..f977054ef 100644 --- a/keyboards/ergodox/keymaps/jacobono/readme.md +++ b/keyboards/ergodox/keymaps/jacobono/readme.md @@ -2,7 +2,7 @@ I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. -![default-layer](img/colemak-default-layer.png) +![default-layer](https://i.imgur.com/7uRqlWw.png) ## Special Keys ## @@ -23,7 +23,7 @@ Just have the same button to toggle back to colemak. # Symbol Layer # -![symbol-layer](img/symbol-layer.png) +![symbol-layer](https://i.imgur.com/ppT0rIU.png) This is just putting matching closing symbols next to each other -- useful when editing lisp. @@ -31,4 +31,4 @@ This is just putting matching closing symbols next to each other -- useful when Just a basic number layer with a D-PAD on the other side. -![number-dpad-layer](img/number-dpad-layer.png) +![number-dpad-layer](https://i.imgur.com/Q0VHfyq.png) diff --git a/keyboards/ergodox/keymaps/msc/img/code_layer.png b/keyboards/ergodox/keymaps/msc/img/code_layer.png deleted file mode 100644 index 7b5efaae7..000000000 Binary files a/keyboards/ergodox/keymaps/msc/img/code_layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/msc/img/main_layer.png b/keyboards/ergodox/keymaps/msc/img/main_layer.png deleted file mode 100644 index 65f92dda1..000000000 Binary files a/keyboards/ergodox/keymaps/msc/img/main_layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/msc/img/media_layer.png b/keyboards/ergodox/keymaps/msc/img/media_layer.png deleted file mode 100644 index a69799b07..000000000 Binary files a/keyboards/ergodox/keymaps/msc/img/media_layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/msc/readme.md b/keyboards/ergodox/keymaps/msc/readme.md index 0d14fcbd2..ff24d2b68 100644 --- a/keyboards/ergodox/keymaps/msc/readme.md +++ b/keyboards/ergodox/keymaps/msc/readme.md @@ -6,15 +6,15 @@ ### Main Layer -![Main Layer](img/main_layer.png) +![Main Layer](https://i.imgur.com/n1Bl4R3.png) ### Code Layer -![Code Layer](img/code_layer.png) +![Code Layer](https://i.imgur.com/1B0vfpG.png) ### Media Layer -![Media Layer](img/media_layer.png) +![Media Layer](https://i.imgur.com/CGPyOfj.png) ## Changelog diff --git a/keyboards/ergodox/keymaps/supercoder/images/layout.png b/keyboards/ergodox/keymaps/supercoder/images/layout.png deleted file mode 100644 index c72958c6e..000000000 Binary files a/keyboards/ergodox/keymaps/supercoder/images/layout.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md index df39ac7a9..f26aaadd9 100644 --- a/keyboards/ergodox/keymaps/supercoder/readme.md +++ b/keyboards/ergodox/keymaps/supercoder/readme.md @@ -11,7 +11,7 @@ never seen before! Behold the Ultimate SuperCoder 2000 layout! -![SuperCoder layout](images/layout.png) +![SuperCoder layout](https://i.imgur.com/Ymzlr9G.png) ### To use it... diff --git a/keyboards/ergodox/keymaps/videck/readme.md b/keyboards/ergodox/keymaps/videck/readme.md index 759e81bac..35d20b6ce 100644 --- a/keyboards/ergodox/keymaps/videck/readme.md +++ b/keyboards/ergodox/keymaps/videck/readme.md @@ -22,3 +22,5 @@ especially considered. * Shift lock is indicated using first LED. * Arrow keys layer is indicated using second LED. * Mouse keys layer is indicated using third LED. + +![videck.png](https://i.imgur.com/kw0CwuB.png) \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/videck/videck.png b/keyboards/ergodox/keymaps/videck/videck.png deleted file mode 100644 index c99323f53..000000000 Binary files a/keyboards/ergodox/keymaps/videck/videck.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png deleted file mode 100644 index d1cb1987c..000000000 Binary files a/keyboards/ergodox/keymaps/win10_writers-block/images/base-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png deleted file mode 100644 index c2019da4e..000000000 Binary files a/keyboards/ergodox/keymaps/win10_writers-block/images/media-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png deleted file mode 100644 index f866d3d55..000000000 Binary files a/keyboards/ergodox/keymaps/win10_writers-block/images/rimworld-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png b/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png deleted file mode 100644 index 6f49aae79..000000000 Binary files a/keyboards/ergodox/keymaps/win10_writers-block/images/symbol-layer.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/readme.md b/keyboards/ergodox/keymaps/win10_writers-block/readme.md index 83f91bce2..cb135b443 100644 --- a/keyboards/ergodox/keymaps/win10_writers-block/readme.md +++ b/keyboards/ergodox/keymaps/win10_writers-block/readme.md @@ -41,7 +41,7 @@ Feel free to modify the gaming layer to your personal taste. ## Base layer -[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1) +[![Base layer](https://i.imgur.com/1PTR0SG.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1) This is a QWERTY layout with some quirks. @@ -59,7 +59,7 @@ This is a QWERTY layout with some quirks. ## Symbol layer -[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4) +[![Symbol layer](https://i.imgur.com/8nEzpcp.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4) Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys. @@ -68,7 +68,7 @@ Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM ke ## Rimworld layer -[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace) +[![Rimworld / Gaming Layer](https://i.imgur.com/Yh3eBjJ.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace) This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam. @@ -76,7 +76,7 @@ This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Syl ## Media layer -[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3) +[![Media layer](https://i.imgur.com/r5ysFy1.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3) This is the standard Ergodox EZ media layout with more options for mouseclick buttons. diff --git a/keyboards/kinesis/alvicstep/docs/readme.txt b/keyboards/kinesis/alvicstep/docs/readme.txt index af33ac490..6b4abbf3d 100644 --- a/keyboards/kinesis/alvicstep/docs/readme.txt +++ b/keyboards/kinesis/alvicstep/docs/readme.txt @@ -21,6 +21,8 @@ PB6 27 c7 LC DL BS RC EN SP h j k l ;: '" PB7 28 c8 RA PU PD n m ,< .> /? RS */ +schematic: +https://i.imgur.com/cCmWH4E.png 40 pin connector diff --git a/keyboards/kinesis/alvicstep/docs/schematic.png b/keyboards/kinesis/alvicstep/docs/schematic.png deleted file mode 100644 index fa9405a1f..000000000 Binary files a/keyboards/kinesis/alvicstep/docs/schematic.png and /dev/null differ diff --git a/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png b/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png deleted file mode 100644 index 888294718..000000000 Binary files a/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png and /dev/null differ diff --git a/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png b/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png deleted file mode 100644 index 7621d38ed..000000000 Binary files a/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png and /dev/null differ diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index 7e5a54602..32a1c3ef1 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -90,11 +90,11 @@ and modify the `matrix.c` accordingly. The wiring for serial: -![serial wiring](imgs/split-keyboard-serial-schematic.png) +![serial wiring](https://i.imgur.com/C3D1GAQ.png) The wiring for i2c: -![i2c wiring](imgs/split-keyboard-i2c-schematic.png) +![i2c wiring](https://i.imgur.com/Hbzhc6E.png) The pull-up resistors may be placed on either half. It is also possible to use 4 resistors and have the pull-ups in both halves, but this is diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png deleted file mode 100644 index 70e4c2bd4..000000000 Binary files a/keyboards/planck/keymaps/ab/keyboard-layout.png and /dev/null differ diff --git a/keyboards/planck/keymaps/ab/readme.md b/keyboards/planck/keymaps/ab/readme.md index 94f930500..dc8b374bc 100644 --- a/keyboards/planck/keymaps/ab/readme.md +++ b/keyboards/planck/keymaps/ab/readme.md @@ -1,7 +1,7 @@ # Practical keymap for Planck Ortholinear 40% Mechanical Keyboard A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. -![Layout](keyboard-layout.png "Practical Keymap") +![Layout](https://i.imgur.com/xnlaiZd.png "Practical Keymap") ![Photo](keyboard-photo.jpg "Planck Keyboard") * Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/bda299020baaafe6a2a4a82e615e3cfc diff --git a/keyboards/planck/keymaps/circuit/Readme.md b/keyboards/planck/keymaps/circuit/Readme.md index cbdf5de4e..58ea0140f 100644 --- a/keyboards/planck/keymaps/circuit/Readme.md +++ b/keyboards/planck/keymaps/circuit/Readme.md @@ -42,3 +42,5 @@ Open the `Makefile` and set `TAP_DANCE_ENABLE = no`. I wrote the layout to compe * `ALT` and `GUI` are reversed compared to the normal US layout. I will also be using my Planck on my mac, and that's the standard in the Apple ecosystem. I may add a special compiler flag in the future to swap the two. * The DVORAK `Z` key is to the right of the `S` key instead of under it as part of a compromise I made to keep the ARROW keys available on the default layer. I prioritize the ARROW keys, so the DVORAK layout is the one to suffer. * I also support the little tones that the default Planck layout features, identical to them too, (minus those for layouts I don't support). To enable it, open the `Makefile` and set `AUDIO_ENABLE = yes`. + +![keyboard-layout](https://i.imgur.com/HHSZSQq.png) diff --git a/keyboards/planck/keymaps/dbroqua/layout.png b/keyboards/planck/keymaps/dbroqua/layout.png deleted file mode 100644 index 37b74cdc5..000000000 Binary files a/keyboards/planck/keymaps/dbroqua/layout.png and /dev/null differ diff --git a/keyboards/planck/keymaps/dbroqua/readme.md b/keyboards/planck/keymaps/dbroqua/readme.md index 777c76abd..090af649e 100644 --- a/keyboards/planck/keymaps/dbroqua/readme.md +++ b/keyboards/planck/keymaps/dbroqua/readme.md @@ -1,6 +1,6 @@ # Dbroqua Layout -![Layout](layout.png "Dbroqua Keymap") +![Layout](https://i.imgur.com/XxBtDBy.png "Dbroqua Keymap") * Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/e77306f9d14cc93fa26123b93b106474 * Online keyboard layout editor (lower layer): http://www.keyboard-layout-editor.com/#/gists/786e03f6fbd274cb4f4e77a3d67f85fa diff --git a/keyboards/planck/keymaps/johannes/planck-layout.png b/keyboards/planck/keymaps/johannes/planck-layout.png deleted file mode 100644 index e863b802c..000000000 Binary files a/keyboards/planck/keymaps/johannes/planck-layout.png and /dev/null differ diff --git a/keyboards/planck/keymaps/johannes/readme.md b/keyboards/planck/keymaps/johannes/readme.md index bbb7accf8..c9c7e3080 100644 --- a/keyboards/planck/keymaps/johannes/readme.md +++ b/keyboards/planck/keymaps/johannes/readme.md @@ -1,6 +1,6 @@ # Planck layout for Swedish programmer I.e. easy access to special keys and åäö. -![layout](planck-layout.png) +![layout](https://i.imgur.com/74wHmDh.png) [KBLE link](http://www.keyboard-layout-editor.com/#/gists/dc01cc2225899308a05ba3ef0031548b) diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png deleted file mode 100644 index 168780c82..000000000 Binary files a/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png deleted file mode 100644 index 875eb3652..000000000 Binary files a/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/readme.md b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md index b22010612..6e9e2cda6 100644 --- a/keyboards/s60_x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md @@ -24,12 +24,12 @@ one can also use AltGr to input the characters as intended by the US-Intl layout The illustration below shows the "US International" layout available in the Language settings of Windows, Linux and Mac OS. -![KB_US-International](docs/KB_US-International.png) +![KB_US-International](https://i.imgur.com/dBQ9dOo.png) Not all languages are supported by this layout. Linux also offers the "US International Alternative" layout, which contains more dead keys to input pretty much every diacritic character in a language using latin letters. More information can be found [here](http://web.archive.org/web/20160818101234/http://dry.sailingissues.com/us-international-keyboard-layout.html). -![KB_US-International-Alternative](docs/KB_US-International-Alternative.png) +![KB_US-International-Alternative](https://i.imgur.com/CaLuEUP.png) ####0.0.0 Explicitly Supported Languages * German diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/satan/keymaps/denolfe/README.md index 30b94fcdd..147ea4288 100644 --- a/keyboards/satan/keymaps/denolfe/README.md +++ b/keyboards/satan/keymaps/denolfe/README.md @@ -1,7 +1,7 @@ # denolfe's Layout Customized Satan keymap -![Layout](keyboard-layout.png "Practical Keymap") +![Layout](https://i.imgur.com/IrSUSMR.png "Practical Keymap") ## Programming Instructions: `cd` into keymap directory, `make dfu` diff --git a/keyboards/satan/keymaps/denolfe/keyboard-layout.png b/keyboards/satan/keymaps/denolfe/keyboard-layout.png deleted file mode 100644 index d6d6ad57f..000000000 Binary files a/keyboards/satan/keymaps/denolfe/keyboard-layout.png and /dev/null differ diff --git a/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png b/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png deleted file mode 100644 index 2dca67fb6..000000000 Binary files a/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png and /dev/null differ diff --git a/keyboards/tv44/keymaps/smt/readme.md b/keyboards/tv44/keymaps/smt/readme.md index 647eb8976..87bfbb04b 100644 --- a/keyboards/tv44/keymaps/smt/readme.md +++ b/keyboards/tv44/keymaps/smt/readme.md @@ -6,7 +6,7 @@ I had been using something close to the default Minivan layout, but after spendi Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key, so I had to define a new KEYMAP_TV45 macro in config.h. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know. -![smt's TV44 keymap](keyboard-layout-minivan.png) +![smt's TV44 keymap](https://i.imgur.com/Y4n6eHj.png) ## Notable features (most of which can be found in my or jeebak's respective keymap file): diff --git a/keyboards/xd60/keymaps/cheese/README.md b/keyboards/xd60/keymaps/cheese/README.md index 8a5b97c03..04ff5c421 100644 --- a/keyboards/xd60/keymaps/cheese/README.md +++ b/keyboards/xd60/keymaps/cheese/README.md @@ -1,8 +1,8 @@ # cheese's Layout Customized xd60 keymap -![Base Layout](base_layout.png "Base Layout") -![Fn Layout](fn_layout.png "Fn Layout") +![Base Layout](https://i.imgur.com/oSg0DPf.png "Base Layout") +![Fn Layout](https://i.imgur.com/kOOQgVx.png "Fn Layout") ## Programming Instructions: `cd` into keymap directory, `make dfu` diff --git a/keyboards/xd60/keymaps/cheese/base_layout.png b/keyboards/xd60/keymaps/cheese/base_layout.png deleted file mode 100644 index 211c4c731..000000000 Binary files a/keyboards/xd60/keymaps/cheese/base_layout.png and /dev/null differ diff --git a/keyboards/xd60/keymaps/cheese/fn_layout.png b/keyboards/xd60/keymaps/cheese/fn_layout.png deleted file mode 100644 index fe5ae99e0..000000000 Binary files a/keyboards/xd60/keymaps/cheese/fn_layout.png and /dev/null differ -- cgit v1.2.3-24-g4f1b From 23c448b21d050cc1f9e9907ce9f6569d9b6c879b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 11 Jun 2017 22:16:42 -0400 Subject: remove .hex, .PNG, .jpg --- keyboards/ergodox/keymaps/alexjj/readme.md | 2 +- keyboards/ergodox/keymaps/alexjj/rl-layout.jpg | Bin 833107 -> 0 bytes .../colemak_programmer/colemak_programmer_001.jpg | Bin 301259 -> 0 bytes .../colemak_programmer/colemak_programmer_002.jpg | Bin 235864 -> 0 bytes .../ergodox/keymaps/colemak_programmer/readme.md | 4 ++-- .../keymaps/supercoder/images/supercoder_2000.jpg | Bin 75444 -> 0 bytes keyboards/ergodox/keymaps/supercoder/readme.md | 2 +- keyboards/gh60/gh60revc.jpg | Bin 1424987 -> 0 bytes keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg | Bin 1038926 -> 0 bytes keyboards/gh60/keymaps/robotmaxtron/readme.md | 2 +- keyboards/gh60/keymaps/unxmaal/README.md | 2 ++ keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg | Bin 1038926 -> 0 bytes keyboards/gh60/readme.md | 2 +- keyboards/handwired/minorca/keymaps/rgb/example.jpg | Bin 72737 -> 0 bytes keyboards/handwired/minorca/keymaps/rgb/readme.md | 6 +++--- keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg | Bin 119547 -> 0 bytes keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg | Bin 94987 -> 0 bytes keyboards/kc60/keymaps/ws2812/readme.md | 10 +++++----- keyboards/kc60/keymaps/ws2812/ws2812_example.jpg | Bin 226362 -> 0 bytes .../kc60/keymaps/ws2812/ws2812_underside-lit.jpg | Bin 205067 -> 0 bytes keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg | Bin 354124 -> 0 bytes keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg | Bin 347989 -> 0 bytes keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg | Bin 177711 -> 0 bytes keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg | Bin 343978 -> 0 bytes keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg | Bin 266771 -> 0 bytes keyboards/kinesis/alvicstep/docs/readme.txt | 5 +++++ .../kinesis/stapelberg/images/controller_board.jpg | Bin 129312 -> 0 bytes .../kinesis/stapelberg/images/exterior_reset.jpg | Bin 97794 -> 0 bytes keyboards/kinesis/stapelberg/images/teensy_detail.jpg | Bin 119748 -> 0 bytes keyboards/kinesis/stapelberg/readme.md | 3 +++ keyboards/phantom/pinout.jpg | Bin 86118 -> 0 bytes keyboards/phantom/pinout.txt | 2 +- keyboards/planck/keymaps/ab/keyboard-photo.jpg | Bin 252997 -> 0 bytes keyboards/planck/keymaps/ab/readme.md | 2 +- keyboards/planck/keymaps/circuit/keyboard-layout.png | Bin 154368 -> 0 bytes keyboards/planck/keymaps/dshields/keyboard-layout.jpg | Bin 50615 -> 0 bytes keyboards/planck/keymaps/dshields/readme.md | 2 +- keyboards/planck/keymaps/espynn/keyboard-layout.jpg | Bin 53129 -> 0 bytes keyboards/planck/keymaps/espynn/readme.md | 2 +- keyboards/planck/keymaps/jacob/Keyboard Layout.PNG | Bin 17292 -> 0 bytes keyboards/planck/keymaps/jacob/readme.md | 4 +++- keyboards/planck/keymaps/yale/readme.md | 1 + keyboards/planck/keymaps/yale/yale_layout_picture.jpg | Bin 58141 -> 0 bytes keyboards/planck/keymaps/yang/WS2812-wiring.jpg | Bin 290495 -> 0 bytes .../planck/keymaps/yang/planck-with-rgb-underglow.jpg | Bin 343033 -> 0 bytes keyboards/planck/keymaps/yang/readme.md | 2 ++ .../s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG | Bin 29411 -> 0 bytes .../s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG | Bin 25567 -> 0 bytes .../s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG | Bin 17895 -> 0 bytes keyboards/s60_x/keymaps/ansi_qwertz/readme.md | 6 +++--- keyboards/satan/controller.jpg | Bin 140199 -> 0 bytes .../satan/keymaps/iso_split_rshift/LEDpinSatan.jpg | Bin 793980 -> 0 bytes keyboards/satan/keymaps/iso_split_rshift/readme.md | 2 +- keyboards/satan/power.jpg | Bin 433947 -> 0 bytes keyboards/satan/readme.md | 3 +++ keyboards/xd60/readme.md | 2 +- keyboards/xd60/xd60.jpg | Bin 2466209 -> 0 bytes 57 files changed, 42 insertions(+), 24 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/alexjj/rl-layout.jpg delete mode 100644 keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg delete mode 100644 keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg delete mode 100644 keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg delete mode 100644 keyboards/gh60/gh60revc.jpg delete mode 100644 keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg delete mode 100644 keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg delete mode 100644 keyboards/handwired/minorca/keymaps/rgb/example.jpg delete mode 100644 keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg delete mode 100644 keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg delete mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_example.jpg delete mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg delete mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg delete mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg delete mode 100644 keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg delete mode 100644 keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg delete mode 100644 keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg delete mode 100644 keyboards/kinesis/stapelberg/images/controller_board.jpg delete mode 100644 keyboards/kinesis/stapelberg/images/exterior_reset.jpg delete mode 100644 keyboards/kinesis/stapelberg/images/teensy_detail.jpg delete mode 100644 keyboards/phantom/pinout.jpg delete mode 100644 keyboards/planck/keymaps/ab/keyboard-photo.jpg delete mode 100644 keyboards/planck/keymaps/circuit/keyboard-layout.png delete mode 100644 keyboards/planck/keymaps/dshields/keyboard-layout.jpg delete mode 100644 keyboards/planck/keymaps/espynn/keyboard-layout.jpg delete mode 100644 keyboards/planck/keymaps/jacob/Keyboard Layout.PNG create mode 100644 keyboards/planck/keymaps/yale/readme.md delete mode 100644 keyboards/planck/keymaps/yale/yale_layout_picture.jpg delete mode 100644 keyboards/planck/keymaps/yang/WS2812-wiring.jpg delete mode 100644 keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg create mode 100644 keyboards/planck/keymaps/yang/readme.md delete mode 100644 keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG delete mode 100644 keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG delete mode 100644 keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG delete mode 100644 keyboards/satan/controller.jpg delete mode 100644 keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg delete mode 100644 keyboards/satan/power.jpg delete mode 100644 keyboards/xd60/xd60.jpg (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/alexjj/readme.md b/keyboards/ergodox/keymaps/alexjj/readme.md index 239e32d39..4845cbbd9 100644 --- a/keyboards/ergodox/keymaps/alexjj/readme.md +++ b/keyboards/ergodox/keymaps/alexjj/readme.md @@ -22,7 +22,7 @@ the 1st layer - in case of fat fingers. Layout ------- -![Layout](rl-layout.jpg "Isn't it lovely") +![Layout](https://i.imgur.com/4bDwHLS.jpg "Isn't it lovely") ### Base Layer diff --git a/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg deleted file mode 100644 index e4e92bf46..000000000 Binary files a/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg and /dev/null differ diff --git a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg deleted file mode 100644 index de24d9373..000000000 Binary files a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg and /dev/null differ diff --git a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg deleted file mode 100644 index 15f8ec8c4..000000000 Binary files a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg and /dev/null differ diff --git a/keyboards/ergodox/keymaps/colemak_programmer/readme.md b/keyboards/ergodox/keymaps/colemak_programmer/readme.md index db0cc5777..a1544dcc5 100644 --- a/keyboards/ergodox/keymaps/colemak_programmer/readme.md +++ b/keyboards/ergodox/keymaps/colemak_programmer/readme.md @@ -19,5 +19,5 @@ I came to this layout after several iterations. It is not the ultimate best ergo Alternatively view the [graphical creator version](http://configure.ergodox-ez.com/keyboard_layouts/kmevwm/edit) but beware it is not the same due to the creator limitations. -![Default](colemak_programmer_001.jpg) -![Default](colemak_programmer_002.jpg) \ No newline at end of file +![Default](https://i.imgur.com/BCJEoKw.jpg) +![Default](https://i.imgur.com/0P1jBph.jpg) \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg deleted file mode 100644 index d690eaf02..000000000 Binary files a/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg and /dev/null differ diff --git a/keyboards/ergodox/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md index f26aaadd9..e1aa0b00a 100644 --- a/keyboards/ergodox/keymaps/supercoder/readme.md +++ b/keyboards/ergodox/keymaps/supercoder/readme.md @@ -1,7 +1,7 @@ SuperCoder 2000 layout for the ErgoDox ================================================== -![SuperCoder 2000](images/supercoder_2000.jpg) +![SuperCoder 2000](https://i.imgur.com/6dcU9VY.jpg) Ever found yourself in need of entering binary codes rapidly? Ever wanted to use all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only diff --git a/keyboards/gh60/gh60revc.jpg b/keyboards/gh60/gh60revc.jpg deleted file mode 100644 index 6c88ad244..000000000 Binary files a/keyboards/gh60/gh60revc.jpg and /dev/null differ diff --git a/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg b/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg deleted file mode 100644 index 4ab8cc31a..000000000 Binary files a/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg and /dev/null differ diff --git a/keyboards/gh60/keymaps/robotmaxtron/readme.md b/keyboards/gh60/keymaps/robotmaxtron/readme.md index 3e2292500..8db7b3f65 100644 --- a/keyboards/gh60/keymaps/robotmaxtron/readme.md +++ b/keyboards/gh60/keymaps/robotmaxtron/readme.md @@ -10,7 +10,7 @@ For the full Quantum feature list, see the parent readme.md. * Neopixel/WS2812 RGB Underglow Support ## Reference Images -![Wiring Refererence] (WS2812-wiring.jpg) +![Wiring Refererence](https://i.imgur.com/BkJ39JD.jpg) ### Additional Credits Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. diff --git a/keyboards/gh60/keymaps/unxmaal/README.md b/keyboards/gh60/keymaps/unxmaal/README.md index 52bf97ef4..6c08bbb10 100644 --- a/keyboards/gh60/keymaps/unxmaal/README.md +++ b/keyboards/gh60/keymaps/unxmaal/README.md @@ -18,3 +18,5 @@ For the full Quantum feature list, see the parent readme.md. ### Additional Credits Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. + +![wiring](https://i.imgur.com/8b8T1fQ.jpg) \ No newline at end of file diff --git a/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg b/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg deleted file mode 100644 index 4ab8cc31a..000000000 Binary files a/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg and /dev/null differ diff --git a/keyboards/gh60/readme.md b/keyboards/gh60/readme.md index 8c744bfd3..bbb0b6e19 100644 --- a/keyboards/gh60/readme.md +++ b/keyboards/gh60/readme.md @@ -1,6 +1,6 @@ ## gh60 Rev C keyboard firmware -![gh60 Rev C PCB](gh60revc.jpg) +![gh60 Rev C PCB](https://i.imgur.com/FejpoNF.jpg) /* Column pin configuration * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 diff --git a/keyboards/handwired/minorca/keymaps/rgb/example.jpg b/keyboards/handwired/minorca/keymaps/rgb/example.jpg deleted file mode 100644 index a04c8d37d..000000000 Binary files a/keyboards/handwired/minorca/keymaps/rgb/example.jpg and /dev/null differ diff --git a/keyboards/handwired/minorca/keymaps/rgb/readme.md b/keyboards/handwired/minorca/keymaps/rgb/readme.md index f50dfa546..ec3b4f00f 100644 --- a/keyboards/handwired/minorca/keymaps/rgb/readme.md +++ b/keyboards/handwired/minorca/keymaps/rgb/readme.md @@ -1,6 +1,6 @@ #RGB backlight for MinOrca -![wiring](example.jpg) +![wiring](https://i.imgur.com/jyYyiSS.jpg) Example of adding WS2812b LEDs to a MinOrca. @@ -21,5 +21,5 @@ Example wiring: WS2812 data pin is connected to D5 -![wiring](wiring1.jpg) -![wiring closeup](wiring2.jpg) +![wiring](https://i.imgur.com/CFBf71F.jpg) +![wiring closeup](https://i.imgur.com/VJogRoj.jpg) diff --git a/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg b/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg deleted file mode 100644 index 7dcbe80c5..000000000 Binary files a/keyboards/handwired/minorca/keymaps/rgb/wiring1.jpg and /dev/null differ diff --git a/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg b/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg deleted file mode 100644 index fd91d3e1c..000000000 Binary files a/keyboards/handwired/minorca/keymaps/rgb/wiring2.jpg and /dev/null differ diff --git a/keyboards/kc60/keymaps/ws2812/readme.md b/keyboards/kc60/keymaps/ws2812/readme.md index 5588fd2d9..49357a0f5 100644 --- a/keyboards/kc60/keymaps/ws2812/readme.md +++ b/keyboards/kc60/keymaps/ws2812/readme.md @@ -1,21 +1,21 @@ KC60 with WS2812 RGB Underglow ====================== -![Image of KC60 with RGB Underglow](ws2812_example.jpg) +![Image of KC60 with RGB Underglow](https://i.imgur.com/LpUkVqG.jpg) ## Quantum MK Firmware For the full Quantum feature list, see [the parent readme.md](/readme.md). ## WS2812 Support -By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](ws2812_wiring.jpg) for wiring reference. +By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](https://i.imgur.com/TcKL2Sn.jpg) for wiring reference. ### Build To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`. ### Reference Images -![Wiring Reference](ws2812_wiring.jpg) -![RGB Strip turned on](ws2812_underside-lit.jpg) -![RGB Strip turned off](ws2812_underside.jpg) +![Wiring Reference](https://i.imgur.com/TcKL2Sn.jpg) +![RGB Strip turned on](https://i.imgur.com/21POu4l.jpg) +![RGB Strip turned off](https://i.imgur.com/vAOLYNV.jpg) ### Additional Credits Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan. diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg deleted file mode 100644 index 5c62cfded..000000000 Binary files a/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg and /dev/null differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg deleted file mode 100644 index 2eab21433..000000000 Binary files a/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg and /dev/null differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg deleted file mode 100644 index 159d63904..000000000 Binary files a/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg and /dev/null differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg deleted file mode 100644 index 61b749b66..000000000 Binary files a/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg and /dev/null differ diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg deleted file mode 100644 index 027ab9efb..000000000 Binary files a/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg and /dev/null differ diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg deleted file mode 100644 index d49c492b8..000000000 Binary files a/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg and /dev/null differ diff --git a/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg deleted file mode 100644 index 50cc9897c..000000000 Binary files a/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg and /dev/null differ diff --git a/keyboards/kinesis/alvicstep/docs/readme.txt b/keyboards/kinesis/alvicstep/docs/readme.txt index 6b4abbf3d..b65ac7714 100644 --- a/keyboards/kinesis/alvicstep/docs/readme.txt +++ b/keyboards/kinesis/alvicstep/docs/readme.txt @@ -24,6 +24,11 @@ PB7 28 c8 RA PU PD n m ,< .> /? RS schematic: https://i.imgur.com/cCmWH4E.png +photos: +https://i.imgur.com/xiaE4tk.jpg +https://i.imgur.com/PQ1y2vS.jpg +https://i.imgur.com/OoQvgfA.jpg + 40 pin connector DL2 1 40 VCC diff --git a/keyboards/kinesis/stapelberg/images/controller_board.jpg b/keyboards/kinesis/stapelberg/images/controller_board.jpg deleted file mode 100644 index b18f76f7e..000000000 Binary files a/keyboards/kinesis/stapelberg/images/controller_board.jpg and /dev/null differ diff --git a/keyboards/kinesis/stapelberg/images/exterior_reset.jpg b/keyboards/kinesis/stapelberg/images/exterior_reset.jpg deleted file mode 100644 index 6edda8130..000000000 Binary files a/keyboards/kinesis/stapelberg/images/exterior_reset.jpg and /dev/null differ diff --git a/keyboards/kinesis/stapelberg/images/teensy_detail.jpg b/keyboards/kinesis/stapelberg/images/teensy_detail.jpg deleted file mode 100644 index 12e6c1c8a..000000000 Binary files a/keyboards/kinesis/stapelberg/images/teensy_detail.jpg and /dev/null differ diff --git a/keyboards/kinesis/stapelberg/readme.md b/keyboards/kinesis/stapelberg/readme.md index b04a0bd49..1a408a15f 100644 --- a/keyboards/kinesis/stapelberg/readme.md +++ b/keyboards/kinesis/stapelberg/readme.md @@ -53,3 +53,6 @@ This keymap contains a dvorak implementation as well as media and symbol layers. Run `make dvorak` while in the `kinesis_stapelberg` working directory. +![controller board](https://i.imgur.com/2ZPMwvZ.jpg) +![exterior reset](https://i.imgur.com/JNoxI40.jpg) +![teensy detail](https://i.imgur.com/HrkGUjc.jpg) \ No newline at end of file diff --git a/keyboards/phantom/pinout.jpg b/keyboards/phantom/pinout.jpg deleted file mode 100644 index 30b0b8bf4..000000000 Binary files a/keyboards/phantom/pinout.jpg and /dev/null differ diff --git a/keyboards/phantom/pinout.txt b/keyboards/phantom/pinout.txt index 36f044d15..415ad46d9 100644 --- a/keyboards/phantom/pinout.txt +++ b/keyboards/phantom/pinout.txt @@ -1 +1 @@ -For WS2812B LED strip support, connect DIN from strip to PE2 on Teensy (see reference image pinout.jpg) \ No newline at end of file +For WS2812B LED strip support, connect DIN from strip to PE2 on Teensy (see reference image https://i.imgur.com/aDfNoHT.jpg) \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-photo.jpg b/keyboards/planck/keymaps/ab/keyboard-photo.jpg deleted file mode 100644 index 358cb6bca..000000000 Binary files a/keyboards/planck/keymaps/ab/keyboard-photo.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/ab/readme.md b/keyboards/planck/keymaps/ab/readme.md index dc8b374bc..5f52e4436 100644 --- a/keyboards/planck/keymaps/ab/readme.md +++ b/keyboards/planck/keymaps/ab/readme.md @@ -2,7 +2,7 @@ A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. ![Layout](https://i.imgur.com/xnlaiZd.png "Practical Keymap") -![Photo](keyboard-photo.jpg "Planck Keyboard") +![Photo](https://i.imgur.com/1kQPbLv.jpg "Planck Keyboard") * Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/bda299020baaafe6a2a4a82e615e3cfc diff --git a/keyboards/planck/keymaps/circuit/keyboard-layout.png b/keyboards/planck/keymaps/circuit/keyboard-layout.png deleted file mode 100644 index e9296a6d9..000000000 Binary files a/keyboards/planck/keymaps/circuit/keyboard-layout.png and /dev/null differ diff --git a/keyboards/planck/keymaps/dshields/keyboard-layout.jpg b/keyboards/planck/keymaps/dshields/keyboard-layout.jpg deleted file mode 100644 index 142f82130..000000000 Binary files a/keyboards/planck/keymaps/dshields/keyboard-layout.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/dshields/readme.md b/keyboards/planck/keymaps/dshields/readme.md index 447eaae97..6070fd2e9 100644 --- a/keyboards/planck/keymaps/dshields/readme.md +++ b/keyboards/planck/keymaps/dshields/readme.md @@ -8,5 +8,5 @@ one-shot layers, tap-dance keys and dynamic macros. Layout ------- -![Layout](keyboard-layout.jpg "Keyboard Layout") +![Layout](https://i.imgur.com/vZR3c8m.jpg "Keyboard Layout") diff --git a/keyboards/planck/keymaps/espynn/keyboard-layout.jpg b/keyboards/planck/keymaps/espynn/keyboard-layout.jpg deleted file mode 100644 index c5e438f6a..000000000 Binary files a/keyboards/planck/keymaps/espynn/keyboard-layout.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/espynn/readme.md b/keyboards/planck/keymaps/espynn/readme.md index ea84cf955..a7e8f02f4 100644 --- a/keyboards/planck/keymaps/espynn/readme.md +++ b/keyboards/planck/keymaps/espynn/readme.md @@ -3,7 +3,7 @@ Created by James Folkert: https://twitter.com/trekloFsemaJ Added several custom functions to the keymap from the "ab" map. Special thanks to "mollat" for demonstration of macros in their keymap.c -![Layout](keyboard-layout.jpg "Practical Keymap") +![Layout](https://i.imgur.com/PEI4eva.jpg "Practical Keymap") * Online keyboard layout editor: http://www.keyboard-layout-editor.com/ diff --git a/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG b/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG deleted file mode 100644 index 40f0b8942..000000000 Binary files a/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG and /dev/null differ diff --git a/keyboards/planck/keymaps/jacob/readme.md b/keyboards/planck/keymaps/jacob/readme.md index 2a4be4ebc..7ec2d3522 100644 --- a/keyboards/planck/keymaps/jacob/readme.md +++ b/keyboards/planck/keymaps/jacob/readme.md @@ -1 +1,3 @@ -Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +![layout](https://i.imgur.com/YG7xVp8.png) \ No newline at end of file diff --git a/keyboards/planck/keymaps/yale/readme.md b/keyboards/planck/keymaps/yale/readme.md new file mode 100644 index 000000000..5b57450f5 --- /dev/null +++ b/keyboards/planck/keymaps/yale/readme.md @@ -0,0 +1 @@ +![pic](https://i.imgur.com/OmARVcw.jpg) \ No newline at end of file diff --git a/keyboards/planck/keymaps/yale/yale_layout_picture.jpg b/keyboards/planck/keymaps/yale/yale_layout_picture.jpg deleted file mode 100644 index ab9c6b4eb..000000000 Binary files a/keyboards/planck/keymaps/yale/yale_layout_picture.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/yang/WS2812-wiring.jpg b/keyboards/planck/keymaps/yang/WS2812-wiring.jpg deleted file mode 100644 index 2c65cd283..000000000 Binary files a/keyboards/planck/keymaps/yang/WS2812-wiring.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg deleted file mode 100644 index c636b9a83..000000000 Binary files a/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg and /dev/null differ diff --git a/keyboards/planck/keymaps/yang/readme.md b/keyboards/planck/keymaps/yang/readme.md new file mode 100644 index 000000000..e42d9f912 --- /dev/null +++ b/keyboards/planck/keymaps/yang/readme.md @@ -0,0 +1,2 @@ +![rgb](https://i.imgur.com/97E6aSo.jpg) +![wiring](https://i.imgur.com/yL2ybk6.jpg) \ No newline at end of file diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG deleted file mode 100644 index c730c2d65..000000000 Binary files a/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG and /dev/null differ diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG deleted file mode 100644 index fae2439ca..000000000 Binary files a/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG and /dev/null differ diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG deleted file mode 100644 index 59b202be2..000000000 Binary files a/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG and /dev/null differ diff --git a/keyboards/s60_x/keymaps/ansi_qwertz/readme.md b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md index 6e9e2cda6..7fab63b73 100644 --- a/keyboards/s60_x/keymaps/ansi_qwertz/readme.md +++ b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md @@ -77,17 +77,17 @@ If you don't want this to be the case, uncomment the following line in `keymap.c The base layer is shown here for ANSI keysm, HHKB-style right shift and split backspace. If you use a 2U backspace key there, `Del` will not be available. Again, the Y and Z keys are swapped, so you get the QWERTZ-positions of Y and Z when using the US-International layout. -![base_layer](docs/base_layer.PNG) +![base_layer](https://i.imgur.com/gDvJT2n.png) ###1.1 Gaming layer To turn this layer on, please use the combination `Fn+RShift`, not `Space+RShift`. If you do the latter, the Function layer will become stuck. You can press `Fn` once to unstick it if this happens to you. A solution is being worked on. -![gaming_layer](docs/gaming_layer.PNG) +![gaming_layer](https://i.imgur.com/mPBElHc.png) ###1.2 Function Layer This is the function layer for German diacritics. It can be accessed via the `Fn` or by holding `Space` on the base layer. -![function_layer](docs/function_layer.PNG) +![function_layer](https://i.imgur.com/abpqBDE.png) diff --git a/keyboards/satan/controller.jpg b/keyboards/satan/controller.jpg deleted file mode 100644 index 76ffa4500..000000000 Binary files a/keyboards/satan/controller.jpg and /dev/null differ diff --git a/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg b/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg deleted file mode 100644 index 7616693f9..000000000 Binary files a/keyboards/satan/keymaps/iso_split_rshift/LEDpinSatan.jpg and /dev/null differ diff --git a/keyboards/satan/keymaps/iso_split_rshift/readme.md b/keyboards/satan/keymaps/iso_split_rshift/readme.md index ec6123d8a..480491f5a 100644 --- a/keyboards/satan/keymaps/iso_split_rshift/readme.md +++ b/keyboards/satan/keymaps/iso_split_rshift/readme.md @@ -31,6 +31,6 @@ in the default qwertz layout * Keymap has been based on TerryMathews' fork of Aqoush's fork of qmk-satan-rgb. [here](https://github.com/TerryMathews/qmk-satan-rgb/tree/master/keyboard/satan) * nice visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) * no-need-to-solder-on-chip picture: -![no need to solder directly on the chip anymore](LEDpinSatan.jpg) +![no need to solder directly on the chip anymore](https://i.imgur.com/AitpDoB.jpg) * special thanks to /u/TerryMathews who suggested the pin PB2, so soldering directly on the atmega is not needed anymore. Happened on [reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/4ghq9z/photos_satan_rgb60_w1976/d2k5tra) diff --git a/keyboards/satan/power.jpg b/keyboards/satan/power.jpg deleted file mode 100644 index 0514eef5c..000000000 Binary files a/keyboards/satan/power.jpg and /dev/null differ diff --git a/keyboards/satan/readme.md b/keyboards/satan/readme.md index aaf189746..1fd388935 100644 --- a/keyboards/satan/readme.md +++ b/keyboards/satan/readme.md @@ -2,3 +2,6 @@ Satan GH60 keyboard firmware ====================== TODO: to be updated. + +![controller](https://i.imgur.com/9vyRBoT.jpg) +![power](https://i.imgur.com/pHMZHLP.jpg) \ No newline at end of file diff --git a/keyboards/xd60/readme.md b/keyboards/xd60/readme.md index dcc45ead2..1e8e52caa 100644 --- a/keyboards/xd60/readme.md +++ b/keyboards/xd60/readme.md @@ -1,6 +1,6 @@ # QMK Firmware for XIUDI's 60% XD60 PCB -![Top View of a pair of XD60 Keyboard](./xd60.jpg) +![Top View of a pair of XD60 Keyboard](https://i.imgur.com/3Jq2743.jpg) ## Quantum MK Firmware For the full Quantum feature list, see [the parent readme.md](/readme.md). diff --git a/keyboards/xd60/xd60.jpg b/keyboards/xd60/xd60.jpg deleted file mode 100644 index 11654f0fd..000000000 Binary files a/keyboards/xd60/xd60.jpg and /dev/null differ -- cgit v1.2.3-24-g4f1b From a5b5279da91156ed530b43be2cc546df968db6da Mon Sep 17 00:00:00 2001 From: Martin Gondermann Date: Mon, 12 Jun 2017 17:48:01 +0200 Subject: Add MIDI layer to magicmonty keymap (#1386) * Add MIDI layer * Respect brightness level on layer signalling * Add hotkey in control layer for signalling state * Update layout.png * Remove image and replace it with imgur link --- keyboards/clueboard/keymaps/magicmonty/Makefile | 6 ++ keyboards/clueboard/keymaps/magicmonty/config.h | 29 ++++++++ keyboards/clueboard/keymaps/magicmonty/keymap.c | 91 +++++++++++++++++------- keyboards/clueboard/keymaps/magicmonty/readme.md | 8 ++- 4 files changed, 105 insertions(+), 29 deletions(-) create mode 100644 keyboards/clueboard/keymaps/magicmonty/config.h (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/magicmonty/Makefile b/keyboards/clueboard/keymaps/magicmonty/Makefile index 1ae727708..5b798b7fc 100644 --- a/keyboards/clueboard/keymaps/magicmonty/Makefile +++ b/keyboards/clueboard/keymaps/magicmonty/Makefile @@ -1,2 +1,8 @@ + MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes + +MIDI_ENABLE = yes + +# if MIDI_ENABLE is set to yes, then CONSOLE_ENABLE has to be disabled, because of the firmware size +CONSOLE_ENABLE = false diff --git a/keyboards/clueboard/keymaps/magicmonty/config.h b/keyboards/clueboard/keymaps/magicmonty/config.h new file mode 100644 index 000000000..4b2953499 --- /dev/null +++ b/keyboards/clueboard/keymaps/magicmonty/config.h @@ -0,0 +1,29 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on + #define MIDI_BASIC +*/ + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +#define MIDI_TONE_KEYCODE_OCTAVES 2 + +#endif diff --git a/keyboards/clueboard/keymaps/magicmonty/keymap.c b/keyboards/clueboard/keymaps/magicmonty/keymap.c index 6ca843aab..c7847dfb7 100644 --- a/keyboards/clueboard/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/keymaps/magicmonty/keymap.c @@ -3,16 +3,23 @@ // Helpful defines #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define _______ KC_TRNS +#define xxxxxxx KC_NO // 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 _BL 0 -#define _FL 1 -#define _ME 2 -#define _CL 3 -#define _ML 4 +#define _BL 0 // BASE Layer +#define _FL 1 // Function Layer +#define _ME 2 // Media Layer +#define _CL 3 // Control Layer +#define _ML 4 // Mouse Layer +#if defined(MIDI_ENABLE) + #define _MI 5 // MIDI Layer + #define TO_MIDI TO(_MI) +#else + #define TO_MIDI _______ +#endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) @@ -24,17 +31,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, KC_RSFT, KC_UP, \ KC_LCTL, KC_LGUI, KC_LALT, _______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_RALT, MO(_ME), MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), - /* Keymap _FL: Function Layer - */ + /* Keymap _FL: Function Layer */ [_FL] = KEYMAP( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP, \ _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,_______, KC_PAUS, _______, _______, _______, _______, \ MO(_FL), _______, MO(_CL),_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RGHT, _______, _______, _______, _______, \ - _______, _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, _______, KC_PGUP, \ + _______, _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, TO_MIDI, _______, _______, KC_PGUP, \ _______, _______, _______,_______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), - /* Keymap _ME: Media layer - */ + /* Keymap _ME: Media layer */ [_ME] = KEYMAP( _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \ _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_VOLD, \ @@ -42,23 +47,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(_FL), _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, MO(_FL), _______, \ _______, _______, _______,_______, _______,_______, _______, _______, _______, _______, KC_MPRV, KC_MPLY,KC_MNXT), - /* Keymap _CL: Control layer - */ + /* Keymap _CL: Control layer */ [_CL] = KEYMAP( - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, F(1), _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \ _______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), - /* Keymap _ML: Mouse layer - */ + /* Keymap _ML: Mouse layer */ [_ML] = KEYMAP( _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, \ _______, _______, KC_BTN3,KC_BTN2,KC_BTN1,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R, _______, _______, _______, _______, \ _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MS_U, \ _______, _______, _______,_______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_D,KC_MS_R), + +#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) + /* Keymap _MI: MIDI layer (Advanced)*/ + [_MI] = KEYMAP( + TO(_BL),MI_VEL_1,MI_VEL_2,MI_VEL_3,MI_VEL_4,MI_VEL_5,MI_VEL_6,MI_VEL_7,MI_VEL_8,MI_VEL_9,MI_VEL_10, MI_CHD, MI_CHU, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, MI_Cs, MI_Ds, xxxxxxx, MI_Fs, MI_Gs, MI_As, xxxxxxx, MI_Cs_1, MI_Ds_1, xxxxxxx, MI_Fs_1, xxxxxxx, xxxxxxx, \ + MI_MOD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, xxxxxxx, \ + MI_SUS, xxxxxxx, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, MI_TRNSD,MI_TRNSU,MI_TRNS_0, MI_SUS, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, MI_ALLOFF,MI_ALLOFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx), +#elif defined(MIDI_ENABLE) && defined(MIDI_BASIC) + /* Keymap _MI: MIDI layer (Basic)*/ + [_MI] = KEYMAP( + TO(_BL), xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, MI_ON, MI_OFF,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx), +#endif }; /* This is a list of user defined functions. F(N) corresponds to item N @@ -66,6 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(0), // Calls action_function() + [1] = ACTION_FUNCTION(1), // Calls action_function() }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -102,6 +124,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + case 1: + rgblight_mode(1); } } @@ -110,26 +134,34 @@ enum layer_id { LAYER_FUNCTION, LAYER_MEDIA, LAYER_CONTROL, - LAYER_MOUSE + LAYER_MOUSE, +#if defined(MIDI_ENABLE) + LAYER_MIDI +#endif }; -void clueboard_set_led(uint8_t id) { +void clueboard_set_led(uint8_t id, uint8_t val) { switch (id) { case LAYER_BASE: - rgblight_sethsv_noeeprom(346, 0, 255); + rgblight_sethsv_noeeprom(346, 0, val); break; case LAYER_FUNCTION: - rgblight_sethsv_noeeprom(46, 255, 255); + rgblight_sethsv_noeeprom(46, 255, val); break; case LAYER_MEDIA: - rgblight_sethsv_noeeprom(86, 255, 255); + rgblight_sethsv_noeeprom(86, 255, val); break; case LAYER_CONTROL: - rgblight_sethsv_noeeprom(346, 255, 255); + rgblight_sethsv_noeeprom(346, 255, val); break; case LAYER_MOUSE: - rgblight_sethsv_noeeprom(206, 255, 255); + rgblight_sethsv_noeeprom(206, 255, val); + break; +#if defined(MIDI_ENABLE) + case LAYER_MIDI: + rgblight_sethsv_noeeprom(316, 255, val); break; +#endif } }; @@ -140,18 +172,23 @@ void matrix_scan_user(void) { if (!rgblight_config.enable || rgblight_config.mode != 1) { return; } uint32_t layer = layer_state; + uint8_t val = rgblight_config.val; if (layer & (1<<_FL)) { if (layer & (1<<_ME)) { - clueboard_set_led(LAYER_MEDIA); + clueboard_set_led(LAYER_MEDIA, val); } else if (layer & (1<<_CL)) { - clueboard_set_led(LAYER_CONTROL); + clueboard_set_led(LAYER_CONTROL, val); } else { - clueboard_set_led(LAYER_FUNCTION); + clueboard_set_led(LAYER_FUNCTION, val); } } else if (layer & (1<<_ML)) { - clueboard_set_led(LAYER_MOUSE); + clueboard_set_led(LAYER_MOUSE, val); +#if defined(MIDI_ENABLE) + } else if (layer & (1<<_MI)) { + clueboard_set_led(LAYER_MIDI, val); +#endif } else { - clueboard_set_led(LAYER_BASE); + clueboard_set_led(LAYER_BASE, val); } }; diff --git a/keyboards/clueboard/keymaps/magicmonty/readme.md b/keyboards/clueboard/keymaps/magicmonty/readme.md index 2959172df..04930311f 100644 --- a/keyboards/clueboard/keymaps/magicmonty/readme.md +++ b/keyboards/clueboard/keymaps/magicmonty/readme.md @@ -1,6 +1,8 @@ -![Clueboard Layout Image](http://i.imgur.com/ngg4EAY.png) +# Layout of @magicmonty -# MouseKeys Layout +[Keyboard Layout Editor File](http://www.keyboard-layout-editor.com/#/gists/f869b8789242a712e0f46eabbd550056) + +![Clueboard Layout Image](http://imgur.com/fXJFlrp.png) This layout is a combination of the `mouse_keys` and the `win_optimized` layouts. This layout is optimized for an ISO layout. @@ -10,6 +12,8 @@ will move your mouse cursor. You can click using the 3 mods to the left of the arrow keys, or the 3 keys under your primary fingers on the home row. The Left, Down, Up and Right for the mouse movement are also VIM-Like on the HJKL keys +There is also a MIDI layer included. + The CapsLock is disabled and works as Function key. There is also a separate media layer with Volume/Play controls -- cgit v1.2.3-24-g4f1b From 96b0382fb4e0e0af82b3c278fc5cd2a44eb0d6d2 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Mon, 12 Jun 2017 16:16:42 -0400 Subject: Fix backslash and some of the docs --- keyboards/s65_x/keymaps/default/keymap.c | 22 ++++++++++++---------- keyboards/s65_x/keymaps/default/readme.md | 12 ++++++------ keyboards/s65_x/readme.md | 12 +++++------- keyboards/s65_x/s65_x.h | 10 +++++----- 4 files changed, 28 insertions(+), 28 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index c0737c11b..91c7919c6 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -34,11 +34,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │█████│ │ + * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ │ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ @@ -55,13 +55,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ @@ -76,11 +76,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │█████│ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ │ + * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │█████│ │ + * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ @@ -124,6 +124,8 @@ const uint16_t PROGMEM fn_actions[] = { void matrix_scan_user(void) { + // Would like to do something like this, that would be cool + // Turn off all the LEDs on except for the ones mapped on the UL layer, for example /* uint32_t layer = layer_state; */ /* if (layer & (1<<1)) { */ /* gh60_wasd_leds_on(); */ diff --git a/keyboards/s65_x/keymaps/default/readme.md b/keyboards/s65_x/keymaps/default/readme.md index c180ffdf9..213cbe49e 100644 --- a/keyboards/s65_x/keymaps/default/readme.md +++ b/keyboards/s65_x/keymaps/default/readme.md @@ -5,9 +5,9 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │▒▒▒▒▒│END │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│▒▒▒▒▒│PG_UP│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -17,11 +17,11 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│▒▒▒▒▒│Vol+ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/s65_x/readme.md b/keyboards/s65_x/readme.md index e086a2056..0c558428b 100644 --- a/keyboards/s65_x/readme.md +++ b/keyboards/s65_x/readme.md @@ -50,8 +50,6 @@ The █████ blocks on the layouts hides the switch positions that do not The ▒▒▒▒▒ blocks hides switch positions not used on this particular layout, but they do exist on the PCB. -There is no LED support on the PCB at the moment, but I'll let the code for that untouched. - ### 1 [Standard - ANSI (default layout)](keymaps/default/keymap.c) @@ -59,9 +57,9 @@ There is no LED support on the PCB at the moment, but I'll let the code for that ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │▒▒▒▒▒│END │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│▒▒▒▒▒│PG_UP│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -71,11 +69,11 @@ There is no LED support on the PCB at the moment, but I'll let the code for that ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ │ + │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │█████│ │ + │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │█████│ │ + │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│Vol+ │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │Mute │Vol- │Play │ │ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/s65_x/s65_x.h b/keyboards/s65_x/s65_x.h index bbf442eda..971542b5f 100644 --- a/keyboards/s65_x/s65_x.h +++ b/keyboards/s65_x/s65_x.h @@ -12,11 +12,11 @@ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, \ K400, K401, K402, K408, K410, K411, K412, K413, K414, K415 \ ) { \ - { KC_NO, KC_NO, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015 }, \ - { KC_NO, KC_NO, K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115 }, \ - { KC_NO, KC_NO, K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215 }, \ - { KC_NO, KC_NO, KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, K315 }, \ - { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ + { KC_NO, KC_NO, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015 }, \ + { KC_NO, KC_NO, K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { KC_NO, KC_NO, K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215 }, \ + { KC_NO, KC_NO, KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, K315 }, \ + { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ } void matrix_init_user(void); -- cgit v1.2.3-24-g4f1b From 568c662c1491822c5f71d210881c2b181ef3ad29 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Mon, 12 Jun 2017 16:19:22 -0400 Subject: Fix media controls in default layout --- keyboards/s65_x/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index 91c7919c6..48f4c8432 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -69,8 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY, KC_TRNS), + KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, 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_MUTE, KC_VOLD, KC_MPLY), /* 3: Locking layer for controlling the underglow * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -- cgit v1.2.3-24-g4f1b From 0440c0f072b0de96b6b286d09b9b5c6ce1ed083f Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Mon, 12 Jun 2017 16:57:01 -0400 Subject: Add ISO layout for S65-X --- keyboards/s65_x/keymaps/iso/keymap.c | 225 ++++++++++++++++++++++++++++++++++ keyboards/s65_x/keymaps/iso/readme.md | 28 +++++ keyboards/s65_x/s65_x.h | 14 +++ 3 files changed, 267 insertions(+) create mode 100644 keyboards/s65_x/keymaps/iso/keymap.c create mode 100644 keyboards/s65_x/keymaps/iso/readme.md (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c new file mode 100644 index 000000000..36a2b247a --- /dev/null +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -0,0 +1,225 @@ +#include "s65_x.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Main layer, swapped alt and GUI for Mac + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │▒▒▒▒▒│▒▒▒▒▒│END │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ~ │▒▒▒▒▒│ENTER│PG_UP│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LSHFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + /* 0: ISO qwerty */ + [_BL] = ISO_KEYMAP( + F(3), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_END, \ + F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRAVE, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + /* 1: Locking arrow keys to WASD for when you need dedicated arrow keys + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_AL] = ISO_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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + /* 2: Fn layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_FL] = ISO_KEYMAP( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, 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_MUTE, KC_VOLD, KC_MPLY), + + /* 3: Locking layer for controlling the underglow + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ On │Mode │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_UL] = ISO_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_TRNS, \ + KC_TRNS, F(4), F(5), 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, F(6), F(7), F(8), F(9), F(10), F(11), 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), +}; + + +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, + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow + [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode + [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + [12] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void matrix_scan_user(void) { + + // Would like to do something like this, that would be cool + // Turn off all the LEDs on except for the ones mapped on the UL layer, for example + /* uint32_t layer = layer_state; */ + /* if (layer & (1<<1)) { */ + /* gh60_wasd_leds_on(); */ + /* } else { */ + /* gh60_wasd_leds_off(); */ + /* } */ + /* */ + /* if (layer & (1<<2)) { */ + /* gh60_esc_led_on(); */ + /* } else { */ + /* gh60_esc_led_off(); */ + /* } */ +}; + +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; +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +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; + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +}; diff --git a/keyboards/s65_x/keymaps/iso/readme.md b/keyboards/s65_x/keymaps/iso/readme.md new file mode 100644 index 000000000..179b0b908 --- /dev/null +++ b/keyboards/s65_x/keymaps/iso/readme.md @@ -0,0 +1,28 @@ +### 1 ISO +An ISO layout that assumes standard sized shifts, enter, and backspace keys. + +#### 1.0 Default layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │▒▒▒▒▒│▒▒▒▒▒│END │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ~ │▒▒▒▒▒│ENTER│PG_UP│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSHFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +#### 1.1 Fn layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│▒▒▒▒▒│▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│▒▒▒▒▒│Vol+ │ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + diff --git a/keyboards/s65_x/s65_x.h b/keyboards/s65_x/s65_x.h index 971542b5f..7682d2a65 100644 --- a/keyboards/s65_x/s65_x.h +++ b/keyboards/s65_x/s65_x.h @@ -19,6 +19,20 @@ { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ } + +#define ISO_KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, K315, \ + K400, K401, K402, K408, K410, K411, K412, K413, K414, K415 \ +) { \ + { KC_NO, KC_NO, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015 }, \ + { KC_NO, KC_NO, K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, K115 }, \ + { KC_NO, KC_NO, K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { KC_NO, KC_NO, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, K315 }, \ + { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} void matrix_init_user(void); void matrix_scan_user(void); -- cgit v1.2.3-24-g4f1b From 78a4cfd453ddd66d2dc3f8c06827e89ec015cdc0 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 12 Jun 2017 20:13:17 -0400 Subject: Modifications to readme.md and deletion of keyboard layout images --- .../bluebear/120-button_Stradella_chart.svg | 5190 -------------------- .../bluebear/S60X-Bluebear-ARROWFN-Layer.png | Bin 18499 -> 0 bytes .../keymaps/bluebear/S60X-Bluebear-BASE-Layer.png | Bin 28068 -> 0 bytes .../bluebear/S60X-Bluebear-MIDI_BASE-Layer.png | Bin 22521 -> 0 bytes .../bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png | Bin 23687 -> 0 bytes .../keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png | Bin 14330 -> 0 bytes .../keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png | Bin 18972 -> 0 bytes keyboards/s60_x/keymaps/bluebear/readme.md | 40 +- 8 files changed, 16 insertions(+), 5214 deletions(-) delete mode 100644 keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png delete mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg b/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg deleted file mode 100644 index bd878faa1..000000000 --- a/keyboards/s60_x/keymaps/bluebear/120-button_Stradella_chart.svg +++ /dev/null @@ -1,5190 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png deleted file mode 100644 index 1f659d184..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png deleted file mode 100644 index e77287a0f..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png deleted file mode 100644 index 58ad1605f..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_BASE-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png deleted file mode 100644 index 74a373ae2..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI_CHORD-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png deleted file mode 100644 index 0e72d1032..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png deleted file mode 100644 index f37249b81..000000000 Binary files a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png and /dev/null differ diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 6f54d4d58..66c270ff3 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -4,9 +4,7 @@ Custom keyboard layout for my S60X, my first ever custom mechanical keyboard kit This layout was inspired in part by the HHKB line of keyboards and a quest to find the perfect ergonomic, logical layout for what I do. If you like this layout, please feel free to use it, modify it and share it. -## BASE Layer - -![BASE Layer](S60X-Bluebear-BASE-Layer.png) +## [BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X - Bluebear - BASE layer&author=Ante Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true%3B&@_c=%23ff7a00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9%3B%3B&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A<%2F%2Fi>&_c=%23cccccc%3B&=!%0A1&=%2F@%0A2&=%23%0A3&=$%0A4&=%25%0A5&=^%0A6&=%2F&%0A7&=*%0A8&=(%0A9&=)%0A0&={%0A[&=}%0A]&=|%0A\&=~%0A`%3B&@_w:1.5%3B&=Tab&=”%0A’&=<%0A,&=>%0A.&=P&=Y&=F&=G&=C&=R&=L&=%3F%0A%2F%2F&=+%0A%2F=&_w:1.5%3B&=Backspace%3B&@_w:1.75%3B&=Ctrl (hold)%0AEsc (tap)&=A&=O&=E&=U&=I&=D&=H&=T&=N&=S&=%2F_%0A-&_w:2.25%3B&=Enter (tap)%0ACtrl (hold)%3B&@_w:2.25%3B&=Shift (hold)%0A( (tap)&=%2F:%0A%2F%3B&=Q&=J&=K&=X&=B&=M&=W&=V&=Z&_w:2.75%3B&=Shift (hold)%0A) (tap)%3B&@_w:1.25%3B&=Mouse Layer (hold)&_w:1.25%3B&=Win&_w:1.25%3B&=Alt&_a:5&w:6.25%3B&=Space (tap)%0AArrowFN Layer (hold)&_a:4&w:1.25%3B&=AltGr(h)%0AComp (t)&_w:1.25%3B&=Win&_w:1.25%3B&=Ctrl + Shift (oneshot)&_w:1.25%3B&=Ctrl + Alt (oneshot)) -Dvorak keyboard layout -Hold left control key for LCTL, and tap it for ESC @@ -19,49 +17,43 @@ This layout was inspired in part by the HHKB line of keyboards and a quest to fi -Tap key on bottom row, second from the right (where APP usually is) to get CTL-Shift (one shot modifier - next key pressed will be modified by ctl-shift) -Tap key on bottom right to get CTL-Alt (one shot modifier - next key pressed will be modified by ctl-alt) -## ARROWFN Layer - -![ARROWFN Layer](S60X-Bluebear-ARROWFN-Layer.png) +## [ARROWFN Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20ARROWFN%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true%3B&@_c=%23ff6b00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9%3B%3B&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class%2F=%27kb%20kb-logo-commodore%27%3E%3C%2F%2Fi%3E&_c=%23cccccc%3B&=F1&=F2&=F3&=F4&=F5&=F6&=F7&=F8&=F9&=F0&=F11&=F12&=To%20MIDI%20Layer&=To%20MORSE%20Layer%3B&@_a:7&w:1.5%3B&=&=&=&=&=&=&=&_a:4%3B&=PgUp&=%3Ci%20class%2F=%27kb%20kb-Arrows-Up%27%3E%3C%2F%2Fi%3E&_a:7%3B&=&=&=&_a:4%3B&=Ins&_w:1.5%3B&=Delete%3B&@_w:1.75%3B&=Caps%20Lock&=Home&_a:7%3B&=&_a:4%3B&=End&_a:7%3B&=&=&=&_a:4%3B&=%3Ci%20class%2F=%27kb%20kb-Arrows-Left%27%3E%3C%2F%2Fi%3E&=%3Ci%20class%2F=%27kb%20kb-Arrows-Down%27%3E%3C%2F%2Fi%3E&=%3Ci%20class%2F=%27kb%20kb-Arrows-Right%27%3E%3C%2F%2Fi%3E&_a:7%3B&=&=&_a:4&w:2.25%3B&=Enter%3B&@_a:7&w:2.25%3B&=&=&=&=&=&=&_a:4%3B&=Space&=PgDn&=Print%20Screen&=Scroll%20Lock&=Pause&_a:7&w:2.75%3B&=%3B&@_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:6.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=) -Number row becomes F1 to F12 --C, T, H, N keys become Up, Down, Left, Right --Access to various other keys normally found on a full sized keyboard +-C, T, H, N keys become Up, Down, Left, Right (equivalent to IJKL on QWERTY keyboard) +-Access to various other keys normally found on a full sized keyboard (INS, DEL, PSCR, SLCK, PAUSE, PGUP, PGDN, HOME, END) -Top right button toggles MORSE layer -Second from right, top row, toggles MIDI_BASE layer +-Holding Space-B lets you send Space repeatedly +-Hitting the LCTL button in this layer toggles caps lock -## MOUSE Layer - -![MOUSE Layer](S60X-Bluebear-MOUSE-Layer.png) +## [MOUSE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MOUSE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff7f08&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9;;&=Reset%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E&_c=#cccccc;&=F13&=F14&=F15&=F16&=F17&=F18&=F19&=F20&=F21&=F22&=F23&=F24&_a:7;&=&=;&@_a:4&w:1.5;&=Debug&_a:7;&=&=&=&=&=&=&_a:4;&=Mouse%20Button%201&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Up%27%3E%3C//i%3E&=Mouse%20Button%202&_f:3;&=Mouse%20Wheel%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Up%27%3E%3C//i%3E&_a:7;&=&=&_w:1.5;&=;&@_a:4&w:1.75;&=Ctl+%0ADel%0A%0A%0A%0A%0AAlt+&_a:7;&=&=&=&=&=&=&_a:4&f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Left%27%3E%3C//i%3E&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Down%27%3E%3C//i%3E&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Right%27%3E%3C//i%3E&_f:3;&=Mouse%20Wheel%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Down%27%3E%3C//i%3E&=Mouse%20Button%203&_a:7&w:2.25;&=;&@_a:4&w:2.25;&=Magic%0AToggle%0A%0A%0A%0A%0ASysRq&_a:7;&=&=&=&=&=&=&=&=&=&=&_w:2.75;&=;&@_w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&w:6.25;&=Power&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) -Move the mouse with mouse keys -Hitting the escape key in this layer will give RESET, which puts the controller into dfu mode for flashing firmware onto it +-If Debug is enabled, hitting the TAB key in this layer activates debugging to the console when listening with hid-listen +-TFS button (Three Finger Salute) sends Ctl-Alt-Del +-MAGSYS toggles the Magic SysRq key (works only in Linux) -Hitting the space key in this layer is like hitting power button on computer --Hitting the tab button toggles caps lock -Number row becomes F13 to F24 -## MIDI_BASE Layer +## [MIDI_BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MIDI%20BASE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff8300&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&f:3;&=%F0%9F%8E%B6%0ACmaj&_f:3;&=%F0%9F%8E%B6%0AGmaj&_f:3;&=%F0%9F%8E%B6%0ADmaj&_f:3;&=%F0%9F%8E%B6%0AAmaj&_f:3;&=%F0%9F%8E%B6%0AEmaj&_f:3;&=%F0%9F%8E%B6%0ABmaj&_f:3;&=%F0%9F%8E%B6%0AF#maj%0A%0A%0A%0A%0AGbmaj//&_f:3;&=%F0%9F%8E%B6%0AC#maj%0A%0A%0A%0A%0ADbmaj//&_f:3;&=%F0%9F%8E%B6%0AG#maj%0A%0A%0A%0A%0AAbmaj&_f:3;&=%F0%9F%8E%B6%0AD#maj%0A%0A%0A%0A%0AEbmaj//&_f:3;&=%F0%9F%8E%B6%0AA#maj%0A%0A%0A%0A%0ABbmaj//&_f:3;&=%F0%9F%8E%B6%0AFmaj&_a:7;&=&_a:4&f:3;&=To%0AChord%0A%0A%0A%0A%0AMidi;&@_f:3&w:1.5;&=Octave%20Up&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AC#//Db&_f:3;&=%E2%99%A9%0AD#//Eb&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AF#//Gb&_f:3;&=%E2%99%A9%0AG#//Ab&_f:3;&=%E2%99%A9%0AA#//Bb&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AD1b%0A%0A%0A%0A%0AC1#//&_f:3;&=%E2%99%A9%0AE1b%0A%0A%0A%0A%0AD1#//&_a:7;&=&=&_w:1.5;&=;&@_a:4&f:3&w:1.75;&=Octave%20Down&_f:3;&=%E2%99%A9%0AC&_f:3;&=%E2%99%A9%0AD&_f:3;&=%E2%99%A9%0AE&_f:3;&=%E2%99%A9%0AF&_f:3;&=%E2%99%A9%0AG&_f:3;&=%E2%99%A9%0AA&_f:3;&=%E2%99%A9%0AB&_f:3;&=%E2%99%A9%0AC1&_f:3;&=%E2%99%A9%0AD1&_f:3;&=%E2%99%A9%0AE1&_f:3;&=%E2%99%A9%0AF1&_a:7&w:2.25;&=;&@_a:4&f:3&w:2.25;&=%F0%9F%8E%B6%0ACm&_f:3;&=%F0%9F%8E%B6%0AGm&_f:3;&=%F0%9F%8E%B6%0ADm&_f:3;&=%F0%9F%8E%B6%0AAm&_f:3;&=%F0%9F%8E%B6%0AEm&_f:3;&=%F0%9F%8E%B6%0ABm&_f:3;&=%F0%9F%8E%B6%0AF#m%0A%0A%0A%0A%0AGbm//&_f:3;&=%F0%9F%8E%B6%0AC#m%0A%0A%0A%0A%0ADbm//&_f:3;&=%F0%9F%8E%B6%0AG#m%0A%0A%0A%0A%0AAbm//&_f:3;&=%F0%9F%8E%B6%0AD#m%0A%0A%0A%0A%0AEbm&_f:3;&=%F0%9F%8E%B6%0AA#m%0A%0A%0A%0A%0ABbm//&_f:3&w:2.75;&=%F0%9F%8E%B6%0AFm;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=All%20notes%20off&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) -![MIDI_BASE Layer](S60X-Bluebear-MIDI_BASE-Layer.png) - -This layer was inspired by the Satan Midi layout (https://github.com/qmk/qmk_firmware/tree/master/keyboards/satan/keymaps/midi) and gives access to basic MIDI notes. What I added were two layers of MIDI chords (major and minor triads) arranged in a circle of fifths pattern. Thanks to @fredizzimo for helping me with the code for these chords. +This layer was inspired by the [Satan Midi layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/satan/keymaps/midi) and gives access to basic MIDI notes. What I added were two layers of MIDI chords (major and minor triads) arranged in a circle of fifths pattern. Thanks to @fredizzimo for helping me with the code for these. -Top right button toggles MORSE_CHORDS layer -Escape brings you back to the BASE layer -## MIDI_CHORD Layer - -![MIDI_CHORD Layer](S60X-Bluebear-MIDI_CHORD-Layer.png) +## [MIDI_CHORD Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MIDI%20CHORD%20Layer&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true&pcb:false;&@_c=#ff8300&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&f:3;&=%F0%9F%8E%B6%0ACmaj&_f:3;&=%F0%9F%8E%B6%0AGmaj&_f:3;&=%F0%9F%8E%B6%0ADmaj&_f:3;&=%F0%9F%8E%B6%0AAmaj&_f:3;&=%F0%9F%8E%B6%0AEmaj&_f:3;&=%F0%9F%8E%B6%0ABmaj&_f:3;&=%F0%9F%8E%B6%0AF#maj%0A%0A%0A%0A%0AGbmaj//&_f:3;&=%F0%9F%8E%B6%0AC#maj%0A%0A%0A%0A%0ADbmaj//&_f:3;&=%F0%9F%8E%B6%0AG#maj%0A%0A%0A%0A%0AAbmaj&_f:3;&=%F0%9F%8E%B6%0AD#maj%0A%0A%0A%0A%0AEbmaj//&_f:3;&=%F0%9F%8E%B6%0AA#maj%0A%0A%0A%0A%0ABbmaj//&_f:3;&=%F0%9F%8E%B6%0AFmaj&_f:3;&=To%20Midi%20Base&_a:7;&=;&@_a:4&f:3&w:1.5;&=Octave%20Up&_f:3;&=%F0%9F%8E%B6%0ACm&_f:3;&=%F0%9F%8E%B6%0AGm&_f:3;&=%F0%9F%8E%B6%0ADm&_f:3;&=%F0%9F%8E%B6%0AAm&_f:3;&=%F0%9F%8E%B6%0AEm&_f:3;&=%F0%9F%8E%B6%0ABm&_f:3;&=%F0%9F%8E%B6%0AF#m%0A%0A%0A%0A%0AGbm//&_f:3;&=%F0%9F%8E%B6%0AC#m%0A%0A%0A%0A%0ADbm//&_f:3;&=%F0%9F%8E%B6%0AG#m%0A%0A%0A%0A%0AAbm//&_f:3;&=%F0%9F%8E%B6%0AD#m%0A%0A%0A%0A%0AEbm//&_f:3;&=%F0%9F%8E%B6%0AA#m%0A%0A%0A%0A%0ABbm//&_f:3;&=%F0%9F%8E%B6%0AFm&_a:7&w:1.5;&=;&@_a:4&f:3&w:1.75;&=Octave%20Down&_f:3;&=%F0%9F%8E%B6%0AC7&_f:3;&=%F0%9F%8E%B6%0AG7&_f:3;&=%F0%9F%8E%B6%0AD7&_f:3;&=%F0%9F%8E%B6%0AA7&_f:3;&=%F0%9F%8E%B6%0AE7&_f:3;&=%F0%9F%8E%B6%0AB7&_f:3;&=%F0%9F%8E%B6%0AF#7%0A%0A%0A%0A%0AGb7//&_f:3;&=%F0%9F%8E%B6%0AC#7%0A%0A%0A%0A%0ADb7//&_f:3;&=%F0%9F%8E%B6%0AG#7%0A%0A%0A%0A%0AAb7//&_f:3;&=%F0%9F%8E%B6%0AD#7%0A%0A%0A%0A%0AEb7//&_f:3;&=%F0%9F%8E%B6%0AA#7%0A%0A%0A%0A%0ABb7//&_f:3&w:2.25;&=%F0%9F%8E%B6%0AF7;&@_f:3&w:2.25;&=%F0%9F%8E%B6%0ACdim7&_f:3;&=%F0%9F%8E%B6%0AGdim7&_f:3;&=%F0%9F%8E%B6%0ADdim7&_f:3;&=%F0%9F%8E%B6%0AAdim7&_f:3;&=%F0%9F%8E%B6%0AEdim7&_f:3;&=%F0%9F%8E%B6%0ABdim7&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AGb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0ADb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AAb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AEb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0ABb&_f:3&w:2.75;&=%F0%9F%8E%B6%0AFdim7;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=All%20notes%20off&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) -After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the Stradella Base system (https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. +After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the [Stradella Base system](https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. Originally, I had written the chord functions using the F(n) functions, but finally ended up using process_record_user and custom keycodes. I think this was a more efficient and elegant way of coding these. -Second from right, top row, toggles MIDI_BASE layer -Escape brings you back to the BASE layer -## MORSE LAYER - -![MORSE Layer](S60X-Bluebear-MORSE-Layer.png) +## [MORSE LAYER](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MORSE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff8a00&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&fa@:5&:5;;&=-.-.--%0A.----&=.--.-.%0A..---&=%0A...--&=...-..-%0A....-&=%0A.....&=%0A-....&=.-...%0A--...&=%0A---..&=-.--.%0A----.&=-.--.-%0A-----&_a:7;&=&=&=&=;&@_w:1.5;&=&_a:4;&=.-..-.%0A.----.&=%0A--..--&=%0A.-.-.-&=.--.&=-.--&=..-.&=--.&=-.-.&=.-.&=.-..&=..--..%0A-..-.&=.-.-.%0A-...-&_f:3&w:1.5;&=Backspace;&@_a:7&w:1.75;&=&_a:4&f:3;&=.-&_f:3;&=---&_f:3;&=.&_f:3&n:true;&=..-&_f:3;&=..&_f:3;&=-..&_f:3&n:true;&=....&_f:3;&=-&_f:3;&=-.&_f:3;&=...&_f:3;&=..--.-%0A-....-&_f:3&w:2.25;&=Enter;&@_f:3&w:2.25;&=Shift&_f:3;&=---...%0A-.-.-.&_f:3;&=--.-&_f:3;&=.---&_f:3;&=-.-&_f:3;&=-..-&_f:3;&=-...&_f:3;&=--&_f:3;&=.--&_f:3;&=...-&_f:3;&=--..&_f:3&w:2.75;&=Shift;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=Space%20(%5C%20)&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) -This layer is really just for fun, and because I am a ham radio operator and morse code enthusiast. Hitting the alphanumerical keys in this layer will send a series of dits (.) and dahs (-) representing that character in morse code. +This layer is really just for fun, and because I am a ham radio operator and morse code enthusiast. Hitting the alphanumerical keys in this layer will send a series of dits (.) and dahs (-) representing that character in morse code. This is all done through M(n). There are also a couple of characters that are sent through a shifted key on a regular layout, like @ or !. The same applies on this layer. And because I type using the Dvorak layout, this layer is also arranged in this manner. -Escape brings you back to the BASE layer -- cgit v1.2.3-24-g4f1b From 3ee346c07ba60589162c83408e46b28d25b7bf83 Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 12 Jun 2017 20:20:28 -0400 Subject: Mods to readme.md --- keyboards/s60_x/keymaps/bluebear/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 66c270ff3..153a82599 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -4,7 +4,7 @@ Custom keyboard layout for my S60X, my first ever custom mechanical keyboard kit This layout was inspired in part by the HHKB line of keyboards and a quest to find the perfect ergonomic, logical layout for what I do. If you like this layout, please feel free to use it, modify it and share it. -## [BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X - Bluebear - BASE layer&author=Ante Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true%3B&@_c=%23ff7a00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9%3B%3B&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A<%2F%2Fi>&_c=%23cccccc%3B&=!%0A1&=%2F@%0A2&=%23%0A3&=$%0A4&=%25%0A5&=^%0A6&=%2F&%0A7&=*%0A8&=(%0A9&=)%0A0&={%0A[&=}%0A]&=|%0A\&=~%0A`%3B&@_w:1.5%3B&=Tab&=”%0A’&=<%0A,&=>%0A.&=P&=Y&=F&=G&=C&=R&=L&=%3F%0A%2F%2F&=+%0A%2F=&_w:1.5%3B&=Backspace%3B&@_w:1.75%3B&=Ctrl (hold)%0AEsc (tap)&=A&=O&=E&=U&=I&=D&=H&=T&=N&=S&=%2F_%0A-&_w:2.25%3B&=Enter (tap)%0ACtrl (hold)%3B&@_w:2.25%3B&=Shift (hold)%0A( (tap)&=%2F:%0A%2F%3B&=Q&=J&=K&=X&=B&=M&=W&=V&=Z&_w:2.75%3B&=Shift (hold)%0A) (tap)%3B&@_w:1.25%3B&=Mouse Layer (hold)&_w:1.25%3B&=Win&_w:1.25%3B&=Alt&_a:5&w:6.25%3B&=Space (tap)%0AArrowFN Layer (hold)&_a:4&w:1.25%3B&=AltGr(h)%0AComp (t)&_w:1.25%3B&=Win&_w:1.25%3B&=Ctrl + Shift (oneshot)&_w:1.25%3B&=Ctrl + Alt (oneshot)) +## [BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20BASE%20layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff7a00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9;;&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E&_c=#cccccc;&=!%0A1&=/@%0A2&=#%0A3&=$%0A4&=%25%0A5&=%5E%0A6&=/&%0A7&=*%0A8&=(%0A9&=)%0A0&=%7B%0A%5B&=%7D%0A%5D&=%7C%0A%5C&=~%0A%60;&@_w:1.5;&=Tab&=%22%0A%27&=%3C%0A,&=%3E%0A.&=P&=Y&=F&=G&=C&=R&=L&=?%0A//&=+%0A/=&_w:1.5;&=Backspace;&@_w:1.75;&=Ctrl%20(hold)%0AEsc%20%20(tap)&=A&=O&=E&=U&=I&=D&=H&=T&=N&=S&=/_%0A-&_w:2.25;&=Enter%20(tap)%0ACtrl%20(hold);&@_w:2.25;&=Shift%20(hold)%0A(%20(tap)&=/:%0A/;&=Q&=J&=K&=X&=B&=M&=W&=V&=Z&_w:2.75;&=Shift%20(hold)%0A)%20(tap);&@_w:1.25;&=Mouse%20Layer%20(hold)&_w:1.25;&=Win&_w:1.25;&=Alt&_a:5&w:6.25;&=Space%20(tap)%0AArrowFN%20Layer%20(hold)&_a:4&w:1.25;&=AltGr(h)%0AComp%20(t)&_w:1.25;&=Win&_w:1.25;&=Ctrl%20+%20Shift%20(oneshot)&_w:1.25;&=Ctrl%20+%20Alt%20(oneshot)) -Dvorak keyboard layout -Hold left control key for LCTL, and tap it for ESC -- cgit v1.2.3-24-g4f1b From f37daa53430bafb3abb00efd60d6a684b82ad99a Mon Sep 17 00:00:00 2001 From: Ante Laurijssen Date: Mon, 12 Jun 2017 20:24:56 -0400 Subject: Properly formatted unordered lists in readme.md --- keyboards/s60_x/keymaps/bluebear/readme.md | 58 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s60_x/keymaps/bluebear/readme.md b/keyboards/s60_x/keymaps/bluebear/readme.md index 153a82599..d2cf6a4c5 100644 --- a/keyboards/s60_x/keymaps/bluebear/readme.md +++ b/keyboards/s60_x/keymaps/bluebear/readme.md @@ -6,56 +6,56 @@ This layout was inspired in part by the HHKB line of keyboards and a quest to fi ## [BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20BASE%20layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff7a00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9;;&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E&_c=#cccccc;&=!%0A1&=/@%0A2&=#%0A3&=$%0A4&=%25%0A5&=%5E%0A6&=/&%0A7&=*%0A8&=(%0A9&=)%0A0&=%7B%0A%5B&=%7D%0A%5D&=%7C%0A%5C&=~%0A%60;&@_w:1.5;&=Tab&=%22%0A%27&=%3C%0A,&=%3E%0A.&=P&=Y&=F&=G&=C&=R&=L&=?%0A//&=+%0A/=&_w:1.5;&=Backspace;&@_w:1.75;&=Ctrl%20(hold)%0AEsc%20%20(tap)&=A&=O&=E&=U&=I&=D&=H&=T&=N&=S&=/_%0A-&_w:2.25;&=Enter%20(tap)%0ACtrl%20(hold);&@_w:2.25;&=Shift%20(hold)%0A(%20(tap)&=/:%0A/;&=Q&=J&=K&=X&=B&=M&=W&=V&=Z&_w:2.75;&=Shift%20(hold)%0A)%20(tap);&@_w:1.25;&=Mouse%20Layer%20(hold)&_w:1.25;&=Win&_w:1.25;&=Alt&_a:5&w:6.25;&=Space%20(tap)%0AArrowFN%20Layer%20(hold)&_a:4&w:1.25;&=AltGr(h)%0AComp%20(t)&_w:1.25;&=Win&_w:1.25;&=Ctrl%20+%20Shift%20(oneshot)&_w:1.25;&=Ctrl%20+%20Alt%20(oneshot)) --Dvorak keyboard layout --Hold left control key for LCTL, and tap it for ESC --Hold enter key for RCTL and tap for ENT --Hold the space key to momentarily switch to ARROWFN layer --Left bottom key acts as momentary switch to the MOUSE layer --Hold right alt key for AltGr and tap for APP(which I have mapped to Compose in OS) --Hold left shift key for LSFT and tap for ( (Space Cadet style) --Hold right shift key for RSFT and tap for ) (Space Cadet style) --Tap key on bottom row, second from the right (where APP usually is) to get CTL-Shift (one shot modifier - next key pressed will be modified by ctl-shift) --Tap key on bottom right to get CTL-Alt (one shot modifier - next key pressed will be modified by ctl-alt) +- Dvorak keyboard layout +- Hold left control key for LCTL, and tap it for ESC +- Hold enter key for RCTL and tap for ENT +- Hold the space key to momentarily switch to ARROWFN layer +- Left bottom key acts as momentary switch to the MOUSE layer +- Hold right alt key for AltGr and tap for APP(which I have mapped to Compose in OS) +- Hold left shift key for LSFT and tap for ( (Space Cadet style) +- Hold right shift key for RSFT and tap for ) (Space Cadet style) +- Tap key on bottom row, second from the right (where APP usually is) to get CTL-Shift (one shot modifier - next key pressed will be modified by ctl-shift) +- Tap key on bottom right to get CTL-Alt (one shot modifier - next key pressed will be modified by ctl-alt) ## [ARROWFN Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20ARROWFN%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true%3B&@_c=%23ff6b00&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9%3B%3B&=Esc%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class%2F=%27kb%20kb-logo-commodore%27%3E%3C%2F%2Fi%3E&_c=%23cccccc%3B&=F1&=F2&=F3&=F4&=F5&=F6&=F7&=F8&=F9&=F0&=F11&=F12&=To%20MIDI%20Layer&=To%20MORSE%20Layer%3B&@_a:7&w:1.5%3B&=&=&=&=&=&=&=&_a:4%3B&=PgUp&=%3Ci%20class%2F=%27kb%20kb-Arrows-Up%27%3E%3C%2F%2Fi%3E&_a:7%3B&=&=&=&_a:4%3B&=Ins&_w:1.5%3B&=Delete%3B&@_w:1.75%3B&=Caps%20Lock&=Home&_a:7%3B&=&_a:4%3B&=End&_a:7%3B&=&=&=&_a:4%3B&=%3Ci%20class%2F=%27kb%20kb-Arrows-Left%27%3E%3C%2F%2Fi%3E&=%3Ci%20class%2F=%27kb%20kb-Arrows-Down%27%3E%3C%2F%2Fi%3E&=%3Ci%20class%2F=%27kb%20kb-Arrows-Right%27%3E%3C%2F%2Fi%3E&_a:7%3B&=&=&_a:4&w:2.25%3B&=Enter%3B&@_a:7&w:2.25%3B&=&=&=&=&=&=&_a:4%3B&=Space&=PgDn&=Print%20Screen&=Scroll%20Lock&=Pause&_a:7&w:2.75%3B&=%3B&@_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:6.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=) --Number row becomes F1 to F12 --C, T, H, N keys become Up, Down, Left, Right (equivalent to IJKL on QWERTY keyboard) --Access to various other keys normally found on a full sized keyboard (INS, DEL, PSCR, SLCK, PAUSE, PGUP, PGDN, HOME, END) --Top right button toggles MORSE layer --Second from right, top row, toggles MIDI_BASE layer --Holding Space-B lets you send Space repeatedly --Hitting the LCTL button in this layer toggles caps lock +- Number row becomes F1 to F12 +- C, T, H, N keys become Up, Down, Left, Right (equivalent to IJKL on QWERTY keyboard) +- Access to various other keys normally found on a full sized keyboard (INS, DEL, PSCR, SLCK, PAUSE, PGUP, PGDN, HOME, END) +- Top right button toggles MORSE layer +- Second from right, top row, toggles MIDI_BASE layer +- Holding Space-B lets you send Space repeatedly +- Hitting the LCTL button in this layer toggles caps lock ## [MOUSE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MOUSE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff7f08&fa@:0&:0&:0&:0&:0&:0&:0&:0&:0&:0&:9;;&=Reset%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E&_c=#cccccc;&=F13&=F14&=F15&=F16&=F17&=F18&=F19&=F20&=F21&=F22&=F23&=F24&_a:7;&=&=;&@_a:4&w:1.5;&=Debug&_a:7;&=&=&=&=&=&=&_a:4;&=Mouse%20Button%201&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Up%27%3E%3C//i%3E&=Mouse%20Button%202&_f:3;&=Mouse%20Wheel%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Up%27%3E%3C//i%3E&_a:7;&=&=&_w:1.5;&=;&@_a:4&w:1.75;&=Ctl+%0ADel%0A%0A%0A%0A%0AAlt+&_a:7;&=&=&=&=&=&=&_a:4&f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Left%27%3E%3C//i%3E&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Down%27%3E%3C//i%3E&_f:3;&=Mouse%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Right%27%3E%3C//i%3E&_f:3;&=Mouse%20Wheel%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Ci%20class/=%27kb%20kb-Arrows-Down%27%3E%3C//i%3E&=Mouse%20Button%203&_a:7&w:2.25;&=;&@_a:4&w:2.25;&=Magic%0AToggle%0A%0A%0A%0A%0ASysRq&_a:7;&=&=&=&=&=&=&=&=&=&=&_w:2.75;&=;&@_w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&w:6.25;&=Power&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) --Move the mouse with mouse keys --Hitting the escape key in this layer will give RESET, which puts the controller into dfu mode for flashing firmware onto it --If Debug is enabled, hitting the TAB key in this layer activates debugging to the console when listening with hid-listen --TFS button (Three Finger Salute) sends Ctl-Alt-Del --MAGSYS toggles the Magic SysRq key (works only in Linux) --Hitting the space key in this layer is like hitting power button on computer --Number row becomes F13 to F24 +- Move the mouse with mouse keys +- Hitting the escape key in this layer will give RESET, which puts the controller into dfu mode for flashing firmware onto it +- If Debug is enabled, hitting the TAB key in this layer activates debugging to the console when listening with hid-listen +- TFS button (Three Finger Salute) sends Ctl-Alt-Del +- MAGSYS toggles the Magic SysRq key (works only in Linux) +- Hitting the space key in this layer is like hitting power button on computer +- Number row becomes F13 to F24 ## [MIDI_BASE Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MIDI%20BASE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff8300&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&f:3;&=%F0%9F%8E%B6%0ACmaj&_f:3;&=%F0%9F%8E%B6%0AGmaj&_f:3;&=%F0%9F%8E%B6%0ADmaj&_f:3;&=%F0%9F%8E%B6%0AAmaj&_f:3;&=%F0%9F%8E%B6%0AEmaj&_f:3;&=%F0%9F%8E%B6%0ABmaj&_f:3;&=%F0%9F%8E%B6%0AF#maj%0A%0A%0A%0A%0AGbmaj//&_f:3;&=%F0%9F%8E%B6%0AC#maj%0A%0A%0A%0A%0ADbmaj//&_f:3;&=%F0%9F%8E%B6%0AG#maj%0A%0A%0A%0A%0AAbmaj&_f:3;&=%F0%9F%8E%B6%0AD#maj%0A%0A%0A%0A%0AEbmaj//&_f:3;&=%F0%9F%8E%B6%0AA#maj%0A%0A%0A%0A%0ABbmaj//&_f:3;&=%F0%9F%8E%B6%0AFmaj&_a:7;&=&_a:4&f:3;&=To%0AChord%0A%0A%0A%0A%0AMidi;&@_f:3&w:1.5;&=Octave%20Up&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AC#//Db&_f:3;&=%E2%99%A9%0AD#//Eb&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AF#//Gb&_f:3;&=%E2%99%A9%0AG#//Ab&_f:3;&=%E2%99%A9%0AA#//Bb&_a:7;&=&_a:4&f:3;&=%E2%99%A9%0AD1b%0A%0A%0A%0A%0AC1#//&_f:3;&=%E2%99%A9%0AE1b%0A%0A%0A%0A%0AD1#//&_a:7;&=&=&_w:1.5;&=;&@_a:4&f:3&w:1.75;&=Octave%20Down&_f:3;&=%E2%99%A9%0AC&_f:3;&=%E2%99%A9%0AD&_f:3;&=%E2%99%A9%0AE&_f:3;&=%E2%99%A9%0AF&_f:3;&=%E2%99%A9%0AG&_f:3;&=%E2%99%A9%0AA&_f:3;&=%E2%99%A9%0AB&_f:3;&=%E2%99%A9%0AC1&_f:3;&=%E2%99%A9%0AD1&_f:3;&=%E2%99%A9%0AE1&_f:3;&=%E2%99%A9%0AF1&_a:7&w:2.25;&=;&@_a:4&f:3&w:2.25;&=%F0%9F%8E%B6%0ACm&_f:3;&=%F0%9F%8E%B6%0AGm&_f:3;&=%F0%9F%8E%B6%0ADm&_f:3;&=%F0%9F%8E%B6%0AAm&_f:3;&=%F0%9F%8E%B6%0AEm&_f:3;&=%F0%9F%8E%B6%0ABm&_f:3;&=%F0%9F%8E%B6%0AF#m%0A%0A%0A%0A%0AGbm//&_f:3;&=%F0%9F%8E%B6%0AC#m%0A%0A%0A%0A%0ADbm//&_f:3;&=%F0%9F%8E%B6%0AG#m%0A%0A%0A%0A%0AAbm//&_f:3;&=%F0%9F%8E%B6%0AD#m%0A%0A%0A%0A%0AEbm&_f:3;&=%F0%9F%8E%B6%0AA#m%0A%0A%0A%0A%0ABbm//&_f:3&w:2.75;&=%F0%9F%8E%B6%0AFm;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=All%20notes%20off&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) This layer was inspired by the [Satan Midi layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/satan/keymaps/midi) and gives access to basic MIDI notes. What I added were two layers of MIDI chords (major and minor triads) arranged in a circle of fifths pattern. Thanks to @fredizzimo for helping me with the code for these. --Top right button toggles MORSE_CHORDS layer --Escape brings you back to the BASE layer +- Top right button toggles MORSE_CHORDS layer +- Escape brings you back to the BASE layer ## [MIDI_CHORD Layer](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MIDI%20CHORD%20Layer&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true&pcb:false;&@_c=#ff8300&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&f:3;&=%F0%9F%8E%B6%0ACmaj&_f:3;&=%F0%9F%8E%B6%0AGmaj&_f:3;&=%F0%9F%8E%B6%0ADmaj&_f:3;&=%F0%9F%8E%B6%0AAmaj&_f:3;&=%F0%9F%8E%B6%0AEmaj&_f:3;&=%F0%9F%8E%B6%0ABmaj&_f:3;&=%F0%9F%8E%B6%0AF#maj%0A%0A%0A%0A%0AGbmaj//&_f:3;&=%F0%9F%8E%B6%0AC#maj%0A%0A%0A%0A%0ADbmaj//&_f:3;&=%F0%9F%8E%B6%0AG#maj%0A%0A%0A%0A%0AAbmaj&_f:3;&=%F0%9F%8E%B6%0AD#maj%0A%0A%0A%0A%0AEbmaj//&_f:3;&=%F0%9F%8E%B6%0AA#maj%0A%0A%0A%0A%0ABbmaj//&_f:3;&=%F0%9F%8E%B6%0AFmaj&_f:3;&=To%20Midi%20Base&_a:7;&=;&@_a:4&f:3&w:1.5;&=Octave%20Up&_f:3;&=%F0%9F%8E%B6%0ACm&_f:3;&=%F0%9F%8E%B6%0AGm&_f:3;&=%F0%9F%8E%B6%0ADm&_f:3;&=%F0%9F%8E%B6%0AAm&_f:3;&=%F0%9F%8E%B6%0AEm&_f:3;&=%F0%9F%8E%B6%0ABm&_f:3;&=%F0%9F%8E%B6%0AF#m%0A%0A%0A%0A%0AGbm//&_f:3;&=%F0%9F%8E%B6%0AC#m%0A%0A%0A%0A%0ADbm//&_f:3;&=%F0%9F%8E%B6%0AG#m%0A%0A%0A%0A%0AAbm//&_f:3;&=%F0%9F%8E%B6%0AD#m%0A%0A%0A%0A%0AEbm//&_f:3;&=%F0%9F%8E%B6%0AA#m%0A%0A%0A%0A%0ABbm//&_f:3;&=%F0%9F%8E%B6%0AFm&_a:7&w:1.5;&=;&@_a:4&f:3&w:1.75;&=Octave%20Down&_f:3;&=%F0%9F%8E%B6%0AC7&_f:3;&=%F0%9F%8E%B6%0AG7&_f:3;&=%F0%9F%8E%B6%0AD7&_f:3;&=%F0%9F%8E%B6%0AA7&_f:3;&=%F0%9F%8E%B6%0AE7&_f:3;&=%F0%9F%8E%B6%0AB7&_f:3;&=%F0%9F%8E%B6%0AF#7%0A%0A%0A%0A%0AGb7//&_f:3;&=%F0%9F%8E%B6%0AC#7%0A%0A%0A%0A%0ADb7//&_f:3;&=%F0%9F%8E%B6%0AG#7%0A%0A%0A%0A%0AAb7//&_f:3;&=%F0%9F%8E%B6%0AD#7%0A%0A%0A%0A%0AEb7//&_f:3;&=%F0%9F%8E%B6%0AA#7%0A%0A%0A%0A%0ABb7//&_f:3&w:2.25;&=%F0%9F%8E%B6%0AF7;&@_f:3&w:2.25;&=%F0%9F%8E%B6%0ACdim7&_f:3;&=%F0%9F%8E%B6%0AGdim7&_f:3;&=%F0%9F%8E%B6%0ADdim7&_f:3;&=%F0%9F%8E%B6%0AAdim7&_f:3;&=%F0%9F%8E%B6%0AEdim7&_f:3;&=%F0%9F%8E%B6%0ABdim7&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AGb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0ADb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AAb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0AEb&_f:3;&=%F0%9F%8E%B6%0Adim7%0A%0A%0A%0A%0ABb&_f:3&w:2.75;&=%F0%9F%8E%B6%0AFdim7;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=All%20notes%20off&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) After figuring out how to code my MIDI chord function, I decided to dedicate a full layer to these chords. This chord layout was inspired by the [Stradella Base system](https://en.wikipedia.org/wiki/Stradella_bass_system) found on accordions. This layer is a tool for musical composition and songwriting. Originally, I had written the chord functions using the F(n) functions, but finally ended up using process_record_user and custom keycodes. I think this was a more efficient and elegant way of coding these. --Second from right, top row, toggles MIDI_BASE layer --Escape brings you back to the BASE layer +- Second from right, top row, toggles MIDI_BASE layer +- Escape brings you back to the BASE layer ## [MORSE LAYER](http://www.keyboard-layout-editor.com/##@_name=S60X%20-%20Bluebear%20-%20MORSE%20Layer&author=Ante%20Laurijssen&switchMount=cherry&switchBrand=outemu&switchType=PG150Q01-1&plate:true;&@_c=#ff8a00&a:5&fa@:9;;&=%3Ci%20class/=%27kb%20kb-logo-commodore%27%3E%3C//i%3E%0ABASE%0A%0A%0ALayer&_c=#cccccc&a:4&fa@:5&:5;;&=-.-.--%0A.----&=.--.-.%0A..---&=%0A...--&=...-..-%0A....-&=%0A.....&=%0A-....&=.-...%0A--...&=%0A---..&=-.--.%0A----.&=-.--.-%0A-----&_a:7;&=&=&=&=;&@_w:1.5;&=&_a:4;&=.-..-.%0A.----.&=%0A--..--&=%0A.-.-.-&=.--.&=-.--&=..-.&=--.&=-.-.&=.-.&=.-..&=..--..%0A-..-.&=.-.-.%0A-...-&_f:3&w:1.5;&=Backspace;&@_a:7&w:1.75;&=&_a:4&f:3;&=.-&_f:3;&=---&_f:3;&=.&_f:3&n:true;&=..-&_f:3;&=..&_f:3;&=-..&_f:3&n:true;&=....&_f:3;&=-&_f:3;&=-.&_f:3;&=...&_f:3;&=..--.-%0A-....-&_f:3&w:2.25;&=Enter;&@_f:3&w:2.25;&=Shift&_f:3;&=---...%0A-.-.-.&_f:3;&=--.-&_f:3;&=.---&_f:3;&=-.-&_f:3;&=-..-&_f:3;&=-...&_f:3;&=--&_f:3;&=.--&_f:3;&=...-&_f:3;&=--..&_f:3&w:2.75;&=Shift;&@_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_a:5&f:3&w:6.25;&=Space%20(%5C%20)&_a:7&w:1.25;&=&_w:1.25;&=&_w:1.25;&=&_w:1.25;&=) This layer is really just for fun, and because I am a ham radio operator and morse code enthusiast. Hitting the alphanumerical keys in this layer will send a series of dits (.) and dahs (-) representing that character in morse code. This is all done through M(n). There are also a couple of characters that are sent through a shifted key on a regular layout, like @ or !. The same applies on this layer. And because I type using the Dvorak layout, this layer is also arranged in this manner. --Escape brings you back to the BASE layer +- Escape brings you back to the BASE layer ### THIS IS STILL A WORK IN PROGRESS -- cgit v1.2.3-24-g4f1b From a7942c4f4893b0726566217a2cbe5c526483bd47 Mon Sep 17 00:00:00 2001 From: Ethan Madden Date: Tue, 13 Jun 2017 16:01:28 -0700 Subject: Added whitefox keymap --- keyboards/whitefox/keymaps/jetpacktuxedo/keymap.c | 60 ++++++++++++++++++++++ keyboards/whitefox/keymaps/jetpacktuxedo/readme.md | 3 ++ 2 files changed, 63 insertions(+) create mode 100644 keyboards/whitefox/keymaps/jetpacktuxedo/keymap.c create mode 100644 keyboards/whitefox/keymaps/jetpacktuxedo/readme.md (limited to 'keyboards') diff --git a/keyboards/whitefox/keymaps/jetpacktuxedo/keymap.c b/keyboards/whitefox/keymaps/jetpacktuxedo/keymap.c new file mode 100644 index 000000000..09f6ca34d --- /dev/null +++ b/keyboards/whitefox/keymaps/jetpacktuxedo/keymap.c @@ -0,0 +1,60 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "whitefox.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Ins| + * |---------------------------------------------------------------| + * | Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del| + * |---------------------------------------------------------------| + * | FN | A| S| D| F| G| H| J| K| L| ;| '| Enter |PgU| + * |---------------------------------------------------------------| + * | Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [0] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL,KC_NO,KC_BSPC,KC_INS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS, KC_DEL, \ + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, KC_PGUP,\ + KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,KC_NO, KC_LEFT,KC_DOWN,KC_RGHT \ + ), + /* Layer 1: FN Layer + * ,---------------------------------------------------------------. + * | ` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | |pup| | + * |---------------------------------------------------------------| + * | | | | | | | |hom|pdn|end| + * `---------------------------------------------------------------' + */ + [1] = KEYMAP( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_TRNS,KC_MUTE,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,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_VOLU,\ + 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_PGUP,KC_VOLD,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \ + ), +}; diff --git a/keyboards/whitefox/keymaps/jetpacktuxedo/readme.md b/keyboards/whitefox/keymaps/jetpacktuxedo/readme.md new file mode 100644 index 000000000..2c714f067 --- /dev/null +++ b/keyboards/whitefox/keymaps/jetpacktuxedo/readme.md @@ -0,0 +1,3 @@ +#Jetpacktuxedo's keymap for whitefox aria + +This is designed for the aria layout so you may have some keys that don't line up properly, namely around the split backspace area and the right hand bottom row mods. Additionally I use capslock as fn. -- cgit v1.2.3-24-g4f1b From 49cfdb544d65005d2779b19d91432b6cbd278722 Mon Sep 17 00:00:00 2001 From: Martin Gondermann Date: Wed, 14 Jun 2017 16:20:43 +0200 Subject: Added HyperTab and Ctrl/Fn as well as Space cadet parens (#1390) * Added HyperTab and Ctrl/Escape as well as Space cadet parens to magicmonty keymap * Replaced CTL_ESC With FN_ESC --- keyboards/clueboard/keymaps/magicmonty/Makefile | 1 + keyboards/clueboard/keymaps/magicmonty/config.h | 15 ++++ keyboards/clueboard/keymaps/magicmonty/keymap.c | 92 ++++++++++++++---------- keyboards/clueboard/keymaps/magicmonty/readme.md | 13 +++- 4 files changed, 79 insertions(+), 42 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/magicmonty/Makefile b/keyboards/clueboard/keymaps/magicmonty/Makefile index 5b798b7fc..289018f34 100644 --- a/keyboards/clueboard/keymaps/magicmonty/Makefile +++ b/keyboards/clueboard/keymaps/magicmonty/Makefile @@ -6,3 +6,4 @@ MIDI_ENABLE = yes # if MIDI_ENABLE is set to yes, then CONSOLE_ENABLE has to be disabled, because of the firmware size CONSOLE_ENABLE = false +COMMAND_ENABLE = no diff --git a/keyboards/clueboard/keymaps/magicmonty/config.h b/keyboards/clueboard/keymaps/magicmonty/config.h index 4b2953499..30b2a171e 100644 --- a/keyboards/clueboard/keymaps/magicmonty/config.h +++ b/keyboards/clueboard/keymaps/magicmonty/config.h @@ -26,4 +26,19 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ #define MIDI_TONE_KEYCODE_OCTAVES 2 +/* Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event + of an erroneous press instead of emitting a pair of parentheses when the keys are released. +*/ +#define DISABLE_SPACE_CADET_ROLLOVER + +/* + Setting the Space Cadet Parens for German layout + + Default is + #define LSPO_KEY KC_9 + #define RSPC_KEY KC_0 +*/ +#define LSPO_KEY KC_8 +#define RSPC_KEY KC_9 + #endif diff --git a/keyboards/clueboard/keymaps/magicmonty/keymap.c b/keyboards/clueboard/keymaps/magicmonty/keymap.c index c7847dfb7..05ea1fa33 100644 --- a/keyboards/clueboard/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/keymaps/magicmonty/keymap.c @@ -4,6 +4,8 @@ #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define _______ KC_TRNS #define xxxxxxx KC_NO +#define HPR_TAB ALL_T(KC_TAB) +#define CTL_ESC CTL_T(KC_ESC) // 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. @@ -21,64 +23,73 @@ #define TO_MIDI _______ #endif +#define TO_BASE TO(_BL) +#define MO_FUNC MO(_FL) +#define MEDIA MO(_ME) +#define MO_CTL MO(_CL) +#define L_MOUSE LT(_ML, KC_SPC) +#define ESC_FUN LT(_FL, KC_ESC) + +#define ESC_GRV F(0) +#define RGB_RST F(1) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: Base Layer (Default Layer) - */ + /* Keymap _BL: Base Layer (Default Layer) */ [_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \ - MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, _______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_RALT, MO(_ME), MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + ESC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_INS, \ + HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \ + ESC_FUN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, KC_RSPC, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT,_______, L_MOUSE, L_MOUSE, _______, KC_RALT, KC_RCTL, MO_FUNC, KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer */ [_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP, \ - _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,_______, KC_PAUS, _______, _______, _______, _______, \ - MO(_FL), _______, MO(_CL),_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RGHT, _______, _______, _______, _______, \ - _______, _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, TO_MIDI, _______, _______, KC_PGUP, \ - _______, _______, _______,_______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_PAUS, _______, _______, _______, _______, \ + _______, _______, MO_CTL, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, MEDIA, _______, _______, TO_MIDI, _______, _______, KC_PGUP, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, MO_FUNC, KC_HOME, KC_PGDN, KC_END), /* Keymap _ME: Media layer */ [_ME] = KEYMAP( - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \ - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_VOLD, \ - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ - MO(_FL), _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, MO(_FL), _______, \ - _______, _______, _______,_______, _______,_______, _______, _______, _______, _______, KC_MPRV, KC_MPLY,KC_MNXT), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, MEDIA, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT), /* Keymap _CL: Control layer */ [_CL] = KEYMAP( - _______, F(1), _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ - _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ - _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ - MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \ - _______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), + _______, RGB_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \ + _______, _______, MO_CTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \ + _______, _______, _______, _______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), /* Keymap _ML: Mouse layer */ [_ML] = KEYMAP( - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, \ - _______, _______, KC_BTN3,KC_BTN2,KC_BTN1,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R, _______, _______, _______, _______, \ - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MS_U, \ - _______, _______, _______,_______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_D,KC_MS_R), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, KC_BTN3, KC_BTN2, KC_BTN1, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, \ + _______, _______, _______, _______, L_MOUSE, L_MOUSE, _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R), #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) /* Keymap _MI: MIDI layer (Advanced)*/ [_MI] = KEYMAP( - TO(_BL),MI_VEL_1,MI_VEL_2,MI_VEL_3,MI_VEL_4,MI_VEL_5,MI_VEL_6,MI_VEL_7,MI_VEL_8,MI_VEL_9,MI_VEL_10, MI_CHD, MI_CHU, xxxxxxx, xxxxxxx, xxxxxxx, \ - xxxxxxx, xxxxxxx, MI_Cs, MI_Ds, xxxxxxx, MI_Fs, MI_Gs, MI_As, xxxxxxx, MI_Cs_1, MI_Ds_1, xxxxxxx, MI_Fs_1, xxxxxxx, xxxxxxx, \ - MI_MOD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, xxxxxxx, \ - MI_SUS, xxxxxxx, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, MI_TRNSD,MI_TRNSU,MI_TRNS_0, MI_SUS, xxxxxxx, \ - xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, MI_ALLOFF,MI_ALLOFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx), + TO_BASE,MI_VEL_1,MI_VEL_2,MI_VEL_3,MI_VEL_4,MI_VEL_5,MI_VEL_6,MI_VEL_7,MI_VEL_8,MI_VEL_9,MI_VEL_10, MI_CHD, MI_CHU, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, MI_Cs, MI_Ds, xxxxxxx, MI_Fs, MI_Gs, MI_As, xxxxxxx, MI_Cs_1, MI_Ds_1, xxxxxxx, MI_Fs_1, xxxxxxx, xxxxxxx, \ + MI_MOD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, xxxxxxx, \ + MI_SUS, xxxxxxx, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, MI_TRNSD,MI_TRNSU,MI_TRNS_0, MI_SUS, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, MI_ALLOFF, MI_ALLOFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx), #elif defined(MIDI_ENABLE) && defined(MIDI_BASIC) /* Keymap _MI: MIDI layer (Basic)*/ [_MI] = KEYMAP( - TO(_BL), xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ - xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ - xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ - xxxxxxx, xxxxxxx, MI_ON, MI_OFF,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ - xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, xxxxxxx,xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx), + TO_BASE, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, MI_ON, MI_OFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \ + xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx), #endif }; @@ -125,7 +136,10 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; case 1: - rgblight_mode(1); + if (record->event.pressed) { + rgblight_mode(1); + rgblight_sethsv(206, 255, 255); + } } } @@ -143,7 +157,7 @@ enum layer_id { void clueboard_set_led(uint8_t id, uint8_t val) { switch (id) { case LAYER_BASE: - rgblight_sethsv_noeeprom(346, 0, val); + rgblight_sethsv_noeeprom(0, 0, val); break; case LAYER_FUNCTION: rgblight_sethsv_noeeprom(46, 255, val); diff --git a/keyboards/clueboard/keymaps/magicmonty/readme.md b/keyboards/clueboard/keymaps/magicmonty/readme.md index 04930311f..f9cc57311 100644 --- a/keyboards/clueboard/keymaps/magicmonty/readme.md +++ b/keyboards/clueboard/keymaps/magicmonty/readme.md @@ -1,8 +1,8 @@ # Layout of @magicmonty -[Keyboard Layout Editor File](http://www.keyboard-layout-editor.com/#/gists/f869b8789242a712e0f46eabbd550056) +[Keyboard Layout Editor File] -![Clueboard Layout Image](http://imgur.com/fXJFlrp.png) +![Clueboard Layout Image](http://i.imgur.com/WFfJ15k.png) This layout is a combination of the `mouse_keys` and the `win_optimized` layouts. This layout is optimized for an ISO layout. @@ -14,7 +14,9 @@ The Left, Down, Up and Right for the mouse movement are also VIM-Like on the HJK There is also a MIDI layer included. -The CapsLock is disabled and works as Function key. +The CapsLock is disabled and works as Escape when tapped and Fn when Hold. +The Tab key works as Tab when tapped, and [Hyper] (Ctrl + Alt + Shift + Cmd) when hold +The Shift-Keys are configured as [Space Cadet Shift Parentheses] There is also a separate media layer with Volume/Play controls @@ -25,3 +27,8 @@ The different layers are signalled throug setting of the underlight: - Media layer: Green - Mouse layer: Blue - Control layer: Red +- Midi layer: Purple + +[Hyper]: http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ +[Space Cadet Shift Parentheses]: http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses +[Keyboard Layout Editor File]: http://www.keyboard-layout-editor.com/#/gists/f869b8789242a712e0f46eabbd550056 -- cgit v1.2.3-24-g4f1b From 22f985eba78687d08d17dc6cb4e7266359925c97 Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Thu, 15 Jun 2017 07:15:27 +0000 Subject: Add custom let's split keymap --- keyboards/lets_split/keymaps/khord/Makefile | 7 + keyboards/lets_split/keymaps/khord/config.h | 37 +++++ keyboards/lets_split/keymaps/khord/keymap.c | 236 ++++++++++++++++++++++++++++ 3 files changed, 280 insertions(+) create mode 100644 keyboards/lets_split/keymaps/khord/Makefile create mode 100644 keyboards/lets_split/keymaps/khord/config.h create mode 100644 keyboards/lets_split/keymaps/khord/keymap.c (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/khord/Makefile b/keyboards/lets_split/keymaps/khord/Makefile new file mode 100644 index 000000000..c90523e5d --- /dev/null +++ b/keyboards/lets_split/keymaps/khord/Makefile @@ -0,0 +1,7 @@ +TAP_DANCE_ENABLE = yes +RGBLIGHT_ENABLE = yes +USE_I2C = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/lets_split/keymaps/khord/config.h b/keyboards/lets_split/keymaps/khord/config.h new file mode 100644 index 000000000..1df3c5e1f --- /dev/null +++ b/keyboards/lets_split/keymaps/khord/config.h @@ -0,0 +1,37 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#define USE_SERIAL + +#define MASTER_LEFT +// #define _MASTER_RIGHT +#define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 + +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "../../rev2/config.h" +#endif +#ifdef SUBPROJECT_rev2fliphalf + #include "../../rev2fliphalf/config.h" +#endif diff --git a/keyboards/lets_split/keymaps/khord/keymap.c b/keyboards/lets_split/keymaps/khord/keymap.c new file mode 100644 index 000000000..699947873 --- /dev/null +++ b/keyboards/lets_split/keymaps/khord/keymap.c @@ -0,0 +1,236 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Tap Dance Declarations +enum { + SFT_CAP = 0, + LFT_HOM, + DWN_PDN, + UPP_PUP, + RGT_END +}; + +// Dylan's additions +#define C_A_DEL LALT(LCTL(KC_DEL)) +#define C_A_INS LALT(LCTL(KC_INS)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ +<<<<<<< HEAD + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP( \ + 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 , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP( \ + 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 , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | END | HOME |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_END, KC_HOME, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PG DN |PG UP |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGDN, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, C_A_INS, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_A_DEL \ +) + + +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [SFT_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), + [LFT_HOM] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME), + [DWN_PDN] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_PGDN), + [UPP_PUP] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_PGUP), + [RGT_END] = ACTION_TAP_DANCE_DOUBLE(KC_RGHT, KC_END) +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistent_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistent_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} -- cgit v1.2.3-24-g4f1b From a44ba492eac9ea65f9f1ca620dfc0344d48accd4 Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Thu, 15 Jun 2017 03:26:04 -0400 Subject: minor fixes --- keyboards/lets_split/keymaps/khord/config.h | 4 +--- keyboards/lets_split/keymaps/khord/keymap.c | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/khord/config.h b/keyboards/lets_split/keymaps/khord/config.h index 1df3c5e1f..d6a99a8b2 100644 --- a/keyboards/lets_split/keymaps/khord/config.h +++ b/keyboards/lets_split/keymaps/khord/config.h @@ -15,11 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#define TAPPING_TERM 150 #define USE_SERIAL - -#define MASTER_LEFT -// #define _MASTER_RIGHT #define EE_HANDS #undef RGBLED_NUM diff --git a/keyboards/lets_split/keymaps/khord/keymap.c b/keyboards/lets_split/keymaps/khord/keymap.c index 699947873..2aaab5e86 100644 --- a/keyboards/lets_split/keymaps/khord/keymap.c +++ b/keyboards/lets_split/keymaps/khord/keymap.c @@ -55,7 +55,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ -<<<<<<< HEAD KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ -- cgit v1.2.3-24-g4f1b From 5c11ba74d863bde954fe42ff6a48b52567003333 Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Thu, 15 Jun 2017 03:34:08 -0400 Subject: tap dance and hold changes to make planck match lets split --- keyboards/planck/keymaps/khord/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/khord/keymap.c b/keyboards/planck/keymaps/khord/keymap.c index f9fa7318a..c3ba6ef07 100644 --- a/keyboards/planck/keymaps/khord/keymap.c +++ b/keyboards/planck/keymaps/khord/keymap.c @@ -47,7 +47,7 @@ enum planck_keycodes { #define M_BRDFT M(MACRO_BREATH_DEFAULT) // Tap Dance Declarations enum { - ESC_CAP = 0, + SFT_CAP = 0, LFT_HOM, DWN_PDN, UPP_PUP, @@ -72,10 +72,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_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 }, - {TD(ESC_CAP), 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, SFT_T(KC_ENT)}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + {TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT } }, /* Colemak @@ -192,7 +192,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { qk_tap_dance_action_t tap_dance_actions[] = { - [ESC_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), + [SFT_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), [LFT_HOM] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME), [DWN_PDN] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_PGDN), [UPP_PUP] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_PGUP), -- cgit v1.2.3-24-g4f1b From cc158d90aeb9f95aa29591baed921bbb7fc82400 Mon Sep 17 00:00:00 2001 From: Daniel Shields Date: Thu, 15 Jun 2017 08:34:34 +0100 Subject: Minor updates to planck/keymaps/dshields * tweaks to tap dance keys * tidy up code * save a few bytes --- keyboards/planck/keymaps/dshields/config.h | 2 ++ keyboards/planck/keymaps/dshields/keymap.c | 38 ++++++++++-------------------- 2 files changed, 15 insertions(+), 25 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h index 5f2810287..906400adc 100644 --- a/keyboards/planck/keymaps/dshields/config.h +++ b/keyboards/planck/keymaps/dshields/config.h @@ -37,6 +37,7 @@ #define TD_DOT TD(TDK_DOT) #define TD_SLSH TD(TDK_SLSH) +// macros #define ACTION_TAP_DANCE_FN_KEYCODE(user_fn, kc) { \ .fn = { NULL, user_fn, NULL }, \ .user_data = (void *)&((qk_tap_dance_pair_t) { kc, 0 }) \ @@ -47,6 +48,7 @@ .user_data = (void *)&((qk_tap_dance_pair_t) { kc1, kc2 }) \ } +#define TAP(keycode) register_code16(keycode); unregister_code16(keycode) #endif diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c index 09bdc3e40..7b3f4bc97 100644 --- a/keyboards/planck/keymaps/dshields/keymap.c +++ b/keyboards/planck/keymaps/dshields/keymap.c @@ -25,10 +25,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [DEF] = { - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P}, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_ENT, KC_H, KC_J, KC_K, KC_L, TD_SCLN}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, OSM_SFT, DM_PLAY, KC_N, KC_M, TD_COMM, TD_DOT, TD_SLSH}, - {OSM_CTL, KC_LGUI, OSM_ALT, OSL_FUN, OSL_LWR, KC_SPC, KC_SPC, OSL_RSE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_ENT, KC_H, KC_J, KC_K, KC_L, TD_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, OSM_SFT, DM_PLAY, KC_N, KC_M, TD_COMM, TD_DOT, TD_SLSH}, + {OSM_CTL, KC_LGUI, OSM_ALT, OSL_FUN, OSL_LWR, KC_SPC, KC_SPC, OSL_RSE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower * ,-----------------------------------------------------------------------------------. @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, {KC_TILD, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_LCBR, KC_RCBR}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DQUO, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END } }, /* Raise * ,-----------------------------------------------------------------------------------. @@ -59,10 +59,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [RSE] = { - {KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0}, + {KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0 }, {KC_GRV, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, KC_LBRC, KC_RBRC}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END } }, /* Function * ,-----------------------------------------------------------------------------------. @@ -76,17 +76,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [FUN] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_DEL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_DEL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, {KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R}, {BL_TOGG, BL_STEP, _______, _______, _______, DM_STRT, DM_STOP, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R} }, - -}; - -void tap(uint16_t keycode) { - register_code16(keycode); - unregister_code16(keycode); }; void tap_dance_triple(qk_tap_dance_state_t *state, void *user_data) { @@ -96,25 +90,22 @@ void tap_dance_triple(qk_tap_dance_state_t *state, void *user_data) { switch(state->count) { case 2: register_code(KC_LSFT); - tap(keycode); + TAP(keycode); unregister_code(KC_LSFT); break; - case 3: + case 3: // fall through if (pair->kc2) { keycode = pair->kc2; } - tap(keycode); - tap(keycode); - break; + TAP(keycode); default: - tap(keycode); - break; + TAP(keycode); } } qk_tap_dance_action_t tap_dance_actions[] = { [TDK_SCLN] = ACTION_TAP_DANCE_FN_KEYCODE2(tap_dance_triple, KC_SCLN, KC_COLN), - [TDK_COMM] = ACTION_TAP_DANCE_FN_KEYCODE (tap_dance_triple, KC_COMM), + [TDK_COMM] = ACTION_TAP_DANCE_FN_KEYCODE2(tap_dance_triple, KC_COMM, KC_LABK), [TDK_DOT] = ACTION_TAP_DANCE_FN_KEYCODE (tap_dance_triple, KC_DOT), [TDK_SLSH] = ACTION_TAP_DANCE_FN_KEYCODE (tap_dance_triple, KC_SLSH) }; @@ -126,6 +117,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void matrix_init_user(void) { -} - -- cgit v1.2.3-24-g4f1b From 899584187f9ce067ebd192e83b03634b42bed81e Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Mon, 12 Jun 2017 21:51:34 -0400 Subject: Fix esc key --- keyboards/s65_x/keymaps/default/keymap.c | 2 +- keyboards/s65_x/keymaps/iso/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index 48f4c8432..ea1d0dcfc 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ [_BL] = ANSI_KEYMAP( - F(3), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + F(12), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index 36a2b247a..75f9fec32 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ISO qwerty */ [_BL] = ISO_KEYMAP( - F(3), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + F(12), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRAVE, KC_ENT, KC_PGUP, \ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ -- cgit v1.2.3-24-g4f1b From c81be932d287d1e007ee32d87d29c2a34972ea8c Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Tue, 13 Jun 2017 13:34:44 -0400 Subject: Fix left shift in ansi layout --- keyboards/s65_x/s65_x.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/s65_x.h b/keyboards/s65_x/s65_x.h index 7682d2a65..ed1ac402c 100644 --- a/keyboards/s65_x/s65_x.h +++ b/keyboards/s65_x/s65_x.h @@ -9,13 +9,13 @@ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, K315, \ K400, K401, K402, K408, K410, K411, K412, K413, K414, K415 \ ) { \ { KC_NO, KC_NO, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014, K015 }, \ { KC_NO, KC_NO, K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ { KC_NO, KC_NO, K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215 }, \ - { KC_NO, KC_NO, KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314, K315 }, \ + { KC_NO, KC_NO, KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, K315 }, \ { KC_NO, KC_NO, K400, K401, K402, KC_NO, KC_NO, KC_NO, K408, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ } -- cgit v1.2.3-24-g4f1b From b107d64d69b058c60adfdeffa82100110e02f05e Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Tue, 13 Jun 2017 13:35:28 -0400 Subject: Use standard QMK key codes for RGB control --- keyboards/s65_x/keymaps/default/keymap.c | 125 +++++++++---------------------- keyboards/s65_x/keymaps/iso/keymap.c | 67 ++--------------- 2 files changed, 39 insertions(+), 153 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index ea1d0dcfc..c0336755b 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ [_BL] = ANSI_KEYMAP( - F(12), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ @@ -52,74 +52,58 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* 2: Fn layer - * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ - * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ [_FL] = ANSI_KEYMAP( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, 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_MUTE, KC_VOLD, KC_MPLY), /* 3: Locking layer for controlling the underglow - * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ [_UL] = ANSI_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_TRNS, \ - KC_TRNS, F(4), F(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, F(6), F(7), F(8), F(9), F(10), F(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, RGB_TOG, RGB_MOD, 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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), }; 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, SHIFT_ESC, }; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay - [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay - [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer - [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay - [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow - [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode - [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - [12] = ACTION_FUNCTION(SHIFT_ESC), + [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(SHIFT_ESC), }; void matrix_scan_user(void) { @@ -157,49 +141,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) 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; - static uint8_t shift_esc_shift_mask; - // Shift + ESC = ~ + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ case SHIFT_ESC: shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; if (record->event.pressed) { diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index 75f9fec32..acbb44c03 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ISO qwerty */ [_BL] = ISO_KEYMAP( - F(12), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRAVE, KC_ENT, KC_PGUP, \ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ @@ -89,21 +89,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_UL] = ISO_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_TRNS, \ - KC_TRNS, F(4), F(5), 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, F(6), F(7), F(8), F(9), F(10), F(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, RGB_TOG, RGB_MOD, 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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), }; 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, SHIFT_ESC, }; @@ -112,14 +104,6 @@ const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay - [4] = ACTION_FUNCTION(RGBLED_TOGGLE), // Turn on/off underglow - [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode - [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), [12] = ACTION_FUNCTION(SHIFT_ESC), }; @@ -158,49 +142,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) 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; - static uint8_t shift_esc_shift_mask; - // Shift + ESC = ~ + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ case SHIFT_ESC: shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; if (record->event.pressed) { -- cgit v1.2.3-24-g4f1b From e553bb3af457cf07d8758e89b9dad757f1e48b03 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Thu, 15 Jun 2017 13:42:14 -0400 Subject: LED init works with just pin declared --- keyboards/s65_x/s65_x.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/s65_x.c b/keyboards/s65_x/s65_x.c index f3f8ffbc8..29073750c 100644 --- a/keyboards/s65_x/s65_x.c +++ b/keyboards/s65_x/s65_x.c @@ -5,7 +5,6 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - led_init_ports(); }; void matrix_scan_kb(void) { @@ -14,11 +13,6 @@ void matrix_scan_kb(void) { matrix_scan_user(); }; -void led_init_ports(void) { - // * Set our LED pins as output - DDRB |= (1<<7); -} - void led_set_kb(uint8_t usb_led) { if (usb_led & (1< Date: Thu, 15 Jun 2017 12:42:23 -0700 Subject: tv44: Fix up the KEYMAP macro Previously KEYMAP referred to the KEYMAP_ARROW layout and had 45 keys. It makes more sense for the default keymap to be the 44 key layout, as is implied by the name. Additionally keymaps for all other known layouts have been added: KEYMAP - base layout KEYMAP_ARROW - additional key in bottom right KEYMAP_COMMAND - additional key in bottom left KEYMAP_ARROW_COMMAND - combination of KEYMAP_ARROW and KEYMAP_COMMAND --- keyboards/tv44/tv44.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/tv44/tv44.h b/keyboards/tv44/tv44.h index 65c0b4593..bd6fb90b0 100644 --- a/keyboards/tv44/tv44.h +++ b/keyboards/tv44/tv44.h @@ -4,19 +4,64 @@ #include "quantum.h" // This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array +// There are a number of variations depending on the layout of your bottom row. +// The arrow variant adds an additional key on the bottom-right, while the +// command variant adds an additional key on the bottom-left. arrow-command is a +// combination of both of those, having an additional key on both sides. +// +// Please note that the numbering of the macro arguments are based on the +// numbers of the keys on the PCB. + #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, K37, K38, K39, K3A, K3B \ + K30, K31, K32, K33, K37, K38, K39, K3B \ +) \ +{ \ + { 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, KC_NO, KC_NO, KC_NO, K37, K38, K39, KC_NO, K3B } \ +} + +#define KEYMAP_ARROW( \ + 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, K37, K38, K39, K3A, K3B \ ) \ { \ { 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, KC_NO, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \ +} + +#define KEYMAP_COMMAND( \ + 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, K34, K32, K33, K37, K38, K39, K3B \ +) \ +{ \ + { 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, KC_NO, KC_NO, K37, K38, K39, KC_NO, K3B } \ +} + +#define KEYMAP_ARROW_COMMAND( \ + 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, K34, K32, K33, K37, K38, K39, K3A, K3B \ +) \ +{ \ + { 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, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \ +} #endif -- cgit v1.2.3-24-g4f1b From e32e7dc0f52e1f62a61e3cf81e4a4c23fad2dbc3 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 15 Jun 2017 12:45:53 -0700 Subject: tv44: update smt keymap to use new macros and remove custom ones --- keyboards/tv44/keymaps/smt/config.h | 36 ------------------------------------ keyboards/tv44/keymaps/smt/keymap.c | 12 ++++++------ keyboards/tv44/keymaps/smt/readme.md | 6 +++--- 3 files changed, 9 insertions(+), 45 deletions(-) delete mode 100644 keyboards/tv44/keymaps/smt/config.h (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/smt/config.h b/keyboards/tv44/keymaps/smt/config.h deleted file mode 100644 index f8f0a5078..000000000 --- a/keyboards/tv44/keymaps/smt/config.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -/** - *TV44 keymap definition macro - */ -#define KEYMAP_TV44( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ - K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \ - K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \ - K37, K38, K39, K40, K41, K42, K43, K44 \ -) { \ - { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \ - { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \ - { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \ - { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \ -} - -/** - *TV45 keymap definition macro (arrows layout) - */ -#define KEYMAP_TV45( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ - K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \ - K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \ - K37, K38, K39, K40, K41, K42, K43, K44, K45 \ -) { \ - { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \ - { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \ - { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \ - { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, K44, K45 } \ -} - -#endif diff --git a/keyboards/tv44/keymaps/smt/keymap.c b/keyboards/tv44/keymaps/smt/keymap.c index dfd624466..0540ad97e 100644 --- a/keyboards/tv44/keymaps/smt/keymap.c +++ b/keyboards/tv44/keymaps/smt/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_QWERTY] = KEYMAP_TV45( +[_QWERTY] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_COLEMAK] = KEYMAP_TV45( +[_COLEMAK] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_DVORAK] = KEYMAP_TV45( +[_DVORAK] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite | | | Home | End | | Left | Down | Right | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_LOWER] = KEYMAP_TV45( +[_LOWER] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -137,7 +137,7 @@ ALT_T(BACKLIT), _______ , _______ , KC_HOME , KC_END , _____ * | Brite | | | Play | Next | | Mute | Vol- | Vol+ | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_RAISE] = KEYMAP_TV45( +[_RAISE] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ ALL_T(KC_TILD),KC_EXLM,KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -159,7 +159,7 @@ ALT_T(BACKLIT), _______ , _______ , KC_MPLY , KC_MNXT , _____ * | | | | | | | | | | * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' */ -[_ADJUST] = KEYMAP_TV45( +[_ADJUST] = KEYMAP_ARROW( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ diff --git a/keyboards/tv44/keymaps/smt/readme.md b/keyboards/tv44/keymaps/smt/readme.md index 87bfbb04b..059fd1bbd 100644 --- a/keyboards/tv44/keymaps/smt/readme.md +++ b/keyboards/tv44/keymaps/smt/readme.md @@ -4,7 +4,7 @@ This keymap is based on a combination of my Planck keymap and [jeebak's TV44 lay I had been using something close to the default Minivan layout, but after spending a bit of time with the Planck and Preonic, I decided it would be better for me to try to standardize to some degree, where possible. -Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key, so I had to define a new KEYMAP_TV45 macro in config.h. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know. +Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know. ![smt's TV44 keymap](https://i.imgur.com/Y4n6eHj.png) @@ -21,9 +21,9 @@ Also, it's worth noting that my Minivan is one with the "arrows" layout, which h This key modifies with "Hyper" (see [Brett Terpstra's post](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) on this) when held, and outputs the code for Tab when tapped. On the Mac, I use KeyboardMaestro to remap my hyper-keys to do a lot of crazy things. 3. **Ctrl/Escape** - + I set up another mod-tap, this time for the Escape key that would act as a Control modifier when held. - + 4. **Alt/Backtick** I don't currently have LEDs on most of my keyboards, and I certainly don't want LED controls on the base layer of a 40%. -- cgit v1.2.3-24-g4f1b From b56a9a98990e5b28c5e5054b89c9b5f45a5290f8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 15 Jun 2017 12:46:25 -0700 Subject: tv44: update jeebak keymap to use new macros and remove custom ones --- keyboards/tv44/keymaps/jeebak/config.h | 21 --------------------- keyboards/tv44/keymaps/jeebak/keymap.c | 18 +++++++++--------- 2 files changed, 9 insertions(+), 30 deletions(-) delete mode 100644 keyboards/tv44/keymaps/jeebak/config.h (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/jeebak/config.h b/keyboards/tv44/keymaps/jeebak/config.h deleted file mode 100644 index a59ef2b70..000000000 --- a/keyboards/tv44/keymaps/jeebak/config.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -/** - *TV44 keymap definition macro - */ -#define KEYMAP_TV44( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ - K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \ - K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \ - K37, K38, K39, K40, K41, K42, K43, K44 \ -) { \ - { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \ - { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \ - { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \ - { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \ -} - -#endif diff --git a/keyboards/tv44/keymaps/jeebak/keymap.c b/keyboards/tv44/keymaps/jeebak/keymap.c index 0d0c07164..6cfa695ce 100644 --- a/keyboards/tv44/keymaps/jeebak/keymap.c +++ b/keyboards/tv44/keymaps/jeebak/keymap.c @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_QWERTY] = KEYMAP_TV44( +[_QWERTY] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_COLEMAK] = KEYMAP_TV44( +[_COLEMAK] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_DVORAK] = KEYMAP_TV44( +[_DVORAK] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite | | | | | | Vol- | Mute | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_LOWER] = KEYMAP_TV44( +[_LOWER] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite | | | | | | Vol- | Mute | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_RAISE] = KEYMAP_TV44( +[_RAISE] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -205,7 +205,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * seem to work on Mac. Presumably they'll work under Windows. */ -[_TOUCHCURSOR] = KEYMAP_TV44( +[_TOUCHCURSOR] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______ , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -228,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_MOUSECURSOR] = KEYMAP_TV44( +[_MOUSECURSOR] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______ , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -251,7 +251,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_PLOVER] = KEYMAP_TV44( +[_PLOVER] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ @@ -273,7 +273,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Reset | * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' */ -[_ADJUST] = KEYMAP_TV44( +[_ADJUST] = KEYMAP( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ -- cgit v1.2.3-24-g4f1b From f894103997498e0c4023b81dc10a44efc1e5ebd1 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 15 Jun 2017 12:47:57 -0700 Subject: tv44: update default keymap to use KEYMAP macro --- keyboards/tv44/keymaps/default/keymap.c | 78 +++++++++++++++++---------------- 1 file changed, 41 insertions(+), 37 deletions(-) (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/default/keymap.c b/keyboards/tv44/keymaps/default/keymap.c index b4a32d6f6..6979ac306 100644 --- a/keyboards/tv44/keymaps/default/keymap.c +++ b/keyboards/tv44/keymaps/default/keymap.c @@ -21,48 +21,52 @@ extern keymap_config_t keymap_config; #define DVORAK M(_DV) #define COLEMAK M(_CM) +// Curly braces have their own keys. These are defined to make them not mess up +// the grid in layer 2. +#define L_CURBR LSFT(KC_LBRC) +#define R_CURBR LSFT(KC_RBRC) + // Fillers to make layering more clear #define _______ KC_TRNS -#define XXXXXXX KC_NO 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 }, - {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1) }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) }, - {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } - }, - [_DV] = { /* Dvorak */ - {KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, - {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) }, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) }, - {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } - }, - [_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 }, - {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1) }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) }, - {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } - }, - [_L1] = { /* LAYER 1 */ - {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ }, - {_______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT }, - {_______, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ } - }, - [_L2] = { /* LAYER 2 */ - {_______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______ }, - {KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_4, KC_5, KC_6, KC_VOLU, KC_ENT }, - {_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______ }, - {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ } - }, - [_L3] = { /* LAYER 3 */ - {_______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______ }, - {KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______ }, - {KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______ }, - {_______, KC_LSFT, KC_B, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_C, _______, _______, XXXXXXX, _______ } - } + [_QW] = KEYMAP( /* 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, + MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_DV] = KEYMAP( /* Dvorak */ + KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1), + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_CM] = KEYMAP( /* 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, + MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_L1] = KEYMAP( /* LAYER 1 */ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______, + _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______ + ), + [_L2] = KEYMAP( /* LAYER 2 */ + _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, + KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT, + _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = KEYMAP( /* LAYER 3 */ + _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, + KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, + KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ + ) }; const uint16_t PROGMEM fn_actions[] = { -- cgit v1.2.3-24-g4f1b From 4cefb45a2d45f0b5f2cfcfda914f272e2cfeb956 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 15 Jun 2017 12:48:44 -0700 Subject: tv44: update xyverz keymap to use KEYMAP macro --- keyboards/tv44/keymaps/xyverz/keymap.c | 72 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index d710d8024..e3028019a 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -28,47 +28,47 @@ enum planck_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DVORAK] = { /* 0: Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } - }, + [_DVORAK] = KEYMAP( /* 0: Dvorak */ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT + ), - [_QWERTY] = { /* 1: 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_RSFT}, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } - }, + [_QWERTY] = KEYMAP( /* 1: 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_RSFT, + KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT + ), - [_COLEMAK] = { /* 2: 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_RSFT}, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } - }, + [_COLEMAK] = KEYMAP( /* 2: 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_RSFT, + KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT + ), - [_LOWER] = {/* 1: FN 1 */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, - {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} - }, + [_LOWER] = KEYMAP( /* 1: FN 1 */ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + KC_LEFT, KC_RGHT, _______, KC_DEL, KC_INS, _______, KC_UP, KC_DOWN + ), - [_RAISE] = { /* 2: FN 2 */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, - {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} - }, + [_RAISE] = KEYMAP( /* 2: FN 2 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, + KC_LEFT, KC_RGHT, _______, KC_DEL, KC_INS, _______, KC_UP, KC_DOWN + ), - [_ADJUST] = { - {KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, - {_______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_HOME, KC_END, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PGUP, XXXXXXX, KC_PGDN} - } + [_ADJUST] = KEYMAP( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_HOME, KC_END, _______, _______, _______, _______, KC_PGUP, KC_PGDN + ) }; void persistent_default_layer_set(uint16_t default_layer) { -- cgit v1.2.3-24-g4f1b From 29108d14777cd5770f5ba3365990eb0eb32c39a8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 15 Jun 2017 12:48:59 -0700 Subject: tv44: update tong92 keymap to use KEYMAP macro --- keyboards/tv44/keymaps/tong92/keymap.c | 62 +++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/tong92/keymap.c b/keyboards/tv44/keymaps/tong92/keymap.c index 4a16b3554..aba007c4d 100644 --- a/keyboards/tv44/keymaps/tong92/keymap.c +++ b/keyboards/tv44/keymaps/tong92/keymap.c @@ -31,12 +31,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ftn1 | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt | * `--------------------------------------------------------------------------' */ -[0] = { -{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_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT}, -{KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT }, -{FTN ,KC_LGUI,KC_LALT,LOWER,XXXXXXX,XXXXXXX,XXXXXXX,RAISE,KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT} -}, +[0] = KEYMAP_ARROW( +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_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT, +KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, +FTN, KC_LGUI,KC_LALT, LOWER, RAISE, KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT +), /* LOWER * ,--------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | @@ -48,12 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | END | LEFT| Down|RIGHT| * `--------------------------------------------------------------------------' */ -[1] = { -{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, -{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS }, -{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, -{XXXXXXX,_______,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} -}, +[1] = KEYMAP_ARROW( +KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, +_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS, +_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN, +XXXXXXX,_______,_______, _______,XXXXXXX, KC_END, KC_LEFT,KC_DOWN,KC_RIGHT +), /* RAISE * ,--------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | @@ -65,12 +65,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | END | LEFT| Down|RIGHT| * `--------------------------------------------------------------------------' */ -[2] ={ -{KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______ }, -{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE }, -{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, -{XXXXXXX,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} -}, +[2] = KEYMAP_ARROW( +KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______, +_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE, +_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN, +XXXXXXX,_______,_______, _______,_______, KC_END, KC_LEFT,KC_DOWN,KC_RIGHT +), /* FTN * ,--------------------------------------------------------------------------. * | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET | @@ -82,12 +82,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED | * `--------------------------------------------------------------------------' */ -[4] = { -{KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX ,S(KC_CAPS) ,XXXXXXX,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_DELT}, -{_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT) ,XXXXXXX ,LALT(KC_CAPS),KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX}, -{_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX ,LCTL(KC_CAPS),KC_SLCK,KC_HOME,XXXXXXX,KC_END,XXXXXXX,KC_RCTL}, -{_______,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)),LCTL(LALT(KC_DELT)),XXXXXXX,XXXXXXX,XXXXXXX,LGUI(LCTL(KC_F4)),MOUSE,XXXXXXX,XXXXXXX,M(0)} -}, +[4] = KEYMAP_ARROW( +KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX,S(KC_CAPS) ,XXXXXXX ,KC_PGUP,KC_UP ,KC_PGDN ,KC_PSCR,KC_DELT, +_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT),XXXXXXX,LALT(KC_CAPS) ,KC_CAPS ,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX, +_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX,LCTL(KC_CAPS) ,KC_SLCK ,KC_HOME,XXXXXXX,KC_END ,XXXXXXX,KC_RCTL, +_______,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)), LCTL(LALT(KC_DELT)),LGUI(LCTL(KC_F4)), MOUSE ,XXXXXXX ,XXXXXXX,M(0) +), /* MOUSE * ,--------------------------------------------------------------------------. * | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET | @@ -99,12 +99,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | GO_DEFAULT | GO_DEFAULT | | | | | * `--------------------------------------------------------------------------' */ -[10] ={ -{XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET}, -{XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX}, -{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX}, -{XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX} -} +[10] = KEYMAP_ARROW( +XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET, +XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX, +XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX, +XXXXXXX,XXXXXXX,XXXXXXX, GO_DEFT,GO_DEFT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX +) }; const uint16_t PROGMEM fn_actions[] = { @@ -135,4 +135,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; } return MACRO_NONE; -}; \ No newline at end of file +}; -- cgit v1.2.3-24-g4f1b From 19f0285a766e412db14e6cbe24532fdbff610af0 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 15 Jun 2017 23:21:01 +0300 Subject: Fix typo in BACKLIGHT_ENABLE --- keyboards/ergodox/infinity/animations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c index 675519e30..ebc08fde3 100644 --- a/keyboards/ergodox/infinity/animations.c +++ b/keyboards/ergodox/infinity/animations.c @@ -65,7 +65,7 @@ static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t #ifdef LCD_BACKLIGHT_ENABLE ret |= backlight_keyframe_animate_color(animation, state); #endif -#ifdef BACLIGHT_ENABLE +#ifdef BACKLIGHT_ENABLE ret |= led_keyframe_fade_in_all(animation, state); #endif return ret; @@ -76,7 +76,7 @@ static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_ #ifdef LCD_BACKLIGHT_ENABLE ret |= backlight_keyframe_animate_color(animation, state); #endif -#ifdef BACLIGHT_ENABLE +#ifdef BACKLIGHT_ENABLE ret |= led_keyframe_fade_out_all(animation, state); #endif return ret; -- cgit v1.2.3-24-g4f1b From 086aad0d7e5770e0be36498e5f569af5a23b111c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Fri, 16 Jun 2017 02:06:30 +0300 Subject: Make sure backlight is in the range 0-100 --- .../ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c index 0b48783d6..b4a5c84b0 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -302,7 +302,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { if (g->g.Backlight == (unsigned)g->p.ptr) return; unsigned val = (unsigned)g->p.ptr; - g->g.Backlight = val > 255 ? 255 : val; + g->g.Backlight = val > 100 ? 100 : val; g->flags |= GDISP_FLG_NEEDFLUSH; return; } -- cgit v1.2.3-24-g4f1b From d2a11b523bd6f1285a8e01e92ad24a3671212656 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Thu, 15 Jun 2017 21:57:50 -0400 Subject: LED control on the BL layer --- keyboards/s65_x/keymaps/default/keymap.c | 4 ++-- keyboards/s65_x/keymaps/iso/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index c0336755b..19e86f552 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ + * │ │BL On│BL St│ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_UL] = ANSI_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_TRNS, \ + KC_TRNS, BL_TOGG, BL_STEP, 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, RGB_TOG, RGB_MOD, 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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), diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index acbb44c03..2fc716239 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * │ │BL On│BL St│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ On │Mode │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_UL] = ISO_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_TRNS, \ + KC_TRNS, BL_TOGG, BL_STEP, 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, RGB_TOG, RGB_MOD, 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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), -- cgit v1.2.3-24-g4f1b From b4802d7567fafe846ba2223a622fd60f90db4a48 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Fri, 16 Jun 2017 11:57:43 -0400 Subject: Fix home and end to be on <> --- keyboards/s65_x/keymaps/default/keymap.c | 4 ++-- keyboards/s65_x/keymaps/iso/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index 19e86f552..2b7a091e3 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ + * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │ │Home │End │▒▒▒▒▒│ │Vol+ │ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ + KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY), /* 3: Locking layer for controlling the underglow diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index 2fc716239..96e3bb846 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│ │Vol+ │ │ + * │ │ │_UL │ │ │ │ │ │ │ │ Home│ End │▒▒▒▒▒│ │Vol+ │ │ * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ + KC_TRNS, KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY), /* 3: Locking layer for controlling the underglow -- cgit v1.2.3-24-g4f1b From ef4abfeb3105e03f752d9d1c7b0ad4edecbef75a Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 16 Jun 2017 10:57:53 -0700 Subject: ergodox: initial addition of belak theme Imported from external repo https://github.com/belak/ergodox-layout at commit 233008ad8c46a85cb118fca0be093c3e751075b0 --- keyboards/ergodox/keymaps/belak/LICENSE | 21 ++ keyboards/ergodox/keymaps/belak/Makefile | 6 + keyboards/ergodox/keymaps/belak/README.md | 79 ++++++ keyboards/ergodox/keymaps/belak/keymap.c | 367 +++++++++++++++++++++++++++ keyboards/ergodox/keymaps/belak/visualizer.c | 49 ++++ 5 files changed, 522 insertions(+) create mode 100644 keyboards/ergodox/keymaps/belak/LICENSE create mode 100644 keyboards/ergodox/keymaps/belak/Makefile create mode 100644 keyboards/ergodox/keymaps/belak/README.md create mode 100644 keyboards/ergodox/keymaps/belak/keymap.c create mode 100644 keyboards/ergodox/keymaps/belak/visualizer.c (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/belak/LICENSE b/keyboards/ergodox/keymaps/belak/LICENSE new file mode 100644 index 000000000..b462ba30e --- /dev/null +++ b/keyboards/ergodox/keymaps/belak/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Kaleb Elwert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/keyboards/ergodox/keymaps/belak/Makefile b/keyboards/ergodox/keymaps/belak/Makefile new file mode 100644 index 000000000..8a6beea59 --- /dev/null +++ b/keyboards/ergodox/keymaps/belak/Makefile @@ -0,0 +1,6 @@ +TAP_DANCE_ENABLE=yes +UNICODE_ENABLE=yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/belak/README.md b/keyboards/ergodox/keymaps/belak/README.md new file mode 100644 index 000000000..30484e6e2 --- /dev/null +++ b/keyboards/ergodox/keymaps/belak/README.md @@ -0,0 +1,79 @@ +# Belak's Ergodox Layout + +This has been based off of [emacs\_osx\_dk](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/emacs_osx_dk) +from the main qmk repo. However, I've taken some of the ideas for the thumbs +from [dvorak\_emacs](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/dvorak_emacs) +and tweaked it a bit based on the keycaps I have. + +This keyboard is intended for use in emacs (one of the main reasons for easy +access to modifiers) but it could be useful in other instances as well. + +The main repo is used as a testbed, so sometimes the layout may be in a strange +state. The qmk version should be relatively stable. + +## Instructions + +This is currently being used on a regular ergodox, but it should work fine on +the infinity as well. Though, you may have to modify the commands to build and +flash the firmware to match the separate halves as defined in the infinity +documentation. + +If you are using this keymap in the qmk repo, you should be able to just run +`make ergodox-belak-teensy`. If you're using this externally (I sometimes make +changes before syncing them to qmk), use the following instructions: + +1. Clone the main qmk repo +2. Clone this to `$QMK/keyboards/ergodox/keymaps/belak-external` +3. Run `make ergodox-belak-external-teensy` from the root of the qmk repo. + +## Changelog + +Fifth Revision + +* Change layer keys to tap-dance keys which cycle through additional layers +* Add a few emoji keys (in preparation for an emoji layer) + +Fourth Revision + +* Remove media layer +* Add a layer which swaps control and gui on the thumb keys. +* Add some basic code to save settings to the eeprom +* Save the state of the keys swapped in the thumb in the eeprom + +Third Revision + +* Add numpad layer and remove numpad from symbols layer +* Disable media layer +* Add arrow keys on ijkl to the symbols layer +* Replace ALT on held enter and held delete with GUI (for better OSX + compatibility, as there's already an ALT key relatively close) +* Replace keys above enter and delete with temporary layer switch buttons not + matching the other layer switch for that hand. +* Reindent and space out most of the layer definitions + +Second Revision + +* Clean up definitions to make differences between layers easier to see +* Remove old LCD code +* Add new LCD code based on fredizzimo's branch + +First Revision + +* Reverse grave and escape + +Initial Version + +* Copy from emacs\_osx\_dk +* "Fix" right alt +* Change thumb keys to match default layout (backspace, delete, enter, space) +* Add modifiers to thumb keys (ctrl to backspace and space, alt to delete and + enter) +* Replace the RAlt below the brackets with LGui and RGui +* Remove LCtrl and RCtrl from the keys above shift +* Add browser forward, and move browser back +* "Fix" the order of volume keys + +## Repository + +The original code for this is kept at https://github.com/belak/ergodox-layout and +is synced to qmk every few main revisions. diff --git a/keyboards/ergodox/keymaps/belak/keymap.c b/keyboards/ergodox/keymaps/belak/keymap.c new file mode 100644 index 000000000..d10567a78 --- /dev/null +++ b/keyboards/ergodox/keymaps/belak/keymap.c @@ -0,0 +1,367 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "eeconfig.h" + +#define LAYER_ON(pos) ((layer_state) & (1<<(pos))) +#define _______ KC_TRNS + +#define EECONFIG_BELAK_MAGIC (uint16_t)0xBE42 + +// NOTE: This is just a number that's a bit beyond the end of what's already +// defined. As there is no other define we can base this on, it may need to be +// changed in the future. The initial value here is used as a placeholder with a +// magic word, similar to the normal eeconfig. Note that all the storage being +// used needs to fit inside the 32 bytes of the Ergodox Infinity. +#define EECONFIG_BELAK (uint16_t *)16 + +// The correct way to do this would be how the normal eeconfig handles it and +// use a bitfield. However, the eeprom has a ton of space which isn't being +// used so I don't really care and have a separate byte for every setting. +#define EECONFIG_BELAK_SWAP_GUI_CTRL (uint8_t *)18 + +static uint8_t swap_gui_ctrl = 0; +static uint8_t td_led_override = 0; + +enum belak_keycodes { + // Function codes + BEL_F0 = SAFE_RANGE, + BEL_F1, + + E_SHRUG, + E_TFLIP, + E_TSET, +}; + +inline void tap(uint16_t keycode) { + register_code(keycode); + unregister_code(keycode); +}; + +// TODO: Add LED support to the tap dance by using the advanced macro +#define LTOGGLE TD(TD_LAYER_TOGGLE) + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define NUMP 2 // numpad +#define SWPH 3 // swap gui/ctrl on the hands + +enum belak_td { + TD_LAYER_TOGGLE = 0, +}; + +void belak_td_each(qk_tap_dance_state_t *state, void *user_data); +void belak_td_finished(qk_tap_dance_state_t *state, void *user_data); +void belak_td_reset(qk_tap_dance_state_t *state, void *user_data); + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN_ADVANCED(belak_td_each, belak_td_finished, belak_td_reset), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | \ | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| LGui | | RGui |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Layers| LCtrl| Left | Right| LAlt | | RAlt | Up | Down | RCtrl|Layers| + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | ~L2 | Ins | | Grv | ~L1 | + * ,-------|------|------| |------+-------+-------. + * | Back | | Home | | PgUp | | | + * | Space | Del |------| |------| Enter | Space | + * | | | End | | PgDn | | | + * `---------------------' `----------------------' + */ + [BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + LTOGGLE, KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT, + MO(NUMP),KC_INS, + KC_HOME, + CTL_T(KC_BSPC),GUI_T(KC_DEL),KC_END, + // right hand + TG(NUMP), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_RALT,KC_UP, KC_DOWN,KC_RCTRL, LTOGGLE, + KC_GRV, MO(SYMB), + KC_PGUP, + KC_PGDN, GUI_T(KC_ENT), CTL_T(KC_SPC) + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | | Up | | | F12 | + * |--------+------+------+------+------+------| TFLIP| | TSET |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | Left | Down | Rght | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | SHRUG| | | & | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LClear| | | | | | | | | |LClear| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | TOGL | | | | TOGL | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [SYMB] = KEYMAP( + // left hand + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, E_TFLIP, + _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, E_TSET, + _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, E_SHRUG, + BEL_F1, _______, _______, _______, _______, + BEL_F0, _______, + _______, + _______, _______, _______, + // right hand + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_UP, _______, KC_UP, _______, _______, KC_F12, + KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + _______, KC_AMPR, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BEL_F1, + _______, BEL_F0, + _______, + _______, _______, _______ + ), +/* Keymap 2: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LClear| | | | | | 0 | 0 | . | = |LClear| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | TOGL | | | | TOGL | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + [NUMP] = KEYMAP( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + BEL_F1, _______, _______, _______, _______, + BEL_F0, _______, + _______, + _______, _______, _______, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, + _______, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + KC_0, KC_0, KC_DOT, KC_EQL, BEL_F1, + _______, BEL_F0, + _______, + _______, _______, _______ + ), +/* Keymap 3: Swap control and gui on the thumb */ + [SWPH] = KEYMAP( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + GUI_T(KC_BSPC), CTL_T(KC_DEL), _______, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, CTL_T(KC_ENT), GUI_T(KC_SPC) + ), +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + // If our magic word wasn't set properly, we need to zero out the settings. + if (eeprom_read_word(EECONFIG_BELAK) != EECONFIG_BELAK_MAGIC) { + eeprom_update_word(EECONFIG_BELAK, EECONFIG_BELAK_MAGIC); + eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, 0); + } + + if (eeprom_read_byte(EECONFIG_BELAK_SWAP_GUI_CTRL)) { + layer_on(SWPH); + swap_gui_ctrl = 1; + } +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + switch (td_led_override) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // Layer 1 and 2 are both overlay layers, so they could both be on. This + // means we can't use the lazy check of checking for the first significant + // bit. + if (LAYER_ON(SYMB)) { + ergodox_right_led_1_on(); + } + if (LAYER_ON(NUMP)) { + ergodox_right_led_2_on(); + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case BEL_F0: + if(record->event.pressed){ + swap_gui_ctrl = !swap_gui_ctrl; + eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, swap_gui_ctrl); + + if (swap_gui_ctrl) { + layer_on(SWPH); + } else { + layer_off(SWPH); + } + + return false; + } + break; + case BEL_F1: + if(record->event.pressed){ + layer_off(SYMB); + layer_off(NUMP); + + return false; + } + break; + case E_SHRUG: // ¯\_(ツ)_/¯ + if (record->event.pressed) { + process_unicode((0x00AF|QK_UNICODE), record); // Hand + tap(KC_BSLS); // Arm + register_code(KC_RSFT); + tap(KC_UNDS); // Arm + tap(KC_LPRN); // Head + unregister_code(KC_RSFT); + process_unicode((0x30C4|QK_UNICODE), record); // Face + register_code(KC_RSFT); + tap(KC_RPRN); // Head + tap(KC_UNDS); // Arm + unregister_code(KC_RSFT); + tap(KC_SLSH); // Arm + process_unicode((0x00AF|QK_UNICODE), record); // Hand + } + return false; + break; + case E_TFLIP: // (╯°□°)╯ ︵ ┻━┻ + if (record->event.pressed) { + register_code(KC_RSFT); + tap(KC_9); + unregister_code(KC_RSFT); + process_unicode((0x256F|QK_UNICODE), record); // Arm + process_unicode((0x00B0|QK_UNICODE), record); // Eye + process_unicode((0x25A1|QK_UNICODE), record); // Mouth + process_unicode((0x00B0|QK_UNICODE), record); // Eye + register_code(KC_RSFT); + tap(KC_0); + unregister_code(KC_RSFT); + process_unicode((0x256F|QK_UNICODE), record); // Arm + tap(KC_SPC); + process_unicode((0x0361|QK_UNICODE), record); // Flippy + tap(KC_SPC); + process_unicode((0x253B|QK_UNICODE), record); // Table + process_unicode((0x2501|QK_UNICODE), record); // Table + process_unicode((0x253B|QK_UNICODE), record); // Table + } + return false; + break; + case E_TSET: // ┬──┬ ノ( ゜-゜ノ) + if (record->event.pressed) { + process_unicode((0x252C|QK_UNICODE), record); // Table + process_unicode((0x2500|QK_UNICODE), record); // Table + process_unicode((0x2500|QK_UNICODE), record); // Table + process_unicode((0x252C|QK_UNICODE), record); // Table + tap(KC_SPC); + process_unicode((0x30CE|QK_UNICODE), record); // Arm + register_code(KC_RSFT); + tap(KC_9); + unregister_code(KC_RSFT); + tap(KC_SPC); + process_unicode((0x309C|QK_UNICODE), record); // Eye + tap(KC_MINS); + process_unicode((0x309C|QK_UNICODE), record); // Eye + process_unicode((0x30CE|QK_UNICODE), record); // Arm + register_code(KC_RSFT); + tap(KC_0); + unregister_code(KC_RSFT); + } + return false; + break; + } + + return true; +} + +void belak_td_each(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + td_led_override = 1; + break; + case 2: + td_led_override = 2; + break; + default: + reset_tap_dance(state); + } +} + +void belak_td_finished(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + layer_on(SYMB); + break; + case 2: + layer_on(NUMP); + break; + } + td_led_override = 0; +} + +void belak_td_reset(qk_tap_dance_state_t *state, void *user_data) { + td_led_override = 0; +} diff --git a/keyboards/ergodox/keymaps/belak/visualizer.c b/keyboards/ergodox/keymaps/belak/visualizer.c new file mode 100644 index 000000000..b92890a66 --- /dev/null +++ b/keyboards/ergodox/keymaps/belak/visualizer.c @@ -0,0 +1,49 @@ +/* +Copyright 2017 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "simple_visualizer.h" + +static void get_visualizer_layer_and_color(visualizer_state_t* state) { + uint8_t saturation = 60; + if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { + saturation = 255; + } + + if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF); + state->layer_text = "Media"; + } + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF); + state->layer_text = "Symbols"; + } + else { + state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF); + state->layer_text = "Base"; + } +} -- cgit v1.2.3-24-g4f1b From e9a4a5e961f6839b5ad34ecd2ba875b02a640642 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 16 Jun 2017 12:51:30 -0700 Subject: tv44: add belak keymap --- keyboards/tv44/keymaps/belak/Makefile | 10 +++++++ keyboards/tv44/keymaps/belak/keymap.c | 52 ++++++++++++++++++++++++++++++++++ keyboards/tv44/keymaps/belak/readme.md | 6 ++++ 3 files changed, 68 insertions(+) create mode 100644 keyboards/tv44/keymaps/belak/Makefile create mode 100644 keyboards/tv44/keymaps/belak/keymap.c create mode 100644 keyboards/tv44/keymaps/belak/readme.md (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/belak/Makefile b/keyboards/tv44/keymaps/belak/Makefile new file mode 100644 index 000000000..7f63f0e0a --- /dev/null +++ b/keyboards/tv44/keymaps/belak/Makefile @@ -0,0 +1,10 @@ +#BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +#EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +#CONSOLE_ENABLE = no # Console for debug(+400) +#COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/tv44/keymaps/belak/keymap.c b/keyboards/tv44/keymaps/belak/keymap.c new file mode 100644 index 000000000..64d47ebcf --- /dev/null +++ b/keyboards/tv44/keymaps/belak/keymap.c @@ -0,0 +1,52 @@ +#include "tv44.h" +#include "action_layer.h" +#include "eeconfig.h" + +// Layer names. We stick to 3 letters if possible so MO(NAME) fits in 7 +// characters and doesn't mess with the grid. +#define _QW 0 +#define _L1 1 +#define _L2 2 +#define _L3 3 + +// Curly braces have their own keys. These are defined so they don't mess up the +// grid in layer 2. +#define L_CURBR LSFT(KC_LBRC) +#define R_CURBR LSFT(KC_RBRC) + +#define BE_ESC LSFT_T(KC_ESC) +#define L2_SLSH LT(_L2, KC_SLSH) +#define L3_QUOT LT(_L3, KC_QUOT) +#define L3_TAB LT(_L3, KC_TAB) + +// Fillers to make layering more clear +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = KEYMAP_ARROW_COMMAND( /* Qwerty */ + L3_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, L3_QUOT, + BE_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, L2_SLSH, + KC_LCTL, MO(_L2), KC_LALT, KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_L1] = KEYMAP_ARROW_COMMAND( /* LAYER 1 */ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______, + _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = KEYMAP_ARROW_COMMAND( /* LAYER 2 */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT, + KC_LSFT, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = KEYMAP_ARROW_COMMAND( /* LAYER 3 */ + _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, + KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/tv44/keymaps/belak/readme.md b/keyboards/tv44/keymaps/belak/readme.md new file mode 100644 index 000000000..f990c578a --- /dev/null +++ b/keyboards/tv44/keymaps/belak/readme.md @@ -0,0 +1,6 @@ +# Belak's TV44 (TV46?) layout + +This layout is roughly based on the low-rider arrow-southpaw layout from [the +configurator](http://minivan.config.thevankeyboards.com) with a number of +changes to make it easier to use and add in missing keys (like adding / and ' +to the main layer) -- cgit v1.2.3-24-g4f1b From 722adce09516b109303fd0ed2de227ea8143ec54 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 16 Jun 2017 17:08:00 -0700 Subject: tv44: Rearrange belak keymap and add some tap dance magic --- keyboards/tv44/keymaps/belak/Makefile | 4 +- keyboards/tv44/keymaps/belak/keymap.c | 105 +++++++++++++++++++++++++--------- 2 files changed, 82 insertions(+), 27 deletions(-) (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/belak/Makefile b/keyboards/tv44/keymaps/belak/Makefile index 7f63f0e0a..611241124 100644 --- a/keyboards/tv44/keymaps/belak/Makefile +++ b/keyboards/tv44/keymaps/belak/Makefile @@ -1,9 +1,11 @@ #BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) #EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -#CONSOLE_ENABLE = no # Console for debug(+400) +#CONSOLE_ENABLE = yes # Console for debug(+400) +#DEBUG_ENABLE = yes #COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +TAP_DANCE_ENABLE = yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/tv44/keymaps/belak/keymap.c b/keyboards/tv44/keymaps/belak/keymap.c index 64d47ebcf..703a1c2dd 100644 --- a/keyboards/tv44/keymaps/belak/keymap.c +++ b/keyboards/tv44/keymaps/belak/keymap.c @@ -1,5 +1,6 @@ #include "tv44.h" #include "action_layer.h" +#include "debug.h" #include "eeconfig.h" // Layer names. We stick to 3 letters if possible so MO(NAME) fits in 7 @@ -14,39 +15,91 @@ #define L_CURBR LSFT(KC_LBRC) #define R_CURBR LSFT(KC_RBRC) -#define BE_ESC LSFT_T(KC_ESC) +#define L1_TAB LT(_L1, KC_TAB) +#define L2_ESC LT(_L2, KC_ESC) #define L2_SLSH LT(_L2, KC_SLSH) #define L3_QUOT LT(_L3, KC_QUOT) -#define L3_TAB LT(_L3, KC_TAB) + +// Tap dance magic +#define TD_LGUI TD(BE_TD_GUI) +#define TD_LCTL TD(BE_TD_CTL) +#define TD_LALT TD(BE_TD_ALT) + +enum belak_td { + BE_TD_GUI = 0, + BE_TD_CTL, + BE_TD_ALT, +}; + +void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data); +void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data); + +qk_tap_dance_action_t tap_dance_actions[] = { + [BE_TD_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), + [BE_TD_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), + [BE_TD_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), +}; + +uint16_t tap_dance_keys[] = { + [BE_TD_GUI] = KC_LGUI, + [BE_TD_CTL] = KC_LCTL, + [BE_TD_ALT] = KC_LALT, +}; // Fillers to make layering more clear #define _______ KC_TRNS const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = KEYMAP_ARROW_COMMAND( /* Qwerty */ - L3_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, L3_QUOT, - BE_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, L2_SLSH, - KC_LCTL, MO(_L2), KC_LALT, KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - [_L1] = KEYMAP_ARROW_COMMAND( /* LAYER 1 */ - KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______, - _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT, - _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_L2] = KEYMAP_ARROW_COMMAND( /* LAYER 2 */ - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT, - KC_LSFT, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_L3] = KEYMAP_ARROW_COMMAND( /* LAYER 3 */ - _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, - KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, - KC_LSFT, _______, _______, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ - ) + [_QW] = KEYMAP_ARROW_COMMAND( /* Qwerty */ + L2_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + L1_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, L3_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, L2_SLSH, + TD_LCTL, MO(_L3), TD_LALT, TD_LGUI, KC_ENT, KC_SPC, MO(_L1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_L1] = KEYMAP_ARROW_COMMAND( /* LAYER 1 */ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______, + _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = KEYMAP_ARROW_COMMAND( /* LAYER 2 */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT, + _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = KEYMAP_ARROW_COMMAND( /* LAYER 3 */ + _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, + KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, + _______, _______, _______, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; const uint16_t PROGMEM fn_actions[] = {}; + +// Tap dance functions +void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + register_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE])); + send_keyboard_report(); + break; + case 2: + layer_on(_L2); + break; + case 3: + layer_off(_L2); + layer_on(_L1); + break; + default: + reset_tap_dance(state); + } +} + +void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data) { + layer_off(_L1); + layer_off(_L2); + unregister_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE])); + send_keyboard_report(); +} -- cgit v1.2.3-24-g4f1b From a621c7f88b5db83d7e59452087f66bcc01f9dfc3 Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sun, 11 Jun 2017 14:21:57 +0200 Subject: Don't include the console by default on the KMAC --- keyboards/kmac/keymaps/default/Makefile | 2 +- keyboards/kmac/keymaps/winkeyless/Makefile | 2 +- keyboards/kmac/rules.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kmac/keymaps/default/Makefile b/keyboards/kmac/keymaps/default/Makefile index a8a44889d..0f3f1280b 100644 --- a/keyboards/kmac/keymaps/default/Makefile +++ b/keyboards/kmac/keymaps/default/Makefile @@ -21,7 +21,7 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # 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 diff --git a/keyboards/kmac/keymaps/winkeyless/Makefile b/keyboards/kmac/keymaps/winkeyless/Makefile index a8a44889d..0f3f1280b 100644 --- a/keyboards/kmac/keymaps/winkeyless/Makefile +++ b/keyboards/kmac/keymaps/winkeyless/Makefile @@ -21,7 +21,7 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # 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 diff --git a/keyboards/kmac/rules.mk b/keyboards/kmac/rules.mk index 54c9aa256..240e189f9 100644 --- a/keyboards/kmac/rules.mk +++ b/keyboards/kmac/rules.mk @@ -57,7 +57,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) +CONSOLE_ENABLE ?= no # Console for debug(+400) COMMAND_ENABLE ?= yes # Commands for debug and configuration CUSTOM_MATRIX ?= yes # Custom matrix file # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -- cgit v1.2.3-24-g4f1b From be002137f9e1a7aa5718d9f1b9cccf093e2a5d04 Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sun, 11 Jun 2017 14:22:40 +0200 Subject: Fix some KMAC code formating --- keyboards/kmac/keymaps/default/Makefile | 4 ++-- keyboards/kmac/keymaps/default/keymap.c | 12 ++++++------ keyboards/kmac/keymaps/winkeyless/Makefile | 4 ++-- keyboards/kmac/keymaps/winkeyless/keymap.c | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kmac/keymaps/default/Makefile b/keyboards/kmac/keymaps/default/Makefile index 0f3f1280b..1313af46b 100644 --- a/keyboards/kmac/keymaps/default/Makefile +++ b/keyboards/kmac/keymaps/default/Makefile @@ -15,7 +15,7 @@ # QMK Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) @@ -29,7 +29,7 @@ MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR diff --git a/keyboards/kmac/keymaps/default/keymap.c b/keyboards/kmac/keymaps/default/keymap.c index 3553e8492..5c1285749 100644 --- a/keyboards/kmac/keymaps/default/keymap.c +++ b/keyboards/kmac/keymaps/default/keymap.c @@ -27,12 +27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = KEYMAP( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), [_FL] = KEYMAP( BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ diff --git a/keyboards/kmac/keymaps/winkeyless/Makefile b/keyboards/kmac/keymaps/winkeyless/Makefile index 0f3f1280b..1313af46b 100644 --- a/keyboards/kmac/keymaps/winkeyless/Makefile +++ b/keyboards/kmac/keymaps/winkeyless/Makefile @@ -15,7 +15,7 @@ # QMK Build Options -# change to "no" to disable the options, or define them in the Makefile in +# change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) @@ -29,7 +29,7 @@ MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR diff --git a/keyboards/kmac/keymaps/winkeyless/keymap.c b/keyboards/kmac/keymaps/winkeyless/keymap.c index f986dec27..aea4102f7 100644 --- a/keyboards/kmac/keymaps/winkeyless/keymap.c +++ b/keyboards/kmac/keymaps/winkeyless/keymap.c @@ -27,12 +27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = KEYMAP_WINKEYLESS( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), [_FL] = KEYMAP_WINKEYLESS( BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ -- cgit v1.2.3-24-g4f1b From ba945c5e775090f4ca466ba009b3a7b66294da45 Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sun, 11 Jun 2017 14:23:27 +0200 Subject: Correct layer switching in KMAC keymap readmes --- keyboards/kmac/keymaps/default/readme.md | 2 +- keyboards/kmac/keymaps/winkeyless/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kmac/keymaps/default/readme.md b/keyboards/kmac/keymaps/default/readme.md index d384e0d6a..aaa6f9bf2 100644 --- a/keyboards/kmac/keymaps/default/readme.md +++ b/keyboards/kmac/keymaps/default/readme.md @@ -6,7 +6,7 @@ See [keymap.c](keymap.c) for details. ## Layers -The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. +The keymap have two layers. To access the functions on the second layer, hold down `Fn` and press the corresponding key. ### Layer 1: Default Layer ,---. ,---------------. ,---------------. ,---------------. ,-----------. diff --git a/keyboards/kmac/keymaps/winkeyless/readme.md b/keyboards/kmac/keymaps/winkeyless/readme.md index b921f7b0f..9c579e9f5 100644 --- a/keyboards/kmac/keymaps/winkeyless/readme.md +++ b/keyboards/kmac/keymaps/winkeyless/readme.md @@ -7,7 +7,7 @@ See [keymap.c](keymap.c) for details. ## Layers -The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. +The keymap have two layers. To access the functions on the second layer, hold down `Fn` and press the corresponding key. ### Layer 1: Default Layer ,---. ,---------------. ,---------------. ,---------------. ,-----------. -- cgit v1.2.3-24-g4f1b From 67e150a08a0ca6f76837af12dd5d376b353d9942 Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sun, 11 Jun 2017 14:24:18 +0200 Subject: Enable backlight support by default for KMAC --- keyboards/kmac/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/kmac/rules.mk b/keyboards/kmac/rules.mk index 240e189f9..2305de412 100644 --- a/keyboards/kmac/rules.mk +++ b/keyboards/kmac/rules.mk @@ -64,7 +64,7 @@ CUSTOM_MATRIX ?= yes # Custom matrix file SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE ?= yes # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -- cgit v1.2.3-24-g4f1b From df26ede1313c4f20805be60f534dbfcac54527ba Mon Sep 17 00:00:00 2001 From: Mathias Andersson Date: Sat, 17 Jun 2017 15:26:46 +0200 Subject: Unify KMAC code indentation It's a little unclear what the style guidelines are for the QMK project. But I figured that I should at least keep the indentation consistent within the KMAC part. --- keyboards/kmac/keymaps/default/Makefile | 2 +- keyboards/kmac/keymaps/default/keymap.c | 78 +++++++++++++++--------------- keyboards/kmac/keymaps/winkeyless/Makefile | 2 +- keyboards/kmac/keymaps/winkeyless/keymap.c | 78 +++++++++++++++--------------- keyboards/kmac/kmac.c | 26 +++++----- keyboards/kmac/matrix.c | 2 +- 6 files changed, 94 insertions(+), 94 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kmac/keymaps/default/Makefile b/keyboards/kmac/keymaps/default/Makefile index 1313af46b..8e2d011b3 100644 --- a/keyboards/kmac/keymaps/default/Makefile +++ b/keyboards/kmac/keymaps/default/Makefile @@ -33,5 +33,5 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this w SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR - include ../../../../Makefile + include ../../../../Makefile endif diff --git a/keyboards/kmac/keymaps/default/keymap.c b/keyboards/kmac/keymaps/default/keymap.c index 5c1285749..f3ac93abf 100644 --- a/keyboards/kmac/keymaps/default/keymap.c +++ b/keyboards/kmac/keymaps/default/keymap.c @@ -26,22 +26,22 @@ #define _FL 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [_FL] = KEYMAP( - BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), + [_BL] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_FL] = KEYMAP( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), }; const uint16_t PROGMEM fn_actions[] = { @@ -50,32 +50,32 @@ 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) { + // MACRODOWN only works in this function + switch(id) { case 0: - if (record->event.pressed) { - SEND_STRING("The"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("The"); + return false; + } + break; case 1: - if (record->event.pressed) { - SEND_STRING("Custom"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("Custom"); + return false; + } + break; case 2: - if (record->event.pressed) { - SEND_STRING("Keyboard"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("Keyboard"); + return false; + } + break; case 3: - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); - } - break; - } + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); + } + break; + } return MACRO_NONE; }; @@ -89,7 +89,7 @@ void matrix_scan_user(void) { } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; + return true; } void led_set_user(uint8_t usb_led) { diff --git a/keyboards/kmac/keymaps/winkeyless/Makefile b/keyboards/kmac/keymaps/winkeyless/Makefile index 1313af46b..8e2d011b3 100644 --- a/keyboards/kmac/keymaps/winkeyless/Makefile +++ b/keyboards/kmac/keymaps/winkeyless/Makefile @@ -33,5 +33,5 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this w SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR - include ../../../../Makefile + include ../../../../Makefile endif diff --git a/keyboards/kmac/keymaps/winkeyless/keymap.c b/keyboards/kmac/keymaps/winkeyless/keymap.c index aea4102f7..e3d66ea08 100644 --- a/keyboards/kmac/keymaps/winkeyless/keymap.c +++ b/keyboards/kmac/keymaps/winkeyless/keymap.c @@ -26,22 +26,22 @@ #define _FL 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = KEYMAP_WINKEYLESS( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [_FL] = KEYMAP_WINKEYLESS( - BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), + [_BL] = KEYMAP_WINKEYLESS( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_FL] = KEYMAP_WINKEYLESS( + BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), }; const uint16_t PROGMEM fn_actions[] = { @@ -50,32 +50,32 @@ 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) { + // MACRODOWN only works in this function + switch(id) { case 0: - if (record->event.pressed) { - SEND_STRING("The"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("The"); + return false; + } + break; case 1: - if (record->event.pressed) { - SEND_STRING("Custom"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("Custom"); + return false; + } + break; case 2: - if (record->event.pressed) { - SEND_STRING("Keyboard"); - return false; - } - break; + if (record->event.pressed) { + SEND_STRING("Keyboard"); + return false; + } + break; case 3: - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); - } - break; - } + if (record->event.pressed) { + return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); + } + break; + } return MACRO_NONE; }; @@ -89,7 +89,7 @@ void matrix_scan_user(void) { } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; + return true; } void led_set_user(uint8_t usb_led) { diff --git a/keyboards/kmac/kmac.c b/keyboards/kmac/kmac.c index 34647e81a..6b54294b4 100644 --- a/keyboards/kmac/kmac.c +++ b/keyboards/kmac/kmac.c @@ -16,24 +16,24 @@ #include "kmac.h" void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - led_init_ports(); - matrix_init_user(); + // put your keyboard start-up code here + // runs once when the firmware starts up + led_init_ports(); + matrix_init_user(); } void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) + // put your looping keyboard code here + // runs every cycle (a lot) - matrix_scan_user(); + matrix_scan_user(); } bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware - return process_record_user(keycode, record); + return process_record_user(keycode, record); } void led_init_ports(void) { @@ -64,12 +64,12 @@ void led_set_kb(uint8_t usb_led) { PORTE |= (1<<6); // HI } - led_set_user(usb_led); + led_set_user(usb_led); } void backlight_init_ports(void) { - DDRB |= (1<<1) | (1<<2) | (1<<3) | (1<<4); // OUT - DDRD |= (1<<7); // OUT + DDRB |= (1<<1) | (1<<2) | (1<<3) | (1<<4); // OUT + DDRD |= (1<<7); // OUT } /* Backlight pin configuration diff --git a/keyboards/kmac/matrix.c b/keyboards/kmac/matrix.c index bab638bdf..cfafa90e6 100644 --- a/keyboards/kmac/matrix.c +++ b/keyboards/kmac/matrix.c @@ -103,7 +103,7 @@ bool matrix_is_on(uint8_t row, uint8_t col) inline matrix_row_t matrix_get_row(uint8_t row) { - return matrix[row]; + return matrix[row]; } void matrix_print(void) -- cgit v1.2.3-24-g4f1b From a5ba30338f8a1c8e7faaf90f4b05e7c5515d00b3 Mon Sep 17 00:00:00 2001 From: jprMesh Date: Tue, 7 Mar 2017 11:44:58 -0500 Subject: Atreus52- Initial Atreus52 file creation. --- keyboards/atreus62/keymaps/atreus52/Makefile | 5 ++ keyboards/atreus62/keymaps/atreus52/README.md | 10 +++ keyboards/atreus62/keymaps/atreus52/config.h | 23 +++++++ keyboards/atreus62/keymaps/atreus52/keymap.c | 90 +++++++++++++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 keyboards/atreus62/keymaps/atreus52/Makefile create mode 100644 keyboards/atreus62/keymaps/atreus52/README.md create mode 100644 keyboards/atreus62/keymaps/atreus52/config.h create mode 100644 keyboards/atreus62/keymaps/atreus52/keymap.c (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/Makefile b/keyboards/atreus62/keymaps/atreus52/Makefile new file mode 100644 index 000000000..046aec273 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/Makefile @@ -0,0 +1,5 @@ +TAP_DANCE_ENABLE = yes +NKRO_ENABLE = true +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no diff --git a/keyboards/atreus62/keymaps/atreus52/README.md b/keyboards/atreus62/keymaps/atreus52/README.md new file mode 100644 index 000000000..245df7deb --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/README.md @@ -0,0 +1,10 @@ + + +Atreus52 Modification +======================= + +Firmware for my custom keyboard based on the Atreus layout, but with 5 rows and only 5 columns per hand. +More documentation coming soon. + +# License + GPL-3+ diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h new file mode 100644 index 000000000..80c3739b9 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/config.h @@ -0,0 +1,23 @@ +#include "../../config.h" + +#undef MANUFACTURER +#undef PRODUCT +#undef DESCRIPTION +#undef MATRIX_ROWS +#undef MATRIX_COLS +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS + +/* USB Device descriptor parameter */ +#define MANUFACTURER Mesh Industries +#define PRODUCT Atreus52 Treeboard +#define DESCRIPTION q.m.k. keyboard firmware for Atreus52 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 11 + +// wiring of each half +#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6 } + diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c new file mode 100644 index 000000000..c64e9d498 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -0,0 +1,90 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "menelaus.h" + +#define ____ KC_TRNS +#define xxxx KC_NO + +// Layers +#define QW 0 +#define DV 1 +#define QL 2 +#define DL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = KEYMAP( + 1, 2, 3, 4, 5, ____, 6, 7, 8, 9, 0, \ + Q, W, E, R, T, ____, Y, U, I, O, P, \ + A, S, D, F, G, ____, H, J, K, L, SCLN, \ + Z, X, C, V, B, BSPC, N, M, COMM, DOT, SLSH, \ + ESC, TAB, LCTL, MO(QL),LSFT, ENT, SPC, LALT, LGUI, LEFT, RGHT ), + +[_QUP] = KEYMAP( + F1, F2, F3, F4, F5, ____, F6, F7, F8, F9, F10, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, LEFT, DOWN, UP, RGHT, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ), + +[_DVORAK] = KEYMAP( + 1, 2, 3, 4, 5, ____, 6, 7, 8, 9, 0, \ + QUOT, COMM, DOT, P, Y, ____, F, G, C, R, L, \ + A, O, E, U, I, ____, D, H, T, N, S, \ + SCLN, Q, J, K, X, BSPC, B, M, W, V, Z, \ + ESC, TAB, LCTL, MO(DP),LSFT, ENT, SPC, LALT, LGUI, LEFT, RGHT ), + +[_QUP] = KEYMAP( + F1, F2, F3, F4, F5, ____, F6, F7, F8, F9, F10, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, LEFT, DOWN, UP, RGHT, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ) + +}; + +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; +}; + +static uint8_t qw_dv_swap_state = 0; + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + if (keycode == KC_LGUI) { + if (record->event.pressed) + qw_dv_swap_state |= B00000001; + else + qw_dv_swap_state &= ~(B00000001); + } + if (keycode == KC_LCTL) { + if (record->event.pressed) + qw_dv_swap_state |= B00000010; + else + qw_dv_swap_state &= ~(B00000010); + } + + if (qw_dv_swap_state == B00000011) { + uint8_t layer = biton32(layer_state); + if (layer == QW) + TO(DV); + else if (layer == DV) + TO(QW); + return true; + } +} -- cgit v1.2.3-24-g4f1b From bb99d7117c24ba0ef5fa80a166c2ab46d0b1f250 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Wed, 15 Mar 2017 13:42:54 -0700 Subject: Atreus52- Changed to KEYMAP macro format. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 60 +++++++++++++--------------- 1 file changed, 27 insertions(+), 33 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index c64e9d498..65440e6a2 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -1,10 +1,4 @@ -// this is the style you want to emulate. -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, - -#include "menelaus.h" - -#define ____ KC_TRNS -#define xxxx KC_NO +#include "atreus62.h" // Layers #define QW 0 @@ -13,38 +7,38 @@ #define DL 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = KEYMAP( - 1, 2, 3, 4, 5, ____, 6, 7, 8, 9, 0, \ - Q, W, E, R, T, ____, Y, U, I, O, P, \ - A, S, D, F, G, ____, H, J, K, L, SCLN, \ - Z, X, C, V, B, BSPC, N, M, COMM, DOT, SLSH, \ - ESC, TAB, LCTL, MO(QL),LSFT, ENT, SPC, LALT, LGUI, LEFT, RGHT ), +[QW] = KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ + NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ + NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ + NO, ESC, TAB, LCTL, FN1, LSFT, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), -[_QUP] = KEYMAP( - F1, F2, F3, F4, F5, ____, F6, F7, F8, F9, F10, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, LEFT, DOWN, UP, RGHT, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ), +[QL] = KEYMAP( + NO, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), -[_DVORAK] = KEYMAP( - 1, 2, 3, 4, 5, ____, 6, 7, 8, 9, 0, \ - QUOT, COMM, DOT, P, Y, ____, F, G, C, R, L, \ - A, O, E, U, I, ____, D, H, T, N, S, \ - SCLN, Q, J, K, X, BSPC, B, M, W, V, Z, \ - ESC, TAB, LCTL, MO(DP),LSFT, ENT, SPC, LALT, LGUI, LEFT, RGHT ), - -[_QUP] = KEYMAP( - F1, F2, F3, F4, F5, ____, F6, F7, F8, F9, F10, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, LEFT, DOWN, UP, RGHT, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ) +[DV] = KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ + NO, A, O, E, U, I, D, H, T, N, S, NO, \ + NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ + NO, ESC, TAB, LCTL, F2, LSFT, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), +[DL] = KEYMAP( + NO, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) }; const uint16_t PROGMEM fn_actions[] = { - + [1] = ACTION_LAYER_MOMENTARY(QL), // Qwerty FN layer + [2] = ACTION_LAYER_MOMENTARY(DV) // Dvorak FN layer }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -- cgit v1.2.3-24-g4f1b From f9eb11a674f71ab2669f87442e1e99354f46d3be Mon Sep 17 00:00:00 2001 From: jprmesh Date: Wed, 15 Mar 2017 13:43:16 -0700 Subject: Atreus52- Fixed Qwerty Dvorak switch --- keyboards/atreus62/keymaps/atreus52/keymap.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 65440e6a2..7e856066e 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -62,23 +62,19 @@ static uint8_t qw_dv_swap_state = 0; bool process_record_user (uint16_t keycode, keyrecord_t *record) { if (keycode == KC_LGUI) { if (record->event.pressed) - qw_dv_swap_state |= B00000001; + qw_dv_swap_state |= 0b00000001; else - qw_dv_swap_state &= ~(B00000001); + qw_dv_swap_state &= ~(0b00000001); } if (keycode == KC_LCTL) { if (record->event.pressed) - qw_dv_swap_state |= B00000010; + qw_dv_swap_state |= 0b00000010; else - qw_dv_swap_state &= ~(B00000010); + qw_dv_swap_state &= ~(0b00000010); } - if (qw_dv_swap_state == B00000011) { - uint8_t layer = biton32(layer_state); - if (layer == QW) - TO(DV); - else if (layer == DV) - TO(QW); - return true; + if (qw_dv_swap_state == 0b00000011) { + layer_invert(DV); } + return true; } -- cgit v1.2.3-24-g4f1b From 17e81baab3e5dc442c553080316626c9c8ece4c0 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Wed, 15 Mar 2017 14:27:11 -0700 Subject: Atreus52- Fixed config. --- keyboards/atreus62/keymaps/atreus52/Makefile | 1 - keyboards/atreus62/keymaps/atreus52/config.h | 13 ------------- 2 files changed, 14 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/Makefile b/keyboards/atreus62/keymaps/atreus52/Makefile index 046aec273..efa309d20 100644 --- a/keyboards/atreus62/keymaps/atreus52/Makefile +++ b/keyboards/atreus62/keymaps/atreus52/Makefile @@ -1,4 +1,3 @@ -TAP_DANCE_ENABLE = yes NKRO_ENABLE = true MOUSEKEY_ENABLE = no EXTRAKEY_ENABLE = yes diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h index 80c3739b9..4c8b73dcc 100644 --- a/keyboards/atreus62/keymaps/atreus52/config.h +++ b/keyboards/atreus62/keymaps/atreus52/config.h @@ -3,21 +3,8 @@ #undef MANUFACTURER #undef PRODUCT #undef DESCRIPTION -#undef MATRIX_ROWS -#undef MATRIX_COLS -#undef MATRIX_ROW_PINS -#undef MATRIX_COL_PINS /* USB Device descriptor parameter */ #define MANUFACTURER Mesh Industries #define PRODUCT Atreus52 Treeboard #define DESCRIPTION q.m.k. keyboard firmware for Atreus52 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 11 - -// wiring of each half -#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6 } - -- cgit v1.2.3-24-g4f1b From b236e51b69be3420f2850722a6f3668c5e6b5fbc Mon Sep 17 00:00:00 2001 From: jprmesh Date: Wed, 15 Mar 2017 17:32:58 -0700 Subject: Atreus52- finished initial keymap layout. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 51 +++++++++++++++------------- 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 7e856066e..6731376c6 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -1,44 +1,47 @@ #include "atreus62.h" // Layers -#define QW 0 -#define DV 1 -#define QL 2 -#define DL 3 +#define QWERTY 0 +#define DVORAK 1 +#define RAISE 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[QW] = KEYMAP( +[QWERTY] = KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, ESC, TAB, LCTL, FN1, LSFT, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), + NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), -[QL] = KEYMAP( - NO, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), - -[DV] = KEYMAP( +[DVORAK] = KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ NO, A, O, E, U, I, D, H, T, N, S, NO, \ NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, ESC, TAB, LCTL, F2, LSFT, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), + NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), -[DL] = KEYMAP( - NO, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) +[RAISE] = KEYMAP( + NO, ESC, TRNS, MPRV, MPLY, MNXT, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ + NO, TRNS, TRNS, GRV, FN13, FN14, BSLS, FN16, FN18, LBRC, QUOT, NO, \ + NO, FN12, MINS, FN11, EQL, FN15, SLSH, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN17, FN19, RBRC, FN20, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(QL), // Qwerty FN layer - [2] = ACTION_LAYER_MOMENTARY(DV) // Dvorak FN layer + [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer + + [10] = OSM(MOD_LSFT), // One shot shift + [11] = LSFT(KC_EQUAL), // + + [12] = LSFT(KC_MINUS), // _ + [13] = LSFT(KC_SLASH), // ? + [14] = LSFT(KC_BSLASH), // | + [15] = LSFT(KC_GRAVE), // ~ + [16] = LSFT(KC_9), // ( + [17] = LSFT(KC_0), // ) + [18] = LSFT(KC_LBRC), // { + [19] = LSFT(KC_RBRC), // } + [20] = LSFT(KC_QUOT) // " }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -74,7 +77,7 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { } if (qw_dv_swap_state == 0b00000011) { - layer_invert(DV); + layer_invert(DVORAK); } return true; } -- cgit v1.2.3-24-g4f1b From 3c2c489768cf77cd5573a39305198c4c4b2027f1 Mon Sep 17 00:00:00 2001 From: jprMesh Date: Fri, 17 Mar 2017 09:11:20 -0400 Subject: Atreus52- Fixed spacing and changed to KC_KEYMAP macro. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 50 ++++++++++++++-------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 6731376c6..31f94340c 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -6,21 +6,21 @@ #define RAISE 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[QWERTY] = KEYMAP( - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ - NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ - NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), +[QWERTY] = KC_KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ + NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ + NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ + NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), -[DVORAK] = KEYMAP( - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ - NO, A, O, E, U, I, D, H, T, N, S, NO, \ - NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), +[DVORAK] = KC_KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ + NO, A, O, E, U, I, D, H, T, N, S, NO, \ + NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ + NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), -[RAISE] = KEYMAP( +[RAISE] = KC_KEYMAP( NO, ESC, TRNS, MPRV, MPLY, MNXT, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ NO, TRNS, TRNS, GRV, FN13, FN14, BSLS, FN16, FN18, LBRC, QUOT, NO, \ NO, FN12, MINS, FN11, EQL, FN15, SLSH, LEFT, DOWN, UP, RGHT, NO, \ @@ -46,18 +46,18 @@ 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; + // 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; }; static uint8_t qw_dv_swap_state = 0; -- cgit v1.2.3-24-g4f1b From 133908da74245037086e8a79ba0c062368797832 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Sun, 7 May 2017 22:01:35 -0400 Subject: Atreus52- Some keymap changes. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 31f94340c..bb511d353 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -11,37 +11,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), + NO, UP, DOWN, LCTL, LALT, FN1, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [DVORAK] = KC_KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ NO, A, O, E, U, I, D, H, T, N, S, NO, \ NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, ESC, TAB, LCTL, FN0, FN10, BSPC, ENT, SPC, LALT, LGUI, LEFT, RGHT, NO ), + NO, UP, DOWN, LCTL, LALT, FN1, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [RAISE] = KC_KEYMAP( - NO, ESC, TRNS, MPRV, MPLY, MNXT, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ - NO, TRNS, TRNS, GRV, FN13, FN14, BSLS, FN16, FN18, LBRC, QUOT, NO, \ - NO, FN12, MINS, FN11, EQL, FN15, SLSH, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN17, FN19, RBRC, FN20, NO, \ + NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ + NO, TAB, ESC, GRV, QUES, PIPE, BSLS, LPRN, LCBR, LBRC, QUOT, NO, \ + NO, UNDS, MINS, PLUS, EQL, TILD, SLSH, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, FN2, RPRN, RCBR, RBRC, DQUO, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer - - [10] = OSM(MOD_LSFT), // One shot shift - [11] = LSFT(KC_EQUAL), // + - [12] = LSFT(KC_MINUS), // _ - [13] = LSFT(KC_SLASH), // ? - [14] = LSFT(KC_BSLASH), // | - [15] = LSFT(KC_GRAVE), // ~ - [16] = LSFT(KC_9), // ( - [17] = LSFT(KC_0), // ) - [18] = LSFT(KC_LBRC), // { - [19] = LSFT(KC_RBRC), // } - [20] = LSFT(KC_QUOT) // " + [1] = OSM(MOD_LSFT), // One shot shift + [2] = LALT(KC_TAB) // Alt Tab key }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -- cgit v1.2.3-24-g4f1b From 1552fd6ae13aee6ddc113e2c32a3acf608aa97c0 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Mon, 8 May 2017 00:21:30 -0400 Subject: Atreus52- Last changes to config to get it workin. --- keyboards/atreus62/keymaps/atreus52/config.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h index 4c8b73dcc..ba0eaf0db 100644 --- a/keyboards/atreus62/keymaps/atreus52/config.h +++ b/keyboards/atreus62/keymaps/atreus52/config.h @@ -3,8 +3,16 @@ #undef MANUFACTURER #undef PRODUCT #undef DESCRIPTION +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#undef DIODE_DIRECTION /* USB Device descriptor parameter */ #define MANUFACTURER Mesh Industries #define PRODUCT Atreus52 Treeboard #define DESCRIPTION q.m.k. keyboard firmware for Atreus52 + +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } + +#define DIODE_DIRECTION COL2ROW -- cgit v1.2.3-24-g4f1b From 56026dd4df41c852534432fe7bed0c5dbd1fe2d9 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Mon, 8 May 2017 06:09:05 -0400 Subject: Atreus52- Swapped thumb keys. --- keyboards/atreus62/atreus62.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/atreus62.h b/keyboards/atreus62/atreus62.h index ca5cda8a8..d0bf68adc 100644 --- a/keyboards/atreus62/atreus62.h +++ b/keyboards/atreus62/atreus62.h @@ -35,8 +35,8 @@ void promicro_bootloader_jmp(bool program); { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_NO, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b }, \ { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_NO, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b }, \ { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_NO, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b }, \ - { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k46, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ - { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ + { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k47, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ + { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ } #endif -- cgit v1.2.3-24-g4f1b From 7837d96b6eb18131a78925e679402257f33aab95 Mon Sep 17 00:00:00 2001 From: Jonas Date: Wed, 31 May 2017 14:34:44 +0000 Subject: Atreus52- Reworked keymap to be more 40% like. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index bb511d353..aef87d6d5 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -4,6 +4,7 @@ #define QWERTY 0 #define DVORAK 1 #define RAISE 2 +#define LOWER 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTY] = KC_KEYMAP( @@ -11,27 +12,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, UP, DOWN, LCTL, LALT, FN1, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + NO, FN2, LALT, LCTL, FN1, FN3, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [DVORAK] = KC_KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ NO, A, O, E, U, I, D, H, T, N, S, NO, \ NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, UP, DOWN, LCTL, LALT, FN1, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + NO, FN2, LALT, LCTL, FN1, FN3, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [RAISE] = KC_KEYMAP( NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ - NO, TAB, ESC, GRV, QUES, PIPE, BSLS, LPRN, LCBR, LBRC, QUOT, NO, \ - NO, UNDS, MINS, PLUS, EQL, TILD, SLSH, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, FN2, RPRN, RCBR, RBRC, DQUO, NO, \ + NO, TILD, GRV, DQUO, QUOT, LCBR, RCBR, EQL, PLUS, MINS, QUES, NO, \ + NO, ESC, TAB, BSLS, SLS, LPRN, RPRN, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, PIPE, UNDS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), + +[LOWER] = KC_KEYMAP( + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \ + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) + }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer - [1] = OSM(MOD_LSFT), // One shot shift - [2] = LALT(KC_TAB) // Alt Tab key + [1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer + [2] = ACTION_LAYER_TOGGLE(NAV), + [3] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPC) }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -- cgit v1.2.3-24-g4f1b From a8992a2cfe2e44bbd662591f95b3d7cbd531e658 Mon Sep 17 00:00:00 2001 From: jprmesh Date: Wed, 31 May 2017 22:16:21 -0400 Subject: Atreus52- Added Nav layer keymap. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index aef87d6d5..4a57da6b5 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -5,6 +5,7 @@ #define DVORAK 1 #define RAISE 2 #define LOWER 3 +#define NAV 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTY] = KC_KEYMAP( @@ -24,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [RAISE] = KC_KEYMAP( NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ NO, TILD, GRV, DQUO, QUOT, LCBR, RCBR, EQL, PLUS, MINS, QUES, NO, \ - NO, ESC, TAB, BSLS, SLS, LPRN, RPRN, LEFT, DOWN, UP, RGHT, NO, \ + NO, ESC, TAB, BSLS, SLSH, LPRN, RPRN, LEFT, DOWN, UP, RGHT, NO, \ NO, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, PIPE, UNDS, TRNS, TRNS, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), @@ -33,6 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \ NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), + +[NAV] = KC_KEYMAP( + NO, GRV, 1, 2, 3, 4, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, 5, Q, W, E, R, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, 6, A, S, D, F, TRNS, LEFT, UP, RGHT, TRNS, NO, \ + NO, 7, Z, X, C, V, TRNS, TRNS, DOWN, TRNS, TRNS, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) }; @@ -40,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer [1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer - [2] = ACTION_LAYER_TOGGLE(NAV), + [2] = ACTION_LAYER_TOGGLE(NAV), // Nav layer [3] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPC) }; -- cgit v1.2.3-24-g4f1b From 3b9fabb9aa6fad391063825017878d47a4bdfc08 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 8 Jun 2017 17:43:16 -0400 Subject: Atreus52- BDO keymap. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 4a57da6b5..0c44d6bd6 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -5,7 +5,7 @@ #define DVORAK 1 #define RAISE 2 #define LOWER 3 -#define NAV 4 +#define BDO 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTY] = KC_KEYMAP( @@ -36,19 +36,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), -[NAV] = KC_KEYMAP( - NO, GRV, 1, 2, 3, 4, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, 5, Q, W, E, R, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, 6, A, S, D, F, TRNS, LEFT, UP, RGHT, TRNS, NO, \ - NO, 7, Z, X, C, V, TRNS, TRNS, DOWN, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ) +[BDO] = KC_KEYMAP( + NO, ESC, 1, 2, 3, 4, 5, NO, NO, NO, NO, NO, \ + NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ + NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ + NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ + NO, LCTL, SPC, SPC, SPC, SPC, 0, 9, SLSH, NO, NO, NO, FN2, NO ) }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer [1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer - [2] = ACTION_LAYER_TOGGLE(NAV), // Nav layer + [2] = ACTION_LAYER_TOGGLE(BDO), // BDO layer [3] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPC) }; -- cgit v1.2.3-24-g4f1b From 3007d01718245672a3fea646f74ecfbe1735443c Mon Sep 17 00:00:00 2001 From: Jonas Date: Fri, 9 Jun 2017 22:00:43 -0400 Subject: Atreus52- Modified BDO map. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 0c44d6bd6..ca77ee122 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -37,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), [BDO] = KC_KEYMAP( - NO, ESC, 1, 2, 3, 4, 5, NO, NO, NO, NO, NO, \ + NO, ESC, 1, 2, 3, 4, 5, 0, SLSH, U, C, NO, \ NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ - NO, LCTL, SPC, SPC, SPC, SPC, 0, 9, SLSH, NO, NO, NO, FN2, NO ) + NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, FN2, NO ) }; -- cgit v1.2.3-24-g4f1b From 4c2f04986adf97f02e336d5a47825ccf304916af Mon Sep 17 00:00:00 2001 From: Jonas Rogers Date: Sat, 17 Jun 2017 21:14:32 -0400 Subject: Atreus52- added software reset key. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index ca77ee122..7023606c7 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -6,6 +6,7 @@ #define RAISE 2 #define LOWER 3 #define BDO 4 +#define RESETL 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [QWERTY] = KC_KEYMAP( @@ -13,21 +14,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, FN2, LALT, LCTL, FN1, FN3, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [DVORAK] = KC_KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ NO, A, O, E, U, I, D, H, T, N, S, NO, \ NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, FN2, LALT, LCTL, FN1, FN3, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), [RAISE] = KC_KEYMAP( NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ NO, TILD, GRV, DQUO, QUOT, LCBR, RCBR, EQL, PLUS, MINS, QUES, NO, \ NO, ESC, TAB, BSLS, SLSH, LPRN, RPRN, LEFT, DOWN, UP, RGHT, NO, \ NO, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, PIPE, UNDS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, NO ), [LOWER] = KC_KEYMAP( NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ @@ -41,7 +42,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ - NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, FN2, NO ) + NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, FN2, NO ), + +[RESETL] = KEYMAP( + KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN3,KC_NO ) }; @@ -49,7 +57,7 @@ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer [1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer [2] = ACTION_LAYER_TOGGLE(BDO), // BDO layer - [3] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPC) + [3] = ACTION_LAYER_TOGGLE(RESETL) // RESET layer }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -- cgit v1.2.3-24-g4f1b From 85d688e92ca2992c649411b62c70bc8c7ad888ab Mon Sep 17 00:00:00 2001 From: Jonas Rogers Date: Sat, 17 Jun 2017 21:16:06 -0400 Subject: Atreus52- made dvorak layer default. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 7023606c7..3812d45fd 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -1,21 +1,14 @@ #include "atreus62.h" // Layers -#define QWERTY 0 -#define DVORAK 1 +#define DVORAK 0 +#define QWERTY 1 #define RAISE 2 #define LOWER 3 #define BDO 4 #define RESETL 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[QWERTY] = KC_KEYMAP( - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ - NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ - NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), - [DVORAK] = KC_KEYMAP( NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ @@ -23,6 +16,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), +[QWERTY] = KC_KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ + NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ + NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ + NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + [RAISE] = KC_KEYMAP( NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ NO, TILD, GRV, DQUO, QUOT, LCBR, RCBR, EQL, PLUS, MINS, QUES, NO, \ -- cgit v1.2.3-24-g4f1b From a284245f7776da50865c626bdd5ee5af78df220e Mon Sep 17 00:00:00 2001 From: Jonas Rogers Date: Sat, 17 Jun 2017 22:51:50 -0400 Subject: Atreus52- moved parens and braces to left hand. --- keyboards/atreus62/keymaps/atreus52/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c index 3812d45fd..4adfb9e3c 100644 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [RAISE] = KC_KEYMAP( NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ - NO, TILD, GRV, DQUO, QUOT, LCBR, RCBR, EQL, PLUS, MINS, QUES, NO, \ - NO, ESC, TAB, BSLS, SLSH, LPRN, RPRN, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, PIPE, UNDS, TRNS, TRNS, NO, \ + NO, TILD, GRV, LCBR, RCBR, DQUO, QUOT, EQL, PLUS, MINS, QUES, NO, \ + NO, ESC, TAB, LPRN, RPRN, BSLS, SLSH, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, LBRC, RBRC, TRNS, INS, PIPE, UNDS, TRNS, TRNS, NO, \ NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, NO ), [LOWER] = KC_KEYMAP( -- cgit v1.2.3-24-g4f1b From 1a8042ae914f71e80b56b022d15606cf760cd255 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 17 Jun 2017 23:11:37 -0400 Subject: Added personal keymap with underglow, right shift, numpad, and bright hidden behind raise/lower --- keyboards/planck/keymaps/chance/Makefile | 6 + keyboards/planck/keymaps/chance/config.h | 16 ++ keyboards/planck/keymaps/chance/keymap.c | 386 +++++++++++++++++++++++++++++++ 3 files changed, 408 insertions(+) create mode 100644 keyboards/planck/keymaps/chance/Makefile create mode 100644 keyboards/planck/keymaps/chance/config.h create mode 100644 keyboards/planck/keymaps/chance/keymap.c (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/chance/Makefile b/keyboards/planck/keymaps/chance/Makefile new file mode 100644 index 000000000..00d09e974 --- /dev/null +++ b/keyboards/planck/keymaps/chance/Makefile @@ -0,0 +1,6 @@ +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +AUDIO_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/chance/config.h b/keyboards/planck/keymaps/chance/config.h new file mode 100644 index 000000000..3a1ab5856 --- /dev/null +++ b/keyboards/planck/keymaps/chance/config.h @@ -0,0 +1,16 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define TAPPING_TERM 165 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +//#define BACKLIGHT_ENABLE +#endif diff --git a/keyboards/planck/keymaps/chance/keymap.c b/keyboards/planck/keymaps/chance/keymap.c new file mode 100644 index 000000000..ae7d23945 --- /dev/null +++ b/keyboards/planck/keymaps/chance/keymap.c @@ -0,0 +1,386 @@ +// 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" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _NUMPAD 6 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + NUMPAD, + EXT_NUM, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |En/sh | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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, F(0) }, + {KC_LCTRL,KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | | | | | | Play | Vol- | Vol+ | Next | + * `-----------------------------------------------------------------------------------' + */ +[_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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,KC_HOME, KC_END, _______}, + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} +}, +\ +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | | PgUp | PgDn |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | | | | | | Play | Vol- | Vol+ | Next | + * `-----------------------------------------------------------------------------------' + */ +[_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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______}, + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Numpad + * ,-----------------------------------------------------------------------------------. + * | Tab | | | ^ | / | 7 | 8 | 9 | - | = | | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | | | % | * | 4 | 5 | 6 | + | ( | ) | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shft | | | $ | Del | 1 | 2 | 3 |Enter | [ | ] |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | Ctrl | Alt | Gui | | 0 | . | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = { + {KC_TAB, XXXXXXX, XXXXXXX, KC_CIRC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_EQL, XXXXXXX, KC_BSPC}, + {KC_ESC, XXXXXXX, XXXXXXX, KC_PERC, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LPRN, KC_RPRN, XXXXXXX}, + {KC_LSFT, XXXXXXX, XXXXXXX, KC_DLR, KC_DEL, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LBRC, KC_RBRC, KC_ENT }, + {EXT_NUM, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_P0, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Login| | | | | | Num |Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Caps |RGBTOG|RGBMOD| Hue+ | Hue- | Sat+ | Sat- | Val+ | Val- | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, + { M(1) , _______, _______, _______, _______, _______, NUMPAD, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), +}; + +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); + register_code(KC_RCTL); + register_code(KC_ESC); + } + else{ + clear_keyboard(); + } + break; + case 1: + if (record->event.pressed) { + register_code(KC_LCTL); + register_code(KC_LALT); + register_code(KC_DEL); + } + else{ + clear_keyboard(); + } + break; + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case NUMPAD: + if (record->event.pressed) { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_NUMPAD); + } + return false; + break; + case EXT_NUM: + if (record->event.pressed) { + layer_off(_NUMPAD); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif -- cgit v1.2.3-24-g4f1b From 6ba22b5f5eac1e7ee0b8a73fc682aed2f35c0189 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 18 Jun 2017 16:50:25 +0300 Subject: Don't define RGBLED_NUM in let-split khord keymap It's already defined correctly by the parent keyboard project, and was causing problems for rev1, where the pin is different. --- keyboards/lets_split/keymaps/khord/config.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/khord/config.h b/keyboards/lets_split/keymaps/khord/config.h index d6a99a8b2..2d845827b 100644 --- a/keyboards/lets_split/keymaps/khord/config.h +++ b/keyboards/lets_split/keymaps/khord/config.h @@ -20,9 +20,7 @@ along with this program. If not, see . #define USE_SERIAL #define EE_HANDS -#undef RGBLED_NUM #define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 12 #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" -- cgit v1.2.3-24-g4f1b From 2fd670bec096aa12970aa329d841ae1338f4debe Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 18 Jun 2017 17:07:20 +0300 Subject: Add missing include to Ergodox Belak keymap --- keyboards/ergodox/keymaps/belak/keymap.c | 1 + 1 file changed, 1 insertion(+) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/belak/keymap.c b/keyboards/ergodox/keymaps/belak/keymap.c index d10567a78..45f63539b 100644 --- a/keyboards/ergodox/keymaps/belak/keymap.c +++ b/keyboards/ergodox/keymaps/belak/keymap.c @@ -2,6 +2,7 @@ #include "debug.h" #include "action_layer.h" #include "eeconfig.h" +#include "eeprom.h" #define LAYER_ON(pos) ((layer_state) & (1<<(pos))) #define _______ KC_TRNS -- cgit v1.2.3-24-g4f1b From f2e1609801a2588a459673347ffab50662660c20 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 18 Jun 2017 12:33:14 -0400 Subject: remove hardware files, move arrow pad --- keyboards/arrow_pad/Makefile | 3 - keyboards/arrow_pad/arrow_pad.c | 1 - keyboards/arrow_pad/arrow_pad.h | 13 - keyboards/arrow_pad/config.h | 160 - keyboards/arrow_pad/keymaps/default/keymap.c | 163 - keyboards/arrow_pad/keymaps/pad_21/Makefile | 17 - keyboards/arrow_pad/keymaps/pad_21/config.h | 158 - keyboards/arrow_pad/keymaps/pad_21/keymap.c | 160 - keyboards/arrow_pad/keymaps/pad_24/Makefile | 17 - keyboards/arrow_pad/keymaps/pad_24/config.h | 160 - keyboards/arrow_pad/keymaps/pad_24/keymap.c | 163 - keyboards/arrow_pad/readme.md | 133 - keyboards/arrow_pad/rules.mk | 70 - keyboards/handwired/arrow_pad/Makefile | 3 + keyboards/handwired/arrow_pad/arrow_pad.c | 1 + keyboards/handwired/arrow_pad/arrow_pad.h | 13 + keyboards/handwired/arrow_pad/config.h | 160 + .../handwired/arrow_pad/keymaps/default/keymap.c | 163 + .../handwired/arrow_pad/keymaps/pad_21/Makefile | 17 + .../handwired/arrow_pad/keymaps/pad_21/config.h | 158 + .../handwired/arrow_pad/keymaps/pad_21/keymap.c | 160 + .../handwired/arrow_pad/keymaps/pad_24/Makefile | 17 + .../handwired/arrow_pad/keymaps/pad_24/config.h | 160 + .../handwired/arrow_pad/keymaps/pad_24/keymap.c | 163 + keyboards/handwired/arrow_pad/readme.md | 133 + keyboards/handwired/arrow_pad/rules.mk | 70 + keyboards/lets_split/imgs/left.stl | Bin 106984 -> 0 bytes .../lets_split/imgs/lets split rev2 case.iges | 17931 ------------------- keyboards/lets_split/imgs/letssplitv2.svg | 4077 ----- keyboards/lets_split/imgs/plate.stl | Bin 102484 -> 0 bytes keyboards/lets_split/imgs/right.stl | Bin 135384 -> 0 bytes keyboards/lets_split/readme.md | 1 + 32 files changed, 1219 insertions(+), 23226 deletions(-) delete mode 100644 keyboards/arrow_pad/Makefile delete mode 100644 keyboards/arrow_pad/arrow_pad.c delete mode 100644 keyboards/arrow_pad/arrow_pad.h delete mode 100644 keyboards/arrow_pad/config.h delete mode 100644 keyboards/arrow_pad/keymaps/default/keymap.c delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/Makefile delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/config.h delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/keymap.c delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/Makefile delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/config.h delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/keymap.c delete mode 100644 keyboards/arrow_pad/readme.md delete mode 100644 keyboards/arrow_pad/rules.mk create mode 100644 keyboards/handwired/arrow_pad/Makefile create mode 100644 keyboards/handwired/arrow_pad/arrow_pad.c create mode 100644 keyboards/handwired/arrow_pad/arrow_pad.h create mode 100644 keyboards/handwired/arrow_pad/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/Makefile create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/Makefile create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c create mode 100644 keyboards/handwired/arrow_pad/readme.md create mode 100644 keyboards/handwired/arrow_pad/rules.mk delete mode 100644 keyboards/lets_split/imgs/left.stl delete mode 100644 keyboards/lets_split/imgs/lets split rev2 case.iges delete mode 100644 keyboards/lets_split/imgs/letssplitv2.svg delete mode 100644 keyboards/lets_split/imgs/plate.stl delete mode 100644 keyboards/lets_split/imgs/right.stl (limited to 'keyboards') diff --git a/keyboards/arrow_pad/Makefile b/keyboards/arrow_pad/Makefile deleted file mode 100644 index 4e2a6f00f..000000000 --- a/keyboards/arrow_pad/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.c b/keyboards/arrow_pad/arrow_pad.c deleted file mode 100644 index 381934aa8..000000000 --- a/keyboards/arrow_pad/arrow_pad.c +++ /dev/null @@ -1 +0,0 @@ -#include "arrow_pad.h" \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.h b/keyboards/arrow_pad/arrow_pad.h deleted file mode 100644 index 62882b9b5..000000000 --- a/keyboards/arrow_pad/arrow_pad.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef ARROW_PAD_H -#define ARROW_PAD_H - -#include "quantum.h" -#include "matrix.h" -#include "keymap.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#include -#include - -#endif diff --git a/keyboards/arrow_pad/config.h b/keyboards/arrow_pad/config.h deleted file mode 100644 index 3d8d8709a..000000000 --- a/keyboards/arrow_pad/config.h +++ /dev/null @@ -1,160 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT GoldPad -#define DESCRIPTION A custom keyboard - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/default/keymap.c b/keyboards/arrow_pad/keymaps/default/keymap.c deleted file mode 100644 index 5647f75af..000000000 --- a/keyboards/arrow_pad/keymaps/default/keymap.c +++ /dev/null @@ -1,163 +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 "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, KM_EQU, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ - { KM___7, KM___8, KM___9, KM_EQU }, \ - { KM___4, KM___5, KM___6, KM_PLS }, \ - { KM___1, KM___2, KM___3, KC_NO }, \ - { KM___0, KC_NO, KM_DOT, KM_ENT } \ -} - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, KC_PEQL, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ - KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, _______, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4097 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT Arrow Pad 21 -#define DESCRIPTION 21-Key QMK Assistant - -/* key matrix size */ -#define MATRIX_ROWS 2 -#define MATRIX_COLS 11 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { D3, D5 } -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/arrow_pad/keymaps/pad_21/keymap.c deleted file mode 100644 index 28917a5d9..000000000 --- a/keyboards/arrow_pad/keymaps/pad_21/keymap.c +++ /dev/null @@ -1,160 +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 "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, ___PLS, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ -} - - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, XXXXXXX, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, XXXXXXX, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \ - KC_LEFT, M_COPY, KC_RGHT, M_CTALT, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, XXXXXXX, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT Arrow Pad 24 -#define DESCRIPTION 24-Key QMK Assistant - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/arrow_pad/keymaps/pad_24/keymap.c deleted file mode 100644 index 5647f75af..000000000 --- a/keyboards/arrow_pad/keymaps/pad_24/keymap.c +++ /dev/null @@ -1,163 +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 "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, KM_EQU, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ - { KM___7, KM___8, KM___9, KM_EQU }, \ - { KM___4, KM___5, KM___6, KM_PLS }, \ - { KM___1, KM___2, KM___3, KC_NO }, \ - { KM___0, KC_NO, KM_DOT, KM_ENT } \ -} - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, KC_PEQL, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ - KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, _______, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< pin - (Silkscreen Name if different) - - - -Note: -U2 pin 2 is the Num Lock LED and is active low. - -U2 pin 1 -Clear (Num Lock) - 1 -Enter - 2 -Esc (ESC) - 2 - - -U2 pin 3 -- - 1 - -U2 pin 4 -7 - 2 -8 - 2 -9 - 2 - -U2 pin 5 -* - 2 -Delete (BACK SPACE) - 2 - -U2 pin 6 -1 - 2 -0 - 2 -. - 2 -, - 2 - -U2 pin 7 -4 - 2 -5 - 2 -6 - 2 - -U2 pin 8 -Tab - 2 -= (/) - 2 - -U2 pin 13 -Delete (BACK SPACE) - 1 -9 - 1 -6 - 1 -3 - 1 -. - 1 - -U2 pin 14 -Tab - 1 -8 - 1 -5 - 1 -2 - 1 -0 - 1 - -U2 pin 15 -Esc (ESC) - 1 -= (/) - 1 -/ (*) - 1 -7 - 1 -4 - 1 -1 - 1 -+ - 1 - -U2 pin 16 -Enter - 1 -* (<--) - 1 -, - 1 - -U2 pin 17 -Fn (#NAME?) - 1 -- - 2 -Clear (Num Lock) - 2 - -U2 pin 18 -Fn (#NAME?) - 2 -* (<--) - 2 -+ - 2 -3 - 2 -2 - 2 -``` - -More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.msg1802497#msg1802497) - -The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix. - -``` -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, ___PLS, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ -} -``` - - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme.md](/readme.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make default`. - -### 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 `.c` in the keymaps folder, 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 a keymap like this: - -``` -$ make [default|pad_21|pad_24|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/arrow_pad/rules.mk b/keyboards/arrow_pad/rules.mk deleted file mode 100644 index 3dca9b6ea..000000000 --- a/keyboards/arrow_pad/rules.mk +++ /dev/null @@ -1,70 +0,0 @@ - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= yes # USB Nkey Rollover -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/Makefile b/keyboards/handwired/arrow_pad/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/handwired/arrow_pad/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/arrow_pad.c b/keyboards/handwired/arrow_pad/arrow_pad.c new file mode 100644 index 000000000..381934aa8 --- /dev/null +++ b/keyboards/handwired/arrow_pad/arrow_pad.c @@ -0,0 +1 @@ +#include "arrow_pad.h" \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/arrow_pad.h b/keyboards/handwired/arrow_pad/arrow_pad.h new file mode 100644 index 000000000..62882b9b5 --- /dev/null +++ b/keyboards/handwired/arrow_pad/arrow_pad.h @@ -0,0 +1,13 @@ +#ifndef ARROW_PAD_H +#define ARROW_PAD_H + +#include "quantum.h" +#include "matrix.h" +#include "keymap.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include +#include + +#endif diff --git a/keyboards/handwired/arrow_pad/config.h b/keyboards/handwired/arrow_pad/config.h new file mode 100644 index 000000000..3d8d8709a --- /dev/null +++ b/keyboards/handwired/arrow_pad/config.h @@ -0,0 +1,160 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4096 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT GoldPad +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c new file mode 100644 index 000000000..5647f75af --- /dev/null +++ b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c @@ -0,0 +1,163 @@ +// 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 "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, KM_EQU, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ + { KM___7, KM___8, KM___9, KM_EQU }, \ + { KM___4, KM___5, KM___6, KM_PLS }, \ + { KM___1, KM___2, KM___3, KC_NO }, \ + { KM___0, KC_NO, KM_DOT, KM_ENT } \ +} + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PEQL, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ + KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, _______, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4097 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT Arrow Pad 21 +#define DESCRIPTION 21-Key QMK Assistant + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, D5 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c new file mode 100644 index 000000000..28917a5d9 --- /dev/null +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c @@ -0,0 +1,160 @@ +// 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 "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, ___PLS, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ +} + + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, XXXXXXX, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, XXXXXXX, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \ + KC_LEFT, M_COPY, KC_RGHT, M_CTALT, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, XXXXXXX, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4096 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT Arrow Pad 24 +#define DESCRIPTION 24-Key QMK Assistant + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c new file mode 100644 index 000000000..5647f75af --- /dev/null +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c @@ -0,0 +1,163 @@ +// 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 "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, KM_EQU, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ + { KM___7, KM___8, KM___9, KM_EQU }, \ + { KM___4, KM___5, KM___6, KM_PLS }, \ + { KM___1, KM___2, KM___3, KC_NO }, \ + { KM___0, KC_NO, KM_DOT, KM_ENT } \ +} + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PEQL, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ + KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, _______, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< pin + (Silkscreen Name if different) - + + +Note: +U2 pin 2 is the Num Lock LED and is active low. + +U2 pin 1 +Clear (Num Lock) - 1 +Enter - 2 +Esc (ESC) - 2 + + +U2 pin 3 +- - 1 + +U2 pin 4 +7 - 2 +8 - 2 +9 - 2 + +U2 pin 5 +* - 2 +Delete (BACK SPACE) - 2 + +U2 pin 6 +1 - 2 +0 - 2 +. - 2 +, - 2 + +U2 pin 7 +4 - 2 +5 - 2 +6 - 2 + +U2 pin 8 +Tab - 2 += (/) - 2 + +U2 pin 13 +Delete (BACK SPACE) - 1 +9 - 1 +6 - 1 +3 - 1 +. - 1 + +U2 pin 14 +Tab - 1 +8 - 1 +5 - 1 +2 - 1 +0 - 1 + +U2 pin 15 +Esc (ESC) - 1 += (/) - 1 +/ (*) - 1 +7 - 1 +4 - 1 +1 - 1 ++ - 1 + +U2 pin 16 +Enter - 1 +* (<--) - 1 +, - 1 + +U2 pin 17 +Fn (#NAME?) - 1 +- - 2 +Clear (Num Lock) - 2 + +U2 pin 18 +Fn (#NAME?) - 2 +* (<--) - 2 ++ - 2 +3 - 2 +2 - 2 +``` + +More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.msg1802497#msg1802497) + +The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix. + +``` +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, ___PLS, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ +} +``` + + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make default`. + +### 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 `.c` in the keymaps folder, 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 a keymap like this: + +``` +$ make [default|pad_21|pad_24|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/handwired/arrow_pad/rules.mk b/keyboards/handwired/arrow_pad/rules.mk new file mode 100644 index 000000000..3dca9b6ea --- /dev/null +++ b/keyboards/handwired/arrow_pad/rules.mk @@ -0,0 +1,70 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= yes # USB Nkey Rollover +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file diff --git a/keyboards/lets_split/imgs/left.stl b/keyboards/lets_split/imgs/left.stl deleted file mode 100644 index ea738d626..000000000 Binary files a/keyboards/lets_split/imgs/left.stl and /dev/null differ diff --git a/keyboards/lets_split/imgs/lets split rev2 case.iges b/keyboards/lets_split/imgs/lets split rev2 case.iges deleted file mode 100644 index 5677d0970..000000000 --- a/keyboards/lets_split/imgs/lets split rev2 case.iges +++ /dev/null @@ -1,17931 +0,0 @@ - S 1 -,,20Hlets split rev2 case,20Hlets split rev2 case,7Hunknown,7Hunknown, G 1 -32,38,7,99,15,,1.,2,2HMM,1,0.08,15H20161218.141108,0.01,10000.,7HunknownG 2 -,7Hunknown,11,0,; G 3 - 186 1 00000000D 1 - 186 -5703 1 0 0D 2 - 186 2 00000000D 3 - 186 -5705 1 0 0D 4 - 186 3 00000000D 5 - 186 -5705 1 0 0D 6 - 514 4 00010000D 7 - 514 29 1 0D 8 - 514 33 00010000D 9 - 514 7 1 0D 10 - 514 40 00010000D 11 - 514 9 1 0D 12 - 510 49 00010000D 13 - 510 -5703 1 1 0D 14 - 510 50 00010000D 15 - 510 -5703 1 1 0D 16 - 510 51 00010000D 17 - 510 -5703 1 1 0D 18 - 510 52 00010000D 19 - 510 -5703 1 1 0D 20 - 510 53 00010000D 21 - 510 -5703 1 1 0D 22 - 510 54 00010000D 23 - 510 -5703 1 1 0D 24 - 510 55 00010000D 25 - 510 -5703 1 1 0D 26 - 510 56 00010000D 27 - 510 -5703 1 1 0D 28 - 510 57 00010000D 29 - 510 -5703 1 1 0D 30 - 510 58 00010000D 31 - 510 -5703 1 1 0D 32 - 510 59 00010000D 33 - 510 -5703 1 1 0D 34 - 510 60 00010000D 35 - 510 -5703 1 1 0D 36 - 510 61 00010000D 37 - 510 -5703 1 1 0D 38 - 510 62 00010000D 39 - 510 -5703 1 1 0D 40 - 510 63 00010000D 41 - 510 -5703 1 1 0D 42 - 510 64 00010000D 43 - 510 -5703 1 1 0D 44 - 510 65 00010000D 45 - 510 -5703 1 1 0D 46 - 510 66 00010000D 47 - 510 -5703 1 1 0D 48 - 510 67 00010000D 49 - 510 -5703 1 1 0D 50 - 510 68 00010000D 51 - 510 -5703 1 1 0D 52 - 510 69 00010000D 53 - 510 -5703 1 1 0D 54 - 510 70 00010000D 55 - 510 -5703 1 1 0D 56 - 510 71 00010000D 57 - 510 -5703 1 1 0D 58 - 510 72 00010000D 59 - 510 -5703 1 1 0D 60 - 510 73 00010000D 61 - 510 -5703 1 1 0D 62 - 510 74 00010000D 63 - 510 -5703 1 1 0D 64 - 510 75 00010000D 65 - 510 -5703 1 1 0D 66 - 510 76 00010000D 67 - 510 -5703 1 1 0D 68 - 510 77 00010000D 69 - 510 -5703 1 1 0D 70 - 510 78 00010000D 71 - 510 -5703 1 1 0D 72 - 510 79 00010000D 73 - 510 -5703 1 1 0D 74 - 510 80 00010000D 75 - 510 -5703 1 1 0D 76 - 510 81 00010000D 77 - 510 -5703 1 1 0D 78 - 510 82 00010000D 79 - 510 -5703 1 1 0D 80 - 510 83 00010000D 81 - 510 -5703 1 1 0D 82 - 510 84 00010000D 83 - 510 -5703 1 1 0D 84 - 510 85 00010000D 85 - 510 -5703 1 1 0D 86 - 510 86 00010000D 87 - 510 -5703 1 1 0D 88 - 510 87 00010000D 89 - 510 -5703 1 1 0D 90 - 510 88 00010000D 91 - 510 -5703 1 1 0D 92 - 510 89 00010000D 93 - 510 -5703 1 1 0D 94 - 510 90 00010000D 95 - 510 -5703 1 1 0D 96 - 510 91 00010000D 97 - 510 -5703 1 1 0D 98 - 510 92 00010000D 99 - 510 -5703 1 1 0D 100 - 510 93 00010000D 101 - 510 -5703 1 1 0D 102 - 510 94 00010000D 103 - 510 -5703 1 1 0D 104 - 510 95 00010000D 105 - 510 -5703 1 1 0D 106 - 510 96 00010000D 107 - 510 -5703 1 1 0D 108 - 510 97 00010000D 109 - 510 -5703 1 1 0D 110 - 510 98 00010000D 111 - 510 -5703 1 1 0D 112 - 510 99 00010000D 113 - 510 -5703 1 1 0D 114 - 510 100 00010000D 115 - 510 -5703 1 1 0D 116 - 510 101 00010000D 117 - 510 -5703 1 1 0D 118 - 510 102 00010000D 119 - 510 -5703 1 1 0D 120 - 510 103 00010000D 121 - 510 -5703 1 1 0D 122 - 510 104 00010000D 123 - 510 -5703 1 1 0D 124 - 510 105 00010000D 125 - 510 -5703 1 1 0D 126 - 510 106 00010000D 127 - 510 -5703 1 1 0D 128 - 510 107 00010000D 129 - 510 -5703 1 1 0D 130 - 510 108 00010000D 131 - 510 -5703 1 1 0D 132 - 510 109 00010000D 133 - 510 -5703 1 1 0D 134 - 510 110 00010000D 135 - 510 -5703 1 1 0D 136 - 510 111 00010000D 137 - 510 -5703 1 1 0D 138 - 510 112 00010000D 139 - 510 -5703 1 1 0D 140 - 510 113 00010000D 141 - 510 -5703 1 1 0D 142 - 510 114 00010000D 143 - 510 -5703 1 1 0D 144 - 510 115 00010000D 145 - 510 -5703 1 1 0D 146 - 510 116 00010000D 147 - 510 -5703 1 1 0D 148 - 510 117 00010000D 149 - 510 -5703 1 1 0D 150 - 510 118 00010000D 151 - 510 -5703 1 1 0D 152 - 510 119 00010000D 153 - 510 -5703 1 1 0D 154 - 510 120 00010000D 155 - 510 -5703 1 1 0D 156 - 510 121 00010000D 157 - 510 -5703 1 1 0D 158 - 510 122 00010000D 159 - 510 -5703 1 1 0D 160 - 510 123 00010000D 161 - 510 -5703 1 1 0D 162 - 510 124 00010000D 163 - 510 -5703 1 1 0D 164 - 510 125 00010000D 165 - 510 -5703 1 1 0D 166 - 510 126 00010000D 167 - 510 -5703 1 1 0D 168 - 510 127 00010000D 169 - 510 -5703 1 1 0D 170 - 510 128 00010000D 171 - 510 -5703 1 1 0D 172 - 510 129 00010000D 173 - 510 -5703 1 1 0D 174 - 510 130 00010000D 175 - 510 -5703 1 1 0D 176 - 510 131 00010000D 177 - 510 -5703 1 1 0D 178 - 510 132 00010000D 179 - 510 -5703 1 1 0D 180 - 510 133 00010000D 181 - 510 -5703 1 1 0D 182 - 510 134 00010000D 183 - 510 -5703 1 1 0D 184 - 510 135 00010000D 185 - 510 -5703 1 1 0D 186 - 510 136 00010000D 187 - 510 -5703 1 1 0D 188 - 510 137 00010000D 189 - 510 -5703 1 1 0D 190 - 510 138 00010000D 191 - 510 -5703 1 1 0D 192 - 510 139 00010000D 193 - 510 -5703 1 1 0D 194 - 510 140 00010000D 195 - 510 -5703 1 1 0D 196 - 510 141 00010000D 197 - 510 -5703 1 1 0D 198 - 510 142 00010000D 199 - 510 -5703 1 1 0D 200 - 510 143 00010000D 201 - 510 -5703 1 1 0D 202 - 510 144 00010000D 203 - 510 -5703 1 1 0D 204 - 510 145 00010000D 205 - 510 -5703 1 1 0D 206 - 510 146 00010000D 207 - 510 -5703 1 1 0D 208 - 510 147 00010000D 209 - 510 -5703 1 1 0D 210 - 510 148 00010000D 211 - 510 -5703 1 1 0D 212 - 510 149 00010000D 213 - 510 -5703 1 1 0D 214 - 510 150 00010000D 215 - 510 -5703 1 1 0D 216 - 510 151 00010000D 217 - 510 -5703 1 1 0D 218 - 510 152 00010000D 219 - 510 -5703 1 1 0D 220 - 510 153 00010000D 221 - 510 -5703 1 1 0D 222 - 510 154 00010000D 223 - 510 -5703 1 1 0D 224 - 510 155 00010000D 225 - 510 -5703 1 1 0D 226 - 510 156 00010000D 227 - 510 -5703 1 1 0D 228 - 510 157 00010000D 229 - 510 -5703 1 1 0D 230 - 510 158 00010000D 231 - 510 -5703 1 1 0D 232 - 510 159 00010000D 233 - 510 -5703 1 1 0D 234 - 510 160 00010000D 235 - 510 -5703 1 1 0D 236 - 510 161 00010000D 237 - 510 -5703 1 1 0D 238 - 510 162 00010000D 239 - 510 -5703 1 1 0D 240 - 510 163 00010000D 241 - 510 -5703 1 1 0D 242 - 510 164 00010000D 243 - 510 -5703 1 1 0D 244 - 510 165 00010000D 245 - 510 -5703 1 1 0D 246 - 510 166 00010000D 247 - 510 -5703 1 1 0D 248 - 510 167 00010000D 249 - 510 -5703 1 1 0D 250 - 510 168 00010000D 251 - 510 -5703 1 1 0D 252 - 510 169 00010000D 253 - 510 -5703 1 1 0D 254 - 510 170 00010000D 255 - 510 -5703 1 1 0D 256 - 510 171 00010000D 257 - 510 -5703 1 1 0D 258 - 510 172 00010000D 259 - 510 -5703 1 1 0D 260 - 510 173 00010000D 261 - 510 -5703 1 1 0D 262 - 510 174 00010000D 263 - 510 -5703 1 1 0D 264 - 510 175 00010000D 265 - 510 -5703 1 1 0D 266 - 510 176 00010000D 267 - 510 -5703 1 1 0D 268 - 510 177 00010000D 269 - 510 -5703 1 1 0D 270 - 510 178 00010000D 271 - 510 -5703 1 1 0D 272 - 510 179 00010000D 273 - 510 -5703 1 1 0D 274 - 510 180 00010000D 275 - 510 -5703 1 1 0D 276 - 510 181 00010000D 277 - 510 -5703 1 1 0D 278 - 510 182 00010000D 279 - 510 -5703 1 1 0D 280 - 510 183 00010000D 281 - 510 -5703 1 1 0D 282 - 510 184 00010000D 283 - 510 -5703 1 1 0D 284 - 510 185 00010000D 285 - 510 -5703 1 1 0D 286 - 510 186 00010000D 287 - 510 -5703 1 1 0D 288 - 510 187 00010000D 289 - 510 -5703 1 1 0D 290 - 510 188 00010000D 291 - 510 -5703 1 1 0D 292 - 510 189 00010000D 293 - 510 -5703 1 1 0D 294 - 510 190 00010000D 295 - 510 -5703 1 1 0D 296 - 510 191 00010000D 297 - 510 -5703 1 1 0D 298 - 510 192 00010000D 299 - 510 -5703 1 1 0D 300 - 510 193 00010000D 301 - 510 -5703 1 1 0D 302 - 510 194 00010000D 303 - 510 -5703 1 1 0D 304 - 510 195 00010000D 305 - 510 -5703 1 1 0D 306 - 510 196 00010000D 307 - 510 -5703 1 1 0D 308 - 510 197 00010000D 309 - 510 -5703 1 1 0D 310 - 510 198 00010000D 311 - 510 -5703 1 1 0D 312 - 510 199 00010000D 313 - 510 -5703 1 1 0D 314 - 510 200 00010000D 315 - 510 -5703 1 1 0D 316 - 510 201 00010000D 317 - 510 -5703 1 1 0D 318 - 510 202 00010000D 319 - 510 -5703 1 1 0D 320 - 510 203 00010000D 321 - 510 -5703 1 1 0D 322 - 510 204 00010000D 323 - 510 -5703 1 1 0D 324 - 510 205 00010000D 325 - 510 -5703 1 1 0D 326 - 510 206 00010000D 327 - 510 -5703 1 1 0D 328 - 510 207 00010000D 329 - 510 -5703 1 1 0D 330 - 510 208 00010000D 331 - 510 -5703 1 1 0D 332 - 510 209 00010000D 333 - 510 -5703 1 1 0D 334 - 510 210 00010000D 335 - 510 -5703 1 1 0D 336 - 510 211 00010000D 337 - 510 -5703 1 1 0D 338 - 510 212 00010000D 339 - 510 -5703 1 1 0D 340 - 510 213 00010000D 341 - 510 -5703 1 1 0D 342 - 510 214 00010000D 343 - 510 -5703 1 1 0D 344 - 510 215 00010000D 345 - 510 -5703 1 1 0D 346 - 510 216 00010000D 347 - 510 -5703 1 1 0D 348 - 510 217 00010000D 349 - 510 -5703 1 1 0D 350 - 510 218 00010000D 351 - 510 -5703 1 1 0D 352 - 510 219 00010000D 353 - 510 -5703 1 1 0D 354 - 510 220 00010000D 355 - 510 -5703 1 1 0D 356 - 510 221 00010000D 357 - 510 -5703 1 1 0D 358 - 510 222 00010000D 359 - 510 -5703 1 1 0D 360 - 510 223 00010000D 361 - 510 -5703 1 1 0D 362 - 510 224 00010000D 363 - 510 -5703 1 1 0D 364 - 510 225 00010000D 365 - 510 -5703 1 1 0D 366 - 510 226 00010000D 367 - 510 -5703 1 1 0D 368 - 510 227 00010000D 369 - 510 -5703 1 1 0D 370 - 510 228 00010000D 371 - 510 -5703 1 1 0D 372 - 510 229 00010000D 373 - 510 -5703 1 1 0D 374 - 510 230 00010000D 375 - 510 -5703 1 1 0D 376 - 510 231 00010000D 377 - 510 -5703 1 1 0D 378 - 510 232 00010000D 379 - 510 -5703 1 1 0D 380 - 510 233 00010000D 381 - 510 -5703 1 1 0D 382 - 510 234 00010000D 383 - 510 -5703 1 1 0D 384 - 510 235 00010000D 385 - 510 -5703 1 1 0D 386 - 510 236 00010000D 387 - 510 -5703 1 1 0D 388 - 510 237 00010000D 389 - 510 -5703 1 1 0D 390 - 510 238 00010000D 391 - 510 -5703 1 1 0D 392 - 510 239 00010000D 393 - 510 -5703 1 1 0D 394 - 510 240 00010000D 395 - 510 -5703 1 1 0D 396 - 510 241 00010000D 397 - 510 -5703 1 1 0D 398 - 510 242 00010000D 399 - 510 -5703 1 1 0D 400 - 510 243 00010000D 401 - 510 -5703 1 1 0D 402 - 510 244 00010000D 403 - 510 -5703 1 1 0D 404 - 510 245 00010000D 405 - 510 -5703 1 1 0D 406 - 510 246 00010000D 407 - 510 -5703 1 1 0D 408 - 510 247 00010000D 409 - 510 -5703 1 1 0D 410 - 510 248 00010000D 411 - 510 -5703 1 1 0D 412 - 510 249 00010000D 413 - 510 -5703 1 1 0D 414 - 510 250 00010000D 415 - 510 -5703 1 1 0D 416 - 510 251 00010000D 417 - 510 -5703 1 1 0D 418 - 510 252 00010000D 419 - 510 -5703 1 1 0D 420 - 510 253 00010000D 421 - 510 -5703 1 1 0D 422 - 510 254 00010000D 423 - 510 -5703 1 1 0D 424 - 510 255 00010000D 425 - 510 -5703 1 1 0D 426 - 510 256 00010000D 427 - 510 -5703 1 1 0D 428 - 510 257 00010000D 429 - 510 -5703 1 1 0D 430 - 510 258 00010000D 431 - 510 -5703 1 1 0D 432 - 510 259 00010000D 433 - 510 -5703 1 1 0D 434 - 510 260 00010000D 435 - 510 -5703 1 1 0D 436 - 510 261 00010000D 437 - 510 -5703 1 1 0D 438 - 510 262 00010000D 439 - 510 -5703 1 1 0D 440 - 510 263 00010000D 441 - 510 -5703 1 1 0D 442 - 510 264 00010000D 443 - 510 -5703 1 1 0D 444 - 510 265 00010000D 445 - 510 -5703 1 1 0D 446 - 510 266 00010000D 447 - 510 -5703 1 1 0D 448 - 510 267 00010000D 449 - 510 -5703 1 1 0D 450 - 510 268 00010000D 451 - 510 -5703 1 1 0D 452 - 510 269 00010000D 453 - 510 -5703 1 1 0D 454 - 510 270 00010000D 455 - 510 -5703 1 1 0D 456 - 510 271 00010000D 457 - 510 -5703 1 1 0D 458 - 510 272 00010000D 459 - 510 -5703 1 1 0D 460 - 510 273 00010000D 461 - 510 -5703 1 1 0D 462 - 510 274 00010000D 463 - 510 -5703 1 1 0D 464 - 510 275 00010000D 465 - 510 -5703 1 1 0D 466 - 510 276 00010000D 467 - 510 -5703 1 1 0D 468 - 510 277 00010000D 469 - 510 -5703 1 1 0D 470 - 510 278 00010000D 471 - 510 -5703 1 1 0D 472 - 510 279 00010000D 473 - 510 -5703 1 1 0D 474 - 510 280 00010000D 475 - 510 -5703 1 1 0D 476 - 510 281 00010000D 477 - 510 -5703 1 1 0D 478 - 510 282 00010000D 479 - 510 -5703 1 1 0D 480 - 510 283 00010000D 481 - 510 -5703 1 1 0D 482 - 510 284 00010000D 483 - 510 -5703 1 1 0D 484 - 510 285 00010000D 485 - 510 -5703 1 1 0D 486 - 510 286 00010000D 487 - 510 -5703 1 1 0D 488 - 510 287 00010000D 489 - 510 -5703 1 1 0D 490 - 510 288 00010000D 491 - 510 -5703 1 1 0D 492 - 510 289 00010000D 493 - 510 -5703 1 1 0D 494 - 510 290 00010000D 495 - 510 -5703 1 1 0D 496 - 510 291 00010000D 497 - 510 -5703 1 1 0D 498 - 510 292 00010000D 499 - 510 -5703 1 1 0D 500 - 510 293 00010000D 501 - 510 -5703 1 1 0D 502 - 510 294 00010000D 503 - 510 -5703 1 1 0D 504 - 510 295 00010000D 505 - 510 -5703 1 1 0D 506 - 510 296 00010000D 507 - 510 -5703 1 1 0D 508 - 510 297 00010000D 509 - 510 -5703 1 1 0D 510 - 510 298 00010000D 511 - 510 -5703 1 1 0D 512 - 510 299 00010000D 513 - 510 -5703 1 1 0D 514 - 510 300 00010000D 515 - 510 -5703 1 1 0D 516 - 510 301 00010000D 517 - 510 -5703 1 1 0D 518 - 510 302 00010000D 519 - 510 -5703 1 1 0D 520 - 510 303 00010000D 521 - 510 -5703 1 1 0D 522 - 510 304 00010000D 523 - 510 -5703 1 1 0D 524 - 510 305 00010000D 525 - 510 -5703 1 1 0D 526 - 510 306 00010000D 527 - 510 -5703 1 1 0D 528 - 510 307 00010000D 529 - 510 -5703 1 1 0D 530 - 510 308 00010000D 531 - 510 -5703 1 1 0D 532 - 510 309 00010000D 533 - 510 -5703 1 1 0D 534 - 510 310 00010000D 535 - 510 -5703 1 1 0D 536 - 510 311 00010000D 537 - 510 -5703 1 1 0D 538 - 510 312 00010000D 539 - 510 -5703 1 1 0D 540 - 510 313 00010000D 541 - 510 -5703 1 1 0D 542 - 510 314 00010000D 543 - 510 -5703 1 1 0D 544 - 510 315 00010000D 545 - 510 -5703 1 1 0D 546 - 510 316 00010000D 547 - 510 -5703 1 1 0D 548 - 510 317 00010000D 549 - 510 -5703 1 1 0D 550 - 510 318 00010000D 551 - 510 -5703 1 1 0D 552 - 510 319 00010000D 553 - 510 -5703 1 1 0D 554 - 510 320 00010000D 555 - 510 -5703 1 1 0D 556 - 510 321 00010000D 557 - 510 -5703 1 1 0D 558 - 510 322 00010000D 559 - 510 -5703 1 1 0D 560 - 510 323 00010000D 561 - 510 -5703 1 1 0D 562 - 510 324 00010000D 563 - 510 -5703 1 1 0D 564 - 510 325 00010000D 565 - 510 -5703 1 1 0D 566 - 510 326 00010000D 567 - 510 -5703 1 1 0D 568 - 510 327 00010000D 569 - 510 -5703 1 1 0D 570 - 510 328 00010000D 571 - 510 -5703 1 1 0D 572 - 510 329 00010000D 573 - 510 -5703 1 1 0D 574 - 510 330 00010000D 575 - 510 -5703 1 1 0D 576 - 510 331 00010000D 577 - 510 -5703 1 1 0D 578 - 510 332 00010000D 579 - 510 -5703 1 1 0D 580 - 510 333 00010000D 581 - 510 -5703 1 1 0D 582 - 510 334 00010000D 583 - 510 -5703 1 1 0D 584 - 510 335 00010000D 585 - 510 -5703 1 1 0D 586 - 510 336 00010000D 587 - 510 -5703 1 1 0D 588 - 510 337 00010000D 589 - 510 -5703 1 1 0D 590 - 510 338 00010000D 591 - 510 -5703 1 1 0D 592 - 510 339 00010000D 593 - 510 -5703 1 1 0D 594 - 510 340 00010000D 595 - 510 -5703 1 1 0D 596 - 510 341 00010000D 597 - 510 -5703 1 1 0D 598 - 510 342 00010000D 599 - 510 -5703 1 1 0D 600 - 510 343 00010000D 601 - 510 -5703 1 1 0D 602 - 510 344 00010000D 603 - 510 -5703 1 1 0D 604 - 510 345 00010000D 605 - 510 -5703 1 1 0D 606 - 510 346 00010000D 607 - 510 -5703 1 1 0D 608 - 510 347 00010000D 609 - 510 -5703 1 1 0D 610 - 510 348 00010000D 611 - 510 -5703 1 1 0D 612 - 510 349 00010000D 613 - 510 -5703 1 1 0D 614 - 510 350 00010000D 615 - 510 -5703 1 1 0D 616 - 510 351 00010000D 617 - 510 -5703 1 1 0D 618 - 510 352 00010000D 619 - 510 -5703 1 1 0D 620 - 510 353 00010000D 621 - 510 -5703 1 1 0D 622 - 510 354 00010000D 623 - 510 -5703 3 1 0D 624 - 510 357 00010000D 625 - 510 -5703 3 1 0D 626 - 510 360 00010000D 627 - 510 -5705 1 1 0D 628 - 510 361 00010000D 629 - 510 -5705 1 1 0D 630 - 510 362 00010000D 631 - 510 -5705 1 1 0D 632 - 510 363 00010000D 633 - 510 -5705 1 1 0D 634 - 510 364 00010000D 635 - 510 -5705 1 1 0D 636 - 510 365 00010000D 637 - 510 -5705 1 1 0D 638 - 510 366 00010000D 639 - 510 -5705 1 1 0D 640 - 510 367 00010000D 641 - 510 -5705 1 1 0D 642 - 510 368 00010000D 643 - 510 -5705 1 1 0D 644 - 510 369 00010000D 645 - 510 -5705 1 1 0D 646 - 510 370 00010000D 647 - 510 -5705 1 1 0D 648 - 510 371 00010000D 649 - 510 -5705 1 1 0D 650 - 510 372 00010000D 651 - 510 -5705 1 1 0D 652 - 510 373 00010000D 653 - 510 -5705 1 1 0D 654 - 510 374 00010000D 655 - 510 -5705 1 1 0D 656 - 510 375 00010000D 657 - 510 -5705 1 1 0D 658 - 510 376 00010000D 659 - 510 -5705 1 1 0D 660 - 510 377 00010000D 661 - 510 -5705 1 1 0D 662 - 510 378 00010000D 663 - 510 -5705 1 1 0D 664 - 510 379 00010000D 665 - 510 -5705 1 1 0D 666 - 510 380 00010000D 667 - 510 -5705 1 1 0D 668 - 510 381 00010000D 669 - 510 -5705 1 1 0D 670 - 510 382 00010000D 671 - 510 -5705 1 1 0D 672 - 510 383 00010000D 673 - 510 -5705 1 1 0D 674 - 510 384 00010000D 675 - 510 -5705 1 1 0D 676 - 510 385 00010000D 677 - 510 -5705 1 1 0D 678 - 510 386 00010000D 679 - 510 -5705 1 1 0D 680 - 510 387 00010000D 681 - 510 -5705 1 1 0D 682 - 510 388 00010000D 683 - 510 -5705 1 1 0D 684 - 510 389 00010000D 685 - 510 -5705 1 1 0D 686 - 510 390 00010000D 687 - 510 -5705 1 1 0D 688 - 510 391 00010000D 689 - 510 -5705 1 1 0D 690 - 510 392 00010000D 691 - 510 -5705 1 1 0D 692 - 510 393 00010000D 693 - 510 -5705 1 1 0D 694 - 510 394 00010000D 695 - 510 -5705 1 1 0D 696 - 510 395 00010000D 697 - 510 -5705 1 1 0D 698 - 510 396 00010000D 699 - 510 -5705 1 1 0D 700 - 510 397 00010000D 701 - 510 -5705 1 1 0D 702 - 510 398 00010000D 703 - 510 -5705 1 1 0D 704 - 510 399 00010000D 705 - 510 -5705 1 1 0D 706 - 510 400 00010000D 707 - 510 -5705 1 1 0D 708 - 510 401 00010000D 709 - 510 -5705 1 1 0D 710 - 510 402 00010000D 711 - 510 -5705 1 1 0D 712 - 510 403 00010000D 713 - 510 -5705 1 1 0D 714 - 510 404 00010000D 715 - 510 -5705 1 1 0D 716 - 510 405 00010000D 717 - 510 -5705 1 1 0D 718 - 510 406 00010000D 719 - 510 -5705 1 1 0D 720 - 510 407 00010000D 721 - 510 -5705 1 1 0D 722 - 510 408 00010000D 723 - 510 -5705 1 1 0D 724 - 510 409 00010000D 725 - 510 -5705 1 1 0D 726 - 510 410 00010000D 727 - 510 -5705 1 1 0D 728 - 510 411 00010000D 729 - 510 -5705 1 1 0D 730 - 510 412 00010000D 731 - 510 -5705 1 1 0D 732 - 510 413 00010000D 733 - 510 -5705 1 1 0D 734 - 510 414 00010000D 735 - 510 -5705 1 1 0D 736 - 510 415 00010000D 737 - 510 -5705 1 1 0D 738 - 510 416 00010000D 739 - 510 -5705 1 1 0D 740 - 510 417 00010000D 741 - 510 -5705 1 1 0D 742 - 510 418 00010000D 743 - 510 -5705 1 1 0D 744 - 510 419 00010000D 745 - 510 -5705 1 1 0D 746 - 510 420 00010000D 747 - 510 -5705 1 1 0D 748 - 510 421 00010000D 749 - 510 -5705 1 1 0D 750 - 510 422 00010000D 751 - 510 -5705 1 1 0D 752 - 510 423 00010000D 753 - 510 -5705 1 1 0D 754 - 510 424 00010000D 755 - 510 -5705 1 1 0D 756 - 510 425 00010000D 757 - 510 -5705 1 1 0D 758 - 510 426 00010000D 759 - 510 -5705 1 1 0D 760 - 510 427 00010000D 761 - 510 -5705 1 1 0D 762 - 510 428 00010000D 763 - 510 -5705 1 1 0D 764 - 510 429 00010000D 765 - 510 -5705 1 1 0D 766 - 510 430 00010000D 767 - 510 -5705 1 1 0D 768 - 510 431 00010000D 769 - 510 -5705 1 1 0D 770 - 510 432 00010000D 771 - 510 -5705 1 1 0D 772 - 510 433 00010000D 773 - 510 -5705 1 1 0D 774 - 510 434 00010000D 775 - 510 -5705 1 1 0D 776 - 510 435 00010000D 777 - 510 -5705 1 1 0D 778 - 510 436 00010000D 779 - 510 -5705 1 1 0D 780 - 510 437 00010000D 781 - 510 -5705 1 1 0D 782 - 510 438 00010000D 783 - 510 -5705 1 1 0D 784 - 510 439 00010000D 785 - 510 -5705 1 1 0D 786 - 510 440 00010000D 787 - 510 -5705 1 1 0D 788 - 510 441 00010000D 789 - 510 -5705 1 1 0D 790 - 510 442 00010000D 791 - 510 -5705 1 1 0D 792 - 510 443 00010000D 793 - 510 -5705 1 1 0D 794 - 510 444 00010000D 795 - 510 -5705 1 1 0D 796 - 510 445 00010000D 797 - 510 -5705 1 1 0D 798 - 510 446 00010000D 799 - 510 -5705 1 1 0D 800 - 510 447 00010000D 801 - 510 -5705 1 1 0D 802 - 510 448 00010000D 803 - 510 -5705 1 1 0D 804 - 510 449 00010000D 805 - 510 -5705 1 1 0D 806 - 510 450 00010000D 807 - 510 -5705 1 1 0D 808 - 510 451 00010000D 809 - 510 -5705 1 1 0D 810 - 510 452 00010000D 811 - 510 -5705 1 1 0D 812 - 510 453 00010000D 813 - 510 -5705 1 1 0D 814 - 510 454 00010000D 815 - 510 -5705 1 1 0D 816 - 510 455 00010000D 817 - 510 -5705 1 1 0D 818 - 510 456 00010000D 819 - 510 -5705 1 1 0D 820 - 510 457 00010000D 821 - 510 -5705 1 1 0D 822 - 510 458 00010000D 823 - 510 -5705 1 1 0D 824 - 510 459 00010000D 825 - 510 -5705 1 1 0D 826 - 510 460 00010000D 827 - 510 -5705 1 1 0D 828 - 510 461 00010000D 829 - 510 -5705 1 1 0D 830 - 510 462 00010000D 831 - 510 -5705 1 1 0D 832 - 510 463 00010000D 833 - 510 -5705 1 1 0D 834 - 510 464 00010000D 835 - 510 -5705 1 1 0D 836 - 510 465 00010000D 837 - 510 -5705 1 1 0D 838 - 510 466 00010000D 839 - 510 -5705 1 1 0D 840 - 510 467 00010000D 841 - 510 -5705 1 1 0D 842 - 510 468 00010000D 843 - 510 -5705 1 1 0D 844 - 510 469 00010000D 845 - 510 -5705 1 1 0D 846 - 510 470 00010000D 847 - 510 -5705 1 1 0D 848 - 510 471 00010000D 849 - 510 -5705 1 1 0D 850 - 510 472 00010000D 851 - 510 -5705 1 1 0D 852 - 510 473 00010000D 853 - 510 -5705 1 1 0D 854 - 510 474 00010000D 855 - 510 -5705 1 1 0D 856 - 510 475 00010000D 857 - 510 -5705 1 1 0D 858 - 510 476 00010000D 859 - 510 -5705 1 1 0D 860 - 510 477 00010000D 861 - 510 -5705 1 1 0D 862 - 510 478 00010000D 863 - 510 -5705 1 1 0D 864 - 510 479 00010000D 865 - 510 -5705 1 1 0D 866 - 510 480 00010000D 867 - 510 -5705 1 1 0D 868 - 510 481 00010000D 869 - 510 -5705 1 1 0D 870 - 510 482 00010000D 871 - 510 -5705 1 1 0D 872 - 510 483 00010000D 873 - 510 -5705 1 1 0D 874 - 510 484 00010000D 875 - 510 -5705 1 1 0D 876 - 510 485 00010000D 877 - 510 -5705 1 1 0D 878 - 510 486 00010000D 879 - 510 -5705 1 1 0D 880 - 510 487 00010000D 881 - 510 -5705 1 1 0D 882 - 510 488 00010000D 883 - 510 -5705 1 1 0D 884 - 510 489 00010000D 885 - 510 -5705 1 1 0D 886 - 510 490 00010000D 887 - 510 -5705 1 1 0D 888 - 510 491 00010000D 889 - 510 -5705 1 1 0D 890 - 510 492 00010000D 891 - 510 -5705 1 1 0D 892 - 510 493 00010000D 893 - 510 -5705 1 1 0D 894 - 510 494 00010000D 895 - 510 -5705 1 1 0D 896 - 510 495 00010000D 897 - 510 -5705 1 1 0D 898 - 510 496 00010000D 899 - 510 -5705 1 1 0D 900 - 510 497 00010000D 901 - 510 -5705 1 1 0D 902 - 510 498 00010000D 903 - 510 -5705 1 1 0D 904 - 510 499 00010000D 905 - 510 -5705 1 1 0D 906 - 510 500 00010000D 907 - 510 -5705 1 1 0D 908 - 510 501 00010000D 909 - 510 -5705 1 1 0D 910 - 510 502 00010000D 911 - 510 -5705 1 1 0D 912 - 510 503 00010000D 913 - 510 -5705 1 1 0D 914 - 510 504 00010000D 915 - 510 -5705 1 1 0D 916 - 510 505 00010000D 917 - 510 -5705 1 1 0D 918 - 510 506 00010000D 919 - 510 -5705 1 1 0D 920 - 510 507 00010000D 921 - 510 -5705 1 1 0D 922 - 510 508 00010000D 923 - 510 -5705 1 1 0D 924 - 510 509 00010000D 925 - 510 -5705 1 1 0D 926 - 510 510 00010000D 927 - 510 -5705 1 1 0D 928 - 510 511 00010000D 929 - 510 -5705 1 1 0D 930 - 510 512 00010000D 931 - 510 -5705 1 1 0D 932 - 510 513 00010000D 933 - 510 -5705 1 1 0D 934 - 508 514 00010000D 935 - 508 1 1 0D 936 - 508 515 00010000D 937 - 508 1 1 0D 938 - 508 516 00010000D 939 - 508 1 1 0D 940 - 508 517 00010000D 941 - 508 1 1 0D 942 - 508 518 00010000D 943 - 508 1 1 0D 944 - 508 519 00010000D 945 - 508 1 1 0D 946 - 508 520 00010000D 947 - 508 1 1 0D 948 - 508 521 00010000D 949 - 508 1 1 0D 950 - 508 522 00010000D 951 - 508 1 1 0D 952 - 508 523 00010000D 953 - 508 1 1 0D 954 - 508 524 00010000D 955 - 508 1 1 0D 956 - 508 525 00010000D 957 - 508 1 1 0D 958 - 508 526 00010000D 959 - 508 1 1 0D 960 - 508 527 00010000D 961 - 508 1 1 0D 962 - 508 528 00010000D 963 - 508 1 1 0D 964 - 508 529 00010000D 965 - 508 1 1 0D 966 - 508 530 00010000D 967 - 508 1 1 0D 968 - 508 531 00010000D 969 - 508 1 1 0D 970 - 508 532 00010000D 971 - 508 1 1 0D 972 - 508 533 00010000D 973 - 508 1 1 0D 974 - 508 534 00010000D 975 - 508 1 1 0D 976 - 508 535 00010000D 977 - 508 1 1 0D 978 - 508 536 00010000D 979 - 508 1 1 0D 980 - 508 537 00010000D 981 - 508 1 1 0D 982 - 508 538 00010000D 983 - 508 1 1 0D 984 - 508 539 00010000D 985 - 508 1 1 0D 986 - 508 540 00010000D 987 - 508 1 1 0D 988 - 508 541 00010000D 989 - 508 1 1 0D 990 - 508 542 00010000D 991 - 508 1 1 0D 992 - 508 543 00010000D 993 - 508 1 1 0D 994 - 508 544 00010000D 995 - 508 1 1 0D 996 - 508 545 00010000D 997 - 508 1 1 0D 998 - 508 546 00010000D 999 - 508 1 1 0D 1000 - 508 547 00010000D 1001 - 508 2 1 0D 1002 - 508 549 00010000D 1003 - 508 2 1 0D 1004 - 508 551 00010000D 1005 - 508 2 1 0D 1006 - 508 553 00010000D 1007 - 508 2 1 0D 1008 - 508 555 00010000D 1009 - 508 2 1 0D 1010 - 508 557 00010000D 1011 - 508 2 1 0D 1012 - 508 559 00010000D 1013 - 508 2 1 0D 1014 - 508 561 00010000D 1015 - 508 2 1 0D 1016 - 508 563 00010000D 1017 - 508 2 1 0D 1018 - 508 565 00010000D 1019 - 508 2 1 0D 1020 - 508 567 00010000D 1021 - 508 2 1 0D 1022 - 508 569 00010000D 1023 - 508 2 1 0D 1024 - 508 571 00010000D 1025 - 508 2 1 0D 1026 - 508 573 00010000D 1027 - 508 2 1 0D 1028 - 508 575 00010000D 1029 - 508 2 1 0D 1030 - 508 577 00010000D 1031 - 508 2 1 0D 1032 - 508 579 00010000D 1033 - 508 2 1 0D 1034 - 508 581 00010000D 1035 - 508 2 1 0D 1036 - 508 583 00010000D 1037 - 508 2 1 0D 1038 - 508 585 00010000D 1039 - 508 2 1 0D 1040 - 508 587 00010000D 1041 - 508 2 1 0D 1042 - 508 589 00010000D 1043 - 508 2 1 0D 1044 - 508 591 00010000D 1045 - 508 2 1 0D 1046 - 508 593 00010000D 1047 - 508 2 1 0D 1048 - 508 595 00010000D 1049 - 508 2 1 0D 1050 - 508 597 00010000D 1051 - 508 2 1 0D 1052 - 508 599 00010000D 1053 - 508 2 1 0D 1054 - 508 601 00010000D 1055 - 508 2 1 0D 1056 - 508 603 00010000D 1057 - 508 2 1 0D 1058 - 508 605 00010000D 1059 - 508 2 1 0D 1060 - 508 607 00010000D 1061 - 508 2 1 0D 1062 - 508 609 00010000D 1063 - 508 2 1 0D 1064 - 508 611 00010000D 1065 - 508 2 1 0D 1066 - 508 613 00010000D 1067 - 508 2 1 0D 1068 - 508 615 00010000D 1069 - 508 2 1 0D 1070 - 508 617 00010000D 1071 - 508 2 1 0D 1072 - 508 619 00010000D 1073 - 508 2 1 0D 1074 - 508 621 00010000D 1075 - 508 2 1 0D 1076 - 508 623 00010000D 1077 - 508 2 1 0D 1078 - 508 625 00010000D 1079 - 508 2 1 0D 1080 - 508 627 00010000D 1081 - 508 2 1 0D 1082 - 508 629 00010000D 1083 - 508 2 1 0D 1084 - 508 631 00010000D 1085 - 508 2 1 0D 1086 - 508 633 00010000D 1087 - 508 2 1 0D 1088 - 508 635 00010000D 1089 - 508 2 1 0D 1090 - 508 637 00010000D 1091 - 508 2 1 0D 1092 - 508 639 00010000D 1093 - 508 2 1 0D 1094 - 508 641 00010000D 1095 - 508 2 1 0D 1096 - 508 643 00010000D 1097 - 508 2 1 0D 1098 - 508 645 00010000D 1099 - 508 2 1 0D 1100 - 508 647 00010000D 1101 - 508 2 1 0D 1102 - 508 649 00010000D 1103 - 508 2 1 0D 1104 - 508 651 00010000D 1105 - 508 2 1 0D 1106 - 508 653 00010000D 1107 - 508 2 1 0D 1108 - 508 655 00010000D 1109 - 508 2 1 0D 1110 - 508 657 00010000D 1111 - 508 2 1 0D 1112 - 508 659 00010000D 1113 - 508 2 1 0D 1114 - 508 661 00010000D 1115 - 508 2 1 0D 1116 - 508 663 00010000D 1117 - 508 2 1 0D 1118 - 508 665 00010000D 1119 - 508 2 1 0D 1120 - 508 667 00010000D 1121 - 508 2 1 0D 1122 - 508 669 00010000D 1123 - 508 2 1 0D 1124 - 508 671 00010000D 1125 - 508 2 1 0D 1126 - 508 673 00010000D 1127 - 508 2 1 0D 1128 - 508 675 00010000D 1129 - 508 2 1 0D 1130 - 508 677 00010000D 1131 - 508 2 1 0D 1132 - 508 679 00010000D 1133 - 508 2 1 0D 1134 - 508 681 00010000D 1135 - 508 2 1 0D 1136 - 508 683 00010000D 1137 - 508 2 1 0D 1138 - 508 685 00010000D 1139 - 508 2 1 0D 1140 - 508 687 00010000D 1141 - 508 2 1 0D 1142 - 508 689 00010000D 1143 - 508 2 1 0D 1144 - 508 691 00010000D 1145 - 508 2 1 0D 1146 - 508 693 00010000D 1147 - 508 2 1 0D 1148 - 508 695 00010000D 1149 - 508 2 1 0D 1150 - 508 697 00010000D 1151 - 508 2 1 0D 1152 - 508 699 00010000D 1153 - 508 2 1 0D 1154 - 508 701 00010000D 1155 - 508 2 1 0D 1156 - 508 703 00010000D 1157 - 508 2 1 0D 1158 - 508 705 00010000D 1159 - 508 2 1 0D 1160 - 508 707 00010000D 1161 - 508 2 1 0D 1162 - 508 709 00010000D 1163 - 508 2 1 0D 1164 - 508 711 00010000D 1165 - 508 2 1 0D 1166 - 508 713 00010000D 1167 - 508 2 1 0D 1168 - 508 715 00010000D 1169 - 508 2 1 0D 1170 - 508 717 00010000D 1171 - 508 2 1 0D 1172 - 508 719 00010000D 1173 - 508 2 1 0D 1174 - 508 721 00010000D 1175 - 508 2 1 0D 1176 - 508 723 00010000D 1177 - 508 2 1 0D 1178 - 508 725 00010000D 1179 - 508 2 1 0D 1180 - 508 727 00010000D 1181 - 508 2 1 0D 1182 - 508 729 00010000D 1183 - 508 2 1 0D 1184 - 508 731 00010000D 1185 - 508 2 1 0D 1186 - 508 733 00010000D 1187 - 508 2 1 0D 1188 - 508 735 00010000D 1189 - 508 2 1 0D 1190 - 508 737 00010000D 1191 - 508 2 1 0D 1192 - 508 739 00010000D 1193 - 508 2 1 0D 1194 - 508 741 00010000D 1195 - 508 2 1 0D 1196 - 508 743 00010000D 1197 - 508 2 1 0D 1198 - 508 745 00010000D 1199 - 508 2 1 0D 1200 - 508 747 00010000D 1201 - 508 2 1 0D 1202 - 508 749 00010000D 1203 - 508 2 1 0D 1204 - 508 751 00010000D 1205 - 508 2 1 0D 1206 - 508 753 00010000D 1207 - 508 2 1 0D 1208 - 508 755 00010000D 1209 - 508 2 1 0D 1210 - 508 757 00010000D 1211 - 508 2 1 0D 1212 - 508 759 00010000D 1213 - 508 2 1 0D 1214 - 508 761 00010000D 1215 - 508 2 1 0D 1216 - 508 763 00010000D 1217 - 508 2 1 0D 1218 - 508 765 00010000D 1219 - 508 2 1 0D 1220 - 508 767 00010000D 1221 - 508 2 1 0D 1222 - 508 769 00010000D 1223 - 508 2 1 0D 1224 - 508 771 00010000D 1225 - 508 2 1 0D 1226 - 508 773 00010000D 1227 - 508 2 1 0D 1228 - 508 775 00010000D 1229 - 508 2 1 0D 1230 - 508 777 00010000D 1231 - 508 2 1 0D 1232 - 508 779 00010000D 1233 - 508 2 1 0D 1234 - 508 781 00010000D 1235 - 508 2 1 0D 1236 - 508 783 00010000D 1237 - 508 2 1 0D 1238 - 508 785 00010000D 1239 - 508 2 1 0D 1240 - 508 787 00010000D 1241 - 508 2 1 0D 1242 - 508 789 00010000D 1243 - 508 2 1 0D 1244 - 508 791 00010000D 1245 - 508 2 1 0D 1246 - 508 793 00010000D 1247 - 508 2 1 0D 1248 - 508 795 00010000D 1249 - 508 2 1 0D 1250 - 508 797 00010000D 1251 - 508 2 1 0D 1252 - 508 799 00010000D 1253 - 508 2 1 0D 1254 - 508 801 00010000D 1255 - 508 2 1 0D 1256 - 508 803 00010000D 1257 - 508 2 1 0D 1258 - 508 805 00010000D 1259 - 508 2 1 0D 1260 - 508 807 00010000D 1261 - 508 2 1 0D 1262 - 508 809 00010000D 1263 - 508 2 1 0D 1264 - 508 811 00010000D 1265 - 508 2 1 0D 1266 - 508 813 00010000D 1267 - 508 2 1 0D 1268 - 508 815 00010000D 1269 - 508 2 1 0D 1270 - 508 817 00010000D 1271 - 508 2 1 0D 1272 - 508 819 00010000D 1273 - 508 2 1 0D 1274 - 508 821 00010000D 1275 - 508 2 1 0D 1276 - 508 823 00010000D 1277 - 508 2 1 0D 1278 - 508 825 00010000D 1279 - 508 2 1 0D 1280 - 508 827 00010000D 1281 - 508 2 1 0D 1282 - 508 829 00010000D 1283 - 508 2 1 0D 1284 - 508 831 00010000D 1285 - 508 2 1 0D 1286 - 508 833 00010000D 1287 - 508 2 1 0D 1288 - 508 835 00010000D 1289 - 508 2 1 0D 1290 - 508 837 00010000D 1291 - 508 2 1 0D 1292 - 508 839 00010000D 1293 - 508 2 1 0D 1294 - 508 841 00010000D 1295 - 508 2 1 0D 1296 - 508 843 00010000D 1297 - 508 2 1 0D 1298 - 508 845 00010000D 1299 - 508 2 1 0D 1300 - 508 847 00010000D 1301 - 508 2 1 0D 1302 - 508 849 00010000D 1303 - 508 2 1 0D 1304 - 508 851 00010000D 1305 - 508 2 1 0D 1306 - 508 853 00010000D 1307 - 508 2 1 0D 1308 - 508 855 00010000D 1309 - 508 2 1 0D 1310 - 508 857 00010000D 1311 - 508 2 1 0D 1312 - 508 859 00010000D 1313 - 508 2 1 0D 1314 - 508 861 00010000D 1315 - 508 2 1 0D 1316 - 508 863 00010000D 1317 - 508 2 1 0D 1318 - 508 865 00010000D 1319 - 508 2 1 0D 1320 - 508 867 00010000D 1321 - 508 2 1 0D 1322 - 508 869 00010000D 1323 - 508 2 1 0D 1324 - 508 871 00010000D 1325 - 508 2 1 0D 1326 - 508 873 00010000D 1327 - 508 2 1 0D 1328 - 508 875 00010000D 1329 - 508 2 1 0D 1330 - 508 877 00010000D 1331 - 508 2 1 0D 1332 - 508 879 00010000D 1333 - 508 2 1 0D 1334 - 508 881 00010000D 1335 - 508 2 1 0D 1336 - 508 883 00010000D 1337 - 508 2 1 0D 1338 - 508 885 00010000D 1339 - 508 2 1 0D 1340 - 508 887 00010000D 1341 - 508 2 1 0D 1342 - 508 889 00010000D 1343 - 508 2 1 0D 1344 - 508 891 00010000D 1345 - 508 2 1 0D 1346 - 508 893 00010000D 1347 - 508 2 1 0D 1348 - 508 895 00010000D 1349 - 508 2 1 0D 1350 - 508 897 00010000D 1351 - 508 2 1 0D 1352 - 508 899 00010000D 1353 - 508 2 1 0D 1354 - 508 901 00010000D 1355 - 508 2 1 0D 1356 - 508 903 00010000D 1357 - 508 2 1 0D 1358 - 508 905 00010000D 1359 - 508 2 1 0D 1360 - 508 907 00010000D 1361 - 508 2 1 0D 1362 - 508 909 00010000D 1363 - 508 2 1 0D 1364 - 508 911 00010000D 1365 - 508 2 1 0D 1366 - 508 913 00010000D 1367 - 508 2 1 0D 1368 - 508 915 00010000D 1369 - 508 2 1 0D 1370 - 508 917 00010000D 1371 - 508 2 1 0D 1372 - 508 919 00010000D 1373 - 508 2 1 0D 1374 - 508 921 00010000D 1375 - 508 2 1 0D 1376 - 508 923 00010000D 1377 - 508 2 1 0D 1378 - 508 925 00010000D 1379 - 508 2 1 0D 1380 - 508 927 00010000D 1381 - 508 2 1 0D 1382 - 508 929 00010000D 1383 - 508 2 1 0D 1384 - 508 931 00010000D 1385 - 508 2 1 0D 1386 - 508 933 00010000D 1387 - 508 2 1 0D 1388 - 508 935 00010000D 1389 - 508 2 1 0D 1390 - 508 937 00010000D 1391 - 508 2 1 0D 1392 - 508 939 00010000D 1393 - 508 2 1 0D 1394 - 508 941 00010000D 1395 - 508 2 1 0D 1396 - 508 943 00010000D 1397 - 508 2 1 0D 1398 - 508 945 00010000D 1399 - 508 2 1 0D 1400 - 508 947 00010000D 1401 - 508 2 1 0D 1402 - 508 949 00010000D 1403 - 508 2 1 0D 1404 - 508 951 00010000D 1405 - 508 2 1 0D 1406 - 508 953 00010000D 1407 - 508 2 1 0D 1408 - 508 955 00010000D 1409 - 508 2 1 0D 1410 - 508 957 00010000D 1411 - 508 2 1 0D 1412 - 508 959 00010000D 1413 - 508 2 1 0D 1414 - 508 961 00010000D 1415 - 508 2 1 0D 1416 - 508 963 00010000D 1417 - 508 2 1 0D 1418 - 508 965 00010000D 1419 - 508 2 1 0D 1420 - 508 967 00010000D 1421 - 508 2 1 0D 1422 - 508 969 00010000D 1423 - 508 2 1 0D 1424 - 508 971 00010000D 1425 - 508 2 1 0D 1426 - 508 973 00010000D 1427 - 508 2 1 0D 1428 - 508 975 00010000D 1429 - 508 2 1 0D 1430 - 508 977 00010000D 1431 - 508 2 1 0D 1432 - 508 979 00010000D 1433 - 508 2 1 0D 1434 - 508 981 00010000D 1435 - 508 2 1 0D 1436 - 508 983 00010000D 1437 - 508 2 1 0D 1438 - 508 985 00010000D 1439 - 508 2 1 0D 1440 - 508 987 00010000D 1441 - 508 2 1 0D 1442 - 508 989 00010000D 1443 - 508 2 1 0D 1444 - 508 991 00010000D 1445 - 508 2 1 0D 1446 - 508 993 00010000D 1447 - 508 2 1 0D 1448 - 508 995 00010000D 1449 - 508 2 1 0D 1450 - 508 997 00010000D 1451 - 508 2 1 0D 1452 - 508 999 00010000D 1453 - 508 2 1 0D 1454 - 508 1001 00010000D 1455 - 508 2 1 0D 1456 - 508 1003 00010000D 1457 - 508 2 1 0D 1458 - 508 1005 00010000D 1459 - 508 2 1 0D 1460 - 508 1007 00010000D 1461 - 508 2 1 0D 1462 - 508 1009 00010000D 1463 - 508 2 1 0D 1464 - 508 1011 00010000D 1465 - 508 2 1 0D 1466 - 508 1013 00010000D 1467 - 508 2 1 0D 1468 - 508 1015 00010000D 1469 - 508 2 1 0D 1470 - 508 1017 00010000D 1471 - 508 2 1 0D 1472 - 508 1019 00010000D 1473 - 508 2 1 0D 1474 - 508 1021 00010000D 1475 - 508 2 1 0D 1476 - 508 1023 00010000D 1477 - 508 2 1 0D 1478 - 508 1025 00010000D 1479 - 508 2 1 0D 1480 - 508 1027 00010000D 1481 - 508 2 1 0D 1482 - 508 1029 00010000D 1483 - 508 2 1 0D 1484 - 508 1031 00010000D 1485 - 508 2 1 0D 1486 - 508 1033 00010000D 1487 - 508 2 1 0D 1488 - 508 1035 00010000D 1489 - 508 2 1 0D 1490 - 508 1037 00010000D 1491 - 508 2 1 0D 1492 - 508 1039 00010000D 1493 - 508 2 1 0D 1494 - 508 1041 00010000D 1495 - 508 2 1 0D 1496 - 508 1043 00010000D 1497 - 508 2 1 0D 1498 - 508 1045 00010000D 1499 - 508 2 1 0D 1500 - 508 1047 00010000D 1501 - 508 2 1 0D 1502 - 508 1049 00010000D 1503 - 508 2 1 0D 1504 - 508 1051 00010000D 1505 - 508 2 1 0D 1506 - 508 1053 00010000D 1507 - 508 2 1 0D 1508 - 508 1055 00010000D 1509 - 508 2 1 0D 1510 - 508 1057 00010000D 1511 - 508 2 1 0D 1512 - 508 1059 00010000D 1513 - 508 2 1 0D 1514 - 508 1061 00010000D 1515 - 508 2 1 0D 1516 - 508 1063 00010000D 1517 - 508 2 1 0D 1518 - 508 1065 00010000D 1519 - 508 2 1 0D 1520 - 508 1067 00010000D 1521 - 508 2 1 0D 1522 - 508 1069 00010000D 1523 - 508 2 1 0D 1524 - 508 1071 00010000D 1525 - 508 2 1 0D 1526 - 508 1073 00010000D 1527 - 508 2 1 0D 1528 - 508 1075 00010000D 1529 - 508 2 1 0D 1530 - 508 1077 00010000D 1531 - 508 2 1 0D 1532 - 508 1079 00010000D 1533 - 508 2 1 0D 1534 - 508 1081 00010000D 1535 - 508 2 1 0D 1536 - 508 1083 00010000D 1537 - 508 2 1 0D 1538 - 508 1085 00010000D 1539 - 508 2 1 0D 1540 - 508 1087 00010000D 1541 - 508 2 1 0D 1542 - 508 1089 00010000D 1543 - 508 2 1 0D 1544 - 508 1091 00010000D 1545 - 508 3 1 0D 1546 - 508 1094 00010000D 1547 - 508 3 1 0D 1548 - 508 1097 00010000D 1549 - 508 3 1 0D 1550 - 508 1100 00010000D 1551 - 508 3 1 0D 1552 - 508 1103 00010000D 1553 - 508 3 1 0D 1554 - 508 1106 00010000D 1555 - 508 3 1 0D 1556 - 508 1109 00010000D 1557 - 508 3 1 0D 1558 - 508 1112 00010000D 1559 - 508 3 1 0D 1560 - 508 1115 00010000D 1561 - 508 3 1 0D 1562 - 508 1118 00010000D 1563 - 508 3 1 0D 1564 - 508 1121 00010000D 1565 - 508 3 1 0D 1566 - 508 1124 00010000D 1567 - 508 3 1 0D 1568 - 508 1127 00010000D 1569 - 508 3 1 0D 1570 - 508 1130 00010000D 1571 - 508 3 1 0D 1572 - 508 1133 00010000D 1573 - 508 3 1 0D 1574 - 508 1136 00010000D 1575 - 508 3 1 0D 1576 - 508 1139 00010000D 1577 - 508 3 1 0D 1578 - 508 1142 00010000D 1579 - 508 3 1 0D 1580 - 508 1145 00010000D 1581 - 508 3 1 0D 1582 - 508 1148 00010000D 1583 - 508 3 1 0D 1584 - 508 1151 00010000D 1585 - 508 3 1 0D 1586 - 508 1154 00010000D 1587 - 508 3 1 0D 1588 - 508 1157 00010000D 1589 - 508 3 1 0D 1590 - 508 1160 00010000D 1591 - 508 3 1 0D 1592 - 508 1163 00010000D 1593 - 508 3 1 0D 1594 - 508 1166 00010000D 1595 - 508 1 1 0D 1596 - 508 1167 00010000D 1597 - 508 1 1 0D 1598 - 508 1168 00010000D 1599 - 508 1 1 0D 1600 - 508 1169 00010000D 1601 - 508 1 1 0D 1602 - 508 1170 00010000D 1603 - 508 3 1 0D 1604 - 508 1173 00010000D 1605 - 508 3 1 0D 1606 - 508 1176 00010000D 1607 - 508 3 1 0D 1608 - 508 1179 00010000D 1609 - 508 3 1 0D 1610 - 508 1182 00010000D 1611 - 508 3 1 0D 1612 - 508 1185 00010000D 1613 - 508 3 1 0D 1614 - 508 1188 00010000D 1615 - 508 3 1 0D 1616 - 508 1191 00010000D 1617 - 508 3 1 0D 1618 - 508 1194 00010000D 1619 - 508 3 1 0D 1620 - 508 1197 00010000D 1621 - 508 3 1 0D 1622 - 508 1200 00010000D 1623 - 508 3 1 0D 1624 - 508 1203 00010000D 1625 - 508 3 1 0D 1626 - 508 1206 00010000D 1627 - 508 3 1 0D 1628 - 508 1209 00010000D 1629 - 508 3 1 0D 1630 - 508 1212 00010000D 1631 - 508 3 1 0D 1632 - 508 1215 00010000D 1633 - 508 3 1 0D 1634 - 508 1218 00010000D 1635 - 508 3 1 0D 1636 - 508 1221 00010000D 1637 - 508 3 1 0D 1638 - 508 1224 00010000D 1639 - 508 3 1 0D 1640 - 508 1227 00010000D 1641 - 508 3 1 0D 1642 - 508 1230 00010000D 1643 - 508 3 1 0D 1644 - 508 1233 00010000D 1645 - 508 3 1 0D 1646 - 508 1236 00010000D 1647 - 508 3 1 0D 1648 - 508 1239 00010000D 1649 - 508 3 1 0D 1650 - 508 1242 00010000D 1651 - 508 3 1 0D 1652 - 508 1245 00010000D 1653 - 508 1 1 0D 1654 - 508 1246 00010000D 1655 - 508 1 1 0D 1656 - 508 1247 00010000D 1657 - 508 1 1 0D 1658 - 508 1248 00010000D 1659 - 508 1 1 0D 1660 - 508 1249 00010000D 1661 - 508 1 1 0D 1662 - 508 1250 00010000D 1663 - 508 1 1 0D 1664 - 508 1251 00010000D 1665 - 508 1 1 0D 1666 - 508 1252 00010000D 1667 - 508 1 1 0D 1668 - 508 1253 00010000D 1669 - 508 1 1 0D 1670 - 508 1254 00010000D 1671 - 508 1 1 0D 1672 - 508 1255 00010000D 1673 - 508 2 1 0D 1674 - 508 1257 00010000D 1675 - 508 1 1 0D 1676 - 508 1258 00010000D 1677 - 508 1 1 0D 1678 - 508 1259 00010000D 1679 - 508 1 1 0D 1680 - 508 1260 00010000D 1681 - 508 1 1 0D 1682 - 508 1261 00010000D 1683 - 508 1 1 0D 1684 - 508 1262 00010000D 1685 - 508 1 1 0D 1686 - 508 1263 00010000D 1687 - 508 1 1 0D 1688 - 508 1264 00010000D 1689 - 508 1 1 0D 1690 - 508 1265 00010000D 1691 - 508 2 1 0D 1692 - 508 1267 00010000D 1693 - 508 1 1 0D 1694 - 508 1268 00010000D 1695 - 508 1 1 0D 1696 - 508 1269 00010000D 1697 - 508 1 1 0D 1698 - 508 1270 00010000D 1699 - 508 1 1 0D 1700 - 508 1271 00010000D 1701 - 508 1 1 0D 1702 - 508 1272 00010000D 1703 - 508 1 1 0D 1704 - 508 1273 00010000D 1705 - 508 1 1 0D 1706 - 508 1274 00010000D 1707 - 508 1 1 0D 1708 - 508 1275 00010000D 1709 - 508 1 1 0D 1710 - 508 1276 00010000D 1711 - 508 1 1 0D 1712 - 508 1277 00010000D 1713 - 508 1 1 0D 1714 - 508 1278 00010000D 1715 - 508 1 1 0D 1716 - 508 1279 00010000D 1717 - 508 1 1 0D 1718 - 508 1280 00010000D 1719 - 508 1 1 0D 1720 - 508 1281 00010000D 1721 - 508 2 1 0D 1722 - 508 1283 00010000D 1723 - 508 5 1 0D 1724 - 508 1288 00010000D 1725 - 508 2 1 0D 1726 - 508 1290 00010000D 1727 - 508 1 1 0D 1728 - 508 1291 00010000D 1729 - 508 1 1 0D 1730 - 508 1292 00010000D 1731 - 508 1 1 0D 1732 - 508 1293 00010000D 1733 - 508 1 1 0D 1734 - 508 1294 00010000D 1735 - 508 1 1 0D 1736 - 508 1295 00010000D 1737 - 508 1 1 0D 1738 - 508 1296 00010000D 1739 - 508 2 1 0D 1740 - 508 1298 00010000D 1741 - 508 2 1 0D 1742 - 508 1300 00010000D 1743 - 508 2 1 0D 1744 - 508 1302 00010000D 1745 - 508 2 1 0D 1746 - 508 1304 00010000D 1747 - 508 3 1 0D 1748 - 508 1307 00010000D 1749 - 508 2 1 0D 1750 - 508 1309 00010000D 1751 - 508 2 1 0D 1752 - 508 1311 00010000D 1753 - 508 2 1 0D 1754 - 508 1313 00010000D 1755 - 508 2 1 0D 1756 - 508 1315 00010000D 1757 - 508 2 1 0D 1758 - 508 1317 00010000D 1759 - 508 2 1 0D 1760 - 508 1319 00010000D 1761 - 508 2 1 0D 1762 - 508 1321 00010000D 1763 - 508 2 1 0D 1764 - 508 1323 00010000D 1765 - 508 2 1 0D 1766 - 508 1325 00010000D 1767 - 508 1 1 0D 1768 - 508 1326 00010000D 1769 - 508 2 1 0D 1770 - 508 1328 00010000D 1771 - 508 2 1 0D 1772 - 508 1330 00010000D 1773 - 508 2 1 0D 1774 - 508 1332 00010000D 1775 - 508 2 1 0D 1776 - 508 1334 00010000D 1777 - 508 2 1 0D 1778 - 508 1336 00010000D 1779 - 508 2 1 0D 1780 - 508 1338 00010000D 1781 - 508 3 1 0D 1782 - 508 1341 00010000D 1783 - 508 2 1 0D 1784 - 508 1343 00010000D 1785 - 508 3 1 0D 1786 - 508 1346 00010000D 1787 - 508 3 1 0D 1788 - 508 1349 00010000D 1789 - 508 2 1 0D 1790 - 508 1351 00010000D 1791 - 508 2 1 0D 1792 - 508 1353 00010000D 1793 - 508 2 1 0D 1794 - 508 1355 00010000D 1795 - 508 2 1 0D 1796 - 508 1357 00010000D 1797 - 508 2 1 0D 1798 - 508 1359 00010000D 1799 - 508 2 1 0D 1800 - 508 1361 00010000D 1801 - 508 2 1 0D 1802 - 508 1363 00010000D 1803 - 508 3 1 0D 1804 - 508 1366 00010000D 1805 - 508 2 1 0D 1806 - 508 1368 00010000D 1807 - 508 5 1 0D 1808 - 508 1373 00010000D 1809 - 508 1 1 0D 1810 - 508 1374 00010000D 1811 - 508 1 1 0D 1812 - 508 1375 00010000D 1813 - 508 1 1 0D 1814 - 508 1376 00010000D 1815 - 508 1 1 0D 1816 - 508 1377 00010000D 1817 - 508 1 1 0D 1818 - 508 1378 00010000D 1819 - 508 1 1 0D 1820 - 508 1379 00010000D 1821 - 508 1 1 0D 1822 - 508 1380 00010000D 1823 - 508 2 1 0D 1824 - 508 1382 00010000D 1825 - 508 3 1 0D 1826 - 508 1385 00010000D 1827 - 508 2 1 0D 1828 - 508 1387 00010000D 1829 - 508 2 1 0D 1830 - 508 1389 00010000D 1831 - 508 1 1 0D 1832 - 508 1390 00010000D 1833 - 508 3 1 0D 1834 - 508 1393 00010000D 1835 - 508 4 1 0D 1836 - 508 1397 00010000D 1837 - 508 1 1 0D 1838 - 508 1398 00010000D 1839 - 508 1 1 0D 1840 - 508 1399 00010000D 1841 - 508 1 1 0D 1842 - 508 1400 00010000D 1843 - 508 1 1 0D 1844 - 508 1401 00010000D 1845 - 508 1 1 0D 1846 - 508 1402 00010000D 1847 - 508 1 1 0D 1848 - 508 1403 00010000D 1849 - 508 1 1 0D 1850 - 508 1404 00010000D 1851 - 508 1 1 0D 1852 - 508 1405 00010000D 1853 - 508 1 1 0D 1854 - 508 1406 00010000D 1855 - 508 1 1 0D 1856 - 508 1407 00010000D 1857 - 508 1 1 0D 1858 - 508 1408 00010000D 1859 - 508 1 1 0D 1860 - 508 1409 00010000D 1861 - 508 1 1 0D 1862 - 508 1410 00010000D 1863 - 508 1 1 0D 1864 - 508 1411 00010000D 1865 - 508 1 1 0D 1866 - 508 1412 00010000D 1867 - 508 1 1 0D 1868 - 508 1413 00010000D 1869 - 508 2 1 0D 1870 - 508 1415 00010000D 1871 - 508 2 1 0D 1872 - 508 1417 00010000D 1873 - 508 2 1 0D 1874 - 508 1419 00010000D 1875 - 508 2 1 0D 1876 - 508 1421 00010000D 1877 - 508 2 1 0D 1878 - 508 1423 00010000D 1879 - 508 2 1 0D 1880 - 508 1425 00010000D 1881 - 508 2 1 0D 1882 - 508 1427 00010000D 1883 - 508 2 1 0D 1884 - 508 1429 00010000D 1885 - 508 2 1 0D 1886 - 508 1431 00010000D 1887 - 508 2 1 0D 1888 - 508 1433 00010000D 1889 - 508 2 1 0D 1890 - 508 1435 00010000D 1891 - 508 2 1 0D 1892 - 508 1437 00010000D 1893 - 508 2 1 0D 1894 - 508 1439 00010000D 1895 - 508 2 1 0D 1896 - 508 1441 00010000D 1897 - 508 2 1 0D 1898 - 508 1443 00010000D 1899 - 508 2 1 0D 1900 - 508 1445 00010000D 1901 - 508 2 1 0D 1902 - 508 1447 00010000D 1903 - 508 5 1 0D 1904 - 508 1452 00010000D 1905 - 508 3 1 0D 1906 - 508 1455 00010000D 1907 - 508 5 1 0D 1908 - 508 1460 00010000D 1909 - 508 1 1 0D 1910 - 508 1461 00010000D 1911 - 508 1 1 0D 1912 - 508 1462 00010000D 1913 - 508 1 1 0D 1914 - 508 1463 00010000D 1915 - 508 1 1 0D 1916 - 508 1464 00010000D 1917 - 508 1 1 0D 1918 - 508 1465 00010000D 1919 - 508 1 1 0D 1920 - 508 1466 00010000D 1921 - 508 5 1 0D 1922 - 508 1471 00010000D 1923 - 508 2 1 0D 1924 - 508 1473 00010000D 1925 - 508 2 1 0D 1926 - 508 1475 00010000D 1927 - 508 2 1 0D 1928 - 508 1477 00010000D 1929 - 508 2 1 0D 1930 - 508 1479 00010000D 1931 - 508 2 1 0D 1932 - 508 1481 00010000D 1933 - 508 2 1 0D 1934 - 508 1483 00010000D 1935 - 508 2 1 0D 1936 - 508 1485 00010000D 1937 - 508 1 1 0D 1938 - 508 1486 00010000D 1939 - 508 2 1 0D 1940 - 508 1488 00010000D 1941 - 508 2 1 0D 1942 - 508 1490 00010000D 1943 - 508 2 1 0D 1944 - 508 1492 00010000D 1945 - 508 2 1 0D 1946 - 508 1494 00010000D 1947 - 508 2 1 0D 1948 - 508 1496 00010000D 1949 - 508 2 1 0D 1950 - 508 1498 00010000D 1951 - 508 2 1 0D 1952 - 508 1500 00010000D 1953 - 508 2 1 0D 1954 - 508 1502 00010000D 1955 - 508 2 1 0D 1956 - 508 1504 00010000D 1957 - 508 2 1 0D 1958 - 508 1506 00010000D 1959 - 508 2 1 0D 1960 - 508 1508 00010000D 1961 - 508 2 1 0D 1962 - 508 1510 00010000D 1963 - 508 2 1 0D 1964 - 508 1512 00010000D 1965 - 508 1 1 0D 1966 - 508 1513 00010000D 1967 - 508 2 1 0D 1968 - 508 1515 00010000D 1969 - 508 3 1 0D 1970 - 508 1518 00010000D 1971 - 508 1 1 0D 1972 - 508 1519 00010000D 1973 - 508 2 1 0D 1974 - 508 1521 00010000D 1975 - 508 1 1 0D 1976 - 508 1522 00010000D 1977 - 508 1 1 0D 1978 - 508 1523 00010000D 1979 - 508 1 1 0D 1980 - 508 1524 00010000D 1981 - 508 1 1 0D 1982 - 508 1525 00010000D 1983 - 508 2 1 0D 1984 - 508 1527 00010000D 1985 - 508 1 1 0D 1986 - 508 1528 00010000D 1987 - 508 2 1 0D 1988 - 508 1530 00010000D 1989 - 508 2 1 0D 1990 - 508 1532 00010000D 1991 - 508 2 1 0D 1992 - 508 1534 00010000D 1993 - 508 2 1 0D 1994 - 508 1536 00010000D 1995 - 508 2 1 0D 1996 - 508 1538 00010000D 1997 - 508 2 1 0D 1998 - 508 1540 00010000D 1999 - 508 2 1 0D 2000 - 508 1542 00010000D 2001 - 508 2 1 0D 2002 - 508 1544 00010000D 2003 - 508 3 1 0D 2004 - 508 1547 00010000D 2005 - 508 2 1 0D 2006 - 508 1549 00010000D 2007 - 508 3 1 0D 2008 - 508 1552 00010000D 2009 - 508 3 1 0D 2010 - 508 1555 00010000D 2011 - 508 2 1 0D 2012 - 508 1557 00010000D 2013 - 508 2 1 0D 2014 - 508 1559 00010000D 2015 - 508 2 1 0D 2016 - 508 1561 00010000D 2017 - 508 2 1 0D 2018 - 508 1563 00010000D 2019 - 508 2 1 0D 2020 - 508 1565 00010000D 2021 - 508 2 1 0D 2022 - 508 1567 00010000D 2023 - 508 1 1 0D 2024 - 508 1568 00010000D 2025 - 508 1 1 0D 2026 - 126 1569 00010000D 2027 - 126 0 13 0 0D 2028 - 126 1582 00010000D 2029 - 126 0 4 0 0D 2030 - 126 1586 00010000D 2031 - 126 0 13 0 0D 2032 - 126 1599 00010000D 2033 - 126 0 3 0 0D 2034 - 126 1602 00010000D 2035 - 126 0 13 0 0D 2036 - 126 1615 00010000D 2037 - 126 0 13 0 0D 2038 - 126 1628 00010000D 2039 - 126 0 13 0 0D 2040 - 126 1641 00010000D 2041 - 126 0 4 0 0D 2042 - 126 1645 00010000D 2043 - 126 0 13 0 0D 2044 - 126 1658 00010000D 2045 - 126 0 3 0 0D 2046 - 126 1661 00010000D 2047 - 126 0 13 0 0D 2048 - 126 1674 00010000D 2049 - 126 0 13 0 0D 2050 - 126 1687 00010000D 2051 - 126 0 11 0 0D 2052 - 126 1698 00010000D 2053 - 126 0 3 0 0D 2054 - 126 1701 00010000D 2055 - 126 0 11 0 0D 2056 - 126 1712 00010000D 2057 - 126 0 3 0 0D 2058 - 126 1715 00010000D 2059 - 126 0 11 0 0D 2060 - 126 1726 00010000D 2061 - 126 0 11 0 0D 2062 - 126 1737 00010000D 2063 - 126 0 11 0 0D 2064 - 126 1748 00010000D 2065 - 126 0 3 0 0D 2066 - 126 1751 00010000D 2067 - 126 0 11 0 0D 2068 - 126 1762 00010000D 2069 - 126 0 3 0 0D 2070 - 126 1765 00010000D 2071 - 126 0 11 0 0D 2072 - 126 1776 00010000D 2073 - 126 0 11 0 0D 2074 - 126 1787 00010000D 2075 - 126 0 4 0 0D 2076 - 126 1791 00010000D 2077 - 126 0 3 0 0D 2078 - 126 1794 00010000D 2079 - 126 0 4 0 0D 2080 - 126 1798 00010000D 2081 - 126 0 3 0 0D 2082 - 126 1801 00010000D 2083 - 126 0 4 0 0D 2084 - 126 1805 00010000D 2085 - 126 0 4 0 0D 2086 - 126 1809 00010000D 2087 - 126 0 3 0 0D 2088 - 126 1812 00010000D 2089 - 126 0 4 0 0D 2090 - 126 1816 00010000D 2091 - 126 0 4 0 0D 2092 - 126 1820 00010000D 2093 - 126 0 3 0 0D 2094 - 126 1823 00010000D 2095 - 126 0 4 0 0D 2096 - 126 1827 00010000D 2097 - 126 0 4 0 0D 2098 - 126 1831 00010000D 2099 - 126 0 3 0 0D 2100 - 126 1834 00010000D 2101 - 126 0 4 0 0D 2102 - 126 1838 00010000D 2103 - 126 0 4 0 0D 2104 - 126 1842 00010000D 2105 - 126 0 3 0 0D 2106 - 126 1845 00010000D 2107 - 126 0 4 0 0D 2108 - 126 1849 00010000D 2109 - 126 0 4 0 0D 2110 - 126 1853 00010000D 2111 - 126 0 3 0 0D 2112 - 126 1856 00010000D 2113 - 126 0 4 0 0D 2114 - 126 1860 00010000D 2115 - 126 0 4 0 0D 2116 - 126 1864 00010000D 2117 - 126 0 3 0 0D 2118 - 126 1867 00010000D 2119 - 126 0 4 0 0D 2120 - 126 1871 00010000D 2121 - 126 0 4 0 0D 2122 - 126 1875 00010000D 2123 - 126 0 3 0 0D 2124 - 126 1878 00010000D 2125 - 126 0 4 0 0D 2126 - 126 1882 00010000D 2127 - 126 0 4 0 0D 2128 - 126 1886 00010000D 2129 - 126 0 3 0 0D 2130 - 126 1889 00010000D 2131 - 126 0 4 0 0D 2132 - 126 1893 00010000D 2133 - 126 0 4 0 0D 2134 - 126 1897 00010000D 2135 - 126 0 3 0 0D 2136 - 126 1900 00010000D 2137 - 126 0 4 0 0D 2138 - 126 1904 00010000D 2139 - 126 0 4 0 0D 2140 - 126 1908 00010000D 2141 - 126 0 3 0 0D 2142 - 126 1911 00010000D 2143 - 126 0 4 0 0D 2144 - 126 1915 00010000D 2145 - 126 0 4 0 0D 2146 - 126 1919 00010000D 2147 - 126 0 4 0 0D 2148 - 126 1923 00010000D 2149 - 126 0 3 0 0D 2150 - 126 1926 00010000D 2151 - 126 0 4 0 0D 2152 - 126 1930 00010000D 2153 - 126 0 3 0 0D 2154 - 126 1933 00010000D 2155 - 126 0 4 0 0D 2156 - 126 1937 00010000D 2157 - 126 0 4 0 0D 2158 - 126 1941 00010000D 2159 - 126 0 3 0 0D 2160 - 126 1944 00010000D 2161 - 126 0 4 0 0D 2162 - 126 1948 00010000D 2163 - 126 0 4 0 0D 2164 - 126 1952 00010000D 2165 - 126 0 3 0 0D 2166 - 126 1955 00010000D 2167 - 126 0 4 0 0D 2168 - 126 1959 00010000D 2169 - 126 0 4 0 0D 2170 - 126 1963 00010000D 2171 - 126 0 3 0 0D 2172 - 126 1966 00010000D 2173 - 126 0 4 0 0D 2174 - 126 1970 00010000D 2175 - 126 0 4 0 0D 2176 - 126 1974 00010000D 2177 - 126 0 3 0 0D 2178 - 126 1977 00010000D 2179 - 126 0 4 0 0D 2180 - 126 1981 00010000D 2181 - 126 0 4 0 0D 2182 - 126 1985 00010000D 2183 - 126 0 3 0 0D 2184 - 126 1988 00010000D 2185 - 126 0 4 0 0D 2186 - 126 1992 00010000D 2187 - 126 0 4 0 0D 2188 - 126 1996 00010000D 2189 - 126 0 3 0 0D 2190 - 126 1999 00010000D 2191 - 126 0 4 0 0D 2192 - 126 2003 00010000D 2193 - 126 0 4 0 0D 2194 - 126 2007 00010000D 2195 - 126 0 3 0 0D 2196 - 126 2010 00010000D 2197 - 126 0 4 0 0D 2198 - 126 2014 00010000D 2199 - 126 0 4 0 0D 2200 - 126 2018 00010000D 2201 - 126 0 3 0 0D 2202 - 126 2021 00010000D 2203 - 126 0 4 0 0D 2204 - 126 2025 00010000D 2205 - 126 0 3 0 0D 2206 - 126 2028 00010000D 2207 - 126 0 3 0 0D 2208 - 126 2031 00010000D 2209 - 126 0 4 0 0D 2210 - 126 2035 00010000D 2211 - 126 0 4 0 0D 2212 - 126 2039 00010000D 2213 - 126 0 3 0 0D 2214 - 126 2042 00010000D 2215 - 126 0 4 0 0D 2216 - 126 2046 00010000D 2217 - 126 0 4 0 0D 2218 - 126 2050 00010000D 2219 - 126 0 4 0 0D 2220 - 126 2054 00010000D 2221 - 126 0 3 0 0D 2222 - 126 2057 00010000D 2223 - 126 0 3 0 0D 2224 - 126 2060 00010000D 2225 - 126 0 3 0 0D 2226 - 126 2063 00010000D 2227 - 126 0 4 0 0D 2228 - 126 2067 00010000D 2229 - 126 0 4 0 0D 2230 - 126 2071 00010000D 2231 - 126 0 3 0 0D 2232 - 126 2074 00010000D 2233 - 126 0 4 0 0D 2234 - 126 2078 00010000D 2235 - 126 0 4 0 0D 2236 - 126 2082 00010000D 2237 - 126 0 3 0 0D 2238 - 126 2085 00010000D 2239 - 126 0 4 0 0D 2240 - 126 2089 00010000D 2241 - 126 0 3 0 0D 2242 - 126 2092 00010000D 2243 - 126 0 3 0 0D 2244 - 126 2095 00010000D 2245 - 126 0 4 0 0D 2246 - 126 2099 00010000D 2247 - 126 0 4 0 0D 2248 - 126 2103 00010000D 2249 - 126 0 3 0 0D 2250 - 126 2106 00010000D 2251 - 126 0 4 0 0D 2252 - 126 2110 00010000D 2253 - 126 0 3 0 0D 2254 - 126 2113 00010000D 2255 - 126 0 3 0 0D 2256 - 126 2116 00010000D 2257 - 126 0 4 0 0D 2258 - 126 2120 00010000D 2259 - 126 0 3 0 0D 2260 - 126 2123 00010000D 2261 - 126 0 3 0 0D 2262 - 126 2126 00010000D 2263 - 126 0 4 0 0D 2264 - 126 2130 00010000D 2265 - 126 0 4 0 0D 2266 - 126 2134 00010000D 2267 - 126 0 3 0 0D 2268 - 126 2137 00010000D 2269 - 126 0 4 0 0D 2270 - 126 2141 00010000D 2271 - 126 0 4 0 0D 2272 - 126 2145 00010000D 2273 - 126 0 3 0 0D 2274 - 126 2148 00010000D 2275 - 126 0 4 0 0D 2276 - 126 2152 00010000D 2277 - 126 0 3 0 0D 2278 - 126 2155 00010000D 2279 - 126 0 3 0 0D 2280 - 126 2158 00010000D 2281 - 126 0 4 0 0D 2282 - 126 2162 00010000D 2283 - 126 0 4 0 0D 2284 - 126 2166 00010000D 2285 - 126 0 3 0 0D 2286 - 126 2169 00010000D 2287 - 126 0 4 0 0D 2288 - 126 2173 00010000D 2289 - 126 0 4 0 0D 2290 - 126 2177 00010000D 2291 - 126 0 3 0 0D 2292 - 126 2180 00010000D 2293 - 126 0 3 0 0D 2294 - 126 2183 00010000D 2295 - 126 0 3 0 0D 2296 - 126 2186 00010000D 2297 - 126 0 3 0 0D 2298 - 126 2189 00010000D 2299 - 126 0 4 0 0D 2300 - 126 2193 00010000D 2301 - 126 0 4 0 0D 2302 - 126 2197 00010000D 2303 - 126 0 3 0 0D 2304 - 126 2200 00010000D 2305 - 126 0 4 0 0D 2306 - 126 2204 00010000D 2307 - 126 0 4 0 0D 2308 - 126 2208 00010000D 2309 - 126 0 3 0 0D 2310 - 126 2211 00010000D 2311 - 126 0 4 0 0D 2312 - 126 2215 00010000D 2313 - 126 0 3 0 0D 2314 - 126 2218 00010000D 2315 - 126 0 3 0 0D 2316 - 126 2221 00010000D 2317 - 126 0 4 0 0D 2318 - 126 2225 00010000D 2319 - 126 0 4 0 0D 2320 - 126 2229 00010000D 2321 - 126 0 3 0 0D 2322 - 126 2232 00010000D 2323 - 126 0 4 0 0D 2324 - 126 2236 00010000D 2325 - 126 0 3 0 0D 2326 - 126 2239 00010000D 2327 - 126 0 3 0 0D 2328 - 126 2242 00010000D 2329 - 126 0 4 0 0D 2330 - 126 2246 00010000D 2331 - 126 0 3 0 0D 2332 - 126 2249 00010000D 2333 - 126 0 3 0 0D 2334 - 126 2252 00010000D 2335 - 126 0 3 0 0D 2336 - 126 2255 00010000D 2337 - 126 0 4 0 0D 2338 - 126 2259 00010000D 2339 - 126 0 3 0 0D 2340 - 126 2262 00010000D 2341 - 126 0 3 0 0D 2342 - 126 2265 00010000D 2343 - 126 0 4 0 0D 2344 - 126 2269 00010000D 2345 - 126 0 3 0 0D 2346 - 126 2272 00010000D 2347 - 126 0 3 0 0D 2348 - 126 2275 00010000D 2349 - 126 0 3 0 0D 2350 - 126 2278 00010000D 2351 - 126 0 3 0 0D 2352 - 126 2281 00010000D 2353 - 126 0 3 0 0D 2354 - 126 2284 00010000D 2355 - 126 0 4 0 0D 2356 - 126 2288 00010000D 2357 - 126 0 3 0 0D 2358 - 126 2291 00010000D 2359 - 126 0 3 0 0D 2360 - 126 2294 00010000D 2361 - 126 0 4 0 0D 2362 - 126 2298 00010000D 2363 - 126 0 3 0 0D 2364 - 126 2301 00010000D 2365 - 126 0 3 0 0D 2366 - 126 2304 00010000D 2367 - 126 0 3 0 0D 2368 - 126 2307 00010000D 2369 - 126 0 3 0 0D 2370 - 126 2310 00010000D 2371 - 126 0 3 0 0D 2372 - 126 2313 00010000D 2373 - 126 0 4 0 0D 2374 - 126 2317 00010000D 2375 - 126 0 3 0 0D 2376 - 126 2320 00010000D 2377 - 126 0 3 0 0D 2378 - 126 2323 00010000D 2379 - 126 0 4 0 0D 2380 - 126 2327 00010000D 2381 - 126 0 3 0 0D 2382 - 126 2330 00010000D 2383 - 126 0 3 0 0D 2384 - 126 2333 00010000D 2385 - 126 0 3 0 0D 2386 - 126 2336 00010000D 2387 - 126 0 3 0 0D 2388 - 126 2339 00010000D 2389 - 126 0 3 0 0D 2390 - 126 2342 00010000D 2391 - 126 0 4 0 0D 2392 - 126 2346 00010000D 2393 - 126 0 3 0 0D 2394 - 126 2349 00010000D 2395 - 126 0 3 0 0D 2396 - 126 2352 00010000D 2397 - 126 0 3 0 0D 2398 - 126 2355 00010000D 2399 - 126 0 3 0 0D 2400 - 126 2358 00010000D 2401 - 126 0 3 0 0D 2402 - 126 2361 00010000D 2403 - 126 0 3 0 0D 2404 - 126 2364 00010000D 2405 - 126 0 3 0 0D 2406 - 126 2367 00010000D 2407 - 126 0 3 0 0D 2408 - 126 2370 00010000D 2409 - 126 0 4 0 0D 2410 - 126 2374 00010000D 2411 - 126 0 3 0 0D 2412 - 126 2377 00010000D 2413 - 126 0 3 0 0D 2414 - 126 2380 00010000D 2415 - 126 0 4 0 0D 2416 - 126 2384 00010000D 2417 - 126 0 3 0 0D 2418 - 126 2387 00010000D 2419 - 126 0 3 0 0D 2420 - 126 2390 00010000D 2421 - 126 0 3 0 0D 2422 - 126 2393 00010000D 2423 - 126 0 3 0 0D 2424 - 126 2396 00010000D 2425 - 126 0 3 0 0D 2426 - 126 2399 00010000D 2427 - 126 0 4 0 0D 2428 - 126 2403 00010000D 2429 - 126 0 3 0 0D 2430 - 126 2406 00010000D 2431 - 126 0 3 0 0D 2432 - 126 2409 00010000D 2433 - 126 0 4 0 0D 2434 - 126 2413 00010000D 2435 - 126 0 3 0 0D 2436 - 126 2416 00010000D 2437 - 126 0 3 0 0D 2438 - 126 2419 00010000D 2439 - 126 0 3 0 0D 2440 - 126 2422 00010000D 2441 - 126 0 3 0 0D 2442 - 126 2425 00010000D 2443 - 126 0 3 0 0D 2444 - 126 2428 00010000D 2445 - 126 0 4 0 0D 2446 - 126 2432 00010000D 2447 - 126 0 3 0 0D 2448 - 126 2435 00010000D 2449 - 126 0 3 0 0D 2450 - 126 2438 00010000D 2451 - 126 0 4 0 0D 2452 - 126 2442 00010000D 2453 - 126 0 3 0 0D 2454 - 126 2445 00010000D 2455 - 126 0 3 0 0D 2456 - 126 2448 00010000D 2457 - 126 0 3 0 0D 2458 - 126 2451 00010000D 2459 - 126 0 3 0 0D 2460 - 126 2454 00010000D 2461 - 126 0 3 0 0D 2462 - 126 2457 00010000D 2463 - 126 0 4 0 0D 2464 - 126 2461 00010000D 2465 - 126 0 3 0 0D 2466 - 126 2464 00010000D 2467 - 126 0 3 0 0D 2468 - 126 2467 00010000D 2469 - 126 0 3 0 0D 2470 - 126 2470 00010000D 2471 - 126 0 3 0 0D 2472 - 126 2473 00010000D 2473 - 126 0 3 0 0D 2474 - 126 2476 00010000D 2475 - 126 0 4 0 0D 2476 - 126 2480 00010000D 2477 - 126 0 3 0 0D 2478 - 126 2483 00010000D 2479 - 126 0 3 0 0D 2480 - 126 2486 00010000D 2481 - 126 0 4 0 0D 2482 - 126 2490 00010000D 2483 - 126 0 3 0 0D 2484 - 126 2493 00010000D 2485 - 126 0 3 0 0D 2486 - 126 2496 00010000D 2487 - 126 0 4 0 0D 2488 - 126 2500 00010000D 2489 - 126 0 3 0 0D 2490 - 126 2503 00010000D 2491 - 126 0 3 0 0D 2492 - 126 2506 00010000D 2493 - 126 0 3 0 0D 2494 - 126 2509 00010000D 2495 - 126 0 3 0 0D 2496 - 126 2512 00010000D 2497 - 126 0 3 0 0D 2498 - 126 2515 00010000D 2499 - 126 0 4 0 0D 2500 - 126 2519 00010000D 2501 - 126 0 3 0 0D 2502 - 126 2522 00010000D 2503 - 126 0 3 0 0D 2504 - 126 2525 00010000D 2505 - 126 0 4 0 0D 2506 - 126 2529 00010000D 2507 - 126 0 4 0 0D 2508 - 126 2533 00010000D 2509 - 126 0 3 0 0D 2510 - 126 2536 00010000D 2511 - 126 0 4 0 0D 2512 - 126 2540 00010000D 2513 - 126 0 3 0 0D 2514 - 126 2543 00010000D 2515 - 126 0 4 0 0D 2516 - 126 2547 00010000D 2517 - 126 0 4 0 0D 2518 - 126 2551 00010000D 2519 - 126 0 3 0 0D 2520 - 126 2554 00010000D 2521 - 126 0 4 0 0D 2522 - 126 2558 00010000D 2523 - 126 0 4 0 0D 2524 - 126 2562 00010000D 2525 - 126 0 3 0 0D 2526 - 126 2565 00010000D 2527 - 126 0 4 0 0D 2528 - 126 2569 00010000D 2529 - 126 0 4 0 0D 2530 - 126 2573 00010000D 2531 - 126 0 3 0 0D 2532 - 126 2576 00010000D 2533 - 126 0 4 0 0D 2534 - 126 2580 00010000D 2535 - 126 0 4 0 0D 2536 - 126 2584 00010000D 2537 - 126 0 3 0 0D 2538 - 126 2587 00010000D 2539 - 126 0 4 0 0D 2540 - 126 2591 00010000D 2541 - 126 0 4 0 0D 2542 - 126 2595 00010000D 2543 - 126 0 3 0 0D 2544 - 126 2598 00010000D 2545 - 126 0 4 0 0D 2546 - 126 2602 00010000D 2547 - 126 0 4 0 0D 2548 - 126 2606 00010000D 2549 - 126 0 3 0 0D 2550 - 126 2609 00010000D 2551 - 126 0 4 0 0D 2552 - 126 2613 00010000D 2553 - 126 0 4 0 0D 2554 - 126 2617 00010000D 2555 - 126 0 3 0 0D 2556 - 126 2620 00010000D 2557 - 126 0 4 0 0D 2558 - 126 2624 00010000D 2559 - 126 0 4 0 0D 2560 - 126 2628 00010000D 2561 - 126 0 3 0 0D 2562 - 126 2631 00010000D 2563 - 126 0 4 0 0D 2564 - 126 2635 00010000D 2565 - 126 0 4 0 0D 2566 - 126 2639 00010000D 2567 - 126 0 3 0 0D 2568 - 126 2642 00010000D 2569 - 126 0 4 0 0D 2570 - 126 2646 00010000D 2571 - 126 0 4 0 0D 2572 - 126 2650 00010000D 2573 - 126 0 3 0 0D 2574 - 126 2653 00010000D 2575 - 126 0 4 0 0D 2576 - 126 2657 00010000D 2577 - 126 0 4 0 0D 2578 - 126 2661 00010000D 2579 - 126 0 4 0 0D 2580 - 126 2665 00010000D 2581 - 126 0 3 0 0D 2582 - 126 2668 00010000D 2583 - 126 0 4 0 0D 2584 - 126 2672 00010000D 2585 - 126 0 3 0 0D 2586 - 126 2675 00010000D 2587 - 126 0 4 0 0D 2588 - 126 2679 00010000D 2589 - 126 0 4 0 0D 2590 - 126 2683 00010000D 2591 - 126 0 3 0 0D 2592 - 126 2686 00010000D 2593 - 126 0 4 0 0D 2594 - 126 2690 00010000D 2595 - 126 0 4 0 0D 2596 - 126 2694 00010000D 2597 - 126 0 3 0 0D 2598 - 126 2697 00010000D 2599 - 126 0 4 0 0D 2600 - 126 2701 00010000D 2601 - 126 0 4 0 0D 2602 - 126 2705 00010000D 2603 - 126 0 3 0 0D 2604 - 126 2708 00010000D 2605 - 126 0 4 0 0D 2606 - 126 2712 00010000D 2607 - 126 0 4 0 0D 2608 - 126 2716 00010000D 2609 - 126 0 3 0 0D 2610 - 126 2719 00010000D 2611 - 126 0 4 0 0D 2612 - 126 2723 00010000D 2613 - 126 0 4 0 0D 2614 - 126 2727 00010000D 2615 - 126 0 3 0 0D 2616 - 126 2730 00010000D 2617 - 126 0 4 0 0D 2618 - 126 2734 00010000D 2619 - 126 0 4 0 0D 2620 - 126 2738 00010000D 2621 - 126 0 3 0 0D 2622 - 126 2741 00010000D 2623 - 126 0 4 0 0D 2624 - 126 2745 00010000D 2625 - 126 0 4 0 0D 2626 - 126 2749 00010000D 2627 - 126 0 3 0 0D 2628 - 126 2752 00010000D 2629 - 126 0 4 0 0D 2630 - 126 2756 00010000D 2631 - 126 0 4 0 0D 2632 - 126 2760 00010000D 2633 - 126 0 3 0 0D 2634 - 126 2763 00010000D 2635 - 126 0 4 0 0D 2636 - 126 2767 00010000D 2637 - 126 0 3 0 0D 2638 - 126 2770 00010000D 2639 - 126 0 3 0 0D 2640 - 126 2773 00010000D 2641 - 126 0 4 0 0D 2642 - 126 2777 00010000D 2643 - 126 0 4 0 0D 2644 - 126 2781 00010000D 2645 - 126 0 3 0 0D 2646 - 126 2784 00010000D 2647 - 126 0 4 0 0D 2648 - 126 2788 00010000D 2649 - 126 0 4 0 0D 2650 - 126 2792 00010000D 2651 - 126 0 4 0 0D 2652 - 126 2796 00010000D 2653 - 126 0 3 0 0D 2654 - 126 2799 00010000D 2655 - 126 0 3 0 0D 2656 - 126 2802 00010000D 2657 - 126 0 3 0 0D 2658 - 126 2805 00010000D 2659 - 126 0 4 0 0D 2660 - 126 2809 00010000D 2661 - 126 0 4 0 0D 2662 - 126 2813 00010000D 2663 - 126 0 3 0 0D 2664 - 126 2816 00010000D 2665 - 126 0 4 0 0D 2666 - 126 2820 00010000D 2667 - 126 0 4 0 0D 2668 - 126 2824 00010000D 2669 - 126 0 3 0 0D 2670 - 126 2827 00010000D 2671 - 126 0 4 0 0D 2672 - 126 2831 00010000D 2673 - 126 0 3 0 0D 2674 - 126 2834 00010000D 2675 - 126 0 3 0 0D 2676 - 126 2837 00010000D 2677 - 126 0 4 0 0D 2678 - 126 2841 00010000D 2679 - 126 0 4 0 0D 2680 - 126 2845 00010000D 2681 - 126 0 3 0 0D 2682 - 126 2848 00010000D 2683 - 126 0 4 0 0D 2684 - 126 2852 00010000D 2685 - 126 0 4 0 0D 2686 - 126 2856 00010000D 2687 - 126 0 3 0 0D 2688 - 126 2859 00010000D 2689 - 126 0 4 0 0D 2690 - 126 2863 00010000D 2691 - 126 0 3 0 0D 2692 - 126 2866 00010000D 2693 - 126 0 3 0 0D 2694 - 126 2869 00010000D 2695 - 126 0 4 0 0D 2696 - 126 2873 00010000D 2697 - 126 0 4 0 0D 2698 - 126 2877 00010000D 2699 - 126 0 3 0 0D 2700 - 126 2880 00010000D 2701 - 126 0 4 0 0D 2702 - 126 2884 00010000D 2703 - 126 0 4 0 0D 2704 - 126 2888 00010000D 2705 - 126 0 3 0 0D 2706 - 126 2891 00010000D 2707 - 126 0 4 0 0D 2708 - 126 2895 00010000D 2709 - 126 0 3 0 0D 2710 - 126 2898 00010000D 2711 - 126 0 3 0 0D 2712 - 126 2901 00010000D 2713 - 126 0 4 0 0D 2714 - 126 2905 00010000D 2715 - 126 0 4 0 0D 2716 - 126 2909 00010000D 2717 - 126 0 3 0 0D 2718 - 126 2912 00010000D 2719 - 126 0 4 0 0D 2720 - 126 2916 00010000D 2721 - 126 0 4 0 0D 2722 - 126 2920 00010000D 2723 - 126 0 3 0 0D 2724 - 126 2923 00010000D 2725 - 126 0 3 0 0D 2726 - 126 2926 00010000D 2727 - 126 0 3 0 0D 2728 - 126 2929 00010000D 2729 - 126 0 3 0 0D 2730 - 126 2932 00010000D 2731 - 126 0 4 0 0D 2732 - 126 2936 00010000D 2733 - 126 0 4 0 0D 2734 - 126 2940 00010000D 2735 - 126 0 3 0 0D 2736 - 126 2943 00010000D 2737 - 126 0 4 0 0D 2738 - 126 2947 00010000D 2739 - 126 0 4 0 0D 2740 - 126 2951 00010000D 2741 - 126 0 3 0 0D 2742 - 126 2954 00010000D 2743 - 126 0 4 0 0D 2744 - 126 2958 00010000D 2745 - 126 0 3 0 0D 2746 - 126 2961 00010000D 2747 - 126 0 3 0 0D 2748 - 126 2964 00010000D 2749 - 126 0 4 0 0D 2750 - 126 2968 00010000D 2751 - 126 0 4 0 0D 2752 - 126 2972 00010000D 2753 - 126 0 3 0 0D 2754 - 126 2975 00010000D 2755 - 126 0 4 0 0D 2756 - 126 2979 00010000D 2757 - 126 0 4 0 0D 2758 - 126 2983 00010000D 2759 - 126 0 3 0 0D 2760 - 126 2986 00010000D 2761 - 126 0 4 0 0D 2762 - 126 2990 00010000D 2763 - 126 0 3 0 0D 2764 - 126 2993 00010000D 2765 - 126 0 3 0 0D 2766 - 126 2996 00010000D 2767 - 126 0 3 0 0D 2768 - 126 2999 00010000D 2769 - 126 0 4 0 0D 2770 - 126 3003 00010000D 2771 - 126 0 3 0 0D 2772 - 126 3006 00010000D 2773 - 126 0 3 0 0D 2774 - 126 3009 00010000D 2775 - 126 0 4 0 0D 2776 - 126 3013 00010000D 2777 - 126 0 3 0 0D 2778 - 126 3016 00010000D 2779 - 126 0 3 0 0D 2780 - 126 3019 00010000D 2781 - 126 0 3 0 0D 2782 - 126 3022 00010000D 2783 - 126 0 3 0 0D 2784 - 126 3025 00010000D 2785 - 126 0 3 0 0D 2786 - 126 3028 00010000D 2787 - 126 0 4 0 0D 2788 - 126 3032 00010000D 2789 - 126 0 3 0 0D 2790 - 126 3035 00010000D 2791 - 126 0 3 0 0D 2792 - 126 3038 00010000D 2793 - 126 0 4 0 0D 2794 - 126 3042 00010000D 2795 - 126 0 3 0 0D 2796 - 126 3045 00010000D 2797 - 126 0 3 0 0D 2798 - 126 3048 00010000D 2799 - 126 0 3 0 0D 2800 - 126 3051 00010000D 2801 - 126 0 3 0 0D 2802 - 126 3054 00010000D 2803 - 126 0 3 0 0D 2804 - 126 3057 00010000D 2805 - 126 0 4 0 0D 2806 - 126 3061 00010000D 2807 - 126 0 3 0 0D 2808 - 126 3064 00010000D 2809 - 126 0 3 0 0D 2810 - 126 3067 00010000D 2811 - 126 0 4 0 0D 2812 - 126 3071 00010000D 2813 - 126 0 3 0 0D 2814 - 126 3074 00010000D 2815 - 126 0 3 0 0D 2816 - 126 3077 00010000D 2817 - 126 0 3 0 0D 2818 - 126 3080 00010000D 2819 - 126 0 3 0 0D 2820 - 126 3083 00010000D 2821 - 126 0 3 0 0D 2822 - 126 3086 00010000D 2823 - 126 0 4 0 0D 2824 - 126 3090 00010000D 2825 - 126 0 3 0 0D 2826 - 126 3093 00010000D 2827 - 126 0 3 0 0D 2828 - 126 3096 00010000D 2829 - 126 0 4 0 0D 2830 - 126 3100 00010000D 2831 - 126 0 3 0 0D 2832 - 126 3103 00010000D 2833 - 126 0 3 0 0D 2834 - 126 3106 00010000D 2835 - 126 0 3 0 0D 2836 - 126 3109 00010000D 2837 - 126 0 3 0 0D 2838 - 126 3112 00010000D 2839 - 126 0 3 0 0D 2840 - 126 3115 00010000D 2841 - 126 0 4 0 0D 2842 - 126 3119 00010000D 2843 - 126 0 3 0 0D 2844 - 126 3122 00010000D 2845 - 126 0 3 0 0D 2846 - 126 3125 00010000D 2847 - 126 0 4 0 0D 2848 - 126 3129 00010000D 2849 - 126 0 3 0 0D 2850 - 126 3132 00010000D 2851 - 126 0 3 0 0D 2852 - 126 3135 00010000D 2853 - 126 0 3 0 0D 2854 - 126 3138 00010000D 2855 - 126 0 3 0 0D 2856 - 126 3141 00010000D 2857 - 126 0 3 0 0D 2858 - 126 3144 00010000D 2859 - 126 0 4 0 0D 2860 - 126 3148 00010000D 2861 - 126 0 3 0 0D 2862 - 126 3151 00010000D 2863 - 126 0 3 0 0D 2864 - 126 3154 00010000D 2865 - 126 0 4 0 0D 2866 - 126 3158 00010000D 2867 - 126 0 3 0 0D 2868 - 126 3161 00010000D 2869 - 126 0 3 0 0D 2870 - 126 3164 00010000D 2871 - 126 0 3 0 0D 2872 - 126 3167 00010000D 2873 - 126 0 3 0 0D 2874 - 126 3170 00010000D 2875 - 126 0 3 0 0D 2876 - 126 3173 00010000D 2877 - 126 0 4 0 0D 2878 - 126 3177 00010000D 2879 - 126 0 3 0 0D 2880 - 126 3180 00010000D 2881 - 126 0 3 0 0D 2882 - 126 3183 00010000D 2883 - 126 0 4 0 0D 2884 - 126 3187 00010000D 2885 - 126 0 3 0 0D 2886 - 126 3190 00010000D 2887 - 126 0 3 0 0D 2888 - 126 3193 00010000D 2889 - 126 0 3 0 0D 2890 - 126 3196 00010000D 2891 - 126 0 3 0 0D 2892 - 126 3199 00010000D 2893 - 126 0 3 0 0D 2894 - 126 3202 00010000D 2895 - 126 0 4 0 0D 2896 - 126 3206 00010000D 2897 - 126 0 3 0 0D 2898 - 126 3209 00010000D 2899 - 126 0 3 0 0D 2900 - 126 3212 00010000D 2901 - 126 0 4 0 0D 2902 - 126 3216 00010000D 2903 - 126 0 3 0 0D 2904 - 126 3219 00010000D 2905 - 126 0 3 0 0D 2906 - 126 3222 00010000D 2907 - 126 0 4 0 0D 2908 - 126 3226 00010000D 2909 - 126 0 3 0 0D 2910 - 126 3229 00010000D 2911 - 126 0 3 0 0D 2912 - 126 3232 00010000D 2913 - 126 0 4 0 0D 2914 - 126 3236 00010000D 2915 - 126 0 3 0 0D 2916 - 126 3239 00010000D 2917 - 126 0 3 0 0D 2918 - 126 3242 00010000D 2919 - 126 0 4 0 0D 2920 - 126 3246 00010000D 2921 - 126 0 3 0 0D 2922 - 126 3249 00010000D 2923 - 126 0 3 0 0D 2924 - 126 3252 00010000D 2925 - 126 0 3 0 0D 2926 - 126 3255 00010000D 2927 - 126 0 3 0 0D 2928 - 126 3258 00010000D 2929 - 126 0 3 0 0D 2930 - 126 3261 00010000D 2931 - 126 0 4 0 0D 2932 - 126 3265 00010000D 2933 - 126 0 3 0 0D 2934 - 126 3268 00010000D 2935 - 126 0 3 0 0D 2936 - 126 3271 00010000D 2937 - 126 0 4 0 0D 2938 - 126 3275 00010000D 2939 - 126 0 4 0 0D 2940 - 126 3279 00010000D 2941 - 126 0 3 0 0D 2942 - 126 3282 00010000D 2943 - 126 0 4 0 0D 2944 - 126 3286 00010000D 2945 - 126 0 3 0 0D 2946 - 126 3289 00010000D 2947 - 126 0 4 0 0D 2948 - 126 3293 00010000D 2949 - 126 0 4 0 0D 2950 - 126 3297 00010000D 2951 - 126 0 3 0 0D 2952 - 126 3300 00010000D 2953 - 126 0 4 0 0D 2954 - 126 3304 00010000D 2955 - 126 0 4 0 0D 2956 - 126 3308 00010000D 2957 - 126 0 3 0 0D 2958 - 126 3311 00010000D 2959 - 126 0 4 0 0D 2960 - 126 3315 00010000D 2961 - 126 0 4 0 0D 2962 - 126 3319 00010000D 2963 - 126 0 3 0 0D 2964 - 126 3322 00010000D 2965 - 126 0 4 0 0D 2966 - 126 3326 00010000D 2967 - 126 0 4 0 0D 2968 - 126 3330 00010000D 2969 - 126 0 3 0 0D 2970 - 126 3333 00010000D 2971 - 126 0 4 0 0D 2972 - 126 3337 00010000D 2973 - 126 0 4 0 0D 2974 - 126 3341 00010000D 2975 - 126 0 3 0 0D 2976 - 126 3344 00010000D 2977 - 126 0 4 0 0D 2978 - 126 3348 00010000D 2979 - 126 0 4 0 0D 2980 - 126 3352 00010000D 2981 - 126 0 3 0 0D 2982 - 126 3355 00010000D 2983 - 126 0 4 0 0D 2984 - 126 3359 00010000D 2985 - 126 0 4 0 0D 2986 - 126 3363 00010000D 2987 - 126 0 3 0 0D 2988 - 126 3366 00010000D 2989 - 126 0 4 0 0D 2990 - 126 3370 00010000D 2991 - 126 0 4 0 0D 2992 - 126 3374 00010000D 2993 - 126 0 3 0 0D 2994 - 126 3377 00010000D 2995 - 126 0 4 0 0D 2996 - 126 3381 00010000D 2997 - 126 0 4 0 0D 2998 - 126 3385 00010000D 2999 - 126 0 3 0 0D 3000 - 126 3388 00010000D 3001 - 126 0 4 0 0D 3002 - 126 3392 00010000D 3003 - 126 0 4 0 0D 3004 - 126 3396 00010000D 3005 - 126 0 3 0 0D 3006 - 126 3399 00010000D 3007 - 126 0 4 0 0D 3008 - 126 3403 00010000D 3009 - 126 0 4 0 0D 3010 - 126 3407 00010000D 3011 - 126 0 4 0 0D 3012 - 126 3411 00010000D 3013 - 126 0 3 0 0D 3014 - 126 3414 00010000D 3015 - 126 0 4 0 0D 3016 - 126 3418 00010000D 3017 - 126 0 3 0 0D 3018 - 126 3421 00010000D 3019 - 126 0 4 0 0D 3020 - 126 3425 00010000D 3021 - 126 0 4 0 0D 3022 - 126 3429 00010000D 3023 - 126 0 3 0 0D 3024 - 126 3432 00010000D 3025 - 126 0 4 0 0D 3026 - 126 3436 00010000D 3027 - 126 0 4 0 0D 3028 - 126 3440 00010000D 3029 - 126 0 3 0 0D 3030 - 126 3443 00010000D 3031 - 126 0 4 0 0D 3032 - 126 3447 00010000D 3033 - 126 0 4 0 0D 3034 - 126 3451 00010000D 3035 - 126 0 3 0 0D 3036 - 126 3454 00010000D 3037 - 126 0 4 0 0D 3038 - 126 3458 00010000D 3039 - 126 0 4 0 0D 3040 - 126 3462 00010000D 3041 - 126 0 3 0 0D 3042 - 126 3465 00010000D 3043 - 126 0 4 0 0D 3044 - 126 3469 00010000D 3045 - 126 0 4 0 0D 3046 - 126 3473 00010000D 3047 - 126 0 3 0 0D 3048 - 126 3476 00010000D 3049 - 126 0 4 0 0D 3050 - 126 3480 00010000D 3051 - 126 0 4 0 0D 3052 - 126 3484 00010000D 3053 - 126 0 3 0 0D 3054 - 126 3487 00010000D 3055 - 126 0 4 0 0D 3056 - 126 3491 00010000D 3057 - 126 0 4 0 0D 3058 - 126 3495 00010000D 3059 - 126 0 3 0 0D 3060 - 126 3498 00010000D 3061 - 126 0 4 0 0D 3062 - 126 3502 00010000D 3063 - 126 0 4 0 0D 3064 - 126 3506 00010000D 3065 - 126 0 3 0 0D 3066 - 126 3509 00010000D 3067 - 126 0 4 0 0D 3068 - 126 3513 00010000D 3069 - 126 0 3 0 0D 3070 - 126 3516 00010000D 3071 - 126 0 3 0 0D 3072 - 126 3519 00010000D 3073 - 126 0 4 0 0D 3074 - 126 3523 00010000D 3075 - 126 0 4 0 0D 3076 - 126 3527 00010000D 3077 - 126 0 3 0 0D 3078 - 126 3530 00010000D 3079 - 126 0 4 0 0D 3080 - 126 3534 00010000D 3081 - 126 0 4 0 0D 3082 - 126 3538 00010000D 3083 - 126 0 4 0 0D 3084 - 126 3542 00010000D 3085 - 126 0 3 0 0D 3086 - 126 3545 00010000D 3087 - 126 0 3 0 0D 3088 - 126 3548 00010000D 3089 - 126 0 3 0 0D 3090 - 126 3551 00010000D 3091 - 126 0 4 0 0D 3092 - 126 3555 00010000D 3093 - 126 0 4 0 0D 3094 - 126 3559 00010000D 3095 - 126 0 3 0 0D 3096 - 126 3562 00010000D 3097 - 126 0 4 0 0D 3098 - 126 3566 00010000D 3099 - 126 0 4 0 0D 3100 - 126 3570 00010000D 3101 - 126 0 3 0 0D 3102 - 126 3573 00010000D 3103 - 126 0 4 0 0D 3104 - 126 3577 00010000D 3105 - 126 0 3 0 0D 3106 - 126 3580 00010000D 3107 - 126 0 3 0 0D 3108 - 126 3583 00010000D 3109 - 126 0 4 0 0D 3110 - 126 3587 00010000D 3111 - 126 0 4 0 0D 3112 - 126 3591 00010000D 3113 - 126 0 3 0 0D 3114 - 126 3594 00010000D 3115 - 126 0 4 0 0D 3116 - 126 3598 00010000D 3117 - 126 0 4 0 0D 3118 - 126 3602 00010000D 3119 - 126 0 3 0 0D 3120 - 126 3605 00010000D 3121 - 126 0 4 0 0D 3122 - 126 3609 00010000D 3123 - 126 0 3 0 0D 3124 - 126 3612 00010000D 3125 - 126 0 3 0 0D 3126 - 126 3615 00010000D 3127 - 126 0 4 0 0D 3128 - 126 3619 00010000D 3129 - 126 0 4 0 0D 3130 - 126 3623 00010000D 3131 - 126 0 3 0 0D 3132 - 126 3626 00010000D 3133 - 126 0 4 0 0D 3134 - 126 3630 00010000D 3135 - 126 0 4 0 0D 3136 - 126 3634 00010000D 3137 - 126 0 3 0 0D 3138 - 126 3637 00010000D 3139 - 126 0 4 0 0D 3140 - 126 3641 00010000D 3141 - 126 0 3 0 0D 3142 - 126 3644 00010000D 3143 - 126 0 3 0 0D 3144 - 126 3647 00010000D 3145 - 126 0 4 0 0D 3146 - 126 3651 00010000D 3147 - 126 0 4 0 0D 3148 - 126 3655 00010000D 3149 - 126 0 3 0 0D 3150 - 126 3658 00010000D 3151 - 126 0 4 0 0D 3152 - 126 3662 00010000D 3153 - 126 0 4 0 0D 3154 - 126 3666 00010000D 3155 - 126 0 3 0 0D 3156 - 126 3669 00010000D 3157 - 126 0 3 0 0D 3158 - 126 3672 00010000D 3159 - 126 0 3 0 0D 3160 - 126 3675 00010000D 3161 - 126 0 3 0 0D 3162 - 126 3678 00010000D 3163 - 126 0 4 0 0D 3164 - 126 3682 00010000D 3165 - 126 0 4 0 0D 3166 - 126 3686 00010000D 3167 - 126 0 3 0 0D 3168 - 126 3689 00010000D 3169 - 126 0 4 0 0D 3170 - 126 3693 00010000D 3171 - 126 0 4 0 0D 3172 - 126 3697 00010000D 3173 - 126 0 3 0 0D 3174 - 126 3700 00010000D 3175 - 126 0 4 0 0D 3176 - 126 3704 00010000D 3177 - 126 0 3 0 0D 3178 - 126 3707 00010000D 3179 - 126 0 3 0 0D 3180 - 126 3710 00010000D 3181 - 126 0 4 0 0D 3182 - 126 3714 00010000D 3183 - 126 0 4 0 0D 3184 - 126 3718 00010000D 3185 - 126 0 3 0 0D 3186 - 126 3721 00010000D 3187 - 126 0 4 0 0D 3188 - 126 3725 00010000D 3189 - 126 0 4 0 0D 3190 - 126 3729 00010000D 3191 - 126 0 3 0 0D 3192 - 126 3732 00010000D 3193 - 126 0 4 0 0D 3194 - 126 3736 00010000D 3195 - 126 0 3 0 0D 3196 - 126 3739 00010000D 3197 - 126 0 3 0 0D 3198 - 126 3742 00010000D 3199 - 126 0 3 0 0D 3200 - 126 3745 00010000D 3201 - 126 0 4 0 0D 3202 - 126 3749 00010000D 3203 - 126 0 3 0 0D 3204 - 126 3752 00010000D 3205 - 126 0 3 0 0D 3206 - 126 3755 00010000D 3207 - 126 0 4 0 0D 3208 - 126 3759 00010000D 3209 - 126 0 3 0 0D 3210 - 126 3762 00010000D 3211 - 126 0 3 0 0D 3212 - 126 3765 00010000D 3213 - 126 0 3 0 0D 3214 - 126 3768 00010000D 3215 - 126 0 3 0 0D 3216 - 126 3771 00010000D 3217 - 126 0 3 0 0D 3218 - 126 3774 00010000D 3219 - 126 0 4 0 0D 3220 - 126 3778 00010000D 3221 - 126 0 3 0 0D 3222 - 126 3781 00010000D 3223 - 126 0 3 0 0D 3224 - 126 3784 00010000D 3225 - 126 0 4 0 0D 3226 - 126 3788 00010000D 3227 - 126 0 3 0 0D 3228 - 126 3791 00010000D 3229 - 126 0 3 0 0D 3230 - 126 3794 00010000D 3231 - 126 0 3 0 0D 3232 - 126 3797 00010000D 3233 - 126 0 3 0 0D 3234 - 126 3800 00010000D 3235 - 126 0 3 0 0D 3236 - 126 3803 00010000D 3237 - 126 0 4 0 0D 3238 - 126 3807 00010000D 3239 - 126 0 3 0 0D 3240 - 126 3810 00010000D 3241 - 126 0 3 0 0D 3242 - 126 3813 00010000D 3243 - 126 0 4 0 0D 3244 - 126 3817 00010000D 3245 - 126 0 3 0 0D 3246 - 126 3820 00010000D 3247 - 126 0 3 0 0D 3248 - 126 3823 00010000D 3249 - 126 0 3 0 0D 3250 - 126 3826 00010000D 3251 - 126 0 3 0 0D 3252 - 126 3829 00010000D 3253 - 126 0 3 0 0D 3254 - 126 3832 00010000D 3255 - 126 0 4 0 0D 3256 - 126 3836 00010000D 3257 - 126 0 3 0 0D 3258 - 126 3839 00010000D 3259 - 126 0 3 0 0D 3260 - 126 3842 00010000D 3261 - 126 0 4 0 0D 3262 - 126 3846 00010000D 3263 - 126 0 3 0 0D 3264 - 126 3849 00010000D 3265 - 126 0 3 0 0D 3266 - 126 3852 00010000D 3267 - 126 0 3 0 0D 3268 - 126 3855 00010000D 3269 - 126 0 3 0 0D 3270 - 126 3858 00010000D 3271 - 126 0 3 0 0D 3272 - 126 3861 00010000D 3273 - 126 0 4 0 0D 3274 - 126 3865 00010000D 3275 - 126 0 3 0 0D 3276 - 126 3868 00010000D 3277 - 126 0 3 0 0D 3278 - 126 3871 00010000D 3279 - 126 0 4 0 0D 3280 - 126 3875 00010000D 3281 - 126 0 3 0 0D 3282 - 126 3878 00010000D 3283 - 126 0 3 0 0D 3284 - 126 3881 00010000D 3285 - 126 0 3 0 0D 3286 - 126 3884 00010000D 3287 - 126 0 3 0 0D 3288 - 126 3887 00010000D 3289 - 126 0 3 0 0D 3290 - 126 3890 00010000D 3291 - 126 0 4 0 0D 3292 - 126 3894 00010000D 3293 - 126 0 3 0 0D 3294 - 126 3897 00010000D 3295 - 126 0 3 0 0D 3296 - 126 3900 00010000D 3297 - 126 0 4 0 0D 3298 - 126 3904 00010000D 3299 - 126 0 3 0 0D 3300 - 126 3907 00010000D 3301 - 126 0 3 0 0D 3302 - 126 3910 00010000D 3303 - 126 0 3 0 0D 3304 - 126 3913 00010000D 3305 - 126 0 3 0 0D 3306 - 126 3916 00010000D 3307 - 126 0 3 0 0D 3308 - 126 3919 00010000D 3309 - 126 0 4 0 0D 3310 - 126 3923 00010000D 3311 - 126 0 3 0 0D 3312 - 126 3926 00010000D 3313 - 126 0 3 0 0D 3314 - 126 3929 00010000D 3315 - 126 0 4 0 0D 3316 - 126 3933 00010000D 3317 - 126 0 3 0 0D 3318 - 126 3936 00010000D 3319 - 126 0 3 0 0D 3320 - 126 3939 00010000D 3321 - 126 0 3 0 0D 3322 - 126 3942 00010000D 3323 - 126 0 3 0 0D 3324 - 126 3945 00010000D 3325 - 126 0 3 0 0D 3326 - 126 3948 00010000D 3327 - 126 0 4 0 0D 3328 - 126 3952 00010000D 3329 - 126 0 3 0 0D 3330 - 126 3955 00010000D 3331 - 126 0 3 0 0D 3332 - 126 3958 00010000D 3333 - 126 0 4 0 0D 3334 - 126 3962 00010000D 3335 - 126 0 3 0 0D 3336 - 126 3965 00010000D 3337 - 126 0 3 0 0D 3338 - 126 3968 00010000D 3339 - 126 0 4 0 0D 3340 - 126 3972 00010000D 3341 - 126 0 3 0 0D 3342 - 126 3975 00010000D 3343 - 126 0 3 0 0D 3344 - 126 3978 00010000D 3345 - 126 0 4 0 0D 3346 - 126 3982 00010000D 3347 - 126 0 3 0 0D 3348 - 126 3985 00010000D 3349 - 126 0 3 0 0D 3350 - 126 3988 00010000D 3351 - 126 0 4 0 0D 3352 - 126 3992 00010000D 3353 - 126 0 3 0 0D 3354 - 126 3995 00010000D 3355 - 126 0 3 0 0D 3356 - 126 3998 00010000D 3357 - 126 0 3 0 0D 3358 - 126 4001 00010000D 3359 - 126 0 3 0 0D 3360 - 126 4004 00010000D 3361 - 126 0 3 0 0D 3362 - 126 4007 00010000D 3363 - 126 0 4 0 0D 3364 - 126 4011 00010000D 3365 - 126 0 3 0 0D 3366 - 126 4014 00010000D 3367 - 126 0 3 0 0D 3368 - 126 4017 00010000D 3369 - 126 0 4 0 0D 3370 - 126 4021 00010000D 3371 - 126 0 4 0 0D 3372 - 126 4025 00010000D 3373 - 126 0 3 0 0D 3374 - 126 4028 00010000D 3375 - 126 0 4 0 0D 3376 - 126 4032 00010000D 3377 - 126 0 3 0 0D 3378 - 126 4035 00010000D 3379 - 126 0 4 0 0D 3380 - 126 4039 00010000D 3381 - 126 0 4 0 0D 3382 - 126 4043 00010000D 3383 - 126 0 3 0 0D 3384 - 126 4046 00010000D 3385 - 126 0 4 0 0D 3386 - 126 4050 00010000D 3387 - 126 0 4 0 0D 3388 - 126 4054 00010000D 3389 - 126 0 3 0 0D 3390 - 126 4057 00010000D 3391 - 126 0 4 0 0D 3392 - 126 4061 00010000D 3393 - 126 0 4 0 0D 3394 - 126 4065 00010000D 3395 - 126 0 3 0 0D 3396 - 126 4068 00010000D 3397 - 126 0 4 0 0D 3398 - 126 4072 00010000D 3399 - 126 0 4 0 0D 3400 - 126 4076 00010000D 3401 - 126 0 3 0 0D 3402 - 126 4079 00010000D 3403 - 126 0 4 0 0D 3404 - 126 4083 00010000D 3405 - 126 0 4 0 0D 3406 - 126 4087 00010000D 3407 - 126 0 3 0 0D 3408 - 126 4090 00010000D 3409 - 126 0 4 0 0D 3410 - 126 4094 00010000D 3411 - 126 0 4 0 0D 3412 - 126 4098 00010000D 3413 - 126 0 3 0 0D 3414 - 126 4101 00010000D 3415 - 126 0 4 0 0D 3416 - 126 4105 00010000D 3417 - 126 0 4 0 0D 3418 - 126 4109 00010000D 3419 - 126 0 3 0 0D 3420 - 126 4112 00010000D 3421 - 126 0 4 0 0D 3422 - 126 4116 00010000D 3423 - 126 0 4 0 0D 3424 - 126 4120 00010000D 3425 - 126 0 3 0 0D 3426 - 126 4123 00010000D 3427 - 126 0 4 0 0D 3428 - 126 4127 00010000D 3429 - 126 0 4 0 0D 3430 - 126 4131 00010000D 3431 - 126 0 3 0 0D 3432 - 126 4134 00010000D 3433 - 126 0 4 0 0D 3434 - 126 4138 00010000D 3435 - 126 0 4 0 0D 3436 - 126 4142 00010000D 3437 - 126 0 3 0 0D 3438 - 126 4145 00010000D 3439 - 126 0 4 0 0D 3440 - 126 4149 00010000D 3441 - 126 0 4 0 0D 3442 - 126 4153 00010000D 3443 - 126 0 4 0 0D 3444 - 126 4157 00010000D 3445 - 126 0 3 0 0D 3446 - 126 4160 00010000D 3447 - 126 0 4 0 0D 3448 - 126 4164 00010000D 3449 - 126 0 3 0 0D 3450 - 126 4167 00010000D 3451 - 126 0 4 0 0D 3452 - 126 4171 00010000D 3453 - 126 0 4 0 0D 3454 - 126 4175 00010000D 3455 - 126 0 3 0 0D 3456 - 126 4178 00010000D 3457 - 126 0 4 0 0D 3458 - 126 4182 00010000D 3459 - 126 0 4 0 0D 3460 - 126 4186 00010000D 3461 - 126 0 3 0 0D 3462 - 126 4189 00010000D 3463 - 126 0 4 0 0D 3464 - 126 4193 00010000D 3465 - 126 0 4 0 0D 3466 - 126 4197 00010000D 3467 - 126 0 3 0 0D 3468 - 126 4200 00010000D 3469 - 126 0 4 0 0D 3470 - 126 4204 00010000D 3471 - 126 0 4 0 0D 3472 - 126 4208 00010000D 3473 - 126 0 3 0 0D 3474 - 126 4211 00010000D 3475 - 126 0 4 0 0D 3476 - 126 4215 00010000D 3477 - 126 0 4 0 0D 3478 - 126 4219 00010000D 3479 - 126 0 3 0 0D 3480 - 126 4222 00010000D 3481 - 126 0 4 0 0D 3482 - 126 4226 00010000D 3483 - 126 0 4 0 0D 3484 - 126 4230 00010000D 3485 - 126 0 3 0 0D 3486 - 126 4233 00010000D 3487 - 126 0 4 0 0D 3488 - 126 4237 00010000D 3489 - 126 0 4 0 0D 3490 - 126 4241 00010000D 3491 - 126 0 3 0 0D 3492 - 126 4244 00010000D 3493 - 126 0 4 0 0D 3494 - 126 4248 00010000D 3495 - 126 0 4 0 0D 3496 - 126 4252 00010000D 3497 - 126 0 3 0 0D 3498 - 126 4255 00010000D 3499 - 126 0 4 0 0D 3500 - 126 4259 00010000D 3501 - 126 0 3 0 0D 3502 - 126 4262 00010000D 3503 - 126 0 3 0 0D 3504 - 126 4265 00010000D 3505 - 126 0 4 0 0D 3506 - 126 4269 00010000D 3507 - 126 0 4 0 0D 3508 - 126 4273 00010000D 3509 - 126 0 3 0 0D 3510 - 126 4276 00010000D 3511 - 126 0 4 0 0D 3512 - 126 4280 00010000D 3513 - 126 0 4 0 0D 3514 - 126 4284 00010000D 3515 - 126 0 4 0 0D 3516 - 126 4288 00010000D 3517 - 126 0 3 0 0D 3518 - 126 4291 00010000D 3519 - 126 0 3 0 0D 3520 - 126 4294 00010000D 3521 - 126 0 3 0 0D 3522 - 126 4297 00010000D 3523 - 126 0 4 0 0D 3524 - 126 4301 00010000D 3525 - 126 0 4 0 0D 3526 - 126 4305 00010000D 3527 - 126 0 3 0 0D 3528 - 126 4308 00010000D 3529 - 126 0 4 0 0D 3530 - 126 4312 00010000D 3531 - 126 0 4 0 0D 3532 - 126 4316 00010000D 3533 - 126 0 3 0 0D 3534 - 126 4319 00010000D 3535 - 126 0 4 0 0D 3536 - 126 4323 00010000D 3537 - 126 0 3 0 0D 3538 - 126 4326 00010000D 3539 - 126 0 3 0 0D 3540 - 126 4329 00010000D 3541 - 126 0 4 0 0D 3542 - 126 4333 00010000D 3543 - 126 0 4 0 0D 3544 - 126 4337 00010000D 3545 - 126 0 3 0 0D 3546 - 126 4340 00010000D 3547 - 126 0 4 0 0D 3548 - 126 4344 00010000D 3549 - 126 0 4 0 0D 3550 - 126 4348 00010000D 3551 - 126 0 3 0 0D 3552 - 126 4351 00010000D 3553 - 126 0 4 0 0D 3554 - 126 4355 00010000D 3555 - 126 0 3 0 0D 3556 - 126 4358 00010000D 3557 - 126 0 3 0 0D 3558 - 126 4361 00010000D 3559 - 126 0 4 0 0D 3560 - 126 4365 00010000D 3561 - 126 0 4 0 0D 3562 - 126 4369 00010000D 3563 - 126 0 3 0 0D 3564 - 126 4372 00010000D 3565 - 126 0 4 0 0D 3566 - 126 4376 00010000D 3567 - 126 0 4 0 0D 3568 - 126 4380 00010000D 3569 - 126 0 3 0 0D 3570 - 126 4383 00010000D 3571 - 126 0 4 0 0D 3572 - 126 4387 00010000D 3573 - 126 0 3 0 0D 3574 - 126 4390 00010000D 3575 - 126 0 3 0 0D 3576 - 126 4393 00010000D 3577 - 126 0 4 0 0D 3578 - 126 4397 00010000D 3579 - 126 0 4 0 0D 3580 - 126 4401 00010000D 3581 - 126 0 3 0 0D 3582 - 126 4404 00010000D 3583 - 126 0 4 0 0D 3584 - 126 4408 00010000D 3585 - 126 0 4 0 0D 3586 - 126 4412 00010000D 3587 - 126 0 3 0 0D 3588 - 126 4415 00010000D 3589 - 126 0 3 0 0D 3590 - 126 4418 00010000D 3591 - 126 0 3 0 0D 3592 - 126 4421 00010000D 3593 - 126 0 3 0 0D 3594 - 126 4424 00010000D 3595 - 126 0 4 0 0D 3596 - 126 4428 00010000D 3597 - 126 0 4 0 0D 3598 - 126 4432 00010000D 3599 - 126 0 3 0 0D 3600 - 126 4435 00010000D 3601 - 126 0 4 0 0D 3602 - 126 4439 00010000D 3603 - 126 0 4 0 0D 3604 - 126 4443 00010000D 3605 - 126 0 3 0 0D 3606 - 126 4446 00010000D 3607 - 126 0 4 0 0D 3608 - 126 4450 00010000D 3609 - 126 0 3 0 0D 3610 - 126 4453 00010000D 3611 - 126 0 3 0 0D 3612 - 126 4456 00010000D 3613 - 126 0 4 0 0D 3614 - 126 4460 00010000D 3615 - 126 0 4 0 0D 3616 - 126 4464 00010000D 3617 - 126 0 3 0 0D 3618 - 126 4467 00010000D 3619 - 126 0 4 0 0D 3620 - 126 4471 00010000D 3621 - 126 0 4 0 0D 3622 - 126 4475 00010000D 3623 - 126 0 3 0 0D 3624 - 126 4478 00010000D 3625 - 126 0 4 0 0D 3626 - 126 4482 00010000D 3627 - 126 0 3 0 0D 3628 - 126 4485 00010000D 3629 - 126 0 3 0 0D 3630 - 126 4488 00010000D 3631 - 126 0 3 0 0D 3632 - 126 4491 00010000D 3633 - 126 0 3 0 0D 3634 - 126 4494 00010000D 3635 - 126 0 3 0 0D 3636 - 126 4497 00010000D 3637 - 126 0 3 0 0D 3638 - 126 4500 00010000D 3639 - 126 0 4 0 0D 3640 - 126 4504 00010000D 3641 - 126 0 3 0 0D 3642 - 126 4507 00010000D 3643 - 126 0 3 0 0D 3644 - 126 4510 00010000D 3645 - 126 0 3 0 0D 3646 - 126 4513 00010000D 3647 - 126 0 3 0 0D 3648 - 126 4516 00010000D 3649 - 126 0 3 0 0D 3650 - 126 4519 00010000D 3651 - 126 0 4 0 0D 3652 - 126 4523 00010000D 3653 - 126 0 3 0 0D 3654 - 126 4526 00010000D 3655 - 126 0 3 0 0D 3656 - 126 4529 00010000D 3657 - 126 0 4 0 0D 3658 - 126 4533 00010000D 3659 - 126 0 3 0 0D 3660 - 126 4536 00010000D 3661 - 126 0 3 0 0D 3662 - 126 4539 00010000D 3663 - 126 0 3 0 0D 3664 - 126 4542 00010000D 3665 - 126 0 3 0 0D 3666 - 126 4545 00010000D 3667 - 126 0 3 0 0D 3668 - 126 4548 00010000D 3669 - 126 0 4 0 0D 3670 - 126 4552 00010000D 3671 - 126 0 3 0 0D 3672 - 126 4555 00010000D 3673 - 126 0 3 0 0D 3674 - 126 4558 00010000D 3675 - 126 0 4 0 0D 3676 - 126 4562 00010000D 3677 - 126 0 3 0 0D 3678 - 126 4565 00010000D 3679 - 126 0 3 0 0D 3680 - 126 4568 00010000D 3681 - 126 0 3 0 0D 3682 - 126 4571 00010000D 3683 - 126 0 3 0 0D 3684 - 126 4574 00010000D 3685 - 126 0 3 0 0D 3686 - 126 4577 00010000D 3687 - 126 0 4 0 0D 3688 - 126 4581 00010000D 3689 - 126 0 3 0 0D 3690 - 126 4584 00010000D 3691 - 126 0 3 0 0D 3692 - 126 4587 00010000D 3693 - 126 0 4 0 0D 3694 - 126 4591 00010000D 3695 - 126 0 3 0 0D 3696 - 126 4594 00010000D 3697 - 126 0 3 0 0D 3698 - 126 4597 00010000D 3699 - 126 0 3 0 0D 3700 - 126 4600 00010000D 3701 - 126 0 3 0 0D 3702 - 126 4603 00010000D 3703 - 126 0 3 0 0D 3704 - 126 4606 00010000D 3705 - 126 0 4 0 0D 3706 - 126 4610 00010000D 3707 - 126 0 3 0 0D 3708 - 126 4613 00010000D 3709 - 126 0 3 0 0D 3710 - 126 4616 00010000D 3711 - 126 0 4 0 0D 3712 - 126 4620 00010000D 3713 - 126 0 3 0 0D 3714 - 126 4623 00010000D 3715 - 126 0 3 0 0D 3716 - 126 4626 00010000D 3717 - 126 0 3 0 0D 3718 - 126 4629 00010000D 3719 - 126 0 3 0 0D 3720 - 126 4632 00010000D 3721 - 126 0 3 0 0D 3722 - 126 4635 00010000D 3723 - 126 0 4 0 0D 3724 - 126 4639 00010000D 3725 - 126 0 3 0 0D 3726 - 126 4642 00010000D 3727 - 126 0 3 0 0D 3728 - 126 4645 00010000D 3729 - 126 0 4 0 0D 3730 - 126 4649 00010000D 3731 - 126 0 3 0 0D 3732 - 126 4652 00010000D 3733 - 126 0 3 0 0D 3734 - 126 4655 00010000D 3735 - 126 0 3 0 0D 3736 - 126 4658 00010000D 3737 - 126 0 3 0 0D 3738 - 126 4661 00010000D 3739 - 126 0 3 0 0D 3740 - 126 4664 00010000D 3741 - 126 0 4 0 0D 3742 - 126 4668 00010000D 3743 - 126 0 3 0 0D 3744 - 126 4671 00010000D 3745 - 126 0 3 0 0D 3746 - 126 4674 00010000D 3747 - 126 0 4 0 0D 3748 - 126 4678 00010000D 3749 - 126 0 3 0 0D 3750 - 126 4681 00010000D 3751 - 126 0 3 0 0D 3752 - 126 4684 00010000D 3753 - 126 0 3 0 0D 3754 - 126 4687 00010000D 3755 - 126 0 3 0 0D 3756 - 126 4690 00010000D 3757 - 126 0 3 0 0D 3758 - 126 4693 00010000D 3759 - 126 0 4 0 0D 3760 - 126 4697 00010000D 3761 - 126 0 3 0 0D 3762 - 126 4700 00010000D 3763 - 126 0 3 0 0D 3764 - 126 4703 00010000D 3765 - 126 0 4 0 0D 3766 - 126 4707 00010000D 3767 - 126 0 3 0 0D 3768 - 126 4710 00010000D 3769 - 126 0 3 0 0D 3770 - 126 4713 00010000D 3771 - 126 0 4 0 0D 3772 - 126 4717 00010000D 3773 - 126 0 3 0 0D 3774 - 126 4720 00010000D 3775 - 126 0 3 0 0D 3776 - 126 4723 00010000D 3777 - 126 0 4 0 0D 3778 - 126 4727 00010000D 3779 - 126 0 3 0 0D 3780 - 126 4730 00010000D 3781 - 126 0 3 0 0D 3782 - 126 4733 00010000D 3783 - 126 0 4 0 0D 3784 - 126 4737 00010000D 3785 - 126 0 3 0 0D 3786 - 126 4740 00010000D 3787 - 126 0 3 0 0D 3788 - 126 4743 00010000D 3789 - 126 0 3 0 0D 3790 - 126 4746 00010000D 3791 - 126 0 3 0 0D 3792 - 126 4749 00010000D 3793 - 126 0 3 0 0D 3794 - 126 4752 00010000D 3795 - 126 0 4 0 0D 3796 - 126 4756 00010000D 3797 - 126 0 3 0 0D 3798 - 126 4759 00010000D 3799 - 126 0 3 0 0D 3800 - 126 4762 00010000D 3801 - 126 0 3 0 0D 3802 - 126 4765 00010000D 3803 - 126 0 5 0 0D 3804 - 126 4770 00010000D 3805 - 126 0 3 0 0D 3806 - 126 4773 00010000D 3807 - 126 0 5 0 0D 3808 - 126 4778 00010000D 3809 - 126 0 3 0 0D 3810 - 126 4781 00010000D 3811 - 126 0 3 0 0D 3812 - 126 4784 00010000D 3813 - 126 0 3 0 0D 3814 - 126 4787 00010000D 3815 - 126 0 3 0 0D 3816 - 126 4790 00010000D 3817 - 126 0 5 0 0D 3818 - 126 4795 00010000D 3819 - 126 0 5 0 0D 3820 - 126 4800 00010000D 3821 - 126 0 3 0 0D 3822 - 126 4803 00010000D 3823 - 126 0 3 0 0D 3824 - 126 4806 00010000D 3825 - 126 0 3 0 0D 3826 - 126 4809 00010000D 3827 - 126 0 3 0 0D 3828 - 126 4812 00010000D 3829 - 126 0 5 0 0D 3830 - 126 4817 00010000D 3831 - 126 0 5 0 0D 3832 - 126 4822 00010000D 3833 - 126 0 3 0 0D 3834 - 126 4825 00010000D 3835 - 126 0 4 0 0D 3836 - 126 4829 00010000D 3837 - 126 0 4 0 0D 3838 - 126 4833 00010000D 3839 - 126 0 3 0 0D 3840 - 126 4836 00010000D 3841 - 126 0 8 0 0D 3842 - 126 4844 00010000D 3843 - 126 0 8 0 0D 3844 - 126 4852 00010000D 3845 - 126 0 3 0 0D 3846 - 126 4855 00010000D 3847 - 126 0 4 0 0D 3848 - 126 4859 00010000D 3849 - 126 0 4 0 0D 3850 - 126 4863 00010000D 3851 - 126 0 3 0 0D 3852 - 126 4866 00010000D 3853 - 126 0 5 0 0D 3854 - 126 4871 00010000D 3855 - 126 0 5 0 0D 3856 - 126 4876 00010000D 3857 - 126 0 5 0 0D 3858 - 126 4881 00010000D 3859 - 126 0 3 0 0D 3860 - 126 4884 00010000D 3861 - 126 0 4 0 0D 3862 - 126 4888 00010000D 3863 - 126 0 3 0 0D 3864 - 126 4891 00010000D 3865 - 126 0 5 0 0D 3866 - 126 4896 00010000D 3867 - 126 0 3 0 0D 3868 - 126 4899 00010000D 3869 - 126 0 3 0 0D 3870 - 126 4902 00010000D 3871 - 126 0 5 0 0D 3872 - 126 4907 00010000D 3873 - 126 0 3 0 0D 3874 - 126 4910 00010000D 3875 - 126 0 4 0 0D 3876 - 126 4914 00010000D 3877 - 126 0 5 0 0D 3878 - 126 4919 00010000D 3879 - 126 0 3 0 0D 3880 - 126 4922 00010000D 3881 - 126 0 4 0 0D 3882 - 126 4926 00010000D 3883 - 126 0 5 0 0D 3884 - 126 4931 00010000D 3885 - 126 0 3 0 0D 3886 - 126 4934 00010000D 3887 - 126 0 4 0 0D 3888 - 126 4938 00010000D 3889 - 126 0 5 0 0D 3890 - 126 4943 00010000D 3891 - 126 0 4 0 0D 3892 - 126 4947 00010000D 3893 - 126 0 13 0 0D 3894 - 126 4960 00010000D 3895 - 126 0 4 0 0D 3896 - 126 4964 00010000D 3897 - 126 0 9 0 0D 3898 - 126 4973 00010000D 3899 - 126 0 4 0 0D 3900 - 126 4977 00010000D 3901 - 126 0 13 0 0D 3902 - 126 4990 00010000D 3903 - 126 0 11 0 0D 3904 - 126 5001 00010000D 3905 - 126 0 13 0 0D 3906 - 126 5014 00010000D 3907 - 126 0 4 0 0D 3908 - 126 5018 00010000D 3909 - 126 0 9 0 0D 3910 - 126 5027 00010000D 3911 - 126 0 4 0 0D 3912 - 126 5031 00010000D 3913 - 126 0 13 0 0D 3914 - 126 5044 00010000D 3915 - 126 0 11 0 0D 3916 - 126 5055 00010000D 3917 - 126 0 7 0 0D 3918 - 126 5062 00010000D 3919 - 126 0 3 0 0D 3920 - 126 5065 00010000D 3921 - 126 0 7 0 0D 3922 - 126 5072 00010000D 3923 - 126 0 3 0 0D 3924 - 126 5075 00010000D 3925 - 126 0 3 0 0D 3926 - 126 5078 00010000D 3927 - 126 0 5 0 0D 3928 - 126 5083 00010000D 3929 - 126 0 3 0 0D 3930 - 126 5086 00010000D 3931 - 126 0 5 0 0D 3932 - 126 5091 00010000D 3933 - 126 0 3 0 0D 3934 - 126 5094 00010000D 3935 - 126 0 4 0 0D 3936 - 126 5098 00010000D 3937 - 126 0 3 0 0D 3938 - 126 5101 00010000D 3939 - 126 0 5 0 0D 3940 - 126 5106 00010000D 3941 - 126 0 6 0 0D 3942 - 126 5112 00010000D 3943 - 126 0 5 0 0D 3944 - 126 5117 00010000D 3945 - 126 0 5 0 0D 3946 - 126 5122 00010000D 3947 - 126 0 5 0 0D 3948 - 126 5127 00010000D 3949 - 126 0 7 0 0D 3950 - 126 5134 00010000D 3951 - 126 0 5 0 0D 3952 - 126 5139 00010000D 3953 - 126 0 5 0 0D 3954 - 126 5144 00010000D 3955 - 126 0 5 0 0D 3956 - 126 5149 00010000D 3957 - 126 0 7 0 0D 3958 - 126 5156 00010000D 3959 - 126 0 7 0 0D 3960 - 126 5163 00010000D 3961 - 126 0 5 0 0D 3962 - 126 5168 00010000D 3963 - 126 0 3 0 0D 3964 - 126 5171 00010000D 3965 - 126 0 5 0 0D 3966 - 126 5176 00010000D 3967 - 126 0 3 0 0D 3968 - 126 5179 00010000D 3969 - 126 0 3 0 0D 3970 - 126 5182 00010000D 3971 - 126 0 5 0 0D 3972 - 126 5187 00010000D 3973 - 126 0 3 0 0D 3974 - 126 5190 00010000D 3975 - 126 0 5 0 0D 3976 - 126 5195 00010000D 3977 - 126 0 7 0 0D 3978 - 126 5202 00010000D 3979 - 126 0 5 0 0D 3980 - 126 5207 00010000D 3981 - 126 0 7 0 0D 3982 - 126 5214 00010000D 3983 - 126 0 5 0 0D 3984 - 126 5219 00010000D 3985 - 126 0 7 0 0D 3986 - 126 5226 00010000D 3987 - 126 0 5 0 0D 3988 - 126 5231 00010000D 3989 - 126 0 5 0 0D 3990 - 126 5236 00010000D 3991 - 126 0 13 0 0D 3992 - 126 5249 00010000D 3993 - 126 0 3 0 0D 3994 - 126 5252 00010000D 3995 - 126 0 11 0 0D 3996 - 126 5263 00010000D 3997 - 126 0 3 0 0D 3998 - 126 5266 00010000D 3999 - 126 0 13 0 0D 4000 - 126 5279 00010000D 4001 - 126 0 11 0 0D 4002 - 126 5290 00010000D 4003 - 126 0 13 0 0D 4004 - 126 5303 00010000D 4005 - 126 0 3 0 0D 4006 - 126 5306 00010000D 4007 - 126 0 13 0 0D 4008 - 126 5319 00010000D 4009 - 126 0 3 0 0D 4010 - 126 5322 00010000D 4011 - 126 0 13 0 0D 4012 - 126 5335 00010000D 4013 - 126 0 13 0 0D 4014 - 126 5348 00010000D 4015 - 126 0 13 0 0D 4016 - 126 5361 00010000D 4017 - 126 0 3 0 0D 4018 - 126 5364 00010000D 4019 - 126 0 11 0 0D 4020 - 126 5375 00010000D 4021 - 126 0 3 0 0D 4022 - 126 5378 00010000D 4023 - 126 0 13 0 0D 4024 - 126 5391 00010000D 4025 - 126 0 11 0 0D 4026 - 126 5402 00010000D 4027 - 126 0 13 0 0D 4028 - 126 5415 00010000D 4029 - 126 0 3 0 0D 4030 - 126 5418 00010000D 4031 - 126 0 13 0 0D 4032 - 126 5431 00010000D 4033 - 126 0 3 0 0D 4034 - 126 5434 00010000D 4035 - 126 0 13 0 0D 4036 - 126 5447 00010000D 4037 - 126 0 13 0 0D 4038 - 126 5460 00010000D 4039 - 126 0 5 0 0D 4040 - 126 5465 00010000D 4041 - 126 0 3 0 0D 4042 - 126 5468 00010000D 4043 - 126 0 4 0 0D 4044 - 126 5472 00010000D 4045 - 126 0 3 0 0D 4046 - 126 5475 00010000D 4047 - 126 0 3 0 0D 4048 - 126 5478 00010000D 4049 - 126 0 5 0 0D 4050 - 126 5483 00010000D 4051 - 126 0 3 0 0D 4052 - 126 5486 00010000D 4053 - 126 0 5 0 0D 4054 - 126 5491 00010000D 4055 - 126 0 5 0 0D 4056 - 126 5496 00010000D 4057 - 126 0 7 0 0D 4058 - 126 5503 00010000D 4059 - 126 0 10 0 0D 4060 - 126 5513 00010000D 4061 - 126 0 5 0 0D 4062 - 126 5518 00010000D 4063 - 126 0 5 0 0D 4064 - 126 5523 00010000D 4065 - 126 0 5 0 0D 4066 - 126 5528 00010000D 4067 - 126 0 5 0 0D 4068 - 126 5533 00010000D 4069 - 126 0 5 0 0D 4070 - 126 5538 00010000D 4071 - 126 0 5 0 0D 4072 - 126 5543 00010000D 4073 - 126 0 10 0 0D 4074 - 126 5553 00010000D 4075 - 126 0 5 0 0D 4076 - 126 5558 00010000D 4077 - 126 0 5 0 0D 4078 - 126 5563 00010000D 4079 - 126 0 13 0 0D 4080 - 126 5576 00010000D 4081 - 126 0 13 0 0D 4082 - 126 5589 00010000D 4083 - 126 0 3 0 0D 4084 - 126 5592 00010000D 4085 - 126 0 4 0 0D 4086 - 126 5596 00010000D 4087 - 126 0 3 0 0D 4088 - 126 5599 00010000D 4089 - 126 0 4 0 0D 4090 - 126 5603 00010000D 4091 - 126 0 5 0 0D 4092 - 126 5608 00010000D 4093 - 126 0 5 0 0D 4094 - 126 5613 00010000D 4095 - 126 0 5 0 0D 4096 - 126 5618 00010000D 4097 - 126 0 3 0 0D 4098 - 126 5621 00010000D 4099 - 126 0 4 0 0D 4100 - 126 5625 00010000D 4101 - 126 0 5 0 0D 4102 - 126 5630 00010000D 4103 - 126 0 5 0 0D 4104 - 126 5635 00010000D 4105 - 126 0 5 0 0D 4106 - 126 5640 00010000D 4107 - 126 0 5 0 0D 4108 - 126 5645 00010000D 4109 - 126 0 5 0 0D 4110 - 126 5650 00010000D 4111 - 126 0 5 0 0D 4112 - 126 5655 00010000D 4113 - 126 0 5 0 0D 4114 - 126 5660 00010000D 4115 - 126 0 4 0 0D 4116 - 126 5664 00010000D 4117 - 126 0 3 0 0D 4118 - 126 5667 00010000D 4119 - 126 0 5 0 0D 4120 - 126 5672 00010000D 4121 - 126 0 3 0 0D 4122 - 126 5675 00010000D 4123 - 126 0 3 0 0D 4124 - 126 5678 00010000D 4125 - 126 0 4 0 0D 4126 - 126 5682 00010000D 4127 - 126 0 3 0 0D 4128 - 126 5685 00010000D 4129 - 126 0 5 0 0D 4130 - 126 5690 00010000D 4131 - 126 0 3 0 0D 4132 - 126 5693 00010000D 4133 - 126 0 5 0 0D 4134 - 126 5698 00010000D 4135 - 126 0 4 0 0D 4136 - 126 5702 00010000D 4137 - 126 0 4 0 0D 4138 - 126 5706 00010000D 4139 - 126 0 5 0 0D 4140 - 126 5711 00010000D 4141 - 126 0 5 0 0D 4142 - 126 5716 00010000D 4143 - 126 0 5 0 0D 4144 - 126 5721 00010000D 4145 - 126 0 5 0 0D 4146 - 126 5726 00010000D 4147 - 126 0 5 0 0D 4148 - 126 5731 00010000D 4149 - 126 0 3 0 0D 4150 - 126 5734 00010000D 4151 - 126 0 3 0 0D 4152 - 126 5737 00010000D 4153 - 126 0 3 0 0D 4154 - 126 5740 00010000D 4155 - 126 0 3 0 0D 4156 - 126 5743 00010000D 4157 - 126 0 3 0 0D 4158 - 126 5746 00010000D 4159 - 126 0 5 0 0D 4160 - 126 5751 00010000D 4161 - 126 0 3 0 0D 4162 - 126 5754 00010000D 4163 - 126 0 3 0 0D 4164 - 126 5757 00010000D 4165 - 126 0 5 0 0D 4166 - 126 5762 00010000D 4167 - 126 0 3 0 0D 4168 - 126 5765 00010000D 4169 - 126 0 9 0 0D 4170 - 126 5774 00010000D 4171 - 126 0 3 0 0D 4172 - 126 5777 00010000D 4173 - 126 0 5 0 0D 4174 - 126 5782 00010000D 4175 - 126 0 3 0 0D 4176 - 126 5785 00010000D 4177 - 126 0 6 0 0D 4178 - 126 5791 00010000D 4179 - 126 0 3 0 0D 4180 - 126 5794 00010000D 4181 - 126 0 5 0 0D 4182 - 126 5799 00010000D 4183 - 126 0 3 0 0D 4184 - 126 5802 00010000D 4185 - 126 0 6 0 0D 4186 - 126 5808 00010000D 4187 - 126 0 6 0 0D 4188 - 126 5814 00010000D 4189 - 126 0 5 0 0D 4190 - 126 5819 00010000D 4191 - 126 0 5 0 0D 4192 - 126 5824 00010000D 4193 - 126 0 4 0 0D 4194 - 126 5828 00010000D 4195 - 126 0 8 0 0D 4196 - 126 5836 00010000D 4197 - 126 0 4 0 0D 4198 - 126 5840 00010000D 4199 - 126 0 5 0 0D 4200 - 126 5845 00010000D 4201 - 126 0 4 0 0D 4202 - 126 5849 00010000D 4203 - 126 0 5 0 0D 4204 - 126 5854 00010000D 4205 - 126 0 4 0 0D 4206 - 126 5858 00010000D 4207 - 126 0 3 0 0D 4208 - 126 5861 00010000D 4209 - 126 0 3 0 0D 4210 - 126 5864 00010000D 4211 - 126 0 3 0 0D 4212 - 126 5867 00010000D 4213 - 126 0 3 0 0D 4214 - 126 5870 00010000D 4215 - 126 0 3 0 0D 4216 - 126 5873 00010000D 4217 - 126 0 7 0 0D 4218 - 126 5880 00010000D 4219 - 126 0 3 0 0D 4220 - 126 5883 00010000D 4221 - 126 0 4 0 0D 4222 - 126 5887 00010000D 4223 - 126 0 3 0 0D 4224 - 126 5890 00010000D 4225 - 126 0 6 0 0D 4226 - 126 5896 00010000D 4227 - 126 0 3 0 0D 4228 - 126 5899 00010000D 4229 - 126 0 4 0 0D 4230 - 126 5903 00010000D 4231 - 126 0 3 0 0D 4232 - 126 5906 00010000D 4233 - 126 0 6 0 0D 4234 - 126 5912 00010000D 4235 - 126 0 3 0 0D 4236 - 126 5915 00010000D 4237 - 126 0 4 0 0D 4238 - 126 5919 00010000D 4239 - 126 0 4 0 0D 4240 - 126 5923 00010000D 4241 - 126 0 3 0 0D 4242 - 126 5926 00010000D 4243 - 126 0 4 0 0D 4244 - 126 5930 00010000D 4245 - 126 0 5 0 0D 4246 - 126 5935 00010000D 4247 - 126 0 3 0 0D 4248 - 126 5938 00010000D 4249 - 126 0 4 0 0D 4250 - 126 5942 00010000D 4251 - 126 0 3 0 0D 4252 - 126 5945 00010000D 4253 - 126 0 4 0 0D 4254 - 126 5949 00010000D 4255 - 126 0 4 0 0D 4256 - 126 5953 00010000D 4257 - 126 0 4 0 0D 4258 - 126 5957 00010000D 4259 - 126 0 4 0 0D 4260 - 126 5961 00010000D 4261 - 126 0 4 0 0D 4262 - 126 5965 00010000D 4263 - 126 0 4 0 0D 4264 - 126 5969 00010000D 4265 - 126 0 4 0 0D 4266 - 126 5973 00010000D 4267 - 126 0 4 0 0D 4268 - 126 5977 00010000D 4269 - 126 0 4 0 0D 4270 - 126 5981 00010000D 4271 - 126 0 3 0 0D 4272 - 126 5984 00010000D 4273 - 126 0 4 0 0D 4274 - 126 5988 00010000D 4275 - 126 0 3 0 0D 4276 - 126 5991 00010000D 4277 - 126 0 4 0 0D 4278 - 126 5995 00010000D 4279 - 126 0 3 0 0D 4280 - 126 5998 00010000D 4281 - 126 0 4 0 0D 4282 - 126 6002 00010000D 4283 - 126 0 3 0 0D 4284 - 126 6005 00010000D 4285 - 126 0 4 0 0D 4286 - 126 6009 00010000D 4287 - 126 0 3 0 0D 4288 - 126 6012 00010000D 4289 - 126 0 3 0 0D 4290 - 126 6015 00010000D 4291 - 126 0 4 0 0D 4292 - 126 6019 00010000D 4293 - 126 0 3 0 0D 4294 - 126 6022 00010000D 4295 - 126 0 5 0 0D 4296 - 126 6027 00010000D 4297 - 126 0 4 0 0D 4298 - 126 6031 00010000D 4299 - 126 0 3 0 0D 4300 - 126 6034 00010000D 4301 - 126 0 3 0 0D 4302 - 126 6037 00010000D 4303 - 126 0 4 0 0D 4304 - 126 6041 00010000D 4305 - 126 0 3 0 0D 4306 - 126 6044 00010000D 4307 - 126 0 4 0 0D 4308 - 126 6048 00010000D 4309 - 126 0 3 0 0D 4310 - 126 6051 00010000D 4311 - 126 0 4 0 0D 4312 - 126 6055 00010000D 4313 - 126 0 3 0 0D 4314 - 126 6058 00010000D 4315 - 126 0 4 0 0D 4316 - 126 6062 00010000D 4317 - 126 0 4 0 0D 4318 - 126 6066 00010000D 4319 - 126 0 4 0 0D 4320 - 126 6070 00010000D 4321 - 126 0 3 0 0D 4322 - 126 6073 00010000D 4323 - 126 0 3 0 0D 4324 - 126 6076 00010000D 4325 - 126 0 3 0 0D 4326 - 126 6079 00010000D 4327 - 126 0 3 0 0D 4328 - 126 6082 00010000D 4329 - 126 0 3 0 0D 4330 - 126 6085 00010000D 4331 - 126 0 4 0 0D 4332 - 126 6089 00010000D 4333 - 126 0 4 0 0D 4334 - 126 6093 00010000D 4335 - 126 0 3 0 0D 4336 - 126 6096 00010000D 4337 - 126 0 4 0 0D 4338 - 126 6100 00010000D 4339 - 126 0 4 0 0D 4340 - 126 6104 00010000D 4341 - 126 0 4 0 0D 4342 - 126 6108 00010000D 4343 - 126 0 4 0 0D 4344 - 126 6112 00010000D 4345 - 126 0 5 0 0D 4346 - 126 6117 00010000D 4347 - 126 0 3 0 0D 4348 - 126 6120 00010000D 4349 - 126 0 5 0 0D 4350 - 126 6125 00010000D 4351 - 126 0 3 0 0D 4352 - 126 6128 00010000D 4353 - 126 0 7 0 0D 4354 - 126 6135 00010000D 4355 - 126 0 3 0 0D 4356 - 126 6138 00010000D 4357 - 126 0 3 0 0D 4358 - 126 6141 00010000D 4359 - 126 0 5 0 0D 4360 - 126 6146 00010000D 4361 - 126 0 11 0 0D 4362 - 126 6157 00010000D 4363 - 126 0 11 0 0D 4364 - 126 6168 00010000D 4365 - 126 0 11 0 0D 4366 - 126 6179 00010000D 4367 - 126 0 11 0 0D 4368 - 126 6190 00010000D 4369 - 126 0 11 0 0D 4370 - 126 6201 00010000D 4371 - 126 0 11 0 0D 4372 - 126 6212 00010000D 4373 - 126 0 11 0 0D 4374 - 126 6223 00010000D 4375 - 126 0 11 0 0D 4376 - 126 6234 00010000D 4377 - 126 0 11 0 0D 4378 - 126 6245 00010000D 4379 - 126 0 9 0 0D 4380 - 126 6254 00010000D 4381 - 126 0 11 0 0D 4382 - 126 6265 00010000D 4383 - 126 0 9 0 0D 4384 - 126 6274 00010000D 4385 - 126 0 4 0 0D 4386 - 126 6278 00010000D 4387 - 126 0 3 0 0D 4388 - 126 6281 00010000D 4389 - 126 0 3 0 0D 4390 - 126 6284 00010000D 4391 - 126 0 3 0 0D 4392 - 126 6287 00010000D 4393 - 126 0 6 0 0D 4394 - 126 6293 00010000D 4395 - 126 0 3 0 0D 4396 - 126 6296 00010000D 4397 - 126 0 6 0 0D 4398 - 126 6302 00010000D 4399 - 126 0 6 0 0D 4400 - 126 6308 00010000D 4401 - 126 0 3 0 0D 4402 - 126 6311 00010000D 4403 - 126 0 6 0 0D 4404 - 126 6317 00010000D 4405 - 126 0 6 0 0D 4406 - 126 6323 00010000D 4407 - 126 0 3 0 0D 4408 - 126 6326 00010000D 4409 - 126 0 6 0 0D 4410 - 126 6332 00010000D 4411 - 126 0 6 0 0D 4412 - 126 6338 00010000D 4413 - 126 0 3 0 0D 4414 - 126 6341 00010000D 4415 - 126 0 6 0 0D 4416 - 126 6347 00010000D 4417 - 126 0 6 0 0D 4418 - 126 6353 00010000D 4419 - 126 0 3 0 0D 4420 - 126 6356 00010000D 4421 - 126 0 6 0 0D 4422 - 126 6362 00010000D 4423 - 126 0 6 0 0D 4424 - 126 6368 00010000D 4425 - 126 0 3 0 0D 4426 - 126 6371 00010000D 4427 - 126 0 6 0 0D 4428 - 126 6377 00010000D 4429 - 126 0 4 0 0D 4430 - 126 6381 00010000D 4431 - 126 0 3 0 0D 4432 - 126 6384 00010000D 4433 - 126 0 3 0 0D 4434 - 126 6387 00010000D 4435 - 126 0 4 0 0D 4436 - 126 6391 00010000D 4437 - 126 0 3 0 0D 4438 - 126 6394 00010000D 4439 - 126 0 4 0 0D 4440 - 126 6398 00010000D 4441 - 126 0 3 0 0D 4442 - 126 6401 00010000D 4443 - 126 0 3 0 0D 4444 - 126 6404 00010000D 4445 - 126 0 3 0 0D 4446 - 126 6407 00010000D 4447 - 126 0 4 0 0D 4448 - 126 6411 00010000D 4449 - 126 0 3 0 0D 4450 - 126 6414 00010000D 4451 - 126 0 3 0 0D 4452 - 126 6417 00010000D 4453 - 126 0 6 0 0D 4454 - 126 6423 00010000D 4455 - 126 0 3 0 0D 4456 - 126 6426 00010000D 4457 - 126 0 6 0 0D 4458 - 126 6432 00010000D 4459 - 126 0 6 0 0D 4460 - 126 6438 00010000D 4461 - 126 0 3 0 0D 4462 - 126 6441 00010000D 4463 - 126 0 6 0 0D 4464 - 126 6447 00010000D 4465 - 126 0 6 0 0D 4466 - 126 6453 00010000D 4467 - 126 0 3 0 0D 4468 - 126 6456 00010000D 4469 - 126 0 6 0 0D 4470 - 126 6462 00010000D 4471 - 126 0 4 0 0D 4472 - 126 6466 00010000D 4473 - 126 0 3 0 0D 4474 - 126 6469 00010000D 4475 - 126 0 3 0 0D 4476 - 126 6472 00010000D 4477 - 126 0 4 0 0D 4478 - 126 6476 00010000D 4479 - 126 0 3 0 0D 4480 - 126 6479 00010000D 4481 - 126 0 3 0 0D 4482 - 126 6482 00010000D 4483 - 126 0 4 0 0D 4484 - 126 6486 00010000D 4485 - 126 0 3 0 0D 4486 - 126 6489 00010000D 4487 - 126 0 3 0 0D 4488 - 126 6492 00010000D 4489 - 126 0 6 0 0D 4490 - 126 6498 00010000D 4491 - 126 0 3 0 0D 4492 - 126 6501 00010000D 4493 - 126 0 6 0 0D 4494 - 126 6507 00010000D 4495 - 126 0 6 0 0D 4496 - 126 6513 00010000D 4497 - 126 0 3 0 0D 4498 - 126 6516 00010000D 4499 - 126 0 6 0 0D 4500 - 126 6522 00010000D 4501 - 126 0 6 0 0D 4502 - 126 6528 00010000D 4503 - 126 0 3 0 0D 4504 - 126 6531 00010000D 4505 - 126 0 6 0 0D 4506 - 126 6537 00010000D 4507 - 126 0 6 0 0D 4508 - 126 6543 00010000D 4509 - 126 0 3 0 0D 4510 - 126 6546 00010000D 4511 - 126 0 6 0 0D 4512 - 126 6552 00010000D 4513 - 126 0 6 0 0D 4514 - 126 6558 00010000D 4515 - 126 0 3 0 0D 4516 - 126 6561 00010000D 4517 - 126 0 6 0 0D 4518 - 126 6567 00010000D 4519 - 126 0 6 0 0D 4520 - 126 6573 00010000D 4521 - 126 0 3 0 0D 4522 - 126 6576 00010000D 4523 - 126 0 6 0 0D 4524 - 126 6582 00010000D 4525 - 126 0 6 0 0D 4526 - 126 6588 00010000D 4527 - 126 0 3 0 0D 4528 - 126 6591 00010000D 4529 - 126 0 6 0 0D 4530 - 126 6597 00010000D 4531 - 126 0 4 0 0D 4532 - 126 6601 00010000D 4533 - 126 0 3 0 0D 4534 - 126 6604 00010000D 4535 - 126 0 3 0 0D 4536 - 126 6607 00010000D 4537 - 126 0 4 0 0D 4538 - 126 6611 00010000D 4539 - 126 0 3 0 0D 4540 - 126 6614 00010000D 4541 - 126 0 3 0 0D 4542 - 126 6617 00010000D 4543 - 126 0 4 0 0D 4544 - 126 6621 00010000D 4545 - 126 0 3 0 0D 4546 - 126 6624 00010000D 4547 - 126 0 4 0 0D 4548 - 126 6628 00010000D 4549 - 126 0 6 0 0D 4550 - 126 6634 00010000D 4551 - 126 0 8 0 0D 4552 - 126 6642 00010000D 4553 - 126 0 4 0 0D 4554 - 126 6646 00010000D 4555 - 126 0 4 0 0D 4556 - 126 6650 00010000D 4557 - 126 0 4 0 0D 4558 - 126 6654 00010000D 4559 - 126 0 4 0 0D 4560 - 126 6658 00010000D 4561 - 126 0 4 0 0D 4562 - 126 6662 00010000D 4563 - 126 0 4 0 0D 4564 - 126 6666 00010000D 4565 - 126 0 4 0 0D 4566 - 126 6670 00010000D 4567 - 126 0 8 0 0D 4568 - 126 6678 00010000D 4569 - 126 0 4 0 0D 4570 - 126 6682 00010000D 4571 - 126 0 6 0 0D 4572 - 126 6688 00010000D 4573 - 126 0 4 0 0D 4574 - 126 6692 00010000D 4575 - 126 0 3 0 0D 4576 - 126 6695 00010000D 4577 - 126 0 11 0 0D 4578 - 126 6706 00010000D 4579 - 126 0 4 0 0D 4580 - 126 6710 00010000D 4581 - 126 0 11 0 0D 4582 - 126 6721 00010000D 4583 - 126 0 11 0 0D 4584 - 126 6732 00010000D 4585 - 126 0 11 0 0D 4586 - 126 6743 00010000D 4587 - 126 0 11 0 0D 4588 - 126 6754 00010000D 4589 - 126 0 11 0 0D 4590 - 126 6765 00010000D 4591 - 126 0 11 0 0D 4592 - 126 6776 00010000D 4593 - 126 0 11 0 0D 4594 - 126 6787 00010000D 4595 - 126 0 11 0 0D 4596 - 126 6798 00010000D 4597 - 126 0 11 0 0D 4598 - 126 6809 00010000D 4599 - 126 0 13 0 0D 4600 - 126 6822 00010000D 4601 - 126 0 13 0 0D 4602 - 126 6835 00010000D 4603 - 126 0 11 0 0D 4604 - 126 6846 00010000D 4605 - 126 0 11 0 0D 4606 - 126 6857 00010000D 4607 - 126 0 3 0 0D 4608 - 126 6860 00010000D 4609 - 126 0 3 0 0D 4610 - 126 6863 00010000D 4611 - 126 0 3 0 0D 4612 - 126 6866 00010000D 4613 - 126 0 3 0 0D 4614 - 126 6869 00010000D 4615 - 126 0 6 0 0D 4616 - 126 6875 00010000D 4617 - 126 0 3 0 0D 4618 - 126 6878 00010000D 4619 - 126 0 3 0 0D 4620 - 126 6881 00010000D 4621 - 126 0 3 0 0D 4622 - 126 6884 00010000D 4623 - 126 0 3 0 0D 4624 - 126 6887 00010000D 4625 - 126 0 4 0 0D 4626 - 126 6891 00010000D 4627 - 126 0 3 0 0D 4628 - 126 6894 00010000D 4629 - 126 0 3 0 0D 4630 - 126 6897 00010000D 4631 - 126 0 4 0 0D 4632 - 126 6901 00010000D 4633 - 126 0 5 0 0D 4634 - 126 6906 00010000D 4635 - 126 0 6 0 0D 4636 - 126 6912 00010000D 4637 - 126 0 4 0 0D 4638 - 126 6916 00010000D 4639 - 126 0 4 0 0D 4640 - 126 6920 00010000D 4641 - 126 0 4 0 0D 4642 - 126 6924 00010000D 4643 - 126 0 6 0 0D 4644 - 126 6930 00010000D 4645 - 126 0 6 0 0D 4646 - 126 6936 00010000D 4647 - 126 0 4 0 0D 4648 - 126 6940 00010000D 4649 - 126 0 3 0 0D 4650 - 126 6943 00010000D 4651 - 126 0 4 0 0D 4652 - 126 6947 00010000D 4653 - 126 0 3 0 0D 4654 - 126 6950 00010000D 4655 - 126 0 6 0 0D 4656 - 126 6956 00010000D 4657 - 126 0 4 0 0D 4658 - 126 6960 00010000D 4659 - 126 0 6 0 0D 4660 - 126 6966 00010000D 4661 - 126 0 4 0 0D 4662 - 126 6970 00010000D 4663 - 126 0 6 0 0D 4664 - 126 6976 00010000D 4665 - 126 0 4 0 0D 4666 - 126 6980 00010000D 4667 - 126 0 3 0 0D 4668 - 126 6983 00010000D 4669 - 126 0 3 0 0D 4670 - 126 6986 00010000D 4671 - 126 0 3 0 0D 4672 - 126 6989 00010000D 4673 - 126 0 3 0 0D 4674 - 126 6992 00010000D 4675 - 126 0 3 0 0D 4676 - 126 6995 00010000D 4677 - 126 0 3 0 0D 4678 - 126 6998 00010000D 4679 - 126 0 3 0 0D 4680 - 126 7001 00010000D 4681 - 126 0 3 0 0D 4682 - 126 7004 00010000D 4683 - 126 0 3 0 0D 4684 - 126 7007 00010000D 4685 - 126 0 4 0 0D 4686 - 126 7011 00010000D 4687 - 126 0 3 0 0D 4688 - 126 7014 00010000D 4689 - 126 0 3 0 0D 4690 - 126 7017 00010000D 4691 - 126 0 4 0 0D 4692 - 126 7021 00010000D 4693 - 126 0 3 0 0D 4694 - 126 7024 00010000D 4695 - 126 0 3 0 0D 4696 - 126 7027 00010000D 4697 - 126 0 3 0 0D 4698 - 126 7030 00010000D 4699 - 126 0 3 0 0D 4700 - 126 7033 00010000D 4701 - 126 0 3 0 0D 4702 - 126 7036 00010000D 4703 - 126 0 4 0 0D 4704 - 126 7040 00010000D 4705 - 126 0 3 0 0D 4706 - 126 7043 00010000D 4707 - 126 0 3 0 0D 4708 - 126 7046 00010000D 4709 - 126 0 4 0 0D 4710 - 126 7050 00010000D 4711 - 126 0 3 0 0D 4712 - 126 7053 00010000D 4713 - 126 0 7 0 0D 4714 - 126 7060 00010000D 4715 - 126 0 3 0 0D 4716 - 126 7063 00010000D 4717 - 126 0 4 0 0D 4718 - 126 7067 00010000D 4719 - 126 0 3 0 0D 4720 - 126 7070 00010000D 4721 - 126 0 5 0 0D 4722 - 126 7075 00010000D 4723 - 126 0 3 0 0D 4724 - 126 7078 00010000D 4725 - 126 0 4 0 0D 4726 - 126 7082 00010000D 4727 - 126 0 3 0 0D 4728 - 126 7085 00010000D 4729 - 126 0 5 0 0D 4730 - 126 7090 00010000D 4731 - 126 0 5 0 0D 4732 - 126 7095 00010000D 4733 - 126 0 5 0 0D 4734 - 126 7100 00010000D 4735 - 126 0 4 0 0D 4736 - 126 7104 00010000D 4737 - 126 0 3 0 0D 4738 - 126 7107 00010000D 4739 - 126 0 7 0 0D 4740 - 126 7114 00010000D 4741 - 126 0 3 0 0D 4742 - 126 7117 00010000D 4743 - 126 0 5 0 0D 4744 - 126 7122 00010000D 4745 - 126 0 3 0 0D 4746 - 126 7125 00010000D 4747 - 126 0 5 0 0D 4748 - 126 7130 00010000D 4749 - 126 0 3 0 0D 4750 - 126 7133 00010000D 4751 - 126 0 3 0 0D 4752 - 126 7136 00010000D 4753 - 126 0 3 0 0D 4754 - 126 7139 00010000D 4755 - 126 0 3 0 0D 4756 - 126 7142 00010000D 4757 - 126 0 3 0 0D 4758 - 126 7145 00010000D 4759 - 126 0 3 0 0D 4760 - 126 7148 00010000D 4761 - 126 0 3 0 0D 4762 - 128 7151 00010000D 4763 - 128 0 -5703 23 0 0D 4764 - 128 7174 00010000D 4765 - 128 0 -5703 23 0 0D 4766 - 128 7197 00010000D 4767 - 128 0 -5703 23 0 0D 4768 - 128 7220 00010000D 4769 - 128 0 -5703 23 0 0D 4770 - 128 7243 00010000D 4771 - 128 0 -5703 20 0 0D 4772 - 128 7263 00010000D 4773 - 128 0 -5703 20 0 0D 4774 - 128 7283 00010000D 4775 - 128 0 -5703 20 0 0D 4776 - 128 7303 00010000D 4777 - 128 0 -5703 20 0 0D 4778 - 128 7323 00010000D 4779 - 128 0 -5703 8 0 0D 4780 - 128 7331 00010000D 4781 - 128 0 -5703 7 0 0D 4782 - 128 7338 00010000D 4783 - 128 0 -5703 7 0 0D 4784 - 128 7345 00010000D 4785 - 128 0 -5703 7 0 0D 4786 - 128 7352 00010000D 4787 - 128 0 -5703 8 0 0D 4788 - 128 7360 00010000D 4789 - 128 0 -5703 7 0 0D 4790 - 128 7367 00010000D 4791 - 128 0 -5703 7 0 0D 4792 - 128 7374 00010000D 4793 - 128 0 -5703 7 0 0D 4794 - 128 7381 00010000D 4795 - 128 0 -5703 8 0 0D 4796 - 128 7389 00010000D 4797 - 128 0 -5703 7 0 0D 4798 - 128 7396 00010000D 4799 - 128 0 -5703 7 0 0D 4800 - 128 7403 00010000D 4801 - 128 0 -5703 7 0 0D 4802 - 128 7410 00010000D 4803 - 128 0 -5703 8 0 0D 4804 - 128 7418 00010000D 4805 - 128 0 -5703 7 0 0D 4806 - 128 7425 00010000D 4807 - 128 0 -5703 7 0 0D 4808 - 128 7432 00010000D 4809 - 128 0 -5703 7 0 0D 4810 - 128 7439 00010000D 4811 - 128 0 -5703 8 0 0D 4812 - 128 7447 00010000D 4813 - 128 0 -5703 7 0 0D 4814 - 128 7454 00010000D 4815 - 128 0 -5703 7 0 0D 4816 - 128 7461 00010000D 4817 - 128 0 -5703 7 0 0D 4818 - 128 7468 00010000D 4819 - 128 0 -5703 8 0 0D 4820 - 128 7476 00010000D 4821 - 128 0 -5703 7 0 0D 4822 - 128 7483 00010000D 4823 - 128 0 -5703 7 0 0D 4824 - 128 7490 00010000D 4825 - 128 0 -5703 7 0 0D 4826 - 128 7497 00010000D 4827 - 128 0 -5703 8 0 0D 4828 - 128 7505 00010000D 4829 - 128 0 -5703 7 0 0D 4830 - 128 7512 00010000D 4831 - 128 0 -5703 7 0 0D 4832 - 128 7519 00010000D 4833 - 128 0 -5703 7 0 0D 4834 - 128 7526 00010000D 4835 - 128 0 -5703 8 0 0D 4836 - 128 7534 00010000D 4837 - 128 0 -5703 7 0 0D 4838 - 128 7541 00010000D 4839 - 128 0 -5703 7 0 0D 4840 - 128 7548 00010000D 4841 - 128 0 -5703 6 0 0D 4842 - 128 7554 00010000D 4843 - 128 0 -5703 8 0 0D 4844 - 128 7562 00010000D 4845 - 128 0 -5703 6 0 0D 4846 - 128 7568 00010000D 4847 - 128 0 -5703 7 0 0D 4848 - 128 7575 00010000D 4849 - 128 0 -5703 6 0 0D 4850 - 128 7581 00010000D 4851 - 128 0 -5703 8 0 0D 4852 - 128 7589 00010000D 4853 - 128 0 -5703 7 0 0D 4854 - 128 7596 00010000D 4855 - 128 0 -5703 7 0 0D 4856 - 128 7603 00010000D 4857 - 128 0 -5703 6 0 0D 4858 - 128 7609 00010000D 4859 - 128 0 -5703 8 0 0D 4860 - 128 7617 00010000D 4861 - 128 0 -5703 6 0 0D 4862 - 128 7623 00010000D 4863 - 128 0 -5703 6 0 0D 4864 - 128 7629 00010000D 4865 - 128 0 -5703 6 0 0D 4866 - 128 7635 00010000D 4867 - 128 0 -5703 8 0 0D 4868 - 128 7643 00010000D 4869 - 128 0 -5703 6 0 0D 4870 - 128 7649 00010000D 4871 - 128 0 -5703 6 0 0D 4872 - 128 7655 00010000D 4873 - 128 0 -5703 6 0 0D 4874 - 128 7661 00010000D 4875 - 128 0 -5703 8 0 0D 4876 - 128 7669 00010000D 4877 - 128 0 -5703 6 0 0D 4878 - 128 7675 00010000D 4879 - 128 0 -5703 6 0 0D 4880 - 128 7681 00010000D 4881 - 128 0 -5703 6 0 0D 4882 - 128 7687 00010000D 4883 - 128 0 -5703 8 0 0D 4884 - 128 7695 00010000D 4885 - 128 0 -5703 6 0 0D 4886 - 128 7701 00010000D 4887 - 128 0 -5703 6 0 0D 4888 - 128 7707 00010000D 4889 - 128 0 -5703 6 0 0D 4890 - 128 7713 00010000D 4891 - 128 0 -5703 8 0 0D 4892 - 128 7721 00010000D 4893 - 128 0 -5703 6 0 0D 4894 - 128 7727 00010000D 4895 - 128 0 -5703 6 0 0D 4896 - 128 7733 00010000D 4897 - 128 0 -5703 6 0 0D 4898 - 128 7739 00010000D 4899 - 128 0 -5703 6 0 0D 4900 - 128 7745 00010000D 4901 - 128 0 -5703 6 0 0D 4902 - 128 7751 00010000D 4903 - 128 0 -5703 8 0 0D 4904 - 128 7759 00010000D 4905 - 128 0 -5703 6 0 0D 4906 - 128 7765 00010000D 4907 - 128 0 -5703 6 0 0D 4908 - 128 7771 00010000D 4909 - 128 0 -5703 6 0 0D 4910 - 128 7777 00010000D 4911 - 128 0 -5703 7 0 0D 4912 - 128 7784 00010000D 4913 - 128 0 -5703 6 0 0D 4914 - 128 7790 00010000D 4915 - 128 0 -5703 7 0 0D 4916 - 128 7797 00010000D 4917 - 128 0 -5703 6 0 0D 4918 - 128 7803 00010000D 4919 - 128 0 -5703 6 0 0D 4920 - 128 7809 00010000D 4921 - 128 0 -5703 6 0 0D 4922 - 128 7815 00010000D 4923 - 128 0 -5703 8 0 0D 4924 - 128 7823 00010000D 4925 - 128 0 -5703 7 0 0D 4926 - 128 7830 00010000D 4927 - 128 0 -5703 7 0 0D 4928 - 128 7837 00010000D 4929 - 128 0 -5703 7 0 0D 4930 - 128 7844 00010000D 4931 - 128 0 -5703 8 0 0D 4932 - 128 7852 00010000D 4933 - 128 0 -5703 7 0 0D 4934 - 128 7859 00010000D 4935 - 128 0 -5703 7 0 0D 4936 - 128 7866 00010000D 4937 - 128 0 -5703 7 0 0D 4938 - 128 7873 00010000D 4939 - 128 0 -5703 8 0 0D 4940 - 128 7881 00010000D 4941 - 128 0 -5703 7 0 0D 4942 - 128 7888 00010000D 4943 - 128 0 -5703 7 0 0D 4944 - 128 7895 00010000D 4945 - 128 0 -5703 7 0 0D 4946 - 128 7902 00010000D 4947 - 128 0 -5703 8 0 0D 4948 - 128 7910 00010000D 4949 - 128 0 -5703 7 0 0D 4950 - 128 7917 00010000D 4951 - 128 0 -5703 7 0 0D 4952 - 128 7924 00010000D 4953 - 128 0 -5703 7 0 0D 4954 - 128 7931 00010000D 4955 - 128 0 -5703 8 0 0D 4956 - 128 7939 00010000D 4957 - 128 0 -5703 7 0 0D 4958 - 128 7946 00010000D 4959 - 128 0 -5703 7 0 0D 4960 - 128 7953 00010000D 4961 - 128 0 -5703 7 0 0D 4962 - 128 7960 00010000D 4963 - 128 0 -5703 8 0 0D 4964 - 128 7968 00010000D 4965 - 128 0 -5703 7 0 0D 4966 - 128 7975 00010000D 4967 - 128 0 -5703 7 0 0D 4968 - 128 7982 00010000D 4969 - 128 0 -5703 7 0 0D 4970 - 128 7989 00010000D 4971 - 128 0 -5703 8 0 0D 4972 - 128 7997 00010000D 4973 - 128 0 -5703 7 0 0D 4974 - 128 8004 00010000D 4975 - 128 0 -5703 7 0 0D 4976 - 128 8011 00010000D 4977 - 128 0 -5703 7 0 0D 4978 - 128 8018 00010000D 4979 - 128 0 -5703 8 0 0D 4980 - 128 8026 00010000D 4981 - 128 0 -5703 7 0 0D 4982 - 128 8033 00010000D 4983 - 128 0 -5703 7 0 0D 4984 - 128 8040 00010000D 4985 - 128 0 -5703 7 0 0D 4986 - 128 8047 00010000D 4987 - 128 0 -5703 8 0 0D 4988 - 128 8055 00010000D 4989 - 128 0 -5703 6 0 0D 4990 - 128 8061 00010000D 4991 - 128 0 -5703 7 0 0D 4992 - 128 8068 00010000D 4993 - 128 0 -5703 6 0 0D 4994 - 128 8074 00010000D 4995 - 128 0 -5703 8 0 0D 4996 - 128 8082 00010000D 4997 - 128 0 -5703 7 0 0D 4998 - 128 8089 00010000D 4999 - 128 0 -5703 7 0 0D 5000 - 128 8096 00010000D 5001 - 128 0 -5703 6 0 0D 5002 - 128 8102 00010000D 5003 - 128 0 -5703 8 0 0D 5004 - 128 8110 00010000D 5005 - 128 0 -5703 6 0 0D 5006 - 128 8116 00010000D 5007 - 128 0 -5703 6 0 0D 5008 - 128 8122 00010000D 5009 - 128 0 -5703 6 0 0D 5010 - 128 8128 00010000D 5011 - 128 0 -5703 8 0 0D 5012 - 128 8136 00010000D 5013 - 128 0 -5703 6 0 0D 5014 - 128 8142 00010000D 5015 - 128 0 -5703 6 0 0D 5016 - 128 8148 00010000D 5017 - 128 0 -5703 6 0 0D 5018 - 128 8154 00010000D 5019 - 128 0 -5703 8 0 0D 5020 - 128 8162 00010000D 5021 - 128 0 -5703 6 0 0D 5022 - 128 8168 00010000D 5023 - 128 0 -5703 6 0 0D 5024 - 128 8174 00010000D 5025 - 128 0 -5703 6 0 0D 5026 - 128 8180 00010000D 5027 - 128 0 -5703 8 0 0D 5028 - 128 8188 00010000D 5029 - 128 0 -5703 6 0 0D 5030 - 128 8194 00010000D 5031 - 128 0 -5703 6 0 0D 5032 - 128 8200 00010000D 5033 - 128 0 -5703 6 0 0D 5034 - 128 8206 00010000D 5035 - 128 0 -5703 8 0 0D 5036 - 128 8214 00010000D 5037 - 128 0 -5703 6 0 0D 5038 - 128 8220 00010000D 5039 - 128 0 -5703 6 0 0D 5040 - 128 8226 00010000D 5041 - 128 0 -5703 6 0 0D 5042 - 128 8232 00010000D 5043 - 128 0 -5703 6 0 0D 5044 - 128 8238 00010000D 5045 - 128 0 -5703 6 0 0D 5046 - 128 8244 00010000D 5047 - 128 0 -5703 8 0 0D 5048 - 128 8252 00010000D 5049 - 128 0 -5703 6 0 0D 5050 - 128 8258 00010000D 5051 - 128 0 -5703 6 0 0D 5052 - 128 8264 00010000D 5053 - 128 0 -5703 6 0 0D 5054 - 128 8270 00010000D 5055 - 128 0 -5703 7 0 0D 5056 - 128 8277 00010000D 5057 - 128 0 -5703 6 0 0D 5058 - 128 8283 00010000D 5059 - 128 0 -5703 7 0 0D 5060 - 128 8290 00010000D 5061 - 128 0 -5703 6 0 0D 5062 - 128 8296 00010000D 5063 - 128 0 -5703 6 0 0D 5064 - 128 8302 00010000D 5065 - 128 0 -5703 6 0 0D 5066 - 128 8308 00010000D 5067 - 128 0 -5703 8 0 0D 5068 - 128 8316 00010000D 5069 - 128 0 -5703 7 0 0D 5070 - 128 8323 00010000D 5071 - 128 0 -5703 7 0 0D 5072 - 128 8330 00010000D 5073 - 128 0 -5703 7 0 0D 5074 - 128 8337 00010000D 5075 - 128 0 -5703 8 0 0D 5076 - 128 8345 00010000D 5077 - 128 0 -5703 7 0 0D 5078 - 128 8352 00010000D 5079 - 128 0 -5703 7 0 0D 5080 - 128 8359 00010000D 5081 - 128 0 -5703 7 0 0D 5082 - 128 8366 00010000D 5083 - 128 0 -5703 8 0 0D 5084 - 128 8374 00010000D 5085 - 128 0 -5703 7 0 0D 5086 - 128 8381 00010000D 5087 - 128 0 -5703 7 0 0D 5088 - 128 8388 00010000D 5089 - 128 0 -5703 7 0 0D 5090 - 128 8395 00010000D 5091 - 128 0 -5703 8 0 0D 5092 - 128 8403 00010000D 5093 - 128 0 -5703 7 0 0D 5094 - 128 8410 00010000D 5095 - 128 0 -5703 7 0 0D 5096 - 128 8417 00010000D 5097 - 128 0 -5703 7 0 0D 5098 - 128 8424 00010000D 5099 - 128 0 -5703 8 0 0D 5100 - 128 8432 00010000D 5101 - 128 0 -5703 7 0 0D 5102 - 128 8439 00010000D 5103 - 128 0 -5703 7 0 0D 5104 - 128 8446 00010000D 5105 - 128 0 -5703 7 0 0D 5106 - 128 8453 00010000D 5107 - 128 0 -5703 8 0 0D 5108 - 128 8461 00010000D 5109 - 128 0 -5703 7 0 0D 5110 - 128 8468 00010000D 5111 - 128 0 -5703 7 0 0D 5112 - 128 8475 00010000D 5113 - 128 0 -5703 7 0 0D 5114 - 128 8482 00010000D 5115 - 128 0 -5703 8 0 0D 5116 - 128 8490 00010000D 5117 - 128 0 -5703 7 0 0D 5118 - 128 8497 00010000D 5119 - 128 0 -5703 7 0 0D 5120 - 128 8504 00010000D 5121 - 128 0 -5703 7 0 0D 5122 - 128 8511 00010000D 5123 - 128 0 -5703 8 0 0D 5124 - 128 8519 00010000D 5125 - 128 0 -5703 7 0 0D 5126 - 128 8526 00010000D 5127 - 128 0 -5703 7 0 0D 5128 - 128 8533 00010000D 5129 - 128 0 -5703 7 0 0D 5130 - 128 8540 00010000D 5131 - 128 0 -5703 8 0 0D 5132 - 128 8548 00010000D 5133 - 128 0 -5703 6 0 0D 5134 - 128 8554 00010000D 5135 - 128 0 -5703 7 0 0D 5136 - 128 8561 00010000D 5137 - 128 0 -5703 6 0 0D 5138 - 128 8567 00010000D 5139 - 128 0 -5703 8 0 0D 5140 - 128 8575 00010000D 5141 - 128 0 -5703 7 0 0D 5142 - 128 8582 00010000D 5143 - 128 0 -5703 7 0 0D 5144 - 128 8589 00010000D 5145 - 128 0 -5703 6 0 0D 5146 - 128 8595 00010000D 5147 - 128 0 -5703 8 0 0D 5148 - 128 8603 00010000D 5149 - 128 0 -5703 7 0 0D 5150 - 128 8610 00010000D 5151 - 128 0 -5703 6 0 0D 5152 - 128 8616 00010000D 5153 - 128 0 -5703 6 0 0D 5154 - 128 8622 00010000D 5155 - 128 0 -5703 8 0 0D 5156 - 128 8630 00010000D 5157 - 128 0 -5703 6 0 0D 5158 - 128 8636 00010000D 5159 - 128 0 -5703 6 0 0D 5160 - 128 8642 00010000D 5161 - 128 0 -5703 6 0 0D 5162 - 128 8648 00010000D 5163 - 128 0 -5703 8 0 0D 5164 - 128 8656 00010000D 5165 - 128 0 -5703 6 0 0D 5166 - 128 8662 00010000D 5167 - 128 0 -5703 6 0 0D 5168 - 128 8668 00010000D 5169 - 128 0 -5703 6 0 0D 5170 - 128 8674 00010000D 5171 - 128 0 -5703 8 0 0D 5172 - 128 8682 00010000D 5173 - 128 0 -5703 6 0 0D 5174 - 128 8688 00010000D 5175 - 128 0 -5703 6 0 0D 5176 - 128 8694 00010000D 5177 - 128 0 -5703 6 0 0D 5178 - 128 8700 00010000D 5179 - 128 0 -5703 8 0 0D 5180 - 128 8708 00010000D 5181 - 128 0 -5703 6 0 0D 5182 - 128 8714 00010000D 5183 - 128 0 -5703 6 0 0D 5184 - 128 8720 00010000D 5185 - 128 0 -5703 6 0 0D 5186 - 128 8726 00010000D 5187 - 128 0 -5703 6 0 0D 5188 - 128 8732 00010000D 5189 - 128 0 -5703 6 0 0D 5190 - 128 8738 00010000D 5191 - 128 0 -5703 8 0 0D 5192 - 128 8746 00010000D 5193 - 128 0 -5703 6 0 0D 5194 - 128 8752 00010000D 5195 - 128 0 -5703 6 0 0D 5196 - 128 8758 00010000D 5197 - 128 0 -5703 6 0 0D 5198 - 128 8764 00010000D 5199 - 128 0 -5703 7 0 0D 5200 - 128 8771 00010000D 5201 - 128 0 -5703 6 0 0D 5202 - 128 8777 00010000D 5203 - 128 0 -5703 7 0 0D 5204 - 128 8784 00010000D 5205 - 128 0 -5703 6 0 0D 5206 - 128 8790 00010000D 5207 - 128 0 -5703 6 0 0D 5208 - 128 8796 00010000D 5209 - 128 0 -5703 6 0 0D 5210 - 128 8802 00010000D 5211 - 128 0 -5703 8 0 0D 5212 - 128 8810 00010000D 5213 - 128 0 -5703 7 0 0D 5214 - 128 8817 00010000D 5215 - 128 0 -5703 7 0 0D 5216 - 128 8824 00010000D 5217 - 128 0 -5703 7 0 0D 5218 - 128 8831 00010000D 5219 - 128 0 -5703 8 0 0D 5220 - 128 8839 00010000D 5221 - 128 0 -5703 7 0 0D 5222 - 128 8846 00010000D 5223 - 128 0 -5703 7 0 0D 5224 - 128 8853 00010000D 5225 - 128 0 -5703 7 0 0D 5226 - 128 8860 00010000D 5227 - 128 0 -5703 8 0 0D 5228 - 128 8868 00010000D 5229 - 128 0 -5703 7 0 0D 5230 - 128 8875 00010000D 5231 - 128 0 -5703 7 0 0D 5232 - 128 8882 00010000D 5233 - 128 0 -5703 7 0 0D 5234 - 128 8889 00010000D 5235 - 128 0 -5703 8 0 0D 5236 - 128 8897 00010000D 5237 - 128 0 -5703 7 0 0D 5238 - 128 8904 00010000D 5239 - 128 0 -5703 7 0 0D 5240 - 128 8911 00010000D 5241 - 128 0 -5703 7 0 0D 5242 - 128 8918 00010000D 5243 - 128 0 -5703 8 0 0D 5244 - 128 8926 00010000D 5245 - 128 0 -5703 7 0 0D 5246 - 128 8933 00010000D 5247 - 128 0 -5703 7 0 0D 5248 - 128 8940 00010000D 5249 - 128 0 -5703 7 0 0D 5250 - 128 8947 00010000D 5251 - 128 0 -5703 8 0 0D 5252 - 128 8955 00010000D 5253 - 128 0 -5703 7 0 0D 5254 - 128 8962 00010000D 5255 - 128 0 -5703 7 0 0D 5256 - 128 8969 00010000D 5257 - 128 0 -5703 7 0 0D 5258 - 128 8976 00010000D 5259 - 128 0 -5703 8 0 0D 5260 - 128 8984 00010000D 5261 - 128 0 -5703 7 0 0D 5262 - 128 8991 00010000D 5263 - 128 0 -5703 7 0 0D 5264 - 128 8998 00010000D 5265 - 128 0 -5703 7 0 0D 5266 - 128 9005 00010000D 5267 - 128 0 -5703 8 0 0D 5268 - 128 9013 00010000D 5269 - 128 0 -5703 7 0 0D 5270 - 128 9020 00010000D 5271 - 128 0 -5703 7 0 0D 5272 - 128 9027 00010000D 5273 - 128 0 -5703 7 0 0D 5274 - 128 9034 00010000D 5275 - 128 0 -5703 8 0 0D 5276 - 128 9042 00010000D 5277 - 128 0 -5703 6 0 0D 5278 - 128 9048 00010000D 5279 - 128 0 -5703 7 0 0D 5280 - 128 9055 00010000D 5281 - 128 0 -5703 6 0 0D 5282 - 128 9061 00010000D 5283 - 128 0 -5703 8 0 0D 5284 - 128 9069 00010000D 5285 - 128 0 -5703 6 0 0D 5286 - 128 9075 00010000D 5287 - 128 0 -5703 7 0 0D 5288 - 128 9082 00010000D 5289 - 128 0 -5703 7 0 0D 5290 - 128 9089 00010000D 5291 - 128 0 -5703 8 0 0D 5292 - 128 9097 00010000D 5293 - 128 0 -5703 7 0 0D 5294 - 128 9104 00010000D 5295 - 128 0 -5703 6 0 0D 5296 - 128 9110 00010000D 5297 - 128 0 -5703 6 0 0D 5298 - 128 9116 00010000D 5299 - 128 0 -5703 7 0 0D 5300 - 128 9123 00010000D 5301 - 128 0 -5703 6 0 0D 5302 - 128 9129 00010000D 5303 - 128 0 -5703 6 0 0D 5304 - 128 9135 00010000D 5305 - 128 0 -5703 6 0 0D 5306 - 128 9141 00010000D 5307 - 128 0 -5703 8 0 0D 5308 - 128 9149 00010000D 5309 - 128 0 -5703 6 0 0D 5310 - 128 9155 00010000D 5311 - 128 0 -5703 6 0 0D 5312 - 128 9161 00010000D 5313 - 128 0 -5703 6 0 0D 5314 - 128 9167 00010000D 5315 - 128 0 -5703 8 0 0D 5316 - 128 9175 00010000D 5317 - 128 0 -5703 6 0 0D 5318 - 128 9181 00010000D 5319 - 128 0 -5703 6 0 0D 5320 - 128 9187 00010000D 5321 - 128 0 -5703 6 0 0D 5322 - 128 9193 00010000D 5323 - 128 0 -5703 8 0 0D 5324 - 128 9201 00010000D 5325 - 128 0 -5703 6 0 0D 5326 - 128 9207 00010000D 5327 - 128 0 -5703 6 0 0D 5328 - 128 9213 00010000D 5329 - 128 0 -5703 6 0 0D 5330 - 128 9219 00010000D 5331 - 128 0 -5703 6 0 0D 5332 - 128 9225 00010000D 5333 - 128 0 -5703 6 0 0D 5334 - 128 9231 00010000D 5335 - 128 0 -5703 8 0 0D 5336 - 128 9239 00010000D 5337 - 128 0 -5703 6 0 0D 5338 - 128 9245 00010000D 5339 - 128 0 -5703 6 0 0D 5340 - 128 9251 00010000D 5341 - 128 0 -5703 6 0 0D 5342 - 128 9257 00010000D 5343 - 128 0 -5703 7 0 0D 5344 - 128 9264 00010000D 5345 - 128 0 -5703 6 0 0D 5346 - 128 9270 00010000D 5347 - 128 0 -5703 8 0 0D 5348 - 128 9278 00010000D 5349 - 128 0 -5703 6 0 0D 5350 - 128 9284 00010000D 5351 - 128 0 -5703 6 0 0D 5352 - 128 9290 00010000D 5353 - 128 0 -5703 6 0 0D 5354 - 128 9296 00010000D 5355 - 128 0 -5703 11 0 0D 5356 - 128 9307 00010000D 5357 - 128 0 -5703 7 0 0D 5358 - 128 9314 00010000D 5359 - 128 0 -5703 11 0 0D 5360 - 128 9325 00010000D 5361 - 128 0 -5703 6 0 0D 5362 - 128 9331 00010000D 5363 - 128 0 -5703 11 0 0D 5364 - 128 9342 00010000D 5365 - 128 0 -5703 7 0 0D 5366 - 128 9349 00010000D 5367 - 128 0 -5703 18 0 0D 5368 - 128 9367 00010000D 5369 - 128 0 -5703 7 0 0D 5370 - 128 9374 00010000D 5371 - 128 0 -5703 7 0 0D 5372 - 128 9381 00010000D 5373 - 128 0 -5703 8 0 0D 5374 - 128 9389 00010000D 5375 - 128 0 -5703 8 0 0D 5376 - 128 9397 00010000D 5377 - 128 0 -5705 7 0 0D 5378 - 128 9404 00010000D 5379 - 128 0 -5705 9 0 0D 5380 - 128 9413 00010000D 5381 - 128 0 -5705 7 0 0D 5382 - 128 9420 00010000D 5383 - 128 0 -5705 8 0 0D 5384 - 128 9428 00010000D 5385 - 128 0 -5705 7 0 0D 5386 - 128 9435 00010000D 5387 - 128 0 -5705 7 0 0D 5388 - 128 9442 00010000D 5389 - 128 0 -5705 8 0 0D 5390 - 128 9450 00010000D 5391 - 128 0 -5705 20 0 0D 5392 - 128 9470 00010000D 5393 - 128 0 -5705 20 0 0D 5394 - 128 9490 00010000D 5395 - 128 0 -5705 20 0 0D 5396 - 128 9510 00010000D 5397 - 128 0 -5705 20 0 0D 5398 - 128 9530 00010000D 5399 - 128 0 -5705 12 0 0D 5400 - 128 9542 00010000D 5401 - 128 0 -5705 7 0 0D 5402 - 128 9549 00010000D 5403 - 128 0 -5705 8 0 0D 5404 - 128 9557 00010000D 5405 - 128 0 -5705 9 0 0D 5406 - 128 9566 00010000D 5407 - 128 0 -5705 9 0 0D 5408 - 128 9575 00010000D 5409 - 128 0 -5705 9 0 0D 5410 - 128 9584 00010000D 5411 - 128 0 -5705 7 0 0D 5412 - 128 9591 00010000D 5413 - 128 0 -5705 8 0 0D 5414 - 128 9599 00010000D 5415 - 128 0 -5705 9 0 0D 5416 - 128 9608 00010000D 5417 - 128 0 -5705 9 0 0D 5418 - 128 9617 00010000D 5419 - 128 0 -5705 20 0 0D 5420 - 128 9637 00010000D 5421 - 128 0 -5705 20 0 0D 5422 - 128 9657 00010000D 5423 - 128 0 -5705 23 0 0D 5424 - 128 9680 00010000D 5425 - 128 0 -5705 23 0 0D 5426 - 128 9703 00010000D 5427 - 128 0 -5705 20 0 0D 5428 - 128 9723 00010000D 5429 - 128 0 -5705 20 0 0D 5430 - 128 9743 00010000D 5431 - 128 0 -5705 23 0 0D 5432 - 128 9766 00010000D 5433 - 128 0 -5705 23 0 0D 5434 - 128 9789 00010000D 5435 - 128 0 -5705 7 0 0D 5436 - 128 9796 00010000D 5437 - 128 0 -5705 7 0 0D 5438 - 128 9803 00010000D 5439 - 128 0 -5705 9 0 0D 5440 - 128 9812 00010000D 5441 - 128 0 -5705 8 0 0D 5442 - 128 9820 00010000D 5443 - 128 0 -5705 7 0 0D 5444 - 128 9827 00010000D 5445 - 128 0 -5705 8 0 0D 5446 - 128 9835 00010000D 5447 - 128 0 -5705 8 0 0D 5448 - 128 9843 00010000D 5449 - 128 0 -5705 9 0 0D 5450 - 128 9852 00010000D 5451 - 128 0 -5705 6 0 0D 5452 - 128 9858 00010000D 5453 - 128 0 -5705 7 0 0D 5454 - 128 9865 00010000D 5455 - 128 0 -5705 7 0 0D 5456 - 128 9872 00010000D 5457 - 128 0 -5705 9 0 0D 5458 - 128 9881 00010000D 5459 - 128 0 -5705 7 0 0D 5460 - 128 9888 00010000D 5461 - 128 0 -5705 8 0 0D 5462 - 128 9896 00010000D 5463 - 128 0 -5705 7 0 0D 5464 - 128 9903 00010000D 5465 - 128 0 -5705 8 0 0D 5466 - 128 9911 00010000D 5467 - 128 0 -5705 7 0 0D 5468 - 128 9918 00010000D 5469 - 128 0 -5705 8 0 0D 5470 - 128 9926 00010000D 5471 - 128 0 -5705 7 0 0D 5472 - 128 9933 00010000D 5473 - 128 0 -5705 7 0 0D 5474 - 128 9940 00010000D 5475 - 128 0 -5705 23 0 0D 5476 - 128 9963 00010000D 5477 - 128 0 -5705 8 0 0D 5478 - 128 9971 00010000D 5479 - 128 0 -5705 23 0 0D 5480 - 128 9994 00010000D 5481 - 128 0 -5705 7 0 0D 5482 - 128 10001 00010000D 5483 - 128 0 -5705 23 0 0D 5484 - 128 10024 00010000D 5485 - 128 0 -5705 18 0 0D 5486 - 128 10042 00010000D 5487 - 128 0 -5705 9 0 0D 5488 - 128 10051 00010000D 5489 - 128 0 -5705 6 0 0D 5490 - 128 10057 00010000D 5491 - 128 0 -5705 6 0 0D 5492 - 128 10063 00010000D 5493 - 128 0 -5705 15 0 0D 5494 - 128 10078 00010000D 5495 - 128 0 -5705 7 0 0D 5496 - 128 10085 00010000D 5497 - 128 0 -5705 12 0 0D 5498 - 128 10097 00010000D 5499 - 128 0 -5705 7 0 0D 5500 - 128 10104 00010000D 5501 - 128 0 -5705 13 0 0D 5502 - 128 10117 00010000D 5503 - 128 0 -5705 8 0 0D 5504 - 128 10125 00010000D 5505 - 128 0 -5705 12 0 0D 5506 - 128 10137 00010000D 5507 - 128 0 -5705 8 0 0D 5508 - 128 10145 00010000D 5509 - 128 0 -5705 6 0 0D 5510 - 128 10151 00010000D 5511 - 128 0 -5705 7 0 0D 5512 - 128 10158 00010000D 5513 - 128 0 -5705 6 0 0D 5514 - 128 10164 00010000D 5515 - 128 0 -5705 7 0 0D 5516 - 128 10171 00010000D 5517 - 128 0 -5705 6 0 0D 5518 - 128 10177 00010000D 5519 - 128 0 -5705 6 0 0D 5520 - 128 10183 00010000D 5521 - 128 0 -5705 6 0 0D 5522 - 128 10189 00010000D 5523 - 128 0 -5705 8 0 0D 5524 - 128 10197 00010000D 5525 - 128 0 -5705 5 0 0D 5526 - 128 10202 00010000D 5527 - 128 0 -5705 11 0 0D 5528 - 128 10213 00010000D 5529 - 128 0 -5705 11 0 0D 5530 - 128 10224 00010000D 5531 - 128 0 -5705 11 0 0D 5532 - 128 10235 00010000D 5533 - 128 0 -5705 11 0 0D 5534 - 128 10246 00010000D 5535 - 128 0 -5705 11 0 0D 5536 - 128 10257 00010000D 5537 - 128 0 -5705 11 0 0D 5538 - 128 10268 00010000D 5539 - 128 0 -5705 5 0 0D 5540 - 128 10273 00010000D 5541 - 128 0 -5705 5 0 0D 5542 - 128 10278 00010000D 5543 - 128 0 -5705 5 0 0D 5544 - 128 10283 00010000D 5545 - 128 0 -5705 5 0 0D 5546 - 128 10288 00010000D 5547 - 128 0 -5705 11 0 0D 5548 - 128 10299 00010000D 5549 - 128 0 -5705 11 0 0D 5550 - 128 10310 00010000D 5551 - 128 0 -5705 11 0 0D 5552 - 128 10321 00010000D 5553 - 128 0 -5705 6 0 0D 5554 - 128 10327 00010000D 5555 - 128 0 -5705 5 0 0D 5556 - 128 10332 00010000D 5557 - 128 0 -5705 6 0 0D 5558 - 128 10338 00010000D 5559 - 128 0 -5705 11 0 0D 5560 - 128 10349 00010000D 5561 - 128 0 -5705 11 0 0D 5562 - 128 10360 00010000D 5563 - 128 0 -5705 11 0 0D 5564 - 128 10371 00010000D 5565 - 128 0 -5705 11 0 0D 5566 - 128 10382 00010000D 5567 - 128 0 -5705 11 0 0D 5568 - 128 10393 00010000D 5569 - 128 0 -5705 11 0 0D 5570 - 128 10404 00010000D 5571 - 128 0 -5705 11 0 0D 5572 - 128 10415 00010000D 5573 - 128 0 -5705 5 0 0D 5574 - 128 10420 00010000D 5575 - 128 0 -5705 5 0 0D 5576 - 128 10425 00010000D 5577 - 128 0 -5705 5 0 0D 5578 - 128 10430 00010000D 5579 - 128 0 -5705 6 0 0D 5580 - 128 10436 00010000D 5581 - 128 0 -5705 7 0 0D 5582 - 128 10443 00010000D 5583 - 128 0 -5705 18 0 0D 5584 - 128 10461 00010000D 5585 - 128 0 -5705 18 0 0D 5586 - 128 10479 00010000D 5587 - 128 0 -5705 18 0 0D 5588 - 128 10497 00010000D 5589 - 128 0 -5705 18 0 0D 5590 - 128 10515 00010000D 5591 - 128 0 -5705 10 0 0D 5592 - 128 10525 00010000D 5593 - 128 0 -5705 6 0 0D 5594 - 128 10531 00010000D 5595 - 128 0 -5705 6 0 0D 5596 - 128 10537 00010000D 5597 - 128 0 -5705 7 0 0D 5598 - 128 10544 00010000D 5599 - 128 0 -5705 7 0 0D 5600 - 128 10551 00010000D 5601 - 128 0 -5705 7 0 0D 5602 - 128 10558 00010000D 5603 - 128 0 -5705 6 0 0D 5604 - 128 10564 00010000D 5605 - 128 0 -5705 7 0 0D 5606 - 128 10571 00010000D 5607 - 128 0 -5705 7 0 0D 5608 - 128 10578 00010000D 5609 - 128 0 -5705 18 0 0D 5610 - 128 10596 00010000D 5611 - 128 0 -5705 18 0 0D 5612 - 128 10614 00010000D 5613 - 128 0 -5705 18 0 0D 5614 - 128 10632 00010000D 5615 - 128 0 -5705 18 0 0D 5616 - 128 10650 00010000D 5617 - 128 0 -5705 18 0 0D 5618 - 128 10668 00010000D 5619 - 128 0 -5705 18 0 0D 5620 - 128 10686 00010000D 5621 - 128 0 -5705 18 0 0D 5622 - 128 10704 00010000D 5623 - 128 0 -5705 18 0 0D 5624 - 128 10722 00010000D 5625 - 128 0 -5705 6 0 0D 5626 - 128 10728 00010000D 5627 - 128 0 -5705 6 0 0D 5628 - 128 10734 00010000D 5629 - 128 0 -5705 7 0 0D 5630 - 128 10741 00010000D 5631 - 128 0 -5705 6 0 0D 5632 - 128 10747 00010000D 5633 - 128 0 -5705 6 0 0D 5634 - 128 10753 00010000D 5635 - 128 0 -5705 7 0 0D 5636 - 128 10760 00010000D 5637 - 128 0 -5705 6 0 0D 5638 - 128 10766 00010000D 5639 - 128 0 -5705 6 0 0D 5640 - 128 10772 00010000D 5641 - 128 0 -5705 6 0 0D 5642 - 128 10778 00010000D 5643 - 128 0 -5705 6 0 0D 5644 - 128 10784 00010000D 5645 - 128 0 -5705 6 0 0D 5646 - 128 10790 00010000D 5647 - 128 0 -5705 6 0 0D 5648 - 128 10796 00010000D 5649 - 128 0 -5705 6 0 0D 5650 - 128 10802 00010000D 5651 - 128 0 -5705 6 0 0D 5652 - 128 10808 00010000D 5653 - 128 0 -5705 6 0 0D 5654 - 128 10814 00010000D 5655 - 128 0 -5705 17 0 0D 5656 - 128 10831 00010000D 5657 - 128 0 -5705 6 0 0D 5658 - 128 10837 00010000D 5659 - 128 0 -5705 17 0 0D 5660 - 128 10854 00010000D 5661 - 128 0 -5705 6 0 0D 5662 - 128 10860 00010000D 5663 - 128 0 -5705 17 0 0D 5664 - 128 10877 00010000D 5665 - 128 0 -5705 13 0 0D 5666 - 128 10890 00010000D 5667 - 128 0 -5705 7 0 0D 5668 - 128 10897 00010000D 5669 - 128 0 -5705 6 0 0D 5670 - 128 10903 00010000D 5671 - 128 0 -5705 6 0 0D 5672 - 128 10909 00010000D 5673 - 128 0 -5705 13 0 0D 5674 - 128 10922 00010000D 5675 - 128 0 -5705 6 0 0D 5676 - 128 10928 00010000D 5677 - 128 0 -5705 9 0 0D 5678 - 128 10937 00010000D 5679 - 128 0 -5705 6 0 0D 5680 - 128 10943 00010000D 5681 - 128 0 -5705 9 0 0D 5682 - 128 10952 00010000D 5683 - 128 0 -5705 9 0 0D 5684 - 502 10961 00010000D 5685 - 502 514 1 0D 5686 - 502 11475 00010000D 5687 - 502 125 1 0D 5688 - 502 11600 00010000D 5689 - 502 115 1 0D 5690 - 504 11715 00010001D 5691 - 504 337 1 0D 5692 - 504 12052 00010001D 5693 - 504 67 1 0D 5694 - 504 12119 00010001D 5695 - 504 91 1 0D 5696 - 406 12210 00000000D 5697 - 406 1 15 0D 5698 - 406 12211 00000000D 5699 - 406 1 15 0D 5700 - 406 12212 00000000D 5701 - 406 1 15 0D 5702 - 314 12213 00000200D 5703 - 314 2 0 0D 5704 - 314 12215 00000200D 5705 - 314 2 0 0D 5706 - 314 12217 00000200D 5707 - 314 2 0 0D 5708 -186,7,1,0,0,1,5697; 1P 1 -186,9,1,0,0,1,5699; 3P 2 -186,11,1,0,0,1,5701; 5P 3 -514,307,13,1,15,1,17,1,19,1,21,1,23,1,25,1,27,1,29,1,31,1,33,1, 7P 4 -35,1,37,1,39,1,41,1,43,1,45,1,47,1,49,1,51,1,53,1,55,1,57,1,59, 7P 5 -1,61,1,63,1,65,1,67,1,69,1,71,1,73,1,75,1,77,1,79,1,81,1,83,1, 7P 6 -85,1,87,1,89,1,91,1,93,1,95,1,97,1,99,1,101,1,103,1,105,1,107,1, 7P 7 -109,1,111,1,113,1,115,1,117,1,119,1,121,1,123,1,125,1,127,1,129, 7P 8 -1,131,1,133,1,135,1,137,1,139,1,141,1,143,1,145,1,147,1,149,1, 7P 9 -151,1,153,1,155,1,157,1,159,1,161,1,163,1,165,1,167,1,169,1,171, 7P 10 -1,173,1,175,1,177,1,179,1,181,1,183,1,185,1,187,1,189,1,191,1, 7P 11 -193,1,195,1,197,1,199,1,201,1,203,1,205,1,207,1,209,1,211,1,213, 7P 12 -1,215,1,217,1,219,1,221,1,223,1,225,1,227,1,229,1,231,1,233,1, 7P 13 -235,1,237,1,239,1,241,1,243,1,245,1,247,1,249,1,251,1,253,1,255, 7P 14 -1,257,1,259,1,261,1,263,1,265,1,267,1,269,1,271,1,273,1,275,1, 7P 15 -277,1,279,1,281,1,283,1,285,1,287,1,289,1,291,1,293,1,295,1,297, 7P 16 -1,299,1,301,1,303,1,305,1,307,1,309,1,311,1,313,1,315,1,317,1, 7P 17 -319,1,321,1,323,1,325,1,327,1,329,1,331,1,333,1,335,1,337,1,339, 7P 18 -1,341,1,343,1,345,1,347,1,349,1,351,1,353,1,355,1,357,1,359,1, 7P 19 -361,1,363,1,365,1,367,1,369,1,371,1,373,1,375,1,377,1,379,1,381, 7P 20 -1,383,1,385,1,387,1,389,1,391,1,393,1,395,1,397,1,399,1,401,1, 7P 21 -403,1,405,1,407,1,409,1,411,1,413,1,415,1,417,1,419,1,421,1,423, 7P 22 -1,425,1,427,1,429,1,431,1,433,1,435,1,437,1,439,1,441,1,443,1, 7P 23 -445,1,447,1,449,1,451,1,453,1,455,1,457,1,459,1,461,1,463,1,465, 7P 24 -1,467,1,469,1,471,1,473,1,475,1,477,1,479,1,481,1,483,1,485,1, 7P 25 -487,1,489,1,491,1,493,1,495,1,497,1,499,1,501,1,503,1,505,1,507, 7P 26 -1,509,1,511,1,513,1,515,1,517,1,519,1,521,1,523,1,525,1,527,1, 7P 27 -529,1,531,1,533,1,535,1,537,1,539,1,541,1,543,1,545,1,547,1,549, 7P 28 -1,551,1,553,1,555,1,557,1,559,1,561,1,563,1,565,1,567,1,569,1, 7P 29 -571,1,573,1,575,1,577,1,579,1,581,1,583,1,585,1,587,1,589,1,591, 7P 30 -1,593,1,595,1,597,1,599,1,601,1,603,1,605,1,607,1,609,1,611,1, 7P 31 -613,1,615,1,617,1,619,1,621,1,623,1,625,1; 7P 32 -514,66,627,1,629,1,631,1,633,1,635,1,637,1,639,1,641,1,643,1, 9P 33 -645,1,647,1,649,1,651,1,653,1,655,1,657,1,659,1,661,1,663,1,665, 9P 34 -1,667,1,669,1,671,1,673,1,675,1,677,1,679,1,681,1,683,1,685,1, 9P 35 -687,1,689,1,691,1,693,1,695,1,697,1,699,1,701,1,703,1,705,1,707, 9P 36 -1,709,1,711,1,713,1,715,1,717,1,719,1,721,1,723,1,725,1,727,1, 9P 37 -729,1,731,1,733,1,735,1,737,1,739,1,741,1,743,1,745,1,747,1,749, 9P 38 -1,751,1,753,1,755,1,757,1; 9P 39 -514,88,759,1,761,1,763,1,765,1,767,1,769,1,771,1,773,1,775,1, 11P 40 -777,1,779,1,781,1,783,1,785,1,787,1,789,1,791,1,793,1,795,1,797, 11P 41 -1,799,1,801,1,803,1,805,1,807,1,809,1,811,1,813,1,815,1,817,1, 11P 42 -819,1,821,1,823,1,825,1,827,1,829,1,831,1,833,1,835,1,837,1,839, 11P 43 -1,841,1,843,1,845,1,847,1,849,1,851,1,853,1,855,1,857,1,859,1, 11P 44 -861,1,863,1,865,1,867,1,869,1,871,1,873,1,875,1,877,1,879,1,881, 11P 45 -1,883,1,885,1,887,1,889,1,891,1,893,1,895,1,897,1,899,1,901,1, 11P 46 -903,1,905,1,907,1,909,1,911,1,913,1,915,1,917,1,919,1,921,1,923, 11P 47 -1,925,1,927,1,929,1,931,1,933,1; 11P 48 -510,4763,1,1,935; 13P 49 -510,4765,1,1,937; 15P 50 -510,4767,1,1,939; 17P 51 -510,4769,1,1,941; 19P 52 -510,4771,1,1,943; 21P 53 -510,4773,1,1,945; 23P 54 -510,4775,1,1,947; 25P 55 -510,4777,1,1,949; 27P 56 -510,4779,1,1,951; 29P 57 -510,4781,1,1,953; 31P 58 -510,4783,1,1,955; 33P 59 -510,4785,1,1,957; 35P 60 -510,4787,1,1,959; 37P 61 -510,4789,1,1,961; 39P 62 -510,4791,1,1,963; 41P 63 -510,4793,1,1,965; 43P 64 -510,4795,1,1,967; 45P 65 -510,4797,1,1,969; 47P 66 -510,4799,1,1,971; 49P 67 -510,4801,1,1,973; 51P 68 -510,4803,1,1,975; 53P 69 -510,4805,1,1,977; 55P 70 -510,4807,1,1,979; 57P 71 -510,4809,1,1,981; 59P 72 -510,4811,1,1,983; 61P 73 -510,4813,1,1,985; 63P 74 -510,4815,1,1,987; 65P 75 -510,4817,1,1,989; 67P 76 -510,4819,1,1,991; 69P 77 -510,4821,1,1,993; 71P 78 -510,4823,1,1,995; 73P 79 -510,4825,1,1,997; 75P 80 -510,4827,1,1,999; 77P 81 -510,4829,1,1,1001; 79P 82 -510,4831,1,1,1003; 81P 83 -510,4833,1,1,1005; 83P 84 -510,4835,1,1,1007; 85P 85 -510,4837,1,1,1009; 87P 86 -510,4839,1,1,1011; 89P 87 -510,4841,1,1,1013; 91P 88 -510,4843,1,1,1015; 93P 89 -510,4845,1,1,1017; 95P 90 -510,4847,1,1,1019; 97P 91 -510,4849,1,1,1021; 99P 92 -510,4851,1,1,1023; 101P 93 -510,4853,1,1,1025; 103P 94 -510,4855,1,1,1027; 105P 95 -510,4857,1,1,1029; 107P 96 -510,4859,1,1,1031; 109P 97 -510,4861,1,1,1033; 111P 98 -510,4863,1,1,1035; 113P 99 -510,4865,1,1,1037; 115P 100 -510,4867,1,1,1039; 117P 101 -510,4869,1,1,1041; 119P 102 -510,4871,1,1,1043; 121P 103 -510,4873,1,1,1045; 123P 104 -510,4875,1,1,1047; 125P 105 -510,4877,1,1,1049; 127P 106 -510,4879,1,1,1051; 129P 107 -510,4881,1,1,1053; 131P 108 -510,4883,1,1,1055; 133P 109 -510,4885,1,1,1057; 135P 110 -510,4887,1,1,1059; 137P 111 -510,4889,1,1,1061; 139P 112 -510,4891,1,1,1063; 141P 113 -510,4893,1,1,1065; 143P 114 -510,4895,1,1,1067; 145P 115 -510,4897,1,1,1069; 147P 116 -510,4899,1,1,1071; 149P 117 -510,4901,1,1,1073; 151P 118 -510,4903,1,1,1075; 153P 119 -510,4905,1,1,1077; 155P 120 -510,4907,1,1,1079; 157P 121 -510,4909,1,1,1081; 159P 122 -510,4911,1,1,1083; 161P 123 -510,4913,1,1,1085; 163P 124 -510,4915,1,1,1087; 165P 125 -510,4917,1,1,1089; 167P 126 -510,4919,1,1,1091; 169P 127 -510,4921,1,1,1093; 171P 128 -510,4923,1,1,1095; 173P 129 -510,4925,1,1,1097; 175P 130 -510,4927,1,1,1099; 177P 131 -510,4929,1,1,1101; 179P 132 -510,4931,1,1,1103; 181P 133 -510,4933,1,1,1105; 183P 134 -510,4935,1,1,1107; 185P 135 -510,4937,1,1,1109; 187P 136 -510,4939,1,1,1111; 189P 137 -510,4941,1,1,1113; 191P 138 -510,4943,1,1,1115; 193P 139 -510,4945,1,1,1117; 195P 140 -510,4947,1,1,1119; 197P 141 -510,4949,1,1,1121; 199P 142 -510,4951,1,1,1123; 201P 143 -510,4953,1,1,1125; 203P 144 -510,4955,1,1,1127; 205P 145 -510,4957,1,1,1129; 207P 146 -510,4959,1,1,1131; 209P 147 -510,4961,1,1,1133; 211P 148 -510,4963,1,1,1135; 213P 149 -510,4965,1,1,1137; 215P 150 -510,4967,1,1,1139; 217P 151 -510,4969,1,1,1141; 219P 152 -510,4971,1,1,1143; 221P 153 -510,4973,1,1,1145; 223P 154 -510,4975,1,1,1147; 225P 155 -510,4977,1,1,1149; 227P 156 -510,4979,1,1,1151; 229P 157 -510,4981,1,1,1153; 231P 158 -510,4983,1,1,1155; 233P 159 -510,4985,1,1,1157; 235P 160 -510,4987,1,1,1159; 237P 161 -510,4989,1,1,1161; 239P 162 -510,4991,1,1,1163; 241P 163 -510,4993,1,1,1165; 243P 164 -510,4995,1,1,1167; 245P 165 -510,4997,1,1,1169; 247P 166 -510,4999,1,1,1171; 249P 167 -510,5001,1,1,1173; 251P 168 -510,5003,1,1,1175; 253P 169 -510,5005,1,1,1177; 255P 170 -510,5007,1,1,1179; 257P 171 -510,5009,1,1,1181; 259P 172 -510,5011,1,1,1183; 261P 173 -510,5013,1,1,1185; 263P 174 -510,5015,1,1,1187; 265P 175 -510,5017,1,1,1189; 267P 176 -510,5019,1,1,1191; 269P 177 -510,5021,1,1,1193; 271P 178 -510,5023,1,1,1195; 273P 179 -510,5025,1,1,1197; 275P 180 -510,5027,1,1,1199; 277P 181 -510,5029,1,1,1201; 279P 182 -510,5031,1,1,1203; 281P 183 -510,5033,1,1,1205; 283P 184 -510,5035,1,1,1207; 285P 185 -510,5037,1,1,1209; 287P 186 -510,5039,1,1,1211; 289P 187 -510,5041,1,1,1213; 291P 188 -510,5043,1,1,1215; 293P 189 -510,5045,1,1,1217; 295P 190 -510,5047,1,1,1219; 297P 191 -510,5049,1,1,1221; 299P 192 -510,5051,1,1,1223; 301P 193 -510,5053,1,1,1225; 303P 194 -510,5055,1,1,1227; 305P 195 -510,5057,1,1,1229; 307P 196 -510,5059,1,1,1231; 309P 197 -510,5061,1,1,1233; 311P 198 -510,5063,1,1,1235; 313P 199 -510,5065,1,1,1237; 315P 200 -510,5067,1,1,1239; 317P 201 -510,5069,1,1,1241; 319P 202 -510,5071,1,1,1243; 321P 203 -510,5073,1,1,1245; 323P 204 -510,5075,1,1,1247; 325P 205 -510,5077,1,1,1249; 327P 206 -510,5079,1,1,1251; 329P 207 -510,5081,1,1,1253; 331P 208 -510,5083,1,1,1255; 333P 209 -510,5085,1,1,1257; 335P 210 -510,5087,1,1,1259; 337P 211 -510,5089,1,1,1261; 339P 212 -510,5091,1,1,1263; 341P 213 -510,5093,1,1,1265; 343P 214 -510,5095,1,1,1267; 345P 215 -510,5097,1,1,1269; 347P 216 -510,5099,1,1,1271; 349P 217 -510,5101,1,1,1273; 351P 218 -510,5103,1,1,1275; 353P 219 -510,5105,1,1,1277; 355P 220 -510,5107,1,1,1279; 357P 221 -510,5109,1,1,1281; 359P 222 -510,5111,1,1,1283; 361P 223 -510,5113,1,1,1285; 363P 224 -510,5115,1,1,1287; 365P 225 -510,5117,1,1,1289; 367P 226 -510,5119,1,1,1291; 369P 227 -510,5121,1,1,1293; 371P 228 -510,5123,1,1,1295; 373P 229 -510,5125,1,1,1297; 375P 230 -510,5127,1,1,1299; 377P 231 -510,5129,1,1,1301; 379P 232 -510,5131,1,1,1303; 381P 233 -510,5133,1,1,1305; 383P 234 -510,5135,1,1,1307; 385P 235 -510,5137,1,1,1309; 387P 236 -510,5139,1,1,1311; 389P 237 -510,5141,1,1,1313; 391P 238 -510,5143,1,1,1315; 393P 239 -510,5145,1,1,1317; 395P 240 -510,5147,1,1,1319; 397P 241 -510,5149,1,1,1321; 399P 242 -510,5151,1,1,1323; 401P 243 -510,5153,1,1,1325; 403P 244 -510,5155,1,1,1327; 405P 245 -510,5157,1,1,1329; 407P 246 -510,5159,1,1,1331; 409P 247 -510,5161,1,1,1333; 411P 248 -510,5163,1,1,1335; 413P 249 -510,5165,1,1,1337; 415P 250 -510,5167,1,1,1339; 417P 251 -510,5169,1,1,1341; 419P 252 -510,5171,1,1,1343; 421P 253 -510,5173,1,1,1345; 423P 254 -510,5175,1,1,1347; 425P 255 -510,5177,1,1,1349; 427P 256 -510,5179,1,1,1351; 429P 257 -510,5181,1,1,1353; 431P 258 -510,5183,1,1,1355; 433P 259 -510,5185,1,1,1357; 435P 260 -510,5187,1,1,1359; 437P 261 -510,5189,1,1,1361; 439P 262 -510,5191,1,1,1363; 441P 263 -510,5193,1,1,1365; 443P 264 -510,5195,1,1,1367; 445P 265 -510,5197,1,1,1369; 447P 266 -510,5199,1,1,1371; 449P 267 -510,5201,1,1,1373; 451P 268 -510,5203,1,1,1375; 453P 269 -510,5205,1,1,1377; 455P 270 -510,5207,1,1,1379; 457P 271 -510,5209,1,1,1381; 459P 272 -510,5211,1,1,1383; 461P 273 -510,5213,1,1,1385; 463P 274 -510,5215,1,1,1387; 465P 275 -510,5217,1,1,1389; 467P 276 -510,5219,1,1,1391; 469P 277 -510,5221,1,1,1393; 471P 278 -510,5223,1,1,1395; 473P 279 -510,5225,1,1,1397; 475P 280 -510,5227,1,1,1399; 477P 281 -510,5229,1,1,1401; 479P 282 -510,5231,1,1,1403; 481P 283 -510,5233,1,1,1405; 483P 284 -510,5235,1,1,1407; 485P 285 -510,5237,1,1,1409; 487P 286 -510,5239,1,1,1411; 489P 287 -510,5241,1,1,1413; 491P 288 -510,5243,1,1,1415; 493P 289 -510,5245,1,1,1417; 495P 290 -510,5247,1,1,1419; 497P 291 -510,5249,1,1,1421; 499P 292 -510,5251,1,1,1423; 501P 293 -510,5253,1,1,1425; 503P 294 -510,5255,1,1,1427; 505P 295 -510,5257,1,1,1429; 507P 296 -510,5259,1,1,1431; 509P 297 -510,5261,1,1,1433; 511P 298 -510,5263,1,1,1435; 513P 299 -510,5265,1,1,1437; 515P 300 -510,5267,1,1,1439; 517P 301 -510,5269,1,1,1441; 519P 302 -510,5271,1,1,1443; 521P 303 -510,5273,1,1,1445; 523P 304 -510,5275,1,1,1447; 525P 305 -510,5277,1,1,1449; 527P 306 -510,5279,1,1,1451; 529P 307 -510,5281,1,1,1453; 531P 308 -510,5283,1,1,1455; 533P 309 -510,5285,1,1,1457; 535P 310 -510,5287,1,1,1459; 537P 311 -510,5289,1,1,1461; 539P 312 -510,5291,1,1,1463; 541P 313 -510,5293,1,1,1465; 543P 314 -510,5295,1,1,1467; 545P 315 -510,5297,1,1,1469; 547P 316 -510,5299,1,1,1471; 549P 317 -510,5301,1,1,1473; 551P 318 -510,5303,1,1,1475; 553P 319 -510,5305,1,1,1477; 555P 320 -510,5307,1,1,1479; 557P 321 -510,5309,1,1,1481; 559P 322 -510,5311,1,1,1483; 561P 323 -510,5313,1,1,1485; 563P 324 -510,5315,1,1,1487; 565P 325 -510,5317,1,1,1489; 567P 326 -510,5319,1,1,1491; 569P 327 -510,5321,1,1,1493; 571P 328 -510,5323,1,1,1495; 573P 329 -510,5325,1,1,1497; 575P 330 -510,5327,1,1,1499; 577P 331 -510,5329,1,1,1501; 579P 332 -510,5331,1,1,1503; 581P 333 -510,5333,1,1,1505; 583P 334 -510,5335,1,1,1507; 585P 335 -510,5337,1,1,1509; 587P 336 -510,5339,1,1,1511; 589P 337 -510,5341,1,1,1513; 591P 338 -510,5343,1,1,1515; 593P 339 -510,5345,1,1,1517; 595P 340 -510,5347,1,1,1519; 597P 341 -510,5349,1,1,1521; 599P 342 -510,5351,1,1,1523; 601P 343 -510,5353,1,1,1525; 603P 344 -510,5355,1,1,1527; 605P 345 -510,5357,1,1,1529; 607P 346 -510,5359,1,1,1531; 609P 347 -510,5361,1,1,1533; 611P 348 -510,5363,1,1,1535; 613P 349 -510,5365,1,1,1537; 615P 350 -510,5367,1,1,1539; 617P 351 -510,5369,1,1,1541; 619P 352 -510,5371,1,1,1543; 621P 353 -510,5373,29,1,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563, 623P 354 -1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587, 623P 355 -1589,1591,1593,1595,1597,1599,1601; 623P 356 -510,5375,29,1,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621, 625P 357 -1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645, 625P 358 -1647,1649,1651,1653,1655,1657,1659; 625P 359 -510,5377,1,1,1661; 627P 360 -510,5379,1,1,1663; 629P 361 -510,5381,1,1,1665; 631P 362 -510,5383,1,1,1667; 633P 363 -510,5385,1,1,1669; 635P 364 -510,5387,1,1,1671; 637P 365 -510,5389,1,1,1673; 639P 366 -510,5391,1,1,1675; 641P 367 -510,5393,1,1,1677; 643P 368 -510,5395,1,1,1679; 645P 369 -510,5397,1,1,1681; 647P 370 -510,5399,1,1,1683; 649P 371 -510,5401,1,1,1685; 651P 372 -510,5403,1,1,1687; 653P 373 -510,5405,1,1,1689; 655P 374 -510,5407,1,1,1691; 657P 375 -510,5409,1,1,1693; 659P 376 -510,5411,1,1,1695; 661P 377 -510,5413,1,1,1697; 663P 378 -510,5415,1,1,1699; 665P 379 -510,5417,1,1,1701; 667P 380 -510,5419,1,1,1703; 669P 381 -510,5421,1,1,1705; 671P 382 -510,5423,1,1,1707; 673P 383 -510,5425,1,1,1709; 675P 384 -510,5427,1,1,1711; 677P 385 -510,5429,1,1,1713; 679P 386 -510,5431,1,1,1715; 681P 387 -510,5433,1,1,1717; 683P 388 -510,5435,1,1,1719; 685P 389 -510,5437,1,1,1721; 687P 390 -510,5439,8,1,1723,1725,1727,1729,1731,1733,1735,1737; 689P 391 -510,5441,1,1,1739; 691P 392 -510,5443,1,1,1741; 693P 393 -510,5445,1,1,1743; 695P 394 -510,5447,1,1,1745; 697P 395 -510,5449,1,1,1747; 699P 396 -510,5451,1,1,1749; 701P 397 -510,5453,1,1,1751; 703P 398 -510,5455,1,1,1753; 705P 399 -510,5457,1,1,1755; 707P 400 -510,5459,1,1,1757; 709P 401 -510,5461,1,1,1759; 711P 402 -510,5463,1,1,1761; 713P 403 -510,5465,1,1,1763; 715P 404 -510,5467,1,1,1765; 717P 405 -510,5469,1,1,1767; 719P 406 -510,5471,1,1,1769; 721P 407 -510,5473,1,1,1771; 723P 408 -510,5475,1,1,1773; 725P 409 -510,5477,1,1,1775; 727P 410 -510,5479,1,1,1777; 729P 411 -510,5481,1,1,1779; 731P 412 -510,5483,1,1,1781; 733P 413 -510,5485,1,1,1783; 735P 414 -510,5487,2,1,1785,1787; 737P 415 -510,5489,1,1,1789; 739P 416 -510,5491,1,1,1791; 741P 417 -510,5493,1,1,1793; 743P 418 -510,5495,1,1,1795; 745P 419 -510,5497,1,1,1797; 747P 420 -510,5499,1,1,1799; 749P 421 -510,5501,1,1,1801; 751P 422 -510,5503,1,1,1803; 753P 423 -510,5505,1,1,1805; 755P 424 -510,5507,7,1,1807,1809,1811,1813,1815,1817,1819; 757P 425 -510,5509,1,1,1821; 759P 426 -510,5511,1,1,1823; 761P 427 -510,5513,1,1,1825; 763P 428 -510,5515,1,1,1827; 765P 429 -510,5517,1,1,1829; 767P 430 -510,5519,1,1,1831; 769P 431 -510,5521,1,1,1833; 771P 432 -510,5523,7,1,1835,1837,1839,1841,1843,1845,1847; 773P 433 -510,5525,1,1,1849; 775P 434 -510,5527,1,1,1851; 777P 435 -510,5529,1,1,1853; 779P 436 -510,5531,1,1,1855; 781P 437 -510,5533,1,1,1857; 783P 438 -510,5535,1,1,1859; 785P 439 -510,5537,1,1,1861; 787P 440 -510,5539,1,1,1863; 789P 441 -510,5541,1,1,1865; 791P 442 -510,5543,1,1,1867; 793P 443 -510,5545,1,1,1869; 795P 444 -510,5547,1,1,1871; 797P 445 -510,5549,1,1,1873; 799P 446 -510,5551,1,1,1875; 801P 447 -510,5553,1,1,1877; 803P 448 -510,5555,1,1,1879; 805P 449 -510,5557,1,1,1881; 807P 450 -510,5559,1,1,1883; 809P 451 -510,5561,1,1,1885; 811P 452 -510,5563,1,1,1887; 813P 453 -510,5565,1,1,1889; 815P 454 -510,5567,1,1,1891; 817P 455 -510,5569,1,1,1893; 819P 456 -510,5571,1,1,1895; 821P 457 -510,5573,1,1,1897; 823P 458 -510,5575,1,1,1899; 825P 459 -510,5577,1,1,1901; 827P 460 -510,5579,2,1,1903,1905; 829P 461 -510,5581,8,1,1907,1909,1911,1913,1915,1917,1919,1921; 831P 462 -510,5583,1,1,1923; 833P 463 -510,5585,1,1,1925; 835P 464 -510,5587,1,1,1927; 837P 465 -510,5589,1,1,1929; 839P 466 -510,5591,1,1,1931; 841P 467 -510,5593,1,1,1933; 843P 468 -510,5595,1,1,1935; 845P 469 -510,5597,1,1,1937; 847P 470 -510,5599,1,1,1939; 849P 471 -510,5601,1,1,1941; 851P 472 -510,5603,1,1,1943; 853P 473 -510,5605,1,1,1945; 855P 474 -510,5607,1,1,1947; 857P 475 -510,5609,1,1,1949; 859P 476 -510,5611,1,1,1951; 861P 477 -510,5613,1,1,1953; 863P 478 -510,5615,1,1,1955; 865P 479 -510,5617,1,1,1957; 867P 480 -510,5619,1,1,1959; 869P 481 -510,5621,1,1,1961; 871P 482 -510,5623,1,1,1963; 873P 483 -510,5625,1,1,1965; 875P 484 -510,5627,1,1,1967; 877P 485 -510,5629,1,1,1969; 879P 486 -510,5631,1,1,1971; 881P 487 -510,5633,1,1,1973; 883P 488 -510,5635,1,1,1975; 885P 489 -510,5637,1,1,1977; 887P 490 -510,5639,1,1,1979; 889P 491 -510,5641,1,1,1981; 891P 492 -510,5643,1,1,1983; 893P 493 -510,5645,1,1,1985; 895P 494 -510,5647,1,1,1987; 897P 495 -510,5649,1,1,1989; 899P 496 -510,5651,1,1,1991; 901P 497 -510,5653,1,1,1993; 903P 498 -510,5655,1,1,1995; 905P 499 -510,5657,1,1,1997; 907P 500 -510,5659,1,1,1999; 909P 501 -510,5661,1,1,2001; 911P 502 -510,5663,1,1,2003; 913P 503 -510,5665,1,1,2005; 915P 504 -510,5667,2,1,2007,2009; 917P 505 -510,5669,1,1,2011; 919P 506 -510,5671,1,1,2013; 921P 507 -510,5673,1,1,2015; 923P 508 -510,5675,1,1,2017; 925P 509 -510,5677,1,1,2019; 927P 510 -510,5679,1,1,2021; 929P 511 -510,5681,1,1,2023; 931P 512 -510,5683,1,1,2025; 933P 513 -508,4,0,5691,1,1,0,0,5691,2,1,0,0,5691,3,0,0,0,5691,4,0,0; 935P 514 -508,4,0,5691,5,1,0,0,5691,4,1,0,0,5691,6,0,0,0,5691,2,0,0; 937P 515 -508,4,0,5691,7,1,0,0,5691,8,1,0,0,5691,9,0,0,0,5691,10,0,0; 939P 516 -508,4,0,5691,11,1,0,0,5691,10,1,0,0,5691,12,0,0,0,5691,8,0,0; 941P 517 -508,4,0,5691,13,1,0,0,5691,14,1,0,0,5691,15,0,0,0,5691,16,0,0; 943P 518 -508,4,0,5691,17,1,0,0,5691,16,1,0,0,5691,18,0,0,0,5691,14,0,0; 945P 519 -508,4,0,5691,19,1,0,0,5691,20,1,0,0,5691,21,0,0,0,5691,22,0,0; 947P 520 -508,4,0,5691,23,1,0,0,5691,22,1,0,0,5691,24,0,0,0,5691,20,0,0; 949P 521 -508,4,0,5691,25,0,0,0,5691,26,1,0,0,5691,27,0,0,0,5691,28,0,0; 951P 522 -508,4,0,5691,29,0,0,0,5691,28,1,0,0,5691,30,0,0,0,5691,31,0,0; 953P 523 -508,4,0,5691,32,0,0,0,5691,31,1,0,0,5691,33,0,0,0,5691,34,0,0; 955P 524 -508,4,0,5691,35,0,0,0,5691,34,1,0,0,5691,36,0,0,0,5691,37,0,0; 957P 525 -508,4,0,5691,38,0,0,0,5691,37,1,0,0,5691,39,0,0,0,5691,40,0,0; 959P 526 -508,4,0,5691,41,0,0,0,5691,40,1,0,0,5691,42,0,0,0,5691,43,0,0; 961P 527 -508,4,0,5691,44,0,0,0,5691,43,1,0,0,5691,45,0,0,0,5691,46,0,0; 963P 528 -508,4,0,5691,47,0,0,0,5691,46,1,0,0,5691,48,0,0,0,5691,49,0,0; 965P 529 -508,4,0,5691,50,0,0,0,5691,49,1,0,0,5691,51,0,0,0,5691,52,0,0; 967P 530 -508,4,0,5691,53,0,0,0,5691,52,1,0,0,5691,54,0,0,0,5691,55,0,0; 969P 531 -508,4,0,5691,56,0,0,0,5691,55,1,0,0,5691,57,0,0,0,5691,58,0,0; 971P 532 -508,4,0,5691,59,0,0,0,5691,58,1,0,0,5691,60,0,0,0,5691,26,0,0; 973P 533 -508,4,0,5691,61,0,0,0,5691,62,1,0,0,5691,63,0,0,0,5691,64,0,0; 975P 534 -508,4,0,5691,65,0,0,0,5691,64,1,0,0,5691,66,0,0,0,5691,67,0,0; 977P 535 -508,4,0,5691,68,0,0,0,5691,67,1,0,0,5691,69,0,0,0,5691,70,0,0; 979P 536 -508,4,0,5691,71,0,0,0,5691,70,1,0,0,5691,72,0,0,0,5691,73,0,0; 981P 537 -508,4,0,5691,74,0,0,0,5691,73,1,0,0,5691,75,0,0,0,5691,76,0,0; 983P 538 -508,4,0,5691,77,0,0,0,5691,76,1,0,0,5691,78,0,0,0,5691,79,0,0; 985P 539 -508,4,0,5691,80,0,0,0,5691,79,1,0,0,5691,81,0,0,0,5691,82,0,0; 987P 540 -508,4,0,5691,83,0,0,0,5691,82,1,0,0,5691,84,0,0,0,5691,85,0,0; 989P 541 -508,4,0,5691,86,0,0,0,5691,85,1,0,0,5691,87,0,0,0,5691,88,0,0; 991P 542 -508,4,0,5691,89,0,0,0,5691,88,1,0,0,5691,90,0,0,0,5691,91,0,0; 993P 543 -508,4,0,5691,92,0,0,0,5691,91,1,0,0,5691,93,0,0,0,5691,94,0,0; 995P 544 -508,4,0,5691,95,0,0,0,5691,94,1,0,0,5691,96,0,0,0,5691,62,0,0; 997P 545 -508,4,0,5691,97,0,0,0,5691,98,1,0,0,5691,99,0,0,0,5691,100,0,0; 999P 546 -508,4,0,5691,101,0,0,0,5691,100,1,0,0,5691,102,0,0,0,5691,103,0, 1001P 547 -0; 1001P 548 -508,4,0,5691,104,0,0,0,5691,103,1,0,0,5691,105,0,0,0,5691,106,0, 1003P 549 -0; 1003P 550 -508,4,0,5691,107,0,0,0,5691,106,1,0,0,5691,108,0,0,0,5691,109,0, 1005P 551 -0; 1005P 552 -508,4,0,5691,110,0,0,0,5691,109,1,0,0,5691,111,0,0,0,5691,112,0, 1007P 553 -0; 1007P 554 -508,4,0,5691,113,0,0,0,5691,112,1,0,0,5691,114,0,0,0,5691,115,0, 1009P 555 -0; 1009P 556 -508,4,0,5691,116,0,0,0,5691,115,1,0,0,5691,117,0,0,0,5691,118,0, 1011P 557 -0; 1011P 558 -508,4,0,5691,119,0,0,0,5691,118,1,0,0,5691,120,0,0,0,5691,121,0, 1013P 559 -0; 1013P 560 -508,4,0,5691,122,0,0,0,5691,121,1,0,0,5691,123,0,0,0,5691,124,0, 1015P 561 -0; 1015P 562 -508,4,0,5691,125,0,0,0,5691,124,1,0,0,5691,126,0,0,0,5691,127,0, 1017P 563 -0; 1017P 564 -508,4,0,5691,128,0,0,0,5691,127,1,0,0,5691,129,0,0,0,5691,130,0, 1019P 565 -0; 1019P 566 -508,4,0,5691,131,0,0,0,5691,130,1,0,0,5691,132,0,0,0,5691,98,0, 1021P 567 -0; 1021P 568 -508,4,0,5691,133,0,0,0,5691,134,1,0,0,5691,135,0,0,0,5691,136,0, 1023P 569 -0; 1023P 570 -508,4,0,5691,137,0,0,0,5691,136,1,0,0,5691,138,0,0,0,5691,139,0, 1025P 571 -0; 1025P 572 -508,4,0,5691,140,0,0,0,5691,139,1,0,0,5691,141,0,0,0,5691,142,0, 1027P 573 -0; 1027P 574 -508,4,0,5691,143,0,0,0,5691,142,1,0,0,5691,144,0,0,0,5691,145,0, 1029P 575 -0; 1029P 576 -508,4,0,5691,146,0,0,0,5691,145,1,0,0,5691,147,0,0,0,5691,148,0, 1031P 577 -0; 1031P 578 -508,4,0,5691,149,0,0,0,5691,148,1,0,0,5691,150,0,0,0,5691,151,0, 1033P 579 -0; 1033P 580 -508,4,0,5691,152,0,0,0,5691,151,1,0,0,5691,153,0,0,0,5691,154,0, 1035P 581 -0; 1035P 582 -508,4,0,5691,155,0,0,0,5691,154,1,0,0,5691,156,0,0,0,5691,157,0, 1037P 583 -0; 1037P 584 -508,4,0,5691,158,0,0,0,5691,157,1,0,0,5691,159,0,0,0,5691,160,0, 1039P 585 -0; 1039P 586 -508,4,0,5691,161,0,0,0,5691,160,1,0,0,5691,162,0,0,0,5691,163,0, 1041P 587 -0; 1041P 588 -508,4,0,5691,164,0,0,0,5691,163,1,0,0,5691,165,0,0,0,5691,166,0, 1043P 589 -0; 1043P 590 -508,4,0,5691,167,0,0,0,5691,166,1,0,0,5691,168,0,0,0,5691,134,0, 1045P 591 -0; 1045P 592 -508,4,0,5691,169,0,0,0,5691,170,1,0,0,5691,171,0,0,0,5691,172,0, 1047P 593 -0; 1047P 594 -508,4,0,5691,173,0,0,0,5691,172,1,0,0,5691,174,0,0,0,5691,175,0, 1049P 595 -0; 1049P 596 -508,4,0,5691,176,0,0,0,5691,175,1,0,0,5691,177,0,0,0,5691,178,0, 1051P 597 -0; 1051P 598 -508,4,0,5691,179,0,0,0,5691,178,1,0,0,5691,180,0,0,0,5691,181,0, 1053P 599 -0; 1053P 600 -508,4,0,5691,182,0,0,0,5691,181,1,0,0,5691,183,0,0,0,5691,184,0, 1055P 601 -0; 1055P 602 -508,4,0,5691,185,0,0,0,5691,184,1,0,0,5691,186,0,0,0,5691,187,0, 1057P 603 -0; 1057P 604 -508,4,0,5691,188,0,0,0,5691,187,1,0,0,5691,189,0,0,0,5691,190,0, 1059P 605 -0; 1059P 606 -508,4,0,5691,191,0,0,0,5691,190,1,0,0,5691,192,0,0,0,5691,193,0, 1061P 607 -0; 1061P 608 -508,4,0,5691,194,0,0,0,5691,193,1,0,0,5691,195,0,0,0,5691,196,0, 1063P 609 -0; 1063P 610 -508,4,0,5691,197,0,0,0,5691,196,1,0,0,5691,198,0,0,0,5691,199,0, 1065P 611 -0; 1065P 612 -508,4,0,5691,200,0,0,0,5691,199,1,0,0,5691,201,0,0,0,5691,202,0, 1067P 613 -0; 1067P 614 -508,4,0,5691,203,0,0,0,5691,202,1,0,0,5691,204,0,0,0,5691,170,0, 1069P 615 -0; 1069P 616 -508,4,0,5691,205,0,0,0,5691,206,1,0,0,5691,207,0,0,0,5691,208,0, 1071P 617 -0; 1071P 618 -508,4,0,5691,209,0,0,0,5691,208,1,0,0,5691,210,0,0,0,5691,211,0, 1073P 619 -0; 1073P 620 -508,4,0,5691,212,0,0,0,5691,211,1,0,0,5691,213,0,0,0,5691,214,0, 1075P 621 -0; 1075P 622 -508,4,0,5691,215,0,0,0,5691,214,1,0,0,5691,216,0,0,0,5691,217,0, 1077P 623 -0; 1077P 624 -508,4,0,5691,218,0,0,0,5691,217,1,0,0,5691,219,0,0,0,5691,220,0, 1079P 625 -0; 1079P 626 -508,4,0,5691,221,0,0,0,5691,220,1,0,0,5691,222,0,0,0,5691,223,0, 1081P 627 -0; 1081P 628 -508,4,0,5691,224,0,0,0,5691,223,1,0,0,5691,225,0,0,0,5691,226,0, 1083P 629 -0; 1083P 630 -508,4,0,5691,227,0,0,0,5691,226,1,0,0,5691,228,0,0,0,5691,229,0, 1085P 631 -0; 1085P 632 -508,4,0,5691,230,0,0,0,5691,229,1,0,0,5691,231,0,0,0,5691,232,0, 1087P 633 -0; 1087P 634 -508,4,0,5691,233,0,0,0,5691,232,1,0,0,5691,234,0,0,0,5691,235,0, 1089P 635 -0; 1089P 636 -508,4,0,5691,236,0,0,0,5691,235,1,0,0,5691,237,0,0,0,5691,238,0, 1091P 637 -0; 1091P 638 -508,4,0,5691,239,0,0,0,5691,238,1,0,0,5691,240,0,0,0,5691,206,0, 1093P 639 -0; 1093P 640 -508,4,0,5691,241,0,0,0,5691,242,1,0,0,5691,243,0,0,0,5691,244,0, 1095P 641 -0; 1095P 642 -508,4,0,5691,245,0,0,0,5691,244,1,0,0,5691,246,0,0,0,5691,247,0, 1097P 643 -0; 1097P 644 -508,4,0,5691,248,0,0,0,5691,247,1,0,0,5691,249,0,0,0,5691,250,0, 1099P 645 -0; 1099P 646 -508,4,0,5691,251,0,0,0,5691,250,1,0,0,5691,252,0,0,0,5691,253,0, 1101P 647 -0; 1101P 648 -508,4,0,5691,254,0,0,0,5691,253,1,0,0,5691,255,0,0,0,5691,256,0, 1103P 649 -0; 1103P 650 -508,4,0,5691,257,0,0,0,5691,256,1,0,0,5691,258,0,0,0,5691,259,0, 1105P 651 -0; 1105P 652 -508,4,0,5691,260,0,0,0,5691,259,1,0,0,5691,261,0,0,0,5691,262,0, 1107P 653 -0; 1107P 654 -508,4,0,5691,263,0,0,0,5691,262,1,0,0,5691,264,0,0,0,5691,265,0, 1109P 655 -0; 1109P 656 -508,4,0,5691,266,0,0,0,5691,265,1,0,0,5691,267,0,0,0,5691,268,0, 1111P 657 -0; 1111P 658 -508,4,0,5691,269,0,0,0,5691,268,1,0,0,5691,270,0,0,0,5691,271,0, 1113P 659 -0; 1113P 660 -508,4,0,5691,272,0,0,0,5691,271,1,0,0,5691,273,0,0,0,5691,274,0, 1115P 661 -0; 1115P 662 -508,4,0,5691,275,0,0,0,5691,274,1,0,0,5691,276,0,0,0,5691,242,0, 1117P 663 -0; 1117P 664 -508,4,0,5691,277,0,0,0,5691,278,1,0,0,5691,279,0,0,0,5691,280,0, 1119P 665 -0; 1119P 666 -508,4,0,5691,281,0,0,0,5691,280,1,0,0,5691,282,0,0,0,5691,283,0, 1121P 667 -0; 1121P 668 -508,4,0,5691,284,0,0,0,5691,283,1,0,0,5691,285,0,0,0,5691,286,0, 1123P 669 -0; 1123P 670 -508,4,0,5691,287,0,0,0,5691,286,1,0,0,5691,288,0,0,0,5691,289,0, 1125P 671 -0; 1125P 672 -508,4,0,5691,290,0,0,0,5691,289,1,0,0,5691,291,0,0,0,5691,292,0, 1127P 673 -0; 1127P 674 -508,4,0,5691,293,0,0,0,5691,292,1,0,0,5691,294,0,0,0,5691,295,0, 1129P 675 -0; 1129P 676 -508,4,0,5691,296,0,0,0,5691,295,1,0,0,5691,297,0,0,0,5691,298,0, 1131P 677 -0; 1131P 678 -508,4,0,5691,299,0,0,0,5691,298,1,0,0,5691,300,0,0,0,5691,301,0, 1133P 679 -0; 1133P 680 -508,4,0,5691,302,0,0,0,5691,301,1,0,0,5691,303,0,0,0,5691,304,0, 1135P 681 -0; 1135P 682 -508,4,0,5691,305,0,0,0,5691,304,1,0,0,5691,306,0,0,0,5691,307,0, 1137P 683 -0; 1137P 684 -508,4,0,5691,308,0,0,0,5691,307,1,0,0,5691,309,0,0,0,5691,310,0, 1139P 685 -0; 1139P 686 -508,4,0,5691,311,0,0,0,5691,310,1,0,0,5691,312,0,0,0,5691,278,0, 1141P 687 -0; 1141P 688 -508,4,0,5691,313,0,0,0,5691,314,1,0,0,5691,315,0,0,0,5691,316,0, 1143P 689 -0; 1143P 690 -508,4,0,5691,317,0,0,0,5691,316,1,0,0,5691,318,0,0,0,5691,319,0, 1145P 691 -0; 1145P 692 -508,4,0,5691,320,0,0,0,5691,319,1,0,0,5691,321,0,0,0,5691,322,0, 1147P 693 -0; 1147P 694 -508,4,0,5691,323,0,0,0,5691,322,1,0,0,5691,324,0,0,0,5691,325,0, 1149P 695 -0; 1149P 696 -508,4,0,5691,326,0,0,0,5691,325,1,0,0,5691,327,0,0,0,5691,328,0, 1151P 697 -0; 1151P 698 -508,4,0,5691,329,0,0,0,5691,328,1,0,0,5691,330,0,0,0,5691,331,0, 1153P 699 -0; 1153P 700 -508,4,0,5691,332,0,0,0,5691,331,1,0,0,5691,333,0,0,0,5691,334,0, 1155P 701 -0; 1155P 702 -508,4,0,5691,335,0,0,0,5691,334,1,0,0,5691,336,0,0,0,5691,337,0, 1157P 703 -0; 1157P 704 -508,4,0,5691,338,0,0,0,5691,337,1,0,0,5691,339,0,0,0,5691,340,0, 1159P 705 -0; 1159P 706 -508,4,0,5691,341,0,0,0,5691,340,1,0,0,5691,342,0,0,0,5691,343,0, 1161P 707 -0; 1161P 708 -508,4,0,5691,344,0,0,0,5691,343,1,0,0,5691,345,0,0,0,5691,346,0, 1163P 709 -0; 1163P 710 -508,4,0,5691,347,0,0,0,5691,346,1,0,0,5691,348,0,0,0,5691,314,0, 1165P 711 -0; 1165P 712 -508,4,0,5691,349,0,0,0,5691,350,1,0,0,5691,351,0,0,0,5691,352,0, 1167P 713 -0; 1167P 714 -508,4,0,5691,353,0,0,0,5691,352,1,0,0,5691,354,0,0,0,5691,355,0, 1169P 715 -0; 1169P 716 -508,4,0,5691,356,0,0,0,5691,355,1,0,0,5691,357,0,0,0,5691,358,0, 1171P 717 -0; 1171P 718 -508,4,0,5691,359,0,0,0,5691,358,1,0,0,5691,360,0,0,0,5691,361,0, 1173P 719 -0; 1173P 720 -508,4,0,5691,362,0,0,0,5691,361,1,0,0,5691,363,0,0,0,5691,364,0, 1175P 721 -0; 1175P 722 -508,4,0,5691,365,0,0,0,5691,364,1,0,0,5691,366,0,0,0,5691,367,0, 1177P 723 -0; 1177P 724 -508,4,0,5691,368,0,0,0,5691,367,1,0,0,5691,369,0,0,0,5691,370,0, 1179P 725 -0; 1179P 726 -508,4,0,5691,371,0,0,0,5691,370,1,0,0,5691,372,0,0,0,5691,373,0, 1181P 727 -0; 1181P 728 -508,4,0,5691,374,0,0,0,5691,373,1,0,0,5691,375,0,0,0,5691,376,0, 1183P 729 -0; 1183P 730 -508,4,0,5691,377,0,0,0,5691,376,1,0,0,5691,378,0,0,0,5691,379,0, 1185P 731 -0; 1185P 732 -508,4,0,5691,380,0,0,0,5691,379,1,0,0,5691,381,0,0,0,5691,382,0, 1187P 733 -0; 1187P 734 -508,4,0,5691,383,0,0,0,5691,382,1,0,0,5691,384,0,0,0,5691,350,0, 1189P 735 -0; 1189P 736 -508,4,0,5691,385,0,0,0,5691,386,1,0,0,5691,387,0,0,0,5691,388,0, 1191P 737 -0; 1191P 738 -508,4,0,5691,389,0,0,0,5691,388,1,0,0,5691,390,0,0,0,5691,391,0, 1193P 739 -0; 1193P 740 -508,4,0,5691,392,0,0,0,5691,391,1,0,0,5691,393,0,0,0,5691,394,0, 1195P 741 -0; 1195P 742 -508,4,0,5691,395,0,0,0,5691,394,1,0,0,5691,396,0,0,0,5691,397,0, 1197P 743 -0; 1197P 744 -508,4,0,5691,398,0,0,0,5691,397,1,0,0,5691,399,0,0,0,5691,400,0, 1199P 745 -0; 1199P 746 -508,4,0,5691,401,0,0,0,5691,400,1,0,0,5691,402,0,0,0,5691,403,0, 1201P 747 -0; 1201P 748 -508,4,0,5691,404,0,0,0,5691,403,1,0,0,5691,405,0,0,0,5691,406,0, 1203P 749 -0; 1203P 750 -508,4,0,5691,407,0,0,0,5691,406,1,0,0,5691,408,0,0,0,5691,409,0, 1205P 751 -0; 1205P 752 -508,4,0,5691,410,0,0,0,5691,409,1,0,0,5691,411,0,0,0,5691,412,0, 1207P 753 -0; 1207P 754 -508,4,0,5691,413,0,0,0,5691,412,1,0,0,5691,414,0,0,0,5691,415,0, 1209P 755 -0; 1209P 756 -508,4,0,5691,416,0,0,0,5691,415,1,0,0,5691,417,0,0,0,5691,418,0, 1211P 757 -0; 1211P 758 -508,4,0,5691,419,0,0,0,5691,418,1,0,0,5691,420,0,0,0,5691,386,0, 1213P 759 -0; 1213P 760 -508,4,0,5691,421,0,0,0,5691,422,1,0,0,5691,423,0,0,0,5691,424,0, 1215P 761 -0; 1215P 762 -508,4,0,5691,425,0,0,0,5691,424,1,0,0,5691,426,0,0,0,5691,427,0, 1217P 763 -0; 1217P 764 -508,4,0,5691,428,0,0,0,5691,427,1,0,0,5691,429,0,0,0,5691,430,0, 1219P 765 -0; 1219P 766 -508,4,0,5691,431,0,0,0,5691,430,1,0,0,5691,432,0,0,0,5691,433,0, 1221P 767 -0; 1221P 768 -508,4,0,5691,434,0,0,0,5691,433,1,0,0,5691,435,0,0,0,5691,436,0, 1223P 769 -0; 1223P 770 -508,4,0,5691,437,0,0,0,5691,436,1,0,0,5691,438,0,0,0,5691,439,0, 1225P 771 -0; 1225P 772 -508,4,0,5691,440,0,0,0,5691,439,1,0,0,5691,441,0,0,0,5691,442,0, 1227P 773 -0; 1227P 774 -508,4,0,5691,443,0,0,0,5691,442,1,0,0,5691,444,0,0,0,5691,445,0, 1229P 775 -0; 1229P 776 -508,4,0,5691,446,0,0,0,5691,445,1,0,0,5691,447,0,0,0,5691,448,0, 1231P 777 -0; 1231P 778 -508,4,0,5691,449,0,0,0,5691,448,1,0,0,5691,450,0,0,0,5691,451,0, 1233P 779 -0; 1233P 780 -508,4,0,5691,452,0,0,0,5691,451,1,0,0,5691,453,0,0,0,5691,454,0, 1235P 781 -0; 1235P 782 -508,4,0,5691,455,0,0,0,5691,454,1,0,0,5691,456,0,0,0,5691,422,0, 1237P 783 -0; 1237P 784 -508,4,0,5691,457,0,0,0,5691,458,1,0,0,5691,459,0,0,0,5691,460,0, 1239P 785 -0; 1239P 786 -508,4,0,5691,461,0,0,0,5691,460,1,0,0,5691,462,0,0,0,5691,463,0, 1241P 787 -0; 1241P 788 -508,4,0,5691,464,0,0,0,5691,463,1,0,0,5691,465,0,0,0,5691,466,0, 1243P 789 -0; 1243P 790 -508,4,0,5691,467,0,0,0,5691,466,1,0,0,5691,468,0,0,0,5691,469,0, 1245P 791 -0; 1245P 792 -508,4,0,5691,470,0,0,0,5691,469,1,0,0,5691,471,0,0,0,5691,472,0, 1247P 793 -0; 1247P 794 -508,4,0,5691,473,0,0,0,5691,472,1,0,0,5691,474,0,0,0,5691,475,0, 1249P 795 -0; 1249P 796 -508,4,0,5691,476,0,0,0,5691,475,1,0,0,5691,477,0,0,0,5691,478,0, 1251P 797 -0; 1251P 798 -508,4,0,5691,479,0,0,0,5691,478,1,0,0,5691,480,0,0,0,5691,481,0, 1253P 799 -0; 1253P 800 -508,4,0,5691,482,0,0,0,5691,481,1,0,0,5691,483,0,0,0,5691,484,0, 1255P 801 -0; 1255P 802 -508,4,0,5691,485,0,0,0,5691,484,1,0,0,5691,486,0,0,0,5691,487,0, 1257P 803 -0; 1257P 804 -508,4,0,5691,488,0,0,0,5691,487,1,0,0,5691,489,0,0,0,5691,490,0, 1259P 805 -0; 1259P 806 -508,4,0,5691,491,0,0,0,5691,490,1,0,0,5691,492,0,0,0,5691,458,0, 1261P 807 -0; 1261P 808 -508,4,0,5691,493,0,0,0,5691,494,1,0,0,5691,495,0,0,0,5691,496,0, 1263P 809 -0; 1263P 810 -508,4,0,5691,497,0,0,0,5691,496,1,0,0,5691,498,0,0,0,5691,499,0, 1265P 811 -0; 1265P 812 -508,4,0,5691,500,0,0,0,5691,499,1,0,0,5691,501,0,0,0,5691,502,0, 1267P 813 -0; 1267P 814 -508,4,0,5691,503,0,0,0,5691,502,1,0,0,5691,504,0,0,0,5691,505,0, 1269P 815 -0; 1269P 816 -508,4,0,5691,506,0,0,0,5691,505,1,0,0,5691,507,0,0,0,5691,508,0, 1271P 817 -0; 1271P 818 -508,4,0,5691,509,0,0,0,5691,508,1,0,0,5691,510,0,0,0,5691,511,0, 1273P 819 -0; 1273P 820 -508,4,0,5691,512,0,0,0,5691,511,1,0,0,5691,513,0,0,0,5691,514,0, 1275P 821 -0; 1275P 822 -508,4,0,5691,515,0,0,0,5691,514,1,0,0,5691,516,0,0,0,5691,517,0, 1277P 823 -0; 1277P 824 -508,4,0,5691,518,0,0,0,5691,517,1,0,0,5691,519,0,0,0,5691,520,0, 1279P 825 -0; 1279P 826 -508,4,0,5691,521,0,0,0,5691,520,1,0,0,5691,522,0,0,0,5691,523,0, 1281P 827 -0; 1281P 828 -508,4,0,5691,524,0,0,0,5691,523,1,0,0,5691,525,0,0,0,5691,526,0, 1283P 829 -0; 1283P 830 -508,4,0,5691,527,0,0,0,5691,526,1,0,0,5691,528,0,0,0,5691,494,0, 1285P 831 -0; 1285P 832 -508,4,0,5691,529,0,0,0,5691,530,1,0,0,5691,531,0,0,0,5691,532,0, 1287P 833 -0; 1287P 834 -508,4,0,5691,533,0,0,0,5691,532,1,0,0,5691,534,0,0,0,5691,535,0, 1289P 835 -0; 1289P 836 -508,4,0,5691,536,0,0,0,5691,535,1,0,0,5691,537,0,0,0,5691,538,0, 1291P 837 -0; 1291P 838 -508,4,0,5691,539,0,0,0,5691,538,1,0,0,5691,540,0,0,0,5691,541,0, 1293P 839 -0; 1293P 840 -508,4,0,5691,542,0,0,0,5691,541,1,0,0,5691,543,0,0,0,5691,544,0, 1295P 841 -0; 1295P 842 -508,4,0,5691,545,0,0,0,5691,544,1,0,0,5691,546,0,0,0,5691,547,0, 1297P 843 -0; 1297P 844 -508,4,0,5691,548,0,0,0,5691,547,1,0,0,5691,549,0,0,0,5691,550,0, 1299P 845 -0; 1299P 846 -508,4,0,5691,551,0,0,0,5691,550,1,0,0,5691,552,0,0,0,5691,553,0, 1301P 847 -0; 1301P 848 -508,4,0,5691,554,0,0,0,5691,553,1,0,0,5691,555,0,0,0,5691,556,0, 1303P 849 -0; 1303P 850 -508,4,0,5691,557,0,0,0,5691,556,1,0,0,5691,558,0,0,0,5691,559,0, 1305P 851 -0; 1305P 852 -508,4,0,5691,560,0,0,0,5691,559,1,0,0,5691,561,0,0,0,5691,562,0, 1307P 853 -0; 1307P 854 -508,4,0,5691,563,0,0,0,5691,562,1,0,0,5691,564,0,0,0,5691,530,0, 1309P 855 -0; 1309P 856 -508,4,0,5691,565,0,0,0,5691,566,1,0,0,5691,567,0,0,0,5691,568,0, 1311P 857 -0; 1311P 858 -508,4,0,5691,569,0,0,0,5691,568,1,0,0,5691,570,0,0,0,5691,571,0, 1313P 859 -0; 1313P 860 -508,4,0,5691,572,0,0,0,5691,571,1,0,0,5691,573,0,0,0,5691,574,0, 1315P 861 -0; 1315P 862 -508,4,0,5691,575,0,0,0,5691,574,1,0,0,5691,576,0,0,0,5691,577,0, 1317P 863 -0; 1317P 864 -508,4,0,5691,578,0,0,0,5691,577,1,0,0,5691,579,0,0,0,5691,580,0, 1319P 865 -0; 1319P 866 -508,4,0,5691,581,0,0,0,5691,580,1,0,0,5691,582,0,0,0,5691,583,0, 1321P 867 -0; 1321P 868 -508,4,0,5691,584,0,0,0,5691,583,1,0,0,5691,585,0,0,0,5691,586,0, 1323P 869 -0; 1323P 870 -508,4,0,5691,587,0,0,0,5691,586,1,0,0,5691,588,0,0,0,5691,589,0, 1325P 871 -0; 1325P 872 -508,4,0,5691,590,0,0,0,5691,589,1,0,0,5691,591,0,0,0,5691,592,0, 1327P 873 -0; 1327P 874 -508,4,0,5691,593,0,0,0,5691,592,1,0,0,5691,594,0,0,0,5691,595,0, 1329P 875 -0; 1329P 876 -508,4,0,5691,596,0,0,0,5691,595,1,0,0,5691,597,0,0,0,5691,598,0, 1331P 877 -0; 1331P 878 -508,4,0,5691,599,0,0,0,5691,598,1,0,0,5691,600,0,0,0,5691,566,0, 1333P 879 -0; 1333P 880 -508,4,0,5691,601,0,0,0,5691,602,1,0,0,5691,603,0,0,0,5691,604,0, 1335P 881 -0; 1335P 882 -508,4,0,5691,605,0,0,0,5691,604,1,0,0,5691,606,0,0,0,5691,607,0, 1337P 883 -0; 1337P 884 -508,4,0,5691,608,0,0,0,5691,607,1,0,0,5691,609,0,0,0,5691,610,0, 1339P 885 -0; 1339P 886 -508,4,0,5691,611,0,0,0,5691,610,1,0,0,5691,612,0,0,0,5691,613,0, 1341P 887 -0; 1341P 888 -508,4,0,5691,614,0,0,0,5691,613,1,0,0,5691,615,0,0,0,5691,616,0, 1343P 889 -0; 1343P 890 -508,4,0,5691,617,0,0,0,5691,616,1,0,0,5691,618,0,0,0,5691,619,0, 1345P 891 -0; 1345P 892 -508,4,0,5691,620,0,0,0,5691,619,1,0,0,5691,621,0,0,0,5691,622,0, 1347P 893 -0; 1347P 894 -508,4,0,5691,623,0,0,0,5691,622,1,0,0,5691,624,0,0,0,5691,625,0, 1349P 895 -0; 1349P 896 -508,4,0,5691,626,0,0,0,5691,625,1,0,0,5691,627,0,0,0,5691,628,0, 1351P 897 -0; 1351P 898 -508,4,0,5691,629,0,0,0,5691,628,1,0,0,5691,630,0,0,0,5691,631,0, 1353P 899 -0; 1353P 900 -508,4,0,5691,632,0,0,0,5691,631,1,0,0,5691,633,0,0,0,5691,634,0, 1355P 901 -0; 1355P 902 -508,4,0,5691,635,0,0,0,5691,634,1,0,0,5691,636,0,0,0,5691,602,0, 1357P 903 -0; 1357P 904 -508,4,0,5691,637,0,0,0,5691,638,1,0,0,5691,639,0,0,0,5691,640,0, 1359P 905 -0; 1359P 906 -508,4,0,5691,641,0,0,0,5691,640,1,0,0,5691,642,0,0,0,5691,643,0, 1361P 907 -0; 1361P 908 -508,4,0,5691,644,0,0,0,5691,643,1,0,0,5691,645,0,0,0,5691,646,0, 1363P 909 -0; 1363P 910 -508,4,0,5691,647,0,0,0,5691,646,1,0,0,5691,648,0,0,0,5691,649,0, 1365P 911 -0; 1365P 912 -508,4,0,5691,650,0,0,0,5691,649,1,0,0,5691,651,0,0,0,5691,652,0, 1367P 913 -0; 1367P 914 -508,4,0,5691,653,0,0,0,5691,652,1,0,0,5691,654,0,0,0,5691,655,0, 1369P 915 -0; 1369P 916 -508,4,0,5691,656,0,0,0,5691,655,1,0,0,5691,657,0,0,0,5691,658,0, 1371P 917 -0; 1371P 918 -508,4,0,5691,659,0,0,0,5691,658,1,0,0,5691,660,0,0,0,5691,661,0, 1373P 919 -0; 1373P 920 -508,4,0,5691,662,0,0,0,5691,661,1,0,0,5691,663,0,0,0,5691,664,0, 1375P 921 -0; 1375P 922 -508,4,0,5691,665,0,0,0,5691,664,1,0,0,5691,666,0,0,0,5691,667,0, 1377P 923 -0; 1377P 924 -508,4,0,5691,668,0,0,0,5691,667,1,0,0,5691,669,0,0,0,5691,670,0, 1379P 925 -0; 1379P 926 -508,4,0,5691,671,0,0,0,5691,670,1,0,0,5691,672,0,0,0,5691,638,0, 1381P 927 -0; 1381P 928 -508,4,0,5691,673,0,0,0,5691,674,1,0,0,5691,675,0,0,0,5691,676,0, 1383P 929 -0; 1383P 930 -508,4,0,5691,677,0,0,0,5691,676,1,0,0,5691,678,0,0,0,5691,679,0, 1385P 931 -0; 1385P 932 -508,4,0,5691,680,0,0,0,5691,679,1,0,0,5691,681,0,0,0,5691,682,0, 1387P 933 -0; 1387P 934 -508,4,0,5691,683,0,0,0,5691,682,1,0,0,5691,684,0,0,0,5691,685,0, 1389P 935 -0; 1389P 936 -508,4,0,5691,686,0,0,0,5691,685,1,0,0,5691,687,0,0,0,5691,688,0, 1391P 937 -0; 1391P 938 -508,4,0,5691,689,0,0,0,5691,688,1,0,0,5691,690,0,0,0,5691,691,0, 1393P 939 -0; 1393P 940 -508,4,0,5691,692,0,0,0,5691,691,1,0,0,5691,693,0,0,0,5691,694,0, 1395P 941 -0; 1395P 942 -508,4,0,5691,695,0,0,0,5691,694,1,0,0,5691,696,0,0,0,5691,697,0, 1397P 943 -0; 1397P 944 -508,4,0,5691,698,0,0,0,5691,697,1,0,0,5691,699,0,0,0,5691,700,0, 1399P 945 -0; 1399P 946 -508,4,0,5691,701,0,0,0,5691,700,1,0,0,5691,702,0,0,0,5691,703,0, 1401P 947 -0; 1401P 948 -508,4,0,5691,704,0,0,0,5691,703,1,0,0,5691,705,0,0,0,5691,706,0, 1403P 949 -0; 1403P 950 -508,4,0,5691,707,0,0,0,5691,706,1,0,0,5691,708,0,0,0,5691,674,0, 1405P 951 -0; 1405P 952 -508,4,0,5691,709,0,0,0,5691,710,1,0,0,5691,711,0,0,0,5691,712,0, 1407P 953 -0; 1407P 954 -508,4,0,5691,713,0,0,0,5691,712,1,0,0,5691,714,0,0,0,5691,715,0, 1409P 955 -0; 1409P 956 -508,4,0,5691,716,0,0,0,5691,715,1,0,0,5691,717,0,0,0,5691,718,0, 1411P 957 -0; 1411P 958 -508,4,0,5691,719,0,0,0,5691,718,1,0,0,5691,720,0,0,0,5691,721,0, 1413P 959 -0; 1413P 960 -508,4,0,5691,722,0,0,0,5691,721,1,0,0,5691,723,0,0,0,5691,724,0, 1415P 961 -0; 1415P 962 -508,4,0,5691,725,0,0,0,5691,724,1,0,0,5691,726,0,0,0,5691,727,0, 1417P 963 -0; 1417P 964 -508,4,0,5691,728,0,0,0,5691,727,1,0,0,5691,729,0,0,0,5691,730,0, 1419P 965 -0; 1419P 966 -508,4,0,5691,731,0,0,0,5691,730,1,0,0,5691,732,0,0,0,5691,733,0, 1421P 967 -0; 1421P 968 -508,4,0,5691,734,0,0,0,5691,733,1,0,0,5691,735,0,0,0,5691,736,0, 1423P 969 -0; 1423P 970 -508,4,0,5691,737,0,0,0,5691,736,1,0,0,5691,738,0,0,0,5691,739,0, 1425P 971 -0; 1425P 972 -508,4,0,5691,740,0,0,0,5691,739,1,0,0,5691,741,0,0,0,5691,742,0, 1427P 973 -0; 1427P 974 -508,4,0,5691,743,0,0,0,5691,742,1,0,0,5691,744,0,0,0,5691,710,0, 1429P 975 -0; 1429P 976 -508,4,0,5691,745,0,0,0,5691,746,1,0,0,5691,747,0,0,0,5691,748,0, 1431P 977 -0; 1431P 978 -508,4,0,5691,749,0,0,0,5691,748,1,0,0,5691,750,0,0,0,5691,751,0, 1433P 979 -0; 1433P 980 -508,4,0,5691,752,0,0,0,5691,751,1,0,0,5691,753,0,0,0,5691,754,0, 1435P 981 -0; 1435P 982 -508,4,0,5691,755,0,0,0,5691,754,1,0,0,5691,756,0,0,0,5691,757,0, 1437P 983 -0; 1437P 984 -508,4,0,5691,758,0,0,0,5691,757,1,0,0,5691,759,0,0,0,5691,760,0, 1439P 985 -0; 1439P 986 -508,4,0,5691,761,0,0,0,5691,760,1,0,0,5691,762,0,0,0,5691,763,0, 1441P 987 -0; 1441P 988 -508,4,0,5691,764,0,0,0,5691,763,1,0,0,5691,765,0,0,0,5691,766,0, 1443P 989 -0; 1443P 990 -508,4,0,5691,767,0,0,0,5691,766,1,0,0,5691,768,0,0,0,5691,769,0, 1445P 991 -0; 1445P 992 -508,4,0,5691,770,0,0,0,5691,769,1,0,0,5691,771,0,0,0,5691,772,0, 1447P 993 -0; 1447P 994 -508,4,0,5691,773,0,0,0,5691,772,1,0,0,5691,774,0,0,0,5691,775,0, 1449P 995 -0; 1449P 996 -508,4,0,5691,776,0,0,0,5691,775,1,0,0,5691,777,0,0,0,5691,778,0, 1451P 997 -0; 1451P 998 -508,4,0,5691,779,0,0,0,5691,778,1,0,0,5691,780,0,0,0,5691,746,0, 1453P 999 -0; 1453P 1000 -508,4,0,5691,781,0,0,0,5691,782,1,0,0,5691,783,0,0,0,5691,784,0, 1455P 1001 -0; 1455P 1002 -508,4,0,5691,785,0,0,0,5691,784,1,0,0,5691,786,0,0,0,5691,787,0, 1457P 1003 -0; 1457P 1004 -508,4,0,5691,788,0,0,0,5691,787,1,0,0,5691,789,0,0,0,5691,790,0, 1459P 1005 -0; 1459P 1006 -508,4,0,5691,791,0,0,0,5691,790,1,0,0,5691,792,0,0,0,5691,793,0, 1461P 1007 -0; 1461P 1008 -508,4,0,5691,794,0,0,0,5691,793,1,0,0,5691,795,0,0,0,5691,796,0, 1463P 1009 -0; 1463P 1010 -508,4,0,5691,797,0,0,0,5691,796,1,0,0,5691,798,0,0,0,5691,799,0, 1465P 1011 -0; 1465P 1012 -508,4,0,5691,800,0,0,0,5691,799,1,0,0,5691,801,0,0,0,5691,802,0, 1467P 1013 -0; 1467P 1014 -508,4,0,5691,803,0,0,0,5691,802,1,0,0,5691,804,0,0,0,5691,805,0, 1469P 1015 -0; 1469P 1016 -508,4,0,5691,806,0,0,0,5691,805,1,0,0,5691,807,0,0,0,5691,808,0, 1471P 1017 -0; 1471P 1018 -508,4,0,5691,809,0,0,0,5691,808,1,0,0,5691,810,0,0,0,5691,811,0, 1473P 1019 -0; 1473P 1020 -508,4,0,5691,812,0,0,0,5691,811,1,0,0,5691,813,0,0,0,5691,814,0, 1475P 1021 -0; 1475P 1022 -508,4,0,5691,815,0,0,0,5691,814,1,0,0,5691,816,0,0,0,5691,782,0, 1477P 1023 -0; 1477P 1024 -508,4,0,5691,817,0,0,0,5691,818,1,0,0,5691,819,0,0,0,5691,820,0, 1479P 1025 -0; 1479P 1026 -508,4,0,5691,821,0,0,0,5691,820,1,0,0,5691,822,0,0,0,5691,823,0, 1481P 1027 -0; 1481P 1028 -508,4,0,5691,824,0,0,0,5691,823,1,0,0,5691,825,0,0,0,5691,826,0, 1483P 1029 -0; 1483P 1030 -508,4,0,5691,827,0,0,0,5691,826,1,0,0,5691,828,0,0,0,5691,829,0, 1485P 1031 -0; 1485P 1032 -508,4,0,5691,830,0,0,0,5691,829,1,0,0,5691,831,0,0,0,5691,832,0, 1487P 1033 -0; 1487P 1034 -508,4,0,5691,833,0,0,0,5691,832,1,0,0,5691,834,0,0,0,5691,835,0, 1489P 1035 -0; 1489P 1036 -508,4,0,5691,836,0,0,0,5691,835,1,0,0,5691,837,0,0,0,5691,838,0, 1491P 1037 -0; 1491P 1038 -508,4,0,5691,839,0,0,0,5691,838,1,0,0,5691,840,0,0,0,5691,841,0, 1493P 1039 -0; 1493P 1040 -508,4,0,5691,842,0,0,0,5691,841,1,0,0,5691,843,0,0,0,5691,844,0, 1495P 1041 -0; 1495P 1042 -508,4,0,5691,845,0,0,0,5691,844,1,0,0,5691,846,0,0,0,5691,847,0, 1497P 1043 -0; 1497P 1044 -508,4,0,5691,848,0,0,0,5691,847,1,0,0,5691,849,0,0,0,5691,850,0, 1499P 1045 -0; 1499P 1046 -508,4,0,5691,851,0,0,0,5691,850,1,0,0,5691,852,0,0,0,5691,818,0, 1501P 1047 -0; 1501P 1048 -508,4,0,5691,853,0,0,0,5691,854,1,0,0,5691,855,0,0,0,5691,856,0, 1503P 1049 -0; 1503P 1050 -508,4,0,5691,857,0,0,0,5691,856,1,0,0,5691,858,0,0,0,5691,859,0, 1505P 1051 -0; 1505P 1052 -508,4,0,5691,860,0,0,0,5691,859,1,0,0,5691,861,0,0,0,5691,862,0, 1507P 1053 -0; 1507P 1054 -508,4,0,5691,863,0,0,0,5691,862,1,0,0,5691,864,0,0,0,5691,865,0, 1509P 1055 -0; 1509P 1056 -508,4,0,5691,866,0,0,0,5691,865,1,0,0,5691,867,0,0,0,5691,868,0, 1511P 1057 -0; 1511P 1058 -508,4,0,5691,869,0,0,0,5691,868,1,0,0,5691,870,0,0,0,5691,871,0, 1513P 1059 -0; 1513P 1060 -508,4,0,5691,872,0,0,0,5691,871,1,0,0,5691,873,0,0,0,5691,874,0, 1515P 1061 -0; 1515P 1062 -508,4,0,5691,875,0,0,0,5691,874,1,0,0,5691,876,0,0,0,5691,877,0, 1517P 1063 -0; 1517P 1064 -508,4,0,5691,878,0,0,0,5691,877,1,0,0,5691,879,0,0,0,5691,880,0, 1519P 1065 -0; 1519P 1066 -508,4,0,5691,881,0,0,0,5691,880,1,0,0,5691,882,0,0,0,5691,883,0, 1521P 1067 -0; 1521P 1068 -508,4,0,5691,884,0,0,0,5691,883,1,0,0,5691,885,0,0,0,5691,886,0, 1523P 1069 -0; 1523P 1070 -508,4,0,5691,887,0,0,0,5691,886,1,0,0,5691,888,0,0,0,5691,854,0, 1525P 1071 -0; 1525P 1072 -508,4,0,5691,889,1,0,0,5691,890,1,0,0,5691,891,0,0,0,5691,892,0, 1527P 1073 -0; 1527P 1074 -508,4,0,5691,893,1,0,0,5691,892,1,0,0,5691,894,0,0,0,5691,895,0, 1529P 1075 -0; 1529P 1076 -508,4,0,5691,896,1,0,0,5691,895,1,0,0,5691,897,0,0,0,5691,898,0, 1531P 1077 -0; 1531P 1078 -508,4,0,5691,899,1,0,0,5691,898,1,0,0,5691,900,0,0,0,5691,901,0, 1533P 1079 -0; 1533P 1080 -508,4,0,5691,902,1,0,0,5691,901,1,0,0,5691,903,0,0,0,5691,904,0, 1535P 1081 -0; 1535P 1082 -508,4,0,5691,905,1,0,0,5691,904,1,0,0,5691,906,0,0,0,5691,907,0, 1537P 1083 -0; 1537P 1084 -508,4,0,5691,908,1,0,0,5691,907,1,0,0,5691,909,0,0,0,5691,910,0, 1539P 1085 -0; 1539P 1086 -508,4,0,5691,911,1,0,0,5691,910,1,0,0,5691,912,0,0,0,5691,913,0, 1541P 1087 -0; 1541P 1088 -508,4,0,5691,914,1,0,0,5691,913,1,0,0,5691,915,0,0,0,5691,890,0, 1543P 1089 -0; 1543P 1090 -508,9,0,5691,915,1,0,0,5691,912,1,0,0,5691,909,1,0,0,5691,906,1, 1545P 1091 -0,0,5691,903,1,0,0,5691,900,1,0,0,5691,897,1,0,0,5691,894,1,0,0, 1545P 1092 -5691,891,1,0; 1545P 1093 -508,12,0,5691,888,1,0,0,5691,885,1,0,0,5691,882,1,0,0,5691,879, 1547P 1094 -1,0,0,5691,876,1,0,0,5691,873,1,0,0,5691,870,1,0,0,5691,867,1,0, 1547P 1095 -0,5691,864,1,0,0,5691,861,1,0,0,5691,858,1,0,0,5691,855,1,0; 1547P 1096 -508,12,0,5691,852,1,0,0,5691,849,1,0,0,5691,846,1,0,0,5691,843, 1549P 1097 -1,0,0,5691,840,1,0,0,5691,837,1,0,0,5691,834,1,0,0,5691,831,1,0, 1549P 1098 -0,5691,828,1,0,0,5691,825,1,0,0,5691,822,1,0,0,5691,819,1,0; 1549P 1099 -508,12,0,5691,816,1,0,0,5691,813,1,0,0,5691,810,1,0,0,5691,807, 1551P 1100 -1,0,0,5691,804,1,0,0,5691,801,1,0,0,5691,798,1,0,0,5691,795,1,0, 1551P 1101 -0,5691,792,1,0,0,5691,789,1,0,0,5691,786,1,0,0,5691,783,1,0; 1551P 1102 -508,12,0,5691,780,1,0,0,5691,777,1,0,0,5691,774,1,0,0,5691,771, 1553P 1103 -1,0,0,5691,768,1,0,0,5691,765,1,0,0,5691,762,1,0,0,5691,759,1,0, 1553P 1104 -0,5691,756,1,0,0,5691,753,1,0,0,5691,750,1,0,0,5691,747,1,0; 1553P 1105 -508,12,0,5691,744,1,0,0,5691,741,1,0,0,5691,738,1,0,0,5691,735, 1555P 1106 -1,0,0,5691,732,1,0,0,5691,729,1,0,0,5691,726,1,0,0,5691,723,1,0, 1555P 1107 -0,5691,720,1,0,0,5691,717,1,0,0,5691,714,1,0,0,5691,711,1,0; 1555P 1108 -508,12,0,5691,708,1,0,0,5691,705,1,0,0,5691,702,1,0,0,5691,699, 1557P 1109 -1,0,0,5691,696,1,0,0,5691,693,1,0,0,5691,690,1,0,0,5691,687,1,0, 1557P 1110 -0,5691,684,1,0,0,5691,681,1,0,0,5691,678,1,0,0,5691,675,1,0; 1557P 1111 -508,12,0,5691,672,1,0,0,5691,669,1,0,0,5691,666,1,0,0,5691,663, 1559P 1112 -1,0,0,5691,660,1,0,0,5691,657,1,0,0,5691,654,1,0,0,5691,651,1,0, 1559P 1113 -0,5691,648,1,0,0,5691,645,1,0,0,5691,642,1,0,0,5691,639,1,0; 1559P 1114 -508,12,0,5691,636,1,0,0,5691,633,1,0,0,5691,630,1,0,0,5691,627, 1561P 1115 -1,0,0,5691,624,1,0,0,5691,621,1,0,0,5691,618,1,0,0,5691,615,1,0, 1561P 1116 -0,5691,612,1,0,0,5691,609,1,0,0,5691,606,1,0,0,5691,603,1,0; 1561P 1117 -508,12,0,5691,600,1,0,0,5691,597,1,0,0,5691,594,1,0,0,5691,591, 1563P 1118 -1,0,0,5691,588,1,0,0,5691,585,1,0,0,5691,582,1,0,0,5691,579,1,0, 1563P 1119 -0,5691,576,1,0,0,5691,573,1,0,0,5691,570,1,0,0,5691,567,1,0; 1563P 1120 -508,12,0,5691,564,1,0,0,5691,561,1,0,0,5691,558,1,0,0,5691,555, 1565P 1121 -1,0,0,5691,552,1,0,0,5691,549,1,0,0,5691,546,1,0,0,5691,543,1,0, 1565P 1122 -0,5691,540,1,0,0,5691,537,1,0,0,5691,534,1,0,0,5691,531,1,0; 1565P 1123 -508,12,0,5691,528,1,0,0,5691,525,1,0,0,5691,522,1,0,0,5691,519, 1567P 1124 -1,0,0,5691,516,1,0,0,5691,513,1,0,0,5691,510,1,0,0,5691,507,1,0, 1567P 1125 -0,5691,504,1,0,0,5691,501,1,0,0,5691,498,1,0,0,5691,495,1,0; 1567P 1126 -508,12,0,5691,492,1,0,0,5691,489,1,0,0,5691,486,1,0,0,5691,483, 1569P 1127 -1,0,0,5691,480,1,0,0,5691,477,1,0,0,5691,474,1,0,0,5691,471,1,0, 1569P 1128 -0,5691,468,1,0,0,5691,465,1,0,0,5691,462,1,0,0,5691,459,1,0; 1569P 1129 -508,12,0,5691,456,1,0,0,5691,453,1,0,0,5691,450,1,0,0,5691,447, 1571P 1130 -1,0,0,5691,444,1,0,0,5691,441,1,0,0,5691,438,1,0,0,5691,435,1,0, 1571P 1131 -0,5691,432,1,0,0,5691,429,1,0,0,5691,426,1,0,0,5691,423,1,0; 1571P 1132 -508,12,0,5691,420,1,0,0,5691,417,1,0,0,5691,414,1,0,0,5691,411, 1573P 1133 -1,0,0,5691,408,1,0,0,5691,405,1,0,0,5691,402,1,0,0,5691,399,1,0, 1573P 1134 -0,5691,396,1,0,0,5691,393,1,0,0,5691,390,1,0,0,5691,387,1,0; 1573P 1135 -508,12,0,5691,384,1,0,0,5691,381,1,0,0,5691,378,1,0,0,5691,375, 1575P 1136 -1,0,0,5691,372,1,0,0,5691,369,1,0,0,5691,366,1,0,0,5691,363,1,0, 1575P 1137 -0,5691,360,1,0,0,5691,357,1,0,0,5691,354,1,0,0,5691,351,1,0; 1575P 1138 -508,12,0,5691,348,1,0,0,5691,345,1,0,0,5691,342,1,0,0,5691,339, 1577P 1139 -1,0,0,5691,336,1,0,0,5691,333,1,0,0,5691,330,1,0,0,5691,327,1,0, 1577P 1140 -0,5691,324,1,0,0,5691,321,1,0,0,5691,318,1,0,0,5691,315,1,0; 1577P 1141 -508,12,0,5691,312,1,0,0,5691,309,1,0,0,5691,306,1,0,0,5691,303, 1579P 1142 -1,0,0,5691,300,1,0,0,5691,297,1,0,0,5691,294,1,0,0,5691,291,1,0, 1579P 1143 -0,5691,288,1,0,0,5691,285,1,0,0,5691,282,1,0,0,5691,279,1,0; 1579P 1144 -508,12,0,5691,276,1,0,0,5691,273,1,0,0,5691,270,1,0,0,5691,267, 1581P 1145 -1,0,0,5691,264,1,0,0,5691,261,1,0,0,5691,258,1,0,0,5691,255,1,0, 1581P 1146 -0,5691,252,1,0,0,5691,249,1,0,0,5691,246,1,0,0,5691,243,1,0; 1581P 1147 -508,12,0,5691,240,1,0,0,5691,237,1,0,0,5691,234,1,0,0,5691,231, 1583P 1148 -1,0,0,5691,228,1,0,0,5691,225,1,0,0,5691,222,1,0,0,5691,219,1,0, 1583P 1149 -0,5691,216,1,0,0,5691,213,1,0,0,5691,210,1,0,0,5691,207,1,0; 1583P 1150 -508,12,0,5691,204,1,0,0,5691,201,1,0,0,5691,198,1,0,0,5691,195, 1585P 1151 -1,0,0,5691,192,1,0,0,5691,189,1,0,0,5691,186,1,0,0,5691,183,1,0, 1585P 1152 -0,5691,180,1,0,0,5691,177,1,0,0,5691,174,1,0,0,5691,171,1,0; 1585P 1153 -508,12,0,5691,168,1,0,0,5691,165,1,0,0,5691,162,1,0,0,5691,159, 1587P 1154 -1,0,0,5691,156,1,0,0,5691,153,1,0,0,5691,150,1,0,0,5691,147,1,0, 1587P 1155 -0,5691,144,1,0,0,5691,141,1,0,0,5691,138,1,0,0,5691,135,1,0; 1587P 1156 -508,12,0,5691,132,1,0,0,5691,129,1,0,0,5691,126,1,0,0,5691,123, 1589P 1157 -1,0,0,5691,120,1,0,0,5691,117,1,0,0,5691,114,1,0,0,5691,111,1,0, 1589P 1158 -0,5691,108,1,0,0,5691,105,1,0,0,5691,102,1,0,0,5691,99,1,0; 1589P 1159 -508,12,0,5691,96,1,0,0,5691,93,1,0,0,5691,90,1,0,0,5691,87,1,0, 1591P 1160 -0,5691,84,1,0,0,5691,81,1,0,0,5691,78,1,0,0,5691,75,1,0,0,5691, 1591P 1161 -72,1,0,0,5691,69,1,0,0,5691,66,1,0,0,5691,63,1,0; 1591P 1162 -508,12,0,5691,60,1,0,0,5691,57,1,0,0,5691,54,1,0,0,5691,51,1,0, 1593P 1163 -0,5691,48,1,0,0,5691,45,1,0,0,5691,42,1,0,0,5691,39,1,0,0,5691, 1593P 1164 -36,1,0,0,5691,33,1,0,0,5691,30,1,0,0,5691,27,1,0; 1593P 1165 -508,2,0,5691,24,1,0,0,5691,21,1,0; 1595P 1166 -508,2,0,5691,18,1,0,0,5691,15,1,0; 1597P 1167 -508,2,0,5691,12,1,0,0,5691,9,1,0; 1599P 1168 -508,2,0,5691,6,1,0,0,5691,3,1,0; 1601P 1169 -508,9,0,5691,914,0,0,0,5691,889,0,0,0,5691,893,0,0,0,5691,896,0, 1603P 1170 -0,0,5691,899,0,0,0,5691,902,0,0,0,5691,905,0,0,0,5691,908,0,0,0, 1603P 1171 -5691,911,0,0; 1603P 1172 -508,12,0,5691,887,1,0,0,5691,853,1,0,0,5691,857,1,0,0,5691,860, 1605P 1173 -1,0,0,5691,863,1,0,0,5691,866,1,0,0,5691,869,1,0,0,5691,872,1,0, 1605P 1174 -0,5691,875,1,0,0,5691,878,1,0,0,5691,881,1,0,0,5691,884,1,0; 1605P 1175 -508,12,0,5691,851,1,0,0,5691,817,1,0,0,5691,821,1,0,0,5691,824, 1607P 1176 -1,0,0,5691,827,1,0,0,5691,830,1,0,0,5691,833,1,0,0,5691,836,1,0, 1607P 1177 -0,5691,839,1,0,0,5691,842,1,0,0,5691,845,1,0,0,5691,848,1,0; 1607P 1178 -508,12,0,5691,815,1,0,0,5691,781,1,0,0,5691,785,1,0,0,5691,788, 1609P 1179 -1,0,0,5691,791,1,0,0,5691,794,1,0,0,5691,797,1,0,0,5691,800,1,0, 1609P 1180 -0,5691,803,1,0,0,5691,806,1,0,0,5691,809,1,0,0,5691,812,1,0; 1609P 1181 -508,12,0,5691,779,1,0,0,5691,745,1,0,0,5691,749,1,0,0,5691,752, 1611P 1182 -1,0,0,5691,755,1,0,0,5691,758,1,0,0,5691,761,1,0,0,5691,764,1,0, 1611P 1183 -0,5691,767,1,0,0,5691,770,1,0,0,5691,773,1,0,0,5691,776,1,0; 1611P 1184 -508,12,0,5691,743,1,0,0,5691,709,1,0,0,5691,713,1,0,0,5691,716, 1613P 1185 -1,0,0,5691,719,1,0,0,5691,722,1,0,0,5691,725,1,0,0,5691,728,1,0, 1613P 1186 -0,5691,731,1,0,0,5691,734,1,0,0,5691,737,1,0,0,5691,740,1,0; 1613P 1187 -508,12,0,5691,707,1,0,0,5691,673,1,0,0,5691,677,1,0,0,5691,680, 1615P 1188 -1,0,0,5691,683,1,0,0,5691,686,1,0,0,5691,689,1,0,0,5691,692,1,0, 1615P 1189 -0,5691,695,1,0,0,5691,698,1,0,0,5691,701,1,0,0,5691,704,1,0; 1615P 1190 -508,12,0,5691,671,1,0,0,5691,637,1,0,0,5691,641,1,0,0,5691,644, 1617P 1191 -1,0,0,5691,647,1,0,0,5691,650,1,0,0,5691,653,1,0,0,5691,656,1,0, 1617P 1192 -0,5691,659,1,0,0,5691,662,1,0,0,5691,665,1,0,0,5691,668,1,0; 1617P 1193 -508,12,0,5691,635,1,0,0,5691,601,1,0,0,5691,605,1,0,0,5691,608, 1619P 1194 -1,0,0,5691,611,1,0,0,5691,614,1,0,0,5691,617,1,0,0,5691,620,1,0, 1619P 1195 -0,5691,623,1,0,0,5691,626,1,0,0,5691,629,1,0,0,5691,632,1,0; 1619P 1196 -508,12,0,5691,599,1,0,0,5691,565,1,0,0,5691,569,1,0,0,5691,572, 1621P 1197 -1,0,0,5691,575,1,0,0,5691,578,1,0,0,5691,581,1,0,0,5691,584,1,0, 1621P 1198 -0,5691,587,1,0,0,5691,590,1,0,0,5691,593,1,0,0,5691,596,1,0; 1621P 1199 -508,12,0,5691,563,1,0,0,5691,529,1,0,0,5691,533,1,0,0,5691,536, 1623P 1200 -1,0,0,5691,539,1,0,0,5691,542,1,0,0,5691,545,1,0,0,5691,548,1,0, 1623P 1201 -0,5691,551,1,0,0,5691,554,1,0,0,5691,557,1,0,0,5691,560,1,0; 1623P 1202 -508,12,0,5691,527,1,0,0,5691,493,1,0,0,5691,497,1,0,0,5691,500, 1625P 1203 -1,0,0,5691,503,1,0,0,5691,506,1,0,0,5691,509,1,0,0,5691,512,1,0, 1625P 1204 -0,5691,515,1,0,0,5691,518,1,0,0,5691,521,1,0,0,5691,524,1,0; 1625P 1205 -508,12,0,5691,491,1,0,0,5691,457,1,0,0,5691,461,1,0,0,5691,464, 1627P 1206 -1,0,0,5691,467,1,0,0,5691,470,1,0,0,5691,473,1,0,0,5691,476,1,0, 1627P 1207 -0,5691,479,1,0,0,5691,482,1,0,0,5691,485,1,0,0,5691,488,1,0; 1627P 1208 -508,12,0,5691,455,1,0,0,5691,421,1,0,0,5691,425,1,0,0,5691,428, 1629P 1209 -1,0,0,5691,431,1,0,0,5691,434,1,0,0,5691,437,1,0,0,5691,440,1,0, 1629P 1210 -0,5691,443,1,0,0,5691,446,1,0,0,5691,449,1,0,0,5691,452,1,0; 1629P 1211 -508,12,0,5691,419,1,0,0,5691,385,1,0,0,5691,389,1,0,0,5691,392, 1631P 1212 -1,0,0,5691,395,1,0,0,5691,398,1,0,0,5691,401,1,0,0,5691,404,1,0, 1631P 1213 -0,5691,407,1,0,0,5691,410,1,0,0,5691,413,1,0,0,5691,416,1,0; 1631P 1214 -508,12,0,5691,383,1,0,0,5691,349,1,0,0,5691,353,1,0,0,5691,356, 1633P 1215 -1,0,0,5691,359,1,0,0,5691,362,1,0,0,5691,365,1,0,0,5691,368,1,0, 1633P 1216 -0,5691,371,1,0,0,5691,374,1,0,0,5691,377,1,0,0,5691,380,1,0; 1633P 1217 -508,12,0,5691,347,1,0,0,5691,313,1,0,0,5691,317,1,0,0,5691,320, 1635P 1218 -1,0,0,5691,323,1,0,0,5691,326,1,0,0,5691,329,1,0,0,5691,332,1,0, 1635P 1219 -0,5691,335,1,0,0,5691,338,1,0,0,5691,341,1,0,0,5691,344,1,0; 1635P 1220 -508,12,0,5691,311,1,0,0,5691,277,1,0,0,5691,281,1,0,0,5691,284, 1637P 1221 -1,0,0,5691,287,1,0,0,5691,290,1,0,0,5691,293,1,0,0,5691,296,1,0, 1637P 1222 -0,5691,299,1,0,0,5691,302,1,0,0,5691,305,1,0,0,5691,308,1,0; 1637P 1223 -508,12,0,5691,275,1,0,0,5691,241,1,0,0,5691,245,1,0,0,5691,248, 1639P 1224 -1,0,0,5691,251,1,0,0,5691,254,1,0,0,5691,257,1,0,0,5691,260,1,0, 1639P 1225 -0,5691,263,1,0,0,5691,266,1,0,0,5691,269,1,0,0,5691,272,1,0; 1639P 1226 -508,12,0,5691,239,1,0,0,5691,205,1,0,0,5691,209,1,0,0,5691,212, 1641P 1227 -1,0,0,5691,215,1,0,0,5691,218,1,0,0,5691,221,1,0,0,5691,224,1,0, 1641P 1228 -0,5691,227,1,0,0,5691,230,1,0,0,5691,233,1,0,0,5691,236,1,0; 1641P 1229 -508,12,0,5691,203,1,0,0,5691,169,1,0,0,5691,173,1,0,0,5691,176, 1643P 1230 -1,0,0,5691,179,1,0,0,5691,182,1,0,0,5691,185,1,0,0,5691,188,1,0, 1643P 1231 -0,5691,191,1,0,0,5691,194,1,0,0,5691,197,1,0,0,5691,200,1,0; 1643P 1232 -508,12,0,5691,167,1,0,0,5691,133,1,0,0,5691,137,1,0,0,5691,140, 1645P 1233 -1,0,0,5691,143,1,0,0,5691,146,1,0,0,5691,149,1,0,0,5691,152,1,0, 1645P 1234 -0,5691,155,1,0,0,5691,158,1,0,0,5691,161,1,0,0,5691,164,1,0; 1645P 1235 -508,12,0,5691,131,1,0,0,5691,97,1,0,0,5691,101,1,0,0,5691,104,1, 1647P 1236 -0,0,5691,107,1,0,0,5691,110,1,0,0,5691,113,1,0,0,5691,116,1,0,0, 1647P 1237 -5691,119,1,0,0,5691,122,1,0,0,5691,125,1,0,0,5691,128,1,0; 1647P 1238 -508,12,0,5691,95,1,0,0,5691,61,1,0,0,5691,65,1,0,0,5691,68,1,0, 1649P 1239 -0,5691,71,1,0,0,5691,74,1,0,0,5691,77,1,0,0,5691,80,1,0,0,5691, 1649P 1240 -83,1,0,0,5691,86,1,0,0,5691,89,1,0,0,5691,92,1,0; 1649P 1241 -508,12,0,5691,59,1,0,0,5691,25,1,0,0,5691,29,1,0,0,5691,32,1,0, 1651P 1242 -0,5691,35,1,0,0,5691,38,1,0,0,5691,41,1,0,0,5691,44,1,0,0,5691, 1651P 1243 -47,1,0,0,5691,50,1,0,0,5691,53,1,0,0,5691,56,1,0; 1651P 1244 -508,2,0,5691,23,0,0,0,5691,19,0,0; 1653P 1245 -508,2,0,5691,17,0,0,0,5691,13,0,0; 1655P 1246 -508,2,0,5691,11,0,0,0,5691,7,0,0; 1657P 1247 -508,2,0,5691,5,0,0,0,5691,1,0,0; 1659P 1248 -508,4,0,5693,1,0,0,0,5693,2,1,0,0,5693,3,1,0,0,5693,4,0,0; 1661P 1249 -508,4,0,5693,5,0,0,0,5693,6,1,0,0,5693,7,1,0,0,5693,2,0,0; 1663P 1250 -508,4,0,5693,8,0,0,0,5693,9,1,0,0,5693,10,1,0,0,5693,6,0,0; 1665P 1251 -508,4,0,5693,11,0,0,0,5693,12,1,0,0,5693,13,1,0,0,5693,9,0,0; 1667P 1252 -508,4,0,5693,14,0,0,0,5693,15,1,0,0,5693,16,1,0,0,5693,12,0,0; 1669P 1253 -508,4,0,5693,17,0,0,0,5693,4,1,0,0,5693,18,1,0,0,5693,15,0,0; 1671P 1254 -508,6,0,5693,18,0,0,0,5693,3,0,0,0,5693,7,0,0,0,5693,10,0,0,0, 1673P 1255 -5693,13,0,0,0,5693,16,0,0; 1673P 1256 -508,4,0,5693,19,0,0,0,5693,20,1,0,0,5693,21,0,0,0,5693,22,0,0; 1675P 1257 -508,4,0,5693,23,0,0,0,5693,22,1,0,0,5693,24,0,0,0,5693,20,0,0; 1677P 1258 -508,4,0,5693,25,0,0,0,5693,26,1,0,0,5693,27,0,0,0,5693,28,0,0; 1679P 1259 -508,4,0,5693,29,0,0,0,5693,28,1,0,0,5693,30,0,0,0,5693,26,0,0; 1681P 1260 -508,4,0,5693,31,0,0,0,5693,32,0,0,0,5693,33,1,0,0,5693,34,0,0; 1683P 1261 -508,4,0,5693,35,1,0,0,5693,36,1,0,0,5693,37,1,0,0,5693,38,1,0; 1685P 1262 -508,4,0,5693,39,1,0,0,5693,40,1,0,0,5693,41,0,0,0,5693,42,1,0; 1687P 1263 -508,4,0,5693,43,1,0,0,5693,44,0,0,0,5693,45,1,0,0,5693,46,0,0; 1689P 1264 -508,6,0,5693,47,1,0,0,5693,42,0,0,0,5693,48,0,0,0,5693,31,1,0,0, 1691P 1265 -5693,49,0,0,0,5693,50,0,0; 1691P 1266 -508,4,0,5693,51,1,0,0,5693,38,0,0,0,5693,52,1,0,0,5693,53,0,0; 1693P 1267 -508,4,0,5693,54,1,0,0,5693,55,1,0,0,5693,56,1,0,0,5693,44,1,0; 1695P 1268 -508,4,0,5693,57,1,0,0,5693,58,1,0,0,5693,59,1,0,0,5693,60,1,0; 1697P 1269 -508,4,0,5693,61,1,0,0,5693,62,0,0,0,5693,63,1,0,0,5693,64,0,0; 1699P 1270 -508,4,0,5693,65,1,0,0,5693,66,0,0,0,5693,67,1,0,0,5693,58,0,0; 1701P 1271 -508,4,0,5693,68,0,0,0,5693,69,1,0,0,5693,70,0,0,0,5693,71,0,0; 1703P 1272 -508,4,0,5693,72,0,0,0,5693,71,1,0,0,5693,73,0,0,0,5693,69,0,0; 1705P 1273 -508,4,0,5693,74,0,0,0,5693,75,1,0,0,5693,76,0,0,0,5693,77,0,0; 1707P 1274 -508,4,0,5693,78,0,0,0,5693,77,1,0,0,5693,79,0,0,0,5693,75,0,0; 1709P 1275 -508,4,0,5693,80,0,0,0,5693,81,1,0,0,5693,82,0,0,0,5693,83,0,0; 1711P 1276 -508,4,0,5693,84,0,0,0,5693,83,1,0,0,5693,85,0,0,0,5693,81,0,0; 1713P 1277 -508,4,0,5693,86,0,0,0,5693,87,1,0,0,5693,88,0,0,0,5693,89,0,0; 1715P 1278 -508,4,0,5693,90,0,0,0,5693,89,1,0,0,5693,91,0,0,0,5693,87,0,0; 1717P 1279 -508,4,0,5693,92,0,0,0,5693,93,1,0,0,5693,94,0,0,0,5693,95,0,0; 1719P 1280 -508,7,0,5693,59,0,0,0,5693,67,0,0,0,5693,96,1,0,0,5693,97,1,0,0, 1721P 1281 -5693,98,0,0,0,5693,99,0,0,0,5693,93,0,0; 1721P 1282 -508,20,0,5693,100,0,0,0,5693,101,0,0,0,5693,102,0,0,0,5693,60,0, 1723P 1283 -0,0,5693,92,1,0,0,5693,103,0,0,0,5693,104,1,0,0,5693,105,1,0,0, 1723P 1284 -5693,106,1,0,0,5693,107,0,0,0,5693,108,1,0,0,5693,55,0,0,0,5693, 1723P 1285 -109,0,0,0,5693,110,0,0,0,5693,33,0,0,0,5693,111,0,0,0,5693,40,0, 1723P 1286 -0,0,5693,112,0,0,0,5693,36,0,0,0,5693,113,0,0; 1723P 1287 -508,6,0,5693,1,1,0,0,5693,17,1,0,0,5693,14,1,0,0,5693,11,1,0,0, 1725P 1288 -5693,8,1,0,0,5693,5,1,0; 1725P 1289 -508,2,0,5693,23,1,0,0,5693,19,1,0; 1727P 1290 -508,2,0,5693,29,1,0,0,5693,25,1,0; 1729P 1291 -508,2,0,5693,72,1,0,0,5693,68,1,0; 1731P 1292 -508,2,0,5693,78,1,0,0,5693,74,1,0; 1733P 1293 -508,2,0,5693,84,1,0,0,5693,80,1,0; 1735P 1294 -508,2,0,5693,90,1,0,0,5693,86,1,0; 1737P 1295 -508,4,0,5693,108,0,0,0,5693,114,1,0,0,5693,115,0,0,0,5693,116,0, 1739P 1296 -0; 1739P 1297 -508,7,0,5693,117,0,0,0,5693,118,0,0,0,5693,119,1,0,0,5693,120,1, 1741P 1298 -0,0,5693,121,0,0,0,5693,122,0,0,0,5693,114,0,0; 1741P 1299 -508,4,0,5693,123,0,0,0,5693,120,0,0,0,5693,124,0,0,0,5693,125,1, 1743P 1300 -0; 1743P 1301 -508,4,0,5693,126,0,0,0,5693,97,0,0,0,5693,127,0,0,0,5693,128,1, 1745P 1302 -0; 1745P 1303 -508,12,0,5693,124,1,0,0,5693,119,0,0,0,5693,129,1,0,0,5693,130, 1747P 1304 -0,0,0,5693,127,1,0,0,5693,96,0,0,0,5693,66,1,0,0,5693,131,0,0,0, 1747P 1305 -5693,132,0,0,0,5693,133,1,0,0,5693,46,1,0,0,5693,134,0,0; 1747P 1306 -508,7,0,5693,116,1,0,0,5693,135,0,0,0,5693,136,0,0,0,5693,125,0, 1749P 1307 -0,0,5693,134,1,0,0,5693,45,0,0,0,5693,56,0,0; 1749P 1308 -508,7,0,5693,95,1,0,0,5693,137,0,0,0,5693,138,0,0,0,5693,128,0, 1751P 1309 -0,0,5693,130,1,0,0,5693,139,0,0,0,5693,140,0,0; 1751P 1310 -508,4,0,5693,117,1,0,0,5693,107,1,0,0,5693,141,1,0,0,5693,142,1, 1753P 1311 -0; 1753P 1312 -508,8,0,5693,118,1,0,0,5693,142,0,0,0,5693,143,1,0,0,5693,144,1, 1755P 1313 -0,0,5693,145,1,0,0,5693,146,0,0,0,5693,139,1,0,0,5693,129,0,0; 1755P 1314 -508,4,0,5693,104,0,0,0,5693,147,0,0,0,5693,145,0,0,0,5693,148,0, 1757P 1315 -0; 1757P 1316 -508,4,0,5693,105,0,0,0,5693,148,1,0,0,5693,144,0,0,0,5693,149,0, 1759P 1317 -0; 1759P 1318 -508,4,0,5693,106,0,0,0,5693,149,1,0,0,5693,143,0,0,0,5693,141,0, 1761P 1319 -0; 1761P 1320 -508,4,0,5693,150,1,0,0,5693,64,1,0,0,5693,151,1,0,0,5693,100,1, 1763P 1321 -0; 1763P 1322 -508,4,0,5693,140,1,0,0,5693,146,1,0,0,5693,147,1,0,0,5693,103,1, 1765P 1323 -0; 1765P 1324 -508,4,0,5693,32,1,0,0,5693,48,1,0,0,5693,41,1,0,0,5693,111,1,0; 1767P 1325 -508,6,0,5693,152,0,0,0,5693,153,1,0,0,5693,49,1,0,0,5693,34,1,0, 1769P 1326 -0,5693,110,1,0,0,5693,154,0,0; 1769P 1327 -508,4,0,5693,155,0,0,0,5693,156,1,0,0,5693,50,1,0,0,5693,153,0, 1771P 1328 -0; 1771P 1329 -508,8,0,5693,157,0,0,0,5693,158,1,0,0,5693,52,0,0,0,5693,37,0,0, 1773P 1330 -0,5693,112,1,0,0,5693,39,0,0,0,5693,47,0,0,0,5693,156,0,0; 1773P 1331 -508,4,0,5693,159,0,0,0,5693,160,1,0,0,5693,53,1,0,0,5693,158,0, 1775P 1332 -0; 1775P 1333 -508,8,0,5693,161,0,0,0,5693,162,1,0,0,5693,61,0,0,0,5693,150,0, 1777P 1334 -0,0,5693,113,1,0,0,5693,35,0,0,0,5693,51,0,0,0,5693,160,0,0; 1777P 1335 -508,4,0,5693,163,0,0,0,5693,164,1,0,0,5693,62,1,0,0,5693,162,0, 1779P 1336 -0; 1779P 1337 -508,9,0,5693,165,0,0,0,5693,131,1,0,0,5693,65,0,0,0,5693,57,0,0, 1781P 1338 -0,5693,102,1,0,0,5693,101,1,0,0,5693,151,0,0,0,5693,63,0,0,0, 1781P 1339 -5693,164,0,0; 1781P 1340 -508,6,0,5693,166,0,0,0,5693,154,1,0,0,5693,109,1,0,0,5693,54,0, 1783P 1341 -0,0,5693,43,0,0,0,5693,133,0,0; 1783P 1342 -508,9,0,5693,167,1,0,0,5693,168,1,0,0,5693,169,1,0,0,5693,170,1, 1785P 1343 -0,0,5693,171,1,0,0,5693,172,1,0,0,5693,173,1,0,0,5693,174,1,0,0, 1785P 1344 -5693,175,1,0; 1785P 1345 -508,9,0,5693,152,1,0,0,5693,166,1,0,0,5693,132,1,0,0,5693,165,1, 1787P 1346 -0,0,5693,163,1,0,0,5693,161,1,0,0,5693,159,1,0,0,5693,157,1,0,0, 1787P 1347 -5693,155,1,0; 1787P 1348 -508,4,0,5693,168,0,0,0,5693,176,1,0,0,5693,177,0,0,0,5693,178,0, 1789P 1349 -0; 1789P 1350 -508,4,0,5693,169,0,0,0,5693,178,1,0,0,5693,179,0,0,0,5693,180,0, 1791P 1351 -0; 1791P 1352 -508,4,0,5693,170,0,0,0,5693,180,1,0,0,5693,181,0,0,0,5693,182,0, 1793P 1353 -0; 1793P 1354 -508,4,0,5693,171,0,0,0,5693,182,1,0,0,5693,183,0,0,0,5693,184,0, 1795P 1355 -0; 1795P 1356 -508,4,0,5693,172,0,0,0,5693,184,1,0,0,5693,185,0,0,0,5693,186,0, 1797P 1357 -0; 1797P 1358 -508,4,0,5693,173,0,0,0,5693,186,1,0,0,5693,187,0,0,0,5693,188,0, 1799P 1359 -0; 1799P 1360 -508,4,0,5693,174,0,0,0,5693,188,1,0,0,5693,189,0,0,0,5693,190,0, 1801P 1361 -0; 1801P 1362 -508,12,0,5693,98,1,0,0,5693,126,1,0,0,5693,138,1,0,0,5693,191,0, 1803P 1363 -0,0,5693,121,1,0,0,5693,123,1,0,0,5693,136,1,0,0,5693,192,0,0,0, 1803P 1364 -5693,193,0,0,0,5693,175,0,0,0,5693,190,1,0,0,5693,194,0,0; 1803P 1365 -508,4,0,5693,167,0,0,0,5693,193,1,0,0,5693,195,0,0,0,5693,176,0, 1805P 1366 -0; 1805P 1367 -508,17,0,5693,99,1,0,0,5693,194,1,0,0,5693,189,1,0,0,5693,187,1, 1807P 1368 -0,0,5693,185,1,0,0,5693,183,1,0,0,5693,181,1,0,0,5693,179,1,0,0, 1807P 1369 -5693,177,1,0,0,5693,195,1,0,0,5693,192,1,0,0,5693,135,1,0,0, 1807P 1370 -5693,115,1,0,0,5693,122,1,0,0,5693,191,1,0,0,5693,137,1,0,0, 1807P 1371 -5693,94,1,0; 1807P 1372 -508,2,0,5693,24,1,0,0,5693,21,1,0; 1809P 1373 -508,2,0,5693,30,1,0,0,5693,27,1,0; 1811P 1374 -508,2,0,5693,73,1,0,0,5693,70,1,0; 1813P 1375 -508,2,0,5693,79,1,0,0,5693,76,1,0; 1815P 1376 -508,2,0,5693,85,1,0,0,5693,82,1,0; 1817P 1377 -508,2,0,5693,91,1,0,0,5693,88,1,0; 1819P 1378 -508,4,0,5695,1,1,0,0,5695,2,1,0,0,5695,3,1,0,0,5695,4,1,0; 1821P 1379 -508,8,0,5695,5,1,0,0,5695,6,0,0,0,5695,7,1,0,0,5695,8,0,0,0, 1823P 1380 -5695,9,1,0,0,5695,10,1,0,0,5695,11,1,0,0,5695,2,0,0; 1823P 1381 -508,12,0,5695,12,1,0,0,5695,13,0,0,0,5695,14,1,0,0,5695,15,0,0, 1825P 1382 -0,5695,16,0,0,0,5695,17,1,0,0,5695,18,1,0,0,5695,19,0,0,0,5695, 1825P 1383 -20,1,0,0,5695,21,0,0,0,5695,6,1,0,0,5695,22,0,0; 1825P 1384 -508,7,0,5695,23,0,0,0,5695,24,0,0,0,5695,25,1,0,0,5695,19,1,0,0, 1827P 1385 -5695,26,0,0,0,5695,27,0,0,0,5695,28,0,0; 1827P 1386 -508,7,0,5695,29,0,0,0,5695,30,0,0,0,5695,31,1,0,0,5695,22,1,0,0, 1829P 1387 -5695,5,0,0,0,5695,1,0,0,0,5695,32,0,0; 1829P 1388 -508,4,0,5695,27,1,0,0,5695,33,1,0,0,5695,34,1,0,0,5695,35,1,0; 1831P 1389 -508,12,0,5695,36,1,0,0,5695,24,1,0,0,5695,37,0,0,0,5695,38,0,0, 1833P 1390 -0,5695,39,0,0,0,5695,40,1,0,0,5695,41,0,0,0,5695,42,1,0,0,5695, 1833P 1391 -43,1,0,0,5695,30,1,0,0,5695,44,0,0,0,5695,45,1,0; 1833P 1392 -508,17,0,5695,23,1,0,0,5695,46,1,0,0,5695,47,1,0,0,5695,44,1,0, 1835P 1393 -0,5695,29,1,0,0,5695,48,1,0,0,5695,49,1,0,0,5695,41,1,0,0,5695, 1835P 1394 -50,1,0,0,5695,51,1,0,0,5695,52,1,0,0,5695,53,1,0,0,5695,54,1,0, 1835P 1395 -0,5695,55,1,0,0,5695,56,1,0,0,5695,57,1,0,0,5695,37,1,0; 1835P 1396 -508,2,0,5695,58,1,0,0,5695,59,1,0; 1837P 1397 -508,2,0,5695,60,1,0,0,5695,61,1,0; 1839P 1398 -508,2,0,5695,62,1,0,0,5695,63,1,0; 1841P 1399 -508,2,0,5695,64,1,0,0,5695,65,1,0; 1843P 1400 -508,2,0,5695,66,1,0,0,5695,67,1,0; 1845P 1401 -508,2,0,5695,68,1,0,0,5695,69,1,0; 1847P 1402 -508,4,0,5695,70,0,0,0,5695,71,1,0,0,5695,72,1,0,0,5695,73,0,0; 1849P 1403 -508,4,0,5695,74,0,0,0,5695,75,1,0,0,5695,76,1,0,0,5695,71,0,0; 1851P 1404 -508,4,0,5695,77,0,0,0,5695,78,1,0,0,5695,79,1,0,0,5695,75,0,0; 1853P 1405 -508,4,0,5695,80,0,0,0,5695,81,1,0,0,5695,82,1,0,0,5695,78,0,0; 1855P 1406 -508,4,0,5695,83,0,0,0,5695,84,1,0,0,5695,85,1,0,0,5695,81,0,0; 1857P 1407 -508,4,0,5695,86,0,0,0,5695,87,1,0,0,5695,88,1,0,0,5695,84,0,0; 1859P 1408 -508,4,0,5695,89,0,0,0,5695,90,1,0,0,5695,91,1,0,0,5695,87,0,0; 1861P 1409 -508,4,0,5695,92,0,0,0,5695,93,1,0,0,5695,94,1,0,0,5695,90,0,0; 1863P 1410 -508,4,0,5695,95,0,0,0,5695,73,1,0,0,5695,96,1,0,0,5695,93,0,0; 1865P 1411 -508,4,0,5695,97,0,0,0,5695,98,1,0,0,5695,99,1,0,0,5695,100,0,0; 1867P 1412 -508,4,0,5695,101,0,0,0,5695,102,1,0,0,5695,103,1,0,0,5695,98,0, 1869P 1413 -0; 1869P 1414 -508,4,0,5695,104,0,0,0,5695,105,1,0,0,5695,106,1,0,0,5695,102,0, 1871P 1415 -0; 1871P 1416 -508,4,0,5695,107,0,0,0,5695,108,1,0,0,5695,109,1,0,0,5695,105,0, 1873P 1417 -0; 1873P 1418 -508,4,0,5695,110,0,0,0,5695,111,1,0,0,5695,112,1,0,0,5695,108,0, 1875P 1419 -0; 1875P 1420 -508,4,0,5695,113,0,0,0,5695,114,1,0,0,5695,115,1,0,0,5695,111,0, 1877P 1421 -0; 1877P 1422 -508,4,0,5695,116,0,0,0,5695,117,1,0,0,5695,118,1,0,0,5695,114,0, 1879P 1423 -0; 1879P 1424 -508,4,0,5695,119,0,0,0,5695,120,1,0,0,5695,121,1,0,0,5695,117,0, 1881P 1425 -0; 1881P 1426 -508,4,0,5695,122,0,0,0,5695,123,1,0,0,5695,124,1,0,0,5695,120,0, 1883P 1427 -0; 1883P 1428 -508,4,0,5695,125,0,0,0,5695,126,1,0,0,5695,127,1,0,0,5695,123,0, 1885P 1429 -0; 1885P 1430 -508,4,0,5695,128,0,0,0,5695,129,1,0,0,5695,130,1,0,0,5695,126,0, 1887P 1431 -0; 1887P 1432 -508,4,0,5695,131,0,0,0,5695,132,1,0,0,5695,133,1,0,0,5695,129,0, 1889P 1433 -0; 1889P 1434 -508,4,0,5695,134,0,0,0,5695,135,1,0,0,5695,136,1,0,0,5695,132,0, 1891P 1435 -0; 1891P 1436 -508,4,0,5695,137,0,0,0,5695,138,1,0,0,5695,139,1,0,0,5695,135,0, 1893P 1437 -0; 1893P 1438 -508,4,0,5695,140,0,0,0,5695,141,1,0,0,5695,142,1,0,0,5695,138,0, 1895P 1439 -0; 1895P 1440 -508,4,0,5695,143,0,0,0,5695,144,1,0,0,5695,145,1,0,0,5695,141,0, 1897P 1441 -0; 1897P 1442 -508,4,0,5695,146,0,0,0,5695,147,1,0,0,5695,148,1,0,0,5695,144,0, 1899P 1443 -0; 1899P 1444 -508,4,0,5695,149,0,0,0,5695,100,1,0,0,5695,150,1,0,0,5695,147,0, 1901P 1445 -0; 1901P 1446 -508,18,0,5695,150,0,0,0,5695,99,0,0,0,5695,103,0,0,0,5695,106,0, 1903P 1447 -0,0,5695,109,0,0,0,5695,112,0,0,0,5695,115,0,0,0,5695,118,0,0,0, 1903P 1448 -5695,121,0,0,0,5695,124,0,0,0,5695,127,0,0,0,5695,130,0,0,0, 1903P 1449 -5695,133,0,0,0,5695,136,0,0,0,5695,139,0,0,0,5695,142,0,0,0, 1903P 1450 -5695,145,0,0,0,5695,148,0,0; 1903P 1451 -508,9,0,5695,96,0,0,0,5695,72,0,0,0,5695,76,0,0,0,5695,79,0,0,0, 1905P 1452 -5695,82,0,0,0,5695,85,0,0,0,5695,88,0,0,0,5695,91,0,0,0,5695,94, 1905P 1453 -0,0; 1905P 1454 -508,20,0,5695,151,0,0,0,5695,152,0,0,0,5695,153,0,0,0,5695,154, 1907P 1455 -0,0,0,5695,155,1,0,0,5695,4,0,0,0,5695,156,1,0,0,5695,157,1,0,0, 1907P 1456 -5695,158,1,0,0,5695,159,0,0,0,5695,160,1,0,0,5695,35,0,0,0,5695, 1907P 1457 -161,0,0,0,5695,162,0,0,0,5695,163,0,0,0,5695,164,0,0,0,5695,165, 1907P 1458 -0,0,0,5695,166,0,0,0,5695,167,0,0,0,5695,168,0,0; 1907P 1459 -508,2,0,5695,169,1,0,0,5695,170,1,0; 1909P 1460 -508,2,0,5695,171,1,0,0,5695,172,1,0; 1911P 1461 -508,2,0,5695,173,1,0,0,5695,174,1,0; 1913P 1462 -508,2,0,5695,175,1,0,0,5695,176,1,0; 1915P 1463 -508,2,0,5695,177,1,0,0,5695,178,1,0; 1917P 1464 -508,2,0,5695,179,1,0,0,5695,180,1,0; 1919P 1465 -508,18,0,5695,97,1,0,0,5695,149,1,0,0,5695,146,1,0,0,5695,143,1, 1921P 1466 -0,0,5695,140,1,0,0,5695,137,1,0,0,5695,134,1,0,0,5695,131,1,0,0, 1921P 1467 -5695,128,1,0,0,5695,125,1,0,0,5695,122,1,0,0,5695,119,1,0,0, 1921P 1468 -5695,116,1,0,0,5695,113,1,0,0,5695,110,1,0,0,5695,107,1,0,0, 1921P 1469 -5695,104,1,0,0,5695,101,1,0; 1921P 1470 -508,4,0,5695,180,0,0,0,5695,181,1,0,0,5695,69,0,0,0,5695,182,0, 1923P 1471 -0; 1923P 1472 -508,4,0,5695,179,0,0,0,5695,182,1,0,0,5695,68,0,0,0,5695,181,0, 1925P 1473 -0; 1925P 1474 -508,4,0,5695,178,0,0,0,5695,183,1,0,0,5695,67,0,0,0,5695,184,0, 1927P 1475 -0; 1927P 1476 -508,4,0,5695,177,0,0,0,5695,184,1,0,0,5695,66,0,0,0,5695,183,0, 1929P 1477 -0; 1929P 1478 -508,4,0,5695,185,0,0,0,5695,186,0,0,0,5695,163,1,0,0,5695,187,0, 1931P 1479 -0; 1931P 1480 -508,4,0,5695,188,1,0,0,5695,167,1,0,0,5695,189,1,0,0,5695,190,1, 1933P 1481 -0; 1933P 1482 -508,4,0,5695,191,1,0,0,5695,165,1,0,0,5695,192,0,0,0,5695,193,1, 1935P 1483 -0; 1935P 1484 -508,4,0,5695,26,1,0,0,5695,18,0,0,0,5695,194,1,0,0,5695,33,0,0; 1937P 1485 -508,6,0,5695,195,1,0,0,5695,193,0,0,0,5695,196,0,0,0,5695,185,1, 1939P 1486 -0,0,5695,197,0,0,0,5695,198,0,0; 1939P 1487 -508,4,0,5695,199,1,0,0,5695,190,0,0,0,5695,200,1,0,0,5695,201,0, 1941P 1488 -0; 1941P 1489 -508,4,0,5695,202,1,0,0,5695,203,1,0,0,5695,204,1,0,0,5695,154,1, 1943P 1490 -0; 1943P 1491 -508,4,0,5695,205,1,0,0,5695,206,0,0,0,5695,207,1,0,0,5695,208,0, 1945P 1492 -0; 1945P 1493 -508,4,0,5695,209,1,0,0,5695,14,0,0,0,5695,210,1,0,0,5695,203,0, 1947P 1494 -0; 1947P 1495 -508,4,0,5695,176,0,0,0,5695,211,1,0,0,5695,65,0,0,0,5695,212,0, 1949P 1496 -0; 1949P 1497 -508,4,0,5695,175,0,0,0,5695,212,1,0,0,5695,64,0,0,0,5695,211,0, 1951P 1498 -0; 1951P 1499 -508,4,0,5695,174,0,0,0,5695,213,1,0,0,5695,63,0,0,0,5695,214,0, 1953P 1500 -0; 1953P 1501 -508,4,0,5695,173,0,0,0,5695,214,1,0,0,5695,62,0,0,0,5695,213,0, 1955P 1502 -0; 1955P 1503 -508,4,0,5695,172,0,0,0,5695,215,1,0,0,5695,61,0,0,0,5695,216,0, 1957P 1504 -0; 1957P 1505 -508,4,0,5695,171,0,0,0,5695,216,1,0,0,5695,60,0,0,0,5695,215,0, 1959P 1506 -0; 1959P 1507 -508,4,0,5695,170,0,0,0,5695,217,1,0,0,5695,59,0,0,0,5695,218,0, 1961P 1508 -0; 1961P 1509 -508,4,0,5695,169,0,0,0,5695,218,1,0,0,5695,58,0,0,0,5695,217,0, 1963P 1510 -0; 1963P 1511 -508,4,0,5695,155,0,0,0,5695,219,1,0,0,5695,48,0,0,0,5695,32,1,0; 1965P 1512 -508,7,0,5695,204,0,0,0,5695,210,0,0,0,5695,13,1,0,0,5695,220,1, 1967P 1513 -0,0,5695,42,0,0,0,5695,49,0,0,0,5695,219,0,0; 1967P 1514 -508,9,0,5695,70,1,0,0,5695,95,1,0,0,5695,92,1,0,0,5695,89,1,0,0, 1969P 1515 -5695,86,1,0,0,5695,83,1,0,0,5695,80,1,0,0,5695,77,1,0,0,5695,74, 1969P 1516 -1,0; 1969P 1517 -508,4,0,5695,160,0,0,0,5695,221,1,0,0,5695,46,0,0,0,5695,28,1,0; 1971P 1518 -508,7,0,5695,222,0,0,0,5695,7,0,0,0,5695,21,1,0,0,5695,223,1,0, 1973P 1519 -0,5695,45,0,0,0,5695,47,0,0,0,5695,221,0,0; 1973P 1520 -508,4,0,5695,20,0,0,0,5695,25,0,0,0,5695,36,0,0,0,5695,223,0,0; 1975P 1521 -508,4,0,5695,12,0,0,0,5695,31,0,0,0,5695,43,0,0,0,5695,220,0,0; 1977P 1522 -508,4,0,5695,222,1,0,0,5695,159,1,0,0,5695,224,1,0,0,5695,8,1,0; 1979P 1523 -508,4,0,5695,156,0,0,0,5695,3,0,0,0,5695,11,0,0,0,5695,225,0,0; 1981P 1524 -508,4,0,5695,157,0,0,0,5695,225,1,0,0,5695,10,0,0,0,5695,226,0, 1983P 1525 -0; 1983P 1526 -508,4,0,5695,158,0,0,0,5695,226,1,0,0,5695,9,0,0,0,5695,224,0,0; 1985P 1527 -508,4,0,5695,227,1,0,0,5695,208,1,0,0,5695,228,1,0,0,5695,151,1, 1987P 1528 -0; 1987P 1529 -508,4,0,5695,186,1,0,0,5695,196,1,0,0,5695,192,1,0,0,5695,164,1, 1989P 1530 -0; 1989P 1531 -508,6,0,5695,229,0,0,0,5695,230,1,0,0,5695,197,1,0,0,5695,187,1, 1991P 1532 -0,0,5695,162,1,0,0,5695,231,0,0; 1991P 1533 -508,4,0,5695,232,0,0,0,5695,233,1,0,0,5695,198,1,0,0,5695,230,0, 1993P 1534 -0; 1993P 1535 -508,8,0,5695,234,0,0,0,5695,235,1,0,0,5695,200,0,0,0,5695,189,0, 1995P 1536 -0,0,5695,166,1,0,0,5695,191,0,0,0,5695,195,0,0,0,5695,233,0,0; 1995P 1537 -508,4,0,5695,236,0,0,0,5695,237,1,0,0,5695,201,1,0,0,5695,235,0, 1997P 1538 -0; 1997P 1539 -508,8,0,5695,238,0,0,0,5695,239,1,0,0,5695,205,0,0,0,5695,227,0, 1999P 1540 -0,0,5695,168,1,0,0,5695,188,0,0,0,5695,199,0,0,0,5695,237,0,0; 1999P 1541 -508,4,0,5695,240,0,0,0,5695,241,1,0,0,5695,206,1,0,0,5695,239,0, 2001P 1542 -0; 2001P 1543 -508,9,0,5695,242,0,0,0,5695,15,1,0,0,5695,209,0,0,0,5695,202,0, 2003P 1544 -0,0,5695,153,1,0,0,5695,152,1,0,0,5695,228,0,0,0,5695,207,0,0,0, 2003P 1545 -5695,241,0,0; 2003P 1546 -508,6,0,5695,243,0,0,0,5695,231,1,0,0,5695,161,1,0,0,5695,34,0, 2005P 1547 -0,0,5695,194,0,0,0,5695,17,0,0; 2005P 1548 -508,9,0,5695,244,1,0,0,5695,245,1,0,0,5695,246,1,0,0,5695,247,1, 2007P 1549 -0,0,5695,248,1,0,0,5695,249,1,0,0,5695,250,1,0,0,5695,251,1,0,0, 2007P 1550 -5695,39,1,0; 2007P 1551 -508,9,0,5695,229,1,0,0,5695,243,1,0,0,5695,16,1,0,0,5695,242,1, 2009P 1552 -0,0,5695,240,1,0,0,5695,238,1,0,0,5695,236,1,0,0,5695,234,1,0,0, 2009P 1553 -5695,232,1,0; 2009P 1554 -508,4,0,5695,245,0,0,0,5695,252,1,0,0,5695,56,0,0,0,5695,253,0, 2011P 1555 -0; 2011P 1556 -508,4,0,5695,246,0,0,0,5695,253,1,0,0,5695,55,0,0,0,5695,254,0, 2013P 1557 -0; 2013P 1558 -508,4,0,5695,247,0,0,0,5695,254,1,0,0,5695,54,0,0,0,5695,255,0, 2015P 1559 -0; 2015P 1560 -508,4,0,5695,248,0,0,0,5695,255,1,0,0,5695,53,0,0,0,5695,256,0, 2017P 1561 -0; 2017P 1562 -508,4,0,5695,249,0,0,0,5695,256,1,0,0,5695,52,0,0,0,5695,257,0, 2019P 1563 -0; 2019P 1564 -508,4,0,5695,250,0,0,0,5695,257,1,0,0,5695,51,0,0,0,5695,258,0, 2021P 1565 -0; 2021P 1566 -508,4,0,5695,251,0,0,0,5695,258,1,0,0,5695,50,0,0,0,5695,40,0,0; 2023P 1567 -508,4,0,5695,244,0,0,0,5695,38,1,0,0,5695,57,0,0,0,5695,252,0,0; 2025P 1568 -126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2027P 1569 --6.28326580027829,-5.23526324929942,-5.23526324929942, 2027P 1570 --4.18726069832056,-4.18726069832056,-3.1392581473417, 2027P 1571 --3.1392581473417,-3.1392581473417,1.,0.865824083693573,1., 2027P 1572 -0.865824083693555,1.,0.865824083693611,1.,139.68226259674, 2027P 1573 --80.5980231141957,8.73624999999999,139.683239604231, 2027P 1574 --79.7889073538704,8.73624999999999,138.982687181724, 2027P 1575 --79.3840671737141,8.73624999999999,138.282134759216, 2027P 1576 --78.9792269935579,8.73624999999999,137.581582336708, 2027P 1577 --79.3840671737141,8.73624999999999,136.8810299142, 2027P 1578 --79.7889073538704,8.73624999999999,136.882006921691, 2027P 1579 --80.5980231141957,8.73624999999999,-6.28326580027829, 2027P 1580 --3.1392581473417,0.,0.,0.; 2027P 1581 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2029P 1582 -136.882006921691,-80.5980231141957,8.73624999999999, 2029P 1583 -136.882006921691,-80.5980231141957,7.11812499999999,0., 2029P 1584 -0.1618125,0.,0.,0.; 2029P 1585 -126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2031P 1586 --6.28326580027829,-5.23526324929942,-5.23526324929942, 2031P 1587 --4.18726069832056,-4.18726069832056,-3.1392581473417, 2031P 1588 --3.1392581473417,-3.1392581473417,1.,0.865824083693573,1., 2031P 1589 -0.865824083693555,1.,0.865824083693611,1.,139.68226259674, 2031P 1590 --80.5980231141957,7.11812499999999,139.683239604231, 2031P 1591 --79.7889073538704,7.11812499999999,138.982687181724, 2031P 1592 --79.3840671737141,7.11812499999999,138.282134759216, 2031P 1593 --78.9792269935579,7.11812499999999,137.581582336708, 2031P 1594 --79.3840671737141,7.11812499999999,136.8810299142, 2031P 1595 --79.7889073538704,7.11812499999999,136.882006921691, 2031P 1596 --80.5980231141957,7.11812499999999,-6.28326580027829, 2031P 1597 --3.1392581473417,0.,0.,0.; 2031P 1598 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1.,139.68226259674, 2033P 1599 --80.5980231141957,8.73624999999999,139.68226259674, 2033P 1600 --80.5980231141957,7.11812499999999,0.,0.1618125,0.,0.,0.; 2033P 1601 -126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2035P 1602 --6.28326580027831,-5.23526324929943,-5.23526324929943, 2035P 1603 --4.18726069832055,-4.18726069832055,-3.13925814734167, 2035P 1604 --3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2035P 1605 -0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2035P 1606 --80.5980231141957,8.73624999999999,136.8810299142, 2035P 1607 --81.4071388745211,8.73624999999999,137.581582336708, 2035P 1608 --81.8119790546774,8.73624999999999,138.282134759216, 2035P 1609 --82.2168192348336,8.73624999999999,138.982687181724, 2035P 1610 --81.8119790546774,8.73624999999999,139.683239604231, 2035P 1611 --81.4071388745211,8.73624999999999,139.68226259674, 2035P 1612 --80.5980231141957,8.73624999999999,-6.28326580027831, 2035P 1613 --3.13925814734167,0.,0.,0.; 2035P 1614 -126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2037P 1615 --6.28326580027831,-5.23526324929943,-5.23526324929943, 2037P 1616 --4.18726069832055,-4.18726069832055,-3.13925814734167, 2037P 1617 --3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2037P 1618 -0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2037P 1619 --80.5980231141957,7.11812499999999,136.8810299142, 2037P 1620 --81.4071388745211,7.11812499999999,137.581582336708, 2037P 1621 --81.8119790546774,7.11812499999999,138.282134759216, 2037P 1622 --82.2168192348336,7.11812499999999,138.982687181724, 2037P 1623 --81.8119790546774,7.11812499999999,139.683239604231, 2037P 1624 --81.4071388745211,7.11812499999999,139.68226259674, 2037P 1625 --80.5980231141957,7.11812499999999,-6.28326580027831, 2037P 1626 --3.13925814734167,0.,0.,0.; 2037P 1627 -126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2039P 1628 --6.28326580027829,-5.23526324929942,-5.23526324929942, 2039P 1629 --4.18726069832056,-4.18726069832056,-3.1392581473417, 2039P 1630 --3.1392581473417,-3.1392581473417,1.,0.86582408369359,1., 2039P 1631 -0.865824083693519,1.,0.865824083693555,1.,139.68226259674, 2039P 1632 --118.69865621105,8.73624999999999,139.683239604231, 2039P 1633 --117.889540450724,8.73624999999999,138.982687181724, 2039P 1634 --117.484700270568,8.73624999999999,138.282134759216, 2039P 1635 --117.079860090412,8.73624999999999,137.581582336708, 2039P 1636 --117.484700270568,8.73624999999999,136.8810299142, 2039P 1637 --117.889540450724,8.73624999999999,136.882006921691, 2039P 1638 --118.69865621105,8.73624999999999,-6.28326580027829, 2039P 1639 --3.1392581473417,0.,0.,0.; 2039P 1640 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2041P 1641 -136.882006921691,-118.69865621105,8.73624999999999, 2041P 1642 -136.882006921691,-118.69865621105,7.11812499999999,0.,0.1618125, 2041P 1643 -0.,0.,0.; 2041P 1644 -126,6,2,0,0,0,0,-6.28326580027829,-6.28326580027829, 2043P 1645 --6.28326580027829,-5.23526324929942,-5.23526324929942, 2043P 1646 --4.18726069832056,-4.18726069832056,-3.1392581473417, 2043P 1647 --3.1392581473417,-3.1392581473417,1.,0.86582408369359,1., 2043P 1648 -0.865824083693519,1.,0.865824083693555,1.,139.68226259674, 2043P 1649 --118.69865621105,7.11812499999999,139.683239604231, 2043P 1650 --117.889540450724,7.11812499999999,138.982687181724, 2043P 1651 --117.484700270568,7.11812499999999,138.282134759216, 2043P 1652 --117.079860090412,7.11812499999999,137.581582336708, 2043P 1653 --117.484700270568,7.11812499999999,136.8810299142, 2043P 1654 --117.889540450724,7.11812499999999,136.882006921691, 2043P 1655 --118.69865621105,7.11812499999999,-6.28326580027829, 2043P 1656 --3.1392581473417,0.,0.,0.; 2043P 1657 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1.,139.68226259674, 2045P 1658 --118.69865621105,8.73624999999999,139.68226259674, 2045P 1659 --118.69865621105,7.11812499999999,0.,0.1618125,0.,0.,0.; 2045P 1660 -126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2047P 1661 --6.28326580027831,-5.23526324929943,-5.23526324929943, 2047P 1662 --4.18726069832055,-4.18726069832055,-3.13925814734167, 2047P 1663 --3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2047P 1664 -0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2047P 1665 --118.69865621105,8.73624999999999,136.8810299142, 2047P 1666 --119.507771971375,8.73624999999999,137.581582336708, 2047P 1667 --119.912612151531,8.73624999999999,138.282134759216, 2047P 1668 --120.317452331688,8.73624999999999,138.982687181724, 2047P 1669 --119.912612151531,8.73624999999999,139.683239604231, 2047P 1670 --119.507771971375,8.73624999999999,139.68226259674, 2047P 1671 --118.69865621105,8.73624999999999,-6.28326580027831, 2047P 1672 --3.13925814734167,0.,0.,0.; 2047P 1673 -126,6,2,0,0,0,0,-6.28326580027831,-6.28326580027831, 2049P 1674 --6.28326580027831,-5.23526324929943,-5.23526324929943, 2049P 1675 --4.18726069832055,-4.18726069832055,-3.13925814734167, 2049P 1676 --3.13925814734167,-3.13925814734167,1.,0.865824083693529,1., 2049P 1677 -0.865824083693519,1.,0.865824083693529,1.,136.882006921691, 2049P 1678 --118.69865621105,7.11812499999999,136.8810299142, 2049P 1679 --119.507771971375,7.11812499999999,137.581582336708, 2049P 1680 --119.912612151531,7.11812499999999,138.282134759216, 2049P 1681 --120.317452331688,7.11812499999999,138.982687181724, 2049P 1682 --119.912612151531,7.11812499999999,139.683239604231, 2049P 1683 --119.507771971375,7.11812499999999,139.68226259674, 2049P 1684 --118.69865621105,7.11812499999999,-6.28326580027831, 2049P 1685 --3.13925814734167,0.,0.,0.; 2049P 1686 -126,6,2,0,0,0,0,-6.28328621059597,-6.28328621059597, 2051P 1687 --6.28328621059597,-5.2350795389254,-5.2350795389254, 2051P 1688 --4.18687286725483,-4.18687286725483,-3.13866619558426, 2051P 1689 --3.13866619558426,-3.13866619558426,1.,0.865773013439842,1., 2051P 1690 -0.865773013439768,1.,0.865773013439842,1.,63.4808744198821, 2051P 1691 --118.698656211056,8.73625,63.4820994522559,-117.889349843306, 2051P 1692 -8.73625,62.7814230367476,-117.484342610857,8.73625, 2051P 1693 -62.0807466212394,-117.079335378408,8.73625,61.3800702057312, 2051P 1694 --117.484342610857,8.73625,60.679393790223,-117.889349843306, 2051P 1695 -8.73625,60.6806188225967,-118.698656211056,8.73625, 2051P 1696 --6.28328621059597,-3.13866619558426,0.,0.,0.; 2051P 1697 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2053P 1698 -60.6806188225967,-118.698656211056,8.73625,60.6806188225967, 2053P 1699 --118.698656211056,7.118125,0.,0.1618125,0.,0.,0.; 2053P 1700 -126,6,2,0,0,0,0,-6.28328621059597,-6.28328621059597, 2055P 1701 --6.28328621059597,-5.2350795389254,-5.2350795389254, 2055P 1702 --4.18687286725483,-4.18687286725483,-3.13866619558426, 2055P 1703 --3.13866619558426,-3.13866619558426,1.,0.865773013439842,1., 2055P 1704 -0.865773013439768,1.,0.865773013439842,1.,63.4808744198821, 2055P 1705 --118.698656211056,7.118125,63.4820994522559,-117.889349843306, 2055P 1706 -7.118125,62.7814230367476,-117.484342610857,7.118125, 2055P 1707 -62.0807466212394,-117.079335378408,7.118125,61.3800702057312, 2055P 1708 --117.484342610857,7.118125,60.679393790223,-117.889349843306, 2055P 1709 -7.118125,60.6806188225967,-118.698656211056,7.118125, 2055P 1710 --6.28328621059597,-3.13866619558426,0.,0.,0.; 2055P 1711 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2057P 1712 -63.4808744198821,-118.698656211056,8.73625,63.4808744198821, 2057P 1713 --118.698656211056,7.118125,0.,0.1618125,0.,0.,0.; 2057P 1714 -126,6,2,0,0,0,0,-6.28328621058691,-6.28328621058691, 2059P 1715 --6.28328621058691,-5.23507953892236,-5.23507953892236, 2059P 1716 --4.18687286725781,-4.18687286725781,-3.13866619559326, 2059P 1717 --3.13866619559326,-3.13866619559326,1.,0.865773013441318,1., 2059P 1718 -0.865773013441294,1.,0.865773013441318,1.,60.6806188225967, 2059P 1719 --118.698656211056,8.73625,60.6793937902303,-119.507962578801, 2059P 1720 -8.73625,61.3800702057349,-119.912969811245,8.73625, 2059P 1721 -62.0807466212394,-120.317977043689,8.73625,62.781423036744, 2059P 1722 --119.912969811245,8.73625,63.4820994522485,-119.507962578801, 2059P 1723 -8.73625,63.4808744198821,-118.698656211056,8.73625, 2059P 1724 --6.28328621058691,-3.13866619559326,0.,0.,0.; 2059P 1725 -126,6,2,0,0,0,0,-6.28328621058691,-6.28328621058691, 2061P 1726 --6.28328621058691,-5.23507953892236,-5.23507953892236, 2061P 1727 --4.18687286725781,-4.18687286725781,-3.13866619559326, 2061P 1728 --3.13866619559326,-3.13866619559326,1.,0.865773013441318,1., 2061P 1729 -0.865773013441294,1.,0.865773013441318,1.,60.6806188225967, 2061P 1730 --118.698656211056,7.118125,60.6793937902303,-119.507962578801, 2061P 1731 -7.118125,61.3800702057349,-119.912969811245,7.118125, 2061P 1732 -62.0807466212394,-120.317977043689,7.118125,62.781423036744, 2061P 1733 --119.912969811245,7.118125,63.4820994522485,-119.507962578801, 2061P 1734 -7.118125,63.4808744198821,-118.698656211056,7.118125, 2061P 1735 --6.28328621058691,-3.13866619559326,0.,0.,0.; 2061P 1736 -126,6,2,0,0,0,0,-6.28326580028397,-6.28326580028397, 2063P 1737 --6.28326580028397,-5.23526324930132,-5.23526324930132, 2063P 1738 --4.18726069831867,-4.18726069831867,-3.13925814733601, 2063P 1739 --3.13925814733601,-3.13925814733601,1.,0.865824083692607,1., 2063P 1740 -0.865824083692642,1.,0.865824083692673,1.,60.9078068409501, 2063P 1741 --62.1212017504367,8.73625,60.9087838484459,-61.3120859901078, 2063P 1742 -8.73625,60.2082314259358,-60.9072458099485,8.73625, 2063P 1743 -59.5076790034257,-60.5024056297891,8.73625,58.8071265809156, 2063P 1744 --60.9072458099485,8.73625,58.1065741584055,-61.3120859901078, 2063P 1745 -8.73625,58.1075511659012,-62.1212017504367,8.73625, 2063P 1746 --6.28326580028397,-3.13925814733601,0.,0.,0.; 2063P 1747 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2065P 1748 -58.1075511659012,-62.1212017504367,8.73625,58.1075511659012, 2065P 1749 --62.1212017504367,7.118125,0.,0.1618125,0.,0.,0.; 2065P 1750 -126,6,2,0,0,0,0,-6.28326580028397,-6.28326580028397, 2067P 1751 --6.28326580028397,-5.23526324930132,-5.23526324930132, 2067P 1752 --4.18726069831867,-4.18726069831867,-3.13925814733601, 2067P 1753 --3.13925814733601,-3.13925814733601,1.,0.865824083692607,1., 2067P 1754 -0.865824083692642,1.,0.865824083692673,1.,60.9078068409501, 2067P 1755 --62.1212017504367,7.118125,60.9087838484459,-61.3120859901078, 2067P 1756 -7.118125,60.2082314259358,-60.9072458099485,7.118125, 2067P 1757 -59.5076790034257,-60.5024056297891,7.118125,58.8071265809156, 2067P 1758 --60.9072458099485,7.118125,58.1065741584055,-61.3120859901078, 2067P 1759 -7.118125,58.1075511659012,-62.1212017504367,7.118125, 2067P 1760 --6.28326580028397,-3.13925814733601,0.,0.,0.; 2067P 1761 -126,1,1,0,0,1,0,0.,0.,0.1618125,0.1618125,1.,1., 2069P 1762 -60.9078068409501,-62.1212017504367,8.73625,60.9078068409501, 2069P 1763 --62.1212017504367,7.118125,0.,0.1618125,0.,0.,0.; 2069P 1764 -126,6,2,0,0,0,0,-6.2832658002726,-6.2832658002726, 2071P 1765 --6.2832658002726,-5.23526324929753,-5.23526324929753, 2071P 1766 --4.18726069832246,-4.18726069832246,-3.13925814734738, 2071P 1767 --3.13925814734738,-3.13925814734738,1.,0.86582408369451,1., 2071P 1768 -0.865824083694544,1.,0.86582408369451,1.,58.1075511659012, 2071P 1769 --62.1212017504367,8.73625,58.1065741584147,-62.9303175107585, 2071P 1770 -8.73625,58.8071265809202,-63.3351576909116,8.73625, 2071P 1771 -59.5076790034257,-63.7399978710648,8.73625,60.2082314259312, 2071P 1772 --63.3351576909116,8.73625,60.9087838484367,-62.9303175107585, 2071P 1773 -8.73625,60.9078068409501,-62.1212017504367,8.73625, 2071P 1774 --6.2832658002726,-3.13925814734738,0.,0.,0.; 2071P 1775 -126,6,2,0,0,0,0,-6.2832658002726,-6.2832658002726, 2073P 1776 --6.2832658002726,-5.23526324929753,-5.23526324929753, 2073P 1777 --4.18726069832246,-4.18726069832246,-3.13925814734738, 2073P 1778 --3.13925814734738,-3.13925814734738,1.,0.86582408369451,1., 2073P 1779 -0.865824083694544,1.,0.86582408369451,1.,58.1075511659012, 2073P 1780 --62.1212017504367,7.118125,58.1065741584147,-62.9303175107585, 2073P 1781 -7.118125,58.8071265809202,-63.3351576909116,7.118125, 2073P 1782 -59.5076790034257,-63.7399978710648,7.118125,60.2082314259312, 2073P 1783 --63.3351576909116,7.118125,60.9087838484367,-62.9303175107585, 2073P 1784 -7.118125,60.9078068409501,-62.1212017504367,7.118125, 2073P 1785 --6.2832658002726,-3.13925814734738,0.,0.,0.; 2073P 1786 -126,1,1,0,0,1,0,0.,0.,1.29791011810403,1.29791011810403,1.,1., 2075P 1787 -140.806868895161,-121.223895544679,8.73624999999999, 2075P 1788 -154.808074294198,-121.223878124069,8.73624999999999,0., 2075P 1789 -1.29791011810403,0.,0.,0.; 2075P 1790 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2077P 1791 --121.223895544679,8.73624999999999,140.806868895161, 2077P 1792 --121.223895544679,7.11812499999999,0.,0.15,0.,0.,0.; 2077P 1793 -126,1,1,0,0,1,0,-1.29791011810403,-1.29791011810403,0.,0.,1.,1., 2079P 1794 -154.808074294198,-121.223878124069,7.11812499999999, 2079P 1795 -140.806868895161,-121.223895544679,7.11812499999999, 2079P 1796 --1.29791011810403,0.,0.,0.,0.; 2079P 1797 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2081P 1798 --121.223878124069,8.73624999999999,154.808074294198, 2081P 1799 --121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2081P 1800 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2083P 1801 -1.,154.808074294198,-121.223878124069,8.73624999999999, 2083P 1802 -154.808074294198,-121.821979920061,8.73624999999999,0., 2083P 1803 -0.0554439671834324,0.,0.,0.; 2083P 1804 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2085P 1805 -1.,1.,154.808074294198,-121.821979920061,7.11812499999999, 2085P 1806 -154.808074294198,-121.223878124069,7.11812499999999, 2085P 1807 --0.0554439671834324,0.,0.,0.,0.; 2085P 1808 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2087P 1809 --121.821979920061,8.73624999999999,154.808074294198, 2087P 1810 --121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2087P 1811 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2089P 1812 -1.,154.808074294198,-121.821979920061,8.73624999999999, 2089P 1813 -155.607349292068,-121.82199734067,8.73624999999999,0., 2089P 1814 -0.0740926997042853,0.,0.,0.; 2089P 1815 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2091P 1816 -1.,1.,155.607349292068,-121.82199734067,7.11812499999999, 2091P 1817 -154.808074294198,-121.821979920061,7.11812499999999, 2091P 1818 --0.0740926997042853,0.,0.,0.,0.; 2091P 1819 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2093P 1820 --121.82199734067,8.73624999999999,155.607349292068, 2093P 1821 --121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2093P 1822 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2095P 1823 -155.607349292068,-121.82199734067,8.73624999999999, 2095P 1824 -155.607349292068,-134.624194429548,8.73624999999999,0., 2095P 1825 -1.1867621866862,0.,0.,0.; 2095P 1826 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2097P 1827 -155.607349292068,-134.624194429548,7.11812499999999, 2097P 1828 -155.607349292068,-121.82199734067,7.11812499999999, 2097P 1829 --1.1867621866862,0.,0.,0.,0.; 2097P 1830 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2099P 1831 --134.624194429548,8.73624999999999,155.607349292068, 2099P 1832 --134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2099P 1833 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2101P 1834 -1.,155.607349292068,-134.624194429548,8.73624999999999, 2101P 1835 -154.808074294198,-134.624177008938,8.73624999999999,0., 2101P 1836 -0.0740926997042853,0.,0.,0.; 2101P 1837 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2103P 1838 -1.,1.,154.808074294198,-134.624177008938,7.11812499999999, 2103P 1839 -155.607349292068,-134.624194429548,7.11812499999999, 2103P 1840 --0.0740926997042853,0.,0.,0.,0.; 2103P 1841 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2105P 1842 --134.624177008938,8.73624999999999,154.808074294198, 2105P 1843 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2105P 1844 -126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2107P 1845 -154.808074294198,-134.624177008938,8.73624999999999, 2107P 1846 -154.808074294198,-135.223655033103,8.73624999999999,0., 2107P 1847 -0.055571543375649,0.,0.,0.; 2107P 1848 -126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2109P 1849 -1.,154.808074294198,-135.223655033103,7.11812499999999, 2109P 1850 -154.808074294198,-134.624177008938,7.11812499999999, 2109P 1851 --0.055571543375649,0.,0.,0.,0.; 2109P 1852 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2111P 1853 --135.223655033103,8.73624999999999,154.808074294198, 2111P 1854 --135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2111P 1855 -126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2113P 1856 -154.808074294198,-135.223655033103,8.73624999999999, 2113P 1857 -140.806873250314,-135.223655033103,8.73624999999999,0., 2113P 1858 -1.2979097143809,0.,0.,0.; 2113P 1859 -126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2115P 1860 -140.806873250314,-135.223655033103,7.11812499999999, 2115P 1861 -154.808074294198,-135.223655033103,7.11812499999999, 2115P 1862 --1.2979097143809,0.,0.,0.,0.; 2115P 1863 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2117P 1864 --135.223655033103,8.73624999999999,140.806873250314, 2117P 1865 --135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2117P 1866 -126,1,1,0,0,1,0,0.,0.,0.055571543377119,0.055571543377119,1.,1., 2119P 1867 -140.806873250314,-135.223655033103,8.73624999999999, 2119P 1868 -140.806868895161,-134.624177008938,8.73624999999999,0., 2119P 1869 -0.055571543377119,0.,0.,0.; 2119P 1870 -126,1,1,0,0,1,0,-0.055571543377119,-0.055571543377119,0.,0.,1., 2121P 1871 -1.,140.806868895161,-134.624177008938,7.11812499999999, 2121P 1872 -140.806873250314,-135.223655033103,7.11812499999999, 2121P 1873 --0.055571543377119,0.,0.,0.,0.; 2121P 1874 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2123P 1875 --134.624177008938,8.73624999999999,140.806868895161, 2123P 1876 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2123P 1877 -126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2125P 1878 -1.,140.806868895161,-134.624177008938,8.73624999999999, 2125P 1879 -140.007650514273,-134.624177008938,8.73624999999999,0., 2125P 1880 -0.0740874512990315,0.,0.,0.; 2125P 1881 -126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2127P 1882 -1.,1.,140.007650514273,-134.624177008938,7.11812499999999, 2127P 1883 -140.806868895161,-134.624177008938,7.11812499999999, 2127P 1884 --0.0740874512990315,0.,0.,0.,0.; 2127P 1885 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2129P 1886 --134.624177008938,8.73624999999999,140.007650514273, 2129P 1887 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2129P 1888 -126,1,1,0,0,1,0,0.,0.,1.18676218668627,1.18676218668627,1.,1., 2131P 1889 -140.007650514273,-134.624177008938,8.73624999999999, 2131P 1890 -140.007654869426,-121.821979920061,8.73624999999999,0., 2131P 1891 -1.18676218668627,0.,0.,0.; 2131P 1892 -126,1,1,0,0,1,0,-1.18676218668627,-1.18676218668627,0.,0.,1.,1., 2133P 1893 -140.007654869426,-121.821979920061,7.11812499999999, 2133P 1894 -140.007650514273,-134.624177008938,7.11812499999999, 2133P 1895 --1.18676218668627,0.,0.,0.,0.; 2133P 1896 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2135P 1897 --121.821979920061,8.73624999999999,140.007654869426, 2135P 1898 --121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2135P 1899 -126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 2137P 1900 -1.,140.007654869426,-121.821979920061,8.73624999999999, 2137P 1901 -140.806873250314,-121.82199734067,8.73624999999999,0., 2137P 1902 -0.0740874513166314,0.,0.,0.; 2137P 1903 -126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 2139P 1904 -1.,1.,140.806873250314,-121.82199734067,7.11812499999999, 2139P 1905 -140.007654869426,-121.821979920061,7.11812499999999, 2139P 1906 --0.0740874513166314,0.,0.,0.,0.; 2139P 1907 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2141P 1908 --121.82199734067,8.73624999999999,140.806873250314, 2141P 1909 --121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2141P 1910 -126,1,1,0,0,1,0,0.,0.,0.0554439671848987,0.0554439671848987,1., 2143P 1911 -1.,140.806873250314,-121.82199734067,8.73624999999999, 2143P 1912 -140.806868895161,-121.223895544679,8.73624999999999,0., 2143P 1913 -0.0554439671848987,0.,0.,0.; 2143P 1914 -126,1,1,0,0,1,0,-0.0554439671848987,-0.0554439671848987,0.,0., 2145P 1915 -1.,1.,140.806868895161,-121.223895544679,7.11812499999999, 2145P 1916 -140.806873250314,-121.82199734067,7.11812499999999, 2145P 1917 --0.0554439671848987,0.,0.,0.,0.; 2145P 1918 -126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 2147P 1919 -121.756696066765,-121.223895544679,8.73624999999999, 2147P 1920 -135.757670642722,-121.223878124069,8.73624999999999,0., 2147P 1921 -1.29788872083129,0.,0.,0.; 2147P 1922 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2149P 1923 --121.223895544679,8.73624999999999,121.756696066765, 2149P 1924 --121.223895544679,7.11812499999999,0.,0.15,0.,0.,0.; 2149P 1925 -126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 2151P 1926 -135.757670642722,-121.223878124069,7.11812499999999, 2151P 1927 -121.756696066765,-121.223895544679,7.118125,-1.29788872083129, 2151P 1928 -0.,0.,0.,0.; 2151P 1929 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2153P 1930 --121.223878124069,8.73624999999999,135.757670642722, 2153P 1931 --121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2153P 1932 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2155P 1933 -1.,135.757670642722,-121.223878124069,8.73624999999999, 2155P 1934 -135.757670642722,-121.821979920061,8.73624999999999,0., 2155P 1935 -0.0554439671834324,0.,0.,0.; 2155P 1936 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2157P 1937 -1.,1.,135.757670642722,-121.821979920061,7.11812499999999, 2157P 1938 -135.757670642722,-121.223878124069,7.11812499999999, 2157P 1939 --0.0554439671834324,0.,0.,0.,0.; 2157P 1940 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2159P 1941 --121.821979920061,8.73624999999999,135.757670642722, 2159P 1942 --121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2159P 1943 -126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 2161P 1944 -1.,135.757670642722,-121.821979920061,8.73624999999999, 2161P 1945 -136.556989192117,-121.82199734067,8.73624999999999,0., 2161P 1946 -0.0740967369255563,0.,0.,0.; 2161P 1947 -126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 2163P 1948 -1.,1.,136.556989192117,-121.82199734067,7.11812499999999, 2163P 1949 -135.757670642722,-121.821979920061,7.11812499999999, 2163P 1950 --0.0740967369255563,0.,0.,0.,0.; 2163P 1951 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2165P 1952 --121.82199734067,8.73624999999999,136.556989192117, 2165P 1953 --121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2165P 1954 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2167P 1955 -136.556989192117,-121.82199734067,8.73624999999999, 2167P 1956 -136.556989192117,-134.624194429548,8.73624999999999,0., 2167P 1957 -1.1867621866862,0.,0.,0.; 2167P 1958 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2169P 1959 -136.556989192117,-134.624194429548,7.11812499999999, 2169P 1960 -136.556989192117,-121.82199734067,7.11812499999999, 2169P 1961 --1.1867621866862,0.,0.,0.,0.; 2169P 1962 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2171P 1963 --134.624194429548,8.73624999999999,136.556989192117, 2171P 1964 --134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2171P 1965 -126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 2173P 1966 -1.,136.556989192117,-134.624194429548,8.73624999999999, 2173P 1967 -135.757670642722,-134.624177008938,8.73624999999999,0., 2173P 1968 -0.0740967369255563,0.,0.,0.; 2173P 1969 -126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 2175P 1970 -1.,1.,135.757670642722,-134.624177008938,7.11812499999999, 2175P 1971 -136.556989192117,-134.624194429548,7.11812499999999, 2175P 1972 --0.0740967369255563,0.,0.,0.,0.; 2175P 1973 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2177P 1974 --134.624177008938,8.73624999999999,135.757670642722, 2177P 1975 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2177P 1976 -126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2179P 1977 -135.757670642722,-134.624177008938,8.73624999999999, 2179P 1978 -135.757670642722,-135.223655033103,8.73624999999999,0., 2179P 1979 -0.055571543375649,0.,0.,0.; 2179P 1980 -126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2181P 1981 -1.,135.757670642722,-135.223655033103,7.11812499999999, 2181P 1982 -135.757670642722,-134.624177008938,7.11812499999999, 2181P 1983 --0.055571543375649,0.,0.,0.,0.; 2181P 1984 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2183P 1985 --135.223655033103,8.73624999999999,135.757670642722, 2183P 1986 --135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2183P 1987 -126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 2185P 1988 -135.757670642722,-135.223655033103,8.73624999999999, 2185P 1989 -121.756696066765,-135.223655033103,8.73624999999999,0., 2185P 1990 -1.29788872083028,0.,0.,0.; 2185P 1991 -126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 2187P 1992 -121.756696066765,-135.223655033103,7.118125,135.757670642722, 2187P 1993 --135.223655033103,7.11812499999999,-1.29788872083028,0.,0.,0., 2187P 1994 -0.; 2187P 1995 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2189P 1996 --135.223655033103,8.73624999999999,121.756696066765, 2189P 1997 --135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2189P 1998 -126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2191P 1999 -1.,121.756696066765,-135.223655033103,8.73624999999999, 2191P 2000 -121.756696066765,-134.624177008938,8.73624999999999,0., 2191P 2001 -0.0555715433756525,0.,0.,0.; 2191P 2002 -126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2193P 2003 -1.,1.,121.756696066765,-134.624177008938,7.118125, 2193P 2004 -121.756696066765,-135.223655033103,7.118125,-0.0555715433756525, 2193P 2005 -0.,0.,0.,0.; 2193P 2006 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2195P 2007 --134.624177008938,8.73624999999999,121.756696066765, 2195P 2008 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2195P 2009 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2197P 2010 -1.,121.756696066765,-134.624177008938,8.73624999999999, 2197P 2011 -120.957281704017,-134.624177008938,8.73624999999999,0., 2197P 2012 -0.0741056187947589,0.,0.,0.; 2197P 2013 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2199P 2014 -1.,1.,120.957281704017,-134.624177008938,7.118125, 2199P 2015 -121.756696066765,-134.624177008938,7.118125,-0.0741056187947589, 2199P 2016 -0.,0.,0.,0.; 2199P 2017 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2201P 2018 --134.624177008938,8.73624999999999,120.957281704017, 2201P 2019 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2201P 2020 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2203P 2021 -120.957281704017,-134.624177008938,8.73624999999999, 2203P 2022 -120.957281704017,-121.821979920061,8.73624999999999,0., 2203P 2023 -1.1867621866862,0.,0.,0.; 2203P 2024 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2205P 2025 -120.957281704017,-121.821979920061,7.118125,120.957281704017, 2205P 2026 --134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2205P 2027 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2207P 2028 --121.821979920061,8.73624999999999,120.957281704017, 2207P 2029 --121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2207P 2030 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2209P 2031 -1.,120.957281704017,-121.821979920061,8.73624999999999, 2209P 2032 -121.756696066765,-121.82199734067,8.73624999999999,0., 2209P 2033 -0.0741056188123544,0.,0.,0.; 2209P 2034 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2211P 2035 -1.,1.,121.756696066765,-121.82199734067,7.118125, 2211P 2036 -120.957281704017,-121.821979920061,7.118125,-0.0741056188123544, 2211P 2037 -0.,0.,0.,0.; 2211P 2038 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2213P 2039 --121.82199734067,8.73624999999999,121.756696066765, 2213P 2040 --121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2213P 2041 -126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2215P 2042 -1.,121.756696066765,-121.82199734067,8.73624999999999, 2215P 2043 -121.756696066765,-121.223895544679,8.73624999999999,0., 2215P 2044 -0.0554439671834288,0.,0.,0.; 2215P 2045 -126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2217P 2046 -1.,1.,121.756696066765,-121.223895544679,7.118125, 2217P 2047 -121.756696066765,-121.82199734067,7.118125,-0.0554439671834288, 2217P 2048 -0.,0.,0.,0.; 2217P 2049 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2219P 2050 -102.706327256509,-121.223895544679,8.73624999999999, 2219P 2051 -116.707297477313,-121.223878124069,8.73624999999999,0., 2219P 2052 -1.29788831710916,0.,0.,0.; 2219P 2053 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2221P 2054 --121.223895544679,8.73624999999999,102.706327256509, 2221P 2055 --121.223895544679,7.118125,0.,0.15,0.,0.,0.; 2221P 2056 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2223P 2057 -116.707297477313,-121.223878124069,7.118125,102.706327256509, 2223P 2058 --121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2223P 2059 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2225P 2060 --121.223878124069,8.73624999999999,116.707297477313, 2225P 2061 --121.223878124069,7.11812499999999,0.,0.15,0.,0.,0.; 2225P 2062 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2227P 2063 -1.,116.707297477313,-121.223878124069,8.73624999999999, 2227P 2064 -116.707297477313,-121.821979920061,8.73624999999999,0., 2227P 2065 -0.0554439671834324,0.,0.,0.; 2227P 2066 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2229P 2067 -1.,1.,116.707297477313,-121.821979920061,7.118125, 2229P 2068 -116.707297477313,-121.223878124069,7.118125,-0.0554439671834324, 2229P 2069 -0.,0.,0.,0.; 2229P 2070 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2231P 2071 --121.821979920061,8.73624999999999,116.707297477313, 2231P 2072 --121.821979920061,7.11812499999999,0.,0.15,0.,0.,0.; 2231P 2073 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2233P 2074 -1.,116.707297477313,-121.821979920061,8.73624999999999, 2233P 2075 -117.506711840062,-121.82199734067,8.73624999999999,0., 2233P 2076 -0.0741056188123544,0.,0.,0.; 2233P 2077 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2235P 2078 -1.,1.,117.506711840062,-121.82199734067,7.118125, 2235P 2079 -116.707297477313,-121.821979920061,7.118125,-0.0741056188123544, 2235P 2080 -0.,0.,0.,0.; 2235P 2081 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 2237P 2082 --121.82199734067,8.73624999999999,117.506711840062, 2237P 2083 --121.82199734067,7.11812499999999,0.,0.15,0.,0.,0.; 2237P 2084 -126,1,1,0,0,1,0,0.,0.,1.18676218668648,1.18676218668648,1.,1., 2239P 2085 -117.506711840062,-121.82199734067,8.73624999999999, 2239P 2086 -117.506720550367,-134.624194429548,8.73624999999999,0., 2239P 2087 -1.18676218668648,0.,0.,0.; 2239P 2088 -126,1,1,0,0,1,0,-1.18676218668648,-1.18676218668648,0.,0.,1.,1., 2241P 2089 -117.506720550367,-134.624194429548,7.118125,117.506711840062, 2241P 2090 --121.82199734067,7.118125,-1.18676218668648,0.,0.,0.,0.; 2241P 2091 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 2243P 2092 --134.624194429548,8.73624999999999,117.506720550367, 2243P 2093 --134.624194429548,7.11812499999999,0.,0.15,0.,0.,0.; 2243P 2094 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2245P 2095 -1.,117.506720550367,-134.624194429548,8.73624999999999, 2245P 2096 -116.707306187618,-134.624177008938,8.73624999999999,0., 2245P 2097 -0.0741056188123544,0.,0.,0.; 2245P 2098 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2247P 2099 -1.,1.,116.707306187618,-134.624177008938,7.118125, 2247P 2100 -117.506720550367,-134.624194429548,7.118125,-0.0741056188123544, 2247P 2101 -0.,0.,0.,0.; 2247P 2102 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 2249P 2103 --134.624177008938,8.73624999999999,116.707306187618, 2249P 2104 --134.624177008938,7.11812499999999,0.,0.15,0.,0.,0.; 2249P 2105 -126,1,1,0,0,1,0,0.,0.,0.055571543381515,0.055571543381515,1.,1., 2251P 2106 -116.707306187618,-134.624177008938,8.73624999999999, 2251P 2107 -116.707297477313,-135.223655033103,8.73624999999999,0., 2251P 2108 -0.055571543381515,0.,0.,0.; 2251P 2109 -126,1,1,0,0,1,0,-0.055571543381515,-0.055571543381515,0.,0.,1., 2253P 2110 -1.,116.707297477313,-135.223655033103,7.118125,116.707306187618, 2253P 2111 --134.624177008938,7.118125,-0.055571543381515,0.,0.,0.,0.; 2253P 2112 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2255P 2113 --135.223655033103,8.73624999999999,116.707297477313, 2255P 2114 --135.223655033103,7.11812499999999,0.,0.15,0.,0.,0.; 2255P 2115 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2257P 2116 -116.707297477313,-135.223655033103,8.73624999999999, 2257P 2117 -102.706327256509,-135.223655033103,8.73624999999999,0., 2257P 2118 -1.29788831710816,0.,0.,0.; 2257P 2119 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2259P 2120 -102.706327256509,-135.223655033103,7.118125,116.707297477313, 2259P 2121 --135.223655033103,7.118125,-1.29788831710816,0.,0.,0.,0.; 2259P 2122 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2261P 2123 --135.223655033103,8.73624999999999,102.706327256509, 2261P 2124 --135.223655033103,7.118125,0.,0.15,0.,0.,0.; 2261P 2125 -126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2263P 2126 -1.,102.706327256509,-135.223655033103,8.73624999999999, 2263P 2127 -102.706327256509,-134.624177008938,8.73624999999999,0., 2263P 2128 -0.0555715433756525,0.,0.,0.; 2263P 2129 -126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2265P 2130 -1.,1.,102.706327256509,-134.624177008938,7.118125, 2265P 2131 -102.706327256509,-135.223655033103,7.118125,-0.0555715433756525, 2265P 2132 -0.,0.,0.,0.; 2265P 2133 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2267P 2134 --134.624177008938,8.73624999999999,102.706327256509, 2267P 2135 --134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2267P 2136 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2269P 2137 -1.,102.706327256509,-134.624177008938,8.73624999999999, 2269P 2138 -101.90691289376,-134.624177008938,8.73624999999999,0., 2269P 2139 -0.0741056187947589,0.,0.,0.; 2269P 2140 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2271P 2141 -1.,1.,101.90691289376,-134.624177008938,7.118125, 2271P 2142 -102.706327256509,-134.624177008938,7.118125,-0.0741056187947589, 2271P 2143 -0.,0.,0.,0.; 2271P 2144 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2273P 2145 --134.624177008938,8.73624999999999,101.90691289376, 2273P 2146 --134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2273P 2147 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2275P 2148 -101.90691289376,-134.624177008938,8.73624999999999, 2275P 2149 -101.90691289376,-121.821979920061,8.73624999999999,0., 2275P 2150 -1.1867621866862,0.,0.,0.; 2275P 2151 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2277P 2152 -101.90691289376,-121.821979920061,7.118125,101.90691289376, 2277P 2153 --134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2277P 2154 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2279P 2155 --121.821979920061,8.73624999999999,101.90691289376, 2279P 2156 --121.821979920061,7.118125,0.,0.15,0.,0.,0.; 2279P 2157 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2281P 2158 -1.,101.90691289376,-121.821979920061,8.73624999999999, 2281P 2159 -102.706327256509,-121.82199734067,8.73624999999999,0., 2281P 2160 -0.0741056188123544,0.,0.,0.; 2281P 2161 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2283P 2162 -1.,1.,102.706327256509,-121.82199734067,7.118125, 2283P 2163 -101.90691289376,-121.821979920061,7.118125,-0.0741056188123544, 2283P 2164 -0.,0.,0.,0.; 2283P 2165 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2285P 2166 --121.82199734067,8.73624999999999,102.706327256509, 2285P 2167 --121.82199734067,7.118125,0.,0.15,0.,0.,0.; 2285P 2168 -126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2287P 2169 -1.,102.706327256509,-121.82199734067,8.73624999999999, 2287P 2170 -102.706327256509,-121.223895544679,8.73624999999999,0., 2287P 2171 -0.0554439671834288,0.,0.,0.; 2287P 2172 -126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2289P 2173 -1.,1.,102.706327256509,-121.223895544679,7.118125, 2289P 2174 -102.706327256509,-121.82199734067,7.118125,-0.0554439671834288, 2289P 2175 -0.,0.,0.,0.; 2289P 2176 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2291P 2177 -83.6559584462526,-121.223895544679,8.73625,97.6569286670568, 2291P 2178 --121.223878124069,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 2291P 2179 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2293P 2180 --121.223895544679,8.73625,83.6559584462526,-121.223895544679, 2293P 2181 -7.118125,0.,0.15,0.,0.,0.; 2293P 2182 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2295P 2183 -97.6569286670568,-121.223878124069,7.118125,83.6559584462526, 2295P 2184 --121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2295P 2185 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2297P 2186 --121.223878124069,8.73624999999999,97.6569286670568, 2297P 2187 --121.223878124069,7.118125,0.,0.15,0.,0.,0.; 2297P 2188 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2299P 2189 -1.,97.6569286670568,-121.223878124069,8.73624999999999, 2299P 2190 -97.6569286670568,-121.821979920061,8.73624999999999,0., 2299P 2191 -0.0554439671834324,0.,0.,0.; 2299P 2192 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2301P 2193 -1.,1.,97.6569286670568,-121.821979920061,7.118125, 2301P 2194 -97.6569286670568,-121.223878124069,7.118125,-0.0554439671834324, 2301P 2195 -0.,0.,0.,0.; 2301P 2196 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2303P 2197 --121.821979920061,8.73624999999999,97.6569286670568, 2303P 2198 --121.821979920061,7.118125,0.,0.15,0.,0.,0.; 2303P 2199 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2305P 2200 -1.,97.6569286670568,-121.821979920061,8.73624999999999, 2305P 2201 -98.4563430298053,-121.82199734067,8.73624999999999,0., 2305P 2202 -0.0741056188123544,0.,0.,0.; 2305P 2203 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2307P 2204 -1.,1.,98.4563430298053,-121.82199734067,7.118125, 2307P 2205 -97.6569286670568,-121.821979920061,7.118125,-0.0741056188123544, 2307P 2206 -0.,0.,0.,0.; 2307P 2207 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2309P 2208 --121.82199734067,8.73624999999999,98.4563430298053, 2309P 2209 --121.82199734067,7.118125,0.,0.15,0.,0.,0.; 2309P 2210 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2311P 2211 -98.4563430298053,-121.82199734067,8.73624999999999, 2311P 2212 -98.4563430298053,-134.624194429548,8.73624999999999,0., 2311P 2213 -1.1867621866862,0.,0.,0.; 2311P 2214 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2313P 2215 -98.4563430298053,-134.624194429548,7.118125,98.4563430298053, 2313P 2216 --121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2313P 2217 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2315P 2218 --134.624194429548,8.73624999999999,98.4563430298053, 2315P 2219 --134.624194429548,7.118125,0.,0.15,0.,0.,0.; 2315P 2220 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2317P 2221 -1.,98.4563430298053,-134.624194429548,8.73624999999999, 2317P 2222 -97.6569286670568,-134.624177008938,8.73624999999999,0., 2317P 2223 -0.0741056188123544,0.,0.,0.; 2317P 2224 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2319P 2225 -1.,1.,97.6569286670568,-134.624177008938,7.118125, 2319P 2226 -98.4563430298053,-134.624194429548,7.118125,-0.0741056188123544, 2319P 2227 -0.,0.,0.,0.; 2319P 2228 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2321P 2229 --134.624177008938,8.73624999999999,97.6569286670568, 2321P 2230 --134.624177008938,7.118125,0.,0.15,0.,0.,0.; 2321P 2231 -126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2323P 2232 -97.6569286670568,-134.624177008938,8.73624999999999, 2323P 2233 -97.6569286670568,-135.223655033103,8.73624999999999,0., 2323P 2234 -0.055571543375649,0.,0.,0.; 2323P 2235 -126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2325P 2236 -1.,97.6569286670568,-135.223655033103,7.118125,97.6569286670568, 2325P 2237 --134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2325P 2238 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2327P 2239 --135.223655033103,8.73624999999999,97.6569286670568, 2327P 2240 --135.223655033103,7.118125,0.,0.15,0.,0.,0.; 2327P 2241 -126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 2329P 2242 -97.6569286670568,-135.223655033103,8.73624999999999, 2329P 2243 -83.6559497359477,-135.223655033103,8.73625,0.,1.29788912455241, 2329P 2244 -0.,0.,0.; 2329P 2245 -126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 2331P 2246 -83.6559497359477,-135.223655033103,7.118125,97.6569286670568, 2331P 2247 --135.223655033103,7.118125,-1.29788912455241,0.,0.,0.,0.; 2331P 2248 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 2333P 2249 --135.223655033103,8.73625,83.6559497359477,-135.223655033103, 2333P 2250 -7.118125,0.,0.15,0.,0.,0.; 2333P 2251 -126,1,1,0,0,1,0,0.,0.,0.0555715433815185,0.0555715433815185,1., 2335P 2252 -1.,83.6559497359477,-135.223655033103,8.73625,83.6559584462526, 2335P 2253 --134.624177008938,8.73625,0.,0.0555715433815185,0.,0.,0.; 2335P 2254 -126,1,1,0,0,1,0,-0.0555715433815185,-0.0555715433815185,0.,0., 2337P 2255 -1.,1.,83.6559584462526,-134.624177008938,7.118125, 2337P 2256 -83.6559497359477,-135.223655033103,7.118125,-0.0555715433815185, 2337P 2257 -0.,0.,0.,0.; 2337P 2258 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2339P 2259 --134.624177008938,8.73625,83.6559584462526,-134.624177008938, 2339P 2260 -7.118125,0.,0.15,0.,0.,0.; 2339P 2261 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2341P 2262 -1.,83.6559584462526,-134.624177008938,8.73625,82.8565440835041, 2341P 2263 --134.624177008938,8.73625,0.,0.0741056187947589,0.,0.,0.; 2341P 2264 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2343P 2265 -1.,1.,82.8565440835041,-134.624177008938,7.118125, 2343P 2266 -83.6559584462526,-134.624177008938,7.118125,-0.0741056187947589, 2343P 2267 -0.,0.,0.,0.; 2343P 2268 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2345P 2269 --134.624177008938,8.73625,82.8565440835042,-134.624177008938, 2345P 2270 -7.118125,0.,0.15,0.,0.,0.; 2345P 2271 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2347P 2272 -82.8565440835042,-134.624177008938,8.73625,82.8565440835042, 2347P 2273 --121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2347P 2274 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2349P 2275 -82.8565440835042,-121.821979920061,7.118125,82.8565440835042, 2349P 2276 --134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2349P 2277 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2351P 2278 --121.821979920061,8.73625,82.8565440835042,-121.821979920061, 2351P 2279 -7.118125,0.,0.15,0.,0.,0.; 2351P 2280 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2353P 2281 -1.,82.8565440835042,-121.821979920061,8.73625,83.6559584462526, 2353P 2282 --121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2353P 2283 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2355P 2284 -1.,1.,83.6559584462526,-121.82199734067,7.118125, 2355P 2285 -82.8565440835042,-121.821979920061,7.118125,-0.0741056188123544, 2355P 2286 -0.,0.,0.,0.; 2355P 2287 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2357P 2288 --121.82199734067,8.73625,83.6559584462526,-121.82199734067, 2357P 2289 -7.118125,0.,0.15,0.,0.,0.; 2357P 2290 -126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2359P 2291 -1.,83.6559584462526,-121.82199734067,8.73625,83.6559584462526, 2359P 2292 --121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2359P 2293 -126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2361P 2294 -1.,1.,83.6559584462526,-121.223895544679,7.118125, 2361P 2295 -83.6559584462526,-121.82199734067,7.118125,-0.0554439671834288, 2361P 2296 -0.,0.,0.,0.; 2361P 2297 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2363P 2298 -64.6055896359963,-121.223895544679,8.73625,78.6065598568005, 2363P 2299 --121.223878124069,8.73625,0.,1.29788831710916,0.,0.,0.; 2363P 2300 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2365P 2301 --121.223895544679,8.73625,64.6055896359963,-121.223895544679, 2365P 2302 -7.118125,0.,0.15,0.,0.,0.; 2365P 2303 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2367P 2304 -78.6065598568005,-121.223878124069,7.118125,64.6055896359963, 2367P 2305 --121.223895544679,7.118125,-1.29788831710916,0.,0.,0.,0.; 2367P 2306 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2369P 2307 --121.223878124069,8.73625,78.6065598568005,-121.223878124069, 2369P 2308 -7.118125,0.,0.15,0.,0.,0.; 2369P 2309 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2371P 2310 -1.,78.6065598568005,-121.223878124069,8.73625,78.6065598568005, 2371P 2311 --121.821979920061,8.73625,0.,0.0554439671834324,0.,0.,0.; 2371P 2312 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2373P 2313 -1.,1.,78.6065598568005,-121.821979920061,7.118125, 2373P 2314 -78.6065598568005,-121.223878124069,7.118125,-0.0554439671834324, 2373P 2315 -0.,0.,0.,0.; 2373P 2316 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2375P 2317 --121.821979920061,8.73625,78.6065598568005,-121.821979920061, 2375P 2318 -7.118125,0.,0.15,0.,0.,0.; 2375P 2319 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2377P 2320 -1.,78.6065598568005,-121.821979920061,8.73625,79.405974219549, 2377P 2321 --121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2377P 2322 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2379P 2323 -1.,1.,79.405974219549,-121.82199734067,7.118125, 2379P 2324 -78.6065598568005,-121.821979920061,7.118125,-0.0741056188123544, 2379P 2325 -0.,0.,0.,0.; 2379P 2326 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2381P 2327 --121.82199734067,8.73625,79.4059742195489,-121.82199734067, 2381P 2328 -7.118125,0.,0.15,0.,0.,0.; 2381P 2329 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2383P 2330 -79.4059742195489,-121.82199734067,8.73625,79.4059742195489, 2383P 2331 --134.624194429548,8.73625,0.,1.1867621866862,0.,0.,0.; 2383P 2332 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2385P 2333 -79.4059742195489,-134.624194429548,7.118125,79.4059742195489, 2385P 2334 --121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2385P 2335 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2387P 2336 --134.624194429548,8.73625,79.4059742195489,-134.624194429548, 2387P 2337 -7.118125,0.,0.15,0.,0.,0.; 2387P 2338 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2389P 2339 -1.,79.4059742195489,-134.624194429548,8.73625,78.6065598568005, 2389P 2340 --134.624177008938,8.73625,0.,0.0741056188123544,0.,0.,0.; 2389P 2341 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2391P 2342 -1.,1.,78.6065598568005,-134.624177008938,7.118125, 2391P 2343 -79.4059742195489,-134.624194429548,7.118125,-0.0741056188123544, 2391P 2344 -0.,0.,0.,0.; 2391P 2345 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2393P 2346 --134.624177008938,8.73625,78.6065598568005,-134.624177008938, 2393P 2347 -7.118125,0.,0.15,0.,0.,0.; 2393P 2348 -126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2395P 2349 -78.6065598568005,-134.624177008938,8.73625,78.6065598568005, 2395P 2350 --135.223655033103,8.73625,0.,0.055571543375649,0.,0.,0.; 2395P 2351 -126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2397P 2352 -1.,78.6065598568005,-135.223655033103,7.118125,78.6065598568005, 2397P 2353 --134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2397P 2354 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2399P 2355 --135.223655033103,8.73625,78.6065598568005,-135.223655033103, 2399P 2356 -7.118125,0.,0.15,0.,0.,0.; 2399P 2357 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2401P 2358 -78.6065598568005,-135.223655033103,8.73625,64.6055896359963, 2401P 2359 --135.223655033103,8.73625,0.,1.29788831710816,0.,0.,0.; 2401P 2360 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2403P 2361 -64.6055896359963,-135.223655033103,7.118125,78.6065598568005, 2403P 2362 --135.223655033103,7.118125,-1.29788831710816,0.,0.,0.,0.; 2403P 2363 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2405P 2364 --135.223655033103,8.73625,64.6055896359963,-135.223655033103, 2405P 2365 -7.118125,0.,0.15,0.,0.,0.; 2405P 2366 -126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2407P 2367 -1.,64.6055896359963,-135.223655033103,8.73625,64.6055896359963, 2407P 2368 --134.624177008938,8.73625,0.,0.0555715433756525,0.,0.,0.; 2407P 2369 -126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2409P 2370 -1.,1.,64.6055896359963,-134.624177008938,7.118125, 2409P 2371 -64.6055896359963,-135.223655033103,7.118125,-0.0555715433756525, 2409P 2372 -0.,0.,0.,0.; 2409P 2373 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2411P 2374 --134.624177008938,8.73625,64.6055896359963,-134.624177008938, 2411P 2375 -7.118125,0.,0.15,0.,0.,0.; 2411P 2376 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2413P 2377 -1.,64.6055896359963,-134.624177008938,8.73625,63.8061752732478, 2413P 2378 --134.624177008938,8.73625,0.,0.0741056187947589,0.,0.,0.; 2413P 2379 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2415P 2380 -1.,1.,63.8061752732478,-134.624177008938,7.118125, 2415P 2381 -64.6055896359963,-134.624177008938,7.118125,-0.0741056187947589, 2415P 2382 -0.,0.,0.,0.; 2415P 2383 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2417P 2384 --134.624177008938,8.73625,63.8061752732478,-134.624177008938, 2417P 2385 -7.118125,0.,0.15,0.,0.,0.; 2417P 2386 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2419P 2387 -63.8061752732478,-134.624177008938,8.73625,63.8061752732478, 2419P 2388 --121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2419P 2389 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2421P 2390 -63.8061752732478,-121.821979920061,7.118125,63.8061752732478, 2421P 2391 --134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2421P 2392 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2423P 2393 --121.821979920061,8.73625,63.8061752732478,-121.821979920061, 2423P 2394 -7.118125,0.,0.15,0.,0.,0.; 2423P 2395 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2425P 2396 -1.,63.8061752732478,-121.821979920061,8.73625,64.6055896359963, 2425P 2397 --121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2425P 2398 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2427P 2399 -1.,1.,64.6055896359963,-121.82199734067,7.118125, 2427P 2400 -63.8061752732478,-121.821979920061,7.118125,-0.0741056188123544, 2427P 2401 -0.,0.,0.,0.; 2427P 2402 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2429P 2403 --121.82199734067,8.73625,64.6055896359963,-121.82199734067, 2429P 2404 -7.118125,0.,0.15,0.,0.,0.; 2429P 2405 -126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2431P 2406 -1.,64.6055896359963,-121.82199734067,8.73625,64.6055896359963, 2431P 2407 --121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2431P 2408 -126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2433P 2409 -1.,1.,64.6055896359963,-121.223895544679,7.118125, 2433P 2410 -64.6055896359963,-121.82199734067,7.118125,-0.0554439671834288, 2433P 2411 -0.,0.,0.,0.; 2433P 2412 -126,1,1,0,0,1,0,0.,0.,1.29779546101989,1.29779546101989,1.,1., 2435P 2413 -45.556222510803,-121.223895544679,8.73625,59.5561910465442, 2435P 2414 --121.223878124069,8.73625,0.,1.29779546101989,0.,0.,0.; 2435P 2415 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2437P 2416 --121.223895544679,8.73625,45.556222510803,-121.223895544679, 2437P 2417 -7.118125,0.,0.15,0.,0.,0.; 2437P 2418 -126,1,1,0,0,1,0,-1.29779546101989,-1.29779546101989,0.,0.,1.,1., 2439P 2419 -59.5561910465442,-121.223878124069,7.118125,45.556222510803, 2439P 2420 --121.223895544679,7.118125,-1.29779546101989,0.,0.,0.,0.; 2439P 2421 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2441P 2422 --121.223878124069,8.73625,59.5561910465442,-121.223878124069, 2441P 2423 -7.118125,0.,0.15,0.,0.,0.; 2441P 2424 -126,1,1,0,0,1,0,0.,0.,0.0554439671834324,0.0554439671834324,1., 2443P 2425 -1.,59.5561910465442,-121.223878124069,8.73625,59.5561910465442, 2443P 2426 --121.821979920061,8.73625,0.,0.0554439671834324,0.,0.,0.; 2443P 2427 -126,1,1,0,0,1,0,-0.0554439671834324,-0.0554439671834324,0.,0., 2445P 2428 -1.,1.,59.5561910465442,-121.821979920061,7.118125, 2445P 2429 -59.5561910465442,-121.223878124069,7.118125,-0.0554439671834324, 2445P 2430 -0.,0.,0.,0.; 2445P 2431 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2447P 2432 --121.821979920061,8.73625,59.5561910465442,-121.821979920061, 2447P 2433 -7.118125,0.,0.15,0.,0.,0.; 2447P 2434 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2449P 2435 -1.,59.5561910465442,-121.821979920061,8.73625,60.3556054092927, 2449P 2436 --121.82199734067,8.73625,0.,0.0741056188123544,0.,0.,0.; 2449P 2437 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2451P 2438 -1.,1.,60.3556054092927,-121.82199734067,7.118125, 2451P 2439 -59.5561910465442,-121.821979920061,7.118125,-0.0741056188123544, 2451P 2440 -0.,0.,0.,0.; 2451P 2441 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2453P 2442 --121.82199734067,8.73625,60.3556054092926,-121.82199734067, 2453P 2443 -7.118125,0.,0.15,0.,0.,0.; 2453P 2444 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2455P 2445 -60.3556054092926,-121.82199734067,8.73625,60.3556054092926, 2455P 2446 --134.624194429548,8.73625,0.,1.1867621866862,0.,0.,0.; 2455P 2447 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2457P 2448 -60.3556054092926,-134.624194429548,7.118125,60.3556054092926, 2457P 2449 --121.82199734067,7.118125,-1.1867621866862,0.,0.,0.,0.; 2457P 2450 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2459P 2451 --134.624194429548,8.73625,60.3556054092926,-134.624194429548, 2459P 2452 -7.118125,0.,0.15,0.,0.,0.; 2459P 2453 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2461P 2454 -1.,60.3556054092926,-134.624194429548,8.73625,59.5561910465442, 2461P 2455 --134.624177008938,8.73625,0.,0.0741056188123544,0.,0.,0.; 2461P 2456 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2463P 2457 -1.,1.,59.5561910465442,-134.624177008938,7.118125, 2463P 2458 -60.3556054092926,-134.624194429548,7.118125,-0.0741056188123544, 2463P 2459 -0.,0.,0.,0.; 2463P 2460 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2465P 2461 --134.624177008938,8.73625,59.5561910465442,-134.624177008938, 2465P 2462 -7.118125,0.,0.15,0.,0.,0.; 2465P 2463 -126,1,1,0,0,1,0,0.,0.,0.055571543375649,0.055571543375649,1.,1., 2467P 2464 -59.5561910465442,-134.624177008938,8.73625,59.5561910465442, 2467P 2465 --135.223655033103,8.73625,0.,0.055571543375649,0.,0.,0.; 2467P 2466 -126,1,1,0,0,1,0,-0.055571543375649,-0.055571543375649,0.,0.,1., 2469P 2467 -1.,59.5561910465442,-135.223655033103,7.118125,59.5561910465442, 2469P 2468 --134.624177008938,7.118125,-0.055571543375649,0.,0.,0.,0.; 2469P 2469 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2471P 2470 --135.223655033103,8.73625,59.5561910465442,-135.223655033103, 2471P 2471 -7.118125,0.,0.15,0.,0.,0.; 2471P 2472 -126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 2473P 2473 -59.5561910465442,-135.223655033103,8.73625,45.556222510803, 2473P 2474 --135.223655033103,8.73625,0.,1.29779546101888,0.,0.,0.; 2473P 2475 -126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 2475P 2476 -45.556222510803,-135.223655033103,7.11812500000001, 2475P 2477 -59.5561910465442,-135.223655033103,7.118125,-1.29779546101888, 2475P 2478 -0.,0.,0.,0.; 2475P 2479 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2477P 2480 --135.223655033103,8.73625,45.556222510803,-135.223655033103, 2477P 2481 -7.118125,0.,0.15,0.,0.,0.; 2477P 2482 -126,1,1,0,0,1,0,0.,0.,0.0555715433756525,0.0555715433756525,1., 2479P 2483 -1.,45.556222510803,-135.223655033103,8.73625,45.556222510803, 2479P 2484 --134.624177008938,8.73625,0.,0.0555715433756525,0.,0.,0.; 2479P 2485 -126,1,1,0,0,1,0,-0.0555715433756525,-0.0555715433756525,0.,0., 2481P 2486 -1.,1.,45.556222510803,-134.624177008938,7.118125, 2481P 2487 -45.556222510803,-135.223655033103,7.118125,-0.0555715433756525, 2481P 2488 -0.,0.,0.,0.; 2481P 2489 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2483P 2490 --134.624177008938,8.73625,45.556222510803,-134.624177008938, 2483P 2491 -7.118125,0.,0.15,0.,0.,0.; 2483P 2492 -126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 2485P 2493 -1.,45.556222510803,-134.624177008938,8.73625,44.7561984267118, 2485P 2494 --134.624177008938,8.73625,0.,0.0741621398925787,0.,0.,0.; 2485P 2495 -126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 2487P 2496 -1.,1.,44.7561984267118,-134.624177008938,7.118125, 2487P 2497 -45.556222510803,-134.624177008938,7.118125,-0.0741621398925787, 2487P 2498 -0.,0.,0.,0.; 2487P 2499 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2489P 2500 --134.624177008938,8.73625,44.7561984267118,-134.624177008938, 2489P 2501 -7.118125,0.,0.15,0.,0.,0.; 2489P 2502 -126,1,1,0,0,1,0,0.,0.,1.1867621866862,1.1867621866862,1.,1., 2491P 2503 -44.7561984267118,-134.624177008938,8.73625,44.7561984267118, 2491P 2504 --121.821979920061,8.73625,0.,1.1867621866862,0.,0.,0.; 2491P 2505 -126,1,1,0,0,1,0,-1.1867621866862,-1.1867621866862,0.,0.,1.,1., 2493P 2506 -44.7561984267118,-121.821979920061,7.118125,44.7561984267118, 2493P 2507 --134.624177008938,7.118125,-1.1867621866862,0.,0.,0.,0.; 2493P 2508 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2495P 2509 --121.821979920061,8.73625,44.7561984267118,-121.821979920061, 2495P 2510 -7.118125,0.,0.15,0.,0.,0.; 2495P 2511 -126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 2497P 2512 -1.,44.7561984267118,-121.821979920061,8.73625,45.556222510803, 2497P 2513 --121.82199734067,8.73625,0.,0.0741621399101609,0.,0.,0.; 2497P 2514 -126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 2499P 2515 -1.,1.,45.556222510803,-121.82199734067,7.118125, 2499P 2516 -44.7561984267118,-121.821979920061,7.118125,-0.0741621399101609, 2499P 2517 -0.,0.,0.,0.; 2499P 2518 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2501P 2519 --121.82199734067,8.73625,45.556222510803,-121.82199734067, 2501P 2520 -7.118125,0.,0.15,0.,0.,0.; 2501P 2521 -126,1,1,0,0,1,0,0.,0.,0.0554439671834288,0.0554439671834288,1., 2503P 2522 -1.,45.556222510803,-121.82199734067,8.73625,45.556222510803, 2503P 2523 --121.223895544679,8.73625,0.,0.0554439671834288,0.,0.,0.; 2503P 2524 -126,1,1,0,0,1,0,-0.0554439671834288,-0.0554439671834288,0.,0., 2505P 2525 -1.,1.,45.556222510803,-121.223895544679,7.118125, 2505P 2526 -45.556222510803,-121.82199734067,7.118125,-0.0554439671834288, 2505P 2527 -0.,0.,0.,0.; 2505P 2528 -126,1,1,0,0,1,0,0.,0.,1.29791011810403,1.29791011810403,1.,1., 2507P 2529 -140.806868895161,-102.173622547777,8.73624999999999, 2507P 2530 -154.808074294198,-102.173605127167,8.73624999999999,0., 2507P 2531 -1.29791011810403,0.,0.,0.; 2507P 2532 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2509P 2533 --102.173622547777,8.73624999999999,140.806868895161, 2509P 2534 --102.173622547777,7.11812499999999,0.,0.15,0.,0.,0.; 2509P 2535 -126,1,1,0,0,1,0,-1.29791011810403,-1.29791011810403,0.,0.,1.,1., 2511P 2536 -154.808074294198,-102.173605127167,7.11812499999999, 2511P 2537 -140.806868895161,-102.173622547777,7.11812499999999, 2511P 2538 --1.29791011810403,0.,0.,0.,0.; 2511P 2539 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2513P 2540 --102.173605127167,8.73624999999999,154.808074294198, 2513P 2541 --102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2513P 2542 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2515P 2543 -1.,154.808074294198,-102.173605127167,8.73624999999999, 2515P 2544 -154.808074294198,-102.772908945234,8.73624999999999,0., 2515P 2545 -0.0555553944905611,0.,0.,0.; 2515P 2546 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2517P 2547 -1.,1.,154.808074294198,-102.772908945234,7.11812499999999, 2517P 2548 -154.808074294198,-102.173605127167,7.11812499999999, 2517P 2549 --0.0555553944905611,0.,0.,0.,0.; 2517P 2550 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2519P 2551 --102.772908945234,8.73624999999999,154.808074294198, 2519P 2552 --102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2519P 2553 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2521P 2554 -1.,154.808074294198,-102.772908945234,8.73624999999999, 2521P 2555 -155.607349292068,-102.772926365844,8.73624999999999,0., 2521P 2556 -0.0740926997042853,0.,0.,0.; 2521P 2557 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2523P 2558 -1.,1.,155.607349292068,-102.772926365844,7.11812499999999, 2523P 2559 -154.808074294198,-102.772908945234,7.11812499999999, 2523P 2560 --0.0740926997042853,0.,0.,0.,0.; 2523P 2561 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2525P 2562 --102.772926365844,8.73624999999999,155.607349292068, 2525P 2563 --102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2525P 2564 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2527P 2565 -155.607349292068,-102.772926365844,8.73624999999999, 2527P 2566 -155.607349292068,-115.573782067767,8.73624999999999,0., 2527P 2567 -1.186637840271,0.,0.,0.; 2527P 2568 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2529P 2569 -155.607349292068,-115.573782067767,7.11812499999999, 2529P 2570 -155.607349292068,-102.772926365844,7.11812499999999, 2529P 2571 --1.186637840271,0.,0.,0.,0.; 2529P 2572 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2531P 2573 --115.573782067767,8.73624999999999,155.607349292068, 2531P 2574 --115.573782067767,7.11812499999999,0.,0.15,0.,0.,0.; 2531P 2575 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 2533P 2576 -1.,155.607349292068,-115.573782067767,8.73624999999999, 2533P 2577 -154.808074294198,-115.573764647157,8.73624999999999,0., 2533P 2578 -0.0740926997042853,0.,0.,0.; 2533P 2579 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 2535P 2580 -1.,1.,154.808074294198,-115.573764647157,7.11812499999999, 2535P 2581 -155.607349292068,-115.573782067767,7.11812499999999, 2535P 2582 --0.0740926997042853,0.,0.,0.,0.; 2535P 2583 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2537P 2584 --115.573764647157,8.73624999999999,154.808074294198, 2537P 2585 --115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2537P 2586 -126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2539P 2587 -1.,154.808074294198,-115.573764647157,8.73624999999999, 2539P 2588 -154.808074294198,-116.173277512542,8.73624999999999,0., 2539P 2589 -0.0555747731526672,0.,0.,0.; 2539P 2590 -126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2541P 2591 -1.,1.,154.808074294198,-116.173277512542,7.11812499999999, 2541P 2592 -154.808074294198,-115.573764647157,7.11812499999999, 2541P 2593 --0.0555747731526672,0.,0.,0.,0.; 2541P 2594 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2543P 2595 --116.173277512542,8.73624999999999,154.808074294198, 2543P 2596 --116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2543P 2597 -126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2545P 2598 -154.808074294198,-116.173277512542,8.73624999999999, 2545P 2599 -140.806873250314,-116.173277512542,8.73624999999999,0., 2545P 2600 -1.2979097143809,0.,0.,0.; 2545P 2601 -126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2547P 2602 -140.806873250314,-116.173277512542,7.11812499999999, 2547P 2603 -154.808074294198,-116.173277512542,7.11812499999999, 2547P 2604 --1.2979097143809,0.,0.,0.,0.; 2547P 2605 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2549P 2606 --116.173277512542,8.73624999999999,140.806873250314, 2549P 2607 --116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2549P 2608 -126,1,1,0,0,1,0,0.,0.,0.0555747731541372,0.0555747731541372,1., 2551P 2609 -1.,140.806873250314,-116.173277512542,8.73624999999999, 2551P 2610 -140.806868895161,-115.573764647157,8.73624999999999,0., 2551P 2611 -0.0555747731541372,0.,0.,0.; 2551P 2612 -126,1,1,0,0,1,0,-0.0555747731541372,-0.0555747731541372,0.,0., 2553P 2613 -1.,1.,140.806868895161,-115.573764647157,7.11812499999999, 2553P 2614 -140.806873250314,-116.173277512542,7.11812499999999, 2553P 2615 --0.0555747731541372,0.,0.,0.,0.; 2553P 2616 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2555P 2617 --115.573764647157,8.73624999999999,140.806868895161, 2555P 2618 --115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2555P 2619 -126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2557P 2620 -1.,140.806868895161,-115.573764647157,8.73624999999999, 2557P 2621 -140.007650514273,-115.573764647157,8.73624999999999,0., 2557P 2622 -0.0740874512990315,0.,0.,0.; 2557P 2623 -126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2559P 2624 -1.,1.,140.007650514273,-115.573764647157,7.11812499999999, 2559P 2625 -140.806868895161,-115.573764647157,7.11812499999999, 2559P 2626 --0.0740874512990315,0.,0.,0.,0.; 2559P 2627 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2561P 2628 --115.573764647157,8.73624999999999,140.007650514273, 2561P 2629 --115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2561P 2630 -126,1,1,0,0,1,0,0.,0.,1.18663784027107,1.18663784027107,1.,1., 2563P 2631 -140.007650514273,-115.573764647157,8.73624999999999, 2563P 2632 -140.007654869426,-102.772908945234,8.73624999999999,0., 2563P 2633 -1.18663784027107,0.,0.,0.; 2563P 2634 -126,1,1,0,0,1,0,-1.18663784027107,-1.18663784027107,0.,0.,1.,1., 2565P 2635 -140.007654869426,-102.772908945234,7.11812499999999, 2565P 2636 -140.007650514273,-115.573764647157,7.11812499999999, 2565P 2637 --1.18663784027107,0.,0.,0.,0.; 2565P 2638 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2567P 2639 --102.772908945234,8.73624999999999,140.007654869426, 2567P 2640 --102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2567P 2641 -126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 2569P 2642 -1.,140.007654869426,-102.772908945234,8.73624999999999, 2569P 2643 -140.806873250314,-102.772926365844,8.73624999999999,0., 2569P 2644 -0.0740874513166314,0.,0.,0.; 2569P 2645 -126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 2571P 2646 -1.,1.,140.806873250314,-102.772926365844,7.11812499999999, 2571P 2647 -140.007654869426,-102.772908945234,7.11812499999999, 2571P 2648 --0.0740874513166314,0.,0.,0.,0.; 2571P 2649 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2573P 2650 --102.772926365844,8.73624999999999,140.806873250314, 2573P 2651 --102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2573P 2652 -126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 2575P 2653 -1.,140.806873250314,-102.772926365844,8.73624999999999, 2575P 2654 -140.806868895161,-102.173622547777,8.73624999999999,0., 2575P 2655 -0.0555553944920281,0.,0.,0.; 2575P 2656 -126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 2577P 2657 -1.,1.,140.806868895161,-102.173622547777,7.11812499999999, 2577P 2658 -140.806873250314,-102.772926365844,7.11812499999999, 2577P 2659 --0.0555553944920281,0.,0.,0.,0.; 2577P 2660 -126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 2579P 2661 -121.756696066765,-102.173622547777,8.73624999999999, 2579P 2662 -135.757670642722,-102.173605127167,8.73624999999999,0., 2579P 2663 -1.29788872083129,0.,0.,0.; 2579P 2664 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2581P 2665 --102.173622547777,8.73624999999999,121.756696066765, 2581P 2666 --102.173622547777,7.11812499999999,0.,0.15,0.,0.,0.; 2581P 2667 -126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 2583P 2668 -135.757670642722,-102.173605127167,7.11812499999999, 2583P 2669 -121.756696066765,-102.173622547777,7.118125,-1.29788872083129, 2583P 2670 -0.,0.,0.,0.; 2583P 2671 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2585P 2672 --102.173605127167,8.73624999999999,135.757670642722, 2585P 2673 --102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2585P 2674 -126,1,1,0,0,1,0,0.,0.,0.0681531397501622,0.0681531397501622,1., 2587P 2675 -1.,135.757670642722,-102.173605127167,8.73624999999999, 2587P 2676 -135.757670642722,-102.908807122222,8.73624999999999,0., 2587P 2677 -0.0681531397501622,0.,0.,0.; 2587P 2678 -126,1,1,0,0,1,0,-0.0681531397501622,-0.0681531397501622,0.,0., 2589P 2679 -1.,1.,135.757670642722,-102.908807122222,7.11812499999999, 2589P 2680 -135.757670642722,-102.173605127167,7.11812499999999, 2589P 2681 --0.0681531397501622,0.,0.,0.,0.; 2589P 2682 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2591P 2683 --102.908807122222,8.73624999999999,135.757670642722, 2591P 2684 --102.908807122222,7.11812499999999,0.,0.15,0.,0.,0.; 2591P 2685 -126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 2593P 2686 -1.,135.757670642722,-102.908807122222,8.73624999999999, 2593P 2687 -136.556989192117,-102.908807122222,8.73624999999999,0., 2593P 2688 -0.0740967369079586,0.,0.,0.; 2593P 2689 -126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 2595P 2690 -1.,1.,136.556989192117,-102.908807122222,7.11812499999999, 2595P 2691 -135.757670642722,-102.908807122222,7.11812499999999, 2595P 2692 --0.0740967369079586,0.,0.,0.,0.; 2595P 2693 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2597P 2694 --102.908807122222,8.73624999999999,136.556989192117, 2597P 2695 --102.908807122222,7.11812499999999,0.,0.15,0.,0.,0.; 2597P 2696 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2599P 2697 -136.556989192117,-102.908807122222,8.73624999999999, 2599P 2698 -136.556989192117,-115.709662824145,8.73624999999999,0., 2599P 2699 -1.186637840271,0.,0.,0.; 2599P 2700 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2601P 2701 -136.556989192117,-115.709662824145,7.11812499999999, 2601P 2702 -136.556989192117,-102.908807122222,7.11812499999999, 2601P 2703 --1.186637840271,0.,0.,0.,0.; 2601P 2704 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 2603P 2705 --115.709662824145,8.73624999999999,136.556989192117, 2603P 2706 --115.709662824145,7.11812499999999,0.,0.15,0.,0.,0.; 2603P 2707 -126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 2605P 2708 -1.,136.556989192117,-115.709662824145,8.73624999999999, 2605P 2709 -135.757670642722,-115.709662824145,8.73624999999999,0., 2605P 2710 -0.0740967369079586,0.,0.,0.; 2605P 2711 -126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 2607P 2712 -1.,1.,135.757670642722,-115.709662824145,7.11812499999999, 2607P 2713 -136.556989192117,-115.709662824145,7.11812499999999, 2607P 2714 --0.0740967369079586,0.,0.,0.,0.; 2607P 2715 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2609P 2716 --115.709662824145,8.73624999999999,135.757670642722, 2609P 2717 --115.709662824145,7.11812499999999,0.,0.15,0.,0.,0.; 2609P 2718 -126,1,1,0,0,1,0,0.,0.,0.0431191380818667,0.0431191380818667,1., 2611P 2719 -1.,135.757670642722,-115.709662824145,8.73624999999999, 2611P 2720 -135.757670642722,-116.174810526203,8.73624999999999,0., 2611P 2721 -0.0431191380818667,0.,0.,0.; 2611P 2722 -126,1,1,0,0,1,0,-0.0431191380818667,-0.0431191380818667,0.,0., 2613P 2723 -1.,1.,135.757670642722,-116.174810526203,7.11812499999999, 2613P 2724 -135.757670642722,-115.709662824145,7.11812499999999, 2613P 2725 --0.0431191380818667,0.,0.,0.,0.; 2613P 2726 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 2615P 2727 --116.174810526203,8.73624999999999,135.757670642722, 2615P 2728 --116.174810526203,7.11812499999999,0.,0.15,0.,0.,0.; 2615P 2729 -126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 2617P 2730 -135.757670642722,-116.174810526203,8.73624999999999, 2617P 2731 -121.756696066765,-116.174810526203,8.73624999999999,0., 2617P 2732 -1.29788872083028,0.,0.,0.; 2617P 2733 -126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 2619P 2734 -121.756696066765,-116.174810526203,7.118125,135.757670642722, 2619P 2735 --116.174810526203,7.11812499999999,-1.29788872083028,0.,0.,0., 2619P 2736 -0.; 2619P 2737 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2621P 2738 --116.174810526203,8.73624999999999,121.756696066765, 2621P 2739 --116.174810526203,7.11812499999999,0.,0.15,0.,0.,0.; 2621P 2740 -126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2623P 2741 -1.,121.756696066765,-116.174810526203,8.73624999999999, 2623P 2742 -121.756696066765,-115.575297660819,8.73624999999999,0., 2623P 2743 -0.0555747731526708,0.,0.,0.; 2623P 2744 -126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2625P 2745 -1.,1.,121.756696066765,-115.575297660819,7.118125, 2625P 2746 -121.756696066765,-116.174810526203,7.118125,-0.0555747731526708, 2625P 2747 -0.,0.,0.,0.; 2625P 2748 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2627P 2749 --115.575297660819,8.73624999999999,121.756696066765, 2627P 2750 --115.575297660819,7.11812499999999,0.,0.15,0.,0.,0.; 2627P 2751 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2629P 2752 -1.,121.756696066765,-115.575297660819,8.73624999999999, 2629P 2753 -120.957281704017,-115.575297660819,8.73624999999999,0., 2629P 2754 -0.0741056187947589,0.,0.,0.; 2629P 2755 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2631P 2756 -1.,1.,120.957281704017,-115.575297660819,7.118125, 2631P 2757 -121.756696066765,-115.575297660819,7.118125,-0.0741056187947589, 2631P 2758 -0.,0.,0.,0.; 2631P 2759 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2633P 2760 --115.575297660819,8.73624999999999,120.957281704017, 2633P 2761 --115.575297660819,7.11812499999999,0.,0.15,0.,0.,0.; 2633P 2762 -126,1,1,0,0,1,0,0.,0.,1.1867799504598,1.1867799504598,1.,1., 2635P 2763 -120.957281704017,-115.575297660819,8.73624999999999, 2635P 2764 -120.957281704017,-102.772908945234,8.73624999999999,0., 2635P 2765 -1.1867799504598,0.,0.,0.; 2635P 2766 -126,1,1,0,0,1,0,-1.1867799504598,-1.1867799504598,0.,0.,1.,1., 2637P 2767 -120.957281704017,-102.772908945234,7.118125,120.957281704017, 2637P 2768 --115.575297660819,7.118125,-1.1867799504598,0.,0.,0.,0.; 2637P 2769 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 2639P 2770 --102.772908945234,8.73624999999999,120.957281704017, 2639P 2771 --102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2639P 2772 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2641P 2773 -1.,120.957281704017,-102.772908945234,8.73624999999999, 2641P 2774 -121.756696066765,-102.772926365844,8.73624999999999,0., 2641P 2775 -0.0741056188123544,0.,0.,0.; 2641P 2776 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2643P 2777 -1.,1.,121.756696066765,-102.772926365844,7.118125, 2643P 2778 -120.957281704017,-102.772908945234,7.118125,-0.0741056188123544, 2643P 2779 -0.,0.,0.,0.; 2643P 2780 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 2645P 2781 --102.772926365844,8.73624999999999,121.756696066765, 2645P 2782 --102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2645P 2783 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2647P 2784 -1.,121.756696066765,-102.772926365844,8.73624999999999, 2647P 2785 -121.756696066765,-102.173622547777,8.73624999999999,0., 2647P 2786 -0.0555553944905611,0.,0.,0.; 2647P 2787 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2649P 2788 -1.,1.,121.756696066765,-102.173622547777,7.118125, 2649P 2789 -121.756696066765,-102.772926365844,7.118125,-0.0555553944905611, 2649P 2790 -0.,0.,0.,0.; 2649P 2791 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2651P 2792 -102.706327256509,-102.173622547777,8.73624999999999, 2651P 2793 -116.707297477313,-102.173605127167,8.73624999999999,0., 2651P 2794 -1.29788831710916,0.,0.,0.; 2651P 2795 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2653P 2796 --102.173622547777,8.73624999999999,102.706327256509, 2653P 2797 --102.173622547777,7.118125,0.,0.15,0.,0.,0.; 2653P 2798 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2655P 2799 -116.707297477313,-102.173605127167,7.118125,102.706327256509, 2655P 2800 --102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2655P 2801 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2657P 2802 --102.173605127167,8.73624999999999,116.707297477313, 2657P 2803 --102.173605127167,7.11812499999999,0.,0.15,0.,0.,0.; 2657P 2804 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2659P 2805 -1.,116.707297477313,-102.173605127167,8.73624999999999, 2659P 2806 -116.707297477313,-102.772908945234,8.73624999999999,0., 2659P 2807 -0.0555553944905611,0.,0.,0.; 2659P 2808 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2661P 2809 -1.,1.,116.707297477313,-102.772908945234,7.118125, 2661P 2810 -116.707297477313,-102.173605127167,7.118125,-0.0555553944905611, 2661P 2811 -0.,0.,0.,0.; 2661P 2812 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2663P 2813 --102.772908945234,8.73624999999999,116.707297477313, 2663P 2814 --102.772908945234,7.11812499999999,0.,0.15,0.,0.,0.; 2663P 2815 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2665P 2816 -1.,116.707297477313,-102.772908945234,8.73624999999999, 2665P 2817 -117.506711840062,-102.772926365844,8.73624999999999,0., 2665P 2818 -0.0741056188123544,0.,0.,0.; 2665P 2819 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2667P 2820 -1.,1.,117.506711840062,-102.772926365844,7.118125, 2667P 2821 -116.707297477313,-102.772908945234,7.118125,-0.0741056188123544, 2667P 2822 -0.,0.,0.,0.; 2667P 2823 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 2669P 2824 --102.772926365844,8.73624999999999,117.506711840062, 2669P 2825 --102.772926365844,7.11812499999999,0.,0.15,0.,0.,0.; 2669P 2826 -126,1,1,0,0,1,0,0.,0.,1.18663784027127,1.18663784027127,1.,1., 2671P 2827 -117.506711840062,-102.772926365844,8.73624999999999, 2671P 2828 -117.506720550367,-115.573782067767,8.73624999999999,0., 2671P 2829 -1.18663784027127,0.,0.,0.; 2671P 2830 -126,1,1,0,0,1,0,-1.18663784027127,-1.18663784027127,0.,0.,1.,1., 2673P 2831 -117.506720550367,-115.573782067767,7.118125,117.506711840062, 2673P 2832 --102.772926365844,7.118125,-1.18663784027127,0.,0.,0.,0.; 2673P 2833 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 2675P 2834 --115.573782067767,8.73624999999999,117.506720550367, 2675P 2835 --115.573782067767,7.11812499999999,0.,0.15,0.,0.,0.; 2675P 2836 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2677P 2837 -1.,117.506720550367,-115.573782067767,8.73624999999999, 2677P 2838 -116.707306187618,-115.573764647157,8.73624999999999,0., 2677P 2839 -0.0741056188123544,0.,0.,0.; 2677P 2840 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2679P 2841 -1.,1.,116.707306187618,-115.573764647157,7.118125, 2679P 2842 -117.506720550367,-115.573782067767,7.118125,-0.0741056188123544, 2679P 2843 -0.,0.,0.,0.; 2679P 2844 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 2681P 2845 --115.573764647157,8.73624999999999,116.707306187618, 2681P 2846 --115.573764647157,7.11812499999999,0.,0.15,0.,0.,0.; 2681P 2847 -126,1,1,0,0,1,0,0.,0.,0.0555747731585329,0.0555747731585329,1., 2683P 2848 -1.,116.707306187618,-115.573764647157,8.73624999999999, 2683P 2849 -116.707297477313,-116.173277512542,8.73624999999999,0., 2683P 2850 -0.0555747731585329,0.,0.,0.; 2683P 2851 -126,1,1,0,0,1,0,-0.0555747731585329,-0.0555747731585329,0.,0., 2685P 2852 -1.,1.,116.707297477313,-116.173277512542,7.118125, 2685P 2853 -116.707306187618,-115.573764647157,7.118125,-0.0555747731585329, 2685P 2854 -0.,0.,0.,0.; 2685P 2855 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 2687P 2856 --116.173277512542,8.73624999999999,116.707297477313, 2687P 2857 --116.173277512542,7.11812499999999,0.,0.15,0.,0.,0.; 2687P 2858 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2689P 2859 -116.707297477313,-116.173277512542,8.73624999999999, 2689P 2860 -102.706327256509,-116.173277512542,8.73624999999999,0., 2689P 2861 -1.29788831710816,0.,0.,0.; 2689P 2862 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2691P 2863 -102.706327256509,-116.173277512542,7.118125,116.707297477313, 2691P 2864 --116.173277512542,7.118125,-1.29788831710816,0.,0.,0.,0.; 2691P 2865 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2693P 2866 --116.173277512542,8.73624999999999,102.706327256509, 2693P 2867 --116.173277512542,7.118125,0.,0.15,0.,0.,0.; 2693P 2868 -126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2695P 2869 -1.,102.706327256509,-116.173277512542,8.73624999999999, 2695P 2870 -102.706327256509,-115.573764647157,8.73624999999999,0., 2695P 2871 -0.0555747731526708,0.,0.,0.; 2695P 2872 -126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2697P 2873 -1.,1.,102.706327256509,-115.573764647157,7.118125, 2697P 2874 -102.706327256509,-116.173277512542,7.118125,-0.0555747731526708, 2697P 2875 -0.,0.,0.,0.; 2697P 2876 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2699P 2877 --115.573764647157,8.73624999999999,102.706327256509, 2699P 2878 --115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2699P 2879 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2701P 2880 -1.,102.706327256509,-115.573764647157,8.73624999999999, 2701P 2881 -101.90691289376,-115.573764647157,8.73624999999999,0., 2701P 2882 -0.0741056187947589,0.,0.,0.; 2701P 2883 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2703P 2884 -1.,1.,101.90691289376,-115.573764647157,7.118125, 2703P 2885 -102.706327256509,-115.573764647157,7.118125,-0.0741056187947589, 2703P 2886 -0.,0.,0.,0.; 2703P 2887 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2705P 2888 --115.573764647157,8.73624999999999,101.90691289376, 2705P 2889 --115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2705P 2890 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2707P 2891 -101.90691289376,-115.573764647157,8.73624999999999, 2707P 2892 -101.90691289376,-102.772908945234,8.73624999999999,0., 2707P 2893 -1.186637840271,0.,0.,0.; 2707P 2894 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2709P 2895 -101.90691289376,-102.772908945234,7.118125,101.90691289376, 2709P 2896 --115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2709P 2897 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 2711P 2898 --102.772908945234,8.73624999999999,101.90691289376, 2711P 2899 --102.772908945234,7.118125,0.,0.15,0.,0.,0.; 2711P 2900 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2713P 2901 -1.,101.90691289376,-102.772908945234,8.73624999999999, 2713P 2902 -102.706327256509,-102.772926365844,8.73624999999999,0., 2713P 2903 -0.0741056188123544,0.,0.,0.; 2713P 2904 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2715P 2905 -1.,1.,102.706327256509,-102.772926365844,7.118125, 2715P 2906 -101.90691289376,-102.772908945234,7.118125,-0.0741056188123544, 2715P 2907 -0.,0.,0.,0.; 2715P 2908 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 2717P 2909 --102.772926365844,8.73624999999999,102.706327256509, 2717P 2910 --102.772926365844,7.118125,0.,0.15,0.,0.,0.; 2717P 2911 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2719P 2912 -1.,102.706327256509,-102.772926365844,8.73624999999999, 2719P 2913 -102.706327256509,-102.173622547777,8.73624999999999,0., 2719P 2914 -0.0555553944905611,0.,0.,0.; 2719P 2915 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2721P 2916 -1.,1.,102.706327256509,-102.173622547777,7.118125, 2721P 2917 -102.706327256509,-102.772926365844,7.118125,-0.0555553944905611, 2721P 2918 -0.,0.,0.,0.; 2721P 2919 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2723P 2920 -83.6559584462526,-102.173622547777,8.73625,97.6569286670568, 2723P 2921 --102.173605127167,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 2723P 2922 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2725P 2923 --102.173622547777,8.73625,83.6559584462526,-102.173622547777, 2725P 2924 -7.118125,0.,0.15,0.,0.,0.; 2725P 2925 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2727P 2926 -97.6569286670568,-102.173605127167,7.118125,83.6559584462526, 2727P 2927 --102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2727P 2928 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2729P 2929 --102.173605127167,8.73624999999999,97.6569286670568, 2729P 2930 --102.173605127167,7.118125,0.,0.15,0.,0.,0.; 2729P 2931 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2731P 2932 -1.,97.6569286670568,-102.173605127167,8.73624999999999, 2731P 2933 -97.6569286670568,-102.772908945234,8.73624999999999,0., 2731P 2934 -0.0555553944905611,0.,0.,0.; 2731P 2935 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2733P 2936 -1.,1.,97.6569286670568,-102.772908945234,7.118125, 2733P 2937 -97.6569286670568,-102.173605127167,7.118125,-0.0555553944905611, 2733P 2938 -0.,0.,0.,0.; 2733P 2939 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2735P 2940 --102.772908945234,8.73624999999999,97.6569286670568, 2735P 2941 --102.772908945234,7.118125,0.,0.15,0.,0.,0.; 2735P 2942 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2737P 2943 -1.,97.6569286670568,-102.772908945234,8.73624999999999, 2737P 2944 -98.4563430298053,-102.772926365844,8.73624999999999,0., 2737P 2945 -0.0741056188123544,0.,0.,0.; 2737P 2946 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2739P 2947 -1.,1.,98.4563430298053,-102.772926365844,7.118125, 2739P 2948 -97.6569286670568,-102.772908945234,7.118125,-0.0741056188123544, 2739P 2949 -0.,0.,0.,0.; 2739P 2950 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2741P 2951 --102.772926365844,8.73624999999999,98.4563430298053, 2741P 2952 --102.772926365844,7.118125,0.,0.15,0.,0.,0.; 2741P 2953 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2743P 2954 -98.4563430298053,-102.772926365844,8.73624999999999, 2743P 2955 -98.4563430298053,-115.573782067767,8.73624999999999,0., 2743P 2956 -1.186637840271,0.,0.,0.; 2743P 2957 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2745P 2958 -98.4563430298053,-115.573782067767,7.118125,98.4563430298053, 2745P 2959 --102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2745P 2960 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 2747P 2961 --115.573782067767,8.73624999999999,98.4563430298053, 2747P 2962 --115.573782067767,7.118125,0.,0.15,0.,0.,0.; 2747P 2963 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2749P 2964 -1.,98.4563430298053,-115.573782067767,8.73624999999999, 2749P 2965 -97.6569286670568,-115.573764647157,8.73624999999999,0., 2749P 2966 -0.0741056188123544,0.,0.,0.; 2749P 2967 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2751P 2968 -1.,1.,97.6569286670568,-115.573764647157,7.118125, 2751P 2969 -98.4563430298053,-115.573782067767,7.118125,-0.0741056188123544, 2751P 2970 -0.,0.,0.,0.; 2751P 2971 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2753P 2972 --115.573764647157,8.73624999999999,97.6569286670568, 2753P 2973 --115.573764647157,7.118125,0.,0.15,0.,0.,0.; 2753P 2974 -126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2755P 2975 -1.,97.6569286670568,-115.573764647157,8.73624999999999, 2755P 2976 -97.6569286670568,-116.173277512542,8.73624999999999,0., 2755P 2977 -0.0555747731526672,0.,0.,0.; 2755P 2978 -126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2757P 2979 -1.,1.,97.6569286670568,-116.173277512542,7.118125, 2757P 2980 -97.6569286670568,-115.573764647157,7.118125,-0.0555747731526672, 2757P 2981 -0.,0.,0.,0.; 2757P 2982 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 2759P 2983 --116.173277512542,8.73624999999999,97.6569286670568, 2759P 2984 --116.173277512542,7.118125,0.,0.15,0.,0.,0.; 2759P 2985 -126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 2761P 2986 -97.6569286670568,-116.173277512542,8.73624999999999, 2761P 2987 -83.6559497359477,-116.173277512542,8.73625,0.,1.29788912455241, 2761P 2988 -0.,0.,0.; 2761P 2989 -126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 2763P 2990 -83.6559497359477,-116.173277512542,7.118125,97.6569286670568, 2763P 2991 --116.173277512542,7.118125,-1.29788912455241,0.,0.,0.,0.; 2763P 2992 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 2765P 2993 --116.173277512542,8.73625,83.6559497359477,-116.173277512542, 2765P 2994 -7.118125,0.,0.15,0.,0.,0.; 2765P 2995 -126,1,1,0,0,1,0,0.,0.,0.0555747731585365,0.0555747731585365,1., 2767P 2996 -1.,83.6559497359477,-116.173277512542,8.73625,83.6559584462526, 2767P 2997 --115.573764647157,8.73625,0.,0.0555747731585365,0.,0.,0.; 2767P 2998 -126,1,1,0,0,1,0,-0.0555747731585365,-0.0555747731585365,0.,0., 2769P 2999 -1.,1.,83.6559584462526,-115.573764647157,7.118125, 2769P 3000 -83.6559497359477,-116.173277512542,7.118125,-0.0555747731585365, 2769P 3001 -0.,0.,0.,0.; 2769P 3002 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2771P 3003 --115.573764647157,8.73625,83.6559584462526,-115.573764647157, 2771P 3004 -7.118125,0.,0.15,0.,0.,0.; 2771P 3005 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2773P 3006 -1.,83.6559584462526,-115.573764647157,8.73625,82.8565440835041, 2773P 3007 --115.573764647157,8.73625,0.,0.0741056187947589,0.,0.,0.; 2773P 3008 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2775P 3009 -1.,1.,82.8565440835041,-115.573764647157,7.118125, 2775P 3010 -83.6559584462526,-115.573764647157,7.118125,-0.0741056187947589, 2775P 3011 -0.,0.,0.,0.; 2775P 3012 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2777P 3013 --115.573764647157,8.73625,82.8565440835042,-115.573764647157, 2777P 3014 -7.118125,0.,0.15,0.,0.,0.; 2777P 3015 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2779P 3016 -82.8565440835042,-115.573764647157,8.73625,82.8565440835042, 2779P 3017 --102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2779P 3018 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2781P 3019 -82.8565440835042,-102.772908945234,7.118125,82.8565440835042, 2781P 3020 --115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2781P 3021 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 2783P 3022 --102.772908945234,8.73625,82.8565440835042,-102.772908945234, 2783P 3023 -7.118125,0.,0.15,0.,0.,0.; 2783P 3024 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2785P 3025 -1.,82.8565440835042,-102.772908945234,8.73625,83.6559584462526, 2785P 3026 --102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2785P 3027 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2787P 3028 -1.,1.,83.6559584462526,-102.772926365844,7.118125, 2787P 3029 -82.8565440835042,-102.772908945234,7.118125,-0.0741056188123544, 2787P 3030 -0.,0.,0.,0.; 2787P 3031 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 2789P 3032 --102.772926365844,8.73625,83.6559584462526,-102.772926365844, 2789P 3033 -7.118125,0.,0.15,0.,0.,0.; 2789P 3034 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2791P 3035 -1.,83.6559584462526,-102.772926365844,8.73625,83.6559584462526, 2791P 3036 --102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2791P 3037 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2793P 3038 -1.,1.,83.6559584462526,-102.173622547777,7.118125, 2793P 3039 -83.6559584462526,-102.772926365844,7.118125,-0.0555553944905611, 2793P 3040 -0.,0.,0.,0.; 2793P 3041 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 2795P 3042 -64.6055896359963,-102.173622547777,8.73625,78.6065598568005, 2795P 3043 --102.173605127167,8.73625,0.,1.29788831710916,0.,0.,0.; 2795P 3044 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2797P 3045 --102.173622547777,8.73625,64.6055896359963,-102.173622547777, 2797P 3046 -7.118125,0.,0.15,0.,0.,0.; 2797P 3047 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 2799P 3048 -78.6065598568005,-102.173605127167,7.118125,64.6055896359963, 2799P 3049 --102.173622547777,7.118125,-1.29788831710916,0.,0.,0.,0.; 2799P 3050 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2801P 3051 --102.173605127167,8.73625,78.6065598568005,-102.173605127167, 2801P 3052 -7.118125,0.,0.15,0.,0.,0.; 2801P 3053 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2803P 3054 -1.,78.6065598568005,-102.173605127167,8.73625,78.6065598568005, 2803P 3055 --102.772908945234,8.73625,0.,0.0555553944905611,0.,0.,0.; 2803P 3056 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2805P 3057 -1.,1.,78.6065598568005,-102.772908945234,7.118125, 2805P 3058 -78.6065598568005,-102.173605127167,7.118125,-0.0555553944905611, 2805P 3059 -0.,0.,0.,0.; 2805P 3060 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2807P 3061 --102.772908945234,8.73625,78.6065598568005,-102.772908945234, 2807P 3062 -7.118125,0.,0.15,0.,0.,0.; 2807P 3063 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2809P 3064 -1.,78.6065598568005,-102.772908945234,8.73625,79.405974219549, 2809P 3065 --102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2809P 3066 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2811P 3067 -1.,1.,79.405974219549,-102.772926365844,7.118125, 2811P 3068 -78.6065598568005,-102.772908945234,7.118125,-0.0741056188123544, 2811P 3069 -0.,0.,0.,0.; 2811P 3070 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2813P 3071 --102.772926365844,8.73625,79.4059742195489,-102.772926365844, 2813P 3072 -7.118125,0.,0.15,0.,0.,0.; 2813P 3073 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2815P 3074 -79.4059742195489,-102.772926365844,8.73625,79.4059742195489, 2815P 3075 --115.573782067767,8.73625,0.,1.186637840271,0.,0.,0.; 2815P 3076 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2817P 3077 -79.4059742195489,-115.573782067767,7.118125,79.4059742195489, 2817P 3078 --102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2817P 3079 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 2819P 3080 --115.573782067767,8.73625,79.4059742195489,-115.573782067767, 2819P 3081 -7.118125,0.,0.15,0.,0.,0.; 2819P 3082 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2821P 3083 -1.,79.4059742195489,-115.573782067767,8.73625,78.6065598568005, 2821P 3084 --115.573764647157,8.73625,0.,0.0741056188123544,0.,0.,0.; 2821P 3085 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2823P 3086 -1.,1.,78.6065598568005,-115.573764647157,7.118125, 2823P 3087 -79.4059742195489,-115.573782067767,7.118125,-0.0741056188123544, 2823P 3088 -0.,0.,0.,0.; 2823P 3089 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2825P 3090 --115.573764647157,8.73625,78.6065598568005,-115.573764647157, 2825P 3091 -7.118125,0.,0.15,0.,0.,0.; 2825P 3092 -126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2827P 3093 -1.,78.6065598568005,-115.573764647157,8.73625,78.6065598568005, 2827P 3094 --116.173277512542,8.73625,0.,0.0555747731526672,0.,0.,0.; 2827P 3095 -126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2829P 3096 -1.,1.,78.6065598568005,-116.173277512542,7.118125, 2829P 3097 -78.6065598568005,-115.573764647157,7.118125,-0.0555747731526672, 2829P 3098 -0.,0.,0.,0.; 2829P 3099 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 2831P 3100 --116.173277512542,8.73625,78.6065598568005,-116.173277512542, 2831P 3101 -7.118125,0.,0.15,0.,0.,0.; 2831P 3102 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 2833P 3103 -78.6065598568005,-116.173277512542,8.73625,64.6055896359963, 2833P 3104 --116.173277512542,8.73625,0.,1.29788831710816,0.,0.,0.; 2833P 3105 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 2835P 3106 -64.6055896359963,-116.173277512542,7.118125,78.6065598568005, 2835P 3107 --116.173277512542,7.118125,-1.29788831710816,0.,0.,0.,0.; 2835P 3108 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2837P 3109 --116.173277512542,8.73625,64.6055896359963,-116.173277512542, 2837P 3110 -7.118125,0.,0.15,0.,0.,0.; 2837P 3111 -126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2839P 3112 -1.,64.6055896359963,-116.173277512542,8.73625,64.6055896359963, 2839P 3113 --115.573764647157,8.73625,0.,0.0555747731526708,0.,0.,0.; 2839P 3114 -126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2841P 3115 -1.,1.,64.6055896359963,-115.573764647157,7.118125, 2841P 3116 -64.6055896359963,-116.173277512542,7.118125,-0.0555747731526708, 2841P 3117 -0.,0.,0.,0.; 2841P 3118 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2843P 3119 --115.573764647157,8.73625,64.6055896359963,-115.573764647157, 2843P 3120 -7.118125,0.,0.15,0.,0.,0.; 2843P 3121 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 2845P 3122 -1.,64.6055896359963,-115.573764647157,8.73625,63.8061752732478, 2845P 3123 --115.573764647157,8.73625,0.,0.0741056187947589,0.,0.,0.; 2845P 3124 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 2847P 3125 -1.,1.,63.8061752732478,-115.573764647157,7.118125, 2847P 3126 -64.6055896359963,-115.573764647157,7.118125,-0.0741056187947589, 2847P 3127 -0.,0.,0.,0.; 2847P 3128 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2849P 3129 --115.573764647157,8.73625,63.8061752732478,-115.573764647157, 2849P 3130 -7.118125,0.,0.15,0.,0.,0.; 2849P 3131 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2851P 3132 -63.8061752732478,-115.573764647157,8.73625,63.8061752732478, 2851P 3133 --102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2851P 3134 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2853P 3135 -63.8061752732478,-102.772908945234,7.118125,63.8061752732478, 2853P 3136 --115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2853P 3137 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 2855P 3138 --102.772908945234,8.73625,63.8061752732478,-102.772908945234, 2855P 3139 -7.118125,0.,0.15,0.,0.,0.; 2855P 3140 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2857P 3141 -1.,63.8061752732478,-102.772908945234,8.73625,64.6055896359963, 2857P 3142 --102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2857P 3143 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2859P 3144 -1.,1.,64.6055896359963,-102.772926365844,7.118125, 2859P 3145 -63.8061752732478,-102.772908945234,7.118125,-0.0741056188123544, 2859P 3146 -0.,0.,0.,0.; 2859P 3147 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 2861P 3148 --102.772926365844,8.73625,64.6055896359963,-102.772926365844, 2861P 3149 -7.118125,0.,0.15,0.,0.,0.; 2861P 3150 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2863P 3151 -1.,64.6055896359963,-102.772926365844,8.73625,64.6055896359963, 2863P 3152 --102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2863P 3153 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2865P 3154 -1.,1.,64.6055896359963,-102.173622547777,7.118125, 2865P 3155 -64.6055896359963,-102.772926365844,7.118125,-0.0555553944905611, 2865P 3156 -0.,0.,0.,0.; 2865P 3157 -126,1,1,0,0,1,0,0.,0.,1.29779546101989,1.29779546101989,1.,1., 2867P 3158 -45.556222510803,-102.173622547777,8.73625,59.5561910465442, 2867P 3159 --102.173605127167,8.73625,0.,1.29779546101989,0.,0.,0.; 2867P 3160 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2869P 3161 --102.173622547777,8.73625,45.556222510803,-102.173622547777, 2869P 3162 -7.118125,0.,0.15,0.,0.,0.; 2869P 3163 -126,1,1,0,0,1,0,-1.29779546101989,-1.29779546101989,0.,0.,1.,1., 2871P 3164 -59.5561910465442,-102.173605127167,7.118125,45.556222510803, 2871P 3165 --102.173622547777,7.118125,-1.29779546101989,0.,0.,0.,0.; 2871P 3166 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2873P 3167 --102.173605127167,8.73625,59.5561910465442,-102.173605127167, 2873P 3168 -7.118125,0.,0.15,0.,0.,0.; 2873P 3169 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2875P 3170 -1.,59.5561910465442,-102.173605127167,8.73625,59.5561910465442, 2875P 3171 --102.772908945234,8.73625,0.,0.0555553944905611,0.,0.,0.; 2875P 3172 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2877P 3173 -1.,1.,59.5561910465442,-102.772908945234,7.118125, 2877P 3174 -59.5561910465442,-102.173605127167,7.118125,-0.0555553944905611, 2877P 3175 -0.,0.,0.,0.; 2877P 3176 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2879P 3177 --102.772908945234,8.73625,59.5561910465442,-102.772908945234, 2879P 3178 -7.118125,0.,0.15,0.,0.,0.; 2879P 3179 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2881P 3180 -1.,59.5561910465442,-102.772908945234,8.73625,60.3556054092927, 2881P 3181 --102.772926365844,8.73625,0.,0.0741056188123544,0.,0.,0.; 2881P 3182 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2883P 3183 -1.,1.,60.3556054092927,-102.772926365844,7.118125, 2883P 3184 -59.5561910465442,-102.772908945234,7.118125,-0.0741056188123544, 2883P 3185 -0.,0.,0.,0.; 2883P 3186 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2885P 3187 --102.772926365844,8.73625,60.3556054092926,-102.772926365844, 2885P 3188 -7.118125,0.,0.15,0.,0.,0.; 2885P 3189 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2887P 3190 -60.3556054092926,-102.772926365844,8.73625,60.3556054092926, 2887P 3191 --115.573782067767,8.73625,0.,1.186637840271,0.,0.,0.; 2887P 3192 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2889P 3193 -60.3556054092926,-115.573782067767,7.118125,60.3556054092926, 2889P 3194 --102.772926365844,7.118125,-1.186637840271,0.,0.,0.,0.; 2889P 3195 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 2891P 3196 --115.573782067767,8.73625,60.3556054092926,-115.573782067767, 2891P 3197 -7.118125,0.,0.15,0.,0.,0.; 2891P 3198 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 2893P 3199 -1.,60.3556054092926,-115.573782067767,8.73625,59.5561910465442, 2893P 3200 --115.573764647157,8.73625,0.,0.0741056188123544,0.,0.,0.; 2893P 3201 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 2895P 3202 -1.,1.,59.5561910465442,-115.573764647157,7.118125, 2895P 3203 -60.3556054092926,-115.573782067767,7.118125,-0.0741056188123544, 2895P 3204 -0.,0.,0.,0.; 2895P 3205 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2897P 3206 --115.573764647157,8.73625,59.5561910465442,-115.573764647157, 2897P 3207 -7.118125,0.,0.15,0.,0.,0.; 2897P 3208 -126,1,1,0,0,1,0,0.,0.,0.0555747731526672,0.0555747731526672,1., 2899P 3209 -1.,59.5561910465442,-115.573764647157,8.73625,59.5561910465442, 2899P 3210 --116.173277512542,8.73625,0.,0.0555747731526672,0.,0.,0.; 2899P 3211 -126,1,1,0,0,1,0,-0.0555747731526672,-0.0555747731526672,0.,0., 2901P 3212 -1.,1.,59.5561910465442,-116.173277512542,7.118125, 2901P 3213 -59.5561910465442,-115.573764647157,7.118125,-0.0555747731526672, 2901P 3214 -0.,0.,0.,0.; 2901P 3215 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 2903P 3216 --116.173277512542,8.73625,59.5561910465442,-116.173277512542, 2903P 3217 -7.118125,0.,0.15,0.,0.,0.; 2903P 3218 -126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 2905P 3219 -59.5561910465442,-116.173277512542,8.73625,45.556222510803, 2905P 3220 --116.173277512542,8.73625,0.,1.29779546101888,0.,0.,0.; 2905P 3221 -126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 2907P 3222 -45.556222510803,-116.173277512542,7.11812500000001, 2907P 3223 -59.5561910465442,-116.173277512542,7.118125,-1.29779546101888, 2907P 3224 -0.,0.,0.,0.; 2907P 3225 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2909P 3226 --116.173277512542,8.73625,45.556222510803,-116.173277512542, 2909P 3227 -7.118125,0.,0.15,0.,0.,0.; 2909P 3228 -126,1,1,0,0,1,0,0.,0.,0.0555747731526708,0.0555747731526708,1., 2911P 3229 -1.,45.556222510803,-116.173277512542,8.73625,45.556222510803, 2911P 3230 --115.573764647157,8.73625,0.,0.0555747731526708,0.,0.,0.; 2911P 3231 -126,1,1,0,0,1,0,-0.0555747731526708,-0.0555747731526708,0.,0., 2913P 3232 -1.,1.,45.556222510803,-115.573764647157,7.118125, 2913P 3233 -45.556222510803,-116.173277512542,7.118125,-0.0555747731526708, 2913P 3234 -0.,0.,0.,0.; 2913P 3235 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2915P 3236 --115.573764647157,8.73625,45.556222510803,-115.573764647157, 2915P 3237 -7.118125,0.,0.15,0.,0.,0.; 2915P 3238 -126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 2917P 3239 -1.,45.556222510803,-115.573764647157,8.73625,44.7561984267118, 2917P 3240 --115.573764647157,8.73625,0.,0.0741621398925787,0.,0.,0.; 2917P 3241 -126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 2919P 3242 -1.,1.,44.7561984267118,-115.573764647157,7.118125, 2919P 3243 -45.556222510803,-115.573764647157,7.118125,-0.0741621398925787, 2919P 3244 -0.,0.,0.,0.; 2919P 3245 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2921P 3246 --115.573764647157,8.73625,44.7561984267118,-115.573764647157, 2921P 3247 -7.118125,0.,0.15,0.,0.,0.; 2921P 3248 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2923P 3249 -44.7561984267118,-115.573764647157,8.73625,44.7561984267118, 2923P 3250 --102.772908945234,8.73625,0.,1.186637840271,0.,0.,0.; 2923P 3251 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2925P 3252 -44.7561984267118,-102.772908945234,7.118125,44.7561984267118, 2925P 3253 --115.573764647157,7.118125,-1.186637840271,0.,0.,0.,0.; 2925P 3254 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 2927P 3255 --102.772908945234,8.73625,44.7561984267118,-102.772908945234, 2927P 3256 -7.118125,0.,0.15,0.,0.,0.; 2927P 3257 -126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 2929P 3258 -1.,44.7561984267118,-102.772908945234,8.73625,45.556222510803, 2929P 3259 --102.772926365844,8.73625,0.,0.0741621399101609,0.,0.,0.; 2929P 3260 -126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 2931P 3261 -1.,1.,45.556222510803,-102.772926365844,7.118125, 2931P 3262 -44.7561984267118,-102.772908945234,7.118125,-0.0741621399101609, 2931P 3263 -0.,0.,0.,0.; 2931P 3264 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 2933P 3265 --102.772926365844,8.73625,45.556222510803,-102.772926365844, 2933P 3266 -7.118125,0.,0.15,0.,0.,0.; 2933P 3267 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2935P 3268 -1.,45.556222510803,-102.772926365844,8.73625,45.556222510803, 2935P 3269 --102.173622547777,8.73625,0.,0.0555553944905611,0.,0.,0.; 2935P 3270 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2937P 3271 -1.,1.,45.556222510803,-102.173622547777,7.118125, 2937P 3272 -45.556222510803,-102.772926365844,7.118125,-0.0555553944905611, 2937P 3273 -0.,0.,0.,0.; 2937P 3274 -126,1,1,0,0,1,0,0.,0.,1.29791011810303,1.29791011810303,1.,1., 2939P 3275 -140.806868895161,-83.1232450272155,8.73624999999999, 2939P 3276 -154.808074294198,-83.1232450272155,8.73624999999999,0., 2939P 3277 -1.29791011810303,0.,0.,0.; 2939P 3278 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2941P 3279 --83.1232450272155,8.73624999999999,140.806868895161, 2941P 3280 --83.1232450272155,7.11812499999999,0.,0.15,0.,0.,0.; 2941P 3281 -126,1,1,0,0,1,0,-1.29791011810303,-1.29791011810303,0.,0.,1.,1., 2943P 3282 -154.808074294198,-83.1232450272155,7.11812499999999, 2943P 3283 -140.806868895161,-83.1232450272155,7.11812499999999, 2943P 3284 --1.29791011810303,0.,0.,0.,0.; 2943P 3285 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2945P 3286 --83.1232450272156,8.73624999999999,154.808074294198, 2945P 3287 --83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 2945P 3288 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2947P 3289 -1.,154.808074294198,-83.1232450272156,8.73624999999999, 2947P 3290 -154.808074294198,-83.7225488452825,8.73624999999999,0., 2947P 3291 -0.0555553944905611,0.,0.,0.; 2947P 3292 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2949P 3293 -1.,1.,154.808074294198,-83.7225488452825,7.11812499999999, 2949P 3294 -154.808074294198,-83.1232450272156,7.11812499999999, 2949P 3295 --0.0555553944905611,0.,0.,0.,0.; 2949P 3296 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2951P 3297 --83.7225488452825,8.73624999999999,154.808074294198, 2951P 3298 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2951P 3299 -126,1,1,0,0,1,0,0.,0.,0.0740926996866866,0.0740926996866866,1., 2953P 3300 -1.,154.808074294198,-83.7225488452825,8.73624999999999, 2953P 3301 -155.607349292068,-83.7225488452825,8.73624999999999,0., 2953P 3302 -0.0740926996866866,0.,0.,0.; 2953P 3303 -126,1,1,0,0,1,0,-0.0740926996866866,-0.0740926996866866,0.,0., 2955P 3304 -1.,1.,155.607349292068,-83.7225488452825,7.11812499999999, 2955P 3305 -154.808074294198,-83.7225488452825,7.11812499999999, 2955P 3306 --0.0740926996866866,0.,0.,0.,0.; 2955P 3307 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2957P 3308 --83.7225488452825,8.73624999999999,155.607349292068, 2957P 3309 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2957P 3310 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 2959P 3311 -155.607349292068,-83.7225488452825,8.73624999999999, 2959P 3312 -155.607349292068,-96.5234045472058,8.73624999999999,0., 2959P 3313 -1.186637840271,0.,0.,0.; 2959P 3314 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 2961P 3315 -155.607349292068,-96.5234045472058,7.11812499999999, 2961P 3316 -155.607349292068,-83.7225488452825,7.11812499999999, 2961P 3317 --1.186637840271,0.,0.,0.,0.; 2961P 3318 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 2963P 3319 --96.5234045472058,8.73624999999999,155.607349292068, 2963P 3320 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2963P 3321 -126,1,1,0,0,1,0,0.,0.,0.0740926996866866,0.0740926996866866,1., 2965P 3322 -1.,155.607349292068,-96.5234045472058,8.73624999999999, 2965P 3323 -154.808074294198,-96.5234045472058,8.73624999999999,0., 2965P 3324 -0.0740926996866866,0.,0.,0.; 2965P 3325 -126,1,1,0,0,1,0,-0.0740926996866866,-0.0740926996866866,0.,0., 2967P 3326 -1.,1.,154.808074294198,-96.5234045472058,7.11812499999999, 2967P 3327 -155.607349292068,-96.5234045472058,7.11812499999999, 2967P 3328 --0.0740926996866866,0.,0.,0.,0.; 2967P 3329 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2969P 3330 --96.5234045472058,8.73624999999999,154.808074294198, 2969P 3331 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2969P 3332 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 2971P 3333 -1.,154.808074294198,-96.5234045472058,8.73624999999999, 2971P 3334 -154.808074294198,-97.1227083652728,8.73624999999999,0., 2971P 3335 -0.0555553944905611,0.,0.,0.; 2971P 3336 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 2973P 3337 -1.,1.,154.808074294198,-97.1227083652728,7.11812499999999, 2973P 3338 -154.808074294198,-96.5234045472058,7.11812499999999, 2973P 3339 --0.0555553944905611,0.,0.,0.,0.; 2973P 3340 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 2975P 3341 --97.1227083652727,8.73624999999999,154.808074294198, 2975P 3342 --97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 2975P 3343 -126,1,1,0,0,1,0,0.,0.,1.2979097143809,1.2979097143809,1.,1., 2977P 3344 -154.808074294198,-97.1227083652727,8.73624999999999, 2977P 3345 -140.806873250314,-97.1227083652727,8.73624999999999,0., 2977P 3346 -1.2979097143809,0.,0.,0.; 2977P 3347 -126,1,1,0,0,1,0,-1.2979097143809,-1.2979097143809,0.,0.,1.,1., 2979P 3348 -140.806873250314,-97.1227083652727,7.11812499999999, 2979P 3349 -154.808074294198,-97.1227083652727,7.11812499999999, 2979P 3350 --1.2979097143809,0.,0.,0.,0.; 2979P 3351 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 2981P 3352 --97.1227083652727,8.73624999999999,140.806873250314, 2981P 3353 --97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 2981P 3354 -126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 2983P 3355 -1.,140.806873250314,-97.1227083652727,8.73624999999999, 2983P 3356 -140.806868895161,-96.5234045472058,8.73624999999999,0., 2983P 3357 -0.0555553944920281,0.,0.,0.; 2983P 3358 -126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 2985P 3359 -1.,1.,140.806868895161,-96.5234045472058,7.11812499999999, 2985P 3360 -140.806873250314,-97.1227083652727,7.11812499999999, 2985P 3361 --0.0555553944920281,0.,0.,0.,0.; 2985P 3362 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 2987P 3363 --96.5234045472058,8.73624999999999,140.806868895161, 2987P 3364 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2987P 3365 -126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 2989P 3366 -1.,140.806868895161,-96.5234045472058,8.73624999999999, 2989P 3367 -140.007650514273,-96.5234045472058,8.73624999999999,0., 2989P 3368 -0.0740874512990315,0.,0.,0.; 2989P 3369 -126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 2991P 3370 -1.,1.,140.007650514273,-96.5234045472058,7.11812499999999, 2991P 3371 -140.806868895161,-96.5234045472058,7.11812499999999, 2991P 3372 --0.0740874512990315,0.,0.,0.,0.; 2991P 3373 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 2993P 3374 --96.5234045472058,8.73624999999999,140.007650514273, 2993P 3375 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 2993P 3376 -126,1,1,0,0,1,0,0.,0.,1.18663784027107,1.18663784027107,1.,1., 2995P 3377 -140.007650514273,-96.5234045472058,8.73624999999999, 2995P 3378 -140.007654869426,-83.7225488452825,8.73624999999999,0., 2995P 3379 -1.18663784027107,0.,0.,0.; 2995P 3380 -126,1,1,0,0,1,0,-1.18663784027107,-1.18663784027107,0.,0.,1.,1., 2997P 3381 -140.007654869426,-83.7225488452825,7.11812499999999, 2997P 3382 -140.007650514273,-96.5234045472058,7.11812499999999, 2997P 3383 --1.18663784027107,0.,0.,0.,0.; 2997P 3384 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 2999P 3385 --83.7225488452825,8.73624999999999,140.007654869426, 2999P 3386 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 2999P 3387 -126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 3001P 3388 -1.,140.007654869426,-83.7225488452825,8.73624999999999, 3001P 3389 -140.806873250314,-83.7225488452825,8.73624999999999,0., 3001P 3390 -0.0740874512990315,0.,0.,0.; 3001P 3391 -126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 3003P 3392 -1.,1.,140.806873250314,-83.7225488452825,7.11812499999999, 3003P 3393 -140.007654869426,-83.7225488452825,7.11812499999999, 3003P 3394 --0.0740874512990315,0.,0.,0.,0.; 3003P 3395 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3005P 3396 --83.7225488452825,8.73624999999999,140.806873250314, 3005P 3397 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3005P 3398 -126,1,1,0,0,1,0,0.,0.,0.0555553944920281,0.0555553944920281,1., 3007P 3399 -1.,140.806873250314,-83.7225488452825,8.73624999999999, 3007P 3400 -140.806868895161,-83.1232450272155,8.73624999999999,0., 3007P 3401 -0.0555553944920281,0.,0.,0.; 3007P 3402 -126,1,1,0,0,1,0,-0.0555553944920281,-0.0555553944920281,0.,0., 3009P 3403 -1.,1.,140.806868895161,-83.1232450272155,7.11812499999999, 3009P 3404 -140.806873250314,-83.7225488452825,7.11812499999999, 3009P 3405 --0.0555553944920281,0.,0.,0.,0.; 3009P 3406 -126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3011P 3407 -121.756696066765,-83.1232450272155,8.73624999999999, 3011P 3408 -135.757670642722,-83.1232450272155,8.73624999999999,0., 3011P 3409 -1.29788872083028,0.,0.,0.; 3011P 3410 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3013P 3411 --83.1232450272155,8.73624999999999,121.756696066765, 3013P 3412 --83.1232450272155,7.11812499999999,0.,0.15,0.,0.,0.; 3013P 3413 -126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3015P 3414 -135.757670642722,-83.1232450272155,7.11812499999999, 3015P 3415 -121.756696066765,-83.1232450272155,7.118125,-1.29788872083028, 3015P 3416 -0.,0.,0.,0.; 3015P 3417 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3017P 3418 --83.1232450272156,8.73624999999999,135.757670642722, 3017P 3419 --83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 3017P 3420 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3019P 3421 -1.,135.757670642722,-83.1232450272156,8.73624999999999, 3019P 3422 -135.757670642722,-83.7225488452825,8.73624999999999,0., 3019P 3423 -0.0555553944905611,0.,0.,0.; 3019P 3424 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3021P 3425 -1.,1.,135.757670642722,-83.7225488452825,7.11812499999999, 3021P 3426 -135.757670642722,-83.1232450272156,7.11812499999999, 3021P 3427 --0.0555553944905611,0.,0.,0.,0.; 3021P 3428 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3023P 3429 --83.7225488452825,8.73624999999999,135.757670642722, 3023P 3430 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3023P 3431 -126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 3025P 3432 -1.,135.757670642722,-83.7225488452825,8.73624999999999, 3025P 3433 -136.556989192117,-83.7225488452825,8.73624999999999,0., 3025P 3434 -0.0740967369079586,0.,0.,0.; 3025P 3435 -126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 3027P 3436 -1.,1.,136.556989192117,-83.7225488452825,7.11812499999999, 3027P 3437 -135.757670642722,-83.7225488452825,7.11812499999999, 3027P 3438 --0.0740967369079586,0.,0.,0.,0.; 3027P 3439 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3029P 3440 --83.7225488452825,8.73624999999999,136.556989192117, 3029P 3441 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3029P 3442 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3031P 3443 -136.556989192117,-83.7225488452825,8.73624999999999, 3031P 3444 -136.556989192117,-96.5234045472058,8.73624999999999,0., 3031P 3445 -1.186637840271,0.,0.,0.; 3031P 3446 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3033P 3447 -136.556989192117,-96.5234045472058,7.11812499999999, 3033P 3448 -136.556989192117,-83.7225488452825,7.11812499999999, 3033P 3449 --1.186637840271,0.,0.,0.,0.; 3033P 3450 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3035P 3451 --96.5234045472058,8.73624999999999,136.556989192117, 3035P 3452 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3035P 3453 -126,1,1,0,0,1,0,0.,0.,0.0740967369079586,0.0740967369079586,1., 3037P 3454 -1.,136.556989192117,-96.5234045472058,8.73624999999999, 3037P 3455 -135.757670642722,-96.5234045472058,8.73624999999999,0., 3037P 3456 -0.0740967369079586,0.,0.,0.; 3037P 3457 -126,1,1,0,0,1,0,-0.0740967369079586,-0.0740967369079586,0.,0., 3039P 3458 -1.,1.,135.757670642722,-96.5234045472058,7.11812499999999, 3039P 3459 -136.556989192117,-96.5234045472058,7.11812499999999, 3039P 3460 --0.0740967369079586,0.,0.,0.,0.; 3039P 3461 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3041P 3462 --96.5234045472058,8.73624999999999,135.757670642722, 3041P 3463 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3041P 3464 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3043P 3465 -1.,135.757670642722,-96.5234045472058,8.73624999999999, 3043P 3466 -135.757670642722,-97.1227083652728,8.73624999999999,0., 3043P 3467 -0.0555553944905611,0.,0.,0.; 3043P 3468 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3045P 3469 -1.,1.,135.757670642722,-97.1227083652728,7.11812499999999, 3045P 3470 -135.757670642722,-96.5234045472058,7.11812499999999, 3045P 3471 --0.0555553944905611,0.,0.,0.,0.; 3045P 3472 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3047P 3473 --97.1227083652727,8.73624999999999,135.757670642722, 3047P 3474 --97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3047P 3475 -126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3049P 3476 -135.757670642722,-97.1227083652727,8.73624999999999, 3049P 3477 -121.756696066765,-97.1227083652727,8.73624999999999,0., 3049P 3478 -1.29788872083028,0.,0.,0.; 3049P 3479 -126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3051P 3480 -121.756696066765,-97.1227083652727,7.118125,135.757670642722, 3051P 3481 --97.1227083652727,7.11812499999999,-1.29788872083028,0.,0.,0., 3051P 3482 -0.; 3051P 3483 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3053P 3484 --97.1227083652727,8.73624999999999,121.756696066765, 3053P 3485 --97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3053P 3486 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3055P 3487 -1.,121.756696066765,-97.1227083652727,8.73624999999999, 3055P 3488 -121.756696066765,-96.5234045472058,8.73624999999999,0., 3055P 3489 -0.0555553944905611,0.,0.,0.; 3055P 3490 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3057P 3491 -1.,1.,121.756696066765,-96.5234045472058,7.118125, 3057P 3492 -121.756696066765,-97.1227083652727,7.118125,-0.0555553944905611, 3057P 3493 -0.,0.,0.,0.; 3057P 3494 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3059P 3495 --96.5234045472058,8.73624999999999,121.756696066765, 3059P 3496 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3059P 3497 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3061P 3498 -1.,121.756696066765,-96.5234045472058,8.73624999999999, 3061P 3499 -120.957281704017,-96.5234045472058,8.73624999999999,0., 3061P 3500 -0.0741056187947589,0.,0.,0.; 3061P 3501 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3063P 3502 -1.,1.,120.957281704017,-96.5234045472058,7.118125, 3063P 3503 -121.756696066765,-96.5234045472058,7.118125,-0.0741056187947589, 3063P 3504 -0.,0.,0.,0.; 3063P 3505 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3065P 3506 --96.5234045472058,8.73624999999999,120.957281704017, 3065P 3507 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3065P 3508 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3067P 3509 -120.957281704017,-96.5234045472058,8.73624999999999, 3067P 3510 -120.957281704017,-83.7225488452825,8.73624999999999,0., 3067P 3511 -1.186637840271,0.,0.,0.; 3067P 3512 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3069P 3513 -120.957281704017,-83.7225488452825,7.118125,120.957281704017, 3069P 3514 --96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3069P 3515 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3071P 3516 --83.7225488452825,8.73624999999999,120.957281704017, 3071P 3517 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3071P 3518 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3073P 3519 -1.,120.957281704017,-83.7225488452825,8.73624999999999, 3073P 3520 -121.756696066765,-83.7225488452825,8.73624999999999,0., 3073P 3521 -0.0741056187947589,0.,0.,0.; 3073P 3522 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3075P 3523 -1.,1.,121.756696066765,-83.7225488452825,7.118125, 3075P 3524 -120.957281704017,-83.7225488452825,7.118125,-0.0741056187947589, 3075P 3525 -0.,0.,0.,0.; 3075P 3526 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3077P 3527 --83.7225488452825,8.73624999999999,121.756696066765, 3077P 3528 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3077P 3529 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3079P 3530 -1.,121.756696066765,-83.7225488452825,8.73624999999999, 3079P 3531 -121.756696066765,-83.1232450272155,8.73624999999999,0., 3079P 3532 -0.0555553944905611,0.,0.,0.; 3079P 3533 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3081P 3534 -1.,1.,121.756696066765,-83.1232450272155,7.118125, 3081P 3535 -121.756696066765,-83.7225488452825,7.118125,-0.0555553944905611, 3081P 3536 -0.,0.,0.,0.; 3081P 3537 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3083P 3538 -102.706327256509,-83.1232450272155,8.73624999999999, 3083P 3539 -116.707297477313,-83.1232450272155,8.73624999999999,0., 3083P 3540 -1.29788831710816,0.,0.,0.; 3083P 3541 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3085P 3542 --83.1232450272155,8.73624999999999,102.706327256509, 3085P 3543 --83.1232450272155,7.118125,0.,0.15,0.,0.,0.; 3085P 3544 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3087P 3545 -116.707297477313,-83.1232450272155,7.118125,102.706327256509, 3087P 3546 --83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3087P 3547 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3089P 3548 --83.1232450272156,8.73624999999999,116.707297477313, 3089P 3549 --83.1232450272156,7.11812499999999,0.,0.15,0.,0.,0.; 3089P 3550 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3091P 3551 -1.,116.707297477313,-83.1232450272156,8.73624999999999, 3091P 3552 -116.707297477313,-83.7225488452825,8.73624999999999,0., 3091P 3553 -0.0555553944905611,0.,0.,0.; 3091P 3554 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3093P 3555 -1.,1.,116.707297477313,-83.7225488452825,7.118125, 3093P 3556 -116.707297477313,-83.1232450272156,7.118125,-0.0555553944905611, 3093P 3557 -0.,0.,0.,0.; 3093P 3558 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3095P 3559 --83.7225488452825,8.73624999999999,116.707297477313, 3095P 3560 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3095P 3561 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3097P 3562 -1.,116.707297477313,-83.7225488452825,8.73624999999999, 3097P 3563 -117.506711840062,-83.7225488452825,8.73624999999999,0., 3097P 3564 -0.0741056187947589,0.,0.,0.; 3097P 3565 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3099P 3566 -1.,1.,117.506711840062,-83.7225488452825,7.118125, 3099P 3567 -116.707297477313,-83.7225488452825,7.118125,-0.0741056187947589, 3099P 3568 -0.,0.,0.,0.; 3099P 3569 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 3101P 3570 --83.7225488452825,8.73624999999999,117.506711840062, 3101P 3571 --83.7225488452825,7.11812499999999,0.,0.15,0.,0.,0.; 3101P 3572 -126,1,1,0,0,1,0,0.,0.,1.18663784027127,1.18663784027127,1.,1., 3103P 3573 -117.506711840062,-83.7225488452825,8.73624999999999, 3103P 3574 -117.506720550367,-96.5234045472058,8.73624999999999,0., 3103P 3575 -1.18663784027127,0.,0.,0.; 3103P 3576 -126,1,1,0,0,1,0,-1.18663784027127,-1.18663784027127,0.,0.,1.,1., 3105P 3577 -117.506720550367,-96.5234045472058,7.118125,117.506711840062, 3105P 3578 --83.7225488452825,7.118125,-1.18663784027127,0.,0.,0.,0.; 3105P 3579 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 3107P 3580 --96.5234045472058,8.73624999999999,117.506720550367, 3107P 3581 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3107P 3582 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3109P 3583 -1.,117.506720550367,-96.5234045472058,8.73624999999999, 3109P 3584 -116.707306187618,-96.5234045472058,8.73624999999999,0., 3109P 3585 -0.0741056187947589,0.,0.,0.; 3109P 3586 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3111P 3587 -1.,1.,116.707306187618,-96.5234045472058,7.118125, 3111P 3588 -117.506720550367,-96.5234045472058,7.118125,-0.0741056187947589, 3111P 3589 -0.,0.,0.,0.; 3111P 3590 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 3113P 3591 --96.5234045472058,8.73624999999999,116.707306187618, 3113P 3592 --96.5234045472058,7.11812499999999,0.,0.15,0.,0.,0.; 3113P 3593 -126,1,1,0,0,1,0,0.,0.,0.0555553944964288,0.0555553944964288,1., 3115P 3594 -1.,116.707306187618,-96.5234045472058,8.73624999999999, 3115P 3595 -116.707297477313,-97.1227083652728,8.73624999999999,0., 3115P 3596 -0.0555553944964288,0.,0.,0.; 3115P 3597 -126,1,1,0,0,1,0,-0.0555553944964288,-0.0555553944964288,0.,0., 3117P 3598 -1.,1.,116.707297477313,-97.1227083652728,7.118125, 3117P 3599 -116.707306187618,-96.5234045472058,7.118125,-0.0555553944964288, 3117P 3600 -0.,0.,0.,0.; 3117P 3601 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3119P 3602 --97.1227083652727,8.73624999999999,116.707297477313, 3119P 3603 --97.1227083652727,7.11812499999999,0.,0.15,0.,0.,0.; 3119P 3604 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3121P 3605 -116.707297477313,-97.1227083652727,8.73624999999999, 3121P 3606 -102.706327256509,-97.1227083652727,8.73624999999999,0., 3121P 3607 -1.29788831710816,0.,0.,0.; 3121P 3608 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3123P 3609 -102.706327256509,-97.1227083652727,7.118125,116.707297477313, 3123P 3610 --97.1227083652727,7.118125,-1.29788831710816,0.,0.,0.,0.; 3123P 3611 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3125P 3612 --97.1227083652727,8.73624999999999,102.706327256509, 3125P 3613 --97.1227083652727,7.118125,0.,0.15,0.,0.,0.; 3125P 3614 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3127P 3615 -1.,102.706327256509,-97.1227083652727,8.73624999999999, 3127P 3616 -102.706327256509,-96.5234045472058,8.73624999999999,0., 3127P 3617 -0.0555553944905611,0.,0.,0.; 3127P 3618 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3129P 3619 -1.,1.,102.706327256509,-96.5234045472058,7.118125, 3129P 3620 -102.706327256509,-97.1227083652727,7.118125,-0.0555553944905611, 3129P 3621 -0.,0.,0.,0.; 3129P 3622 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3131P 3623 --96.5234045472058,8.73624999999999,102.706327256509, 3131P 3624 --96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3131P 3625 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3133P 3626 -1.,102.706327256509,-96.5234045472058,8.73624999999999, 3133P 3627 -101.90691289376,-96.5234045472058,8.73624999999999,0., 3133P 3628 -0.0741056187947589,0.,0.,0.; 3133P 3629 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3135P 3630 -1.,1.,101.90691289376,-96.5234045472058,7.118125, 3135P 3631 -102.706327256509,-96.5234045472058,7.118125,-0.0741056187947589, 3135P 3632 -0.,0.,0.,0.; 3135P 3633 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3137P 3634 --96.5234045472058,8.73624999999999,101.90691289376, 3137P 3635 --96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3137P 3636 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3139P 3637 -101.90691289376,-96.5234045472058,8.73624999999999, 3139P 3638 -101.90691289376,-83.7225488452825,8.73624999999999,0., 3139P 3639 -1.186637840271,0.,0.,0.; 3139P 3640 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3141P 3641 -101.90691289376,-83.7225488452825,7.118125,101.90691289376, 3141P 3642 --96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3141P 3643 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3143P 3644 --83.7225488452825,8.73624999999999,101.90691289376, 3143P 3645 --83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3143P 3646 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3145P 3647 -1.,101.90691289376,-83.7225488452825,8.73624999999999, 3145P 3648 -102.706327256509,-83.7225488452825,8.73624999999999,0., 3145P 3649 -0.0741056187947589,0.,0.,0.; 3145P 3650 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3147P 3651 -1.,1.,102.706327256509,-83.7225488452825,7.118125, 3147P 3652 -101.90691289376,-83.7225488452825,7.118125,-0.0741056187947589, 3147P 3653 -0.,0.,0.,0.; 3147P 3654 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3149P 3655 --83.7225488452825,8.73624999999999,102.706327256509, 3149P 3656 --83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3149P 3657 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3151P 3658 -1.,102.706327256509,-83.7225488452825,8.73624999999999, 3151P 3659 -102.706327256509,-83.1232450272155,8.73624999999999,0., 3151P 3660 -0.0555553944905611,0.,0.,0.; 3151P 3661 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3153P 3662 -1.,1.,102.706327256509,-83.1232450272155,7.118125, 3153P 3663 -102.706327256509,-83.7225488452825,7.118125,-0.0555553944905611, 3153P 3664 -0.,0.,0.,0.; 3153P 3665 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3155P 3666 -83.6559584462526,-83.1232450272155,8.73625,97.6569286670568, 3155P 3667 --83.1232450272155,8.73624999999999,0.,1.29788831710816,0.,0.,0.; 3155P 3668 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3157P 3669 --83.1232450272155,8.73625,83.6559584462526,-83.1232450272155, 3157P 3670 -7.118125,0.,0.15,0.,0.,0.; 3157P 3671 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3159P 3672 -97.6569286670568,-83.1232450272155,7.118125,83.6559584462526, 3159P 3673 --83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3159P 3674 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3161P 3675 --83.1232450272156,8.73624999999999,97.6569286670568, 3161P 3676 --83.1232450272156,7.118125,0.,0.15,0.,0.,0.; 3161P 3677 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3163P 3678 -1.,97.6569286670568,-83.1232450272156,8.73624999999999, 3163P 3679 -97.6569286670568,-83.7225488452825,8.73624999999999,0., 3163P 3680 -0.0555553944905611,0.,0.,0.; 3163P 3681 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3165P 3682 -1.,1.,97.6569286670568,-83.7225488452825,7.118125, 3165P 3683 -97.6569286670568,-83.1232450272156,7.118125,-0.0555553944905611, 3165P 3684 -0.,0.,0.,0.; 3165P 3685 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3167P 3686 --83.7225488452825,8.73624999999999,97.6569286670568, 3167P 3687 --83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3167P 3688 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3169P 3689 -1.,97.6569286670568,-83.7225488452825,8.73624999999999, 3169P 3690 -98.4563430298053,-83.7225488452825,8.73624999999999,0., 3169P 3691 -0.0741056187947589,0.,0.,0.; 3169P 3692 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3171P 3693 -1.,1.,98.4563430298053,-83.7225488452825,7.118125, 3171P 3694 -97.6569286670568,-83.7225488452825,7.118125,-0.0741056187947589, 3171P 3695 -0.,0.,0.,0.; 3171P 3696 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3173P 3697 --83.7225488452825,8.73624999999999,98.4563430298053, 3173P 3698 --83.7225488452825,7.118125,0.,0.15,0.,0.,0.; 3173P 3699 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3175P 3700 -98.4563430298053,-83.7225488452825,8.73624999999999, 3175P 3701 -98.4563430298053,-96.5234045472058,8.73624999999999,0., 3175P 3702 -1.186637840271,0.,0.,0.; 3175P 3703 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3177P 3704 -98.4563430298053,-96.5234045472058,7.118125,98.4563430298053, 3177P 3705 --83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3177P 3706 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3179P 3707 --96.5234045472058,8.73624999999999,98.4563430298053, 3179P 3708 --96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3179P 3709 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3181P 3710 -1.,98.4563430298053,-96.5234045472058,8.73624999999999, 3181P 3711 -97.6569286670568,-96.5234045472058,8.73624999999999,0., 3181P 3712 -0.0741056187947589,0.,0.,0.; 3181P 3713 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3183P 3714 -1.,1.,97.6569286670568,-96.5234045472058,7.118125, 3183P 3715 -98.4563430298053,-96.5234045472058,7.118125,-0.0741056187947589, 3183P 3716 -0.,0.,0.,0.; 3183P 3717 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3185P 3718 --96.5234045472058,8.73624999999999,97.6569286670568, 3185P 3719 --96.5234045472058,7.118125,0.,0.15,0.,0.,0.; 3185P 3720 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3187P 3721 -1.,97.6569286670568,-96.5234045472058,8.73624999999999, 3187P 3722 -97.6569286670568,-97.1227083652728,8.73624999999999,0., 3187P 3723 -0.0555553944905611,0.,0.,0.; 3187P 3724 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3189P 3725 -1.,1.,97.6569286670568,-97.1227083652728,7.118125, 3189P 3726 -97.6569286670568,-96.5234045472058,7.118125,-0.0555553944905611, 3189P 3727 -0.,0.,0.,0.; 3189P 3728 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3191P 3729 --97.1227083652727,8.73624999999999,97.6569286670568, 3191P 3730 --97.1227083652727,7.118125,0.,0.15,0.,0.,0.; 3191P 3731 -126,1,1,0,0,1,0,0.,0.,1.29788912455241,1.29788912455241,1.,1., 3193P 3732 -97.6569286670568,-97.1227083652727,8.73624999999999, 3193P 3733 -83.6559497359477,-97.1227083652727,8.73625,0.,1.29788912455241, 3193P 3734 -0.,0.,0.; 3193P 3735 -126,1,1,0,0,1,0,-1.29788912455241,-1.29788912455241,0.,0.,1.,1., 3195P 3736 -83.6559497359477,-97.1227083652727,7.118125,97.6569286670568, 3195P 3737 --97.1227083652727,7.118125,-1.29788912455241,0.,0.,0.,0.; 3195P 3738 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 3197P 3739 --97.1227083652727,8.73625,83.6559497359477,-97.1227083652727, 3197P 3740 -7.118125,0.,0.15,0.,0.,0.; 3197P 3741 -126,1,1,0,0,1,0,0.,0.,0.0555553944964288,0.0555553944964288,1., 3199P 3742 -1.,83.6559497359477,-97.1227083652727,8.73625,83.6559584462526, 3199P 3743 --96.5234045472058,8.73625,0.,0.0555553944964288,0.,0.,0.; 3199P 3744 -126,1,1,0,0,1,0,-0.0555553944964288,-0.0555553944964288,0.,0., 3201P 3745 -1.,1.,83.6559584462526,-96.5234045472058,7.118125, 3201P 3746 -83.6559497359477,-97.1227083652727,7.118125,-0.0555553944964288, 3201P 3747 -0.,0.,0.,0.; 3201P 3748 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3203P 3749 --96.5234045472058,8.73625,83.6559584462526,-96.5234045472058, 3203P 3750 -7.118125,0.,0.15,0.,0.,0.; 3203P 3751 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3205P 3752 -1.,83.6559584462526,-96.5234045472058,8.73625,82.8565440835041, 3205P 3753 --96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3205P 3754 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3207P 3755 -1.,1.,82.8565440835041,-96.5234045472058,7.118125, 3207P 3756 -83.6559584462526,-96.5234045472058,7.118125,-0.0741056187947589, 3207P 3757 -0.,0.,0.,0.; 3207P 3758 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3209P 3759 --96.5234045472058,8.73625,82.8565440835042,-96.5234045472058, 3209P 3760 -7.118125,0.,0.15,0.,0.,0.; 3209P 3761 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3211P 3762 -82.8565440835042,-96.5234045472058,8.73625,82.8565440835042, 3211P 3763 --83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3211P 3764 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3213P 3765 -82.8565440835042,-83.7225488452825,7.118125,82.8565440835042, 3213P 3766 --96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3213P 3767 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3215P 3768 --83.7225488452825,8.73625,82.8565440835042,-83.7225488452825, 3215P 3769 -7.118125,0.,0.15,0.,0.,0.; 3215P 3770 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3217P 3771 -1.,82.8565440835042,-83.7225488452825,8.73625,83.6559584462526, 3217P 3772 --83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3217P 3773 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3219P 3774 -1.,1.,83.6559584462526,-83.7225488452825,7.118125, 3219P 3775 -82.8565440835042,-83.7225488452825,7.118125,-0.0741056187947589, 3219P 3776 -0.,0.,0.,0.; 3219P 3777 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3221P 3778 --83.7225488452825,8.73625,83.6559584462526,-83.7225488452825, 3221P 3779 -7.118125,0.,0.15,0.,0.,0.; 3221P 3780 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3223P 3781 -1.,83.6559584462526,-83.7225488452825,8.73625,83.6559584462526, 3223P 3782 --83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3223P 3783 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3225P 3784 -1.,1.,83.6559584462526,-83.1232450272155,7.118125, 3225P 3785 -83.6559584462526,-83.7225488452825,7.118125,-0.0555553944905611, 3225P 3786 -0.,0.,0.,0.; 3225P 3787 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3227P 3788 -64.6055896359963,-83.1232450272155,8.73625,78.6065598568005, 3227P 3789 --83.1232450272155,8.73625,0.,1.29788831710816,0.,0.,0.; 3227P 3790 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3229P 3791 --83.1232450272155,8.73625,64.6055896359963,-83.1232450272155, 3229P 3792 -7.118125,0.,0.15,0.,0.,0.; 3229P 3793 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3231P 3794 -78.6065598568005,-83.1232450272155,7.118125,64.6055896359963, 3231P 3795 --83.1232450272155,7.118125,-1.29788831710816,0.,0.,0.,0.; 3231P 3796 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3233P 3797 --83.1232450272156,8.73625,78.6065598568005,-83.1232450272156, 3233P 3798 -7.118125,0.,0.15,0.,0.,0.; 3233P 3799 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3235P 3800 -1.,78.6065598568005,-83.1232450272156,8.73625,78.6065598568005, 3235P 3801 --83.7225488452825,8.73625,0.,0.0555553944905611,0.,0.,0.; 3235P 3802 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3237P 3803 -1.,1.,78.6065598568005,-83.7225488452825,7.118125, 3237P 3804 -78.6065598568005,-83.1232450272156,7.118125,-0.0555553944905611, 3237P 3805 -0.,0.,0.,0.; 3237P 3806 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3239P 3807 --83.7225488452825,8.73625,78.6065598568005,-83.7225488452825, 3239P 3808 -7.118125,0.,0.15,0.,0.,0.; 3239P 3809 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3241P 3810 -1.,78.6065598568005,-83.7225488452825,8.73625,79.405974219549, 3241P 3811 --83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3241P 3812 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3243P 3813 -1.,1.,79.405974219549,-83.7225488452825,7.118125, 3243P 3814 -78.6065598568005,-83.7225488452825,7.118125,-0.0741056187947589, 3243P 3815 -0.,0.,0.,0.; 3243P 3816 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3245P 3817 --83.7225488452825,8.73625,79.4059742195489,-83.7225488452825, 3245P 3818 -7.118125,0.,0.15,0.,0.,0.; 3245P 3819 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3247P 3820 -79.4059742195489,-83.7225488452825,8.73625,79.4059742195489, 3247P 3821 --96.5234045472058,8.73625,0.,1.186637840271,0.,0.,0.; 3247P 3822 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3249P 3823 -79.4059742195489,-96.5234045472058,7.118125,79.4059742195489, 3249P 3824 --83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3249P 3825 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3251P 3826 --96.5234045472058,8.73625,79.4059742195489,-96.5234045472058, 3251P 3827 -7.118125,0.,0.15,0.,0.,0.; 3251P 3828 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3253P 3829 -1.,79.4059742195489,-96.5234045472058,8.73625,78.6065598568005, 3253P 3830 --96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3253P 3831 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3255P 3832 -1.,1.,78.6065598568005,-96.5234045472058,7.118125, 3255P 3833 -79.4059742195489,-96.5234045472058,7.118125,-0.0741056187947589, 3255P 3834 -0.,0.,0.,0.; 3255P 3835 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3257P 3836 --96.5234045472058,8.73625,78.6065598568005,-96.5234045472058, 3257P 3837 -7.118125,0.,0.15,0.,0.,0.; 3257P 3838 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3259P 3839 -1.,78.6065598568005,-96.5234045472058,8.73625,78.6065598568005, 3259P 3840 --97.1227083652728,8.73625,0.,0.0555553944905611,0.,0.,0.; 3259P 3841 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3261P 3842 -1.,1.,78.6065598568005,-97.1227083652728,7.118125, 3261P 3843 -78.6065598568005,-96.5234045472058,7.118125,-0.0555553944905611, 3261P 3844 -0.,0.,0.,0.; 3261P 3845 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3263P 3846 --97.1227083652727,8.73625,78.6065598568005,-97.1227083652727, 3263P 3847 -7.118125,0.,0.15,0.,0.,0.; 3263P 3848 -126,1,1,0,0,1,0,0.,0.,1.29788831710816,1.29788831710816,1.,1., 3265P 3849 -78.6065598568005,-97.1227083652727,8.73625,64.6055896359963, 3265P 3850 --97.1227083652727,8.73625,0.,1.29788831710816,0.,0.,0.; 3265P 3851 -126,1,1,0,0,1,0,-1.29788831710816,-1.29788831710816,0.,0.,1.,1., 3267P 3852 -64.6055896359963,-97.1227083652727,7.118125,78.6065598568005, 3267P 3853 --97.1227083652727,7.118125,-1.29788831710816,0.,0.,0.,0.; 3267P 3854 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3269P 3855 --97.1227083652727,8.73625,64.6055896359963,-97.1227083652727, 3269P 3856 -7.118125,0.,0.15,0.,0.,0.; 3269P 3857 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3271P 3858 -1.,64.6055896359963,-97.1227083652727,8.73625,64.6055896359963, 3271P 3859 --96.5234045472058,8.73625,0.,0.0555553944905611,0.,0.,0.; 3271P 3860 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3273P 3861 -1.,1.,64.6055896359963,-96.5234045472058,7.118125, 3273P 3862 -64.6055896359963,-97.1227083652727,7.118125,-0.0555553944905611, 3273P 3863 -0.,0.,0.,0.; 3273P 3864 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3275P 3865 --96.5234045472058,8.73625,64.6055896359963,-96.5234045472058, 3275P 3866 -7.118125,0.,0.15,0.,0.,0.; 3275P 3867 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3277P 3868 -1.,64.6055896359963,-96.5234045472058,8.73625,63.8061752732478, 3277P 3869 --96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3277P 3870 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3279P 3871 -1.,1.,63.8061752732478,-96.5234045472058,7.118125, 3279P 3872 -64.6055896359963,-96.5234045472058,7.118125,-0.0741056187947589, 3279P 3873 -0.,0.,0.,0.; 3279P 3874 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3281P 3875 --96.5234045472058,8.73625,63.8061752732478,-96.5234045472058, 3281P 3876 -7.118125,0.,0.15,0.,0.,0.; 3281P 3877 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3283P 3878 -63.8061752732478,-96.5234045472058,8.73625,63.8061752732478, 3283P 3879 --83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3283P 3880 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3285P 3881 -63.8061752732478,-83.7225488452825,7.118125,63.8061752732478, 3285P 3882 --96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3285P 3883 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3287P 3884 --83.7225488452825,8.73625,63.8061752732478,-83.7225488452825, 3287P 3885 -7.118125,0.,0.15,0.,0.,0.; 3287P 3886 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3289P 3887 -1.,63.8061752732478,-83.7225488452825,8.73625,64.6055896359963, 3289P 3888 --83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3289P 3889 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3291P 3890 -1.,1.,64.6055896359963,-83.7225488452825,7.118125, 3291P 3891 -63.8061752732478,-83.7225488452825,7.118125,-0.0741056187947589, 3291P 3892 -0.,0.,0.,0.; 3291P 3893 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3293P 3894 --83.7225488452825,8.73625,64.6055896359963,-83.7225488452825, 3293P 3895 -7.118125,0.,0.15,0.,0.,0.; 3293P 3896 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3295P 3897 -1.,64.6055896359963,-83.7225488452825,8.73625,64.6055896359963, 3295P 3898 --83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3295P 3899 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3297P 3900 -1.,1.,64.6055896359963,-83.1232450272155,7.118125, 3297P 3901 -64.6055896359963,-83.7225488452825,7.118125,-0.0555553944905611, 3297P 3902 -0.,0.,0.,0.; 3297P 3903 -126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 3299P 3904 -45.556222510803,-83.1232450272155,8.73625,59.5561910465442, 3299P 3905 --83.1232450272155,8.73625,0.,1.29779546101888,0.,0.,0.; 3299P 3906 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3301P 3907 --83.1232450272155,8.73625,45.556222510803,-83.1232450272155, 3301P 3908 -7.118125,0.,0.15,0.,0.,0.; 3301P 3909 -126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 3303P 3910 -59.5561910465442,-83.1232450272155,7.118125,45.556222510803, 3303P 3911 --83.1232450272155,7.118125,-1.29779546101888,0.,0.,0.,0.; 3303P 3912 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3305P 3913 --83.1232450272156,8.73625,59.5561910465442,-83.1232450272156, 3305P 3914 -7.118125,0.,0.15,0.,0.,0.; 3305P 3915 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3307P 3916 -1.,59.5561910465442,-83.1232450272156,8.73625,59.5561910465442, 3307P 3917 --83.7225488452825,8.73625,0.,0.0555553944905611,0.,0.,0.; 3307P 3918 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3309P 3919 -1.,1.,59.5561910465442,-83.7225488452825,7.118125, 3309P 3920 -59.5561910465442,-83.1232450272156,7.118125,-0.0555553944905611, 3309P 3921 -0.,0.,0.,0.; 3309P 3922 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3311P 3923 --83.7225488452825,8.73625,59.5561910465442,-83.7225488452825, 3311P 3924 -7.118125,0.,0.15,0.,0.,0.; 3311P 3925 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3313P 3926 -1.,59.5561910465442,-83.7225488452825,8.73625,60.3556054092927, 3313P 3927 --83.7225488452825,8.73625,0.,0.0741056187947589,0.,0.,0.; 3313P 3928 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3315P 3929 -1.,1.,60.3556054092927,-83.7225488452825,7.118125, 3315P 3930 -59.5561910465442,-83.7225488452825,7.118125,-0.0741056187947589, 3315P 3931 -0.,0.,0.,0.; 3315P 3932 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 3317P 3933 --83.7225488452825,8.73625,60.3556054092926,-83.7225488452825, 3317P 3934 -7.118125,0.,0.15,0.,0.,0.; 3317P 3935 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3319P 3936 -60.3556054092926,-83.7225488452825,8.73625,60.3556054092926, 3319P 3937 --96.5234045472058,8.73625,0.,1.186637840271,0.,0.,0.; 3319P 3938 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3321P 3939 -60.3556054092926,-96.5234045472058,7.118125,60.3556054092926, 3321P 3940 --83.7225488452825,7.118125,-1.186637840271,0.,0.,0.,0.; 3321P 3941 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3556054092926, 3323P 3942 --96.5234045472058,8.73625,60.3556054092926,-96.5234045472058, 3323P 3943 -7.118125,0.,0.15,0.,0.,0.; 3323P 3944 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3325P 3945 -1.,60.3556054092926,-96.5234045472058,8.73625,59.5561910465442, 3325P 3946 --96.5234045472058,8.73625,0.,0.0741056187947589,0.,0.,0.; 3325P 3947 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3327P 3948 -1.,1.,59.5561910465442,-96.5234045472058,7.118125, 3327P 3949 -60.3556054092926,-96.5234045472058,7.118125,-0.0741056187947589, 3327P 3950 -0.,0.,0.,0.; 3327P 3951 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3329P 3952 --96.5234045472058,8.73625,59.5561910465442,-96.5234045472058, 3329P 3953 -7.118125,0.,0.15,0.,0.,0.; 3329P 3954 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3331P 3955 -1.,59.5561910465442,-96.5234045472058,8.73625,59.5561910465442, 3331P 3956 --97.1227083652728,8.73625,0.,0.0555553944905611,0.,0.,0.; 3331P 3957 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3333P 3958 -1.,1.,59.5561910465442,-97.1227083652728,7.118125, 3333P 3959 -59.5561910465442,-96.5234045472058,7.118125,-0.0555553944905611, 3333P 3960 -0.,0.,0.,0.; 3333P 3961 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5561910465442, 3335P 3962 --97.1227083652727,8.73625,59.5561910465442,-97.1227083652727, 3335P 3963 -7.118125,0.,0.15,0.,0.,0.; 3335P 3964 -126,1,1,0,0,1,0,0.,0.,1.29779546101888,1.29779546101888,1.,1., 3337P 3965 -59.5561910465442,-97.1227083652727,8.73625,45.556222510803, 3337P 3966 --97.1227083652727,8.73625,0.,1.29779546101888,0.,0.,0.; 3337P 3967 -126,1,1,0,0,1,0,-1.29779546101888,-1.29779546101888,0.,0.,1.,1., 3339P 3968 -45.556222510803,-97.1227083652727,7.11812500000001, 3339P 3969 -59.5561910465442,-97.1227083652727,7.118125,-1.29779546101888, 3339P 3970 -0.,0.,0.,0.; 3339P 3971 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3341P 3972 --97.1227083652727,8.73625,45.556222510803,-97.1227083652727, 3341P 3973 -7.118125,0.,0.15,0.,0.,0.; 3341P 3974 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3343P 3975 -1.,45.556222510803,-97.1227083652727,8.73625,45.556222510803, 3343P 3976 --96.5234045472058,8.73625,0.,0.0555553944905611,0.,0.,0.; 3343P 3977 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3345P 3978 -1.,1.,45.556222510803,-96.5234045472058,7.118125, 3345P 3979 -45.556222510803,-97.1227083652727,7.118125,-0.0555553944905611, 3345P 3980 -0.,0.,0.,0.; 3345P 3981 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3347P 3982 --96.5234045472058,8.73625,45.556222510803,-96.5234045472058, 3347P 3983 -7.118125,0.,0.15,0.,0.,0.; 3347P 3984 -126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 3349P 3985 -1.,45.556222510803,-96.5234045472058,8.73625,44.7561984267118, 3349P 3986 --96.5234045472058,8.73625,0.,0.0741621398925787,0.,0.,0.; 3349P 3987 -126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 3351P 3988 -1.,1.,44.7561984267118,-96.5234045472058,7.118125, 3351P 3989 -45.556222510803,-96.5234045472058,7.118125,-0.0741621398925787, 3351P 3990 -0.,0.,0.,0.; 3351P 3991 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 3353P 3992 --96.5234045472058,8.73625,44.7561984267118,-96.5234045472058, 3353P 3993 -7.118125,0.,0.15,0.,0.,0.; 3353P 3994 -126,1,1,0,0,1,0,0.,0.,1.186637840271,1.186637840271,1.,1., 3355P 3995 -44.7561984267118,-96.5234045472058,8.73625,44.7561984267118, 3355P 3996 --83.7225488452825,8.73625,0.,1.186637840271,0.,0.,0.; 3355P 3997 -126,1,1,0,0,1,0,-1.186637840271,-1.186637840271,0.,0.,1.,1., 3357P 3998 -44.7561984267118,-83.7225488452825,7.118125,44.7561984267118, 3357P 3999 --96.5234045472058,7.118125,-1.186637840271,0.,0.,0.,0.; 3357P 4000 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7561984267118, 3359P 4001 --83.7225488452825,8.73625,44.7561984267118,-83.7225488452825, 3359P 4002 -7.118125,0.,0.15,0.,0.,0.; 3359P 4003 -126,1,1,0,0,1,0,0.,0.,0.0741621398925787,0.0741621398925787,1., 3361P 4004 -1.,44.7561984267118,-83.7225488452825,8.73625,45.556222510803, 3361P 4005 --83.7225488452825,8.73625,0.,0.0741621398925787,0.,0.,0.; 3361P 4006 -126,1,1,0,0,1,0,-0.0741621398925787,-0.0741621398925787,0.,0., 3363P 4007 -1.,1.,45.556222510803,-83.7225488452825,7.118125, 3363P 4008 -44.7561984267118,-83.7225488452825,7.118125,-0.0741621398925787, 3363P 4009 -0.,0.,0.,0.; 3363P 4010 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.556222510803, 3365P 4011 --83.7225488452825,8.73625,45.556222510803,-83.7225488452825, 3365P 4012 -7.118125,0.,0.15,0.,0.,0.; 3365P 4013 -126,1,1,0,0,1,0,0.,0.,0.0555553944905611,0.0555553944905611,1., 3367P 4014 -1.,45.556222510803,-83.7225488452825,8.73625,45.556222510803, 3367P 4015 --83.1232450272155,8.73625,0.,0.0555553944905611,0.,0.,0.; 3367P 4016 -126,1,1,0,0,1,0,-0.0555553944905611,-0.0555553944905611,0.,0., 3369P 4017 -1.,1.,45.556222510803,-83.1232450272155,7.118125, 3369P 4018 -45.556222510803,-83.7225488452825,7.118125,-0.0555553944905611, 3369P 4019 -0.,0.,0.,0.; 3369P 4020 -126,1,1,0,0,1,0,0.,0.,1.29791011810303,1.29791011810303,1.,1., 3371P 4021 -140.806868895161,-64.0711428662849,8.73624999999999, 3371P 4022 -154.808074294198,-64.0711428662849,8.73624999999999,0., 3371P 4023 -1.29791011810303,0.,0.,0.; 3371P 4024 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 3373P 4025 --64.0711428662849,8.73624999999999,140.806868895161, 3373P 4026 --64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3373P 4027 -126,1,1,0,0,1,0,-1.29791011810303,-1.29791011810303,0.,0.,1.,1., 3375P 4028 -154.808074294198,-64.0711428662849,7.11812499999999, 3375P 4029 -140.806868895161,-64.0711428662849,7.11812499999999, 3375P 4030 --1.29791011810303,0.,0.,0.,0.; 3375P 4031 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3377P 4032 --64.0711428662849,8.73624999999999,154.808074294198, 3377P 4033 --64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3377P 4034 -126,1,1,0,0,1,0,0.,0.,0.0557168833414714,0.0557168833414714,1., 3379P 4035 -1.,154.808074294198,-64.0711428662849,8.73624999999999, 3379P 4036 -154.808074294198,-64.672188745331,8.73624999999999,0., 3379P 4037 -0.0557168833414714,0.,0.,0.; 3379P 4038 -126,1,1,0,0,1,0,-0.0557168833414714,-0.0557168833414714,0.,0., 3381P 4039 -1.,1.,154.808074294198,-64.672188745331,7.11812499999999, 3381P 4040 -154.808074294198,-64.0711428662849,7.11812499999999, 3381P 4041 --0.0557168833414714,0.,0.,0.,0.; 3381P 4042 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3383P 4043 --64.672188745331,8.73624999999999,154.808074294198, 3383P 4044 --64.672188745331,7.11812499999999,0.,0.15,0.,0.,0.; 3383P 4045 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 3385P 4046 -1.,154.808074294198,-64.672188745331,8.73624999999999, 3385P 4047 -155.607349292068,-64.6721713247213,8.73624999999999,0., 3385P 4048 -0.0740926997042853,0.,0.,0.; 3385P 4049 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 3387P 4050 -1.,1.,155.607349292068,-64.6721713247213,7.11812499999999, 3387P 4051 -154.808074294198,-64.672188745331,7.11812499999999, 3387P 4052 --0.0740926997042853,0.,0.,0.,0.; 3387P 4053 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 3389P 4054 --64.6721713247213,8.73624999999999,155.607349292068, 3389P 4055 --64.6721713247213,7.11812499999999,0.,0.15,0.,0.,0.; 3389P 4056 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3391P 4057 -155.607349292068,-64.6721713247213,8.73624999999999, 3391P 4058 -155.607349292068,-77.4716159572515,8.73624999999999,0., 3391P 4059 -1.18650703430176,0.,0.,0.; 3391P 4060 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3393P 4061 -155.607349292068,-77.4716159572515,7.11812499999999, 3393P 4062 -155.607349292068,-64.6721713247213,7.11812499999999, 3393P 4063 --1.18650703430176,0.,0.,0.,0.; 3393P 4064 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.607349292068, 3395P 4065 --77.4716159572515,8.73624999999999,155.607349292068, 3395P 4066 --77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3395P 4067 -126,1,1,0,0,1,0,0.,0.,0.0740926997042853,0.0740926997042853,1., 3397P 4068 -1.,155.607349292068,-77.4716159572515,8.73624999999999, 3397P 4069 -154.808074294198,-77.4716333778612,8.73624999999999,0., 3397P 4070 -0.0740926997042853,0.,0.,0.; 3397P 4071 -126,1,1,0,0,1,0,-0.0740926997042853,-0.0740926997042853,0.,0., 3399P 4072 -1.,1.,154.808074294198,-77.4716333778612,7.11812499999999, 3399P 4073 -155.607349292068,-77.4716159572515,7.11812499999999, 3399P 4074 --0.0740926997042853,0.,0.,0.,0.; 3399P 4075 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3401P 4076 --77.4716333778613,8.73624999999999,154.808074294198, 3401P 4077 --77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3401P 4078 -126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3403P 4079 -1.,154.808074294198,-77.4716333778613,8.73624999999999, 3403P 4080 -154.808074294198,-78.0723482653214,8.73624999999999,0., 3403P 4081 -0.0556862004597996,0.,0.,0.; 3403P 4082 -126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3405P 4083 -1.,1.,154.808074294198,-78.0723482653214,7.11812499999999, 3405P 4084 -154.808074294198,-77.4716333778613,7.11812499999999, 3405P 4085 --0.0556862004597996,0.,0.,0.,0.; 3405P 4086 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,154.808074294198, 3407P 4087 --78.0723482653214,8.73624999999999,154.808074294198, 3407P 4088 --78.0723482653214,7.11812499999999,0.,0.15,0.,0.,0.; 3407P 4089 -126,1,1,0,0,1,0,0.,0.,1.2979097143819,1.2979097143819,1.,1., 3409P 4090 -154.808074294198,-78.0723482653214,8.73624999999999, 3409P 4091 -140.806873250314,-78.0723308447116,8.73624999999999,0., 3409P 4092 -1.2979097143819,0.,0.,0.; 3409P 4093 -126,1,1,0,0,1,0,-1.2979097143819,-1.2979097143819,0.,0.,1.,1., 3411P 4094 -140.806873250314,-78.0723308447116,7.11812499999999, 3411P 4095 -154.808074294198,-78.0723482653214,7.11812499999999, 3411P 4096 --1.2979097143819,0.,0.,0.,0.; 3411P 4097 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3413P 4098 --78.0723308447116,8.73624999999999,140.806873250314, 3413P 4099 --78.0723308447116,7.11812499999999,0.,0.15,0.,0.,0.; 3413P 4100 -126,1,1,0,0,1,0,0.,0.,0.0556862004612666,0.0556862004612666,1., 3415P 4101 -1.,140.806873250314,-78.0723308447116,8.73624999999999, 3415P 4102 -140.806868895161,-77.4716159572514,8.73624999999999,0., 3415P 4103 -0.0556862004612666,0.,0.,0.; 3415P 4104 -126,1,1,0,0,1,0,-0.0556862004612666,-0.0556862004612666,0.,0., 3417P 4105 -1.,1.,140.806868895161,-77.4716159572514,7.11812499999999, 3417P 4106 -140.806873250314,-78.0723308447116,7.11812499999999, 3417P 4107 --0.0556862004612666,0.,0.,0.,0.; 3417P 4108 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806868895161, 3419P 4109 --77.4716159572515,8.73624999999999,140.806868895161, 3419P 4110 --77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3419P 4111 -126,1,1,0,0,1,0,0.,0.,0.0740874513166314,0.0740874513166314,1., 3421P 4112 -1.,140.806868895161,-77.4716159572515,8.73624999999999, 3421P 4113 -140.007650514273,-77.4716333778613,8.73624999999999,0., 3421P 4114 -0.0740874513166314,0.,0.,0.; 3421P 4115 -126,1,1,0,0,1,0,-0.0740874513166314,-0.0740874513166314,0.,0., 3423P 4116 -1.,1.,140.007650514273,-77.4716333778613,7.11812499999999, 3423P 4117 -140.806868895161,-77.4716159572515,7.11812499999999, 3423P 4118 --0.0740874513166314,0.,0.,0.,0.; 3423P 4119 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007650514273, 3425P 4120 --77.4716333778613,8.73624999999999,140.007650514273, 3425P 4121 --77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3425P 4122 -126,1,1,0,0,1,0,0.,0.,1.18652964274096,1.18652964274096,1.,1., 3427P 4123 -140.007650514273,-77.4716333778613,8.73624999999999, 3427P 4124 -140.007654869426,-64.671944856794,8.73624999999999,0., 3427P 4125 -1.18652964274096,0.,0.,0.; 3427P 4126 -126,1,1,0,0,1,0,-1.18652964274096,-1.18652964274096,0.,0.,1.,1., 3429P 4127 -140.007654869426,-64.671944856794,7.11812499999999, 3429P 4128 -140.007650514273,-77.4716333778613,7.11812499999999, 3429P 4129 --1.18652964274096,0.,0.,0.,0.; 3429P 4130 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.007654869426, 3431P 4131 --64.6719448567939,8.73624999999999,140.007654869426, 3431P 4132 --64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3431P 4133 -126,1,1,0,0,1,0,0.,0.,0.0740874512990315,0.0740874512990315,1., 3433P 4134 -1.,140.007654869426,-64.6719448567939,8.73624999999999, 3433P 4135 -140.806873250314,-64.6719448567939,8.73624999999999,0., 3433P 4136 -0.0740874512990315,0.,0.,0.; 3433P 4137 -126,1,1,0,0,1,0,-0.0740874512990315,-0.0740874512990315,0.,0., 3435P 4138 -1.,1.,140.806873250314,-64.6719448567939,7.11812499999999, 3435P 4139 -140.007654869426,-64.6719448567939,7.11812499999999, 3435P 4140 --0.0740874512990315,0.,0.,0.,0.; 3435P 4141 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,140.806873250314, 3437P 4142 --64.6719448567939,8.73624999999999,140.806873250314, 3437P 4143 --64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3437P 4144 -126,1,1,0,0,1,0,0.,0.,0.0556942749038067,0.0556942749038067,1., 3439P 4145 -1.,140.806873250314,-64.6719448567939,8.73624999999999, 3439P 4146 -140.806868895161,-64.0711428662849,8.73624999999999,0., 3439P 4147 -0.0556942749038067,0.,0.,0.; 3439P 4148 -126,1,1,0,0,1,0,-0.0556942749038067,-0.0556942749038067,0.,0., 3441P 4149 -1.,1.,140.806868895161,-64.0711428662849,7.11812499999999, 3441P 4150 -140.806873250314,-64.6719448567939,7.11812499999999, 3441P 4151 --0.0556942749038067,0.,0.,0.,0.; 3441P 4152 -126,1,1,0,0,1,0,0.,0.,1.29788872083028,1.29788872083028,1.,1., 3443P 4153 -121.756696066765,-64.0711428662849,8.73624999999999, 3443P 4154 -135.757670642722,-64.0711428662849,8.73624999999999,0., 3443P 4155 -1.29788872083028,0.,0.,0.; 3443P 4156 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3445P 4157 --64.0711428662849,8.73624999999999,121.756696066765, 3445P 4158 --64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3445P 4159 -126,1,1,0,0,1,0,-1.29788872083028,-1.29788872083028,0.,0.,1.,1., 3447P 4160 -135.757670642722,-64.0711428662849,7.11812499999999, 3447P 4161 -121.756696066765,-64.0711428662849,7.118125,-1.29788872083028, 3447P 4162 -0.,0.,0.,0.; 3447P 4163 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3449P 4164 --64.0711428662849,8.73624999999999,135.757670642722, 3449P 4165 --64.0711428662849,7.11812499999999,0.,0.15,0.,0.,0.; 3449P 4166 -126,1,1,0,0,1,0,0.,0.,0.0684050623575843,0.0684050623575843,1., 3451P 4167 -1.,135.757670642722,-64.0711428662849,8.73624999999999, 3451P 4168 -135.757670642722,-64.8090624764673,8.73624999999999,0., 3451P 4169 -0.0684050623575843,0.,0.,0.; 3451P 4170 -126,1,1,0,0,1,0,-0.0684050623575843,-0.0684050623575843,0.,0., 3453P 4171 -1.,1.,135.757670642722,-64.8090624764673,7.11812499999999, 3453P 4172 -135.757670642722,-64.0711428662849,7.11812499999999, 3453P 4173 --0.0684050623575843,0.,0.,0.,0.; 3453P 4174 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3455P 4175 --64.8090624764674,8.73624999999999,135.757670642722, 3455P 4176 --64.8090624764674,7.11812499999999,0.,0.15,0.,0.,0.; 3455P 4177 -126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 3457P 4178 -1.,135.757670642722,-64.8090624764674,8.73624999999999, 3457P 4179 -136.556989192117,-64.8090450558576,8.73624999999999,0., 3457P 4180 -0.0740967369255563,0.,0.,0.; 3457P 4181 -126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 3459P 4182 -1.,1.,136.556989192117,-64.8090450558576,7.11812499999999, 3459P 4183 -135.757670642722,-64.8090624764674,7.11812499999999, 3459P 4184 --0.0740967369255563,0.,0.,0.,0.; 3459P 4185 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3461P 4186 --64.8090450558576,8.73624999999999,136.556989192117, 3461P 4187 --64.8090450558576,7.11812499999999,0.,0.15,0.,0.,0.; 3461P 4188 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3463P 4189 -136.556989192117,-64.8090450558576,8.73624999999999, 3463P 4190 -136.556989192117,-77.6084896883878,8.73624999999999,0., 3463P 4191 -1.18650703430176,0.,0.,0.; 3463P 4192 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3465P 4193 -136.556989192117,-77.6084896883878,7.11812499999999, 3465P 4194 -136.556989192117,-64.8090450558576,7.11812499999999, 3465P 4195 --1.18650703430176,0.,0.,0.,0.; 3465P 4196 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,136.556989192117, 3467P 4197 --77.6084896883878,8.73624999999999,136.556989192117, 3467P 4198 --77.6084896883878,7.11812499999999,0.,0.15,0.,0.,0.; 3467P 4199 -126,1,1,0,0,1,0,0.,0.,0.0740967369255563,0.0740967369255563,1., 3469P 4200 -1.,136.556989192117,-77.6084896883878,8.73624999999999, 3469P 4201 -135.757670642722,-77.6085071089976,8.73624999999999,0., 3469P 4202 -0.0740967369255563,0.,0.,0.; 3469P 4203 -126,1,1,0,0,1,0,-0.0740967369255563,-0.0740967369255563,0.,0., 3471P 4204 -1.,1.,135.757670642722,-77.6085071089976,7.11812499999999, 3471P 4205 -136.556989192117,-77.6084896883878,7.11812499999999, 3471P 4206 --0.0740967369255563,0.,0.,0.,0.; 3471P 4207 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3473P 4208 --77.6085071089976,8.73624999999999,135.757670642722, 3473P 4209 --77.6085071089976,7.11812499999999,0.,0.15,0.,0.,0.; 3473P 4210 -126,1,1,0,0,1,0,0.,0.,0.0429980214436831,0.0429980214436831,1., 3475P 4211 -1.,135.757670642722,-77.6085071089976,8.73624999999999, 3475P 4212 -135.757670642722,-78.0723482653213,8.73624999999999,0., 3475P 4213 -0.0429980214436831,0.,0.,0.; 3475P 4214 -126,1,1,0,0,1,0,-0.0429980214436831,-0.0429980214436831,0.,0., 3477P 4215 -1.,1.,135.757670642722,-78.0723482653213,7.11812499999999, 3477P 4216 -135.757670642722,-77.6085071089976,7.11812499999999, 3477P 4217 --0.0429980214436831,0.,0.,0.,0.; 3477P 4218 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,135.757670642722, 3479P 4219 --78.0723482653213,8.73624999999999,135.757670642722, 3479P 4220 --78.0723482653213,7.11812499999999,0.,0.15,0.,0.,0.; 3479P 4221 -126,1,1,0,0,1,0,0.,0.,1.29788872083129,1.29788872083129,1.,1., 3481P 4222 -135.757670642722,-78.0723482653213,8.73624999999999, 3481P 4223 -121.756696066765,-78.0723308447116,8.73624999999999,0., 3481P 4224 -1.29788872083129,0.,0.,0.; 3481P 4225 -126,1,1,0,0,1,0,-1.29788872083129,-1.29788872083129,0.,0.,1.,1., 3483P 4226 -121.756696066765,-78.0723308447116,7.118125,135.757670642722, 3483P 4227 --78.0723482653213,7.11812499999999,-1.29788872083129,0.,0.,0., 3483P 4228 -0.; 3483P 4229 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3485P 4230 --78.0723308447116,8.73624999999999,121.756696066765, 3485P 4231 --78.0723308447116,7.11812499999999,0.,0.15,0.,0.,0.; 3485P 4232 -126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3487P 4233 -1.,121.756696066765,-78.0723308447116,8.73624999999999, 3487P 4234 -121.756696066765,-77.4716159572514,8.73624999999999,0., 3487P 4235 -0.0556862004598031,0.,0.,0.; 3487P 4236 -126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3489P 4237 -1.,1.,121.756696066765,-77.4716159572514,7.118125, 3489P 4238 -121.756696066765,-78.0723308447116,7.118125,-0.0556862004598031, 3489P 4239 -0.,0.,0.,0.; 3489P 4240 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3491P 4241 --77.4716159572515,8.73624999999999,121.756696066765, 3491P 4242 --77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3491P 4243 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3493P 4244 -1.,121.756696066765,-77.4716159572515,8.73624999999999, 3493P 4245 -120.957281704017,-77.4716333778613,8.73624999999999,0., 3493P 4246 -0.0741056188123544,0.,0.,0.; 3493P 4247 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3495P 4248 -1.,1.,120.957281704017,-77.4716333778613,7.118125, 3495P 4249 -121.756696066765,-77.4716159572515,7.118125,-0.0741056188123544, 3495P 4250 -0.,0.,0.,0.; 3495P 4251 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3497P 4252 --77.4716333778613,8.73624999999999,120.957281704017, 3497P 4253 --77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3497P 4254 -126,1,1,0,0,1,0,0.,0.,1.18652964274089,1.18652964274089,1.,1., 3499P 4255 -120.957281704017,-77.4716333778613,8.73624999999999, 3499P 4256 -120.957281704017,-64.671944856794,8.73624999999999,0., 3499P 4257 -1.18652964274089,0.,0.,0.; 3499P 4258 -126,1,1,0,0,1,0,-1.18652964274089,-1.18652964274089,0.,0.,1.,1., 3501P 4259 -120.957281704017,-64.671944856794,7.118125,120.957281704017, 3501P 4260 --77.4716333778613,7.118125,-1.18652964274089,0.,0.,0.,0.; 3501P 4261 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,120.957281704017, 3503P 4262 --64.6719448567939,8.73624999999999,120.957281704017, 3503P 4263 --64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3503P 4264 -126,1,1,0,0,1,0,0.,0.,0.0741056187947589,0.0741056187947589,1., 3505P 4265 -1.,120.957281704017,-64.6719448567939,8.73624999999999, 3505P 4266 -121.756696066765,-64.6719448567939,8.73624999999999,0., 3505P 4267 -0.0741056187947589,0.,0.,0.; 3505P 4268 -126,1,1,0,0,1,0,-0.0741056187947589,-0.0741056187947589,0.,0., 3507P 4269 -1.,1.,121.756696066765,-64.6719448567939,7.118125, 3507P 4270 -120.957281704017,-64.6719448567939,7.118125,-0.0741056187947589, 3507P 4271 -0.,0.,0.,0.; 3507P 4272 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,121.756696066765, 3509P 4273 --64.6719448567939,8.73624999999999,121.756696066765, 3509P 4274 --64.6719448567939,7.11812499999999,0.,0.15,0.,0.,0.; 3509P 4275 -126,1,1,0,0,1,0,0.,0.,0.0556942749023435,0.0556942749023435,1., 3511P 4276 -1.,121.756696066765,-64.6719448567939,8.73624999999999, 3511P 4277 -121.756696066765,-64.0711428662849,8.73624999999999,0., 3511P 4278 -0.0556942749023435,0.,0.,0.; 3511P 4279 -126,1,1,0,0,1,0,-0.0556942749023435,-0.0556942749023435,0.,0., 3513P 4280 -1.,1.,121.756696066765,-64.0711428662849,7.118125, 3513P 4281 -121.756696066765,-64.6719448567939,7.118125,-0.0556942749023435, 3513P 4282 -0.,0.,0.,0.; 3513P 4283 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3515P 4284 -102.706327256509,-64.0713519136024,8.73624999999999, 3515P 4285 -116.707297477313,-64.0713693342122,8.73624999999999,0., 3515P 4286 -1.29788831710916,0.,0.,0.; 3515P 4287 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3517P 4288 --64.0713519136024,8.73624999999999,102.706327256509, 3517P 4289 --64.0713519136024,7.118125,0.,0.15,0.,0.,0.; 3517P 4290 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3519P 4291 -116.707297477313,-64.0713693342122,7.118125,102.706327256509, 3519P 4292 --64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3519P 4293 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3521P 4294 --64.0713693342122,8.73624999999999,116.707297477313, 3521P 4295 --64.0713693342122,7.11812499999999,0.,0.15,0.,0.,0.; 3521P 4296 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3523P 4297 -1.,116.707297477313,-64.0713693342122,8.73624999999999, 3523P 4298 -116.707297477313,-64.672188745331,8.73624999999999,0., 3523P 4299 -0.0556958897908544,0.,0.,0.; 3523P 4300 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3525P 4301 -1.,1.,116.707297477313,-64.672188745331,7.118125, 3525P 4302 -116.707297477313,-64.0713693342122,7.118125,-0.0556958897908544, 3525P 4303 -0.,0.,0.,0.; 3525P 4304 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3527P 4305 --64.6721887453311,8.73624999999999,116.707297477313, 3527P 4306 --64.6721887453311,7.11812499999999,0.,0.15,0.,0.,0.; 3527P 4307 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3529P 4308 -1.,116.707297477313,-64.6721887453311,8.73624999999999, 3529P 4309 -117.506711840062,-64.6721713247213,8.73624999999999,0., 3529P 4310 -0.0741056188123544,0.,0.,0.; 3529P 4311 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3531P 4312 -1.,1.,117.506711840062,-64.6721713247213,7.118125, 3531P 4313 -116.707297477313,-64.6721887453311,7.118125,-0.0741056188123544, 3531P 4314 -0.,0.,0.,0.; 3531P 4315 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506711840062, 3533P 4316 --64.6721713247213,8.73624999999999,117.506711840062, 3533P 4317 --64.6721713247213,7.11812499999999,0.,0.15,0.,0.,0.; 3533P 4318 -126,1,1,0,0,1,0,0.,0.,1.18650703430203,1.18650703430203,1.,1., 3535P 4319 -117.506711840062,-64.6721713247213,8.73624999999999, 3535P 4320 -117.506720550367,-77.4716159572515,8.73624999999999,0., 3535P 4321 -1.18650703430203,0.,0.,0.; 3535P 4322 -126,1,1,0,0,1,0,-1.18650703430203,-1.18650703430203,0.,0.,1.,1., 3537P 4323 -117.506720550367,-77.4716159572515,7.118125,117.506711840062, 3537P 4324 --64.6721713247213,7.118125,-1.18650703430203,0.,0.,0.,0.; 3537P 4325 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,117.506720550367, 3539P 4326 --77.4716159572515,8.73624999999999,117.506720550367, 3539P 4327 --77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3539P 4328 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3541P 4329 -1.,117.506720550367,-77.4716159572515,8.73624999999999, 3541P 4330 -116.707306187618,-77.4716333778612,8.73624999999999,0., 3541P 4331 -0.0741056188123544,0.,0.,0.; 3541P 4332 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3543P 4333 -1.,1.,116.707306187618,-77.4716333778612,7.118125, 3543P 4334 -117.506720550367,-77.4716159572515,7.118125,-0.0741056188123544, 3543P 4335 -0.,0.,0.,0.; 3543P 4336 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707306187618, 3545P 4337 --77.4716333778613,8.73624999999999,116.707306187618, 3545P 4338 --77.4716333778613,7.11812499999999,0.,0.15,0.,0.,0.; 3545P 4339 -126,1,1,0,0,1,0,0.,0.,0.0556862004656535,0.0556862004656535,1., 3547P 4340 -1.,116.707306187618,-77.4716333778613,8.73624999999999, 3547P 4341 -116.707297477313,-78.0723482653214,8.73624999999999,0., 3547P 4342 -0.0556862004656535,0.,0.,0.; 3547P 4343 -126,1,1,0,0,1,0,-0.0556862004656535,-0.0556862004656535,0.,0., 3549P 4344 -1.,1.,116.707297477313,-78.0723482653214,7.118125, 3549P 4345 -116.707306187618,-77.4716333778613,7.118125,-0.0556862004656535, 3549P 4346 -0.,0.,0.,0.; 3549P 4347 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,116.707297477313, 3551P 4348 --78.0723482653214,8.73624999999999,116.707297477313, 3551P 4349 --78.0723482653214,7.11812499999999,0.,0.15,0.,0.,0.; 3551P 4350 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3553P 4351 -116.707297477313,-78.0723482653214,8.73624999999999, 3553P 4352 -102.706327256509,-78.0723308447116,8.73624999999999,0., 3553P 4353 -1.29788831710916,0.,0.,0.; 3553P 4354 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3555P 4355 -102.706327256509,-78.0723308447116,7.118125,116.707297477313, 3555P 4356 --78.0723482653214,7.118125,-1.29788831710916,0.,0.,0.,0.; 3555P 4357 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3557P 4358 --78.0723308447116,8.73624999999999,102.706327256509, 3557P 4359 --78.0723308447116,7.118125,0.,0.15,0.,0.,0.; 3557P 4360 -126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3559P 4361 -1.,102.706327256509,-78.0723308447116,8.73624999999999, 3559P 4362 -102.706327256509,-77.4716159572514,8.73624999999999,0., 3559P 4363 -0.0556862004598031,0.,0.,0.; 3559P 4364 -126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3561P 4365 -1.,1.,102.706327256509,-77.4716159572514,7.118125, 3561P 4366 -102.706327256509,-78.0723308447116,7.118125,-0.0556862004598031, 3561P 4367 -0.,0.,0.,0.; 3561P 4368 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3563P 4369 --77.4716159572515,8.73624999999999,102.706327256509, 3563P 4370 --77.4716159572515,7.118125,0.,0.15,0.,0.,0.; 3563P 4371 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3565P 4372 -1.,102.706327256509,-77.4716159572515,8.73624999999999, 3565P 4373 -101.90691289376,-77.4716333778613,8.73624999999999,0., 3565P 4374 -0.0741056188123544,0.,0.,0.; 3565P 4375 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3567P 4376 -1.,1.,101.90691289376,-77.4716333778613,7.118125, 3567P 4377 -102.706327256509,-77.4716159572515,7.118125,-0.0741056188123544, 3567P 4378 -0.,0.,0.,0.; 3567P 4379 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3569P 4380 --77.4716333778613,8.73624999999999,101.90691289376, 3569P 4381 --77.4716333778613,7.118125,0.,0.15,0.,0.,0.; 3569P 4382 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3571P 4383 -101.90691289376,-77.4716333778613,8.73624999999999, 3571P 4384 -101.90691289376,-64.672188745331,8.73624999999999,0., 3571P 4385 -1.18650703430176,0.,0.,0.; 3571P 4386 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3573P 4387 -101.90691289376,-64.672188745331,7.118125,101.90691289376, 3573P 4388 --77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3573P 4389 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,101.90691289376, 3575P 4390 --64.672188745331,8.73624999999999,101.90691289376, 3575P 4391 --64.672188745331,7.118125,0.,0.15,0.,0.,0.; 3575P 4392 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3577P 4393 -1.,101.90691289376,-64.672188745331,8.73624999999999, 3577P 4394 -102.706327256509,-64.6721713247213,8.73624999999999,0., 3577P 4395 -0.0741056188123544,0.,0.,0.; 3577P 4396 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3579P 4397 -1.,1.,102.706327256509,-64.6721713247213,7.118125, 3579P 4398 -101.90691289376,-64.672188745331,7.118125,-0.0741056188123544, 3579P 4399 -0.,0.,0.,0.; 3579P 4400 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,102.706327256509, 3581P 4401 --64.6721713247213,8.73624999999999,102.706327256509, 3581P 4402 --64.6721713247213,7.118125,0.,0.15,0.,0.,0.; 3581P 4403 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3583P 4404 -1.,102.706327256509,-64.6721713247213,8.73624999999999, 3583P 4405 -102.706327256509,-64.0713519136024,8.73624999999999,0., 3583P 4406 -0.0556958897908544,0.,0.,0.; 3583P 4407 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3585P 4408 -1.,1.,102.706327256509,-64.0713519136024,7.118125, 3585P 4409 -102.706327256509,-64.6721713247213,7.118125,-0.0556958897908544, 3585P 4410 -0.,0.,0.,0.; 3585P 4411 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3587P 4412 -83.6559584462526,-64.0713519136024,8.73625,97.6569286670568, 3587P 4413 --64.0713693342122,8.73624999999999,0.,1.29788831710916,0.,0.,0.; 3587P 4414 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3589P 4415 --64.0713519136024,8.73625,83.6559584462526,-64.0713519136024, 3589P 4416 -7.118125,0.,0.15,0.,0.,0.; 3589P 4417 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3591P 4418 -97.6569286670568,-64.0713693342122,7.118125,83.6559584462526, 3591P 4419 --64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3591P 4420 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3593P 4421 --64.0713693342122,8.73624999999999,97.6569286670568, 3593P 4422 --64.0713693342122,7.118125,0.,0.15,0.,0.,0.; 3593P 4423 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3595P 4424 -1.,97.6569286670568,-64.0713693342122,8.73624999999999, 3595P 4425 -97.6569286670568,-64.672188745331,8.73624999999999,0., 3595P 4426 -0.0556958897908544,0.,0.,0.; 3595P 4427 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3597P 4428 -1.,1.,97.6569286670568,-64.672188745331,7.118125, 3597P 4429 -97.6569286670568,-64.0713693342122,7.118125,-0.0556958897908544, 3597P 4430 -0.,0.,0.,0.; 3597P 4431 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3599P 4432 --64.6721887453311,8.73624999999999,97.6569286670568, 3599P 4433 --64.6721887453311,7.118125,0.,0.15,0.,0.,0.; 3599P 4434 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3601P 4435 -1.,97.6569286670568,-64.6721887453311,8.73624999999999, 3601P 4436 -98.4563430298053,-64.6721713247213,8.73624999999999,0., 3601P 4437 -0.0741056188123544,0.,0.,0.; 3601P 4438 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3603P 4439 -1.,1.,98.4563430298053,-64.6721713247213,7.118125, 3603P 4440 -97.6569286670568,-64.6721887453311,7.118125,-0.0741056188123544, 3603P 4441 -0.,0.,0.,0.; 3603P 4442 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3605P 4443 --64.6721713247213,8.73624999999999,98.4563430298053, 3605P 4444 --64.6721713247213,7.118125,0.,0.15,0.,0.,0.; 3605P 4445 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3607P 4446 -98.4563430298053,-64.6721713247213,8.73624999999999, 3607P 4447 -98.4563430298053,-77.4716159572515,8.73624999999999,0., 3607P 4448 -1.18650703430176,0.,0.,0.; 3607P 4449 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3609P 4450 -98.4563430298053,-77.4716159572515,7.118125,98.4563430298053, 3609P 4451 --64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3609P 4452 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,98.4563430298053, 3611P 4453 --77.4716159572515,8.73624999999999,98.4563430298053, 3611P 4454 --77.4716159572515,7.118125,0.,0.15,0.,0.,0.; 3611P 4455 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3613P 4456 -1.,98.4563430298053,-77.4716159572515,8.73624999999999, 3613P 4457 -97.6569286670568,-77.4716333778612,8.73624999999999,0., 3613P 4458 -0.0741056188123544,0.,0.,0.; 3613P 4459 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3615P 4460 -1.,1.,97.6569286670568,-77.4716333778612,7.118125, 3615P 4461 -98.4563430298053,-77.4716159572515,7.118125,-0.0741056188123544, 3615P 4462 -0.,0.,0.,0.; 3615P 4463 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3617P 4464 --77.4716333778613,8.73624999999999,97.6569286670568, 3617P 4465 --77.4716333778613,7.118125,0.,0.15,0.,0.,0.; 3617P 4466 -126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3619P 4467 -1.,97.6569286670568,-77.4716333778613,8.73624999999999, 3619P 4468 -97.6569286670568,-78.0723482653214,8.73624999999999,0., 3619P 4469 -0.0556862004597996,0.,0.,0.; 3619P 4470 -126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3621P 4471 -1.,1.,97.6569286670568,-78.0723482653214,7.118125, 3621P 4472 -97.6569286670568,-77.4716333778613,7.118125,-0.0556862004597996, 3621P 4473 -0.,0.,0.,0.; 3621P 4474 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,97.6569286670568, 3623P 4475 --78.0723482653214,8.73624999999999,97.6569286670568, 3623P 4476 --78.0723482653214,7.118125,0.,0.15,0.,0.,0.; 3623P 4477 -126,1,1,0,0,1,0,0.,0.,1.29788912455341,1.29788912455341,1.,1., 3625P 4478 -97.6569286670568,-78.0723482653214,8.73624999999999, 3625P 4479 -83.6559497359477,-78.0723308447116,8.73625,0.,1.29788912455341, 3625P 4480 -0.,0.,0.; 3625P 4481 -126,1,1,0,0,1,0,-1.29788912455341,-1.29788912455341,0.,0.,1.,1., 3627P 4482 -83.6559497359477,-78.0723308447116,7.118125,97.6569286670568, 3627P 4483 --78.0723482653214,7.118125,-1.29788912455341,0.,0.,0.,0.; 3627P 4484 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559497359477, 3629P 4485 --78.0723308447116,8.73625,83.6559497359477,-78.0723308447116, 3629P 4486 -7.118125,0.,0.15,0.,0.,0.; 3629P 4487 -126,1,1,0,0,1,0,0.,0.,0.055686200465657,0.055686200465657,1.,1., 3631P 4488 -83.6559497359477,-78.0723308447116,8.73625,83.6559584462526, 3631P 4489 --77.4716159572514,8.73625,0.,0.055686200465657,0.,0.,0.; 3631P 4490 -126,1,1,0,0,1,0,-0.055686200465657,-0.055686200465657,0.,0.,1., 3633P 4491 -1.,83.6559584462526,-77.4716159572514,7.118125,83.6559497359477, 3633P 4492 --78.0723308447116,7.118125,-0.055686200465657,0.,0.,0.,0.; 3633P 4493 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3635P 4494 --77.4716159572515,8.73625,83.6559584462526,-77.4716159572515, 3635P 4495 -7.118125,0.,0.15,0.,0.,0.; 3635P 4496 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3637P 4497 -1.,83.6559584462526,-77.4716159572515,8.73625,82.8565440835041, 3637P 4498 --77.4716333778613,8.73625,0.,0.0741056188123544,0.,0.,0.; 3637P 4499 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3639P 4500 -1.,1.,82.8565440835041,-77.4716333778613,7.118125, 3639P 4501 -83.6559584462526,-77.4716159572515,7.118125,-0.0741056188123544, 3639P 4502 -0.,0.,0.,0.; 3639P 4503 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3641P 4504 --77.4716333778613,8.73625,82.8565440835042,-77.4716333778613, 3641P 4505 -7.118125,0.,0.15,0.,0.,0.; 3641P 4506 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3643P 4507 -82.8565440835042,-77.4716333778613,8.73625,82.8565440835042, 3643P 4508 --64.672188745331,8.73625,0.,1.18650703430176,0.,0.,0.; 3643P 4509 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3645P 4510 -82.8565440835042,-64.672188745331,7.118125,82.8565440835042, 3645P 4511 --77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3645P 4512 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,82.8565440835042, 3647P 4513 --64.672188745331,8.73625,82.8565440835042,-64.672188745331, 3647P 4514 -7.118125,0.,0.15,0.,0.,0.; 3647P 4515 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3649P 4516 -1.,82.8565440835042,-64.672188745331,8.73625,83.6559584462526, 3649P 4517 --64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3649P 4518 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3651P 4519 -1.,1.,83.6559584462526,-64.6721713247213,7.118125, 3651P 4520 -82.8565440835042,-64.672188745331,7.118125,-0.0741056188123544, 3651P 4521 -0.,0.,0.,0.; 3651P 4522 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,83.6559584462526, 3653P 4523 --64.6721713247213,8.73625,83.6559584462526,-64.6721713247213, 3653P 4524 -7.118125,0.,0.15,0.,0.,0.; 3653P 4525 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3655P 4526 -1.,83.6559584462526,-64.6721713247213,8.73625,83.6559584462526, 3655P 4527 --64.0713519136024,8.73625,0.,0.0556958897908544,0.,0.,0.; 3655P 4528 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3657P 4529 -1.,1.,83.6559584462526,-64.0713519136024,7.118125, 3657P 4530 -83.6559584462526,-64.6721713247213,7.118125,-0.0556958897908544, 3657P 4531 -0.,0.,0.,0.; 3657P 4532 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3659P 4533 -64.6055896359963,-64.0713519136024,8.73625,78.6065598568005, 3659P 4534 --64.0713693342122,8.73625,0.,1.29788831710916,0.,0.,0.; 3659P 4535 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3661P 4536 --64.0713519136024,8.73625,64.6055896359963,-64.0713519136024, 3661P 4537 -7.118125,0.,0.15,0.,0.,0.; 3661P 4538 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3663P 4539 -78.6065598568005,-64.0713693342122,7.118125,64.6055896359963, 3663P 4540 --64.0713519136024,7.118125,-1.29788831710916,0.,0.,0.,0.; 3663P 4541 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3665P 4542 --64.0713693342122,8.73625,78.6065598568005,-64.0713693342122, 3665P 4543 -7.118125,0.,0.15,0.,0.,0.; 3665P 4544 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3667P 4545 -1.,78.6065598568005,-64.0713693342122,8.73625,78.6065598568005, 3667P 4546 --64.672188745331,8.73625,0.,0.0556958897908544,0.,0.,0.; 3667P 4547 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3669P 4548 -1.,1.,78.6065598568005,-64.672188745331,7.118125, 3669P 4549 -78.6065598568005,-64.0713693342122,7.118125,-0.0556958897908544, 3669P 4550 -0.,0.,0.,0.; 3669P 4551 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3671P 4552 --64.6721887453311,8.73625,78.6065598568005,-64.6721887453311, 3671P 4553 -7.118125,0.,0.15,0.,0.,0.; 3671P 4554 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3673P 4555 -1.,78.6065598568005,-64.6721887453311,8.73625,79.405974219549, 3673P 4556 --64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3673P 4557 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3675P 4558 -1.,1.,79.405974219549,-64.6721713247213,7.118125, 3675P 4559 -78.6065598568005,-64.6721887453311,7.118125,-0.0741056188123544, 3675P 4560 -0.,0.,0.,0.; 3675P 4561 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3677P 4562 --64.6721713247213,8.73625,79.4059742195489,-64.6721713247213, 3677P 4563 -7.118125,0.,0.15,0.,0.,0.; 3677P 4564 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3679P 4565 -79.4059742195489,-64.6721713247213,8.73625,79.4059742195489, 3679P 4566 --77.4716159572515,8.73625,0.,1.18650703430176,0.,0.,0.; 3679P 4567 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3681P 4568 -79.4059742195489,-77.4716159572515,7.118125,79.4059742195489, 3681P 4569 --64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3681P 4570 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,79.4059742195489, 3683P 4571 --77.4716159572515,8.73625,79.4059742195489,-77.4716159572515, 3683P 4572 -7.118125,0.,0.15,0.,0.,0.; 3683P 4573 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3685P 4574 -1.,79.4059742195489,-77.4716159572515,8.73625,78.6065598568005, 3685P 4575 --77.4716333778612,8.73625,0.,0.0741056188123544,0.,0.,0.; 3685P 4576 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3687P 4577 -1.,1.,78.6065598568005,-77.4716333778612,7.118125, 3687P 4578 -79.4059742195489,-77.4716159572515,7.118125,-0.0741056188123544, 3687P 4579 -0.,0.,0.,0.; 3687P 4580 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3689P 4581 --77.4716333778613,8.73625,78.6065598568005,-77.4716333778613, 3689P 4582 -7.118125,0.,0.15,0.,0.,0.; 3689P 4583 -126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3691P 4584 -1.,78.6065598568005,-77.4716333778613,8.73625,78.6065598568005, 3691P 4585 --78.0723482653214,8.73625,0.,0.0556862004597996,0.,0.,0.; 3691P 4586 -126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3693P 4587 -1.,1.,78.6065598568005,-78.0723482653214,7.118125, 3693P 4588 -78.6065598568005,-77.4716333778613,7.118125,-0.0556862004597996, 3693P 4589 -0.,0.,0.,0.; 3693P 4590 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,78.6065598568005, 3695P 4591 --78.0723482653214,8.73625,78.6065598568005,-78.0723482653214, 3695P 4592 -7.118125,0.,0.15,0.,0.,0.; 3695P 4593 -126,1,1,0,0,1,0,0.,0.,1.29788831710916,1.29788831710916,1.,1., 3697P 4594 -78.6065598568005,-78.0723482653214,8.73625,64.6055896359963, 3697P 4595 --78.0723308447116,8.73625,0.,1.29788831710916,0.,0.,0.; 3697P 4596 -126,1,1,0,0,1,0,-1.29788831710916,-1.29788831710916,0.,0.,1.,1., 3699P 4597 -64.6055896359963,-78.0723308447116,7.118125,78.6065598568005, 3699P 4598 --78.0723482653214,7.118125,-1.29788831710916,0.,0.,0.,0.; 3699P 4599 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3701P 4600 --78.0723308447116,8.73625,64.6055896359963,-78.0723308447116, 3701P 4601 -7.118125,0.,0.15,0.,0.,0.; 3701P 4602 -126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3703P 4603 -1.,64.6055896359963,-78.0723308447116,8.73625,64.6055896359963, 3703P 4604 --77.4716159572514,8.73625,0.,0.0556862004598031,0.,0.,0.; 3703P 4605 -126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3705P 4606 -1.,1.,64.6055896359963,-77.4716159572514,7.118125, 3705P 4607 -64.6055896359963,-78.0723308447116,7.118125,-0.0556862004598031, 3705P 4608 -0.,0.,0.,0.; 3705P 4609 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3707P 4610 --77.4716159572515,8.73625,64.6055896359963,-77.4716159572515, 3707P 4611 -7.118125,0.,0.15,0.,0.,0.; 3707P 4612 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3709P 4613 -1.,64.6055896359963,-77.4716159572515,8.73625,63.8061752732478, 3709P 4614 --77.4716333778613,8.73625,0.,0.0741056188123544,0.,0.,0.; 3709P 4615 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3711P 4616 -1.,1.,63.8061752732478,-77.4716333778613,7.118125, 3711P 4617 -64.6055896359963,-77.4716159572515,7.118125,-0.0741056188123544, 3711P 4618 -0.,0.,0.,0.; 3711P 4619 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3713P 4620 --77.4716333778613,8.73625,63.8061752732478,-77.4716333778613, 3713P 4621 -7.118125,0.,0.15,0.,0.,0.; 3713P 4622 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3715P 4623 -63.8061752732478,-77.4716333778613,8.73625,63.8061752732478, 3715P 4624 --64.672188745331,8.73625,0.,1.18650703430176,0.,0.,0.; 3715P 4625 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3717P 4626 -63.8061752732478,-64.672188745331,7.118125,63.8061752732478, 3717P 4627 --77.4716333778613,7.118125,-1.18650703430176,0.,0.,0.,0.; 3717P 4628 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,63.8061752732478, 3719P 4629 --64.672188745331,8.73625,63.8061752732478,-64.672188745331, 3719P 4630 -7.118125,0.,0.15,0.,0.,0.; 3719P 4631 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3721P 4632 -1.,63.8061752732478,-64.672188745331,8.73625,64.6055896359963, 3721P 4633 --64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3721P 4634 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3723P 4635 -1.,1.,64.6055896359963,-64.6721713247213,7.118125, 3723P 4636 -63.8061752732478,-64.672188745331,7.118125,-0.0741056188123544, 3723P 4637 -0.,0.,0.,0.; 3723P 4638 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,64.6055896359963, 3725P 4639 --64.6721713247213,8.73625,64.6055896359963,-64.6721713247213, 3725P 4640 -7.118125,0.,0.15,0.,0.,0.; 3725P 4641 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3727P 4642 -1.,64.6055896359963,-64.6721713247213,8.73625,64.6055896359963, 3727P 4643 --64.0713519136024,8.73625,0.,0.0556958897908544,0.,0.,0.; 3727P 4644 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3729P 4645 -1.,1.,64.6055896359963,-64.0713519136024,7.118125, 3729P 4646 -64.6055896359963,-64.6721713247213,7.118125,-0.0556958897908544, 3729P 4647 -0.,0.,0.,0.; 3729P 4648 -126,1,1,0,0,1,0,0.,0.,1.29779626846414,1.29779626846414,1.,1., 3731P 4649 -45.5564838199499,-64.0713519136024,8.73625,59.5564610659959, 3731P 4650 --64.0713693342122,8.73625,0.,1.29779626846414,0.,0.,0.; 3731P 4651 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3733P 4652 --64.0713519136024,8.73625,45.5564838199499,-64.0713519136024, 3733P 4653 -7.118125,0.,0.15,0.,0.,0.; 3733P 4654 -126,1,1,0,0,1,0,-1.29779626846414,-1.29779626846414,0.,0.,1.,1., 3735P 4655 -59.5564610659959,-64.0713693342122,7.118125,45.5564838199499, 3735P 4656 --64.0713519136024,7.118125,-1.29779626846414,0.,0.,0.,0.; 3735P 4657 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3737P 4658 --64.0713693342122,8.73625,59.5564610659959,-64.0713693342122, 3737P 4659 -7.118125,0.,0.15,0.,0.,0.; 3737P 4660 -126,1,1,0,0,1,0,0.,0.,0.0556958897908544,0.0556958897908544,1., 3739P 4661 -1.,59.5564610659959,-64.0713693342122,8.73625,59.5564610659959, 3739P 4662 --64.672188745331,8.73625,0.,0.0556958897908544,0.,0.,0.; 3739P 4663 -126,1,1,0,0,1,0,-0.0556958897908544,-0.0556958897908544,0.,0., 3741P 4664 -1.,1.,59.5564610659959,-64.672188745331,7.118125, 3741P 4665 -59.5564610659959,-64.0713693342122,7.118125,-0.0556958897908544, 3741P 4666 -0.,0.,0.,0.; 3741P 4667 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3743P 4668 --64.6721887453311,8.73625,59.5564610659959,-64.6721887453311, 3743P 4669 -7.118125,0.,0.15,0.,0.,0.; 3743P 4670 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3745P 4671 -1.,59.5564610659959,-64.6721887453311,8.73625,60.3558754287444, 3745P 4672 --64.6721713247213,8.73625,0.,0.0741056188123544,0.,0.,0.; 3745P 4673 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3747P 4674 -1.,1.,60.3558754287444,-64.6721713247213,7.118125, 3747P 4675 -59.5564610659959,-64.6721887453311,7.118125,-0.0741056188123544, 3747P 4676 -0.,0.,0.,0.; 3747P 4677 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3558754287444, 3749P 4678 --64.6721713247213,8.73625,60.3558754287444,-64.6721713247213, 3749P 4679 -7.118125,0.,0.15,0.,0.,0.; 3749P 4680 -126,1,1,0,0,1,0,0.,0.,1.18650703430176,1.18650703430176,1.,1., 3751P 4681 -60.3558754287444,-64.6721713247213,8.73625,60.3558754287444, 3751P 4682 --77.4716159572515,8.73625,0.,1.18650703430176,0.,0.,0.; 3751P 4683 -126,1,1,0,0,1,0,-1.18650703430176,-1.18650703430176,0.,0.,1.,1., 3753P 4684 -60.3558754287444,-77.4716159572515,7.118125,60.3558754287444, 3753P 4685 --64.6721713247213,7.118125,-1.18650703430176,0.,0.,0.,0.; 3753P 4686 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,60.3558754287444, 3755P 4687 --77.4716159572515,8.73625,60.3558754287444,-77.4716159572515, 3755P 4688 -7.118125,0.,0.15,0.,0.,0.; 3755P 4689 -126,1,1,0,0,1,0,0.,0.,0.0741056188123544,0.0741056188123544,1., 3757P 4690 -1.,60.3558754287444,-77.4716159572515,8.73625,59.5564610659959, 3757P 4691 --77.4716333778612,8.73625,0.,0.0741056188123544,0.,0.,0.; 3757P 4692 -126,1,1,0,0,1,0,-0.0741056188123544,-0.0741056188123544,0.,0., 3759P 4693 -1.,1.,59.5564610659959,-77.4716333778612,7.118125, 3759P 4694 -60.3558754287444,-77.4716159572515,7.118125,-0.0741056188123544, 3759P 4695 -0.,0.,0.,0.; 3759P 4696 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3761P 4697 --77.4716333778613,8.73625,59.5564610659959,-77.4716333778613, 3761P 4698 -7.118125,0.,0.15,0.,0.,0.; 3761P 4699 -126,1,1,0,0,1,0,0.,0.,0.0556862004597996,0.0556862004597996,1., 3763P 4700 -1.,59.5564610659959,-77.4716333778613,8.73625,59.5564610659959, 3763P 4701 --78.0723482653214,8.73625,0.,0.0556862004597996,0.,0.,0.; 3763P 4702 -126,1,1,0,0,1,0,-0.0556862004597996,-0.0556862004597996,0.,0., 3765P 4703 -1.,1.,59.5564610659959,-78.0723482653214,7.118125, 3765P 4704 -59.5564610659959,-77.4716333778613,7.118125,-0.0556862004597996, 3765P 4705 -0.,0.,0.,0.; 3765P 4706 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,59.5564610659959, 3767P 4707 --78.0723482653214,8.73625,59.5564610659959,-78.0723482653214, 3767P 4708 -7.118125,0.,0.15,0.,0.,0.; 3767P 4709 -126,1,1,0,0,1,0,0.,0.,1.29779626846414,1.29779626846414,1.,1., 3769P 4710 -59.5564610659959,-78.0723482653214,8.73625,45.5564838199499, 3769P 4711 --78.0723308447116,8.73625,0.,1.29779626846414,0.,0.,0.; 3769P 4712 -126,1,1,0,0,1,0,-1.29779626846414,-1.29779626846414,0.,0.,1.,1., 3771P 4713 -45.5564838199499,-78.0723308447116,7.11812500000001, 3771P 4714 -59.5564610659959,-78.0723482653214,7.118125,-1.29779626846414, 3771P 4715 -0.,0.,0.,0.; 3771P 4716 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3773P 4717 --78.0723308447116,8.73625,45.5564838199499,-78.0723308447116, 3773P 4718 -7.118125,0.,0.15,0.,0.,0.; 3773P 4719 -126,1,1,0,0,1,0,0.,0.,0.0556862004598031,0.0556862004598031,1., 3775P 4720 -1.,45.5564838199499,-78.0723308447116,8.73625,45.5564838199499, 3775P 4721 --77.4716159572514,8.73625,0.,0.0556862004598031,0.,0.,0.; 3775P 4722 -126,1,1,0,0,1,0,-0.0556862004598031,-0.0556862004598031,0.,0., 3777P 4723 -1.,1.,45.5564838199499,-77.4716159572514,7.118125, 3777P 4724 -45.5564838199499,-78.0723308447116,7.118125,-0.0556862004598031, 3777P 4725 -0.,0.,0.,0.; 3777P 4726 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5564838199499, 3779P 4727 --77.4716159572515,8.73625,45.5564838199499,-77.4716159572515, 3779P 4728 -7.118125,0.,0.15,0.,0.,0.; 3779P 4729 -126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 3781P 4730 -1.,45.5564838199499,-77.4716159572515,8.73625,44.7564597358587, 3781P 4731 --77.4716333778613,8.73625,0.,0.0741621399101609,0.,0.,0.; 3781P 4732 -126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 3783P 4733 -1.,1.,44.7564597358587,-77.4716333778613,7.118125, 3783P 4734 -45.5564838199499,-77.4716159572515,7.118125,-0.0741621399101609, 3783P 4735 -0.,0.,0.,0.; 3783P 4736 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7564597358587, 3785P 4737 --77.4716333778613,8.73625,44.7564597358587,-77.4716333778613, 3785P 4738 -7.118125,0.,0.15,0.,0.,0.; 3785P 4739 -126,1,1,0,0,1,0,0.,0.,1.18650703430286,1.18650703430286,1.,1., 3787P 4740 -44.7564597358587,-77.4716333778613,8.73625,44.7564771564685, 3787P 4741 --64.672188745331,8.73625,0.,1.18650703430286,0.,0.,0.; 3787P 4742 -126,1,1,0,0,1,0,-1.18650703430286,-1.18650703430286,0.,0.,1.,1., 3789P 4743 -44.7564771564685,-64.672188745331,7.118125,44.7564597358587, 3789P 4744 --77.4716333778613,7.118125,-1.18650703430286,0.,0.,0.,0.; 3789P 4745 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.7564771564685, 3791P 4746 --64.672188745331,8.73625,44.7564771564685,-64.672188745331, 3791P 4747 -7.118125,0.,0.15,0.,0.,0.; 3791P 4748 -126,1,1,0,0,1,0,0.,0.,0.0741621399101609,0.0741621399101609,1., 3793P 4749 -1.,44.7564771564685,-64.672188745331,8.73625,45.5565012405597, 3793P 4750 --64.6721713247213,8.73625,0.,0.0741621399101609,0.,0.,0.; 3793P 4751 -126,1,1,0,0,1,0,-0.0741621399101609,-0.0741621399101609,0.,0., 3795P 4752 -1.,1.,45.5565012405597,-64.6721713247213,7.118125, 3795P 4753 -44.7564771564685,-64.672188745331,7.118125,-0.0741621399101609, 3795P 4754 -0.,0.,0.,0.; 3795P 4755 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,45.5565012405597, 3797P 4756 --64.6721713247213,8.73625,45.5565012405597,-64.6721713247213, 3797P 4757 -7.118125,0.,0.15,0.,0.,0.; 3797P 4758 -126,1,1,0,0,1,0,0.,0.,0.055695889814266,0.055695889814266,1.,1., 3799P 4759 -45.5565012405597,-64.6721713247213,8.73625,45.5564838199499, 3799P 4760 --64.0713519136024,8.73625,0.,0.055695889814266,0.,0.,0.; 3799P 4761 -126,1,1,0,0,1,0,-0.055695889814266,-0.055695889814266,0.,0.,1., 3801P 4762 -1.,45.5564838199499,-64.0713519136024,7.118125,45.5565012405597, 3801P 4763 --64.6721713247213,7.118125,-0.055695889814266,0.,0.,0.,0.; 3801P 4764 -126,2,2,0,0,0,0,0.,0.,0.,1.53806598054936,1.53806598054936, 3803P 4765 -1.53806598054936,1.,0.718583503390014,1.,155.763761628875, 3803P 4766 --53.5475075752323,8.73624999999999,157.701439739527, 3803P 4767 --53.5475075752323,8.73624999999999,157.764849292068, 3803P 4768 --55.4841478849295,8.73624999999999,0.,1.53806598054936,0.,0.,0.; 3803P 4769 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.764849292068, 3805P 4770 --55.4841478849295,8.73624999999999,157.764849292068, 3805P 4771 --55.4841478849295,7.11812499999999,0.,0.15,0.,0.,0.; 3805P 4772 -126,2,2,0,0,0,0,0.,0.,0.,1.53806598054936,1.53806598054936, 3807P 4773 -1.53806598054936,1.,0.718583503390014,1.,155.763761628875, 3807P 4774 --53.5475075752323,7.11812499999999,157.701439739527, 3807P 4775 --53.5475075752323,7.11812499999999,157.764849292068, 3807P 4776 --55.4841478849295,7.11812499999999,0.,1.53806598054936,0.,0.,0.; 3807P 4777 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.763761628875, 3809P 4778 --53.5475075752323,8.73624999999999,155.763761628875, 3809P 4779 --53.5475075752323,7.11812499999999,0.,0.15,0.,0.,0.; 3809P 4780 -126,1,1,0,0,1,0,0.,0.,10.304761256663,10.304761256663,1.,1., 3811P 4781 -44.6011495726228,-53.5475075752323,8.73625,155.763761628875, 3811P 4782 --53.5475075752323,8.73624999999999,0.,10.304761256663,0.,0.,0.; 3811P 4783 -126,1,1,0,0,1,0,0.,0.,10.304761256663,10.304761256663,1.,1., 3813P 4784 -44.6011495726228,-53.5475075752323,7.118125,155.763761628875, 3813P 4785 --53.5475075752323,7.11812499999999,0.,10.304761256663,0.,0.,0.; 3813P 4786 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.6011495726228, 3815P 4787 --53.5475075752323,8.73625,44.6011495726228,-53.5475075752323, 3815P 4788 -7.118125,0.,0.15,0.,0.,0.; 3815P 4789 -126,2,2,0,0,0,0,0.,0.,0.,1.57079496575076,1.57079496575076, 3817P 4790 -1.57079496575076,1.,0.707107262388153,1.,42.5989895726247, 3817P 4791 --55.5496648502041,8.73625,42.5989922976491,-53.5475075752323, 3817P 4792 -8.73625,44.6011495726228,-53.5475075752324,8.73625,0., 3817P 4793 -1.57079496575076,0.,0.,0.; 3817P 4794 -126,2,2,0,0,0,0,0.,0.,0.,1.57079496575076,1.57079496575076, 3819P 4795 -1.57079496575076,1.,0.707107262388153,1.,42.5989895726247, 3819P 4796 --55.5496648502041,7.118125,42.5989922976491,-53.5475075752323, 3819P 4797 -7.118125,44.6011495726228,-53.5475075752324,7.118125,0., 3819P 4798 -1.57079496575076,0.,0.,0.; 3819P 4799 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,42.5989895726247, 3821P 4800 --55.5496648502042,8.73625,42.5989895726247,-55.5496648502042, 3821P 4801 -7.118125,0.,0.15,0.,0.,0.; 3821P 4802 -126,1,1,0,0,1,0,0.,0.,7.61968862441745,7.61968862441745,1.,1., 3823P 4803 -42.5989922976492,-137.747055886107,8.73625,42.5989895726247, 3823P 4804 --55.5496648502041,8.73625,0.,7.61968862441745,0.,0.,0.; 3823P 4805 -126,1,1,0,0,1,0,0.,0.,7.61968862441745,7.61968862441745,1.,1., 3825P 4806 -42.5989922976492,-137.747055886107,7.118125,42.5989895726247, 3825P 4807 --55.5496648502041,7.118125,0.,7.61968862441745,0.,0.,0.; 3825P 4808 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,42.5989922976492, 3827P 4809 --137.747055886107,8.73625,42.5989922976492,-137.747055886107, 3827P 4810 -7.118125,0.,0.15,0.,0.,0.; 3827P 4811 -126,2,2,0,0,0,0,0.,0.,0.,1.57079632679493,1.57079632679493, 3829P 4812 -1.57079632679493,1.,0.707106781186538,1.,44.6011522976492, 3829P 4813 --139.749215886107,8.73625,42.5989922976492,-139.749215886107, 3829P 4814 -8.73625,42.5989922976492,-137.747055886107,8.73625,0., 3829P 4815 -1.57079632679493,0.,0.,0.; 3829P 4816 -126,2,2,0,0,0,0,0.,0.,0.,1.57079632679493,1.57079632679493, 3831P 4817 -1.57079632679493,1.,0.707106781186538,1.,44.6011522976492, 3831P 4818 --139.749215886107,7.118125,42.5989922976492,-139.749215886107, 3831P 4819 -7.118125,42.5989922976492,-137.747055886107,7.118125,0., 3831P 4820 -1.57079632679493,0.,0.,0.; 3831P 4821 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,44.6011522976492, 3833P 4822 --139.749215886107,8.73625,44.6011522976492,-139.749215886107, 3833P 4823 -7.118125,0.,0.15,0.,0.,0.; 3833P 4824 -126,1,1,0,0,1,0,0.,0.,10.3047578082426,10.3047578082426,1.,1., 3835P 4825 -155.763727154066,-139.749215886107,8.73624999999999, 3835P 4826 -44.6011522976492,-139.749215886107,8.73625,0.,10.3047578082426, 3835P 4827 -0.,0.,0.; 3835P 4828 -126,1,1,0,0,1,0,0.,0.,10.3047578082426,10.3047578082426,1.,1., 3837P 4829 -155.763727154066,-139.749215886107,7.11812499999999, 3837P 4830 -44.6011522976492,-139.749215886107,7.118125,0.,10.3047578082426, 3837P 4831 -0.,0.,0.; 3837P 4832 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,155.763727154066, 3839P 4833 --139.749215886107,8.73624999999999,155.763727154066, 3839P 4834 --139.749215886107,7.11812499999999,0.,0.15,0.,0.,0.; 3839P 4835 -126,4,2,0,0,0,0,0.,0.,0.,0.785406772727343,0.785406772727343, 3841P 4836 -1.57081354545469,1.57081354545469,1.57081354545469,1., 3841P 4837 -0.923877885178717,1.,0.923877885178737,1.,157.76588715377, 3841P 4838 --137.747021411595,8.73624999999999,157.765901433754, 3841P 4839 --138.576353334882,8.73624999999999,157.179480255615, 3841P 4840 --139.162784610495,8.73624999999999,156.593059077476, 3841P 4841 --139.749215886107,8.73624999999999,155.763727154066, 3841P 4842 --139.749215886107,8.73624999999999,0.,1.57081354545469,0.,0.,0.; 3841P 4843 -126,4,2,0,0,0,0,0.,0.,0.,0.785406772727343,0.785406772727343, 3843P 4844 -1.57081354545469,1.57081354545469,1.57081354545469,1., 3843P 4845 -0.923877885178717,1.,0.923877885178737,1.,157.76588715377, 3843P 4846 --137.747021411595,7.11812499999999,157.765901433754, 3843P 4847 --138.576353334882,7.11812499999999,157.179480255615, 3843P 4848 --139.162784610495,7.11812499999999,156.593059077476, 3843P 4849 --139.749215886107,7.11812499999999,155.763727154066, 3843P 4850 --139.749215886107,7.11812499999999,0.,1.57081354545469,0.,0.,0.; 3843P 4851 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.76588715377, 3845P 4852 --137.747021411595,8.73624999999999,157.76588715377, 3845P 4853 --137.747021411595,7.11812499999999,0.,0.15,0.,0.,0.; 3845P 4854 -126,1,1,0,0,1,0,0.,0.,5.58752310204211,5.58752310204211,1.,1., 3847P 4855 -157.764849292068,-77.4716159572515,8.73624999999999, 3847P 4856 -157.76588715377,-137.747021411595,8.73624999999999,0., 3847P 4857 -5.58752310204211,0.,0.,0.; 3847P 4858 -126,1,1,0,0,1,0,0.,0.,5.58752310204211,5.58752310204211,1.,1., 3849P 4859 -157.764849292068,-77.4716159572515,7.11812499999999, 3849P 4860 -157.76588715377,-137.747021411595,7.11812499999999,0., 3849P 4861 -5.58752310204211,0.,0.,0.; 3849P 4862 -126,1,1,0,0,1,0,0.,0.,0.15,0.15,1.,1.,157.764849292068, 3851P 4863 --77.4716159572515,8.73624999999999,157.764849292068, 3851P 4864 --77.4716159572515,7.11812499999999,0.,0.15,0.,0.,0.; 3851P 4865 -126,1,1,0,0,1,0,-0.851617485069212,-0.851617485069212, 3853P 4866 -1.18661825744036,1.18661825744036,1.,1.,157.764849292068, 3853P 4867 --55.4841478849295,8.73624999999999,157.764849292068, 3853P 4868 --77.4716159572515,8.73624999999999,-0.851617485069212, 3853P 4869 -1.18661825744036,0.,0.,0.; 3853P 4870 -126,1,1,0,0,1,0,-0.851617485069212,-0.851617485069212, 3855P 4871 -1.18661825744036,1.18661825744036,1.,1.,157.764849292068, 3855P 4872 --55.4841478849295,7.11812499999999,157.764849292068, 3855P 4873 --77.4716159572515,7.11812499999999,-0.851617485069212, 3855P 4874 -1.18661825744036,0.,0.,0.; 3855P 4875 -126,1,1,0,0,1,0,0.873529002643732,0.873529002643732, 3857P 4876 -1.71776728389373,1.71776728389373,1.,1.,83.9631823855374, 3857P 4877 --224.118941783543,-7.49999999999994,83.9631823855374, 3857P 4878 --232.561324596043,-7.49999999999994,0.873529002643732, 3857P 4879 -1.71776728389373,0.,0.,0.; 3857P 4880 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,83.9631823855374, 3859P 4881 --224.118941783543,-7.49999999999994,83.9631823855374, 3859P 4882 --224.118941783543,-8.49999999999994,0.,0.1,0.,0.,0.; 3859P 4883 -126,1,1,0,0,1,0,0.,0.,0.84423828125,0.84423828125,1.,1., 3861P 4884 -83.9631823855374,-224.118941783543,-8.49999999999993, 3861P 4885 -83.9631823855374,-232.561324596043,-8.49999999999993,0., 3861P 4886 -0.84423828125,0.,0.,0.; 3861P 4887 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,83.9631823855374, 3863P 4888 --232.561324596043,-7.49999999999994,83.9631823855374, 3863P 4889 --232.561324596043,-8.49999999999994,0.,0.1,0.,0.,0.; 3863P 4890 -126,1,1,0,0,1,0,-0.110430982629394,-0.110430982629394, 3865P 4891 -2.40519401737061,2.40519401737061,1.,1.,58.8069323855374, 3865P 4892 --224.118941783543,-7.49999999999996,83.9631823855374, 3865P 4893 --224.118941783543,-7.49999999999995,-0.110430982629394, 3865P 4894 -2.40519401737061,0.,0.,0.; 3865P 4895 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,58.8069323855374, 3867P 4896 --224.118941783543,-7.49999999999996,58.8069323855374, 3867P 4897 --224.118941783543,-8.49999999999996,0.,0.1,0.,0.,0.; 3867P 4898 -126,1,1,0,0,1,0,0.,0.,2.515625,2.515625,1.,1.,58.8069323855374, 3869P 4899 --224.118941783543,-8.49999999999997,83.9631823855374, 3869P 4900 --224.118941783543,-8.49999999999996,0.,2.515625,0.,0.,0.; 3869P 4901 -126,1,1,0,0,1,0,-1.18921513798127,-1.18921513798127, 3871P 4902 -2.93627314326873,2.93627314326873,1.,1.,58.8069323855374, 3871P 4903 --182.864058971043,-7.49999999999996,58.8069323855374, 3871P 4904 --224.118941783543,-7.49999999999996,-1.18921513798127, 3871P 4905 -2.93627314326873,0.,0.,0.; 3871P 4906 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,58.8069323855374, 3873P 4907 --182.864058971043,-7.49999999999996,58.8069323855374, 3873P 4908 --182.864058971043,-8.49999999999996,0.,0.1,0.,0.,0.; 3873P 4909 -126,1,1,0,0,1,0,0.,0.,4.12548828125,4.12548828125,1.,1., 3875P 4910 -58.8069323855374,-182.864058971043,-8.49999999999997, 3875P 4911 -58.8069323855374,-224.118941783543,-8.49999999999997,0., 3875P 4912 -4.12548828125,0.,0.,0.; 3875P 4913 -126,1,1,0,0,1,0,-0.616290357629394,-0.616290357629394, 3877P 4914 -0.395428392370606,0.395428392370606,1.,1.,48.6897448855374, 3877P 4915 --182.864058971043,-7.49999999999996,58.8069323855374, 3877P 4916 --182.864058971043,-7.49999999999995,-0.616290357629394, 3877P 4917 -0.395428392370606,0.,0.,0.; 3877P 4918 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,48.6897448855374, 3879P 4919 --182.864058971043,-7.49999999999996,48.6897448855374, 3879P 4920 --182.864058971043,-8.49999999999996,0.,0.1,0.,0.,0.; 3879P 4921 -126,1,1,0,0,1,0,0.,0.,1.01171875,1.01171875,1.,1., 3881P 4922 -48.6897448855374,-182.864058971043,-8.49999999999997, 3881P 4923 -58.8069323855374,-182.864058971043,-8.49999999999997,0., 3881P 4924 -1.01171875,0.,0.,0.; 3881P 4925 -126,1,1,0,0,1,0,-1.29564814326873,-1.29564814326873, 3883P 4926 -3.67407841923127,3.67407841923127,1.,1.,48.6897448855374, 3883P 4927 --232.561324596043,-7.49999999999996,48.6897448855374, 3883P 4928 --182.864058971043,-7.49999999999996,-1.29564814326873, 3883P 4929 -3.67407841923127,0.,0.,0.; 3883P 4930 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,48.6897448855374, 3885P 4931 --232.561324596043,-7.49999999999996,48.6897448855374, 3885P 4932 --232.561324596043,-8.49999999999996,0.,0.1,0.,0.,0.; 3885P 4933 -126,1,1,0,0,1,0,0.,0.,4.9697265625,4.9697265625,1.,1., 3887P 4934 -48.6897448855374,-232.561324596043,-8.49999999999997, 3887P 4935 -48.6897448855374,-182.864058971043,-8.49999999999997,0., 3887P 4936 -4.9697265625,0.,0.,0.; 3887P 4937 -126,1,1,0,0,1,0,-1.1473815173706,-1.1473815173706, 3889P 4938 -2.37996223262939,2.37996223262939,1.,1.,83.9631823855374, 3889P 4939 --232.561324596043,-7.49999999999995,48.6897448855374, 3889P 4940 --232.561324596043,-7.49999999999996,-1.1473815173706, 3889P 4941 -2.37996223262939,0.,0.,0.; 3889P 4942 -126,1,1,0,0,1,0,0.,0.,3.52734375,3.52734375,1.,1., 3891P 4943 -83.9631823855374,-232.561324596043,-8.49999999999993, 3891P 4944 -48.6897448855374,-232.561324596043,-8.49999999999994,0., 3891P 4945 -3.52734375,0.,0.,0.; 3891P 4946 -126,6,2,0,0,0,0,3.13917765423161,3.13917765423161, 3893P 4947 -3.13917765423161,4.18718020521427,4.18718020521427, 3893P 4948 -5.23518275619693,5.23518275619693,6.28318530717959, 3893P 4949 -6.28318530717959,6.28318530717959,1.,0.865824083692505,1., 3893P 4950 -0.865824083692489,1.,0.865824083692615,1.,18.9406505609936, 3893P 4951 --172.121201750437,-7.49999999999996,18.9396735534978, 3893P 4952 --171.312085990108,-7.49999999999996,19.6402259760079, 3893P 4953 --170.907245809948,-7.49999999999996,20.340778398518, 3893P 4954 --170.502405629789,-7.49999999999996,21.0413308210281, 3893P 4955 --170.907245809948,-7.49999999999996,21.7418832435383, 3893P 4956 --171.312085990108,-7.49999999999996,21.7409062360425, 3893P 4957 --172.121201750437,-7.49999999999996,3.13917765423161, 3893P 4958 -6.28318530717959,0.,0.,0.; 3893P 4959 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3895P 4960 -18.9406505609936,-172.121201750437,-7.49999999999997, 3895P 4961 -18.9406505609936,-172.121201750437,-11.6,1.623625,2.033625,0., 3895P 4962 -0.,0.; 3895P 4963 -126,6,2,0,0,0,0,0.,0.,0.,1.04800255098266,1.04800255098266, 3897P 4964 -2.09600510196532,2.09600510196532,3.14400765294798, 3897P 4965 -3.14400765294798,3.14400765294798,1.,0.865824083692615,1., 3897P 4966 -0.865824083692489,1.,0.865824083692505,1.,21.7409062360425, 3897P 4967 --172.121201750437,-11.6,21.7418832435383,-171.312085990108, 3897P 4968 --11.6,21.0413308210281,-170.907245809948,-11.6,20.340778398518, 3897P 4969 --170.502405629789,-11.6,19.6402259760079,-170.907245809948, 3897P 4970 --11.6,18.9396735534978,-171.312085990108,-11.6,18.9406505609936, 3897P 4971 --172.121201750437,-11.6,0.,3.14400765294798,0.,0.,0.; 3897P 4972 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3899P 4973 -21.7409062360425,-172.121201750437,-7.49999999999997, 3899P 4974 -21.7409062360425,-172.121201750437,-11.6,1.623625,2.033625,0., 3899P 4975 -0.,0.; 3899P 4976 -126,6,2,0,0,0,0,3.13917765425437,3.13917765425437, 3901P 4977 -3.13917765425437,4.18718020522943,4.18718020522943, 3901P 4978 -5.2351827562045,5.2351827562045,6.28318530717956, 3901P 4979 -6.28318530717956,6.28318530717956,1.,0.865824083694517,1., 3901P 4980 -0.865824083694691,1.,0.865824083694548,1.,21.7409062360425, 3901P 4981 --172.121201750437,-7.49999999999996,21.7418832435291, 3901P 4982 --172.930317510758,-7.49999999999996,21.0413308210236, 3901P 4983 --173.335157690912,-7.49999999999996,20.3407783985181, 3901P 4984 --173.739997871065,-7.49999999999996,19.6402259760126, 3901P 4985 --173.335157690912,-7.49999999999996,18.939673553507, 3901P 4986 --172.930317510759,-7.49999999999996,18.9406505609936, 3901P 4987 --172.121201750437,-7.49999999999996,3.13917765425437, 3901P 4988 -6.28318530717956,0.,0.,0.; 3901P 4989 -126,6,2,0,0,0,0,2.53741645654159D-14,2.53741645654159D-14, 3903P 4990 -2.53741645654159D-14,1.04800255097509,1.04800255097509, 3903P 4991 -2.09600510195016,2.09600510195016,3.14400765292522, 3903P 4992 -3.14400765292522,3.14400765292522,1.,0.86582408369456,1., 3903P 4993 -0.865824083694691,1.,0.865824083694517,1.,18.9406505609936, 3903P 4994 --172.121201750437,-11.6,18.939673553507,-172.930317510759,-11.6, 3903P 4995 -19.6402259760125,-173.335157690912,-11.6,20.3407783985181, 3903P 4996 --173.739997871065,-11.6,21.0413308210236,-173.335157690912, 3903P 4997 --11.6,21.7418832435291,-172.930317510758,-11.6,21.7409062360425, 3903P 4998 --172.121201750437,-11.6,2.53741645654159D-14,3.14400765292522, 3903P 4999 -0.,0.,0.; 3903P 5000 -126,6,2,0,0,0,0,3.13917765424305,3.13917765424305, 3905P 5001 -3.13917765424305,4.1871802052219,4.1871802052219, 3905P 5002 -5.23518275620074,5.23518275620074,6.28318530717959, 3905P 5003 -6.28318530717959,6.28318530717959,1.,0.86582408369356,1., 3905P 5004 -0.865824083693437,1.,0.865824083693555,1.,97.7151063167837, 3905P 5005 --190.598023114196,-7.49999999999996,97.7141293092926, 3905P 5006 --189.78890735387,-7.49999999999996,98.4146817318004, 3905P 5007 --189.384067173714,-7.49999999999996,99.1152341543082, 3905P 5008 --188.979226993558,-7.49999999999996,99.815786576816, 3905P 5009 --189.384067173714,-7.49999999999996,100.516338999324, 3905P 5010 --189.78890735387,-7.49999999999996,100.515361991833, 3905P 5011 --190.598023114196,-7.49999999999996,3.13917765424305, 3905P 5012 -6.28318530717959,0.,0.,0.; 3905P 5013 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3907P 5014 -97.7151063167837,-190.598023114196,-7.49999999999994, 3907P 5015 -97.7151063167837,-190.598023114196,-11.5999999999999,1.623625, 3907P 5016 -2.033625,0.,0.,0.; 3907P 5017 -126,6,2,0,0,0,0,0.,0.,0.,1.04800255097885,1.04800255097885, 3909P 5018 -2.09600510195769,2.09600510195769,3.14400765293654, 3909P 5019 -3.14400765293654,3.14400765293654,1.,0.865824083693555,1., 3909P 5020 -0.865824083693437,1.,0.86582408369356,1.,100.515361991833, 3909P 5021 --190.598023114196,-11.6,100.516338999324,-189.78890735387,-11.6, 3909P 5022 -99.815786576816,-189.384067173714,-11.6,99.1152341543082, 3909P 5023 --188.979226993558,-11.6,98.4146817318004,-189.384067173714, 3909P 5024 --11.6,97.7141293092926,-189.78890735387,-11.6,97.7151063167837, 3909P 5025 --190.598023114196,-11.6,0.,3.14400765293654,0.,0.,0.; 3909P 5026 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 3911P 5027 -100.515361991833,-190.598023114196,-7.49999999999994, 3911P 5028 -100.515361991833,-190.598023114196,-11.5999999999999,1.623625, 3911P 5029 -2.033625,0.,0.,0.; 3911P 5030 -126,6,2,0,0,0,0,3.13917765424295,3.13917765424295, 3913P 5031 -3.13917765424295,4.18718020522184,4.18718020522184, 3913P 5032 -5.23518275620074,5.23518275620074,6.28318530717964, 3913P 5033 -6.28318530717964,6.28318530717964,1.,0.86582408369357,1., 3913P 5034 -0.865824083693601,1.,0.865824083693503,1.,100.515361991833, 3913P 5035 --190.598023114196,-7.49999999999996,100.516338999324, 3913P 5036 --191.407138874521,-7.49999999999996,99.815786576816, 3913P 5037 --191.811979054677,-7.49999999999996,99.1152341543081, 3913P 5038 --192.216819234834,-7.49999999999996,98.4146817318003, 3913P 5039 --191.811979054677,-7.49999999999996,97.7141293092924, 3913P 5040 --191.407138874521,-7.49999999999996,97.7151063167837, 3913P 5041 --190.598023114196,-7.49999999999996,3.13917765424295, 3913P 5042 -6.28318530717964,0.,0.,0.; 3913P 5043 -126,6,2,0,0,0,0,-5.0748329130831D-14,-5.0748329130831D-14, 3915P 5044 --5.0748329130831D-14,1.04800255097885,1.04800255097885, 3915P 5045 -2.09600510195774,2.09600510195774,3.14400765293664, 3915P 5046 -3.14400765293664,3.14400765293664,1.,0.865824083693503,1., 3915P 5047 -0.865824083693601,1.,0.865824083693605,1.,97.7151063167837, 3915P 5048 --190.598023114196,-11.6,97.7141293092924,-191.407138874521, 3915P 5049 --11.6,98.4146817318003,-191.811979054677,-11.6,99.1152341543081, 3915P 5050 --192.216819234834,-11.6,99.8157865768159,-191.811979054677, 3915P 5051 --11.6,100.516338999324,-191.407138874521,-11.6,100.515361991833, 3915P 5052 --190.598023114196,-11.6,-5.0748329130831D-14,3.14400765293664, 3915P 5053 -0.,0.,0.; 3915P 5054 -126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 3917P 5055 --1.15918194829754,-0.0292778092733589,-0.0292778092733589, 3917P 5056 --0.0292778092733589,1.,0.844614262194451,1.,4.43314110940288, 3917P 5057 --167.842837467805,5.50000000000003,2.97957034725773, 3917P 5058 --167.208278396419,5.50000000000003,2.93314110940286, 3917P 5059 --165.622914872961,5.50000000000003,-1.15918194829754, 3917P 5060 --0.0292778092733589,0.,0.,0.; 3917P 5061 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,4.43314110940286, 3919P 5062 --167.842837467805,-7.49999999999997,4.43314110940285, 3919P 5063 --167.842837467805,5.50000000000003,-1.5,-0.2,0.,0.,0.; 3919P 5064 -126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 3921P 5065 --1.15918194829754,-0.0292778092733589,-0.0292778092733589, 3921P 5066 --0.0292778092733589,1.,0.844614262194451,1.,4.43314110940287, 3921P 5067 --167.842837467805,-7.49999999999997,2.97957034725773, 3921P 5068 --167.208278396419,-7.49999999999997,2.93314110940286, 3921P 5069 --165.622914872961,-7.49999999999997,-1.15918194829754, 3921P 5070 --0.0292778092733589,0.,0.,0.; 3921P 5071 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,2.93314110940287, 3923P 5072 --165.622914872961,5.50000000000003,2.93314110940287, 3923P 5073 --165.622914872961,-7.49999999999997,0.2,1.5,0.,0.,0.; 3923P 5074 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,114.304136640482, 3925P 5075 --248.749215886107,5.50000000000006,114.304136640482, 3925P 5076 --248.749215886107,-7.49999999999994,0.2,1.5,0.,0.,0.; 3925P 5077 -126,1,1,0,0,1,0,-10.8869873393078,-10.8869873393078, 3927P 5078 --0.22927014633397,-0.22927014633397,1.,1.,114.304136640482, 3927P 5079 --248.749215886107,-7.49999999999995,7.72696471074416, 3927P 5080 --248.749215886107,-7.49999999999997,-10.8869873393078, 3927P 5081 --0.22927014633397,0.,0.,0.; 3927P 5082 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,7.72696471074419, 3929P 5083 --248.749215886107,-7.49999999999997,7.72696471074418, 3929P 5084 --248.749215886107,5.50000000000003,-1.5,-0.2,0.,0.,0.; 3929P 5085 -126,1,1,0,0,1,0,-8.10792303602294,-8.10792303602294, 3931P 5086 -2.54979415695085,2.54979415695085,1.,1.,7.72696471074415, 3931P 5087 --248.749215886107,5.50000000000003,114.304136640482, 3931P 5088 --248.749215886107,5.50000000000006,-8.10792303602294, 3931P 5089 -2.54979415695085,0.,0.,0.; 3931P 5090 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,4.43214272479956, 3933P 5091 --245.454337167255,5.50000000000003,4.43214272479957, 3933P 5092 --245.454337167255,-7.49999999999997,0.2,1.5,0.,0.,0.; 3933P 5093 -126,1,1,0,0,1,0,-5.79827126090288,-5.79827126090288,0.,0.,1.,1., 3935P 5094 -4.43214272479954,-245.454337167255,-7.49999999999997, 3935P 5095 -4.43314110940289,-187.471624566822,-7.49999999999997, 3935P 5096 --5.79827126090288,0.,0.,0.,0.; 3935P 5097 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,4.43314110940289, 3937P 5098 --187.471624566822,5.50000000000003,4.43314110940289, 3937P 5099 --187.471624566822,-7.49999999999997,0.2,1.5,0.,0.,0.; 3937P 5100 -126,1,1,0,0,1,0,-3.97255884800442,-3.97255884800442, 3939P 5101 -1.82571241289845,1.82571241289845,1.,1.,4.43314110940289, 3939P 5102 --187.471624566822,5.50000000000003,4.43214272479954, 3939P 5103 --245.454337167255,5.50000000000003,-3.97255884800442, 3939P 5104 -1.82571241289845,0.,0.,0.; 3939P 5105 -126,2,2,0,0,0,0,1.5707963267949,1.5707963267949,1.5707963267949, 3941P 5106 -2.72951060528473,2.72951060528473,2.72951060528473,1., 3941P 5107 -0.836814780130269,1.,5.4342287725957,-163.047507575232, 3941P 5108 -5.50000000000003,7.07126702638247,-163.047507575232, 3941P 5109 -5.50000000000003,7.72693023593538,-164.547507575232, 3941P 5110 -5.50000000000003,1.5707963267949,2.72951060528473,0.,0.,0.; 3941P 5111 -126,1,1,0,0,1,0,0.978120675558471,0.978120675558471, 3943P 5112 -2.54979601694251,2.54979601694251,1.,1.,23.4436836497758, 3943P 5113 --164.547507575232,5.50000000000003,7.7269302359354, 3943P 5114 --164.547507575232,5.50000000000003,0.978120675558471, 3943P 5115 -2.54979601694251,0.,0.,0.; 3943P 5116 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 3945P 5117 -2.25504270777187,2.25504270777187,1.,1.,23.4436836497758, 3945P 5118 --164.547507575232,5.50000000000003,23.4436836497758, 3945P 5119 --163.047507575232,5.50000000000003,2.10504270777188, 3945P 5120 -2.25504270777187,0.,0.,0.; 3945P 5121 -126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 3947P 5122 --0.978120675558472,-0.978120675558472,1.,1.,5.43422877259571, 3947P 5123 --163.047507575232,5.50000000000003,23.4436836497758, 3947P 5124 --163.047507575232,5.50000000000003,-2.77906616327648, 3947P 5125 --0.978120675558472,0.,0.,0.; 3947P 5126 -126,2,2,0,0,0,0,1.72186597884763D-5,1.72186597884763D-5, 3949P 5127 -1.72186597884763D-5,1.15873149714963,1.15873149714963, 3949P 5128 -1.15873149714963,1.,0.836814780130323,1.,2.93210324777536, 3949P 5129 --247.747012802266,5.50000000000003,2.93213143538011, 3949P 5130 --246.109974548721,5.50000000000003,4.43214272479955, 3949P 5131 --245.454337167255,5.50000000000003,1.72186597884763D-5, 3949P 5132 -1.15873149714963,0.,0.,0.; 3949P 5133 -126,1,1,0,0,1,0,-2.92171556809407,-2.92171556809407, 3951P 5134 --0.958836858192392,-0.958836858192392,1.,1.,4.43314110940287, 3951P 5135 --167.842837467805,5.50000000000003,4.43314110940288, 3951P 5136 --187.471624566822,5.50000000000003,-2.92171556809407, 3951P 5137 --0.958836858192392,0.,0.,0.; 3951P 5138 -126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 3953P 5139 -3.14370739710002,3.14370739710002,1.,1.,2.9331411094029, 3953P 5140 --187.471615957251,5.50000000000003,2.93314110940288, 3953P 5141 --165.622914872961,5.50000000000003,0.958837288670924, 3953P 5142 -3.14370739710002,0.,0.,0.; 3953P 5143 -126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 3955P 5144 -3.97255712615894,3.97255712615894,1.,1.,2.93210324777536, 3955P 5145 --247.747012802266,5.50000000000003,2.9331411094029, 3955P 5146 --187.471615957251,5.50000000000003,-2.054982559236, 3955P 5147 -3.97255712615894,0.,0.,0.; 3955P 5148 -126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 3957P 5149 --1.5707963267949,-0.412082048305059,-0.412082048305059, 3957P 5150 --0.412082048305059,1.,0.836814780130369,1.,116.596838103822, 3957P 5151 --250.249215886107,5.50000000000007,114.959799850035, 3957P 5152 --250.249215886107,5.50000000000007,114.304136640482, 3957P 5153 --248.749215886107,5.50000000000007,-1.5707963267949, 3957P 5154 --0.412082048305059,0.,0.,0.; 3957P 5155 -126,2,2,0,0,0,0,-2.72951060528471,-2.72951060528471, 3959P 5156 --2.72951060528471,-1.5707963267949,-1.5707963267949, 3959P 5157 --1.5707963267949,1.,0.83681478013024,1.,7.72696471074414, 3959P 5158 --248.749215886107,5.50000000000003,7.0713015011912, 3959P 5159 --250.249215886107,5.50000000000003,5.43426324740444, 3959P 5160 --250.249215886107,5.50000000000003,-2.72951060528471, 3959P 5161 --1.5707963267949,0.,0.,0.; 3959P 5162 -126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 3961P 5163 -8.33719318235691,8.33719318235691,1.,1.,116.596838103822, 3961P 5164 --250.249215886107,5.50000000000006,5.43426324740444, 3961P 5165 --250.249215886107,5.50000000000003,-2.77906430328482, 3961P 5166 -8.33719318235691,0.,0.,0.; 3961P 5167 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,7.7269302359354, 3963P 5168 --164.547507575232,5.50000000000003,7.7269302359354, 3963P 5169 --164.547507575232,-7.49999999999997,0.2,1.5,0.,0.,0.; 3963P 5170 -126,1,1,0,0,1,0,-10.8869910592913,-10.8869910592913, 3965P 5171 --9.31531571790723,-9.31531571790723,1.,1.,7.7269302359354, 3965P 5172 --164.547507575232,-7.49999999999996,23.4436836497758, 3965P 5173 --164.547507575232,-7.49999999999996,-10.8869910592913, 3965P 5174 --9.31531571790723,0.,0.,0.; 3965P 5175 -126,1,1,0,0,1,0,-0.75,-0.75,0.55,0.55,1.,1.,23.4436836497758, 3967P 5176 --164.547507575232,-7.49999999999997,23.4436836497758, 3967P 5177 --164.547507575232,5.50000000000003,-0.75,0.55,0.,0.,0.; 3967P 5178 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,114.304139365509, 3969P 5179 --164.547507575232,-7.49999999999994,114.304139365509, 3969P 5180 --164.547507575232,5.50000000000006,-1.5,-0.2,0.,0.,0.; 3969P 5181 -126,1,1,0,0,1,0,-8.10792489601484,-8.10792489601484, 3971P 5182 --7.23888737412926,-7.23888737412926,1.,1.,114.304139365509, 3971P 5183 --164.547507575232,5.50000000000005,105.613764146653, 3971P 5184 --164.547507575232,5.50000000000005,-8.10792489601484, 3971P 5185 --7.23888737412926,0.,0.,0.; 3971P 5186 -126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,105.613764146653, 3973P 5187 --164.547507575232,5.50000000000006,105.613764146653, 3973P 5188 --164.547507575232,-7.49999999999994,-0.2,1.1,0.,0.,0.; 3973P 5189 -126,1,1,0,0,1,0,-1.0983076682195,-1.0983076682195, 3975P 5190 --0.229270146333919,-0.229270146333919,1.,1.,105.613764146653, 3975P 5191 --164.547507575232,-7.49999999999994,114.304139365509, 3975P 5192 --164.547507575232,-7.49999999999994,-1.0983076682195, 3975P 5193 --0.229270146333919,0.,0.,0.; 3975P 5194 -126,2,2,0,0,0,0,1.98287840825217,1.98287840825217, 3977P 5195 -1.98287840825217,3.14159265358978,3.14159265358978, 3977P 5196 -3.14159265358978,1.,0.83681478920549,1.,117.59899817983, 3977P 5197 --245.454354455992,5.50000000000007,119.098998103822, 3977P 5198 --246.11001769155,5.50000000000007,119.098998103822, 3977P 5199 --247.747055886107,5.50000000000007,1.98287840825217, 3977P 5200 -3.14159265358978,0.,0.,0.; 3977P 5201 -126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 3979P 5202 -6.16480416245852,6.16480416245852,1.,1.,119.099000828846, 3979P 5203 --165.54966486678,5.50000000000007,119.098998103822, 3979P 5204 --247.747055886107,5.50000000000007,-2.05493493947419, 3979P 5205 -6.16480416245852,0.,0.,0.; 3979P 5206 -126,2,2,0,0,0,0,-3.14159373603537,-3.14159373603537, 3981P 5207 --3.14159373603537,-1.98287834194696,-1.98287834194696, 3981P 5208 --1.98287834194696,1.,0.836814474742864,1.,119.099000828846, 3981P 5209 --165.54966486678,5.50000000000007,119.099002600853, 3981P 5210 --167.186705113691,5.50000000000007,117.599000752838, 3981P 5211 --167.842369071796,5.50000000000007,-3.14159373603537, 3981P 5212 --1.98287834194696,0.,0.,0.; 3981P 5213 -126,1,1,0,0,1,0,-5.93553402441977,-5.93553402441977, 3983P 5214 -1.82566451399977,1.82566451399977,1.,1.,117.59899817983, 3983P 5215 --245.454354455992,5.50000000000007,117.599000752838, 3983P 5216 --167.842369071796,5.50000000000007,-5.93553402441977, 3983P 5217 -1.82566451399977,0.,0.,0.; 3983P 5218 -126,2,2,0,0,0,0,0.412082048305129,0.412082048305129, 3985P 5219 -0.412082048305129,1.57079632679488,1.57079632679488, 3985P 5220 -1.57079632679488,1.,0.836814780130278,1.,114.304139365509, 3985P 5221 --164.547507575232,5.50000000000007,114.959802575062, 3985P 5222 --163.047507575233,5.50000000000007,116.596840828848, 3985P 5223 --163.047507575233,5.50000000000007,0.412082048305129, 3985P 5224 -1.57079632679488,0.,0.,0.; 3985P 5225 -126,1,1,0,0,1,0,7.23888737412926,7.23888737412926, 3987P 5226 -8.33719504234876,8.33719504234876,1.,1.,105.613764146653, 3987P 5227 --163.047507575232,5.50000000000005,116.596840828848, 3987P 5228 --163.047507575232,5.50000000000005,7.23888737412926, 3987P 5229 -8.33719504234876,0.,0.,0.; 3987P 5230 -126,1,1,0,0,1,0,-2.25504270777187,-2.25504270777187, 3989P 5231 --2.10504270777188,-2.10504270777188,1.,1.,105.613764146653, 3989P 5232 --163.047507575232,5.50000000000005,105.613764146653, 3989P 5233 --164.547507575232,5.50000000000005,-2.25504270777187, 3989P 5234 --2.10504270777188,0.,0.,0.; 3989P 5235 -126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 3991P 5236 -3.13925814733116,4.18720703624771,4.18720703624771, 3991P 5237 -5.23515592516426,5.23515592516426,6.28310481408081, 3991P 5238 -6.28310481408081,6.28310481408081,1.,0.865837508248997,1., 3991P 5239 -0.865837508248987,1.,0.865837508249069,1.,21.4157277366876, 3991P 5240 --228.698656211065,-7.49999999999997,21.4147507896972, 3991P 5241 --227.831805396136,-7.49999999999997,22.1653032159716, 3991P 5242 --227.39809772364,-7.49999999999997,22.915855642246, 3991P 5243 --226.964390051143,-7.49999999999997,23.6664080685249, 3991P 5244 --227.398097723632,-7.49999999999997,24.4169604948039, 3991P 5245 --227.83180539612,-7.49999999999997,24.4159835478226, 3991P 5246 --228.69865621105,-7.49999999999997,3.13925814733116, 3991P 5247 -6.28310481408081,0.,0.,0.; 3991P 5248 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,21.4157277366876, 3993P 5249 --228.698656211065,-7.49999999999997,21.4157277366876, 3993P 5250 --228.698656211065,-11.6,1.5,1.91,0.,0.,0.; 3993P 5251 -126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 3995P 5252 --6.28310481408081,-5.23515592516426,-5.23515592516426, 3995P 5253 --4.18720703624771,-4.18720703624771,-3.13925814733116, 3995P 5254 --3.13925814733116,-3.13925814733116,1.,0.865837508249069,1., 3995P 5255 -0.865837508248987,1.,0.865837508248997,1.,24.4159835478226, 3995P 5256 --228.69865621105,-11.6,24.4169604948039,-227.83180539612,-11.6, 3995P 5257 -23.6664080685249,-227.398097723632,-11.6,22.915855642246, 3995P 5258 --226.964390051143,-11.6,22.1653032159716,-227.39809772364,-11.6, 3995P 5259 -21.4147507896972,-227.831805396136,-11.6,21.4157277366876, 3995P 5260 --228.698656211065,-11.6,-6.28310481408081,-3.13925814733116,0., 3995P 5261 -0.,0.; 3995P 5262 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,24.4159835478226, 3997P 5263 --228.69865621105,-7.49999999999997,24.4159835478226, 3997P 5264 --228.69865621105,-11.6,1.5,1.91,0.,0.,0.; 3997P 5265 -126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 3999P 5266 -3.13925814734168,4.18720703625123,4.18720703625123, 3999P 5267 -5.23515592516079,5.23515592516079,6.28310481407034, 3999P 5268 -6.28310481407034,6.28310481407034,1.,0.865837508250833,1., 3999P 5269 -0.865837508250854,1.,0.865837508250777,1.,24.4159835478226, 3999P 5270 --228.69865621105,-7.49999999999997,24.4169604948039, 3999P 5271 --229.565507025972,-7.49999999999997,23.666408068534, 3999P 5272 --229.999214698462,-7.49999999999997,22.9158556422641, 3999P 5273 --230.432922370953,-7.49999999999997,22.1653032159898, 3999P 5274 --229.99921469847,-7.49999999999997,21.4147507897154, 3999P 5275 --229.565507025988,-7.49999999999997,21.4157277366876, 3999P 5276 --228.698656211065,-7.49999999999997,3.13925814734168, 3999P 5277 -6.28310481407034,0.,0.,0.; 3999P 5278 -126,6,2,0,0,0,0,-6.28310481407037,-6.28310481407037, 4001P 5279 --6.28310481407037,-5.2351559251608,-5.2351559251608, 4001P 5280 --4.18720703625122,-4.18720703625122,-3.13925814734165, 4001P 5281 --3.13925814734165,-3.13925814734165,1.,0.865837508250796,1., 4001P 5282 -0.865837508250931,1.,0.865837508250911,1.,21.4157277366876, 4001P 5283 --228.698656211065,-11.6,21.4147507897153,-229.565507025988, 4001P 5284 --11.6,22.1653032159898,-229.99921469847,-11.6,22.9158556422642, 4001P 5285 --230.432922370953,-11.6,23.666408068534,-229.999214698462,-11.6, 4001P 5286 -24.4169604948039,-229.565507025972,-11.6,24.4159835478226, 4001P 5287 --228.69865621105,-11.6,-6.28310481407037,-3.13925814734165,0., 4001P 5288 -0.,0.; 4001P 5289 -126,6,2,0,0,0,0,3.13866619557958,3.13866619557958, 4003P 5290 -3.13866619557958,4.18680559830898,4.18680559830898, 4003P 5291 -5.23494500103838,5.23494500103838,6.28308440376778, 4003P 5292 -6.28308440376778,6.28308440376778,1.,0.865789844880318,1., 4003P 5293 -0.865789844880317,1.,0.865789844880318,1.,97.617115874664, 4003P 5294 --228.698656211057,-7.49999999999994,97.6158909373877, 4003P 5295 --227.831614772873,-7.49999999999994,98.3665673588096, 4003P 5296 --227.397740060174,-7.49999999999994,99.1172437802314, 4003P 5297 --226.963865347475,-7.49999999999994,99.8679202016533, 4003P 5298 --227.397740060174,-7.49999999999994,100.618596623075, 4003P 5299 --227.831614772873,-7.49999999999994,100.617371685799, 4003P 5300 --228.698656211057,-7.49999999999994,3.13866619557958, 4003P 5301 -6.28308440376778,0.,0.,0.; 4003P 5302 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,97.6171158746639, 4005P 5303 --228.698656211057,-7.49999999999994,97.6171158746639, 4005P 5304 --228.698656211057,-11.5999999999999,1.5,1.91,0.,0.,0.; 4005P 5305 -126,6,2,0,0,0,0,-6.28308440376778,-6.28308440376778, 4007P 5306 --6.28308440376778,-5.23494500103838,-5.23494500103838, 4007P 5307 --4.18680559830898,-4.18680559830898,-3.13866619557958, 4007P 5308 --3.13866619557958,-3.13866619557958,1.,0.865789844880318,1., 4007P 5309 -0.865789844880317,1.,0.865789844880318,1.,100.617371685799, 4007P 5310 --228.698656211057,-11.5999999999999,100.618596623075, 4007P 5311 --227.831614772873,-11.5999999999999,99.8679202016533, 4007P 5312 --227.397740060174,-11.5999999999999,99.1172437802314, 4007P 5313 --226.963865347475,-11.5999999999999,98.3665673588096, 4007P 5314 --227.397740060174,-11.5999999999999,97.6158909373877, 4007P 5315 --227.831614772873,-11.5999999999999,97.617115874664, 4007P 5316 --228.698656211057,-11.5999999999999,-6.28308440376778, 4007P 5317 --3.13866619557958,0.,0.,0.; 4007P 5318 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,100.617371685799, 4009P 5319 --228.698656211057,-7.49999999999994,100.617371685799, 4009P 5320 --228.698656211057,-11.5999999999999,1.5,1.91,0.,0.,0.; 4009P 5321 -126,6,2,0,0,0,0,3.13866619559787,3.13866619559787, 4011P 5322 -3.13866619559787,4.18680559832114,4.18680559832114, 4011P 5323 -5.2349450010444,5.2349450010444,6.28308440376766, 4011P 5324 -6.28308440376766,6.28308440376766,1.,0.865789844881819,1., 4011P 5325 -0.865789844881894,1.,0.865789844881819,1.,100.617371685799, 4011P 5326 --228.698656211057,-7.49999999999994,100.618596623067, 4011P 5327 --229.565697649234,-7.49999999999994,99.8679202016493, 4011P 5328 --229.999572361928,-7.49999999999994,99.1172437802314, 4011P 5329 --230.433447074621,-7.49999999999994,98.3665673588136, 4011P 5330 --229.999572361928,-7.49999999999994,97.6158909373957, 4011P 5331 --229.565697649234,-7.49999999999994,97.617115874664, 4011P 5332 --228.698656211057,-7.49999999999994,3.13866619559787, 4011P 5333 -6.28308440376766,0.,0.,0.; 4011P 5334 -126,6,2,0,0,0,0,-6.2830844037677,-6.2830844037677, 4013P 5335 --6.2830844037677,-5.23494500104441,-5.23494500104441, 4013P 5336 --4.18680559832112,-4.18680559832112,-3.13866619559783, 4013P 5337 --3.13866619559783,-3.13866619559783,1.,0.865789844881757,1., 4013P 5338 -0.865789844882047,1.,0.865789844881757,1.,97.617115874664, 4013P 5339 --228.698656211056,-11.5999999999999,97.6158909373956, 4013P 5340 --229.565697649234,-11.5999999999999,98.3665673588135, 4013P 5341 --229.999572361928,-11.5999999999999,99.1172437802314, 4013P 5342 --230.433447074621,-11.5999999999999,99.8679202016494, 4013P 5343 --229.999572361928,-11.5999999999999,100.618596623067, 4013P 5344 --229.565697649234,-11.5999999999999,100.617371685799, 4013P 5345 --228.698656211056,-11.5999999999999,-6.2830844037677, 4013P 5346 --3.13866619559783,0.,0.,0.; 4013P 5347 -126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4015P 5348 -3.13925814733116,4.18720703624771,4.18720703624771, 4015P 5349 -5.23515592516426,5.23515592516426,6.28310481408081, 4015P 5350 -6.28310481408081,6.28310481408081,1.,0.865837508248997,1., 4015P 5351 -0.865837508248987,1.,0.865837508249069,1.,21.4157277366876, 4015P 5352 --190.598023114212,-7.49999999999997,21.4147507896972, 4015P 5353 --189.731172299282,-7.49999999999997,22.1653032159716, 4015P 5354 --189.297464626786,-7.49999999999997,22.915855642246, 4015P 5355 --188.863756954289,-7.49999999999997,23.6664080685249, 4015P 5356 --189.297464626778,-7.49999999999997,24.4169604948039, 4015P 5357 --189.731172299267,-7.49999999999997,24.4159835478226, 4015P 5358 --190.598023114196,-7.49999999999997,3.13925814733116, 4015P 5359 -6.28310481408081,0.,0.,0.; 4015P 5360 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,21.4157277366876, 4017P 5361 --190.598023114212,-7.49999999999997,21.4157277366876, 4017P 5362 --190.598023114212,-11.6,1.5,1.91,0.,0.,0.; 4017P 5363 -126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4019P 5364 --6.28310481408081,-5.23515592516426,-5.23515592516426, 4019P 5365 --4.18720703624771,-4.18720703624771,-3.13925814733116, 4019P 5366 --3.13925814733116,-3.13925814733116,1.,0.865837508249069,1., 4019P 5367 -0.865837508248987,1.,0.865837508248997,1.,24.4159835478226, 4019P 5368 --190.598023114196,-11.6,24.4169604948039,-189.731172299267, 4019P 5369 --11.6,23.6664080685249,-189.297464626778,-11.6,22.915855642246, 4019P 5370 --188.863756954289,-11.6,22.1653032159716,-189.297464626786, 4019P 5371 --11.6,21.4147507896972,-189.731172299282,-11.6,21.4157277366876, 4019P 5372 --190.598023114212,-11.6,-6.28310481408081,-3.13925814733116,0., 4019P 5373 -0.,0.; 4019P 5374 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,24.4159835478226, 4021P 5375 --190.598023114196,-7.49999999999997,24.4159835478226, 4021P 5376 --190.598023114196,-11.6,1.5,1.91,0.,0.,0.; 4021P 5377 -126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4023P 5378 -3.13925814734168,4.18720703625123,4.18720703625123, 4023P 5379 -5.23515592516079,5.23515592516079,6.28310481407034, 4023P 5380 -6.28310481407034,6.28310481407034,1.,0.865837508250833,1., 4023P 5381 -0.865837508250854,1.,0.865837508250777,1.,24.4159835478226, 4023P 5382 --190.598023114196,-7.49999999999997,24.4169604948039, 4023P 5383 --191.464873929118,-7.49999999999997,23.666408068534, 4023P 5384 --191.898581601608,-7.49999999999997,22.9158556422641, 4023P 5385 --192.332289274099,-7.49999999999997,22.1653032159898, 4023P 5386 --191.898581601616,-7.49999999999997,21.4147507897154, 4023P 5387 --191.464873929134,-7.49999999999997,21.4157277366876, 4023P 5388 --190.598023114212,-7.49999999999997,3.13925814734168, 4023P 5389 -6.28310481407034,0.,0.,0.; 4023P 5390 -126,6,2,0,0,0,0,-6.28310481407034,-6.28310481407034, 4025P 5391 --6.28310481407034,-5.23515592516079,-5.23515592516079, 4025P 5392 --4.18720703625123,-4.18720703625123,-3.13925814734168, 4025P 5393 --3.13925814734168,-3.13925814734168,1.,0.865837508250777,1., 4025P 5394 -0.865837508250854,1.,0.865837508250833,1.,21.4157277366876, 4025P 5395 --190.598023114212,-11.6,21.4147507897154,-191.464873929134, 4025P 5396 --11.6,22.1653032159898,-191.898581601616,-11.6,22.9158556422641, 4025P 5397 --192.332289274099,-11.6,23.666408068534,-191.898581601608,-11.6, 4025P 5398 -24.4169604948039,-191.464873929118,-11.6,24.4159835478226, 4025P 5399 --190.598023114196,-11.6,-6.28310481407034,-3.13925814734168,0., 4025P 5400 -0.,0.; 4025P 5401 -126,6,2,0,0,0,0,3.13925814731996,3.13925814731996, 4027P 5402 -3.13925814731996,4.1872070362402,4.1872070362402, 4027P 5403 -5.23515592516045,5.23515592516045,6.28310481408069, 4027P 5404 -6.28310481408069,6.28310481408069,1.,0.865837508248116,1., 4027P 5405 -0.865837508248067,1.,0.865837508248112,1.,100.190183492478, 4027P 5406 --172.121201750453,-7.49999999999994,100.189206545482, 4027P 5407 --171.25435093552,-7.49999999999994,100.939758971759, 4027P 5408 --170.82064326302,-7.49999999999994,101.690311398036, 4027P 5409 --170.38693559052,-7.49999999999994,102.440863824317, 4027P 5410 --170.820643263012,-7.49999999999994,103.191416250599, 4027P 5411 --171.254350935504,-7.49999999999994,103.190439303613, 4027P 5412 --172.121201750437,-7.49999999999994,3.13925814731996, 4027P 5413 -6.28310481408069,0.,0.,0.; 4027P 5414 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,100.190183492478, 4029P 5415 --172.121201750453,-7.49999999999994,100.190183492478, 4029P 5416 --172.121201750453,-11.5999999999999,1.5,1.91,0.,0.,0.; 4029P 5417 -126,6,2,0,0,0,0,-6.28310481408069,-6.28310481408069, 4031P 5418 --6.28310481408069,-5.23515592516045,-5.23515592516045, 4031P 5419 --4.1872070362402,-4.1872070362402,-3.13925814731996, 4031P 5420 --3.13925814731996,-3.13925814731996,1.,0.865837508248112,1., 4031P 5421 -0.865837508248067,1.,0.865837508248116,1.,103.190439303613, 4031P 5422 --172.121201750437,-11.5999999999999,103.191416250599, 4031P 5423 --171.254350935504,-11.5999999999999,102.440863824317, 4031P 5424 --170.820643263012,-11.5999999999999,101.690311398036, 4031P 5425 --170.38693559052,-11.5999999999999,100.939758971759, 4031P 5426 --170.82064326302,-11.5999999999999,100.189206545482, 4031P 5427 --171.25435093552,-11.5999999999999,100.190183492478, 4031P 5428 --172.121201750453,-11.5999999999999,-6.28310481408069, 4031P 5429 --3.13925814731996,0.,0.,0.; 4031P 5430 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,103.190439303613, 4033P 5431 --172.121201750437,-7.49999999999994,103.190439303613, 4033P 5432 --172.121201750437,-11.5999999999999,1.5,1.91,0.,0.,0.; 4033P 5433 -126,6,2,0,0,0,0,3.13925814735297,3.13925814735297, 4035P 5434 -3.13925814735297,4.1872070362588,4.1872070362588, 4035P 5435 -5.23515592516463,5.23515592516463,6.28310481407046, 4035P 5436 -6.28310481407046,6.28310481407046,1.,0.865837508251611,1., 4035P 5437 -0.865837508251546,1.,0.865837508251607,1.,103.190439303613, 4035P 5438 --172.121201750437,-7.49999999999994,103.191416250589, 4035P 5439 --172.988052565356,-7.49999999999994,102.440863824322, 4035P 5440 --173.421760237843,-7.49999999999994,101.690311398054, 4035P 5441 --173.85546791033,-7.49999999999994,100.939758971782, 4035P 5442 --173.421760237851,-7.49999999999994,100.18920654551, 4035P 5443 --172.988052565371,-7.49999999999994,100.190183492478, 4035P 5444 --172.121201750453,-7.49999999999994,3.13925814735297, 4035P 5445 -6.28310481407046,0.,0.,0.; 4035P 5446 -126,6,2,0,0,0,0,-6.28310481407046,-6.28310481407046, 4037P 5447 --6.28310481407046,-5.23515592516463,-5.23515592516463, 4037P 5448 --4.1872070362588,-4.1872070362588,-3.13925814735297, 4037P 5449 --3.13925814735297,-3.13925814735297,1.,0.865837508251607,1., 4037P 5450 -0.865837508251546,1.,0.865837508251611,1.,100.190183492478, 4037P 5451 --172.121201750453,-11.5999999999999,100.18920654551, 4037P 5452 --172.988052565371,-11.5999999999999,100.939758971782, 4037P 5453 --173.421760237851,-11.5999999999999,101.690311398054, 4037P 5454 --173.85546791033,-11.5999999999999,102.440863824322, 4037P 5455 --173.421760237843,-11.5999999999999,103.191416250589, 4037P 5456 --172.988052565356,-11.5999999999999,103.190439303613, 4037P 5457 --172.121201750437,-11.5999999999999,-6.28310481407046, 4037P 5458 --3.13925814735297,0.,0.,0.; 4037P 5459 -126,1,1,0,0,1,0,-2.57991060542639,-2.57991060542639, 4039P 5460 --1.17773192390871,-1.17773192390871,1.,1.,105.613764146653, 4039P 5461 --164.547507575232,-7.49999999999995,91.5919773314763, 4039P 5462 --164.547507575232,-7.49999999999995,-2.57991060542639, 4039P 5463 --1.17773192390871,0.,0.,0.; 4039P 5464 -126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,105.613764146653, 4041P 5465 --164.547507575232,-7.49999999999993,105.613764146653, 4041P 5466 --164.547507575232,-11.5999999999999,0.8,1.21,0.,0.,0.; 4041P 5467 -126,1,1,0,0,1,0,1.17773192390871,1.17773192390871, 4043P 5468 -2.57991060542639,2.57991060542639,1.,1.,91.5919773314763, 4043P 5469 --164.547507575232,-11.6,105.613764146653,-164.547507575232, 4043P 5470 --11.5999999999999,1.17773192390871,2.57991060542639,0.,0.,0.; 4043P 5471 -126,1,1,0,0,1,0,0.45,0.45,0.86,0.86,1.,1.,91.5919773314763, 4045P 5472 --164.547507575232,-7.49999999999994,91.5919773314763, 4045P 5473 --164.547507575232,-11.5999999999999,0.45,0.86,0.,0.,0.; 4045P 5474 -126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,105.613764146653, 4047P 5475 --163.047507575232,5.50000000000006,105.613764146653, 4047P 5476 --163.047507575232,1.50000000000006,-0.2,0.2,0.,0.,0.; 4047P 5477 -126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4049P 5478 -0.724999999999998,0.724999999999998,1.,1.,105.613764146653, 4049P 5479 --163.047507575232,1.50000000000007,105.613764146653, 4049P 5480 --156.547507575232,1.50000000000007,0.0749999999999993, 4049P 5481 -0.724999999999998,0.,0.,0.; 4049P 5482 -126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,105.613764146653, 4051P 5483 --156.547507575232,-11.5999999999999,105.613764146653, 4051P 5484 --156.547507575232,1.50000000000006,-1.51,-0.2,0.,0.,0.; 4051P 5485 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4053P 5486 -2.90504270777187,2.90504270777187,1.,1.,105.613764146653, 4053P 5487 --164.547507575232,-11.5999999999999,105.613764146653, 4053P 5488 --156.547507575232,-11.5999999999999,2.10504270777188, 4053P 5489 -2.90504270777187,0.,0.,0.; 4053P 5490 -126,1,1,0,0,1,0,-7.99046868143113,-7.99046868143113, 4055P 5491 --0.229270143011589,-0.229270143011589,1.,1.,117.599000752838, 4055P 5492 --167.842369071796,-7.49999999999994,117.59899817983, 4055P 5493 --245.454354455992,-7.49999999999994,-7.99046868143113, 4055P 5494 --0.229270143011589,0.,0.,0.; 4055P 5495 -126,2,2,0,0,0,0,-3.14159259057679,-3.14159259057679, 4057P 5496 --3.14159259057679,-1.98287834194696,-1.98287834194696, 4057P 5497 --1.98287834194696,0.999999677363267,0.83681463606139,1., 4057P 5498 -119.099000828848,-165.549667575233,-7.49999999999994, 4057P 5499 -119.099000828847,-167.18670588825,-7.49999999999994, 4057P 5500 -117.599000752838,-167.842369071796,-7.49999999999994, 4057P 5501 --3.14159259057679,-1.98287834194696,0.,0.,0.; 4057P 5502 -126,4,2,0,0,0,0,0.412082048305129,0.412082048305129, 4059P 5503 -0.412082048305129,1.77683680972467,1.77683680972467, 4059P 5504 -3.14159157114422,3.14159157114422,3.14159157114422,1., 4059P 5505 -0.776075642357578,1.,0.776075642357596,1.,114.304139365509, 4059P 5506 --164.547507575232,-7.49999999999994,115.118495569018, 4059P 5507 --162.684456106938,-7.49999999999994,117.108747098487, 4059P 5508 --163.100431646069,-7.49999999999994,119.098998627955, 4059P 5509 --163.516407185201,-7.49999999999994,119.099000828846, 4059P 5510 --165.54966486678,-7.49999999999994,0.412082048305129, 4059P 5511 -3.14159157114422,0.,0.,0.; 4059P 5512 -126,1,1,0,0,1,0,-4.21636997194452,-4.21636997194452, 4061P 5513 --2.50048634973718,-2.50048634973718,1.,1.,74.4331411094029, 4061P 5514 --164.547507575232,-7.49999999999995,91.5919773314763, 4061P 5515 --164.547507575232,-7.49999999999994,-4.21636997194452, 4061P 5516 --2.50048634973718,0.,0.,0.; 4061P 5517 -126,1,1,0,0,1,0,-2.45504270777187,-2.45504270777187, 4063P 5518 --1.75504270777187,-1.75504270777187,1.,1.,74.4331411094029, 4063P 5519 --164.547507575232,-7.49999999999996,74.4331411094029, 4063P 5520 --171.547507575232,-7.49999999999996,-2.45504270777187, 4063P 5521 --1.75504270777187,0.,0.,0.; 4063P 5522 -126,1,1,0,0,1,0,-1.67087945356388,-1.67087945356388, 4065P 5523 -0.329120546436124,0.329120546436124,1.,1.,74.4331411094029, 4065P 5524 --171.547507575232,-7.49999999999995,54.4331411094029, 4065P 5525 --171.547507575231,-7.49999999999996,-1.67087945356388, 4065P 5526 -0.329120546436124,0.,0.,0.; 4065P 5527 -126,1,1,0,0,1,0,1.40504270777187,1.40504270777187, 4067P 5528 -2.10504270777187,2.10504270777187,1.,1.,54.4331411094029, 4067P 5529 --171.547507575231,-7.49999999999996,54.4331411094029, 4067P 5530 --164.547507575232,-7.49999999999996,1.40504270777187, 4067P 5531 -2.10504270777187,0.,0.,0.; 4067P 5532 -126,1,1,0,0,1,0,-7.61515214233563,-7.61515214233563, 4069P 5533 --6.21636997194452,-6.21636997194452,1.,1.,40.4453194054918, 4069P 5534 --164.547507575232,-7.49999999999996,54.4331411094029, 4069P 5535 --164.547507575232,-7.49999999999995,-7.61515214233563, 4069P 5536 --6.21636997194452,0.,0.,0.; 4069P 5537 -126,1,1,0,0,1,0,1.12851163163168,1.12851163163168, 4071P 5538 -2.82867520720327,2.82867520720327,1.,1.,40.4453194054917, 4071P 5539 --164.547507575232,-7.49999999999996,23.4436836497758, 4071P 5540 --164.547507575232,-7.49999999999996,1.12851163163168, 4071P 5541 -2.82867520720327,0.,0.,0.; 4071P 5542 -126,4,2,0,0,0,0,-6.25390749790614,-6.25390749790614, 4073P 5543 --6.25390749790614,-4.9037910999005,-4.9037910999005, 4073P 5544 --3.55367470189486,-3.55367470189486,-3.55367470189486,1., 4073P 5545 -0.780670581409548,1.,0.780670581409585,1.,2.93314110940287, 4073P 5546 --165.476420277504,-7.49999999999997,2.99177706791294, 4073P 5547 --163.474248497833,-7.49999999999997,4.95822887324418, 4073P 5548 --163.093200852189,-7.49999999999997,6.92468067857541, 4073P 5549 --162.712153206546,-7.49999999999997,7.72693023593538, 4073P 5550 --164.547507575232,-7.49999999999997,-6.25390749790614, 4073P 5551 --3.55367470189486,0.,0.,0.; 4073P 5552 -126,1,1,0,0,1,0,2.18487010842909,2.18487010842909, 4075P 5553 -2.19951956797476,2.19951956797476,1.,1.,2.93314110940288, 4075P 5554 --165.622914872961,-7.49999999999997,2.93314110940288, 4075P 5555 --165.476420277504,-7.49999999999997,2.18487010842909, 4075P 5556 -2.19951956797476,0.,0.,0.; 4075P 5557 -126,1,1,0,0,1,0,-2.19683051976291,-2.19683051976291, 4077P 5558 --0.233951809861228,-0.233951809861228,1.,1.,4.43314110940287, 4077P 5559 --187.471624566822,-7.49999999999997,4.43314110940286, 4077P 5560 --167.842837467805,-7.49999999999997,-2.19683051976291, 4077P 5561 --0.233951809861228,0.,0.,0.; 4077P 5562 -126,6,2,0,0,0,0,-9.01269591246431,-9.01269591246431, 4079P 5563 --9.01269591246431,-7.71661521165286,-7.71661521165286, 4079P 5564 --6.42053451084141,-6.42053451084141,-5.12445381002996, 4079P 5565 --5.12445381002996,-5.12445381002996,1.,0.797268222513898,1., 4079P 5566 -0.797268222513902,1.,0.797268222513904,1.,7.72696471074416, 4079P 5567 --248.749215886107,-7.49999999999997,6.96821249566285, 4079P 5568 --250.485058779287,-7.49999999999997,5.09163041069214, 4079P 5569 --250.22564568775,-7.49999999999997,3.21504832572143, 4079P 5570 --249.966232596213,-7.49999999999997,2.95566754645106, 4079P 5571 --248.089646044774,-7.49999999999997,2.69628676718068, 4079P 5572 --246.213059493336,-7.49999999999997,4.43214272479953, 4079P 5573 --245.454337167255,-7.49999999999997,-9.01269591246431, 4079P 5574 --5.12445381002996,0.,0.,0.; 4079P 5575 -126,6,2,0,0,0,0,-4.30030689892742,-4.30030689892742, 4081P 5576 --4.30030689892742,-3.00423194871996,-3.00423194871996, 4081P 5577 --1.7081569985125,-1.7081569985125,-0.412082048305046, 4081P 5578 --0.412082048305046,-0.412082048305046,1.,0.797269958115279,1., 4081P 5579 -0.797269958115353,1.,0.797269958115315,1.,117.59899817983, 4081P 5580 --245.454354455992,-7.49999999999994,119.334830676844, 4081P 5581 --246.213102195359,-7.49999999999994,119.07542986441, 4081P 5582 --248.089674551596,-7.49999999999994,118.816029051977, 4081P 5583 --249.966246907834,-7.49999999999994,116.93945668714, 4081P 5584 --250.225647658055,-7.49999999999994,115.062884322303, 4081P 5585 --250.485048408276,-7.49999999999994,114.304136640482, 4081P 5586 --248.749215886107,-7.49999999999994,-4.30030689892742, 4081P 5587 --0.412082048305046,0.,0.,0.; 4081P 5588 -126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,40.4453194054918, 4083P 5589 --164.547507575232,-7.49999999999997,40.4453194054918, 4083P 5590 --164.547507575232,-11.6,0.8,1.21,0.,0.,0.; 4083P 5591 -126,1,1,0,0,1,0,-2.82867520720327,-2.82867520720327, 4085P 5592 --1.12851163163168,-1.12851163163168,1.,1.,23.4436836497758, 4085P 5593 --164.547507575232,-11.6,40.4453194054917,-164.547507575232, 4085P 5594 --11.6,-2.82867520720327,-1.12851163163168,0.,0.,0.; 4085P 5595 -126,1,1,0,0,1,0,0.45,0.45,0.86,0.86,1.,1.,23.4436836497758, 4087P 5596 --164.547507575232,-7.49999999999996,23.4436836497758, 4087P 5597 --164.547507575232,-11.6,0.45,0.86,0.,0.,0.; 4087P 5598 -126,1,1,0,0,1,0,-0.199999999999999,-0.199999999999999,1.1,1.1, 4089P 5599 -1.,1.,40.4453194054918,-164.547507575232,5.50000000000003, 4089P 5600 -40.4453194054918,-164.547507575232,-7.49999999999997, 4089P 5601 --0.199999999999999,1.1,0.,0.,0.; 4089P 5602 -126,1,1,0,0,1,0,-2.25504270777188,-2.25504270777188, 4091P 5603 --2.10504270777188,-2.10504270777188,1.,1.,40.4453194054918, 4091P 5604 --163.047507575232,5.50000000000003,40.4453194054918, 4091P 5605 --164.547507575232,5.50000000000003,-2.25504270777188, 4091P 5606 --2.10504270777188,0.,0.,0.; 4091P 5607 -126,1,1,0,0,1,0,-0.199999999999999,-0.199999999999999, 4093P 5608 -0.200000000000001,0.200000000000001,1.,1.,40.4453194054918, 4093P 5609 --163.047507575232,5.50000000000003,40.4453194054918, 4093P 5610 --163.047507575232,1.50000000000003,-0.199999999999999, 4093P 5611 -0.200000000000001,0.,0.,0.; 4093P 5612 -126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4095P 5613 -0.724999999999998,0.724999999999998,1.,1.,40.4453194054918, 4095P 5614 --163.047507575232,1.50000000000003,40.4453194054918, 4095P 5615 --156.547507575232,1.50000000000003,0.0749999999999993, 4095P 5616 -0.724999999999998,0.,0.,0.; 4095P 5617 -126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,40.4453194054918, 4097P 5618 --156.547507575232,-11.6,40.4453194054918,-156.547507575232, 4097P 5619 -1.50000000000004,-1.51,-0.2,0.,0.,0.; 4097P 5620 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4099P 5621 -2.90504270777187,2.90504270777187,1.,1.,40.4453194054918, 4099P 5622 --164.547507575232,-11.6,40.4453194054918,-156.547507575232, 4099P 5623 --11.6,2.10504270777188,2.90504270777187,0.,0.,0.; 4099P 5624 -126,1,1,0,0,1,0,-2.6006363194306,-2.6006363194306, 4101P 5625 --0.900472743859004,-0.900472743859004,1.,1.,40.4453194054918, 4101P 5626 --156.547507575232,1.50000000000004,23.4436836497758, 4101P 5627 --156.547507575232,1.50000000000003,-2.6006363194306, 4101P 5628 --0.900472743859004,0.,0.,0.; 4101P 5629 -126,1,1,0,0,1,0,0.900472743859004,0.900472743859004, 4103P 5630 -2.6006363194306,2.6006363194306,1.,1.,23.4436836497758, 4103P 5631 --163.047507575232,1.50000000000003,40.4453194054918, 4103P 5632 --163.047507575232,1.50000000000004,0.900472743859004, 4103P 5633 -2.6006363194306,0.,0.,0.; 4103P 5634 -126,1,1,0,0,1,0,0.0749999999999957,0.0749999999999957, 4105P 5635 -0.724999999999998,0.724999999999998,1.,1.,23.4436836497758, 4105P 5636 --163.047507575232,1.50000000000003,23.4436836497758, 4105P 5637 --156.547507575232,1.50000000000003,0.0749999999999957, 4105P 5638 -0.724999999999998,0.,0.,0.; 4105P 5639 -126,1,1,0,0,1,0,-6.31006610946171,-6.31006610946171, 4107P 5640 --4.90788742794403,-4.90788742794403,1.,1.,105.613764146653, 4107P 5641 --156.547507575232,1.50000000000004,91.5919773314763, 4107P 5642 --156.547507575232,1.50000000000004,-6.31006610946171, 4107P 5643 --4.90788742794403,0.,0.,0.; 4107P 5644 -126,1,1,0,0,1,0,4.90788742794403,4.90788742794403, 4109P 5645 -6.31006610946171,6.31006610946171,1.,1.,91.5919773314763, 4109P 5646 --163.047507575232,1.50000000000004,105.613764146653, 4109P 5647 --163.047507575232,1.50000000000004,4.90788742794403, 4109P 5648 -6.31006610946171,0.,0.,0.; 4109P 5649 -126,1,1,0,0,1,0,0.0750000000000028,0.0750000000000028, 4111P 5650 -0.724999999999998,0.724999999999998,1.,1.,91.5919773314763, 4111P 5651 --163.047507575232,1.50000000000007,91.5919773314763, 4111P 5652 --156.547507575232,1.50000000000007,0.0750000000000028, 4111P 5653 -0.724999999999998,0.,0.,0.; 4111P 5654 -126,1,1,0,0,1,0,0.722042900013125,0.722042900013125, 4113P 5655 -5.83670869261158,5.83670869261158,1.,1.,40.4453194054918, 4113P 5656 --163.047507575232,5.50000000000003,91.5919773314763, 4113P 5657 --163.047507575232,5.50000000000004,0.722042900013125, 4113P 5658 -5.83670869261158,0.,0.,0.; 4113P 5659 -126,1,1,0,0,1,0,0.15,0.15,0.549999999999998,0.549999999999998, 4115P 5660 -1.,1.,91.5919773314763,-163.047507575232,1.50000000000007, 4115P 5661 -91.5919773314763,-163.047507575232,5.50000000000004,0.15, 4115P 5662 -0.549999999999998,0.,0.,0.; 4115P 5663 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,116.596840828848, 4117P 5664 --163.047507575232,7.50000000000006,116.596840828848, 4117P 5665 --163.047507575232,5.50000000000006,0.,0.2,0.,0.,0.; 4117P 5666 -126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4119P 5667 -8.33719504234876,8.33719504234876,1.,1.,5.43422877259571, 4119P 5668 --163.047507575232,7.50000000000002,116.596840828848, 4119P 5669 --163.047507575232,7.50000000000005,-2.77906616327648, 4119P 5670 -8.33719504234876,0.,0.,0.; 4119P 5671 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,5.43422877259573, 4121P 5672 --163.047507575232,7.50000000000003,5.43422877259573, 4121P 5673 --163.047507575232,5.50000000000003,0.,0.2,0.,0.,0.; 4121P 5674 -126,1,1,0,0,1,0,0.9,0.9,1.3,1.3,1.,1.,23.4436836497758, 4123P 5675 --163.047507575232,1.50000000000003,23.4436836497758, 4123P 5676 --163.047507575232,5.50000000000002,0.9,1.3,0.,0.,0.; 4123P 5677 -126,1,1,0,0,1,0,-2.83004270777188,-2.83004270777188, 4125P 5678 --2.03004270777188,-2.03004270777188,1.,1.,23.4436836497758, 4125P 5679 --156.547507575232,-11.6,23.4436836497758,-164.547507575232, 4125P 5680 --11.6,-2.83004270777188,-2.03004270777188,0.,0.,0.; 4125P 5681 -126,1,1,0,0,1,0,-0.15,-0.15,1.16,1.16,1.,1.,23.4436836497758, 4127P 5682 --156.547507575232,1.50000000000003,23.4436836497758, 4127P 5683 --156.547507575232,-11.6,-0.15,1.16,0.,0.,0.; 4127P 5684 -126,1,1,0,0,1,0,-2.90504270777187,-2.90504270777187, 4129P 5685 --2.10504270777188,-2.10504270777188,1.,1.,91.5919773314763, 4129P 5686 --156.547507575232,-11.5999999999999,91.5919773314763, 4129P 5687 --164.547507575232,-11.5999999999999,-2.90504270777187, 4129P 5688 --2.10504270777188,0.,0.,0.; 4129P 5689 -126,1,1,0,0,1,0,-0.15,-0.15,1.16,1.16,1.,1.,91.5919773314763, 4131P 5690 --156.547507575232,1.50000000000006,91.5919773314763, 4131P 5691 --156.547507575232,-11.5999999999999,-0.15,1.16,0.,0.,0.; 4131P 5692 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4133P 5693 -2.25504270777187,2.25504270777187,1.,1.,91.5919773314763, 4133P 5694 --164.547507575232,5.50000000000004,91.5919773314763, 4133P 5695 --163.047507575232,5.50000000000004,2.10504270777188, 4133P 5696 -2.25504270777187,0.,0.,0.; 4133P 5697 -126,1,1,0,0,1,0,-0.75,-0.75,0.549999999999998,0.549999999999998, 4135P 5698 -1.,1.,91.5919773314763,-164.547507575232,-7.49999999999994, 4135P 5699 -91.5919773314763,-164.547507575232,5.50000000000004,-0.75, 4135P 5700 -0.549999999999998,0.,0.,0.; 4135P 5701 -126,1,1,0,0,1,0,-0.75,-0.75,0.549999999999999,0.549999999999999, 4137P 5702 -1.,1.,54.4331411094029,-164.547507575232,-7.49999999999996, 4137P 5703 -54.4331411094029,-164.547507575232,5.50000000000004,-0.75, 4137P 5704 -0.549999999999999,0.,0.,0.; 4137P 5705 -126,1,1,0,0,1,0,-2.12082507040424,-2.12082507040424, 4139P 5706 --0.722042900013125,-0.722042900013125,1.,1.,54.4331411094029, 4139P 5707 --164.547507575232,5.50000000000004,40.4453194054918, 4139P 5708 --164.547507575232,5.50000000000003,-2.12082507040424, 4139P 5709 --0.722042900013125,0.,0.,0.; 4139P 5710 -126,1,1,0,0,1,0,-2.10504270777183,-2.10504270777183, 4141P 5711 --1.40504270777192,-1.40504270777192,1.,1.,54.4331411094029, 4141P 5712 --164.547507575232,5.50000000000003,54.4331411094029, 4141P 5713 --171.547507575231,5.50000000000003,-2.10504270777183, 4141P 5714 --1.40504270777192,0.,0.,0.; 4141P 5715 -126,1,1,0,0,1,0,-0.329120546436126,-0.329120546436126, 4143P 5716 -1.67087945356387,1.67087945356387,1.,1.,54.4331411094029, 4143P 5717 --171.547507575231,5.50000000000003,74.4331411094029, 4143P 5718 --171.547507575232,5.50000000000004,-0.329120546436126, 4143P 5719 -1.67087945356387,0.,0.,0.; 4143P 5720 -126,1,1,0,0,1,0,1.75504270777192,1.75504270777192, 4145P 5721 -2.45504270777183,2.45504270777183,1.,1.,74.4331411094029, 4145P 5722 --171.547507575232,5.50000000000004,74.4331411094029, 4145P 5723 --164.547507575232,5.50000000000004,1.75504270777192, 4145P 5724 -2.45504270777183,0.,0.,0.; 4145P 5725 -126,1,1,0,0,1,0,-5.83670869261158,-5.83670869261158, 4147P 5726 --4.12082507040424,-4.12082507040424,1.,1.,91.5919773314763, 4147P 5727 --164.547507575232,5.50000000000004,74.4331411094029, 4147P 5728 --164.547507575232,5.50000000000004,-5.83670869261158, 4147P 5729 --4.12082507040424,0.,0.,0.; 4147P 5730 -126,1,1,0,0,1,0,-0.55,-0.55,0.75,0.75,1.,1.,74.4331411094029, 4149P 5731 --164.547507575232,5.50000000000004,74.4331411094029, 4149P 5732 --164.547507575232,-7.49999999999996,-0.55,0.75,0.,0.,0.; 4149P 5733 -126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,74.4331411094029, 4151P 5734 --171.547507575232,-7.49999999999996,74.4331411094029, 4151P 5735 --171.547507575232,5.50000000000004,0.,1.3,0.,0.,0.; 4151P 5736 -126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,54.4331411094029, 4153P 5737 --171.547507575231,-7.49999999999996,54.4331411094029, 4153P 5738 --171.547507575231,5.50000000000004,0.,1.3,0.,0.,0.; 4153P 5739 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,117.59899817983, 4155P 5740 --245.454354455992,-7.49999999999994,117.59899817983, 4155P 5741 --245.454354455992,5.50000000000006,-1.5,-0.2,0.,0.,0.; 4155P 5742 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,117.599000752838, 4157P 5743 --167.842369071796,5.50000000000006,117.599000752838, 4157P 5744 --167.842369071796,-7.49999999999994,0.2,1.5,0.,0.,0.; 4157P 5745 -126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4159P 5746 -3.15835685664568,3.15835685664568,1.,1.,2.9331411094029, 4159P 5747 --187.471615957251,7.50000000000003,2.93314110940288, 4159P 5748 --165.476420277504,7.50000000000003,0.958837288670924, 4159P 5749 -3.15835685664568,0.,0.,0.; 4159P 5750 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,2.9331411094029, 4161P 5751 --187.471615957251,7.50000000000003,2.9331411094029, 4161P 5752 --187.471615957251,5.50000000000003,0.,0.2,0.,0.,0.; 4161P 5753 -126,1,1,0,0,1,0,0.,0.,1.5,1.5,1.,1.,2.93314110940287, 4163P 5754 --165.476420277504,7.50000000000003,2.93314110940287, 4163P 5755 --165.476420277504,-7.49999999999997,0.,1.5,0.,0.,0.; 4163P 5756 -126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4165P 5757 -3.97255712615894,3.97255712615894,1.,1.,2.93210324777536, 4165P 5758 --247.747012802266,7.50000000000003,2.9331411094029, 4165P 5759 --187.471615957251,7.50000000000003,-2.054982559236, 4165P 5760 -3.97255712615894,0.,0.,0.; 4165P 5761 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,2.93210324777537, 4167P 5762 --247.747012802266,7.50000000000003,2.93210324777537, 4167P 5763 --247.747012802266,5.50000000000003,0.,0.2,0.,0.,0.; 4167P 5764 -126,4,2,0,0,0,0,-1.57081354545468,-1.57081354545468, 4169P 5765 --1.57081354545468,-0.785406772727342,-0.785406772727342,0.,0., 4169P 5766 -0.,1.,0.923877885178856,1.,0.923877885178848,1., 4169P 5767 -5.43426324740444,-250.249215886107,7.50000000000003, 4169P 5768 -4.39782202118939,-250.249215886107,7.50000000000003, 4169P 5769 -3.66495371141794,-249.516334957217,7.50000000000003, 4169P 5770 -2.93208540164649,-248.783454028327,7.50000000000003, 4169P 5771 -2.93210324777536,-247.747012802266,7.50000000000003, 4169P 5772 --1.57081354545468,0.,0.,0.,0.; 4169P 5773 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,5.43426324740444, 4171P 5774 --250.249215886107,7.50000000000003,5.43426324740444, 4171P 5775 --250.249215886107,5.50000000000003,0.,0.2,0.,0.,0.; 4171P 5776 -126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4173P 5777 -8.33719318235691,8.33719318235691,1.,1.,116.596838103822, 4173P 5778 --250.249215886107,7.50000000000007,5.43426324740444, 4173P 5779 --250.249215886107,7.50000000000004,-2.77906430328482, 4173P 5780 -8.33719318235691,0.,0.,0.; 4173P 5781 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,116.596838103822, 4175P 5782 --250.249215886107,7.50000000000006,116.596838103822, 4175P 5783 --250.249215886107,5.50000000000006,0.,0.2,0.,0.,0.; 4175P 5784 -126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4177P 5785 --1.5707963267949,0.,0.,0.,1.,0.707106781186533,1., 4177P 5786 -119.098998103822,-247.747055886107,7.50000000000006, 4177P 5787 -119.098998103822,-250.249215886107,7.50000000000006, 4177P 5788 -116.596838103822,-250.249215886107,7.50000000000006, 4177P 5789 --1.5707963267949,0.,0.,0.,0.; 4177P 5790 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,119.098998103822, 4179P 5791 --247.747055886107,7.50000000000006,119.098998103822, 4179P 5792 --247.747055886107,5.50000000000006,0.,0.2,0.,0.,0.; 4179P 5793 -126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4181P 5794 -6.16480416245852,6.16480416245852,1.,1.,119.099000828846, 4181P 5795 --165.54966486678,7.50000000000006,119.098998103822, 4181P 5796 --247.747055886107,7.50000000000006,-2.05493493947419, 4181P 5797 -6.16480416245852,0.,0.,0.; 4181P 5798 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,119.099000828846, 4183P 5799 --165.54966486678,7.50000000000006,119.099000828846, 4183P 5800 --165.54966486678,5.50000000000006,0.,0.2,0.,0.,0.; 4183P 5801 -126,2,2,0,0,0,0,-1.57079524434933,-1.57079524434933, 4185P 5802 --1.57079524434933,0.,0.,0.,1.,0.707107163888751,1., 4185P 5803 -116.596840828848,-163.047507575233,7.50000000000006, 4185P 5804 -119.098998120397,-163.047507575233,7.50000000000006, 4185P 5805 -119.099000828846,-165.54966486678,7.50000000000006, 4185P 5806 --1.57079524434933,0.,0.,0.,0.; 4185P 5807 -126,2,2,0,0,0,0,-1.54151851752146,-1.54151851752146, 4187P 5808 --1.54151851752146,0.,0.,0.,1.,0.71738191595478,1., 4187P 5809 -2.93314110940286,-165.476420277504,7.50000000000003, 4187P 5810 -3.00427467840082,-163.047507575232,7.50000000000003, 4187P 5811 -5.4342287725957,-163.047507575232,7.50000000000003, 4187P 5812 --1.54151851752146,0.,0.,0.,0.; 4187P 5813 -126,2,2,0,0,0,0,0.,0.,0.,1.55536115200856,1.55536115200856, 4189P 5814 -1.55536115200856,1.,0.712542827450542,1.,5.4342287725957, 4189P 5815 --156.547507575232,7.50000000000003,-3.43004274316727, 4189P 5816 --156.547507575232,7.50000000000002,-3.56685889059713, 4189P 5817 --165.410723179457,7.50000000000002,0.,1.55536115200856,0.,0.,0.; 4189P 5818 -126,1,1,0,0,1,0,7.15168754189355D-31,7.15168754189355D-31, 4191P 5819 -2.20608325126057,2.20608325126057,1.,1.,-3.56685889059712, 4191P 5820 --165.410723179457,7.50000000000003,-3.5668588905971, 4191P 5821 --187.471555692063,7.50000000000003,7.15168754189355D-31, 4191P 5822 -2.20608325126057,0.,0.,0.; 4191P 5823 -126,1,1,0,0,1,0,0.,0.,6.02753451978495,6.02753451978495,1.,1., 4193P 5824 --3.56685889059712,-187.471555692063,7.50000000000003, 4193P 5825 --3.56789675126108,-247.746900880977,7.50000000000003,0., 4193P 5826 -6.02753451978495,0.,0.,0.; 4193P 5827 -126,4,2,0,0,0,0,0.,0.,0.,0.785406772727353,0.785406772727353, 4195P 5828 -1.57081354545471,1.57081354545471,1.57081354545471,1., 4195P 5829 -0.92387788517878,1.,0.92387788517879,1.,-3.56789675126107, 4195P 5830 --247.746900880977,7.50000000000002,-3.56796095727013, 4195P 5831 --251.475763043109,7.50000000000002,-0.931279936275423, 4195P 5832 --254.112489464608,7.50000000000003,1.70540108471928, 4195P 5833 --256.749215886107,7.50000000000003,5.43426324740445, 4195P 5834 --256.749215886107,7.50000000000003,0.,1.57081354545471,0.,0.,0.; 4195P 5835 -126,1,1,0,0,1,0,0.,0.,11.1162574856417,11.1162574856417,1.,1., 4197P 5836 -5.43426324740444,-256.749215886107,7.50000000000003, 4197P 5837 -116.596838103822,-256.749215886107,7.50000000000005,0., 4197P 5838 -11.1162574856417,0.,0.,0.; 4197P 5839 -126,2,2,0,0,0,0,0.,0.,0.,1.57079632679491,1.57079632679491, 4199P 5840 -1.57079632679491,1.,0.707106781186541,1.,116.596838103822, 4199P 5841 --256.749215886107,7.50000000000006,125.598998103822, 4199P 5842 --256.749215886107,7.50000000000006,125.598998103822, 4199P 5843 --247.747055886107,7.50000000000006,0.,1.57079632679491,0.,0.,0.; 4199P 5844 -126,1,1,0,0,1,0,0.,0.,8.21973908038377,8.21973908038377,1.,1., 4201P 5845 -125.598998103822,-247.747055886107,7.50000000000006, 4201P 5846 -125.599000828846,-165.54966508227,7.50000000000006,0., 4201P 5847 -8.21973908038377,0.,0.,0.; 4201P 5848 -126,2,2,0,0,0,0,0.,0.,0.,1.57079604986551,1.57079604986551, 4203P 5849 -1.57079604986551,1.,0.707106879095863,1.,125.599000828846, 4203P 5850 --165.54966508227,7.50000000000006,125.598998335884, 4203P 5851 --156.547507575234,7.50000000000006,116.596840828848, 4203P 5852 --156.547507575234,7.50000000000006,0.,1.57079604986551,0.,0.,0.; 4203P 5853 -126,1,1,0,0,1,0,0.,0.,11.1162612056252,11.1162612056252,1.,1., 4205P 5854 -116.596840828848,-156.547507575232,7.50000000000006, 4205P 5855 -5.43422877259571,-156.547507575232,7.50000000000003,0., 4205P 5856 -11.1162612056252,0.,0.,0.; 4205P 5857 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56685889059712, 4207P 5858 --165.410723179457,7.50000000000003,-3.56685889059711, 4207P 5859 --165.410723179457,-11.6,0.,1.91,0.,0.,0.; 4207P 5860 -126,1,1,0,0,1,0,-2.20608325126057,-2.20608325126057,0.,0.,1.,1., 4209P 5861 --3.5668588905971,-187.471555692063,-11.6,-3.56685889059712, 4209P 5862 --165.410723179457,-11.6,-2.20608325126057,0.,0.,0.,0.; 4209P 5863 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56685889059712, 4211P 5864 --187.471555692063,7.50000000000003,-3.56685889059711, 4211P 5865 --187.471555692063,-11.6,0.,1.91,0.,0.,0.; 4211P 5866 -126,1,1,0,0,1,0,-6.02753451978495,-6.02753451978495,0.,0.,1.,1., 4213P 5867 --3.56789675126108,-247.746900880977,-11.6,-3.56685889059712, 4213P 5868 --187.471555692063,-11.6,-6.02753451978495,0.,0.,0.,0.; 4213P 5869 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,-3.56789675126109, 4215P 5870 --247.746900880977,7.50000000000003,-3.56789675126108, 4215P 5871 --247.746900880977,-11.6,0.,1.91,0.,0.,0.; 4215P 5872 -126,4,2,0,0,0,0,-1.57081354545471,-1.57081354545471, 4217P 5873 --1.57081354545471,-0.785406772727353,-0.785406772727353,0.,0., 4217P 5874 -0.,1.,0.92387788517879,1.,0.92387788517878,1.,5.43426324740445, 4217P 5875 --256.749215886107,-11.6,1.70540108471928,-256.749215886107, 4217P 5876 --11.6,-0.931279936275423,-254.112489464608,-11.6, 4217P 5877 --3.56796095727013,-251.475763043109,-11.6,-3.56789675126107, 4217P 5878 --247.746900880977,-11.6,-1.57081354545471,0.,0.,0.,0.; 4217P 5879 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,5.43426324740444, 4219P 5880 --256.749215886107,7.50000000000003,5.43426324740445, 4219P 5881 --256.749215886107,-11.6,0.,1.91,0.,0.,0.; 4219P 5882 -126,1,1,0,0,1,0,-11.1162574856417,-11.1162574856417,0.,0.,1.,1., 4221P 5883 -116.596838103822,-256.749215886107,-11.5999999999999, 4221P 5884 -5.43426324740444,-256.749215886107,-11.6,-11.1162574856417,0., 4221P 5885 -0.,0.,0.; 4221P 5886 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,116.596838103822, 4223P 5887 --256.749215886107,7.50000000000006,116.596838103822, 4223P 5888 --256.749215886107,-11.5999999999999,0.,1.91,0.,0.,0.; 4223P 5889 -126,2,2,0,0,0,0,-1.57079632679491,-1.57079632679491, 4225P 5890 --1.57079632679491,0.,0.,0.,1.,0.707106781186541,1., 4225P 5891 -125.598998103822,-247.747055886107,-11.5999999999999, 4225P 5892 -125.598998103822,-256.749215886107,-11.5999999999999, 4225P 5893 -116.596838103822,-256.749215886107,-11.5999999999999, 4225P 5894 --1.57079632679491,0.,0.,0.,0.; 4225P 5895 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,125.598998103822, 4227P 5896 --247.747055886107,7.50000000000006,125.598998103822, 4227P 5897 --247.747055886107,-11.5999999999999,0.,1.91,0.,0.,0.; 4227P 5898 -126,1,1,0,0,1,0,-8.21973908038377,-8.21973908038377,0.,0.,1.,1., 4229P 5899 -125.599000828846,-165.54966508227,-11.5999999999999, 4229P 5900 -125.598998103822,-247.747055886107,-11.5999999999999, 4229P 5901 --8.21973908038377,0.,0.,0.,0.; 4229P 5902 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,125.599000828846, 4231P 5903 --165.54966508227,7.50000000000006,125.599000828846, 4231P 5904 --165.54966508227,-11.5999999999999,0.,1.91,0.,0.,0.; 4231P 5905 -126,2,2,0,0,0,0,-1.57079604986551,-1.57079604986551, 4233P 5906 --1.57079604986551,0.,0.,0.,1.,0.707106879095863,1., 4233P 5907 -116.596840828848,-156.547507575234,-11.5999999999999, 4233P 5908 -125.598998335884,-156.547507575234,-11.5999999999999, 4233P 5909 -125.599000828846,-165.54966508227,-11.5999999999999, 4233P 5910 --1.57079604986551,0.,0.,0.,0.; 4233P 5911 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,116.596840828848, 4235P 5912 --156.547507575232,7.50000000000006,116.596840828848, 4235P 5913 --156.547507575232,-11.5999999999999,0.,1.91,0.,0.,0.; 4235P 5914 -126,1,1,0,0,1,0,-7.61515214233563,-7.61515214233563, 4237P 5915 --2.50048634973717,-2.50048634973717,1.,1.,40.4453194054918, 4237P 5916 --156.547507575232,-11.6,91.5919773314763,-156.547507575232, 4237P 5917 --11.5999999999999,-7.61515214233563,-2.50048634973717,0.,0.,0.; 4237P 5918 -126,1,1,0,0,1,0,-11.1162612056252,-11.1162612056252, 4239P 5919 --9.31531571790722,-9.31531571790722,1.,1.,5.43422877259571, 4239P 5920 --156.547507575232,-11.6,23.4436836497758,-156.547507575232, 4239P 5921 --11.6,-11.1162612056252,-9.31531571790722,0.,0.,0.; 4239P 5922 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,5.43422877259573, 4241P 5923 --156.547507575232,7.50000000000003,5.43422877259574, 4241P 5924 --156.547507575232,-11.6,0.,1.91,0.,0.,0.; 4241P 5925 -126,1,1,0,0,1,0,-1.09830766821949,-1.09830766821949,0.,0.,1.,1., 4243P 5926 -105.613764146653,-156.547507575232,-11.5999999999999, 4243P 5927 -116.596840828848,-156.547507575232,-11.5999999999999, 4243P 5928 --1.09830766821949,0.,0.,0.,0.; 4243P 5929 -126,2,2,0,0,0,0,-1.55536115200856,-1.55536115200856, 4245P 5930 --1.55536115200856,0.,0.,0.,1.,0.712542827450542,1., 4245P 5931 --3.56685889059713,-165.410723179457,-11.6,-3.43004274316727, 4245P 5932 --156.547507575232,-11.6,5.4342287725957,-156.547507575232,-11.6, 4245P 5933 --1.55536115200856,0.,0.,0.,0.; 4245P 5934 -126,1,1,0,0,1,0,4.455,4.455,5.755,5.755,1.,1.,220.752682252201, 4247P 5935 --164.547507575232,-7.5,220.752682252201,-164.547507575232,5.5, 4247P 5936 -4.455,5.755,0.,0.,0.; 4247P 5937 -126,1,1,0,0,1,0,-4.83608912419324,-4.83608912419324, 4249P 5938 --4.12082507040424,-4.12082507040424,1.,1.,220.752682252201, 4249P 5939 --164.547507575232,5.5,213.600041714311,-164.547507575232,5.5, 4249P 5940 --4.83608912419324,-4.12082507040424,0.,0.,0.; 4249P 5941 -126,1,1,0,0,1,0,-0.55,-0.55,0.75,0.75,1.,1.,213.600041714311, 4251P 5942 --164.547507575232,5.5,213.600041714311,-164.547507575232,-7.5, 4251P 5943 --0.55,0.75,0.,0.,0.; 4251P 5944 -126,1,1,0,0,1,0,-4.21636997194452,-4.21636997194452, 4253P 5945 --3.50110591815552,-3.50110591815552,1.,1.,213.600041714311, 4253P 5946 --164.547507575232,-7.5,220.752682252201,-164.547507575232,-7.5, 4253P 5947 --4.21636997194452,-3.50110591815552,0.,0.,0.; 4253P 5948 -126,1,1,0,0,1,0,2.03004270777188,2.03004270777188, 4255P 5949 -2.18004270777188,2.18004270777188,1.,1.,220.752682252201, 4255P 5950 --164.547507575232,5.5,220.752682252201,-163.047507575232,5.5, 4255P 5951 -2.03004270777188,2.18004270777188,0.,0.,0.; 4255P 5952 -126,1,1,0,0,1,0,-0.277957099986875,-0.277957099986875, 4257P 5953 -4.83608912419324,4.83608912419324,1.,1.,169.612220010399, 4257P 5954 --163.047507575232,5.5,220.752682252201,-163.047507575232,5.5, 4257P 5955 --0.277957099986875,4.83608912419324,0.,0.,0.; 4257P 5956 -126,1,1,0,0,1,0,-2.25504270777188,-2.25504270777188, 4259P 5957 --2.10504270777188,-2.10504270777188,1.,1.,169.612220010399, 4259P 5958 --163.047507575232,5.5,169.612220010399,-164.547507575232,5.5, 4259P 5959 --2.25504270777188,-2.10504270777188,0.,0.,0.; 4259P 5960 -126,1,1,0,0,1,0,-2.12082507040424,-2.12082507040424, 4261P 5961 -0.277957099986875,0.277957099986875,1.,1.,193.600041714311, 4261P 5962 --164.547507575232,5.5,169.612220010399,-164.547507575232,5.5, 4261P 5963 --2.12082507040424,0.277957099986875,0.,0.,0.; 4261P 5964 -126,1,1,0,0,1,0,-2.10504270777183,-2.10504270777183, 4263P 5965 --1.40504270777192,-1.40504270777192,1.,1.,193.600041714311, 4263P 5966 --164.547507575232,5.5,193.600041714311,-171.547507575231,5.5, 4263P 5967 --2.10504270777183,-1.40504270777192,0.,0.,0.; 4263P 5968 -126,1,1,0,0,1,0,-0.329120546436126,-0.329120546436126, 4265P 5969 -1.67087945356387,1.67087945356387,1.,1.,193.600041714311, 4265P 5970 --171.547507575231,5.5,213.600041714311,-171.547507575232,5.5, 4265P 5971 --0.329120546436126,1.67087945356387,0.,0.,0.; 4265P 5972 -126,1,1,0,0,1,0,1.75504270777192,1.75504270777192, 4267P 5973 -2.45504270777183,2.45504270777183,1.,1.,213.600041714311, 4267P 5974 --171.547507575232,5.5,213.600041714311,-164.547507575232,5.5, 4267P 5975 -1.75504270777192,2.45504270777183,0.,0.,0.; 4267P 5976 -126,1,1,0,0,1,0,3.90726785952569,3.90726785952569, 4269P 5977 -5.61006610946171,5.61006610946171,1.,1.,220.752682252201, 4269P 5978 --163.047507575232,1.5,237.780664751561,-163.047507575232,1.5, 4269P 5979 -3.90726785952569,5.61006610946171,0.,0.,0.; 4269P 5980 -126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,237.780664751561, 4271P 5981 --163.047507575232,5.5,237.780664751561,-163.047507575232,1.5, 4271P 5982 --0.2,0.2,0.,0.,0.; 4271P 5983 -126,1,1,0,0,1,0,6.53888737412926,6.53888737412926, 4273P 5984 -8.33719504234876,8.33719504234876,1.,1.,237.780664751561, 4273P 5985 --163.047507575232,5.5,255.763741433756,-163.047507575232,5.5, 4273P 5986 -6.53888737412926,8.33719504234876,0.,0.,0.; 4273P 5987 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,255.763741433756, 4275P 5988 --163.047507575232,7.5,255.763741433756,-163.047507575232,5.5,0., 4275P 5989 -0.2,0.,0.,0.; 4275P 5990 -126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4277P 5991 -8.33719504234876,8.33719504234876,1.,1.,144.601129377503, 4277P 5992 --163.047507575232,7.5,255.763741433756,-163.047507575232,7.5, 4277P 5993 --2.77906616327648,8.33719504234876,0.,0.,0.; 4277P 5994 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,144.601129377503, 4279P 5995 --163.047507575232,7.5,144.601129377503,-163.047507575232,5.5,0., 4279P 5996 -0.2,0.,0.,0.; 4279P 5997 -126,1,1,0,0,1,0,-2.77906616327648,-2.77906616327648, 4281P 5998 --1.6807553499229,-1.6807553499229,1.,1.,144.601129377503, 4281P 5999 --163.047507575232,5.5,155.584237511039,-163.047507575232,5.5, 4281P 6000 --2.77906616327648,-1.6807553499229,0.,0.,0.; 4281P 6001 -126,1,1,0,0,1,0,0.,0.,0.4,0.4,1.,1.,155.584237511039, 4283P 6002 --163.047507575232,1.5,155.584237511039,-163.047507575232,5.5,0., 4283P 6003 -0.4,0.,0.,0.; 4283P 6004 -126,1,1,0,0,1,0,0.19783806949458,0.19783806949458, 4285P 6005 -1.6006363194306,1.6006363194306,1.,1.,155.584237511039, 4285P 6006 --163.047507575232,1.5,169.612220010399,-163.047507575232,1.5, 4285P 6007 -0.19783806949458,1.6006363194306,0.,0.,0.; 4285P 6008 -126,1,1,0,0,1,0,-0.2,-0.2,0.2,0.2,1.,1.,169.612220010399, 4287P 6009 --163.047507575232,5.5,169.612220010399,-163.047507575232,1.5, 4287P 6010 --0.2,0.2,0.,0.,0.; 4287P 6011 -126,1,1,0,0,1,0,0.,0.,0.4,0.4,1.,1.,220.752682252201, 4289P 6012 --163.047507575232,1.5,220.752682252201,-163.047507575232,5.5,0., 4289P 6013 -0.4,0.,0.,0.; 4289P 6014 -126,1,1,0,0,1,0,-2.50504270777187,-2.50504270777187, 4291P 6015 --1.70504270777188,-1.70504270777188,1.,1.,155.584237511039, 4291P 6016 --156.547507575232,-11.6,155.584237511039,-164.547507575232, 4291P 6017 --11.6,-2.50504270777187,-1.70504270777188,0.,0.,0.; 4291P 6018 -126,1,1,0,0,1,0,-5.355,-5.355,-4.045,-4.045,1.,1., 4293P 6019 -155.584237511039,-156.547507575232,1.49999999999999, 4293P 6020 -155.584237511039,-156.547507575232,-11.6,-5.355,-4.045,0.,0.,0.; 4293P 6021 -126,1,1,0,0,1,0,-0.79999999999999,-0.79999999999999, 4295P 6022 --0.149999999999991,-0.149999999999991,1.,1.,155.584237511039, 4295P 6023 --156.547507575232,1.49999999999999,155.584237511039, 4295P 6024 --163.047507575232,1.49999999999999,-0.79999999999999, 4295P 6025 --0.149999999999991,0.,0.,0.; 4295P 6026 -126,1,1,0,0,1,0,2.03004270777188,2.03004270777188, 4297P 6027 -2.18004270777188,2.18004270777188,1.,1.,155.584237511039, 4297P 6028 --164.547507575232,5.5,155.584237511039,-163.047507575232,5.5, 4297P 6029 -2.03004270777188,2.18004270777188,0.,0.,0.; 4297P 6030 -126,1,1,0,0,1,0,4.455,4.455,5.755,5.755,1.,1.,155.584237511039, 4299P 6031 --164.547507575232,-7.5,155.584237511039,-164.547507575232,5.5, 4299P 6032 -4.455,5.755,0.,0.,0.; 4299P 6033 -126,1,1,0,0,1,0,10.,10.,10.41,10.41,1.,1.,155.584237511039, 4301P 6034 --164.547507575232,-11.6,155.584237511039,-164.547507575232,-7.5, 4301P 6035 -10.,10.41,0.,0.,0.; 4301P 6036 -126,1,1,0,0,1,0,-2.50504270777188,-2.50504270777188, 4303P 6037 --1.70504270777188,-1.70504270777188,1.,1.,220.752682252201, 4303P 6038 --156.547507575232,-11.6,220.752682252201,-164.547507575232, 4303P 6039 --11.6,-2.50504270777188,-1.70504270777188,0.,0.,0.; 4303P 6040 -126,1,1,0,0,1,0,-5.355,-5.355,-4.045,-4.045,1.,1., 4305P 6041 -220.752682252201,-156.547507575232,1.5,220.752682252201, 4305P 6042 --156.547507575232,-11.6,-5.355,-4.045,0.,0.,0.; 4305P 6043 -126,1,1,0,0,1,0,-0.799999999999992,-0.799999999999992, 4307P 6044 --0.149999999999991,-0.149999999999991,1.,1.,220.752682252201, 4307P 6045 --156.547507575232,1.5,220.752682252201,-163.047507575232,1.5, 4307P 6046 --0.799999999999992,-0.149999999999991,0.,0.,0.; 4307P 6047 -126,1,1,0,0,1,0,10.,10.,10.41,10.41,1.,1.,220.752682252201, 4309P 6048 --164.547507575232,-11.6,220.752682252201,-164.547507575232,-7.5, 4309P 6049 -10.,10.41,0.,0.,0.; 4309P 6050 -126,1,1,0,0,1,0,1.6807553499229,1.6807553499229, 4311P 6051 -2.54979601694251,2.54979601694251,1.,1.,155.584237511039, 4311P 6052 --164.547507575232,5.5,146.893830840843,-164.547507575232,5.5, 4311P 6053 -1.6807553499229,2.54979601694251,0.,0.,0.; 4311P 6054 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,146.893830840843, 4313P 6055 --164.547507575232,5.5,146.893830840843,-164.547507575232,-7.5, 4313P 6056 -0.2,1.5,0.,0.,0.; 4313P 6057 -126,1,1,0,0,1,0,-10.8869910592913,-10.8869910592913, 4315P 6058 --10.0179503922717,-10.0179503922717,1.,1.,146.893830840843, 4315P 6059 --164.547507575232,-7.5,155.584237511039,-164.547507575232,-7.5, 4315P 6060 --10.8869910592913,-10.0179503922717,0.,0.,0.; 4315P 6061 -126,1,1,0,0,1,0,-1.6006363194306,-1.6006363194306, 4317P 6062 --0.19783806949458,-0.19783806949458,1.,1.,169.612220010399, 4317P 6063 --156.547507575232,1.5,155.584237511039,-156.547507575232,1.5, 4317P 6064 --1.6006363194306,-0.19783806949458,0.,0.,0.; 4317P 6065 -126,1,1,0,0,1,0,-11.1162612056252,-11.1162612056252, 4319P 6066 --10.0179503922716,-10.0179503922716,1.,1.,144.601129377503, 4319P 6067 --156.547507575232,-11.6,155.584237511039,-156.547507575232, 4319P 6068 --11.6,-11.1162612056252,-10.0179503922716,0.,0.,0.; 4319P 6069 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,144.601129377503, 4321P 6070 --156.547507575232,7.5,144.601129377503,-156.547507575232,-11.6, 4321P 6071 -0.,1.91,0.,0.,0.; 4321P 6072 -126,1,1,0,0,1,0,0.,0.,11.1162612056252,11.1162612056252,1.,1., 4323P 6073 -255.763741433756,-156.547507575232,7.5,144.601129377503, 4323P 6074 --156.547507575232,7.5,0.,11.1162612056252,0.,0.,0.; 4323P 6075 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,255.763741433756, 4325P 6076 --156.547507575232,7.5,255.763741433756,-156.547507575232,-11.6, 4325P 6077 -0.,1.91,0.,0.,0.; 4325P 6078 -126,1,1,0,0,1,0,-1.79830766821949,-1.79830766821949,0.,0.,1.,1., 4327P 6079 -237.780664751561,-156.547507575232,-11.6,255.763741433756, 4327P 6080 --156.547507575232,-11.6,-1.79830766821949,0.,0.,0.,0.; 4327P 6081 -126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,237.780664751561, 4329P 6082 --156.547507575232,-11.6,237.780664751561,-156.547507575232,1.5, 4329P 6083 --1.51,-0.2,0.,0.,0.; 4329P 6084 -126,1,1,0,0,1,0,-5.61006610946171,-5.61006610946171, 4331P 6085 --3.90726785952569,-3.90726785952569,1.,1.,237.780664751561, 4331P 6086 --156.547507575232,1.5,220.752682252201,-156.547507575232,1.5, 4331P 6087 --5.61006610946171,-3.90726785952569,0.,0.,0.; 4331P 6088 -126,1,1,0,0,1,0,-8.61515214233562,-8.61515214233562, 4333P 6089 --3.50110591815551,-3.50110591815551,1.,1.,169.612220010399, 4333P 6090 --156.547507575232,-11.6,220.752682252201,-156.547507575232, 4333P 6091 --11.6,-8.61515214233562,-3.50110591815551,0.,0.,0.; 4333P 6092 -126,1,1,0,0,1,0,-1.51,-1.51,-0.2,-0.2,1.,1.,169.612220010399, 4335P 6093 --156.547507575232,-11.6,169.612220010399,-156.547507575232,1.5, 4335P 6094 --1.51,-0.2,0.,0.,0.; 4335P 6095 -126,1,1,0,0,1,0,-3.5313098815677,-3.5313098815677, 4337P 6096 --2.12851163163167,-2.12851163163167,1.,1.,155.584237511039, 4337P 6097 --164.547507575232,-11.6,169.612220010399,-164.547507575232, 4337P 6098 --11.6,-3.5313098815677,-2.12851163163167,0.,0.,0.; 4337P 6099 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4339P 6100 -2.90504270777188,2.90504270777188,1.,1.,169.612220010399, 4339P 6101 --164.547507575232,-11.6,169.612220010399,-156.547507575232, 4339P 6102 --11.6,2.10504270777188,2.90504270777188,0.,0.,0.; 4339P 6103 -126,1,1,0,0,1,0,0.177112355490372,0.177112355490372, 4341P 6104 -1.87991060542639,1.87991060542639,1.,1.,220.752682252201, 4341P 6105 --164.547507575232,-11.6,237.780664751561,-164.547507575232, 4341P 6106 --11.6,0.177112355490372,1.87991060542639,0.,0.,0.; 4341P 6107 -126,1,1,0,0,1,0,2.10504270777188,2.10504270777188, 4343P 6108 -2.90504270777187,2.90504270777187,1.,1.,237.780664751561, 4343P 6109 --164.547507575232,-11.6,237.780664751561,-156.547507575232, 4343P 6110 --11.6,2.10504270777188,2.90504270777187,0.,0.,0.; 4343P 6111 -126,2,2,0,0,0,0,-1.57079604986551,-1.57079604986551, 4345P 6112 --1.57079604986551,0.,0.,0.,1.,0.707106879095859,1., 4345P 6113 -255.763741433756,-156.547507575234,-11.6,264.765898940792, 4345P 6114 --156.547507575234,-11.6,264.765901433754,-165.54966508227,-11.6, 4345P 6115 --1.57079604986551,0.,0.,0.,0.; 4345P 6116 -126,1,1,0,0,1,0,-8.21973908038377,-8.21973908038377,0.,0.,1.,1., 4347P 6117 -264.765901433754,-165.54966508227,-11.6,264.765898708729, 4347P 6118 --247.747055886107,-11.6,-8.21973908038377,0.,0.,0.,0.; 4347P 6119 -126,2,2,0,0,0,0,-1.57079632679491,-1.57079632679491, 4349P 6120 --1.57079632679491,0.,0.,0.,1.,0.707106781186549,1., 4349P 6121 -264.765898708729,-247.747055886107,-11.6,264.765898708729, 4349P 6122 --256.749215886107,-11.6,255.763738708729,-256.749215886107, 4349P 6123 --11.6,-1.57079632679491,0.,0.,0.,0.; 4349P 6124 -126,1,1,0,0,1,0,-11.1162574856417,-11.1162574856417,0.,0.,1.,1., 4351P 6125 -255.763738708729,-256.749215886107,-11.6,144.601163852312, 4351P 6126 --256.749215886107,-11.6,-11.1162574856417,0.,0.,0.,0.; 4351P 6127 -126,4,2,0,0,0,0,-1.57081354545471,-1.57081354545471, 4353P 6128 --1.57081354545471,-0.785406772727353,-0.785406772727353,0.,0., 4353P 6129 -0.,1.,0.923877885178803,1.,0.923877885178792,1., 4353P 6130 -144.601163852312,-256.749215886107,-11.6,140.872301689627, 4353P 6131 --256.749215886107,-11.6,138.235620668632,-254.112489464608, 4353P 6132 --11.6,135.598939647638,-251.475763043109,-11.6,135.599003853647, 4353P 6133 --247.746900880977,-11.6,-1.57081354545471,0.,0.,0.,0.; 4353P 6134 -126,1,1,0,0,1,0,-6.02753451978495,-6.02753451978495,0.,0.,1.,1., 4355P 6135 -135.599003853647,-247.746900880977,-11.6,135.600041714311, 4355P 6136 --187.471555692063,-11.6,-6.02753451978495,0.,0.,0.,0.; 4355P 6137 -126,1,1,0,0,1,0,-2.20608325126057,-2.20608325126057,0.,0.,1.,1., 4357P 6138 -135.600041714311,-187.471555692063,-11.6,135.600041714311, 4357P 6139 --165.410723179457,-11.6,-2.20608325126057,0.,0.,0.,0.; 4357P 6140 -126,2,2,0,0,0,0,-1.55536115200856,-1.55536115200856, 4359P 6141 --1.55536115200856,0.,0.,0.,1.,0.712542827450536,1., 4359P 6142 -135.600041714311,-165.410723179457,-11.6,135.73685786174, 4359P 6143 --156.547507575232,-11.6,144.601129377503,-156.547507575232, 4359P 6144 --11.6,-1.55536115200856,0.,0.,0.,0.; 4359P 6145 -126,6,2,0,0,0,0,-6.28310481407046,-6.28310481407046, 4361P 6146 --6.28310481407046,-5.23515592516463,-5.23515592516463, 4361P 6147 --4.1872070362588,-4.1872070362588,-3.13925814735297, 4361P 6148 --3.13925814735297,-3.13925814735297,1.,0.865837508251788,1., 4361P 6149 -0.865837508251546,1.,0.865837508251611,1.,239.357084097385, 4361P 6150 --172.121201750453,-11.6,239.356107150418,-172.988052565371, 4361P 6151 --11.6,240.10665957669,-173.421760237851,-11.6,240.857212002962, 4361P 6152 --173.85546791033,-11.6,241.607764429229,-173.421760237843,-11.6, 4361P 6153 -242.358316855497,-172.988052565356,-11.6,242.35733990852, 4361P 6154 --172.121201750437,-11.6,-6.28310481407046,-3.13925814735297,0., 4361P 6155 -0.,0.; 4361P 6156 -126,6,2,0,0,0,0,-6.28310481408069,-6.28310481408069, 4363P 6157 --6.28310481408069,-5.23515592516045,-5.23515592516045, 4363P 6158 --4.1872070362402,-4.1872070362402,-3.13925814731996, 4363P 6159 --3.13925814731996,-3.13925814731996,1.,0.865837508248292,1., 4363P 6160 -0.865837508248067,1.,0.865837508248116,1.,242.35733990852, 4363P 6161 --172.121201750437,-11.6,242.358316855506,-171.254350935504, 4363P 6162 --11.6,241.607764429225,-170.820643263012,-11.6,240.857212002944, 4363P 6163 --170.38693559052,-11.6,240.106659576667,-170.82064326302,-11.6, 4363P 6164 -239.35610715039,-171.25435093552,-11.6,239.357084097385, 4363P 6165 --172.121201750453,-11.6,-6.28310481408069,-3.13925814731996,0., 4363P 6166 -0.,0.; 4363P 6167 -126,6,2,0,0,0,0,-6.28310481407034,-6.28310481407034, 4365P 6168 --6.28310481407034,-5.23515592516079,-5.23515592516079, 4365P 6169 --4.18720703625123,-4.18720703625123,-3.13925814734168, 4365P 6170 --3.13925814734168,-3.13925814734168,1.,0.865837508250881,1., 4365P 6171 -0.865837508250855,1.,0.865837508250857,1.,160.582628341595, 4365P 6172 --190.598023114212,-11.6,160.581651394623,-191.464873929134, 4365P 6173 --11.6,161.332203820897,-191.898581601616,-11.6,162.082756247172, 4365P 6174 --192.332289274099,-11.6,162.833308673442,-191.898581601608, 4365P 6175 --11.6,163.583861099711,-191.464873929118,-11.6,163.58288415273, 4365P 6176 --190.598023114196,-11.6,-6.28310481407034,-3.13925814734168,0., 4365P 6177 -0.,0.; 4365P 6178 -126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4367P 6179 --6.28310481408081,-5.23515592516426,-5.23515592516426, 4367P 6180 --4.18720703624771,-4.18720703624771,-3.13925814733116, 4367P 6181 --3.13925814733116,-3.13925814733116,1.,0.86583750824897,1., 4367P 6182 -0.865837508248987,1.,0.865837508248909,1.,163.58288415273, 4367P 6183 --190.598023114196,-11.6,163.583861099712,-189.731172299267, 4367P 6184 --11.6,162.833308673433,-189.297464626778,-11.6,162.082756247154, 4367P 6185 --188.863756954289,-11.6,161.332203820879,-189.297464626786, 4367P 6186 --11.6,160.581651394605,-189.731172299282,-11.6,160.582628341595, 4367P 6187 --190.598023114212,-11.6,-6.28310481408081,-3.13925814733116,0., 4367P 6188 -0.,0.; 4367P 6189 -126,6,2,0,0,0,0,-6.2830844037677,-6.2830844037677, 4369P 6190 --6.2830844037677,-5.23494500104441,-5.23494500104441, 4369P 6191 --4.18680559832112,-4.18680559832112,-3.13866619559783, 4369P 6192 --3.13866619559783,-3.13866619559783,1.,0.865789844881724,1., 4369P 6193 -0.865789844882047,1.,0.865789844881724,1.,236.784016479572, 4369P 6194 --228.698656211056,-11.6,236.782791542303,-229.565697649234, 4369P 6195 --11.6,237.533467963721,-229.999572361928,-11.6,238.284144385139, 4369P 6196 --230.433447074621,-11.6,239.034820806557,-229.999572361928, 4369P 6197 --11.6,239.785497227975,-229.565697649234,-11.6,239.784272290707, 4369P 6198 --228.698656211056,-11.6,-6.2830844037677,-3.13866619559783,0., 4369P 6199 -0.,0.; 4369P 6200 -126,6,2,0,0,0,0,-6.28308440376778,-6.28308440376778, 4371P 6201 --6.28308440376778,-5.23494500103838,-5.23494500103838, 4371P 6202 --4.18680559830898,-4.18680559830898,-3.13866619557958, 4371P 6203 --3.13866619557958,-3.13866619557958,1.,0.865789844880162,1., 4371P 6204 -0.865789844880317,1.,0.865789844880162,1.,239.784272290707, 4371P 6205 --228.698656211057,-11.6,239.785497227983,-227.831614772873, 4371P 6206 --11.6,239.034820806561,-227.397740060174,-11.6,238.284144385139, 4371P 6207 --226.963865347475,-11.6,237.533467963717,-227.397740060174, 4371P 6208 --11.6,236.782791542295,-227.831614772873,-11.6,236.784016479572, 4371P 6209 --228.698656211057,-11.6,-6.28308440376778,-3.13866619557958,0., 4371P 6210 -0.,0.; 4371P 6211 -126,6,2,0,0,0,0,-6.28310481407037,-6.28310481407037, 4373P 6212 --6.28310481407037,-5.2351559251608,-5.2351559251608, 4373P 6213 --4.18720703625122,-4.18720703625122,-3.13925814734165, 4373P 6214 --3.13925814734165,-3.13925814734165,1.,0.865837508250947,1., 4373P 6215 -0.865837508251063,1.,0.865837508251028,1.,160.582628341595, 4373P 6216 --228.698656211065,-11.6,160.581651394623,-229.565507025988, 4373P 6217 --11.6,161.332203820897,-229.99921469847,-11.6,162.082756247172, 4373P 6218 --230.432922370953,-11.6,162.833308673442,-229.999214698462, 4373P 6219 --11.6,163.583861099712,-229.565507025972,-11.6,163.58288415273, 4373P 6220 --228.69865621105,-11.6,-6.28310481407037,-3.13925814734165,0., 4373P 6221 -0.,0.; 4373P 6222 -126,6,2,0,0,0,0,-6.28310481408081,-6.28310481408081, 4375P 6223 --6.28310481408081,-5.23515592516426,-5.23515592516426, 4375P 6224 --4.18720703624771,-4.18720703624771,-3.13925814733116, 4375P 6225 --3.13925814733116,-3.13925814733116,1.,0.86583750824897,1., 4375P 6226 -0.865837508248987,1.,0.865837508248909,1.,163.58288415273, 4375P 6227 --228.69865621105,-11.6,163.583861099712,-227.83180539612,-11.6, 4375P 6228 -162.833308673433,-227.398097723632,-11.6,162.082756247154, 4375P 6229 --226.964390051143,-11.6,161.332203820879,-227.39809772364,-11.6, 4375P 6230 -160.581651394605,-227.831805396136,-11.6,160.582628341595, 4375P 6231 --228.698656211065,-11.6,-6.28310481408081,-3.13925814733116,0., 4375P 6232 -0.,0.; 4375P 6233 -126,6,2,0,0,0,0,-5.0748329130831D-14,-5.0748329130831D-14, 4377P 6234 --5.0748329130831D-14,1.04800255097885,1.04800255097885, 4377P 6235 -2.09600510195774,2.09600510195774,3.14400765293664, 4377P 6236 -3.14400765293664,3.14400765293664,1.,0.865824083693706,1., 4377P 6237 -0.865824083693601,1.,0.865824083693605,1.,236.882006921691, 4377P 6238 --190.598023114196,-11.6,236.8810299142,-191.407138874521,-11.6, 4377P 6239 -237.581582336708,-191.811979054677,-11.6,238.282134759216, 4377P 6240 --192.216819234834,-11.6,238.982687181724,-191.811979054677, 4377P 6241 --11.6,239.683239604231,-191.407138874521,-11.6,239.68226259674, 4377P 6242 --190.598023114196,-11.6,-5.0748329130831D-14,3.14400765293664, 4377P 6243 -0.,0.,0.; 4377P 6244 -126,6,2,0,0,0,0,0.,0.,0.,1.04800255097885,1.04800255097885, 4379P 6245 -2.09600510195769,2.09600510195769,3.14400765293654, 4379P 6246 -3.14400765293654,3.14400765293654,1.,0.865824083693493,1., 4379P 6247 -0.865824083693437,1.,0.865824083693657,1.,239.68226259674, 4379P 6248 --190.598023114196,-11.6,239.683239604231,-189.78890735387,-11.6, 4379P 6249 -238.982687181724,-189.384067173714,-11.6,238.282134759216, 4379P 6250 --188.979226993558,-11.6,237.581582336708,-189.384067173714, 4379P 6251 --11.6,236.8810299142,-189.78890735387,-11.6,236.882006921691, 4379P 6252 --190.598023114196,-11.6,0.,3.14400765293654,0.,0.,0.; 4379P 6253 -126,6,2,0,0,0,0,2.53741645654159D-14,2.53741645654159D-14, 4381P 6254 -2.53741645654159D-14,1.04800255097509,1.04800255097509, 4381P 6255 -2.09600510195016,2.09600510195016,3.14400765292522, 4381P 6256 -3.14400765292522,3.14400765292522,1.,0.865824083694492,1., 4381P 6257 -0.865824083694691,1.,0.865824083694451,1.,158.107551165901, 4381P 6258 --172.121201750437,-11.6,158.106574158415,-172.930317510759, 4381P 6259 --11.6,158.80712658092,-173.335157690912,-11.6,159.507679003426, 4381P 6260 --173.739997871065,-11.6,160.208231425931,-173.335157690912, 4381P 6261 --11.6,160.908783848437,-172.930317510758,-11.6,160.90780684095, 4381P 6262 --172.121201750437,-11.6,2.53741645654159D-14,3.14400765292522, 4381P 6263 -0.,0.,0.; 4381P 6264 -126,6,2,0,0,0,0,0.,0.,0.,1.04800255098266,1.04800255098266, 4383P 6265 -2.09600510196532,2.09600510196532,3.14400765294798, 4383P 6266 -3.14400765294798,3.14400765294798,1.,0.865824083692465,1., 4383P 6267 -0.865824083692489,1.,0.865824083692486,1.,160.90780684095, 4383P 6268 --172.121201750437,-11.6,160.908783848446,-171.312085990108, 4383P 6269 --11.6,160.208231425936,-170.907245809948,-11.6,159.507679003426, 4383P 6270 --170.502405629789,-11.6,158.807126580916,-170.907245809948, 4383P 6271 --11.6,158.106574158405,-171.312085990108,-11.6,158.107551165901, 4383P 6272 --172.121201750437,-11.6,0.,3.14400765294798,0.,0.,0.; 4383P 6273 -126,1,1,0,0,1,0,0.091322211691871,0.091322211691871, 4385P 6274 -0.993665961691871,0.993665961691871,1.,1.,198.356008409196, 4385P 6275 --187.660756010089,-7.5,189.332570909196,-187.660756010089,-7.5, 4385P 6276 -0.091322211691871,0.993665961691871,0.,0.,0.; 4385P 6277 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,198.356008409196, 4387P 6278 --187.660756010089,-7.5,198.356008409196,-187.660756010089,-8.5, 4387P 6279 -0.,0.1,0.,0.,0.; 4387P 6280 -126,1,1,0,0,1,0,0.,0.,0.90234375,0.90234375,1.,1., 4389P 6281 -198.356008409196,-187.660756010089,-8.5,189.332570909196, 4389P 6282 --187.660756010089,-8.5,0.,0.90234375,0.,0.,0.; 4389P 6283 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4391P 6284 --187.660756010089,-7.5,189.332570909196,-187.660756010089,-8.5, 4391P 6285 -0.,0.1,0.,0.,0.; 4391P 6286 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.281631211376139,0.844152403739511, 4393P 6287 -0.844152403739511,0.844152403739511,0.844152403739511,1.,1.,1., 4393P 6288 -1.,1.,206.793508409196,-187.856068510089,-7.5,205.856214479556, 4393P 6289 --187.800454535029,-7.5,203.046799571848,-187.633758981298,-7.5, 4393P 6290 -200.231830522622,-187.649960043727,-7.5,198.356008409196, 4393P 6291 --187.660756010089,-7.5,0.,0.844152403739511,0.,0.,0.; 4393P 6292 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,206.793508409196, 4395P 6293 --187.856068510089,-7.5,206.793508409196,-187.856068510089,-8.5, 4395P 6294 -0.,0.1,0.,0.,0.; 4395P 6295 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.281631211376139,0.844152403739511, 4397P 6296 -0.844152403739511,0.844152403739511,0.844152403739511,1.,1.,1., 4397P 6297 -1.,1.,206.793508409196,-187.856068510089,-8.5,205.856214479556, 4397P 6298 --187.800454535029,-8.5,203.046799571848,-187.633758981298,-8.5, 4397P 6299 -200.231830522622,-187.649960043727,-8.5,198.356008409196, 4397P 6300 --187.660756010089,-8.5,0.,0.844152403739511,0.,0.,0.; 4397P 6301 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.235880783034421,0.497778933126644, 4399P 6302 -0.497778933126644,0.497778933126644,0.497778933126644,1.,1.,1., 4399P 6303 -1.,1.,211.148977159196,-190.102162260089,-7.5,210.559416215435, 4399P 6304 --189.560844484626,-7.5,209.315266463925,-188.418502233228,-7.5, 4399P 6305 -207.662882757985,-188.049967147936,-7.5,206.793508409196, 4399P 6306 --187.856068510089,-7.5,0.,0.497778933126644,0.,0.,0.; 4399P 6307 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,211.148977159196, 4401P 6308 --190.102162260089,-7.5,211.148977159196,-190.102162260089,-8.5, 4401P 6309 -0.,0.1,0.,0.,0.; 4401P 6310 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.235880783034421,0.497778933126644, 4403P 6311 -0.497778933126644,0.497778933126644,0.497778933126644,1.,1.,1., 4403P 6312 -1.,1.,211.148977159196,-190.102162260089,-8.5,210.559416215435, 4403P 6313 --189.560844484626,-8.5,209.315266463925,-188.418502233228,-8.5, 4403P 6314 -207.662882757985,-188.049967147936,-8.5,206.793508409196, 4403P 6315 --187.856068510089,-8.5,0.,0.497778933126644,0.,0.,0.; 4403P 6316 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.264063113962396,0.499964111306824, 4405P 6317 -0.499964111306824,0.499964111306824,0.499964111306824,1.,1.,1., 4405P 6318 -1.,1.,212.691945909196,-194.770131010089,-7.5,212.643437973881, 4405P 6319 --193.871965743153,-7.5,212.551595435151,-192.171423805461,-7.5, 4405P 6320 -211.598623495598,-190.765518704879,-7.5,211.148977159196, 4405P 6321 --190.102162260089,-7.5,0.,0.499964111306824,0.,0.,0.; 4405P 6322 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,212.691945909196, 4407P 6323 --194.770131010089,-7.5,212.691945909196,-194.770131010089,-8.5, 4407P 6324 -0.,0.1,0.,0.,0.; 4407P 6325 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.264063113962396,0.499964111306824, 4409P 6326 -0.499964111306824,0.499964111306824,0.499964111306824,1.,1.,1., 4409P 6327 -1.,1.,212.691945909196,-194.770131010089,-8.5,212.643437973881, 4409P 6328 --193.871965743153,-8.5,212.551595435151,-192.171423805461,-8.5, 4409P 6329 -211.598623495598,-190.765518704879,-8.5,211.148977159196, 4409P 6330 --190.102162260089,-8.5,0.,0.499964111306824,0.,0.,0.; 4409P 6331 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.212397292504592,0.450534415924653, 4411P 6332 -0.450534415924653,0.450534415924653,0.450534415924653,1.,1.,1., 4411P 6333 -1.,1.,211.520070909196,-199.067006010089,-7.5,211.861566257095, 4411P 6334 --198.436165560765,-7.5,212.585941814299,-197.098034881101,-7.5, 4411P 6335 -212.655290538983,-195.575101594424,-7.5,212.691945909196, 4411P 6336 --194.770131010089,-7.5,0.,0.450534415924653,0.,0.,0.; 4411P 6337 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,211.520070909196, 4413P 6338 --199.067006010089,-7.5,211.520070909196,-199.067006010089,-8.5, 4413P 6339 -0.,0.1,0.,0.,0.; 4413P 6340 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.212397292504592,0.450534415924653, 4415P 6341 -0.450534415924653,0.450534415924653,0.450534415924653,1.,1.,1., 4415P 6342 -1.,1.,211.520070909196,-199.067006010089,-8.5,211.861566257095, 4415P 6343 --198.436165560765,-8.5,212.585941814299,-197.098034881101,-8.5, 4415P 6344 -212.655290538983,-195.575101594424,-8.5,212.691945909196, 4415P 6345 --194.770131010089,-8.5,0.,0.450534415924653,0.,0.,0.; 4415P 6346 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.207906922422302,0.410291107118963, 4417P 6347 -0.410291107118963,0.410291107118963,0.410291107118963,1.,1.,1., 4417P 6348 -1.,1.,208.277883409196,-201.488881010089,-7.5,208.927838177421, 4417P 6349 --201.216133860944,-7.5,210.210482633534,-200.677884684425,-7.5, 4417P 6350 -211.087476419098,-199.599125342313,-7.5,211.520070909196, 4417P 6351 --199.067006010089,-7.5,0.,0.410291107118963,0.,0.,0.; 4417P 6352 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,208.277883409196, 4419P 6353 --201.488881010089,-7.5,208.277883409196,-201.488881010089,-8.5, 4419P 6354 -0.,0.1,0.,0.,0.; 4419P 6355 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.207906922422302,0.410291107118963, 4421P 6356 -0.410291107118963,0.410291107118963,0.410291107118963,1.,1.,1., 4421P 6357 -1.,1.,208.277883409196,-201.488881010089,-8.5,208.927838177421, 4421P 6358 --201.216133860944,-8.5,210.210482633534,-200.677884684425,-8.5, 4421P 6359 -211.087476419098,-199.599125342313,-8.5,211.520070909196, 4421P 6360 --199.067006010089,-8.5,0.,0.410291107118963,0.,0.,0.; 4421P 6361 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.676009828575057,1.04309862016124, 4423P 6362 -1.04309862016124,1.04309862016124,1.04309862016124,1.,1.,1.,1., 4423P 6363 -1.,197.887258409196,-202.192006010089,-7.5,200.147189290955, 4423P 6364 --202.219319929824,-7.5,203.634314307158,-202.261465932413,-7.5, 4423P 6365 -207.069106365723,-201.689994183538,-7.5,208.277883409196, 4423P 6366 --201.488881010089,-7.5,0.,1.04309862016124,0.,0.,0.; 4423P 6367 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,197.887258409196, 4425P 6368 --202.192006010089,-7.5,197.887258409196,-202.192006010089,-8.5, 4425P 6369 -0.,0.1,0.,0.,0.; 4425P 6370 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.676009828575057,1.04309862016124, 4427P 6371 -1.04309862016124,1.04309862016124,1.04309862016124,1.,1.,1.,1., 4427P 6372 -1.,197.887258409196,-202.192006010089,-8.5,200.147189290955, 4427P 6373 --202.219319929824,-8.5,203.634314307158,-202.261465932413,-8.5, 4427P 6374 -207.069106365723,-201.689994183538,-8.5,208.277883409196, 4427P 6375 --201.488881010089,-8.5,0.,1.04309862016124,0.,0.,0.; 4427P 6376 -126,1,1,0,0,1,0,-0.542494086691871,-0.542494086691871, 4429P 6377 -0.312974663308129,0.312974663308129,1.,1.,189.332570909196, 4429P 6378 --202.192006010089,-7.5,197.887258409196,-202.192006010089,-7.5, 4429P 6379 --0.542494086691871,0.312974663308129,0.,0.,0.; 4429P 6380 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4431P 6381 --202.192006010089,-7.5,189.332570909196,-202.192006010089,-8.5, 4431P 6382 -0.,0.1,0.,0.,0.; 4431P 6383 -126,1,1,0,0,1,0,0.,0.,0.85546875,0.85546875,1.,1., 4433P 6384 -189.332570909196,-202.192006010089,-8.5,197.887258409196, 4433P 6385 --202.192006010089,-8.5,0.,0.85546875,0.,0.,0.; 4433P 6386 -126,1,1,0,0,1,0,-0.949380286028976,-0.949380286028976, 4435P 6387 -0.503744713971024,0.503744713971024,1.,1.,189.332570909196, 4435P 6388 --187.660756010089,-7.5,189.332570909196,-202.192006010089,-7.5, 4435P 6389 --0.949380286028976,0.503744713971024,0.,0.,0.; 4435P 6390 -126,1,1,0,0,1,0,0.,0.,1.453125,1.453125,1.,1.,189.332570909196, 4437P 6391 --187.660756010089,-8.5,189.332570909196,-202.192006010089,-8.5, 4437P 6392 -0.,1.453125,0.,0.,0.; 4437P 6393 -126,1,1,0,0,1,0,0.234213463971024,0.234213463971024, 4439P 6394 -2.62483846397102,2.62483846397102,1.,1.,189.332570909196, 4439P 6395 --211.332631010089,-7.5,189.332570909196,-235.238881010089,-7.5, 4439P 6396 -0.234213463971024,2.62483846397102,0.,0.,0.; 4439P 6397 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4441P 6398 --211.332631010089,-7.5,189.332570909196,-211.332631010089,-8.5, 4441P 6399 -0.,0.1,0.,0.,0.; 4441P 6400 -126,1,1,0,0,1,0,0.,0.,2.390625,2.390625,1.,1.,189.332570909196, 4443P 6401 --211.332631010089,-8.5,189.332570909196,-235.238881010089,-8.5, 4443P 6402 -0.,2.390625,0.,0.,0.; 4443P 6403 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,189.332570909196, 4445P 6404 --235.238881010089,-7.5,189.332570909196,-235.238881010089,-8.5, 4445P 6405 -0.,0.1,0.,0.,0.; 4445P 6406 -126,1,1,0,0,1,0,0.425306586691871,0.425306586691871, 4447P 6407 -0.659681586691871,0.659681586691871,1.,1.,191.676320909196, 4447P 6408 --211.332631010089,-7.5,189.332570909196,-211.332631010089,-7.5, 4447P 6409 -0.425306586691871,0.659681586691871,0.,0.,0.; 4447P 6410 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,191.676320909196, 4449P 6411 --211.332631010089,-7.5,191.676320909196,-211.332631010089,-8.5, 4449P 6412 -0.,0.1,0.,0.,0.; 4449P 6413 -126,1,1,0,0,1,0,0.,0.,0.234375,0.234375,1.,1.,191.676320909196, 4451P 6414 --211.332631010089,-8.5,189.332570909196,-211.332631010089,-8.5, 4451P 6415 -0.,0.234375,0.,0.,0.; 4451P 6416 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.242178147658386,0.58728108987376, 4453P 6417 -0.58728108987376,0.58728108987376,0.58728108987376,1.,1.,1.,1., 4453P 6418 -1.,197.496633409196,-211.977162260089,-7.5,196.708785715842, 4453P 6419 --211.790577691044,-7.5,194.798258046518,-211.338110818527,-7.5, 4453P 6420 -192.831842297831,-211.334659249473,-7.5,191.676320909196, 4453P 6421 --211.332631010089,-7.5,0.,0.58728108987376,0.,0.,0.; 4453P 6422 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,197.496633409196, 4455P 6423 --211.977162260089,-7.5,197.496633409196,-211.977162260089,-8.5, 4455P 6424 -0.,0.1,0.,0.,0.; 4455P 6425 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.242178147658386,0.58728108987376, 4457P 6426 -0.58728108987376,0.58728108987376,0.58728108987376,1.,1.,1.,1., 4457P 6427 -1.,197.496633409196,-211.977162260089,-8.5,196.708785715842, 4457P 6428 --211.790577691044,-8.5,194.798258046518,-211.338110818527,-8.5, 4457P 6429 -192.831842297831,-211.334659249473,-8.5,191.676320909196, 4457P 6430 --211.332631010089,-8.5,0.,0.58728108987376,0.,0.,0.; 4457P 6431 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.223607224245692,0.424515823966796, 4459P 6432 -0.424515823966796,0.424515823966796,0.424515823966796,1.,1.,1., 4459P 6433 -1.,1.,200.973195909196,-214.359974760089,-7.5,200.436343293178, 4459P 6434 --213.832788618144,-7.5,199.417134582878,-212.831931601172,-7.5, 4459P 6435 -198.113566785881,-212.251744615522,-7.5,197.496633409196, 4459P 6436 --211.977162260089,-7.5,0.,0.424515823966796,0.,0.,0.; 4459P 6437 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,200.973195909196, 4461P 6438 --214.359974760089,-7.5,200.973195909196,-214.359974760089,-8.5, 4461P 6439 -0.,0.1,0.,0.,0.; 4461P 6440 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.223607224245692,0.424515823966796, 4463P 6441 -0.424515823966796,0.424515823966796,0.424515823966796,1.,1.,1., 4463P 6442 -1.,1.,200.973195909196,-214.359974760089,-8.5,200.436343293178, 4463P 6443 --213.832788618144,-8.5,199.417134582878,-212.831931601172,-8.5, 4463P 6444 -198.113566785881,-212.251744615522,-8.5,197.496633409196, 4463P 6445 --211.977162260089,-8.5,0.,0.424515823966796,0.,0.,0.; 4463P 6446 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.661084667802499,1.03970923338266, 4465P 6447 -1.03970923338266,1.03970923338266,1.03970923338266,1.,1.,1.,1., 4465P 6448 -1.,207.066945909196,-222.777943510089,-7.5,205.853212488561, 4465P 6449 --220.936425355574,-7.5,203.94433469157,-218.04021020804,-7.5, 4465P 6450 -201.766342156981,-215.342414541706,-7.5,200.973195909196, 4465P 6451 --214.359974760089,-7.5,0.,1.03970923338266,0.,0.,0.; 4465P 6452 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,207.066945909196, 4467P 6453 --222.777943510089,-7.5,207.066945909196,-222.777943510089,-8.5, 4467P 6454 -0.,0.1,0.,0.,0.; 4467P 6455 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.661084667802499,1.03970923338266, 4469P 6456 -1.03970923338266,1.03970923338266,1.03970923338266,1.,1.,1.,1., 4469P 6457 -1.,207.066945909196,-222.777943510089,-8.5,205.853212488561, 4469P 6458 --220.936425355574,-8.5,203.94433469157,-218.04021020804,-8.5, 4469P 6459 -201.766342156981,-215.342414541706,-8.5,200.973195909196, 4469P 6460 --214.359974760089,-8.5,0.,1.03970923338266,0.,0.,0.; 4469P 6461 -126,1,1,0,0,1,0,-1.61176105695361,-1.61176105695361, 4471P 6462 --0.111247432325258,-0.111247432325258,1.,1.,215.426320909196, 4471P 6463 --235.238881010089,-7.5,207.066945909196,-222.777943510089,-7.5, 4471P 6464 --1.61176105695361,-0.111247432325258,0.,0.,0.; 4471P 6465 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.426320909196, 4473P 6466 --235.238881010089,-7.5,215.426320909196,-235.238881010089,-8.5, 4473P 6467 -0.,0.1,0.,0.,0.; 4473P 6468 -126,1,1,0,0,1,0,0.,0.,1.50051362462835,1.50051362462835,1.,1., 4475P 6469 -215.426320909196,-235.238881010089,-8.5,207.066945909196, 4475P 6470 --222.777943510089,-8.5,0.,1.50051362462835,0.,0.,0.; 4475P 6471 -126,1,1,0,0,1,0,-1.45359966330813,-1.45359966330813, 4477P 6472 --0.070787163308129,-0.070787163308129,1.,1.,229.254445909196, 4477P 6473 --235.238881010089,-7.5,215.426320909196,-235.238881010089,-7.5, 4477P 6474 --1.45359966330813,-0.070787163308129,0.,0.,0.; 4477P 6475 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,229.254445909196, 4479P 6476 --235.238881010089,-7.5,229.254445909196,-235.238881010089,-8.5, 4479P 6477 -0.,0.1,0.,0.,0.; 4479P 6478 -126,1,1,0,0,1,0,0.,0.,1.3828125,1.3828125,1.,1., 4481P 6479 -229.254445909196,-235.238881010089,-8.5,215.426320909196, 4481P 6480 --235.238881010089,-8.5,0.,1.3828125,0.,0.,0.; 4481P 6481 -126,1,1,0,0,1,0,1.32396066373505,1.32396066373505, 4483P 6482 -2.64191922549176,2.64191922549176,1.,1.,222.262258409196, 4483P 6483 --224.067006010089,-7.5,229.254445909196,-235.238881010089,-7.5, 4483P 6484 -1.32396066373505,2.64191922549176,0.,0.,0.; 4483P 6485 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,222.262258409196, 4485P 6486 --224.067006010089,-7.5,222.262258409196,-224.067006010089,-8.5, 4485P 6487 -0.,0.1,0.,0.,0.; 4485P 6488 -126,1,1,0,0,1,0,0.,0.,1.31795856175671,1.31795856175671,1.,1., 4487P 6489 -222.262258409196,-224.067006010089,-8.5,229.254445909196, 4487P 6490 --235.238881010089,-8.5,0.,1.31795856175671,0.,0.,0.; 4487P 6491 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.462736337436351,1.14014998210771, 4489P 6492 -1.14014998210771,1.14014998210771,1.14014998210771,1.,1.,1.,1., 4489P 6493 -1.,215.680227159196,-214.770131010089,-7.5,216.657814949634, 4489P 6494 --215.965086764049,-7.5,219.066522914849,-218.90937419357,-7.5, 4489P 6495 -221.071194285368,-222.144734836071,-7.5,222.262258409196, 4489P 6496 --224.067006010089,-7.5,0.,1.14014998210771,0.,0.,0.; 4489P 6497 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.680227159196, 4491P 6498 --214.770131010089,-7.5,215.680227159196,-214.770131010089,-8.5, 4491P 6499 -0.,0.1,0.,0.,0.; 4491P 6500 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.462736337436351,1.14014998210771, 4493P 6501 -1.14014998210771,1.14014998210771,1.14014998210771,1.,1.,1.,1., 4493P 6502 -1.,215.680227159196,-214.770131010089,-8.5,216.657814949634, 4493P 6503 --215.965086764049,-8.5,219.066522914849,-218.90937419357,-8.5, 4493P 6504 -221.071194285368,-222.144734836071,-8.5,222.262258409196, 4493P 6505 --224.067006010089,-8.5,0.,1.14014998210771,0.,0.,0.; 4493P 6506 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.412099250560617,0.785781181487306, 4495P 6507 -0.785781181487306,0.785781181487306,0.785781181487306,1.,1.,1., 4495P 6508 -1.,1.,209.488820909196,-209.965443510089,-7.5,210.662083255283, 4495P 6509 --210.689085359138,-7.5,212.899232367418,-212.068908657398,-7.5, 4495P 6510 -214.783943791004,-213.899557402522,-7.5,215.680227159196, 4495P 6511 --214.770131010089,-7.5,0.,0.785781181487306,0.,0.,0.; 4495P 6512 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,209.488820909196, 4497P 6513 --209.965443510089,-7.5,209.488820909196,-209.965443510089,-8.5, 4497P 6514 -0.,0.1,0.,0.,0.; 4497P 6515 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.412099250560617,0.785781181487306, 4499P 6516 -0.785781181487306,0.785781181487306,0.785781181487306,1.,1.,1., 4499P 6517 -1.,1.,209.488820909196,-209.965443510089,-8.5,210.662083255283, 4499P 6518 --210.689085359138,-8.5,212.899232367418,-212.068908657398,-8.5, 4499P 6519 -214.783943791004,-213.899557402522,-8.5,215.680227159196, 4499P 6520 --214.770131010089,-8.5,0.,0.785781181487306,0.,0.,0.; 4499P 6521 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.58357780873946,1.26971165673407, 4501P 6522 -1.26971165673407,1.26971165673407,1.26971165673407,1.,1.,1.,1., 4501P 6523 -1.,220.816945909196,-204.672474760089,-7.5,219.30946855557, 4501P 6524 --205.953780785553,-7.5,216.029594750405,-208.741565331179,-7.5, 4501P 6525 -211.783402108826,-209.536092499316,-7.5,209.488820909196, 4501P 6526 --209.965443510089,-7.5,0.,1.26971165673407,0.,0.,0.; 4501P 6527 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,220.816945909196, 4503P 6528 --204.672474760089,-7.5,220.816945909196,-204.672474760089,-8.5, 4503P 6529 -0.,0.1,0.,0.,0.; 4503P 6530 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.58357780873946,1.26971165673407, 4505P 6531 -1.26971165673407,1.26971165673407,1.26971165673407,1.,1.,1.,1., 4505P 6532 -1.,220.816945909196,-204.672474760089,-8.5,219.30946855557, 4505P 6533 --205.953780785553,-8.5,216.029594750405,-208.741565331179,-8.5, 4505P 6534 -211.783402108826,-209.536092499316,-8.5,209.488820909196, 4505P 6535 --209.965443510089,-8.5,0.,1.26971165673407,0.,0.,0.; 4505P 6536 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.595955416925639,1.15039635746486, 4507P 6537 -1.15039635746486,1.15039635746486,1.15039635746486,1.,1.,1.,1., 4507P 6538 -1.,224.606008409196,-194.027943510089,-7.5,224.472199977234, 4507P 6539 --196.055393519306,-7.5,224.213904258538,-199.969060614703,-7.5, 4507P 6540 -221.921692259118,-203.14284764226,-7.5,220.816945909196, 4507P 6541 --204.672474760089,-7.5,0.,1.15039635746486,0.,0.,0.; 4507P 6542 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,224.606008409196, 4509P 6543 --194.027943510089,-7.5,224.606008409196,-194.027943510089,-8.5, 4509P 6544 -0.,0.1,0.,0.,0.; 4509P 6545 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.595955416925639,1.15039635746486, 4511P 6546 -1.15039635746486,1.15039635746486,1.15039635746486,1.,1.,1.,1., 4511P 6547 -1.,224.606008409196,-194.027943510089,-8.5,224.472199977234, 4511P 6548 --196.055393519306,-8.5,224.213904258538,-199.969060614703,-8.5, 4511P 6549 -221.921692259118,-203.14284764226,-8.5,220.816945909196, 4511P 6550 --204.672474760089,-8.5,0.,1.15039635746486,0.,0.,0.; 4511P 6551 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.462557773590166,0.946106124712921, 4513P 6552 -0.946106124712921,0.946106124712921,0.946106124712921,1.,1.,1., 4513P 6553 -1.,1.,222.106008409196,-185.004506010089,-7.5,222.835074753493, 4513P 6554 --186.384818489344,-7.5,224.326292009032,-189.208081150147,-7.5, 4513P 6555 -224.51140065161,-192.397733878194,-7.5,224.606008409196, 4513P 6556 --194.027943510089,-7.5,0.,0.946106124712921,0.,0.,0.; 4513P 6557 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,222.106008409196, 4515P 6558 --185.004506010089,-7.5,222.106008409196,-185.004506010089,-8.5, 4515P 6559 -0.,0.1,0.,0.,0.; 4515P 6560 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.462557773590166,0.946106124712921, 4517P 6561 -0.946106124712921,0.946106124712921,0.946106124712921,1.,1.,1., 4517P 6562 -1.,1.,222.106008409196,-185.004506010089,-8.5,222.835074753493, 4517P 6563 --186.384818489344,-8.5,224.326292009032,-189.208081150147,-8.5, 4517P 6564 -224.51140065161,-192.397733878194,-8.5,224.606008409196, 4517P 6565 --194.027943510089,-8.5,0.,0.946106124712921,0.,0.,0.; 4517P 6566 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.431517432398868,0.875191282358429, 4519P 6567 -0.875191282358429,0.875191282358429,0.875191282358429,1.,1.,1., 4519P 6568 -1.,1.,215.445852159196,-179.516224760089,-7.5,216.769000336918, 4519P 6569 --180.1395665842,-7.5,219.45257152887,-181.403810597143,-7.5, 4519P 6570 -221.213376913017,-183.793211270963,-7.5,222.106008409196, 4519P 6571 --185.004506010089,-7.5,0.,0.875191282358429,0.,0.,0.; 4519P 6572 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,215.445852159196, 4521P 6573 --179.516224760089,-7.5,215.445852159196,-179.516224760089,-8.5, 4521P 6574 -0.,0.1,0.,0.,0.; 4521P 6575 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.431517432398868,0.875191282358429, 4523P 6576 -0.875191282358429,0.875191282358429,0.875191282358429,1.,1.,1., 4523P 6577 -1.,1.,215.445852159196,-179.516224760089,-8.5,216.769000336918, 4523P 6578 --180.1395665842,-8.5,219.45257152887,-181.403810597143,-8.5, 4523P 6579 -221.213376913017,-183.793211270963,-8.5,222.106008409196, 4523P 6580 --185.004506010089,-8.5,0.,0.875191282358429,0.,0.,0.; 4523P 6581 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.793418719026967,1.34714989356346, 4525P 6582 -1.34714989356346,1.34714989356346,1.34714989356346,1.,1.,1.,1., 4525P 6583 -1.,202.106008409196,-177.973256010089,-7.5,204.763886597037, 4525P 6584 --177.976937713112,-7.5,209.276712211041,-177.983188896397,-7.5, 4525P 6585 -213.648767024992,-179.069647768159,-7.5,215.445852159196, 4525P 6586 --179.516224760089,-7.5,0.,1.34714989356346,0.,0.,0.; 4525P 6587 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,202.106008409196, 4527P 6588 --177.973256010089,-7.5,202.106008409196,-177.973256010089,-8.5, 4527P 6589 -0.,0.1,0.,0.,0.; 4527P 6590 -126,4,3,0,0,1,0,0.,0.,0.,0.,0.793418719026967,1.34714989356346, 4529P 6591 -1.34714989356346,1.34714989356346,1.34714989356346,1.,1.,1.,1., 4529P 6592 -1.,202.106008409196,-177.973256010089,-8.5,204.763886597037, 4529P 6593 --177.976937713112,-8.5,209.276712211041,-177.983188896397,-8.5, 4529P 6594 -213.648767024992,-179.069647768159,-8.5,215.445852159196, 4529P 6595 --179.516224760089,-8.5,0.,1.34714989356346,0.,0.,0.; 4529P 6596 -126,1,1,0,0,1,0,-1.12061908669187,-1.12061908669187, 4531P 6597 -1.31297466330813,1.31297466330813,1.,1.,177.770070909196, 4531P 6598 --177.973256010089,-7.5,202.106008409196,-177.973256010089,-7.5, 4531P 6599 --1.12061908669187,1.31297466330813,0.,0.,0.; 4531P 6600 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,177.770070909196, 4533P 6601 --177.973256010089,-7.5,177.770070909196,-177.973256010089,-8.5, 4533P 6602 -0.,0.1,0.,0.,0.; 4533P 6603 -126,1,1,0,0,1,0,0.,0.,2.43359375,2.43359375,1.,1., 4535P 6604 -177.770070909196,-177.973256010089,-8.5,202.106008409196, 4535P 6605 --177.973256010089,-8.5,0.,2.43359375,0.,0.,0.; 4535P 6606 -126,1,1,0,0,1,0,-1.42952596397102,-1.42952596397102, 4537P 6607 -4.29703653602898,4.29703653602898,1.,1.,177.770070909196, 4537P 6608 --235.238881010089,-7.5,177.770070909196,-177.973256010089,-7.5, 4537P 6609 --1.42952596397102,4.29703653602898,0.,0.,0.; 4537P 6610 -126,1,1,0,0,1,0,0.,0.,0.1,0.1,1.,1.,177.770070909196, 4539P 6611 --235.238881010089,-7.5,177.770070909196,-235.238881010089,-8.5, 4539P 6612 -0.,0.1,0.,0.,0.; 4539P 6613 -126,1,1,0,0,1,0,0.,0.,5.7265625,5.7265625,1.,1., 4541P 6614 -177.770070909196,-235.238881010089,-8.5,177.770070909196, 4541P 6615 --177.973256010089,-8.5,0.,5.7265625,0.,0.,0.; 4541P 6616 -126,1,1,0,0,1,0,0.542494086691871,0.542494086691871, 4543P 6617 -1.69874408669187,1.69874408669187,1.,1.,189.332570909196, 4543P 6618 --235.238881010089,-7.5,177.770070909196,-235.238881010089,-7.5, 4543P 6619 -0.542494086691871,1.69874408669187,0.,0.,0.; 4543P 6620 -126,1,1,0,0,1,0,0.,0.,1.15625,1.15625,1.,1.,189.332570909196, 4545P 6621 --235.238881010089,-8.5,177.770070909196,-235.238881010089,-8.5, 4545P 6622 -0.,1.15625,0.,0.,0.; 4545P 6623 -126,1,1,0,0,1,0,-7.99046868143113,-7.99046868143113, 4547P 6624 --0.229270143011589,-0.229270143011589,1.,1.,256.765901357746, 4547P 6625 --167.842369071796,-7.5,256.765898784737,-245.454354455992,-7.5, 4547P 6626 --7.99046868143113,-0.229270143011589,0.,0.,0.; 4547P 6627 -126,2,2,0,0,0,0,-3.14159259057679,-3.14159259057679, 4549P 6628 --3.14159259057679,-1.98287834194696,-1.98287834194696, 4549P 6629 --1.98287834194696,0.999999677363267,0.836814636061334,1., 4549P 6630 -258.265901433755,-165.549667575233,-7.5,258.265901433755, 4549P 6631 --167.18670588825,-7.5,256.765901357746,-167.842369071796,-7.5, 4549P 6632 --3.14159259057679,-1.98287834194696,0.,0.,0.; 4549P 6633 -126,4,2,0,0,0,0,0.412082048305129,0.412082048305129, 4551P 6634 -0.412082048305129,1.77683680972467,1.77683680972467, 4551P 6635 -3.14159157114422,3.14159157114422,3.14159157114422,1., 4551P 6636 -0.776075642357549,1.,0.776075642357572,1.,253.471039970417, 4551P 6637 --164.547507575232,-7.5,254.285396173926,-162.684456106938,-7.5, 4551P 6638 -256.275647703394,-163.100431646069,-7.5,258.265899232863, 4551P 6639 --163.516407185201,-7.5,258.265901433754,-165.54966486678,-7.5, 4551P 6640 -0.412082048305129,3.14159157114422,0.,0.,0.; 4551P 6641 -126,1,1,0,0,1,0,-1.7983076682195,-1.7983076682195, 4553P 6642 --0.229270146333917,-0.229270146333917,1.,1.,237.780664751561, 4553P 6643 --164.547507575232,-7.5,253.471039970417,-164.547507575232,-7.5, 4553P 6644 --1.7983076682195,-0.229270146333917,0.,0.,0.; 4553P 6645 -126,1,1,0,0,1,0,-1.87991060542639,-1.87991060542639, 4555P 6646 --0.177112355490372,-0.177112355490372,1.,1.,237.780664751561, 4555P 6647 --164.547507575232,-7.5,220.752682252201,-164.547507575232,-7.5, 4555P 6648 --1.87991060542639,-0.177112355490372,0.,0.,0.; 4555P 6649 -126,1,1,0,0,1,0,-2.45504270777187,-2.45504270777187, 4557P 6650 --1.75504270777187,-1.75504270777187,1.,1.,213.600041714311, 4557P 6651 --164.547507575232,-7.5,213.600041714311,-171.547507575232,-7.5, 4557P 6652 --2.45504270777187,-1.75504270777187,0.,0.,0.; 4557P 6653 -126,1,1,0,0,1,0,-1.67087945356388,-1.67087945356388, 4559P 6654 -0.329120546436124,0.329120546436124,1.,1.,213.600041714311, 4559P 6655 --171.547507575232,-7.5,193.600041714311,-171.547507575231,-7.5, 4559P 6656 --1.67087945356388,0.329120546436124,0.,0.,0.; 4559P 6657 -126,1,1,0,0,1,0,1.40504270777187,1.40504270777187, 4561P 6658 -2.10504270777187,2.10504270777187,1.,1.,193.600041714311, 4561P 6659 --171.547507575231,-7.5,193.600041714311,-164.547507575232,-7.5, 4561P 6660 -1.40504270777187,2.10504270777187,0.,0.,0.; 4561P 6661 -126,1,1,0,0,1,0,-8.61515214233563,-8.61515214233563, 4563P 6662 --6.21636997194452,-6.21636997194452,1.,1.,169.612220010399, 4563P 6663 --164.547507575232,-7.5,193.600041714311,-164.547507575232,-7.5, 4563P 6664 --8.61515214233563,-6.21636997194452,0.,0.,0.; 4563P 6665 -126,1,1,0,0,1,0,2.12851163163167,2.12851163163167, 4565P 6666 -3.5313098815677,3.5313098815677,1.,1.,169.612220010399, 4565P 6667 --164.547507575232,-7.5,155.584237511039,-164.547507575232,-7.5, 4565P 6668 -2.12851163163167,3.5313098815677,0.,0.,0.; 4565P 6669 -126,4,2,0,0,0,0,-6.25390749790614,-6.25390749790614, 4567P 6670 --6.25390749790614,-4.9037910999005,-4.9037910999005, 4567P 6671 --3.55367470189486,-3.55367470189486,-3.55367470189486,1., 4567P 6672 -0.78067058140956,1.,0.780670581409572,1.,142.100041714311, 4567P 6673 --165.476420277504,-7.5,142.158677672821,-163.474248497833,-7.5, 4567P 6674 -144.125129478152,-163.093200852189,-7.5,146.091581283483, 4567P 6675 --162.712153206546,-7.5,146.893830840843,-164.547507575232,-7.5, 4567P 6676 --6.25390749790614,-3.55367470189486,0.,0.,0.; 4567P 6677 -126,1,1,0,0,1,0,2.18487010842909,2.18487010842909, 4569P 6678 -2.19951956797476,2.19951956797476,1.,1.,142.100041714311, 4569P 6679 --165.622914872961,-7.5,142.100041714311,-165.476420277504,-7.5, 4569P 6680 -2.18487010842909,2.19951956797476,0.,0.,0.; 4569P 6681 -126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 4571P 6682 --1.15918194829754,-0.0292778092733589,-0.0292778092733589, 4571P 6683 --0.0292778092733589,1.,0.844614262194479,1.,143.600041714311, 4571P 6684 --167.842837467805,-7.5,142.146470952165,-167.208278396419,-7.5, 4571P 6685 -142.100041714311,-165.622914872961,-7.5,-1.15918194829754, 4571P 6686 --0.0292778092733589,0.,0.,0.; 4571P 6687 -126,1,1,0,0,1,0,-2.19683051976291,-2.19683051976291, 4573P 6688 --0.233951809861228,-0.233951809861228,1.,1.,143.600041714311, 4573P 6689 --187.471624566822,-7.5,143.600041714311,-167.842837467805,-7.5, 4573P 6690 --2.19683051976291,-0.233951809861228,0.,0.,0.; 4573P 6691 -126,1,1,0,0,1,0,-5.79827126090288,-5.79827126090288,0.,0.,1.,1., 4575P 6692 -143.599043329707,-245.454337167255,-7.5,143.600041714311, 4575P 6693 --187.471624566822,-7.5,-5.79827126090288,0.,0.,0.,0.; 4575P 6694 -126,6,2,0,0,0,0,-9.01269591246431,-9.01269591246431, 4577P 6695 --9.01269591246431,-7.71661521165286,-7.71661521165286, 4577P 6696 --6.42053451084141,-6.42053451084141,-5.12445381002996, 4577P 6697 --5.12445381002996,-5.12445381002996,1.,0.797268222513902,1., 4577P 6698 -0.797268222513893,1.,0.797268222513928,1.,146.893865315652, 4577P 6699 --248.749215886107,-7.5,146.13511310057,-250.485058779287,-7.5, 4577P 6700 -144.2585310156,-250.22564568775,-7.5,142.381948930629, 4577P 6701 --249.966232596213,-7.5,142.122568151359,-248.089646044774,-7.5, 4577P 6702 -141.863187372088,-246.213059493336,-7.5,143.599043329707, 4577P 6703 --245.454337167255,-7.5,-9.01269591246431,-5.12445381002996,0., 4577P 6704 -0.,0.; 4577P 6705 -126,1,1,0,0,1,0,-10.8869873393078,-10.8869873393078, 4579P 6706 --0.22927014633397,-0.22927014633397,1.,1.,253.47103724539, 4579P 6707 --248.749215886107,-7.5,146.893865315652,-248.749215886107,-7.5, 4579P 6708 --10.8869873393078,-0.22927014633397,0.,0.,0.; 4579P 6709 -126,6,2,0,0,0,0,-4.30030689892742,-4.30030689892742, 4581P 6710 --4.30030689892742,-3.00423194871996,-3.00423194871996, 4581P 6711 --1.7081569985125,-1.7081569985125,-0.412082048305046, 4581P 6712 --0.412082048305046,-0.412082048305046,1.,0.79726995811531,1., 4581P 6713 -0.797269958115373,1.,0.797269958115304,1.,256.765898784737, 4581P 6714 --245.454354455992,-7.5,258.501731281752,-246.213102195359,-7.5, 4581P 6715 -258.242330469318,-248.089674551596,-7.5,257.982929656885, 4581P 6716 --249.966246907834,-7.5,256.106357292048,-250.225647658055,-7.5, 4581P 6717 -254.22978492721,-250.485048408276,-7.5,253.47103724539, 4581P 6718 --248.749215886107,-7.5,-4.30030689892742,-0.412082048305046,0., 4581P 6719 -0.,0.; 4581P 6720 -126,6,2,0,0,0,0,3.13925814735297,3.13925814735297, 4583P 6721 -3.13925814735297,4.1872070362588,4.1872070362588, 4583P 6722 -5.23515592516463,5.23515592516463,6.28310481407046, 4583P 6723 -6.28310481407046,6.28310481407046,1.,0.865837508251611,1., 4583P 6724 -0.865837508251546,1.,0.865837508251788,1.,242.35733990852, 4583P 6725 --172.121201750437,-7.5,242.358316855497,-172.988052565356,-7.5, 4583P 6726 -241.607764429229,-173.421760237843,-7.5,240.857212002962, 4583P 6727 --173.85546791033,-7.5,240.10665957669,-173.421760237851,-7.5, 4583P 6728 -239.356107150418,-172.988052565371,-7.5,239.357084097385, 4583P 6729 --172.121201750453,-7.5,3.13925814735297,6.28310481407046,0.,0., 4583P 6730 -0.; 4583P 6731 -126,6,2,0,0,0,0,3.13925814731996,3.13925814731996, 4585P 6732 -3.13925814731996,4.1872070362402,4.1872070362402, 4585P 6733 -5.23515592516045,5.23515592516045,6.28310481408069, 4585P 6734 -6.28310481408069,6.28310481408069,1.,0.865837508248116,1., 4585P 6735 -0.865837508248067,1.,0.865837508248292,1.,239.357084097385, 4585P 6736 --172.121201750453,-7.5,239.35610715039,-171.25435093552,-7.5, 4585P 6737 -240.106659576667,-170.82064326302,-7.5,240.857212002944, 4585P 6738 --170.38693559052,-7.5,241.607764429225,-170.820643263012,-7.5, 4585P 6739 -242.358316855506,-171.254350935504,-7.5,242.35733990852, 4585P 6740 --172.121201750437,-7.5,3.13925814731996,6.28310481408069,0.,0., 4585P 6741 -0.; 4585P 6742 -126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4587P 6743 -3.13925814734168,4.18720703625123,4.18720703625123, 4587P 6744 -5.23515592516079,5.23515592516079,6.28310481407034, 4587P 6745 -6.28310481407034,6.28310481407034,1.,0.865837508250857,1., 4587P 6746 -0.865837508250855,1.,0.865837508250881,1.,163.58288415273, 4587P 6747 --190.598023114196,-7.5,163.583861099711,-191.464873929118,-7.5, 4587P 6748 -162.833308673442,-191.898581601608,-7.5,162.082756247172, 4587P 6749 --192.332289274099,-7.5,161.332203820897,-191.898581601616,-7.5, 4587P 6750 -160.581651394623,-191.464873929134,-7.5,160.582628341595, 4587P 6751 --190.598023114212,-7.5,3.13925814734168,6.28310481407034,0.,0., 4587P 6752 -0.; 4587P 6753 -126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4589P 6754 -3.13925814733116,4.18720703624771,4.18720703624771, 4589P 6755 -5.23515592516426,5.23515592516426,6.28310481408081, 4589P 6756 -6.28310481408081,6.28310481408081,1.,0.865837508248909,1., 4589P 6757 -0.865837508248987,1.,0.86583750824897,1.,160.582628341595, 4589P 6758 --190.598023114212,-7.5,160.581651394605,-189.731172299282,-7.5, 4589P 6759 -161.332203820879,-189.297464626786,-7.5,162.082756247154, 4589P 6760 --188.863756954289,-7.5,162.833308673433,-189.297464626778,-7.5, 4589P 6761 -163.583861099712,-189.731172299267,-7.5,163.58288415273, 4589P 6762 --190.598023114196,-7.5,3.13925814733116,6.28310481408081,0.,0., 4589P 6763 -0.; 4589P 6764 -126,6,2,0,0,0,0,3.13866619559787,3.13866619559787, 4591P 6765 -3.13866619559787,4.18680559832114,4.18680559832114, 4591P 6766 -5.2349450010444,5.2349450010444,6.28308440376766, 4591P 6767 -6.28308440376766,6.28308440376766,1.,0.865789844881696,1., 4591P 6768 -0.865789844881894,1.,0.865789844881696,1.,239.784272290707, 4591P 6769 --228.698656211057,-7.5,239.785497227975,-229.565697649234,-7.5, 4591P 6770 -239.034820806557,-229.999572361928,-7.5,238.284144385139, 4591P 6771 --230.433447074621,-7.5,237.533467963721,-229.999572361928,-7.5, 4591P 6772 -236.782791542303,-229.565697649234,-7.5,236.784016479572, 4591P 6773 --228.698656211057,-7.5,3.13866619559787,6.28308440376766,0.,0., 4591P 6774 -0.; 4591P 6775 -126,6,2,0,0,0,0,3.13866619557958,3.13866619557958, 4593P 6776 -3.13866619557958,4.18680559830898,4.18680559830898, 4593P 6777 -5.23494500103838,5.23494500103838,6.28308440376778, 4593P 6778 -6.28308440376778,6.28308440376778,1.,0.865789844880162,1., 4593P 6779 -0.865789844880317,1.,0.865789844880162,1.,236.784016479572, 4593P 6780 --228.698656211057,-7.5,236.782791542295,-227.831614772873,-7.5, 4593P 6781 -237.533467963717,-227.397740060174,-7.5,238.284144385139, 4593P 6782 --226.963865347475,-7.5,239.034820806561,-227.397740060174,-7.5, 4593P 6783 -239.785497227983,-227.831614772873,-7.5,239.784272290707, 4593P 6784 --228.698656211057,-7.5,3.13866619557958,6.28308440376778,0.,0., 4593P 6785 -0.; 4593P 6786 -126,6,2,0,0,0,0,3.13925814734168,3.13925814734168, 4595P 6787 -3.13925814734168,4.18720703625123,4.18720703625123, 4595P 6788 -5.23515592516079,5.23515592516079,6.28310481407034, 4595P 6789 -6.28310481407034,6.28310481407034,1.,0.865837508250857,1., 4595P 6790 -0.865837508250855,1.,0.865837508250881,1.,163.58288415273, 4595P 6791 --228.69865621105,-7.5,163.583861099711,-229.565507025972,-7.5, 4595P 6792 -162.833308673442,-229.999214698462,-7.5,162.082756247172, 4595P 6793 --230.432922370953,-7.5,161.332203820897,-229.99921469847,-7.5, 4595P 6794 -160.581651394623,-229.565507025988,-7.5,160.582628341595, 4595P 6795 --228.698656211065,-7.5,3.13925814734168,6.28310481407034,0.,0., 4595P 6796 -0.; 4595P 6797 -126,6,2,0,0,0,0,3.13925814733116,3.13925814733116, 4597P 6798 -3.13925814733116,4.18720703624771,4.18720703624771, 4597P 6799 -5.23515592516426,5.23515592516426,6.28310481408081, 4597P 6800 -6.28310481408081,6.28310481408081,1.,0.865837508248909,1., 4597P 6801 -0.865837508248987,1.,0.86583750824897,1.,160.582628341595, 4597P 6802 --228.698656211065,-7.5,160.581651394605,-227.831805396136,-7.5, 4597P 6803 -161.332203820879,-227.39809772364,-7.5,162.082756247154, 4597P 6804 --226.964390051143,-7.5,162.833308673433,-227.398097723632,-7.5, 4597P 6805 -163.583861099712,-227.83180539612,-7.5,163.58288415273, 4597P 6806 --228.69865621105,-7.5,3.13925814733116,6.28310481408081,0.,0., 4597P 6807 -0.; 4597P 6808 -126,6,2,0,0,0,0,3.13917765424295,3.13917765424295, 4599P 6809 -3.13917765424295,4.18718020522184,4.18718020522184, 4599P 6810 -5.23518275620074,5.23518275620074,6.28318530717964, 4599P 6811 -6.28318530717964,6.28318530717964,1.,0.865824083693605,1., 4599P 6812 -0.865824083693601,1.,0.865824083693706,1.,239.68226259674, 4599P 6813 --190.598023114196,-7.50000000000001,239.683239604231, 4599P 6814 --191.407138874521,-7.50000000000001,238.982687181724, 4599P 6815 --191.811979054677,-7.50000000000001,238.282134759216, 4599P 6816 --192.216819234834,-7.50000000000001,237.581582336708, 4599P 6817 --191.811979054677,-7.50000000000001,236.8810299142, 4599P 6818 --191.407138874521,-7.50000000000001,236.882006921691, 4599P 6819 --190.598023114196,-7.50000000000001,3.13917765424295, 4599P 6820 -6.28318530717964,0.,0.,0.; 4599P 6821 -126,6,2,0,0,0,0,3.13917765424305,3.13917765424305, 4601P 6822 -3.13917765424305,4.1871802052219,4.1871802052219, 4601P 6823 -5.23518275620074,5.23518275620074,6.28318530717959, 4601P 6824 -6.28318530717959,6.28318530717959,1.,0.865824083693657,1., 4601P 6825 -0.865824083693437,1.,0.865824083693493,1.,236.882006921691, 4601P 6826 --190.598023114196,-7.50000000000001,236.8810299142, 4601P 6827 --189.78890735387,-7.50000000000001,237.581582336708, 4601P 6828 --189.384067173714,-7.50000000000001,238.282134759216, 4601P 6829 --188.979226993558,-7.50000000000001,238.982687181724, 4601P 6830 --189.384067173714,-7.50000000000001,239.683239604231, 4601P 6831 --189.78890735387,-7.50000000000001,239.68226259674, 4601P 6832 --190.598023114196,-7.50000000000001,3.13917765424305, 4601P 6833 -6.28318530717959,0.,0.,0.; 4601P 6834 -126,6,2,0,0,0,0,3.13917765425437,3.13917765425437, 4603P 6835 -3.13917765425437,4.18718020522943,4.18718020522943, 4603P 6836 -5.2351827562045,5.2351827562045,6.28318530717956, 4603P 6837 -6.28318530717956,6.28318530717956,1.,0.865824083694451,1., 4603P 6838 -0.865824083694691,1.,0.865824083694492,1.,160.90780684095, 4603P 6839 --172.121201750437,-7.5,160.908783848437,-172.930317510758,-7.5, 4603P 6840 -160.208231425931,-173.335157690912,-7.5,159.507679003426, 4603P 6841 --173.739997871065,-7.5,158.80712658092,-173.335157690912,-7.5, 4603P 6842 -158.106574158415,-172.930317510759,-7.5,158.107551165901, 4603P 6843 --172.121201750437,-7.5,3.13917765425437,6.28318530717956,0.,0., 4603P 6844 -0.; 4603P 6845 -126,6,2,0,0,0,0,3.13917765423161,3.13917765423161, 4605P 6846 -3.13917765423161,4.18718020521427,4.18718020521427, 4605P 6847 -5.23518275619693,5.23518275619693,6.28318530717959, 4605P 6848 -6.28318530717959,6.28318530717959,1.,0.865824083692486,1., 4605P 6849 -0.865824083692489,1.,0.865824083692465,1.,158.107551165901, 4605P 6850 --172.121201750437,-7.5,158.106574158405,-171.312085990108,-7.5, 4605P 6851 -158.807126580916,-170.907245809948,-7.5,159.507679003426, 4605P 6852 --170.502405629789,-7.5,160.208231425936,-170.907245809948,-7.5, 4605P 6853 -160.908783848446,-171.312085990108,-7.5,160.90780684095, 4605P 6854 --172.121201750437,-7.5,3.13917765423161,6.28318530717959,0.,0., 4605P 6855 -0.; 4605P 6856 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4607P 6857 -158.107551165901,-172.121201750437,-7.5,158.107551165901, 4607P 6858 --172.121201750437,-11.6,1.623625,2.033625,0.,0.,0.; 4607P 6859 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4609P 6860 -160.90780684095,-172.121201750437,-7.5,160.90780684095, 4609P 6861 --172.121201750437,-11.6,1.623625,2.033625,0.,0.,0.; 4609P 6862 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4611P 6863 -236.882006921691,-190.598023114196,-7.5,236.882006921691, 4611P 6864 --190.598023114196,-11.6,1.623625,2.033625,0.,0.,0.; 4611P 6865 -126,1,1,0,0,1,0,1.623625,1.623625,2.033625,2.033625,1.,1., 4613P 6866 -239.68226259674,-190.598023114196,-7.5,239.68226259674, 4613P 6867 --190.598023114196,-11.6,1.623625,2.033625,0.,0.,0.; 4613P 6868 -126,2,2,0,0,0,0,-1.15918194829754,-1.15918194829754, 4615P 6869 --1.15918194829754,-0.0292778092733589,-0.0292778092733589, 4615P 6870 --0.0292778092733589,1.,0.84461426219442,1.,143.600041714311, 4615P 6871 --167.842837467805,5.5,142.146470952165,-167.208278396419,5.5, 4615P 6872 -142.100041714311,-165.622914872961,5.5,-1.15918194829754, 4615P 6873 --0.0292778092733589,0.,0.,0.; 4615P 6874 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,143.600041714311, 4617P 6875 --167.842837467805,-7.5,143.600041714311,-167.842837467805,5.5, 4617P 6876 --1.5,-0.2,0.,0.,0.; 4617P 6877 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,142.100041714311, 4619P 6878 --165.622914872961,5.5,142.100041714311,-165.622914872961,-7.5, 4619P 6879 -0.2,1.5,0.,0.,0.; 4619P 6880 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,253.47103724539, 4621P 6881 --248.749215886107,5.5,253.47103724539,-248.749215886107,-7.5, 4621P 6882 -0.2,1.5,0.,0.,0.; 4621P 6883 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,146.893865315652, 4623P 6884 --248.749215886107,-7.5,146.893865315652,-248.749215886107,5.5, 4623P 6885 --1.5,-0.2,0.,0.,0.; 4623P 6886 -126,1,1,0,0,1,0,-8.10792303602294,-8.10792303602294, 4625P 6887 -2.54979415695085,2.54979415695085,1.,1.,146.893865315652, 4625P 6888 --248.749215886107,5.5,253.47103724539,-248.749215886107,5.5, 4625P 6889 --8.10792303602294,2.54979415695085,0.,0.,0.; 4625P 6890 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,143.599043329707, 4627P 6891 --245.454337167255,5.5,143.599043329707,-245.454337167255,-7.5, 4627P 6892 -0.2,1.5,0.,0.,0.; 4627P 6893 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,143.600041714311, 4629P 6894 --187.471624566822,5.5,143.600041714311,-187.471624566822,-7.5, 4629P 6895 -0.2,1.5,0.,0.,0.; 4629P 6896 -126,1,1,0,0,1,0,-3.97255884800442,-3.97255884800442, 4631P 6897 -1.82571241289845,1.82571241289845,1.,1.,143.600041714311, 4631P 6898 --187.471624566822,5.5,143.599043329707,-245.454337167255,5.5, 4631P 6899 --3.97255884800442,1.82571241289845,0.,0.,0.; 4631P 6900 -126,2,2,0,0,0,0,1.5707963267949,1.5707963267949,1.5707963267949, 4633P 6901 -2.72951060528473,2.72951060528473,2.72951060528473,1., 4633P 6902 -0.836814780130264,1.,144.601129377503,-163.047507575232,5.5, 4633P 6903 -146.23816763129,-163.047507575232,5.5,146.893830840843, 4633P 6904 --164.547507575232,5.5,1.5707963267949,2.72951060528473,0.,0.,0.; 4633P 6905 -126,2,2,0,0,0,0,1.72186597884763D-5,1.72186597884763D-5, 4635P 6906 -1.72186597884763D-5,1.15873149714963,1.15873149714963, 4635P 6907 -1.15873149714963,1.,0.836814780130337,1.,142.099003852683, 4635P 6908 --247.747012802266,5.5,142.099032040288,-246.109974548721,5.5, 4635P 6909 -143.599043329707,-245.454337167255,5.5,1.72186597884763D-5, 4635P 6910 -1.15873149714963,0.,0.,0.; 4635P 6911 -126,1,1,0,0,1,0,-2.92171556809407,-2.92171556809407, 4637P 6912 --0.958836858192392,-0.958836858192392,1.,1.,143.600041714311, 4637P 6913 --167.842837467805,5.5,143.600041714311,-187.471624566822,5.5, 4637P 6914 --2.92171556809407,-0.958836858192392,0.,0.,0.; 4637P 6915 -126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4639P 6916 -3.14370739710002,3.14370739710002,1.,1.,142.100041714311, 4639P 6917 --187.471615957251,5.5,142.100041714311,-165.622914872961,5.5, 4639P 6918 -0.958837288670924,3.14370739710002,0.,0.,0.; 4639P 6919 -126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4641P 6920 -3.97255712615894,3.97255712615894,1.,1.,142.099003852683, 4641P 6921 --247.747012802266,5.5,142.100041714311,-187.471615957251,5.5, 4641P 6922 --2.054982559236,3.97255712615894,0.,0.,0.; 4641P 6923 -126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4643P 6924 --1.5707963267949,-0.412082048305059,-0.412082048305059, 4643P 6925 --0.412082048305059,1.,0.836814780130349,1.,255.763738708729, 4643P 6926 --250.249215886107,5.5,254.126700454943,-250.249215886107,5.5, 4643P 6927 -253.47103724539,-248.749215886107,5.5,-1.5707963267949, 4643P 6928 --0.412082048305059,0.,0.,0.; 4643P 6929 -126,2,2,0,0,0,0,-2.72951060528471,-2.72951060528471, 4645P 6930 --2.72951060528471,-1.5707963267949,-1.5707963267949, 4645P 6931 --1.5707963267949,1.,0.83681478013024,1.,146.893865315652, 4645P 6932 --248.749215886107,5.5,146.238202106099,-250.249215886107,5.5, 4645P 6933 -144.601163852312,-250.249215886107,5.5,-2.72951060528471, 4645P 6934 --1.5707963267949,0.,0.,0.; 4645P 6935 -126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4647P 6936 -8.33719318235691,8.33719318235691,1.,1.,255.763738708729, 4647P 6937 --250.249215886107,5.5,144.601163852312,-250.249215886107,5.5, 4647P 6938 --2.77906430328482,8.33719318235691,0.,0.,0.; 4647P 6939 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,253.471039970417, 4649P 6940 --164.547507575232,-7.5,253.471039970417,-164.547507575232,5.5, 4649P 6941 --1.5,-0.2,0.,0.,0.; 4649P 6942 -126,1,1,0,0,1,0,-8.10792489601484,-8.10792489601484, 4651P 6943 --6.53888737412926,-6.53888737412926,1.,1.,253.471039970417, 4651P 6944 --164.547507575232,5.5,237.780664751561,-164.547507575232,5.5, 4651P 6945 --8.10792489601484,-6.53888737412926,0.,0.,0.; 4651P 6946 -126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,237.780664751561, 4653P 6947 --164.547507575232,5.5,237.780664751561,-164.547507575232,-7.5, 4653P 6948 --0.2,1.1,0.,0.,0.; 4653P 6949 -126,2,2,0,0,0,0,1.98287840825217,1.98287840825217, 4655P 6950 -1.98287840825217,3.14159265358978,3.14159265358978, 4655P 6951 -3.14159265358978,1.,0.836814789205546,1.,256.765898784737, 4655P 6952 --245.454354455992,5.5,258.265898708729,-246.11001769155,5.5, 4655P 6953 -258.265898708729,-247.747055886107,5.5,1.98287840825217, 4655P 6954 -3.14159265358978,0.,0.,0.; 4655P 6955 -126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4657P 6956 -6.16480416245852,6.16480416245852,1.,1.,258.265901433754, 4657P 6957 --165.54966486678,5.5,258.265898708729,-247.747055886107,5.5, 4657P 6958 --2.05493493947419,6.16480416245852,0.,0.,0.; 4657P 6959 -126,2,2,0,0,0,0,-3.14159373603537,-3.14159373603537, 4659P 6960 --3.14159373603537,-1.98287834194696,-1.98287834194696, 4659P 6961 --1.98287834194696,1.,0.836814474742808,1.,258.265901433754, 4659P 6962 --165.54966486678,5.5,258.265903205761,-167.186705113691,5.5, 4659P 6963 -256.765901357746,-167.842369071796,5.5,-3.14159373603537, 4659P 6964 --1.98287834194696,0.,0.,0.; 4659P 6965 -126,1,1,0,0,1,0,-5.93553402441977,-5.93553402441977, 4661P 6966 -1.82566451399977,1.82566451399977,1.,1.,256.765898784737, 4661P 6967 --245.454354455992,5.5,256.765901357746,-167.842369071796,5.5, 4661P 6968 --5.93553402441977,1.82566451399977,0.,0.,0.; 4661P 6969 -126,2,2,0,0,0,0,0.412082048305129,0.412082048305129, 4663P 6970 -0.412082048305129,1.57079632679488,1.57079632679488, 4663P 6971 -1.57079632679488,1.,0.836814780130332,1.,253.471039970417, 4663P 6972 --164.547507575232,5.5,254.126703179969,-163.047507575233,5.5, 4663P 6973 -255.763741433756,-163.047507575233,5.5,0.412082048305129, 4663P 6974 -1.57079632679488,0.,0.,0.; 4663P 6975 -126,1,1,0,0,1,0,-2.25504270777187,-2.25504270777187, 4665P 6976 --2.10504270777188,-2.10504270777188,1.,1.,237.780664751561, 4665P 6977 --163.047507575232,5.5,237.780664751561,-164.547507575232,5.5, 4665P 6978 --2.25504270777187,-2.10504270777188,0.,0.,0.; 4665P 6979 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,160.582628341595, 4667P 6980 --228.698656211065,-7.5,160.582628341595,-228.698656211065,-11.6, 4667P 6981 -1.5,1.91,0.,0.,0.; 4667P 6982 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,163.58288415273, 4669P 6983 --228.69865621105,-7.5,163.58288415273,-228.69865621105,-11.6, 4669P 6984 -1.5,1.91,0.,0.,0.; 4669P 6985 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,236.784016479572, 4671P 6986 --228.698656211057,-7.5,236.784016479572,-228.698656211057,-11.6, 4671P 6987 -1.5,1.91,0.,0.,0.; 4671P 6988 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,239.784272290707, 4673P 6989 --228.698656211057,-7.5,239.784272290707,-228.698656211057,-11.6, 4673P 6990 -1.5,1.91,0.,0.,0.; 4673P 6991 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,160.582628341595, 4675P 6992 --190.598023114212,-7.5,160.582628341595,-190.598023114212,-11.6, 4675P 6993 -1.5,1.91,0.,0.,0.; 4675P 6994 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,163.58288415273, 4677P 6995 --190.598023114196,-7.5,163.58288415273,-190.598023114196,-11.6, 4677P 6996 -1.5,1.91,0.,0.,0.; 4677P 6997 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,239.357084097385, 4679P 6998 --172.121201750453,-7.5,239.357084097385,-172.121201750453,-11.6, 4679P 6999 -1.5,1.91,0.,0.,0.; 4679P 7000 -126,1,1,0,0,1,0,1.5,1.5,1.91,1.91,1.,1.,242.35733990852, 4681P 7001 --172.121201750437,-7.5,242.35733990852,-172.121201750437,-11.6, 4681P 7002 -1.5,1.91,0.,0.,0.; 4681P 7003 -126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,237.780664751561, 4683P 7004 --164.547507575232,-7.5,237.780664751561,-164.547507575232,-11.6, 4683P 7005 -0.8,1.21,0.,0.,0.; 4683P 7006 -126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4685P 7007 -0.724999999999998,0.724999999999998,1.,1.,237.780664751561, 4685P 7008 --163.047507575232,1.5,237.780664751561,-156.547507575232,1.5, 4685P 7009 -0.0749999999999993,0.724999999999998,0.,0.,0.; 4685P 7010 -126,1,1,0,0,1,0,0.8,0.8,1.21,1.21,1.,1.,169.612220010399, 4687P 7011 --164.547507575232,-7.5,169.612220010399,-164.547507575232,-11.6, 4687P 7012 -0.8,1.21,0.,0.,0.; 4687P 7013 -126,1,1,0,0,1,0,-0.2,-0.2,1.1,1.1,1.,1.,169.612220010399, 4689P 7014 --164.547507575232,5.5,169.612220010399,-164.547507575232,-7.5, 4689P 7015 --0.2,1.1,0.,0.,0.; 4689P 7016 -126,1,1,0,0,1,0,0.0749999999999993,0.0749999999999993, 4691P 7017 -0.724999999999998,0.724999999999998,1.,1.,169.612220010399, 4691P 7018 --163.047507575232,1.5,169.612220010399,-156.547507575232,1.5, 4691P 7019 -0.0749999999999993,0.724999999999998,0.,0.,0.; 4691P 7020 -126,1,1,0,0,1,0,-0.75,-0.75,0.55,0.55,1.,1.,193.600041714311, 4693P 7021 --164.547507575232,-7.5,193.600041714311,-164.547507575232,5.5, 4693P 7022 --0.75,0.55,0.,0.,0.; 4693P 7023 -126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,213.600041714311, 4695P 7024 --171.547507575232,-7.5,213.600041714311,-171.547507575232,5.5, 4695P 7025 -0.,1.3,0.,0.,0.; 4695P 7026 -126,1,1,0,0,1,0,0.,0.,1.3,1.3,1.,1.,193.600041714311, 4697P 7027 --171.547507575231,-7.5,193.600041714311,-171.547507575231,5.5, 4697P 7028 -0.,1.3,0.,0.,0.; 4697P 7029 -126,1,1,0,0,1,0,-1.5,-1.5,-0.2,-0.2,1.,1.,256.765898784737, 4699P 7030 --245.454354455992,-7.5,256.765898784737,-245.454354455992,5.5, 4699P 7031 --1.5,-0.2,0.,0.,0.; 4699P 7032 -126,1,1,0,0,1,0,0.2,0.2,1.5,1.5,1.,1.,256.765901357746, 4701P 7033 --167.842369071796,5.5,256.765901357746,-167.842369071796,-7.5, 4701P 7034 -0.2,1.5,0.,0.,0.; 4701P 7035 -126,1,1,0,0,1,0,0.958837288670924,0.958837288670924, 4703P 7036 -3.15835685664568,3.15835685664568,1.,1.,142.100041714311, 4703P 7037 --187.471615957251,7.5,142.100041714311,-165.476420277504,7.5, 4703P 7038 -0.958837288670924,3.15835685664568,0.,0.,0.; 4703P 7039 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,142.100041714311, 4705P 7040 --187.471615957251,7.5,142.100041714311,-187.471615957251,5.5,0., 4705P 7041 -0.2,0.,0.,0.; 4705P 7042 -126,1,1,0,0,1,0,0.,0.,1.5,1.5,1.,1.,142.100041714311, 4707P 7043 --165.476420277504,7.5,142.100041714311,-165.476420277504,-7.5, 4707P 7044 -0.,1.5,0.,0.,0.; 4707P 7045 -126,1,1,0,0,1,0,-2.054982559236,-2.054982559236, 4709P 7046 -3.97255712615894,3.97255712615894,1.,1.,142.099003852683, 4709P 7047 --247.747012802266,7.5,142.100041714311,-187.471615957251,7.5, 4709P 7048 --2.054982559236,3.97255712615894,0.,0.,0.; 4709P 7049 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,142.099003852683, 4711P 7050 --247.747012802266,7.5,142.099003852683,-247.747012802266,5.5,0., 4711P 7051 -0.2,0.,0.,0.; 4711P 7052 -126,4,2,0,0,0,0,-1.57081354545468,-1.57081354545468, 4713P 7053 --1.57081354545468,-0.785406772727342,-0.785406772727342,0.,0., 4713P 7054 -0.,1.,0.92387788517883,1.,0.923877885178821,1.,144.601163852312, 4713P 7055 --250.249215886107,7.5,143.564722626097,-250.249215886107,7.5, 4713P 7056 -142.831854316326,-249.516334957217,7.5,142.098986006554, 4713P 7057 --248.783454028327,7.5,142.099003852683,-247.747012802266,7.5, 4713P 7058 --1.57081354545468,0.,0.,0.,0.; 4713P 7059 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,144.601163852312, 4715P 7060 --250.249215886107,7.5,144.601163852312,-250.249215886107,5.5,0., 4715P 7061 -0.2,0.,0.,0.; 4715P 7062 -126,1,1,0,0,1,0,-2.77906430328482,-2.77906430328482, 4717P 7063 -8.33719318235691,8.33719318235691,1.,1.,255.763738708729, 4717P 7064 --250.249215886107,7.5,144.601163852312,-250.249215886107,7.5, 4717P 7065 --2.77906430328482,8.33719318235691,0.,0.,0.; 4717P 7066 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,255.763738708729, 4719P 7067 --250.249215886107,7.5,255.763738708729,-250.249215886107,5.5,0., 4719P 7068 -0.2,0.,0.,0.; 4719P 7069 -126,2,2,0,0,0,0,-1.5707963267949,-1.5707963267949, 4721P 7070 --1.5707963267949,0.,0.,0.,1.,0.707106781186518,1., 4721P 7071 -258.265898708729,-247.747055886107,7.5,258.265898708729, 4721P 7072 --250.249215886107,7.5,255.763738708729,-250.249215886107,7.5, 4721P 7073 --1.5707963267949,0.,0.,0.,0.; 4721P 7074 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,258.265898708729, 4723P 7075 --247.747055886107,7.5,258.265898708729,-247.747055886107,5.5,0., 4723P 7076 -0.2,0.,0.,0.; 4723P 7077 -126,1,1,0,0,1,0,-2.05493493947419,-2.05493493947419, 4725P 7078 -6.16480416245852,6.16480416245852,1.,1.,258.265901433754, 4725P 7079 --165.54966486678,7.5,258.265898708729,-247.747055886107,7.5, 4725P 7080 --2.05493493947419,6.16480416245852,0.,0.,0.; 4725P 7081 -126,1,1,0,0,1,0,0.,0.,0.2,0.2,1.,1.,258.265901433754, 4727P 7082 --165.54966486678,7.5,258.265901433754,-165.54966486678,5.5,0., 4727P 7083 -0.2,0.,0.,0.; 4727P 7084 -126,2,2,0,0,0,0,-1.57079524434933,-1.57079524434933, 4729P 7085 --1.57079524434933,0.,0.,0.,1.,0.707107163888743,1., 4729P 7086 -255.763741433756,-163.047507575233,7.5,258.265898725305, 4729P 7087 --163.047507575233,7.5,258.265901433754,-165.54966486678,7.5, 4729P 7088 --1.57079524434933,0.,0.,0.,0.; 4729P 7089 -126,2,2,0,0,0,0,-1.54151851752146,-1.54151851752146, 4731P 7090 --1.54151851752146,0.,0.,0.,1.,0.717381915954777,1., 4731P 7091 -142.100041714311,-165.476420277504,7.5,142.171175283308, 4731P 7092 --163.047507575232,7.5,144.601129377503,-163.047507575232,7.5, 4731P 7093 --1.54151851752146,0.,0.,0.,0.; 4731P 7094 -126,2,2,0,0,0,0,0.,0.,0.,1.55536115200856,1.55536115200856, 4733P 7095 -1.55536115200856,1.,0.712542827450536,1.,144.601129377503, 4733P 7096 --156.547507575232,7.5,135.73685786174,-156.547507575232,7.5, 4733P 7097 -135.600041714311,-165.410723179457,7.5,0.,1.55536115200856,0., 4733P 7098 -0.,0.; 4733P 7099 -126,1,1,0,0,1,0,7.15168754189355D-31,7.15168754189355D-31, 4735P 7100 -2.20608325126057,2.20608325126057,1.,1.,135.600041714311, 4735P 7101 --165.410723179457,7.5,135.600041714311,-187.471555692063,7.5, 4735P 7102 -7.15168754189355D-31,2.20608325126057,0.,0.,0.; 4735P 7103 -126,1,1,0,0,1,0,0.,0.,6.02753451978495,6.02753451978495,1.,1., 4737P 7104 -135.600041714311,-187.471555692063,7.5,135.599003853647, 4737P 7105 --247.746900880977,7.5,0.,6.02753451978495,0.,0.,0.; 4737P 7106 -126,4,2,0,0,0,0,0.,0.,0.,0.785406772727353,0.785406772727353, 4739P 7107 -1.57081354545471,1.57081354545471,1.57081354545471,1., 4739P 7108 -0.923877885178792,1.,0.923877885178803,1.,135.599003853647, 4739P 7109 --247.746900880977,7.5,135.598939647638,-251.475763043109,7.5, 4739P 7110 -138.235620668632,-254.112489464608,7.5,140.872301689627, 4739P 7111 --256.749215886107,7.5,144.601163852312,-256.749215886107,7.5,0., 4739P 7112 -1.57081354545471,0.,0.,0.; 4739P 7113 -126,1,1,0,0,1,0,0.,0.,11.1162574856417,11.1162574856417,1.,1., 4741P 7114 -144.601163852312,-256.749215886107,7.5,255.763738708729, 4741P 7115 --256.749215886107,7.5,0.,11.1162574856417,0.,0.,0.; 4741P 7116 -126,2,2,0,0,0,0,0.,0.,0.,1.57079632679491,1.57079632679491, 4743P 7117 -1.57079632679491,1.,0.707106781186549,1.,255.763738708729, 4743P 7118 --256.749215886107,7.5,264.765898708729,-256.749215886107,7.5, 4743P 7119 -264.765898708729,-247.747055886107,7.5,0.,1.57079632679491,0., 4743P 7120 -0.,0.; 4743P 7121 -126,1,1,0,0,1,0,0.,0.,8.21973908038377,8.21973908038377,1.,1., 4745P 7122 -264.765898708729,-247.747055886107,7.5,264.765901433754, 4745P 7123 --165.54966508227,7.5,0.,8.21973908038377,0.,0.,0.; 4745P 7124 -126,2,2,0,0,0,0,0.,0.,0.,1.57079604986551,1.57079604986551, 4747P 7125 -1.57079604986551,1.,0.707106879095859,1.,264.765901433754, 4747P 7126 --165.54966508227,7.5,264.765898940792,-156.547507575234,7.5, 4747P 7127 -255.763741433756,-156.547507575234,7.5,0.,1.57079604986551,0., 4747P 7128 -0.,0.; 4747P 7129 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.600041714311, 4749P 7130 --165.410723179457,7.5,135.600041714311,-165.410723179457,-11.6, 4749P 7131 -0.,1.91,0.,0.,0.; 4749P 7132 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.600041714311, 4751P 7133 --187.471555692063,7.5,135.600041714311,-187.471555692063,-11.6, 4751P 7134 -0.,1.91,0.,0.,0.; 4751P 7135 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,135.599003853647, 4753P 7136 --247.746900880977,7.5,135.599003853647,-247.746900880977,-11.6, 4753P 7137 -0.,1.91,0.,0.,0.; 4753P 7138 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,144.601163852312, 4755P 7139 --256.749215886107,7.5,144.601163852312,-256.749215886107,-11.6, 4755P 7140 -0.,1.91,0.,0.,0.; 4755P 7141 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,255.763738708729, 4757P 7142 --256.749215886107,7.5,255.763738708729,-256.749215886107,-11.6, 4757P 7143 -0.,1.91,0.,0.,0.; 4757P 7144 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,264.765898708729, 4759P 7145 --247.747055886107,7.5,264.765898708729,-247.747055886107,-11.6, 4759P 7146 -0.,1.91,0.,0.,0.; 4759P 7147 -126,1,1,0,0,1,0,0.,0.,1.91,1.91,1.,1.,264.765901433754, 4761P 7148 --165.54966508227,7.5,264.765901433754,-165.54966508227,-11.6,0., 4761P 7149 -1.91,0.,0.,0.; 4761P 7150 -128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4763P 7151 --1.14300985890878D-16,1.07865733739701,1.07865733739701, 4763P 7152 -3.1392581473417,3.1392581473417,3.1392581473417, 4763P 7153 -4.18726069832056,4.18726069832056,5.23526324929942, 4763P 7154 -5.23526324929942,6.28326580027829,6.28326580027829, 4763P 7155 -6.28326580027829,1.,1.,0.865824083693581,0.865824083693581,1., 4763P 7156 -1.,0.865824083693581,0.865824083693581,1.,1.,0.865824083693581, 4763P 7157 -0.865824083693581,1.,1.,136.882006921691,-80.5980231141957, 4763P 7158 -8.73624999999999,136.882006921691,-80.5980231141957, 4763P 7159 -7.11812499999999,136.8810299142,-79.7889073538704, 4763P 7160 -8.73624999999999,136.8810299142,-79.7889073538704, 4763P 7161 -7.11812499999999,137.581582336708,-79.3840671737142, 4763P 7162 -8.73624999999999,137.581582336708,-79.3840671737142, 4763P 7163 -7.11812499999999,138.282134759216,-78.9792269935579, 4763P 7164 -8.73624999999999,138.282134759216,-78.9792269935579, 4763P 7165 -7.11812499999999,138.982687181724,-79.3840671737142, 4763P 7166 -8.73624999999999,138.982687181724,-79.3840671737142, 4763P 7167 -7.11812499999999,139.683239604231,-79.7889073538704, 4763P 7168 -8.73624999999999,139.683239604231,-79.7889073538704, 4763P 7169 -7.11812499999999,139.68226259674,-80.5980231141957, 4763P 7170 -8.73624999999999,139.68226259674,-80.5980231141957, 4763P 7171 -7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4763P 7172 -3.1392581473417,6.28326580027829; 4763P 7173 -128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4765P 7174 --1.14300985890878D-16,1.07865733739701,1.07865733739701, 4765P 7175 -3.13925814734167,3.13925814734167,3.13925814734167, 4765P 7176 -4.18726069832055,4.18726069832055,5.23526324929943, 4765P 7177 -5.23526324929943,6.28326580027831,6.28326580027831, 4765P 7178 -6.28326580027831,1.,1.,0.865824083693577,0.865824083693577,1., 4765P 7179 -1.,0.865824083693577,0.865824083693577,1.,1.,0.865824083693577, 4765P 7180 -0.865824083693577,1.,1.,139.68226259674,-80.5980231141957, 4765P 7181 -8.73624999999999,139.68226259674,-80.5980231141957, 4765P 7182 -7.11812499999999,139.683239604231,-81.4071388745211, 4765P 7183 -8.73624999999999,139.683239604231,-81.4071388745211, 4765P 7184 -7.11812499999999,138.982687181724,-81.8119790546774, 4765P 7185 -8.73624999999999,138.982687181724,-81.8119790546774, 4765P 7186 -7.11812499999999,138.282134759216,-82.2168192348336, 4765P 7187 -8.73624999999999,138.282134759216,-82.2168192348336, 4765P 7188 -7.11812499999999,137.581582336708,-81.8119790546774, 4765P 7189 -8.73624999999999,137.581582336708,-81.8119790546774, 4765P 7190 -7.11812499999999,136.8810299142,-81.4071388745211, 4765P 7191 -8.73624999999999,136.8810299142,-81.4071388745211, 4765P 7192 -7.11812499999999,136.882006921691,-80.5980231141957, 4765P 7193 -8.73624999999999,136.882006921691,-80.5980231141957, 4765P 7194 -7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4765P 7195 -3.13925814734167,6.28326580027831; 4765P 7196 -128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4767P 7197 --1.14300985890878D-16,1.07865733739701,1.07865733739701, 4767P 7198 -3.1392581473417,3.1392581473417,3.1392581473417, 4767P 7199 -4.18726069832056,4.18726069832056,5.23526324929942, 4767P 7200 -5.23526324929942,6.28326580027829,6.28326580027829, 4767P 7201 -6.28326580027829,1.,1.,0.865824083693581,0.865824083693581,1., 4767P 7202 -1.,0.865824083693581,0.865824083693581,1.,1.,0.865824083693581, 4767P 7203 -0.865824083693581,1.,1.,136.882006921691,-118.69865621105, 4767P 7204 -8.73624999999999,136.882006921691,-118.69865621105, 4767P 7205 -7.11812499999999,136.8810299142,-117.889540450724, 4767P 7206 -8.73624999999999,136.8810299142,-117.889540450724, 4767P 7207 -7.11812499999999,137.581582336708,-117.484700270568, 4767P 7208 -8.73624999999999,137.581582336708,-117.484700270568, 4767P 7209 -7.11812499999999,138.282134759216,-117.079860090412, 4767P 7210 -8.73624999999999,138.282134759216,-117.079860090412, 4767P 7211 -7.11812499999999,138.982687181724,-117.484700270568, 4767P 7212 -8.73624999999999,138.982687181724,-117.484700270568, 4767P 7213 -7.11812499999999,139.683239604231,-117.889540450724, 4767P 7214 -8.73624999999999,139.683239604231,-117.889540450724, 4767P 7215 -7.11812499999999,139.68226259674,-118.69865621105, 4767P 7216 -8.73624999999999,139.68226259674,-118.69865621105, 4767P 7217 -7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4767P 7218 -3.1392581473417,6.28326580027829; 4767P 7219 -128,1,6,1,2,0,0,0,0,0,-1.14300985890878D-16, 4769P 7220 --1.14300985890878D-16,1.07865733739701,1.07865733739701, 4769P 7221 -3.13925814734167,3.13925814734167,3.13925814734167, 4769P 7222 -4.18726069832055,4.18726069832055,5.23526324929943, 4769P 7223 -5.23526324929943,6.28326580027831,6.28326580027831, 4769P 7224 -6.28326580027831,1.,1.,0.865824083693577,0.865824083693577,1., 4769P 7225 -1.,0.865824083693577,0.865824083693577,1.,1.,0.865824083693577, 4769P 7226 -0.865824083693577,1.,1.,139.68226259674,-118.69865621105, 4769P 7227 -8.73624999999999,139.68226259674,-118.69865621105, 4769P 7228 -7.11812499999999,139.683239604231,-119.507771971375, 4769P 7229 -8.73624999999999,139.683239604231,-119.507771971375, 4769P 7230 -7.11812499999999,138.982687181724,-119.912612151531, 4769P 7231 -8.73624999999999,138.982687181724,-119.912612151531, 4769P 7232 -7.11812499999999,138.282134759216,-120.317452331688, 4769P 7233 -8.73624999999999,138.282134759216,-120.317452331688, 4769P 7234 -7.11812499999999,137.581582336708,-119.912612151531, 4769P 7235 -8.73624999999999,137.581582336708,-119.912612151531, 4769P 7236 -7.11812499999999,136.8810299142,-119.507771971375, 4769P 7237 -8.73624999999999,136.8810299142,-119.507771971375, 4769P 7238 -7.11812499999999,136.882006921691,-118.69865621105, 4769P 7239 -8.73624999999999,136.882006921691,-118.69865621105, 4769P 7240 -7.11812499999999,-1.14300985890878D-16,1.07865733739701, 4769P 7241 -3.13925814734167,6.28326580027831; 4769P 7242 -128,1,6,1,2,0,0,0,0,0,-1.14300941237118D-16, 4771P 7243 --1.14300941237118D-16,1.07865694595434,1.07865694595434, 4771P 7244 -3.13866619558426,3.13866619558426,3.13866619558426, 4771P 7245 -4.18687286725483,4.18687286725483,5.2350795389254, 4771P 7246 -5.2350795389254,6.28328621059597,6.28328621059597, 4771P 7247 -6.28328621059597,1.,1.,0.865773013439831,0.865773013439831,1., 4771P 7248 -1.,0.865773013439831,0.865773013439831,1.,1.,0.865773013439831, 4771P 7249 -0.865773013439831,1.,1.,60.6806188225967,-118.698656211056, 4771P 7250 -8.73625,60.6806188225967,-118.698656211056,7.118125, 4771P 7251 -60.679393790223,-117.889349843306,8.73625,60.679393790223, 4771P 7252 --117.889349843306,7.118125,61.3800702057312,-117.484342610857, 4771P 7253 -8.73625,61.3800702057312,-117.484342610857,7.118125, 4771P 7254 -62.0807466212394,-117.079335378408,8.73625,62.0807466212394, 4771P 7255 --117.079335378408,7.118125,62.7814230367476,-117.484342610857, 4771P 7256 -8.73625,62.7814230367476,-117.484342610857,7.118125, 4771P 7257 -63.4820994522559,-117.889349843306,8.73625,63.4820994522559, 4771P 7258 --117.889349843306,7.118125,63.4808744198821,-118.698656211056, 4771P 7259 -8.73625,63.4808744198821,-118.698656211056,7.118125, 4771P 7260 --1.14300941237118D-16,1.07865694595434,3.13866619558426, 4771P 7261 -6.28328621059597; 4771P 7262 -128,1,6,1,2,0,0,0,0,0,-1.14300941237119D-16, 4773P 7263 --1.14300941237119D-16,1.07865694595435,1.07865694595435, 4773P 7264 -3.13866619559326,3.13866619559326,3.13866619559326, 4773P 7265 -4.18687286725781,4.18687286725781,5.23507953892236, 4773P 7266 -5.23507953892236,6.28328621058691,6.28328621058691, 4773P 7267 -6.28328621058691,1.,1.,0.865773013441338,0.865773013441338,1., 4773P 7268 -1.,0.865773013441338,0.865773013441338,1.,1.,0.865773013441338, 4773P 7269 -0.865773013441338,1.,1.,63.4808744198821,-118.698656211056, 4773P 7270 -8.73625,63.4808744198821,-118.698656211056,7.118125, 4773P 7271 -63.4820994522485,-119.507962578801,8.73625,63.4820994522485, 4773P 7272 --119.507962578801,7.118125,62.781423036744,-119.912969811245, 4773P 7273 -8.73625,62.781423036744,-119.912969811245,7.118125, 4773P 7274 -62.0807466212394,-120.317977043689,8.73625,62.0807466212394, 4773P 7275 --120.317977043689,7.118125,61.3800702057349,-119.912969811245, 4773P 7276 -8.73625,61.3800702057349,-119.912969811245,7.118125, 4773P 7277 -60.6793937902303,-119.507962578801,8.73625,60.6793937902303, 4773P 7278 --119.507962578801,7.118125,60.6806188225967,-118.698656211056, 4773P 7279 -8.73625,60.6806188225967,-118.698656211056,7.118125, 4773P 7280 --1.14300941237119D-16,1.07865694595435,3.13866619559326, 4773P 7281 -6.28328621058691; 4773P 7282 -128,1,6,1,2,0,0,0,0,0,-1.14300985890877D-16, 4775P 7283 --1.14300985890877D-16,1.078657337397,1.078657337397, 4775P 7284 -3.13925814733601,3.13925814733601,3.13925814733601, 4775P 7285 -4.18726069831867,4.18726069831867,5.23526324930132, 4775P 7286 -5.23526324930132,6.28326580028397,6.28326580028397, 4775P 7287 -6.28326580028397,1.,1.,0.865824083692633,0.865824083692633,1., 4775P 7288 -1.,0.865824083692633,0.865824083692633,1.,1.,0.865824083692633, 4775P 7289 -0.865824083692633,1.,1.,58.1075511659013,-62.1212017504367, 4775P 7290 -8.73625,58.1075511659013,-62.1212017504367,7.118125, 4775P 7291 -58.1065741584055,-61.3120859901078,8.73625,58.1065741584055, 4775P 7292 --61.3120859901078,7.118125,58.8071265809156,-60.9072458099485, 4775P 7293 -8.73625,58.8071265809156,-60.9072458099485,7.118125, 4775P 7294 -59.5076790034257,-60.5024056297891,8.73625,59.5076790034257, 4775P 7295 --60.5024056297891,7.118125,60.2082314259358,-60.9072458099485, 4775P 7296 -8.73625,60.2082314259358,-60.9072458099485,7.118125, 4775P 7297 -60.9087838484459,-61.3120859901078,8.73625,60.9087838484459, 4775P 7298 --61.3120859901078,7.118125,60.9078068409501,-62.1212017504367, 4775P 7299 -8.73625,60.9078068409501,-62.1212017504367,7.118125, 4775P 7300 --1.14300985890877D-16,1.078657337397,3.13925814733601, 4775P 7301 -6.28326580028397; 4775P 7302 -128,1,6,1,2,0,0,0,0,0,-1.14300985890879D-16, 4777P 7303 --1.14300985890879D-16,1.07865733739701,1.07865733739701, 4777P 7304 -3.13925814734738,3.13925814734738,3.13925814734738, 4777P 7305 -4.18726069832246,4.18726069832246,5.23526324929753, 4777P 7306 -5.23526324929753,6.2832658002726,6.2832658002726, 4777P 7307 -6.2832658002726,1.,1.,0.865824083694529,0.865824083694529,1.,1., 4777P 7308 -0.865824083694529,0.865824083694529,1.,1.,0.865824083694529, 4777P 7309 -0.865824083694529,1.,1.,60.9078068409501,-62.1212017504367, 4777P 7310 -8.73625,60.9078068409501,-62.1212017504367,7.118125, 4777P 7311 -60.9087838484367,-62.9303175107585,8.73625,60.9087838484367, 4777P 7312 --62.9303175107585,7.118125,60.2082314259312,-63.3351576909116, 4777P 7313 -8.73625,60.2082314259312,-63.3351576909116,7.118125, 4777P 7314 -59.5076790034257,-63.7399978710648,8.73625,59.5076790034257, 4777P 7315 --63.7399978710648,7.118125,58.8071265809202,-63.3351576909116, 4777P 7316 -8.73625,58.8071265809202,-63.3351576909116,7.118125, 4777P 7317 -58.1065741584147,-62.9303175107585,8.73625,58.1065741584147, 4777P 7318 --62.9303175107585,7.118125,58.1075511659013,-62.1212017504367, 4777P 7319 -8.73625,58.1075511659013,-62.1212017504367,7.118125, 4777P 7320 --1.14300985890879D-16,1.07865733739701,3.13925814734738, 4777P 7321 -6.2832658002726; 4777P 7322 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4779P 7323 -1.29891011810403,1.29891011810403,-0.00100000000000011, 4779P 7324 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 4779P 7325 --121.223878110647,8.74703749999999,140.796081395161, 4779P 7326 --121.223895558101,8.74703749999999,154.818861794198, 4779P 7327 --121.223878110647,7.10733749999999,140.796081395161, 4779P 7328 --121.223895558101,7.10733749999999,-0.00100000000000002, 4779P 7329 -1.29891011810403,-0.00100000000000011,0.151; 4779P 7330 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4781P 7331 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4781P 7332 -1.,1.,1.,1.,154.808074294198,-121.832767420061,8.74703749999999, 4781P 7333 -154.808074294198,-121.213090624069,8.74703749999999, 4781P 7334 -154.808074294198,-121.832767420061,7.10733749999999, 4781P 7335 -154.808074294198,-121.213090624069,7.10733749999999, 4781P 7336 --0.00100000000000178,0.0564439671834306,-0.001,0.151; 4781P 7337 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4783P 7338 -0.0750926997042853,0.0750926997042853,-0.001,-0.001,0.151,0.151, 4783P 7339 -1.,1.,1.,1.,155.618136792065,-121.82199757579,8.74703749999999, 4783P 7340 -154.7972867942,-121.821979684942,8.74703749999999, 4783P 7341 -155.618136792065,-121.82199757579,7.10733749999999, 4783P 7342 -154.7972867942,-121.821979684942,7.10733749999999, 4783P 7343 --0.00100000000000002,0.0750926997042853,-0.001,0.151; 4783P 7344 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4785P 7345 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4785P 7346 -155.607349292068,-134.634981929548,8.74703749999999, 4785P 7347 -155.607349292068,-121.81120984067,8.74703749999999, 4785P 7348 -155.607349292068,-134.634981929548,7.10733749999999, 4785P 7349 -155.607349292068,-121.81120984067,7.10733749999999,-0.001, 4785P 7350 -1.1877621866862,-0.001,0.151; 4785P 7351 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4787P 7352 -0.0750926997042836,0.0750926997042836,-0.00100000000000001, 4787P 7353 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 4787P 7354 --134.624176773819,8.74703749999999,155.618136792065, 4787P 7355 --134.624194664667,8.74703749999999,154.7972867942, 4787P 7356 --134.624176773819,7.10733749999999,155.618136792065, 4787P 7357 --134.624194664667,7.10733749999999,-0.00100000000000178, 4787P 7358 -0.0750926997042836,-0.00100000000000001,0.151; 4787P 7359 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4789P 7360 -0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4789P 7361 -154.808074294198,-135.234442533103,8.74703749999999, 4789P 7362 -154.808074294198,-134.613389508938,8.74703749999999, 4789P 7363 -154.808074294198,-135.234442533103,7.10733749999999, 4789P 7364 -154.808074294198,-134.613389508938,7.10733749999999,-0.001, 4789P 7365 -0.056571543375649,-0.001,0.151; 4789P 7366 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 4791P 7367 -1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4791P 7368 -140.796085750314,-135.223655033103,8.74703749999999, 4791P 7369 -154.818861794198,-135.223655033103,8.74703749999999, 4791P 7370 -140.796085750314,-135.223655033103,7.10733749999999, 4791P 7371 -154.818861794198,-135.223655033103,7.10733749999999,-0.001, 4791P 7372 -1.2989097143809,-0.001,0.151; 4791P 7373 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433771185, 4793P 7374 -0.0565715433771185,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4793P 7375 -140.806868816791,-134.613389508938,8.74703749999999, 4793P 7376 -140.806873328684,-135.234442533103,8.74703749999999, 4793P 7377 -140.806868816791,-134.613389508938,7.10733749999999, 4793P 7378 -140.806873328684,-135.234442533103,7.10733749999999,-0.001, 4793P 7379 -0.0565715433771185,-0.001,0.151; 4793P 7380 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 4795P 7381 -0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 4795P 7382 -0.151,0.151,1.,1.,1.,1.,139.996863014273,-134.624177008938, 4795P 7383 -8.74703749999999,140.817656395161,-134.624177008938, 4795P 7384 -8.74703749999999,139.996863014273,-134.624177008938, 4795P 7385 -7.10733749999999,140.817656395161,-134.624177008938, 4795P 7386 -7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 4795P 7387 -0.151; 4795P 7388 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18776218668627, 4797P 7389 -1.18776218668627,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4797P 7390 -140.007654873095,-121.811192420061,8.74703749999999, 4797P 7391 -140.007650510603,-134.634964508938,8.74703749999999, 4797P 7392 -140.007654873095,-121.811192420061,7.10733749999999, 4797P 7393 -140.007650510603,-134.634964508938,7.10733749999999,-0.001, 4797P 7394 -1.18776218668627,-0.001,0.151; 4797P 7395 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4799P 7396 -0.075087451316632,0.075087451316632,-0.001,-0.001,0.151,0.151, 4799P 7397 -1.,1.,1.,1.,140.817660750311,-121.821997575806,8.74703749999999, 4799P 7398 -139.996867369428,-121.821979684925,8.74703749999999, 4799P 7399 -140.817660750311,-121.821997575806,7.10733749999999, 4799P 7400 -139.996867369428,-121.821979684925,7.10733749999999, 4799P 7401 --0.00100000000000002,0.075087451316632,-0.001,0.151; 4799P 7402 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671849002, 4801P 7403 -0.0564439671849002,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4801P 7404 -140.806868816611,-121.21310804468,8.74703749999999, 4801P 7405 -140.806873328864,-121.83278484067,8.74703749999999, 4801P 7406 -140.806868816611,-121.21310804468,7.10733749999999, 4801P 7407 -140.806873328864,-121.83278484067,7.10733749999999,-0.001, 4801P 7408 -0.0564439671849002,-0.001,0.151; 4801P 7409 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4803P 7410 -1.29888872083129,1.29888872083129,-0.00100000000000009, 4803P 7411 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 4803P 7412 --121.223878110647,8.74703749999999,121.745908566765, 4803P 7413 --121.223895558102,8.74703749999999,135.768458142722, 4803P 7414 --121.223878110647,7.10733749999999,121.745908566765, 4803P 7415 --121.223895558102,7.10733749999999,-0.00100000000000002, 4803P 7416 -1.29888872083129,-0.00100000000000009,0.151; 4803P 7417 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4805P 7418 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4805P 7419 -1.,1.,1.,1.,135.757670642722,-121.832767420061,8.74703749999999, 4805P 7420 -135.757670642722,-121.213090624069,8.74703749999999, 4805P 7421 -135.757670642722,-121.832767420061,7.10733749999999, 4805P 7422 -135.757670642722,-121.213090624069,7.10733749999999, 4805P 7423 --0.00100000000000178,0.0564439671834306,-0.001,0.151; 4805P 7424 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4807P 7425 -0.0750967369255578,0.0750967369255578,-0.001,-0.001,0.151,0.151, 4807P 7426 -1.,1.,1.,1.,136.567776692114,-121.821997575777,8.74703749999999, 4807P 7427 -135.746883142724,-121.821979684954,8.74703749999999, 4807P 7428 -136.567776692114,-121.821997575777,7.10733749999999, 4807P 7429 -135.746883142724,-121.821979684954,7.10733749999999, 4807P 7430 --0.00100000000000002,0.0750967369255578,-0.001,0.151; 4807P 7431 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4809P 7432 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4809P 7433 -136.556989192117,-134.634981929548,8.74703749999999, 4809P 7434 -136.556989192117,-121.81120984067,8.74703749999999, 4809P 7435 -136.556989192117,-134.634981929548,7.10733749999999, 4809P 7436 -136.556989192117,-121.81120984067,7.10733749999999,-0.001, 4809P 7437 -1.1877621866862,-0.001,0.151; 4809P 7438 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369255578, 4811P 7439 -0.0750967369255578,-0.00100000000000001,-0.00100000000000001, 4811P 7440 -0.151,0.151,1.,1.,1.,1.,135.746883142724,-134.624176773832, 4811P 7441 -8.74703749999999,136.567776692114,-134.624194664654, 4811P 7442 -8.74703749999999,135.746883142724,-134.624176773832, 4811P 7443 -7.10733749999999,136.567776692114,-134.624194664654, 4811P 7444 -7.10733749999999,-0.001,0.0750967369255578,-0.00100000000000001, 4811P 7445 -0.151; 4811P 7446 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4813P 7447 -0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4813P 7448 -135.757670642722,-135.234442533103,8.74703749999999, 4813P 7449 -135.757670642722,-134.613389508938,8.74703749999999, 4813P 7450 -135.757670642722,-135.234442533103,7.10733749999999, 4813P 7451 -135.757670642722,-134.613389508938,7.10733749999999,-0.001, 4813P 7452 -0.056571543375649,-0.001,0.151; 4813P 7453 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 4815P 7454 -1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4815P 7455 -121.745908566765,-135.223655033103,8.74703749999999, 4815P 7456 -135.768458142722,-135.223655033103,8.74703749999999, 4815P 7457 -121.745908566765,-135.223655033103,7.10733749999999, 4815P 7458 -135.768458142722,-135.223655033103,7.10733749999999,-0.001, 4815P 7459 -1.29888872083028,-0.001,0.151; 4815P 7460 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4817P 7461 -0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4817P 7462 -121.756696066765,-134.613389508938,8.74703749999999, 4817P 7463 -121.756696066765,-135.234442533103,8.74703749999999, 4817P 7464 -121.756696066765,-134.613389508938,7.10733749999999, 4817P 7465 -121.756696066765,-135.234442533103,7.10733749999999,-0.001, 4817P 7466 -0.0565715433756525,-0.001,0.151; 4817P 7467 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 4819P 7468 -0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 4819P 7469 -0.151,0.151,1.,1.,1.,1.,120.946494204017,-134.624177008938, 4819P 7470 -8.74703749999999,121.767483566765,-134.624177008938, 4819P 7471 -8.74703749999999,120.946494204017,-134.624177008938, 4819P 7472 -7.10733749999999,121.767483566765,-134.624177008938, 4819P 7473 -7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 4819P 7474 -0.151; 4819P 7475 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4821P 7476 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4821P 7477 -120.957281704017,-121.811192420061,8.74703749999999, 4821P 7478 -120.957281704017,-134.634964508938,8.74703749999999, 4821P 7479 -120.957281704017,-121.811192420061,7.10733749999999, 4821P 7480 -120.957281704017,-134.634964508938,7.10733749999999,-0.001, 4821P 7481 -1.1877621866862,-0.001,0.151; 4821P 7482 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4823P 7483 -0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 4823P 7484 -1.,1.,1.,1.,121.767483566763,-121.821997575749,8.74703749999999, 4823P 7485 -120.946494204019,-121.821979684983,8.74703749999999, 4823P 7486 -121.767483566763,-121.821997575749,7.10733749999999, 4823P 7487 -120.946494204019,-121.821979684983,7.10733749999999, 4823P 7488 --0.00100000000000002,0.0751056188123538,-0.001,0.151; 4823P 7489 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4825P 7490 -0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4825P 7491 -121.756696066765,-121.213108044679,8.74703749999999, 4825P 7492 -121.756696066765,-121.83278484067,8.74703749999999, 4825P 7493 -121.756696066765,-121.213108044679,7.10733749999999, 4825P 7494 -121.756696066765,-121.83278484067,7.10733749999999,-0.001, 4825P 7495 -0.0564439671834303,-0.001,0.151; 4825P 7496 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4827P 7497 -1.29888831710916,1.29888831710916,-0.00100000000000009, 4827P 7498 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 4827P 7499 --121.223878110647,8.74703749999999,102.695539756509, 4827P 7500 --121.223895558102,8.7470375,116.718084977313,-121.223878110647, 4827P 7501 -7.10733749999999,102.695539756509,-121.223895558102, 4827P 7502 -7.10733749999999,-0.00100000000000002,1.29888831710916, 4827P 7503 --0.00100000000000009,0.151; 4827P 7504 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4829P 7505 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4829P 7506 -1.,1.,1.,1.,116.707297477313,-121.832767420061,8.74703749999999, 4829P 7507 -116.707297477313,-121.213090624069,8.74703749999999, 4829P 7508 -116.707297477313,-121.832767420061,7.10733749999999, 4829P 7509 -116.707297477313,-121.213090624069,7.10733749999999, 4829P 7510 --0.00100000000000178,0.0564439671834306,-0.001,0.151; 4829P 7511 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4831P 7512 -0.0751056188123572,0.0751056188123572,-0.001,-0.001,0.151,0.151, 4831P 7513 -1.,1.,1.,1.,117.517499340059,-121.821997575749,8.74703749999999, 4831P 7514 -116.696509977316,-121.821979684983,8.74703749999999, 4831P 7515 -117.517499340059,-121.821997575749,7.10733749999999, 4831P 7516 -116.696509977316,-121.821979684983,7.10733749999999, 4831P 7517 --0.00100000000000002,0.0751056188123572,-0.001,0.151; 4831P 7518 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18776218668648, 4833P 7519 -1.18776218668648,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4833P 7520 -117.506720557706,-134.634981929548,8.74703749999999, 4833P 7521 -117.506711832722,-121.81120984067,8.74703749999999, 4833P 7522 -117.506720557706,-134.634981929548,7.10733749999999, 4833P 7523 -117.506711832722,-121.81120984067,7.10733749999999,-0.001, 4833P 7524 -1.18776218668648,-0.001,0.151; 4833P 7525 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123538, 4835P 7526 -0.0751056188123538,-0.00100000000000001,-0.00100000000000001, 4835P 7527 -0.151,0.151,1.,1.,1.,1.,116.696518687621,-134.62417677386, 4835P 7528 -8.74703749999999,117.517508050364,-134.624194664626, 4835P 7529 -8.74703749999999,116.696518687621,-134.62417677386, 4835P 7530 -7.10733749999999,117.517508050364,-134.624194664626, 4835P 7531 -7.10733749999999,-0.001,0.0751056188123538,-0.00100000000000001, 4835P 7532 -0.151; 4835P 7533 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433815147, 4837P 7534 -0.0565715433815147,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4837P 7535 -116.707297320573,-135.234442533102,8.74703749999999, 4837P 7536 -116.707306344358,-134.613389508939,8.74703749999999, 4837P 7537 -116.707297320573,-135.234442533102,7.10733749999999, 4837P 7538 -116.707306344358,-134.613389508939,7.10733749999999,-0.001, 4837P 7539 -0.0565715433815147,-0.001,0.151; 4837P 7540 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4839P 7541 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4839P 7542 -102.695539756509,-135.223655033103,8.7470375,116.718084977313, 4839P 7543 --135.223655033103,8.74703749999999,102.695539756509, 4839P 7544 --135.223655033103,7.10733749999999,116.718084977313, 4839P 7545 --135.223655033103,7.10733749999999,-0.001,1.29888831710816, 4839P 7546 --0.001,0.151; 4839P 7547 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4841P 7548 -0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4841P 7549 -102.706327256509,-134.613389508938,8.7470375,102.706327256509, 4841P 7550 --135.234442533103,8.7470375,102.706327256509,-134.613389508938, 4841P 7551 -7.10733749999999,102.706327256509,-135.234442533103, 4841P 7552 -7.10733749999999,-0.001,0.0565715433756525,-0.001,0.151; 4841P 7553 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4843P 7554 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4843P 7555 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 4843P 7556 --134.624177008938,8.7470375,102.717114756509,-134.624177008938, 4843P 7557 -8.7470375,101.89612539376,-134.624177008938,7.10733749999999, 4843P 7558 -102.717114756509,-134.624177008938,7.10733749999999, 4843P 7559 --0.00100000000000178,0.0751056187947571,-0.00100000000000001, 4843P 7560 -0.151; 4843P 7561 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4845P 7562 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4845P 7563 -101.90691289376,-121.811192420061,8.7470375,101.90691289376, 4845P 7564 --134.634964508938,8.7470375,101.90691289376,-121.811192420061, 4845P 7565 -7.10733749999999,101.90691289376,-134.634964508938, 4845P 7566 -7.10733749999999,-0.001,1.1877621866862,-0.001,0.151; 4845P 7567 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4847P 7568 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4847P 7569 -1.,1.,1.,1.,102.717114756506,-121.821997575749,8.7470375, 4847P 7570 -101.896125393763,-121.821979684983,8.7470375,102.717114756506, 4847P 7571 --121.821997575749,7.10733749999999,101.896125393763, 4847P 7572 --121.821979684983,7.10733749999999,-0.00100000000000178, 4847P 7573 -0.0751056188123521,-0.001,0.151; 4847P 7574 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4849P 7575 -0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4849P 7576 -102.706327256509,-121.213108044679,8.7470375,102.706327256509, 4849P 7577 --121.83278484067,8.7470375,102.706327256509,-121.213108044679, 4849P 7578 -7.10733749999999,102.706327256509,-121.83278484067, 4849P 7579 -7.10733749999999,-0.001,0.0564439671834303,-0.001,0.151; 4849P 7580 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4851P 7581 -1.29888831710916,1.29888831710916,-0.00100000000000009, 4851P 7582 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 4851P 7583 --121.223878110647,8.7470375,83.6451709462526,-121.223895558102, 4851P 7584 -8.7470375,97.6677161670568,-121.223878110647,7.10733749999999, 4851P 7585 -83.6451709462526,-121.223895558102,7.1073375, 4851P 7586 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 4851P 7587 -0.151; 4851P 7588 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4853P 7589 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4853P 7590 -1.,1.,1.,1.,97.6569286670568,-121.832767420061,8.7470375, 4853P 7591 -97.6569286670568,-121.213090624069,8.7470375,97.6569286670568, 4853P 7592 --121.832767420061,7.10733749999999,97.6569286670568, 4853P 7593 --121.213090624069,7.10733749999999,-0.00100000000000178, 4853P 7594 -0.0564439671834306,-0.001,0.151; 4853P 7595 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4855P 7596 -0.0751056188123537,0.0751056188123537,-0.001,-0.001,0.151,0.151, 4855P 7597 -1.,1.,1.,1.,98.4671305298027,-121.821997575749,8.7470375, 4855P 7598 -97.6461411670594,-121.821979684983,8.7470375,98.4671305298027, 4855P 7599 --121.821997575749,7.10733749999999,97.6461411670594, 4855P 7600 --121.821979684983,7.10733749999999,-0.00100000000000178, 4855P 7601 -0.0751056188123537,-0.001,0.151; 4855P 7602 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4857P 7603 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4857P 7604 -98.4563430298053,-134.634981929548,8.7470375,98.4563430298053, 4857P 7605 --121.81120984067,8.7470375,98.4563430298053,-134.634981929548, 4857P 7606 -7.10733749999999,98.4563430298053,-121.81120984067, 4857P 7607 -7.10733749999999,-0.001,1.1877621866862,-0.001,0.151; 4857P 7608 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4859P 7609 -0.0751056188123537,0.0751056188123537,-0.00100000000000001, 4859P 7610 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 4859P 7611 --134.62417677386,8.7470375,98.4671305298027,-134.624194664626, 4859P 7612 -8.7470375,97.6461411670594,-134.62417677386,7.10733749999999, 4859P 7613 -98.4671305298027,-134.624194664626,7.10733749999999, 4859P 7614 --0.00100000000000178,0.0751056188123537,-0.00100000000000001, 4859P 7615 -0.151; 4859P 7616 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4861P 7617 -0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4861P 7618 -97.6569286670568,-135.234442533103,8.7470375,97.6569286670568, 4861P 7619 --134.613389508938,8.7470375,97.6569286670568,-135.234442533103, 4861P 7620 -7.10733749999999,97.6569286670568,-134.613389508938, 4861P 7621 -7.10733749999999,-0.001,0.056571543375649,-0.001,0.151; 4861P 7622 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 4863P 7623 -1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4863P 7624 -83.6451622359477,-135.223655033103,8.7470375,97.6677161670568, 4863P 7625 --135.223655033103,8.7470375,83.6451622359477,-135.223655033103, 4863P 7626 -7.1073375,97.6677161670569,-135.223655033103,7.1073375,-0.001, 4863P 7627 -1.29888912455241,-0.001,0.151; 4863P 7628 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543381518, 4865P 7629 -0.056571543381518,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4865P 7630 -83.655958602993,-134.613389508939,8.7470375,83.6559495792073, 4865P 7631 --135.234442533102,8.7470375,83.655958602993,-134.613389508939, 4865P 7632 -7.1073375,83.6559495792073,-135.234442533102,7.1073375,-0.001, 4865P 7633 -0.056571543381518,-0.001,0.151; 4865P 7634 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 4867P 7635 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4867P 7636 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 4867P 7637 --134.624177008938,8.7470375,83.6667459462526,-134.624177008938, 4867P 7638 -8.7470375,82.8457565835041,-134.624177008938,7.1073375, 4867P 7639 -83.6667459462526,-134.624177008938,7.1073375, 4867P 7640 --0.00100000000000165,0.0751056187947571,-0.00100000000000001, 4867P 7641 -0.151; 4867P 7642 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4869P 7643 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4869P 7644 -82.8565440835042,-121.811192420061,8.7470375,82.8565440835042, 4869P 7645 --134.634964508938,8.7470375,82.8565440835042,-121.811192420061, 4869P 7646 -7.1073375,82.8565440835042,-134.634964508938,7.1073375,-0.001, 4869P 7647 -1.1877621866862,-0.001,0.151; 4869P 7648 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4871P 7649 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4871P 7650 -1.,1.,1.,1.,83.66674594625,-121.821997575749,8.7470375, 4871P 7651 -82.8457565835067,-121.821979684983,8.7470375,83.66674594625, 4871P 7652 --121.821997575749,7.1073375,82.8457565835067,-121.821979684983, 4871P 7653 -7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 4871P 7654 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4873P 7655 -0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4873P 7656 -83.6559584462526,-121.213108044679,8.7470375,83.6559584462526, 4873P 7657 --121.83278484067,8.7470375,83.6559584462526,-121.213108044679, 4873P 7658 -7.1073375,83.6559584462526,-121.83278484067,7.1073375,-0.001, 4873P 7659 -0.0564439671834303,-0.001,0.151; 4873P 7660 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4875P 7661 -1.29888831710916,1.29888831710916,-0.00100000000000009, 4875P 7662 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 4875P 7663 --121.223878110647,8.7470375,64.5948021359963,-121.223895558102, 4875P 7664 -8.7470375,78.6173473568005,-121.223878110647,7.1073375, 4875P 7665 -64.5948021359963,-121.223895558102,7.1073375, 4875P 7666 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 4875P 7667 -0.151; 4875P 7668 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4877P 7669 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4877P 7670 -1.,1.,1.,1.,78.6065598568005,-121.832767420061,8.7470375, 4877P 7671 -78.6065598568005,-121.213090624069,8.7470375,78.6065598568005, 4877P 7672 --121.832767420061,7.1073375,78.6065598568005,-121.213090624069, 4877P 7673 -7.1073375,-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4877P 7674 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4879P 7675 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4879P 7676 -1.,1.,1.,1.,79.4167617195464,-121.821997575749,8.7470375, 4879P 7677 -78.5957723568031,-121.821979684983,8.7470375,79.4167617195464, 4879P 7678 --121.821997575749,7.1073375,78.5957723568031,-121.821979684983, 4879P 7679 -7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 4879P 7680 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4881P 7681 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4881P 7682 -79.4059742195489,-134.634981929548,8.7470375,79.4059742195489, 4881P 7683 --121.81120984067,8.7470375,79.4059742195489,-134.634981929548, 4881P 7684 -7.1073375,79.4059742195489,-121.81120984067,7.1073375,-0.001, 4881P 7685 -1.1877621866862,-0.001,0.151; 4881P 7686 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4883P 7687 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 4883P 7688 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 4883P 7689 --134.62417677386,8.7470375,79.4167617195464,-134.624194664626, 4883P 7690 -8.7470375,78.595772356803,-134.62417677386,7.1073375, 4883P 7691 -79.4167617195464,-134.624194664626,7.1073375, 4883P 7692 --0.00100000000000266,0.0751056188123522,-0.00100000000000001, 4883P 7693 -0.151; 4883P 7694 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4885P 7695 -0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4885P 7696 -78.6065598568005,-135.234442533103,8.7470375,78.6065598568005, 4885P 7697 --134.613389508938,8.7470375,78.6065598568005,-135.234442533103, 4885P 7698 -7.1073375,78.6065598568005,-134.613389508938,7.1073375,-0.001, 4885P 7699 -0.056571543375649,-0.001,0.151; 4885P 7700 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4887P 7701 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4887P 7702 -64.5948021359963,-135.223655033103,8.7470375,78.6173473568005, 4887P 7703 --135.223655033103,8.7470375,64.5948021359963,-135.223655033103, 4887P 7704 -7.1073375,78.6173473568005,-135.223655033103,7.1073375,-0.001, 4887P 7705 -1.29888831710816,-0.001,0.151; 4887P 7706 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4889P 7707 -0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4889P 7708 -64.6055896359963,-134.613389508938,8.7470375,64.6055896359963, 4889P 7709 --135.234442533103,8.7470375,64.6055896359963,-134.613389508938, 4889P 7710 -7.1073375,64.6055896359963,-135.234442533103,7.1073375,-0.001, 4889P 7711 -0.0565715433756525,-0.001,0.151; 4889P 7712 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 4891P 7713 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4891P 7714 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 4891P 7715 --134.624177008938,8.7470375,64.6163771359963,-134.624177008938, 4891P 7716 -8.7470375,63.7953877732478,-134.624177008938,7.1073375, 4891P 7717 -64.6163771359963,-134.624177008938,7.1073375, 4891P 7718 --0.00100000000000247,0.0751056187947571,-0.00100000000000001, 4891P 7719 -0.151; 4891P 7720 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4893P 7721 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4893P 7722 -63.8061752732478,-121.811192420061,8.7470375,63.8061752732478, 4893P 7723 --134.634964508938,8.7470375,63.8061752732478,-121.811192420061, 4893P 7724 -7.1073375,63.8061752732478,-134.634964508938,7.1073375,-0.001, 4893P 7725 -1.1877621866862,-0.001,0.151; 4893P 7726 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4895P 7727 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4895P 7728 -1.,1.,1.,1.,64.6163771359937,-121.821997575749,8.7470375, 4895P 7729 -63.7953877732504,-121.821979684983,8.7470375,64.6163771359937, 4895P 7730 --121.821997575749,7.1073375,63.7953877732504,-121.821979684983, 4895P 7731 -7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 4895P 7732 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4897P 7733 -0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4897P 7734 -64.6055896359963,-121.213108044679,8.7470375,64.6055896359963, 4897P 7735 --121.83278484067,8.7470375,64.6055896359963,-121.213108044679, 4897P 7736 -7.1073375,64.6055896359963,-121.83278484067,7.1073375,-0.001, 4897P 7737 -0.0564439671834303,-0.001,0.151; 4897P 7738 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4899P 7739 -1.29879546101989,1.29879546101989,-0.001,-0.001,0.151,0.151,1., 4899P 7740 -1.,1.,1.,59.5669785465442,-121.223878110646,8.7470375, 4899P 7741 -45.545435010803,-121.223895558102,8.7470375,59.5669785465442, 4899P 7742 --121.223878110646,7.1073375,45.545435010803,-121.223895558102, 4899P 7743 -7.1073375,-0.00100000000000002,1.29879546101989,-0.001,0.151; 4899P 7744 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4901P 7745 -0.0564439671834306,0.0564439671834306,-0.001,-0.001,0.151,0.151, 4901P 7746 -1.,1.,1.,1.,59.5561910465442,-121.832767420061,8.7470375, 4901P 7747 -59.5561910465442,-121.213090624069,8.7470375,59.5561910465442, 4901P 7748 --121.832767420061,7.1073375,59.5561910465442,-121.213090624069, 4901P 7749 -7.1073375,-0.00100000000000178,0.0564439671834306,-0.001,0.151; 4901P 7750 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4903P 7751 -0.0751056188123521,0.0751056188123521,-0.00100000000000011, 4903P 7752 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092901, 4903P 7753 --121.821997575749,8.7470375,59.5454035465468,-121.821979684983, 4903P 7754 -8.7470375,60.3663929092901,-121.821997575749,7.1073375, 4903P 7755 -59.5454035465468,-121.821979684983,7.1073375, 4903P 7756 --0.00100000000000266,0.0751056188123521,-0.00100000000000011, 4903P 7757 -0.151; 4903P 7758 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4905P 7759 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4905P 7760 -60.3556054092926,-134.634981929548,8.7470375,60.3556054092926, 4905P 7761 --121.81120984067,8.7470375,60.3556054092926,-134.634981929548, 4905P 7762 -7.1073375,60.3556054092926,-121.81120984067,7.1073375,-0.001, 4905P 7763 -1.1877621866862,-0.001,0.151; 4905P 7764 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 4907P 7765 -0.0751056188123522,0.0751056188123522,-0.001,-0.001,0.151,0.151, 4907P 7766 -1.,1.,1.,1.,59.5454035465467,-134.62417677386,8.7470375, 4907P 7767 -60.3663929092901,-134.624194664626,8.7470375,59.5454035465467, 4907P 7768 --134.62417677386,7.1073375,60.3663929092901,-134.624194664626, 4907P 7769 -7.1073375,-0.00100000000000266,0.0751056188123522,-0.001,0.151; 4907P 7770 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.056571543375649, 4909P 7771 -0.056571543375649,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4909P 7772 -59.5561910465442,-135.234442533103,8.7470375,59.5561910465442, 4909P 7773 --134.613389508938,8.7470375,59.5561910465442,-135.234442533103, 4909P 7774 -7.1073375,59.5561910465442,-134.613389508938,7.1073375,-0.001, 4909P 7775 -0.056571543375649,-0.001,0.151; 4909P 7776 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 4911P 7777 -1.29879546101888,-0.00100000000000011,-0.00100000000000011, 4911P 7778 -0.151,0.151,1.,1.,1.,1.,45.545435010803,-135.223655033103, 4911P 7779 -8.7470375,59.5669785465442,-135.223655033103,8.7470375, 4911P 7780 -45.545435010803,-135.223655033103,7.1073375,59.5669785465442, 4911P 7781 --135.223655033103,7.1073375,-0.001,1.29879546101888, 4911P 7782 --0.00100000000000011,0.151; 4911P 7783 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565715433756525, 4913P 7784 -0.0565715433756525,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4913P 7785 -45.556222510803,-134.613389508938,8.7470375,45.556222510803, 4913P 7786 --135.234442533103,8.7470375,45.556222510803,-134.613389508938, 4913P 7787 -7.1073375,45.556222510803,-135.234442533103,7.1073375,-0.001, 4913P 7788 -0.0565715433756525,-0.001,0.151; 4913P 7789 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 4915P 7790 -0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 4915P 7791 -0.151,0.151,1.,1.,1.,1.,44.7454109267118,-134.624177008938, 4915P 7792 -8.7470375,45.567010010803,-134.624177008938,8.7470375, 4915P 7793 -44.7454109267118,-134.624177008938,7.1073375,45.567010010803, 4915P 7794 --134.624177008938,7.1073375,-0.001,0.0751621398925796, 4915P 7795 --0.00100000000000001,0.151; 4915P 7796 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877621866862, 4917P 7797 -1.1877621866862,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4917P 7798 -44.7561984267118,-121.811192420061,8.7470375,44.7561984267118, 4917P 7799 --134.634964508938,8.7470375,44.7561984267118,-121.811192420061, 4917P 7800 -7.1073375,44.7561984267118,-134.634964508938,7.1073375,-0.001, 4917P 7801 -1.1877621866862,-0.001,0.151; 4917P 7802 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4919P 7803 -0.0751621399101629,0.0751621399101629,-0.001,-0.001,0.151,0.151, 4919P 7804 -1.,1.,1.,1.,45.5670100108004,-121.821997575569,8.7470375, 4919P 7805 -44.7454109267143,-121.821979685162,8.7470375,45.5670100108004, 4919P 7806 --121.821997575569,7.1073375,44.7454109267143,-121.821979685162, 4919P 7807 -7.1073375,-0.00100000000000002,0.0751621399101629,-0.001,0.151; 4919P 7808 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0564439671834303, 4921P 7809 -0.0564439671834303,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4921P 7810 -45.556222510803,-121.213108044679,8.7470375,45.556222510803, 4921P 7811 --121.83278484067,8.7470375,45.556222510803,-121.213108044679, 4921P 7812 -7.1073375,45.556222510803,-121.83278484067,7.1073375,-0.001, 4921P 7813 -0.0564439671834303,-0.001,0.151; 4921P 7814 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4923P 7815 -1.29891011810403,1.29891011810403,-0.00100000000000011, 4923P 7816 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 4923P 7817 --102.173605113745,8.74703749999999,140.796081395161, 4923P 7818 --102.173622561199,8.74703749999999,154.818861794198, 4923P 7819 --102.173605113745,7.10733749999999,140.796081395161, 4923P 7820 --102.173622561199,7.10733749999999,-0.00100000000000002, 4923P 7821 -1.29891011810403,-0.00100000000000011,0.151; 4923P 7822 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4925P 7823 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4925P 7824 -1.,1.,1.,1.,154.808074294198,-102.783696445234,8.74703749999999, 4925P 7825 -154.808074294198,-102.162817627167,8.74703749999999, 4925P 7826 -154.808074294198,-102.783696445234,7.10733749999999, 4925P 7827 -154.808074294198,-102.162817627167,7.10733749999999, 4925P 7828 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 4925P 7829 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4927P 7830 -0.0750926997042859,0.0750926997042859,-0.001,-0.001,0.151,0.151, 4927P 7831 -1.,1.,1.,1.,155.618136792065,-102.772926600963,8.74703749999999, 4927P 7832 -154.7972867942,-102.772908710115,8.74703749999999, 4927P 7833 -155.618136792065,-102.772926600963,7.10733749999999, 4927P 7834 -154.7972867942,-102.772908710115,7.10733749999999, 4927P 7835 --0.00100000000000002,0.0750926997042859,-0.001,0.151; 4927P 7836 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4929P 7837 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4929P 7838 -155.607349292068,-115.584569567767,8.74703749999999, 4929P 7839 -155.607349292068,-102.762138865844,8.74703749999999, 4929P 7840 -155.607349292068,-115.584569567767,7.10733749999999, 4929P 7841 -155.607349292068,-102.762138865844,7.10733749999999,-0.001, 4929P 7842 -1.187637840271,-0.001,0.151; 4929P 7843 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4931P 7844 -0.0750926997042836,0.0750926997042836,-0.00100000000000001, 4931P 7845 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 4931P 7846 --115.573764412038,8.74703749999999,155.618136792065, 4931P 7847 --115.573782302886,8.74703749999999,154.7972867942, 4931P 7848 --115.573764412038,7.10733749999999,155.618136792065, 4931P 7849 --115.573782302886,7.10733749999999,-0.00100000000000178, 4931P 7850 -0.0750926997042836,-0.00100000000000001,0.151; 4931P 7851 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 4933P 7852 -0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4933P 7853 -154.808074294198,-116.184065012542,8.74703749999999, 4933P 7854 -154.808074294198,-115.562977147157,8.74703749999999, 4933P 7855 -154.808074294198,-116.184065012542,7.10733749999999, 4933P 7856 -154.808074294198,-115.562977147157,7.10733749999999,-0.001, 4933P 7857 -0.0565747731526666,-0.001,0.151; 4933P 7858 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 4935P 7859 -1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4935P 7860 -140.796085750314,-116.173277512542,8.74703749999999, 4935P 7861 -154.818861794198,-116.173277512542,8.74703749999999, 4935P 7862 -140.796085750314,-116.173277512542,7.10733749999999, 4935P 7863 -154.818861794198,-116.173277512542,7.10733749999999,-0.001, 4935P 7864 -1.2989097143809,-0.001,0.151; 4935P 7865 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4937P 7866 -0.0565747731541363,0.0565747731541363,-0.001,-0.001,0.151,0.151, 4937P 7867 -1.,1.,1.,1.,140.806868816796,-115.562977147158,8.74703749999999, 4937P 7868 -140.80687332868,-116.184065012541,8.74703749999999, 4937P 7869 -140.806868816796,-115.562977147158,7.10733749999999, 4937P 7870 -140.80687332868,-116.184065012541,7.10733749999999, 4937P 7871 --0.00100000000000178,0.0565747731541363,-0.001,0.151; 4937P 7872 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 4939P 7873 -0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 4939P 7874 -0.151,0.151,1.,1.,1.,1.,139.996863014273,-115.573764647157, 4939P 7875 -8.74703749999999,140.817656395161,-115.573764647157, 4939P 7876 -8.74703749999999,139.996863014273,-115.573764647157, 4939P 7877 -7.10733749999999,140.817656395161,-115.573764647157, 4939P 7878 -7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 4939P 7879 -0.151; 4939P 7880 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027106, 4941P 7881 -1.18763784027106,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4941P 7882 -140.007654873096,-102.762121445234,8.74703749999999, 4941P 7883 -140.007650510603,-115.584552147157,8.74703749999999, 4941P 7884 -140.007654873096,-102.762121445234,7.10733749999999, 4941P 7885 -140.007650510603,-115.584552147157,7.10733749999999,-0.001, 4941P 7886 -1.18763784027106,-0.001,0.151; 4941P 7887 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4943P 7888 -0.075087451316632,0.075087451316632,-0.001,-0.001,0.151,0.151, 4943P 7889 -1.,1.,1.,1.,140.817660750311,-102.772926600979,8.74703749999999, 4943P 7890 -139.996867369428,-102.772908710098,8.74703749999999, 4943P 7891 -140.817660750311,-102.772926600979,7.10733749999999, 4943P 7892 -139.996867369428,-102.772908710098,7.10733749999999, 4943P 7893 --0.00100000000000002,0.075087451316632,-0.001,0.151; 4943P 7894 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944920294, 4945P 7895 -0.0565553944920294,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4945P 7896 -140.806868816768,-102.162835047777,8.74703749999999, 4945P 7897 -140.806873328707,-102.783713865843,8.74703749999999, 4945P 7898 -140.806868816768,-102.162835047777,7.10733749999999, 4945P 7899 -140.806873328707,-102.783713865843,7.10733749999999,-0.001, 4945P 7900 -0.0565553944920294,-0.001,0.151; 4945P 7901 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4947P 7902 -1.29888872083129,1.29888872083129,-0.00100000000000009, 4947P 7903 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 4947P 7904 --102.173605113745,8.74703749999999,121.745908566765, 4947P 7905 --102.173622561199,8.74703749999999,135.768458142722, 4947P 7906 --102.173605113745,7.10733749999999,121.745908566765, 4947P 7907 --102.173622561199,7.10733749999999,-0.00100000000000002, 4947P 7908 -1.29888872083129,-0.00100000000000009,0.151; 4947P 7909 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.069153139750164, 4949P 7910 -0.069153139750164,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4949P 7911 -135.757670642722,-102.919594622222,8.74703749999999, 4949P 7912 -135.757670642722,-102.162817627167,8.74703749999999, 4949P 7913 -135.757670642722,-102.919594622222,7.10733749999999, 4949P 7914 -135.757670642722,-102.162817627167,7.10733749999999,-0.001, 4949P 7915 -0.069153139750164,-0.001,0.151; 4949P 7916 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4951P 7917 -0.0750967369079582,0.0750967369079582,-0.001,-0.001,0.151,0.151, 4951P 7918 -1.,1.,1.,1.,136.567776692117,-102.908807122222,8.74703749999999, 4951P 7919 -135.746883142722,-102.908807122222,8.74703749999999, 4951P 7920 -136.567776692117,-102.908807122222,7.10733749999999, 4951P 7921 -135.746883142722,-102.908807122222,7.10733749999999, 4951P 7922 --0.00100000000000002,0.0750967369079582,-0.001,0.151; 4951P 7923 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4953P 7924 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4953P 7925 -136.556989192117,-115.720450324145,8.74703749999999, 4953P 7926 -136.556989192117,-102.898019622222,8.74703749999999, 4953P 7927 -136.556989192117,-115.720450324145,7.10733749999999, 4953P 7928 -136.556989192117,-102.898019622222,7.10733749999999,-0.001, 4953P 7929 -1.187637840271,-0.001,0.151; 4953P 7930 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369079582, 4955P 7931 -0.0750967369079582,-0.00100000000000001,-0.00100000000000001, 4955P 7932 -0.151,0.151,1.,1.,1.,1.,135.746883142722,-115.709662824145, 4955P 7933 -8.74703749999999,136.567776692117,-115.709662824145, 4955P 7934 -8.74703749999999,135.746883142722,-115.709662824145, 4955P 7935 -7.10733749999999,136.567776692117,-115.709662824145, 4955P 7936 -7.10733749999999,-0.001,0.0750967369079582,-0.00100000000000001, 4955P 7937 -0.151; 4955P 7938 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0441191380818669, 4957P 7939 -0.0441191380818669,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4957P 7940 -135.757670642722,-116.185598026203,8.74703749999999, 4957P 7941 -135.757670642722,-115.698875324145,8.74703749999999, 4957P 7942 -135.757670642722,-116.185598026203,7.10733749999999, 4957P 7943 -135.757670642722,-115.698875324145,7.10733749999999,-0.001, 4957P 7944 -0.0441191380818669,-0.001,0.151; 4957P 7945 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 4959P 7946 -1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4959P 7947 -121.745908566765,-116.174810526203,8.74703749999999, 4959P 7948 -135.768458142722,-116.174810526203,8.74703749999999, 4959P 7949 -121.745908566765,-116.174810526203,7.10733749999999, 4959P 7950 -135.768458142722,-116.174810526203,7.10733749999999,-0.001, 4959P 7951 -1.29888872083028,-0.001,0.151; 4959P 7952 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4961P 7953 -0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 4961P 7954 -1.,1.,1.,1.,121.756696066765,-115.564510160819,8.74703749999999, 4961P 7955 -121.756696066765,-116.185598026203,8.74703749999999, 4961P 7956 -121.756696066765,-115.564510160819,7.10733749999999, 4961P 7957 -121.756696066765,-116.185598026203,7.10733749999999, 4961P 7958 --0.00100000000000178,0.0565747731526699,-0.001,0.151; 4961P 7959 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947582, 4963P 7960 -0.0751056187947582,-0.00100000000000001,-0.00100000000000001, 4963P 7961 -0.151,0.151,1.,1.,1.,1.,120.946494204017,-115.575297660819, 4963P 7962 -8.74703749999999,121.767483566765,-115.575297660819, 4963P 7963 -8.74703749999999,120.946494204017,-115.575297660819, 4963P 7964 -7.10733749999999,121.767483566765,-115.575297660819, 4963P 7965 -7.10733749999999,-0.001,0.0751056187947582,-0.00100000000000001, 4963P 7966 -0.151; 4963P 7967 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.1877799504598, 4965P 7968 -1.1877799504598,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4965P 7969 -120.957281704017,-102.762121445234,8.74703749999999, 4965P 7970 -120.957281704017,-115.586085160819,8.74703749999999, 4965P 7971 -120.957281704017,-102.762121445234,7.10733749999999, 4965P 7972 -120.957281704017,-115.586085160819,7.10733749999999,-0.001, 4965P 7973 -1.1877799504598,-0.001,0.151; 4965P 7974 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4967P 7975 -0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 4967P 7976 -1.,1.,1.,1.,121.767483566763,-102.772926600922,8.74703749999999, 4967P 7977 -120.946494204019,-102.772908710156,8.74703749999999, 4967P 7978 -121.767483566763,-102.772926600922,7.10733749999999, 4967P 7979 -120.946494204019,-102.772908710156,7.10733749999999, 4967P 7980 --0.00100000000000002,0.0751056188123538,-0.001,0.151; 4967P 7981 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 4969P 7982 -0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4969P 7983 -121.756696066765,-102.162835047777,8.74703749999999, 4969P 7984 -121.756696066765,-102.783713865844,8.74703749999999, 4969P 7985 -121.756696066765,-102.162835047777,7.10733749999999, 4969P 7986 -121.756696066765,-102.783713865844,7.10733749999999,-0.001, 4969P 7987 -0.0565553944905629,-0.001,0.151; 4969P 7988 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4971P 7989 -1.29888831710916,1.29888831710916,-0.00100000000000009, 4971P 7990 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 4971P 7991 --102.173605113745,8.74703749999999,102.695539756509, 4971P 7992 --102.173622561199,8.7470375,116.718084977313,-102.173605113745, 4971P 7993 -7.10733749999999,102.695539756509,-102.173622561199, 4971P 7994 -7.10733749999999,-0.00100000000000002,1.29888831710916, 4971P 7995 --0.00100000000000009,0.151; 4971P 7996 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4973P 7997 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4973P 7998 -1.,1.,1.,1.,116.707297477313,-102.783696445234,8.74703749999999, 4973P 7999 -116.707297477313,-102.162817627167,8.74703749999999, 4973P 8000 -116.707297477313,-102.783696445234,7.10733749999999, 4973P 8001 -116.707297477313,-102.162817627167,7.10733749999999, 4973P 8002 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 4973P 8003 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4975P 8004 -0.0751056188123572,0.0751056188123572,-0.001,-0.001,0.151,0.151, 4975P 8005 -1.,1.,1.,1.,117.517499340059,-102.772926600922,8.74703749999999, 4975P 8006 -116.696509977316,-102.772908710156,8.74703749999999, 4975P 8007 -117.517499340059,-102.772926600922,7.10733749999999, 4975P 8008 -116.696509977316,-102.772908710156,7.10733749999999, 4975P 8009 --0.00100000000000002,0.0751056188123572,-0.001,0.151; 4975P 8010 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027127, 4977P 8011 -1.18763784027127,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4977P 8012 -117.506720557707,-115.584569567767,8.74703749999999, 4977P 8013 -117.506711832721,-102.762138865844,8.74703749999999, 4977P 8014 -117.506720557707,-115.584569567767,7.10733749999999, 4977P 8015 -117.506711832721,-102.762138865844,7.10733749999999,-0.001, 4977P 8016 -1.18763784027127,-0.001,0.151; 4977P 8017 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 4979P 8018 -0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 4979P 8019 -0.151,0.151,1.,1.,1.,1.,116.696518687621,-115.573764412079, 4979P 8020 -8.74703749999999,117.517508050364,-115.573782302845, 4979P 8021 -8.74703749999999,116.696518687621,-115.573764412079, 4979P 8022 -7.10733749999999,117.517508050364,-115.573782302845, 4979P 8023 -7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 4979P 8024 -0.151; 4979P 8025 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731585322, 4981P 8026 -0.0565747731585322,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4981P 8027 -116.707297320582,-116.184065012541,8.74703749999999, 4981P 8028 -116.707306344349,-115.562977147158,8.74703749999999, 4981P 8029 -116.707297320582,-116.184065012541,7.10733749999999, 4981P 8030 -116.707306344349,-115.562977147158,7.10733749999999,-0.001, 4981P 8031 -0.0565747731585322,-0.001,0.151; 4981P 8032 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 4983P 8033 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4983P 8034 -102.695539756509,-116.173277512542,8.7470375,116.718084977313, 4983P 8035 --116.173277512542,8.74703749999999,102.695539756509, 4983P 8036 --116.173277512542,7.10733749999999,116.718084977313, 4983P 8037 --116.173277512542,7.10733749999999,-0.001,1.29888831710816, 4983P 8038 --0.001,0.151; 4983P 8039 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4985P 8040 -0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 4985P 8041 -1.,1.,1.,1.,102.706327256509,-115.562977147157,8.7470375, 4985P 8042 -102.706327256509,-116.184065012542,8.7470375,102.706327256509, 4985P 8043 --115.562977147157,7.10733749999999,102.706327256509, 4985P 8044 --116.184065012542,7.10733749999999,-0.00100000000000178, 4985P 8045 -0.0565747731526699,-0.001,0.151; 4985P 8046 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4987P 8047 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 4987P 8048 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 4987P 8049 --115.573764647157,8.7470375,102.717114756509,-115.573764647157, 4987P 8050 -8.7470375,101.89612539376,-115.573764647157,7.10733749999999, 4987P 8051 -102.717114756509,-115.573764647157,7.10733749999999, 4987P 8052 --0.00100000000000178,0.0751056187947571,-0.00100000000000001, 4987P 8053 -0.151; 4987P 8054 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 4989P 8055 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4989P 8056 -101.90691289376,-102.762121445234,8.7470375,101.90691289376, 4989P 8057 --115.584552147157,8.7470375,101.90691289376,-102.762121445234, 4989P 8058 -7.10733749999999,101.90691289376,-115.584552147157, 4989P 8059 -7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 4989P 8060 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4991P 8061 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4991P 8062 -1.,1.,1.,1.,102.717114756506,-102.772926600922,8.7470375, 4991P 8063 -101.896125393763,-102.772908710156,8.7470375,102.717114756506, 4991P 8064 --102.772926600922,7.10733749999999,101.896125393763, 4991P 8065 --102.772908710156,7.10733749999999,-0.00100000000000178, 4991P 8066 -0.0751056188123521,-0.001,0.151; 4991P 8067 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 4993P 8068 -0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 4993P 8069 -102.706327256509,-102.162835047777,8.7470375,102.706327256509, 4993P 8070 --102.783713865844,8.7470375,102.706327256509,-102.162835047777, 4993P 8071 -7.10733749999999,102.706327256509,-102.783713865844, 4993P 8072 -7.10733749999999,-0.001,0.0565553944905629,-0.001,0.151; 4993P 8073 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 4995P 8074 -1.29888831710916,1.29888831710916,-0.00100000000000009, 4995P 8075 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 4995P 8076 --102.173605113745,8.7470375,83.6451709462526,-102.173622561199, 4995P 8077 -8.7470375,97.6677161670568,-102.173605113745,7.10733749999999, 4995P 8078 -83.6451709462526,-102.173622561199,7.1073375, 4995P 8079 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 4995P 8080 -0.151; 4995P 8081 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4997P 8082 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 4997P 8083 -1.,1.,1.,1.,97.6569286670568,-102.783696445234,8.7470375, 4997P 8084 -97.6569286670568,-102.162817627167,8.7470375,97.6569286670568, 4997P 8085 --102.783696445234,7.10733749999999,97.6569286670568, 4997P 8086 --102.162817627167,7.10733749999999,-0.00100000000000178, 4997P 8087 -0.0565553944905594,-0.001,0.151; 4997P 8088 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 4999P 8089 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 4999P 8090 -1.,1.,1.,1.,98.4671305298027,-102.772926600922,8.7470375, 4999P 8091 -97.6461411670594,-102.772908710156,8.7470375,98.4671305298027, 4999P 8092 --102.772926600922,7.10733749999999,97.6461411670594, 4999P 8093 --102.772908710156,7.10733749999999,-0.00100000000000178, 4999P 8094 -0.0751056188123521,-0.001,0.151; 4999P 8095 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5001P 8096 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5001P 8097 -98.4563430298053,-115.584569567767,8.7470375,98.4563430298053, 5001P 8098 --102.762138865844,8.7470375,98.4563430298053,-115.584569567767, 5001P 8099 -7.10733749999999,98.4563430298053,-102.762138865844, 5001P 8100 -7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5001P 8101 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5003P 8102 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5003P 8103 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 5003P 8104 --115.573764412079,8.7470375,98.4671305298027,-115.573782302845, 5003P 8105 -8.7470375,97.6461411670594,-115.573764412079,7.10733749999999, 5003P 8106 -98.4671305298027,-115.573782302845,7.10733749999999, 5003P 8107 --0.00100000000000178,0.0751056188123522,-0.00100000000000001, 5003P 8108 -0.151; 5003P 8109 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5005P 8110 -0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5005P 8111 -97.6569286670568,-116.184065012542,8.7470375,97.6569286670568, 5005P 8112 --115.562977147157,8.7470375,97.6569286670568,-116.184065012542, 5005P 8113 -7.10733749999999,97.6569286670568,-115.562977147157, 5005P 8114 -7.10733749999999,-0.001,0.0565747731526666,-0.001,0.151; 5005P 8115 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 5007P 8116 -1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5007P 8117 -83.6451622359477,-116.173277512542,8.7470375,97.6677161670568, 5007P 8118 --116.173277512542,8.7470375,83.6451622359477,-116.173277512542, 5007P 8119 -7.1073375,97.6677161670569,-116.173277512542,7.1073375,-0.001, 5007P 8120 -1.29888912455241,-0.001,0.151; 5007P 8121 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5009P 8122 -0.0565747731585355,0.0565747731585355,-0.001,-0.001,0.151,0.151, 5009P 8123 -1.,1.,1.,1.,83.6559586029839,-115.562977147158,8.7470375, 5009P 8124 -83.6559495792164,-116.184065012541,8.7470375,83.6559586029839, 5009P 8125 --115.562977147158,7.1073375,83.6559495792164,-116.184065012541, 5009P 8126 -7.1073375,-0.00100000000000178,0.0565747731585355,-0.001,0.151; 5009P 8127 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5011P 8128 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5011P 8129 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 5011P 8130 --115.573764647157,8.7470375,83.6667459462526,-115.573764647157, 5011P 8131 -8.7470375,82.8457565835041,-115.573764647157,7.1073375, 5011P 8132 -83.6667459462526,-115.573764647157,7.1073375, 5011P 8133 --0.00100000000000165,0.0751056187947571,-0.00100000000000001, 5011P 8134 -0.151; 5011P 8135 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5013P 8136 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5013P 8137 -82.8565440835042,-102.762121445234,8.7470375,82.8565440835042, 5013P 8138 --115.584552147157,8.7470375,82.8565440835042,-102.762121445234, 5013P 8139 -7.1073375,82.8565440835042,-115.584552147157,7.1073375,-0.001, 5013P 8140 -1.187637840271,-0.001,0.151; 5013P 8141 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5015P 8142 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5015P 8143 -1.,1.,1.,1.,83.66674594625,-102.772926600922,8.7470375, 5015P 8144 -82.8457565835067,-102.772908710156,8.7470375,83.66674594625, 5015P 8145 --102.772926600922,7.1073375,82.8457565835067,-102.772908710156, 5015P 8146 -7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 5015P 8147 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5017P 8148 -0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5017P 8149 -83.6559584462526,-102.162835047777,8.7470375,83.6559584462526, 5017P 8150 --102.783713865844,8.7470375,83.6559584462526,-102.162835047777, 5017P 8151 -7.1073375,83.6559584462526,-102.783713865844,7.1073375,-0.001, 5017P 8152 -0.0565553944905629,-0.001,0.151; 5017P 8153 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5019P 8154 -1.29888831710916,1.29888831710916,-0.00100000000000009, 5019P 8155 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5019P 8156 --102.173605113745,8.7470375,64.5948021359963,-102.173622561199, 5019P 8157 -8.7470375,78.6173473568005,-102.173605113745,7.1073375, 5019P 8158 -64.5948021359963,-102.173622561199,7.1073375, 5019P 8159 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 5019P 8160 -0.151; 5019P 8161 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5021P 8162 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5021P 8163 -1.,1.,1.,1.,78.6065598568005,-102.783696445234,8.7470375, 5021P 8164 -78.6065598568005,-102.162817627167,8.7470375,78.6065598568005, 5021P 8165 --102.783696445234,7.1073375,78.6065598568005,-102.162817627167, 5021P 8166 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5021P 8167 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5023P 8168 -0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5023P 8169 -1.,1.,1.,1.,79.4167617195464,-102.772926600922,8.7470375, 5023P 8170 -78.5957723568031,-102.772908710156,8.7470375,79.4167617195464, 5023P 8171 --102.772926600922,7.1073375,78.5957723568031,-102.772908710156, 5023P 8172 -7.1073375,-0.00100000000000266,0.0751056188123528,-0.001,0.151; 5023P 8173 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5025P 8174 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5025P 8175 -79.4059742195489,-115.584569567767,8.7470375,79.4059742195489, 5025P 8176 --102.762138865844,8.7470375,79.4059742195489,-115.584569567767, 5025P 8177 -7.1073375,79.4059742195489,-102.762138865844,7.1073375,-0.001, 5025P 8178 -1.187637840271,-0.001,0.151; 5025P 8179 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5027P 8180 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5027P 8181 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 5027P 8182 --115.573764412079,8.7470375,79.4167617195464,-115.573782302845, 5027P 8183 -8.7470375,78.595772356803,-115.573764412079,7.1073375, 5027P 8184 -79.4167617195464,-115.573782302845,7.1073375, 5027P 8185 --0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5027P 8186 -0.151; 5027P 8187 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5029P 8188 -0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5029P 8189 -78.6065598568005,-116.184065012542,8.7470375,78.6065598568005, 5029P 8190 --115.562977147157,8.7470375,78.6065598568005,-116.184065012542, 5029P 8191 -7.1073375,78.6065598568005,-115.562977147157,7.1073375,-0.001, 5029P 8192 -0.0565747731526666,-0.001,0.151; 5029P 8193 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5031P 8194 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5031P 8195 -64.5948021359963,-116.173277512542,8.7470375,78.6173473568005, 5031P 8196 --116.173277512542,8.7470375,64.5948021359963,-116.173277512542, 5031P 8197 -7.1073375,78.6173473568005,-116.173277512542,7.1073375,-0.001, 5031P 8198 -1.29888831710816,-0.001,0.151; 5031P 8199 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5033P 8200 -0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 5033P 8201 -1.,1.,1.,1.,64.6055896359963,-115.562977147157,8.7470375, 5033P 8202 -64.6055896359963,-116.184065012542,8.7470375,64.6055896359963, 5033P 8203 --115.562977147157,7.1073375,64.6055896359963,-116.184065012542, 5033P 8204 -7.1073375,-0.00100000000000178,0.0565747731526699,-0.001,0.151; 5033P 8205 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5035P 8206 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5035P 8207 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 5035P 8208 --115.573764647157,8.7470375,64.6163771359963,-115.573764647157, 5035P 8209 -8.7470375,63.7953877732478,-115.573764647157,7.1073375, 5035P 8210 -64.6163771359963,-115.573764647157,7.1073375, 5035P 8211 --0.00100000000000247,0.0751056187947571,-0.00100000000000001, 5035P 8212 -0.151; 5035P 8213 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5037P 8214 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5037P 8215 -63.8061752732478,-102.762121445234,8.7470375,63.8061752732478, 5037P 8216 --115.584552147157,8.7470375,63.8061752732478,-102.762121445234, 5037P 8217 -7.1073375,63.8061752732478,-115.584552147157,7.1073375,-0.001, 5037P 8218 -1.187637840271,-0.001,0.151; 5037P 8219 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5039P 8220 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5039P 8221 -1.,1.,1.,1.,64.6163771359937,-102.772926600922,8.7470375, 5039P 8222 -63.7953877732504,-102.772908710156,8.7470375,64.6163771359937, 5039P 8223 --102.772926600922,7.1073375,63.7953877732504,-102.772908710156, 5039P 8224 -7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 5039P 8225 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5041P 8226 -0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5041P 8227 -64.6055896359963,-102.162835047777,8.7470375,64.6055896359963, 5041P 8228 --102.783713865844,8.7470375,64.6055896359963,-102.162835047777, 5041P 8229 -7.1073375,64.6055896359963,-102.783713865844,7.1073375,-0.001, 5041P 8230 -0.0565553944905629,-0.001,0.151; 5041P 8231 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5043P 8232 -1.29879546101989,1.29879546101989,-0.001,-0.001,0.151,0.151,1., 5043P 8233 -1.,1.,1.,59.5669785465442,-102.173605113744,8.7470375, 5043P 8234 -45.545435010803,-102.1736225612,8.7470375,59.5669785465442, 5043P 8235 --102.173605113744,7.1073375,45.545435010803,-102.1736225612, 5043P 8236 -7.1073375,-0.00100000000000002,1.29879546101989,-0.001,0.151; 5043P 8237 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5045P 8238 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5045P 8239 -1.,1.,1.,1.,59.5561910465442,-102.783696445234,8.7470375, 5045P 8240 -59.5561910465442,-102.162817627167,8.7470375,59.5561910465442, 5045P 8241 --102.783696445234,7.1073375,59.5561910465442,-102.162817627167, 5045P 8242 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5045P 8243 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000249,-0.00100000000000249, 5047P 8244 -0.0751056188123528,0.0751056188123528,-0.00100000000000011, 5047P 8245 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092901, 5047P 8246 --102.772926600922,8.7470375,59.5454035465467,-102.772908710156, 5047P 8247 -8.7470375,60.3663929092901,-102.772926600922,7.1073375, 5047P 8248 -59.5454035465467,-102.772908710156,7.1073375, 5047P 8249 --0.00100000000000249,0.0751056188123528,-0.00100000000000011, 5047P 8250 -0.151; 5047P 8251 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5049P 8252 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5049P 8253 -60.3556054092926,-115.584569567767,8.7470375,60.3556054092926, 5049P 8254 --102.762138865844,8.7470375,60.3556054092926,-115.584569567767, 5049P 8255 -7.1073375,60.3556054092926,-102.762138865844,7.1073375,-0.001, 5049P 8256 -1.187637840271,-0.001,0.151; 5049P 8257 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5051P 8258 -0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5051P 8259 -1.,1.,1.,1.,59.5454035465467,-115.573764412079,8.7470375, 5051P 8260 -60.3663929092901,-115.573782302845,8.7470375,59.5454035465467, 5051P 8261 --115.573764412079,7.1073375,60.3663929092901,-115.573782302845, 5051P 8262 -7.1073375,-0.00100000000000247,0.0751056188123528,-0.001,0.151; 5051P 8263 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565747731526666, 5053P 8264 -0.0565747731526666,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5053P 8265 -59.5561910465442,-116.184065012542,8.7470375,59.5561910465442, 5053P 8266 --115.562977147157,8.7470375,59.5561910465442,-116.184065012542, 5053P 8267 -7.1073375,59.5561910465442,-115.562977147157,7.1073375,-0.001, 5053P 8268 -0.0565747731526666,-0.001,0.151; 5053P 8269 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 5055P 8270 -1.29879546101888,-0.00100000000000011,-0.00100000000000011, 5055P 8271 -0.151,0.151,1.,1.,1.,1.,45.545435010803,-116.173277512542, 5055P 8272 -8.7470375,59.5669785465442,-116.173277512542,8.7470375, 5055P 8273 -45.545435010803,-116.173277512542,7.1073375,59.5669785465442, 5055P 8274 --116.173277512542,7.1073375,-0.001,1.29879546101888, 5055P 8275 --0.00100000000000011,0.151; 5055P 8276 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5057P 8277 -0.0565747731526699,0.0565747731526699,-0.001,-0.001,0.151,0.151, 5057P 8278 -1.,1.,1.,1.,45.556222510803,-115.562977147157,8.7470375, 5057P 8279 -45.556222510803,-116.184065012542,8.7470375,45.556222510803, 5057P 8280 --115.562977147157,7.1073375,45.556222510803,-116.184065012542, 5057P 8281 -7.1073375,-0.00100000000000178,0.0565747731526699,-0.001,0.151; 5057P 8282 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 5059P 8283 -0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 5059P 8284 -0.151,0.151,1.,1.,1.,1.,44.7454109267118,-115.573764647157, 5059P 8285 -8.7470375,45.567010010803,-115.573764647157,8.7470375, 5059P 8286 -44.7454109267118,-115.573764647157,7.1073375,45.567010010803, 5059P 8287 --115.573764647157,7.1073375,-0.001,0.0751621398925796, 5059P 8288 --0.00100000000000001,0.151; 5059P 8289 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5061P 8290 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5061P 8291 -44.7561984267118,-102.762121445234,8.7470375,44.7561984267118, 5061P 8292 --115.584552147157,8.7470375,44.7561984267118,-102.762121445234, 5061P 8293 -7.1073375,44.7561984267118,-115.584552147157,7.1073375,-0.001, 5061P 8294 -1.187637840271,-0.001,0.151; 5061P 8295 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5063P 8296 -0.075162139910162,0.075162139910162,-0.001,-0.001,0.151,0.151, 5063P 8297 -1.,1.,1.,1.,45.5670100108004,-102.772926600743,8.7470375, 5063P 8298 -44.7454109267143,-102.772908710335,8.7470375,45.5670100108004, 5063P 8299 --102.772926600743,7.1073375,44.7454109267143,-102.772908710335, 5063P 8300 -7.1073375,-0.00100000000000002,0.075162139910162,-0.001,0.151; 5063P 8301 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905629, 5065P 8302 -0.0565553944905629,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5065P 8303 -45.556222510803,-102.162835047777,8.7470375,45.556222510803, 5065P 8304 --102.783713865844,8.7470375,45.556222510803,-102.162835047777, 5065P 8305 -7.1073375,45.556222510803,-102.783713865844,7.1073375,-0.001, 5065P 8306 -0.0565553944905629,-0.001,0.151; 5065P 8307 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5067P 8308 -1.29891011810303,1.29891011810303,-0.00100000000000011, 5067P 8309 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 5067P 8310 --83.1232450272156,8.74703749999999,140.796081395161, 5067P 8311 --83.1232450272155,8.74703749999999,154.818861794198, 5067P 8312 --83.1232450272156,7.10733749999999,140.796081395161, 5067P 8313 --83.1232450272155,7.10733749999999,-0.00100000000000002, 5067P 8314 -1.29891011810303,-0.00100000000000011,0.151; 5067P 8315 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5069P 8316 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5069P 8317 -1.,1.,1.,1.,154.808074294198,-83.7333363452825,8.74703749999999, 5069P 8318 -154.808074294198,-83.1124575272156,8.74703749999999, 5069P 8319 -154.808074294198,-83.7333363452825,7.10733749999999, 5069P 8320 -154.808074294198,-83.1124575272156,7.10733749999999, 5069P 8321 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5069P 8322 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5071P 8323 -0.0750926996866866,0.0750926996866866,-0.001,-0.001,0.151,0.151, 5071P 8324 -1.,1.,1.,1.,155.618136792068,-83.7225488452825,8.74703749999999, 5071P 8325 -154.797286794198,-83.7225488452825,8.74703749999999, 5071P 8326 -155.618136792068,-83.7225488452825,7.10733749999999, 5071P 8327 -154.797286794198,-83.7225488452825,7.10733749999999, 5071P 8328 --0.00100000000000002,0.0750926996866866,-0.001,0.151; 5071P 8329 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5073P 8330 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5073P 8331 -155.607349292068,-96.5341920472058,8.74703749999999, 5073P 8332 -155.607349292068,-83.7117613452824,8.74703749999999, 5073P 8333 -155.607349292068,-96.5341920472058,7.10733749999999, 5073P 8334 -155.607349292068,-83.7117613452824,7.10733749999999,-0.001, 5073P 8335 -1.187637840271,-0.001,0.151; 5073P 8336 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5075P 8337 -0.0750926996866857,0.0750926996866857,-0.00100000000000001, 5075P 8338 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.797286794198, 5075P 8339 --96.5234045472058,8.74703749999999,155.618136792068, 5075P 8340 --96.5234045472058,8.74703749999999,154.797286794198, 5075P 8341 --96.5234045472058,7.10733749999999,155.618136792068, 5075P 8342 --96.5234045472058,7.10733749999999,-0.00100000000000178, 5075P 8343 -0.0750926996866857,-0.00100000000000001,0.151; 5075P 8344 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5077P 8345 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5077P 8346 -1.,1.,1.,1.,154.808074294198,-97.1334958652727,8.74703749999999, 5077P 8347 -154.808074294198,-96.5126170472058,8.74703749999999, 5077P 8348 -154.808074294198,-97.1334958652727,7.10733749999999, 5077P 8349 -154.808074294198,-96.5126170472059,7.10733749999999, 5077P 8350 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5077P 8351 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143809, 5079P 8352 -1.2989097143809,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5079P 8353 -140.796085750314,-97.1227083652727,8.74703749999999, 5079P 8354 -154.818861794198,-97.1227083652727,8.74703749999999, 5079P 8355 -140.796085750314,-97.1227083652727,7.10733749999999, 5079P 8356 -154.818861794198,-97.1227083652727,7.10733749999999,-0.001, 5079P 8357 -1.2989097143809,-0.001,0.151; 5079P 8358 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5081P 8359 -0.0565553944920266,0.0565553944920266,-0.001,-0.001,0.151,0.151, 5081P 8360 -1.,1.,1.,1.,140.806868816768,-96.5126170472061,8.74703749999999, 5081P 8361 -140.806873328707,-97.1334958652725,8.74703749999999, 5081P 8362 -140.806868816768,-96.5126170472061,7.10733749999999, 5081P 8363 -140.806873328707,-97.1334958652725,7.10733749999999, 5081P 8364 --0.00100000000000165,0.0565553944920266,-0.001,0.151; 5081P 8365 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874512990324, 5083P 8366 -0.0750874512990324,-0.00100000000000011,-0.00100000000000011, 5083P 8367 -0.151,0.151,1.,1.,1.,1.,139.996863014273,-96.5234045472058, 5083P 8368 -8.74703749999999,140.817656395161,-96.5234045472058, 5083P 8369 -8.74703749999999,139.996863014273,-96.5234045472058, 5083P 8370 -7.10733749999999,140.817656395161,-96.5234045472058, 5083P 8371 -7.10733749999999,-0.001,0.0750874512990324,-0.00100000000000011, 5083P 8372 -0.151; 5083P 8373 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027107, 5085P 8374 -1.18763784027107,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5085P 8375 -140.007654873096,-83.7117613452825,8.74703749999999, 5085P 8376 -140.007650510603,-96.5341920472058,8.74703749999999, 5085P 8377 -140.007654873096,-83.7117613452825,7.10733749999999, 5085P 8378 -140.007650510603,-96.5341920472059,7.10733749999999,-0.001, 5085P 8379 -1.18763784027107,-0.001,0.151; 5085P 8380 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5087P 8381 -0.0750874512990324,0.0750874512990324,-0.001,-0.001,0.151,0.151, 5087P 8382 -1.,1.,1.,1.,140.817660750314,-83.7225488452825,8.74703749999999, 5087P 8383 -139.996867369426,-83.7225488452825,8.74703749999999, 5087P 8384 -140.817660750314,-83.7225488452825,7.10733749999999, 5087P 8385 -139.996867369426,-83.7225488452825,7.10733749999999, 5087P 8386 --0.00100000000000002,0.0750874512990324,-0.001,0.151; 5087P 8387 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944920294, 5089P 8388 -0.0565553944920294,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5089P 8389 -140.806868816768,-83.1124575272158,8.74703749999999, 5089P 8390 -140.806873328707,-83.7333363452822,8.74703749999999, 5089P 8391 -140.806868816768,-83.1124575272158,7.10733749999999, 5089P 8392 -140.806873328707,-83.7333363452822,7.10733749999999,-0.001, 5089P 8393 -0.0565553944920294,-0.001,0.151; 5089P 8394 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5091P 8395 -1.29888872083028,1.29888872083028,-0.00100000000000009, 5091P 8396 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 5091P 8397 --83.1232450272156,8.74703749999999,121.745908566765, 5091P 8398 --83.1232450272155,8.74703749999999,135.768458142722, 5091P 8399 --83.1232450272156,7.10733749999999,121.745908566765, 5091P 8400 --83.1232450272155,7.10733749999999,-0.00100000000000002, 5091P 8401 -1.29888872083028,-0.00100000000000009,0.151; 5091P 8402 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5093P 8403 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5093P 8404 -1.,1.,1.,1.,135.757670642722,-83.7333363452825,8.74703749999999, 5093P 8405 -135.757670642722,-83.1124575272156,8.74703749999999, 5093P 8406 -135.757670642722,-83.7333363452825,7.10733749999999, 5093P 8407 -135.757670642722,-83.1124575272156,7.10733749999999, 5093P 8408 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5093P 8409 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5095P 8410 -0.0750967369079582,0.0750967369079582,-0.001,-0.001,0.151,0.151, 5095P 8411 -1.,1.,1.,1.,136.567776692117,-83.7225488452825,8.74703749999999, 5095P 8412 -135.746883142722,-83.7225488452825,8.74703749999999, 5095P 8413 -136.567776692117,-83.7225488452825,7.10733749999999, 5095P 8414 -135.746883142722,-83.7225488452825,7.10733749999999, 5095P 8415 --0.00100000000000002,0.0750967369079582,-0.001,0.151; 5095P 8416 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5097P 8417 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5097P 8418 -136.556989192117,-96.5341920472058,8.74703749999999, 5097P 8419 -136.556989192117,-83.7117613452825,8.74703749999999, 5097P 8420 -136.556989192117,-96.5341920472058,7.10733749999999, 5097P 8421 -136.556989192117,-83.7117613452825,7.10733749999999,-0.001, 5097P 8422 -1.187637840271,-0.001,0.151; 5097P 8423 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369079582, 5099P 8424 -0.0750967369079582,-0.00100000000000001,-0.00100000000000001, 5099P 8425 -0.151,0.151,1.,1.,1.,1.,135.746883142722,-96.5234045472058, 5099P 8426 -8.74703749999999,136.567776692117,-96.5234045472058, 5099P 8427 -8.74703749999999,135.746883142722,-96.5234045472058, 5099P 8428 -7.10733749999999,136.567776692117,-96.5234045472058, 5099P 8429 -7.10733749999999,-0.001,0.0750967369079582,-0.00100000000000001, 5099P 8430 -0.151; 5099P 8431 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5101P 8432 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5101P 8433 -1.,1.,1.,1.,135.757670642722,-97.1334958652727,8.74703749999999, 5101P 8434 -135.757670642722,-96.5126170472058,8.74703749999999, 5101P 8435 -135.757670642722,-97.1334958652727,7.10733749999999, 5101P 8436 -135.757670642722,-96.5126170472059,7.10733749999999, 5101P 8437 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5101P 8438 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083028, 5103P 8439 -1.29888872083028,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5103P 8440 -121.745908566765,-97.1227083652727,8.74703749999999, 5103P 8441 -135.768458142722,-97.1227083652727,8.74703749999999, 5103P 8442 -121.745908566765,-97.1227083652727,7.10733749999999, 5103P 8443 -135.768458142722,-97.1227083652727,7.10733749999999,-0.001, 5103P 8444 -1.29888872083028,-0.001,0.151; 5103P 8445 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5105P 8446 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5105P 8447 -1.,1.,1.,1.,121.756696066765,-96.5126170472058,8.74703749999999, 5105P 8448 -121.756696066765,-97.1334958652727,8.74703749999999, 5105P 8449 -121.756696066765,-96.5126170472058,7.10733749999999, 5105P 8450 -121.756696066765,-97.1334958652727,7.10733749999999, 5105P 8451 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5105P 8452 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 5107P 8453 -0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 5107P 8454 -0.151,0.151,1.,1.,1.,1.,120.946494204017,-96.5234045472058, 5107P 8455 -8.74703749999999,121.767483566765,-96.5234045472058, 5107P 8456 -8.74703749999999,120.946494204017,-96.5234045472058, 5107P 8457 -7.10733749999999,121.767483566765,-96.5234045472058, 5107P 8458 -7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 5107P 8459 -0.151; 5107P 8460 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5109P 8461 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5109P 8462 -120.957281704017,-83.7117613452825,8.74703749999999, 5109P 8463 -120.957281704017,-96.5341920472058,8.74703749999999, 5109P 8464 -120.957281704017,-83.7117613452825,7.10733749999999, 5109P 8465 -120.957281704017,-96.5341920472058,7.10733749999999,-0.001, 5109P 8466 -1.187637840271,-0.001,0.151; 5109P 8467 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5111P 8468 -0.0751056187947589,0.0751056187947589,-0.001,-0.001,0.151,0.151, 5111P 8469 -1.,1.,1.,1.,121.767483566765,-83.7225488452825,8.74703749999999, 5111P 8470 -120.946494204017,-83.7225488452825,8.74703749999999, 5111P 8471 -121.767483566765,-83.7225488452825,7.10733749999999, 5111P 8472 -120.946494204017,-83.7225488452825,7.10733749999999, 5111P 8473 --0.00100000000000002,0.0751056187947589,-0.001,0.151; 5111P 8474 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5113P 8475 -0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5113P 8476 -121.756696066765,-83.1124575272155,8.74703749999999, 5113P 8477 -121.756696066765,-83.7333363452825,8.74703749999999, 5113P 8478 -121.756696066765,-83.1124575272155,7.10733749999999, 5113P 8479 -121.756696066765,-83.7333363452825,7.10733749999999,-0.001, 5113P 8480 -0.0565553944905625,-0.001,0.151; 5113P 8481 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5115P 8482 -1.29888831710816,1.29888831710816,-0.00100000000000009, 5115P 8483 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 5115P 8484 --83.1232450272156,8.74703749999999,102.695539756509, 5115P 8485 --83.1232450272155,8.7470375,116.718084977313,-83.1232450272156, 5115P 8486 -7.10733749999999,102.695539756509,-83.1232450272155, 5115P 8487 -7.10733749999999,-0.00100000000000002,1.29888831710816, 5115P 8488 --0.00100000000000009,0.151; 5115P 8489 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5117P 8490 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5117P 8491 -1.,1.,1.,1.,116.707297477313,-83.7333363452825,8.74703749999999, 5117P 8492 -116.707297477313,-83.1124575272156,8.74703749999999, 5117P 8493 -116.707297477313,-83.7333363452825,7.10733749999999, 5117P 8494 -116.707297477313,-83.1124575272156,7.10733749999999, 5117P 8495 --0.00100000000000178,0.0565553944905594,-0.001,0.151; 5117P 8496 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5119P 8497 -0.0751056187947606,0.0751056187947606,-0.001,-0.001,0.151,0.151, 5119P 8498 -1.,1.,1.,1.,117.517499340062,-83.7225488452825,8.74703749999999, 5119P 8499 -116.696509977313,-83.7225488452825,8.74703749999999, 5119P 8500 -117.517499340062,-83.7225488452825,7.10733749999999, 5119P 8501 -116.696509977313,-83.7225488452825,7.10733749999999, 5119P 8502 --0.00100000000000002,0.0751056187947606,-0.001,0.151; 5119P 8503 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18763784027127, 5121P 8504 -1.18763784027127,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5121P 8505 -117.506720557707,-96.5341920472058,8.74703749999999, 5121P 8506 -117.506711832721,-83.7117613452824,8.74703749999999, 5121P 8507 -117.506720557707,-96.5341920472058,7.10733749999999, 5121P 8508 -117.506711832721,-83.7117613452824,7.10733749999999,-0.001, 5121P 8509 -1.18763784027127,-0.001,0.151; 5121P 8510 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056187947589, 5123P 8511 -0.0751056187947589,-0.00100000000000001,-0.00100000000000001, 5123P 8512 -0.151,0.151,1.,1.,1.,1.,116.696518687618,-96.5234045472058, 5123P 8513 -8.74703749999999,117.517508050367,-96.5234045472058, 5123P 8514 -8.74703749999999,116.696518687618,-96.5234045472058, 5123P 8515 -7.10733749999999,117.517508050367,-96.5234045472058, 5123P 8516 -7.10733749999999,-0.001,0.0751056187947589,-0.00100000000000001, 5123P 8517 -0.151; 5123P 8518 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5125P 8519 -0.0565553944964269,0.0565553944964269,-0.001,-0.001,0.151,0.151, 5125P 8520 -1.,1.,1.,1.,116.707297320527,-97.1334958652716,8.74703749999999, 5125P 8521 -116.707306344404,-96.512617047207,8.74703749999999, 5125P 8522 -116.707297320527,-97.1334958652716,7.10733749999999, 5125P 8523 -116.707306344404,-96.512617047207,7.10733749999999, 5125P 8524 --0.00100000000000178,0.0565553944964269,-0.001,0.151; 5125P 8525 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5127P 8526 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5127P 8527 -102.695539756509,-97.1227083652727,8.7470375,116.718084977313, 5127P 8528 --97.1227083652727,8.74703749999999,102.695539756509, 5127P 8529 --97.1227083652727,7.10733749999999,116.718084977313, 5127P 8530 --97.1227083652727,7.10733749999999,-0.001,1.29888831710816, 5127P 8531 --0.001,0.151; 5127P 8532 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5129P 8533 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5129P 8534 -1.,1.,1.,1.,102.706327256509,-96.5126170472058,8.7470375, 5129P 8535 -102.706327256509,-97.1334958652727,8.7470375,102.706327256509, 5129P 8536 --96.5126170472058,7.10733749999999,102.706327256509, 5129P 8537 --97.1334958652727,7.10733749999999,-0.00100000000000178, 5129P 8538 -0.0565553944905594,-0.001,0.151; 5129P 8539 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5131P 8540 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5131P 8541 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.89612539376, 5131P 8542 --96.5234045472058,8.7470375,102.717114756509,-96.5234045472058, 5131P 8543 -8.7470375,101.89612539376,-96.5234045472058,7.10733749999999, 5131P 8544 -102.717114756509,-96.5234045472058,7.10733749999999, 5131P 8545 --0.00100000000000178,0.0751056187947571,-0.00100000000000001, 5131P 8546 -0.151; 5131P 8547 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5133P 8548 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5133P 8549 -101.90691289376,-83.7117613452825,8.7470375,101.90691289376, 5133P 8550 --96.5341920472058,8.7470375,101.90691289376,-83.7117613452825, 5133P 8551 -7.10733749999999,101.90691289376,-96.5341920472058, 5133P 8552 -7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5133P 8553 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5135P 8554 -0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5135P 8555 -1.,1.,1.,1.,102.717114756509,-83.7225488452825,8.7470375, 5135P 8556 -101.89612539376,-83.7225488452825,8.7470375,102.717114756509, 5135P 8557 --83.7225488452825,7.10733749999999,101.89612539376, 5135P 8558 --83.7225488452825,7.10733749999999,-0.00100000000000178, 5135P 8559 -0.0751056187947571,-0.001,0.151; 5135P 8560 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5137P 8561 -0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5137P 8562 -102.706327256509,-83.1124575272155,8.7470375,102.706327256509, 5137P 8563 --83.7333363452825,8.7470375,102.706327256509,-83.1124575272155, 5137P 8564 -7.10733749999999,102.706327256509,-83.7333363452825, 5137P 8565 -7.10733749999999,-0.001,0.0565553944905625,-0.001,0.151; 5137P 8566 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5139P 8567 -1.29888831710816,1.29888831710816,-0.00100000000000009, 5139P 8568 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 5139P 8569 --83.1232450272156,8.7470375,83.6451709462526,-83.1232450272155, 5139P 8570 -8.7470375,97.6677161670568,-83.1232450272156,7.10733749999999, 5139P 8571 -83.6451709462526,-83.1232450272155,7.1073375, 5139P 8572 --0.00100000000000002,1.29888831710816,-0.00100000000000009, 5139P 8573 -0.151; 5139P 8574 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5141P 8575 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5141P 8576 -1.,1.,1.,1.,97.6569286670568,-83.7333363452825,8.7470375, 5141P 8577 -97.6569286670568,-83.1124575272156,8.7470375,97.6569286670568, 5141P 8578 --83.7333363452825,7.10733749999999,97.6569286670568, 5141P 8579 --83.1124575272156,7.10733749999999,-0.00100000000000178, 5141P 8580 -0.0565553944905594,-0.001,0.151; 5141P 8581 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5143P 8582 -0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5143P 8583 -1.,1.,1.,1.,98.4671305298053,-83.7225488452825,8.7470375, 5143P 8584 -97.6461411670568,-83.7225488452825,8.7470375,98.4671305298053, 5143P 8585 --83.7225488452825,7.10733749999999,97.6461411670568, 5143P 8586 --83.7225488452825,7.10733749999999,-0.00100000000000178, 5143P 8587 -0.0751056187947571,-0.001,0.151; 5143P 8588 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5145P 8589 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5145P 8590 -98.4563430298053,-96.5341920472058,8.7470375,98.4563430298053, 5145P 8591 --83.7117613452825,8.7470375,98.4563430298053,-96.5341920472058, 5145P 8592 -7.10733749999999,98.4563430298053,-83.7117613452825, 5145P 8593 -7.10733749999999,-0.001,1.187637840271,-0.001,0.151; 5145P 8594 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5147P 8595 -0.0751056187947566,0.0751056187947566,-0.00100000000000001, 5147P 8596 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670568, 5147P 8597 --96.5234045472058,8.7470375,98.4671305298053,-96.5234045472058, 5147P 8598 -8.7470375,97.6461411670568,-96.5234045472058,7.10733749999999, 5147P 8599 -98.4671305298053,-96.5234045472058,7.10733749999999, 5147P 8600 --0.00100000000000178,0.0751056187947566,-0.00100000000000001, 5147P 8601 -0.151; 5147P 8602 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5149P 8603 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5149P 8604 -1.,1.,1.,1.,97.6569286670568,-97.1334958652727,8.7470375, 5149P 8605 -97.6569286670568,-96.5126170472058,8.7470375,97.6569286670568, 5149P 8606 --97.1334958652727,7.10733749999999,97.6569286670568, 5149P 8607 --96.5126170472059,7.10733749999999,-0.00100000000000178, 5149P 8608 -0.0565553944905594,-0.001,0.151; 5149P 8609 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455241, 5151P 8610 -1.29888912455241,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5151P 8611 -83.6451622359477,-97.1227083652727,8.7470375,97.6677161670568, 5151P 8612 --97.1227083652727,8.7470375,83.6451622359477,-97.1227083652727, 5151P 8613 -7.1073375,97.6677161670569,-97.1227083652727,7.1073375,-0.001, 5151P 8614 -1.29888912455241,-0.001,0.151; 5151P 8615 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5153P 8616 -0.0565553944964269,0.0565553944964269,-0.001,-0.001,0.151,0.151, 5153P 8617 -1.,1.,1.,1.,83.6559586030385,-96.512617047207,8.7470375, 5153P 8618 -83.6559495791618,-97.1334958652716,8.7470375,83.6559586030385, 5153P 8619 --96.512617047207,7.1073375,83.6559495791617,-97.1334958652716, 5153P 8620 -7.1073375,-0.00100000000000178,0.0565553944964269,-0.001,0.151; 5153P 8621 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5155P 8622 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5155P 8623 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835041, 5155P 8624 --96.5234045472058,8.7470375,83.6667459462526,-96.5234045472058, 5155P 8625 -8.7470375,82.8457565835041,-96.5234045472058,7.1073375, 5155P 8626 -83.6667459462526,-96.5234045472058,7.1073375, 5155P 8627 --0.00100000000000165,0.0751056187947571,-0.00100000000000001, 5155P 8628 -0.151; 5155P 8629 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5157P 8630 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5157P 8631 -82.8565440835042,-83.7117613452825,8.7470375,82.8565440835042, 5157P 8632 --96.5341920472058,8.7470375,82.8565440835042,-83.7117613452825, 5157P 8633 -7.1073375,82.8565440835042,-96.5341920472058,7.1073375,-0.001, 5157P 8634 -1.187637840271,-0.001,0.151; 5157P 8635 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5159P 8636 -0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5159P 8637 -1.,1.,1.,1.,83.6667459462526,-83.7225488452825,8.7470375, 5159P 8638 -82.8457565835041,-83.7225488452825,8.7470375,83.6667459462526, 5159P 8639 --83.7225488452825,7.1073375,82.8457565835041,-83.7225488452825, 5159P 8640 -7.1073375,-0.00100000000000178,0.0751056187947571,-0.001,0.151; 5159P 8641 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5161P 8642 -0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5161P 8643 -83.6559584462526,-83.1124575272155,8.7470375,83.6559584462526, 5161P 8644 --83.7333363452825,8.7470375,83.6559584462526,-83.1124575272155, 5161P 8645 -7.1073375,83.6559584462526,-83.7333363452825,7.1073375,-0.001, 5161P 8646 -0.0565553944905625,-0.001,0.151; 5161P 8647 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5163P 8648 -1.29888831710816,1.29888831710816,-0.00100000000000009, 5163P 8649 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5163P 8650 --83.1232450272156,8.7470375,64.5948021359962,-83.1232450272155, 5163P 8651 -8.7470375,78.6173473568005,-83.1232450272156,7.1073375, 5163P 8652 -64.5948021359962,-83.1232450272155,7.1073375, 5163P 8653 --0.00100000000000002,1.29888831710816,-0.00100000000000009, 5163P 8654 -0.151; 5163P 8655 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5165P 8656 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5165P 8657 -1.,1.,1.,1.,78.6065598568005,-83.7333363452825,8.7470375, 5165P 8658 -78.6065598568005,-83.1124575272156,8.7470375,78.6065598568005, 5165P 8659 --83.7333363452825,7.1073375,78.6065598568005,-83.1124575272156, 5165P 8660 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5165P 8661 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5167P 8662 -0.0751056187947565,0.0751056187947565,-0.001,-0.001,0.151,0.151, 5167P 8663 -1.,1.,1.,1.,79.416761719549,-83.7225488452825,8.7470375, 5167P 8664 -78.5957723568005,-83.7225488452825,8.7470375,79.416761719549, 5167P 8665 --83.7225488452825,7.1073375,78.5957723568005,-83.7225488452825, 5167P 8666 -7.1073375,-0.00100000000000266,0.0751056187947565,-0.001,0.151; 5167P 8667 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5169P 8668 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5169P 8669 -79.4059742195489,-96.5341920472058,8.7470375,79.4059742195489, 5169P 8670 --83.7117613452825,8.7470375,79.4059742195489,-96.5341920472058, 5169P 8671 -7.1073375,79.4059742195489,-83.7117613452825,7.1073375,-0.001, 5169P 8672 -1.187637840271,-0.001,0.151; 5169P 8673 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5171P 8674 -0.0751056187947566,0.0751056187947566,-0.00100000000000001, 5171P 8675 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.5957723568005, 5171P 8676 --96.5234045472058,8.7470375,79.4167617195489,-96.5234045472058, 5171P 8677 -8.7470375,78.5957723568005,-96.5234045472058,7.1073375, 5171P 8678 -79.4167617195489,-96.5234045472058,7.1073375, 5171P 8679 --0.00100000000000266,0.0751056187947566,-0.00100000000000001, 5171P 8680 -0.151; 5171P 8681 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5173P 8682 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5173P 8683 -1.,1.,1.,1.,78.6065598568005,-97.1334958652727,8.7470375, 5173P 8684 -78.6065598568005,-96.5126170472058,8.7470375,78.6065598568005, 5173P 8685 --97.1334958652727,7.1073375,78.6065598568005,-96.5126170472059, 5173P 8686 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5173P 8687 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710816, 5175P 8688 -1.29888831710816,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5175P 8689 -64.5948021359963,-97.1227083652727,8.7470375,78.6173473568005, 5175P 8690 --97.1227083652727,8.7470375,64.5948021359963,-97.1227083652727, 5175P 8691 -7.1073375,78.6173473568005,-97.1227083652727,7.1073375,-0.001, 5175P 8692 -1.29888831710816,-0.001,0.151; 5175P 8693 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5177P 8694 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5177P 8695 -1.,1.,1.,1.,64.6055896359963,-96.5126170472058,8.7470375, 5177P 8696 -64.6055896359963,-97.1334958652727,8.7470375,64.6055896359963, 5177P 8697 --96.5126170472058,7.1073375,64.6055896359963,-97.1334958652727, 5177P 8698 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5177P 8699 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5179P 8700 -0.0751056187947571,0.0751056187947571,-0.00100000000000001, 5179P 8701 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732478, 5179P 8702 --96.5234045472058,8.7470375,64.6163771359963,-96.5234045472058, 5179P 8703 -8.7470375,63.7953877732478,-96.5234045472058,7.1073375, 5179P 8704 -64.6163771359963,-96.5234045472058,7.1073375, 5179P 8705 --0.00100000000000247,0.0751056187947571,-0.00100000000000001, 5179P 8706 -0.151; 5179P 8707 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5181P 8708 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5181P 8709 -63.8061752732478,-83.7117613452825,8.7470375,63.8061752732478, 5181P 8710 --96.5341920472058,8.7470375,63.8061752732478,-83.7117613452825, 5181P 8711 -7.1073375,63.8061752732478,-96.5341920472058,7.1073375,-0.001, 5181P 8712 -1.187637840271,-0.001,0.151; 5181P 8713 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5183P 8714 -0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5183P 8715 -1.,1.,1.,1.,64.6163771359963,-83.7225488452825,8.7470375, 5183P 8716 -63.7953877732478,-83.7225488452825,8.7470375,64.6163771359963, 5183P 8717 --83.7225488452825,7.1073375,63.7953877732478,-83.7225488452825, 5183P 8718 -7.1073375,-0.00100000000000266,0.0751056187947571,-0.001,0.151; 5183P 8719 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5185P 8720 -0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5185P 8721 -64.6055896359963,-83.1124575272155,8.7470375,64.6055896359963, 5185P 8722 --83.7333363452825,8.7470375,64.6055896359963,-83.1124575272155, 5185P 8723 -7.1073375,64.6055896359963,-83.7333363452825,7.1073375,-0.001, 5185P 8724 -0.0565553944905625,-0.001,0.151; 5185P 8725 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5187P 8726 -1.29879546101888,1.29879546101888,-0.001,-0.001,0.151,0.151,1., 5187P 8727 -1.,1.,1.,59.5669785465442,-83.1232450272156,8.7470375, 5187P 8728 -45.545435010803,-83.1232450272155,8.7470375,59.5669785465442, 5187P 8729 --83.1232450272156,7.1073375,45.545435010803,-83.1232450272155, 5187P 8730 -7.1073375,-0.00100000000000002,1.29879546101888,-0.001,0.151; 5187P 8731 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5189P 8732 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5189P 8733 -1.,1.,1.,1.,59.5561910465442,-83.7333363452825,8.7470375, 5189P 8734 -59.5561910465442,-83.1124575272156,8.7470375,59.5561910465442, 5189P 8735 --83.7333363452825,7.1073375,59.5561910465442,-83.1124575272156, 5189P 8736 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5189P 8737 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5191P 8738 -0.0751056187947571,0.0751056187947571,-0.00100000000000011, 5191P 8739 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3663929092927, 5191P 8740 --83.7225488452825,8.7470375,59.5454035465442,-83.7225488452825, 5191P 8741 -8.7470375,60.3663929092927,-83.7225488452825,7.1073375, 5191P 8742 -59.5454035465442,-83.7225488452825,7.1073375, 5191P 8743 --0.00100000000000266,0.0751056187947571,-0.00100000000000011, 5191P 8744 -0.151; 5191P 8745 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5193P 8746 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5193P 8747 -60.3556054092926,-96.5341920472058,8.7470375,60.3556054092926, 5193P 8748 --83.7117613452825,8.7470375,60.3556054092926,-96.5341920472058, 5193P 8749 -7.1073375,60.3556054092926,-83.7117613452825,7.1073375,-0.001, 5193P 8750 -1.187637840271,-0.001,0.151; 5193P 8751 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000247,-0.00100000000000247, 5195P 8752 -0.0751056187947571,0.0751056187947571,-0.001,-0.001,0.151,0.151, 5195P 8753 -1.,1.,1.,1.,59.5454035465442,-96.5234045472058,8.7470375, 5195P 8754 -60.3663929092926,-96.5234045472058,8.7470375,59.5454035465442, 5195P 8755 --96.5234045472058,7.1073375,60.3663929092926,-96.5234045472058, 5195P 8756 -7.1073375,-0.00100000000000247,0.0751056187947571,-0.001,0.151; 5195P 8757 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5197P 8758 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5197P 8759 -1.,1.,1.,1.,59.5561910465442,-97.1334958652727,8.7470375, 5197P 8760 -59.5561910465442,-96.5126170472058,8.7470375,59.5561910465442, 5197P 8761 --97.1334958652727,7.1073375,59.5561910465442,-96.5126170472059, 5197P 8762 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5197P 8763 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879546101888, 5199P 8764 -1.29879546101888,-0.00100000000000011,-0.00100000000000011, 5199P 8765 -0.151,0.151,1.,1.,1.,1.,45.545435010803,-97.1227083652727, 5199P 8766 -8.7470375,59.5669785465442,-97.1227083652727,8.7470375, 5199P 8767 -45.545435010803,-97.1227083652727,7.1073375,59.5669785465442, 5199P 8768 --97.1227083652727,7.1073375,-0.001,1.29879546101888, 5199P 8769 --0.00100000000000011,0.151; 5199P 8770 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5201P 8771 -0.0565553944905594,0.0565553944905594,-0.001,-0.001,0.151,0.151, 5201P 8772 -1.,1.,1.,1.,45.556222510803,-96.5126170472058,8.7470375, 5201P 8773 -45.556222510803,-97.1334958652727,8.7470375,45.556222510803, 5201P 8774 --96.5126170472058,7.1073375,45.556222510803,-97.1334958652727, 5201P 8775 -7.1073375,-0.00100000000000178,0.0565553944905594,-0.001,0.151; 5201P 8776 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751621398925796, 5203P 8777 -0.0751621398925796,-0.00100000000000001,-0.00100000000000001, 5203P 8778 -0.151,0.151,1.,1.,1.,1.,44.7454109267118,-96.5234045472058, 5203P 8779 -8.7470375,45.567010010803,-96.5234045472058,8.7470375, 5203P 8780 -44.7454109267118,-96.5234045472058,7.1073375,45.567010010803, 5203P 8781 --96.5234045472058,7.1073375,-0.001,0.0751621398925796, 5203P 8782 --0.00100000000000001,0.151; 5203P 8783 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.187637840271, 5205P 8784 -1.187637840271,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5205P 8785 -44.7561984267118,-83.7117613452825,8.7470375,44.7561984267118, 5205P 8786 --96.5341920472058,8.7470375,44.7561984267118,-83.7117613452825, 5205P 8787 -7.1073375,44.7561984267118,-96.5341920472058,7.1073375,-0.001, 5205P 8788 -1.187637840271,-0.001,0.151; 5205P 8789 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5207P 8790 -0.0751621398925796,0.0751621398925796,-0.001,-0.001,0.151,0.151, 5207P 8791 -1.,1.,1.,1.,45.567010010803,-83.7225488452825,8.7470375, 5207P 8792 -44.7454109267118,-83.7225488452825,8.7470375,45.567010010803, 5207P 8793 --83.7225488452825,7.1073375,44.7454109267118,-83.7225488452825, 5207P 8794 -7.1073375,-0.00100000000000002,0.0751621398925796,-0.001,0.151; 5207P 8795 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0565553944905625, 5209P 8796 -0.0565553944905625,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5209P 8797 -45.556222510803,-83.1124575272155,8.7470375,45.556222510803, 5209P 8798 --83.7333363452825,8.7470375,45.556222510803,-83.1124575272155, 5209P 8799 -7.1073375,45.556222510803,-83.7333363452825,7.1073375,-0.001, 5209P 8800 -0.0565553944905625,-0.001,0.151; 5209P 8801 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5211P 8802 -1.29891011810303,1.29891011810303,-0.00100000000000011, 5211P 8803 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,154.818861794198, 5211P 8804 --64.0711428662849,8.74703749999999,140.796081395161, 5211P 8805 --64.0711428662849,8.74703749999999,154.818861794198, 5211P 8806 --64.0711428662849,7.10733749999999,140.796081395161, 5211P 8807 --64.0711428662849,7.10733749999999,-0.00100000000000002, 5211P 8808 -1.29891011810303,-0.00100000000000011,0.151; 5211P 8809 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5213P 8810 -0.0567168833414705,0.0567168833414705,-0.001,-0.001,0.151,0.151, 5213P 8811 -1.,1.,1.,1.,154.808074294198,-64.682976245331,8.74703749999999, 5213P 8812 -154.808074294198,-64.0603553662849,8.74703749999999, 5213P 8813 -154.808074294198,-64.682976245331,7.10733749999999, 5213P 8814 -154.808074294198,-64.0603553662849,7.10733749999999, 5213P 8815 --0.00100000000000089,0.0567168833414705,-0.001,0.151; 5213P 8816 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5215P 8817 -0.0750926997042853,0.0750926997042853,-0.001,-0.001,0.151,0.151, 5215P 8818 -1.,1.,1.,1.,155.618136792065,-64.6721710896021,8.74703749999999, 5215P 8819 -154.7972867942,-64.6721889804501,8.74703749999999, 5215P 8820 -155.618136792065,-64.6721710896021,7.10733749999999, 5215P 8821 -154.7972867942,-64.6721889804501,7.10733749999999, 5215P 8822 --0.00100000000000002,0.0750926997042853,-0.001,0.151; 5215P 8823 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5217P 8824 -1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5217P 8825 -1.,1.,1.,155.607349292068,-77.4824034572515,8.74703749999999, 5217P 8826 -155.607349292068,-64.6613838247213,8.74703749999999, 5217P 8827 -155.607349292068,-77.4824034572515,7.10733749999999, 5217P 8828 -155.607349292068,-64.6613838247213,7.10733749999999, 5217P 8829 --0.00100000000000178,1.18750703430176,-0.001,0.151; 5217P 8830 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5219P 8831 -0.0750926997042836,0.0750926997042836,-0.00100000000000001, 5219P 8832 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,154.7972867942, 5219P 8833 --77.4716336129804,8.74703749999999,155.618136792065, 5219P 8834 --77.4716157221324,8.74703749999999,154.7972867942, 5219P 8835 --77.4716336129804,7.10733749999999,155.618136792065, 5219P 8836 --77.4716157221324,7.10733749999999,-0.00100000000000178, 5219P 8837 -0.0750926997042836,-0.00100000000000001,0.151; 5219P 8838 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5221P 8839 -0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5221P 8840 -1.,1.,1.,1.,154.808074294198,-78.0831357653214,8.74703749999999, 5221P 8841 -154.808074294198,-77.4608458778613,8.74703749999999, 5221P 8842 -154.808074294198,-78.0831357653214,7.10733749999999, 5221P 8843 -154.808074294198,-77.4608458778613,7.10733749999999, 5221P 8844 --0.00100000000000089,0.0566862004597987,-0.001,0.151; 5221P 8845 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.2989097143819, 5223P 8846 -1.2989097143819,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5223P 8847 -140.796085750314,-78.0723308312895,8.74703749999999, 5223P 8848 -154.818861794198,-78.0723482787434,8.74703749999999, 5223P 8849 -140.796085750314,-78.0723308312895,7.10733749999999, 5223P 8850 -154.818861794198,-78.0723482787434,7.10733749999999,-0.001, 5223P 8851 -1.2989097143819,-0.001,0.151; 5223P 8852 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5225P 8853 -0.0566862004612659,0.0566862004612659,-0.001,-0.001,0.151,0.151, 5225P 8854 -1.,1.,1.,1.,140.806868816953,-77.4608284572517,8.74703749999999, 5225P 8855 -140.806873328523,-78.0831183447113,8.74703749999999, 5225P 8856 -140.806868816953,-77.4608284572517,7.10733749999999, 5225P 8857 -140.806873328523,-78.0831183447113,7.10733749999999, 5225P 8858 --0.00100000000000082,0.0566862004612659,-0.001,0.151; 5225P 8859 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750874513166321, 5227P 8860 -0.0750874513166321,-0.00100000000000011,-0.00100000000000011, 5227P 8861 -0.151,0.151,1.,1.,1.,1.,139.996863014276,-77.471633612997, 5227P 8862 -8.74703749999999,140.817656395159,-77.4716157221157, 5227P 8863 -8.74703749999999,139.996863014276,-77.471633612997, 5227P 8864 -7.10733749999999,140.817656395159,-77.4716157221157, 5227P 8865 -7.10733749999999,-0.001,0.0750874513166321,-0.00100000000000011, 5227P 8866 -0.151; 5227P 8867 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18752964274096, 5229P 8868 -1.18752964274096,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5229P 8869 -140.007654873096,-64.6611573567939,8.74703749999999, 5229P 8870 -140.007650510603,-77.4824208778613,8.74703749999999, 5229P 8871 -140.007654873096,-64.6611573567939,7.10733749999999, 5229P 8872 -140.007650510603,-77.4824208778613,7.10733749999999,-0.001, 5229P 8873 -1.18752964274096,-0.001,0.151; 5229P 8874 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5231P 8875 -0.0750874512990324,0.0750874512990324,-0.001,-0.001,0.151,0.151, 5231P 8876 -1.,1.,1.,1.,140.817660750314,-64.6719448567939,8.74703749999999, 5231P 8877 -139.996867369426,-64.6719448567939,8.74703749999999, 5231P 8878 -140.817660750314,-64.6719448567939,7.10733749999999, 5231P 8879 -139.996867369426,-64.6719448567939,7.10733749999999, 5231P 8880 --0.00100000000000002,0.0750874512990324,-0.001,0.151; 5231P 8881 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5233P 8882 -0.0566942749038051,0.0566942749038051,-0.001,-0.001,0.151,0.151, 5233P 8883 -1.,1.,1.,1.,140.806868816964,-64.0603553662852,8.74703749999999, 5233P 8884 -140.806873328511,-64.6827323567937,8.74703749999999, 5233P 8885 -140.806868816964,-64.0603553662852,7.10733749999999, 5233P 8886 -140.806873328511,-64.6827323567937,7.10733749999999, 5233P 8887 --0.00100000000000178,0.0566942749038051,-0.001,0.151; 5233P 8888 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5235P 8889 -1.29888872083028,1.29888872083028,-0.00100000000000009, 5235P 8890 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,135.768458142722, 5235P 8891 --64.0711428662849,8.74703749999999,121.745908566765, 5235P 8892 --64.0711428662849,8.74703749999999,135.768458142722, 5235P 8893 --64.0711428662849,7.10733749999999,121.745908566765, 5235P 8894 --64.0711428662849,7.10733749999999,-0.00100000000000002, 5235P 8895 -1.29888872083028,-0.00100000000000009,0.151; 5235P 8896 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0694050623575851, 5237P 8897 -0.0694050623575851,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5237P 8898 -135.757670642722,-64.8198499764674,8.74703749999999, 5237P 8899 -135.757670642722,-64.0603553662849,8.74703749999999, 5237P 8900 -135.757670642722,-64.8198499764674,7.10733749999999, 5237P 8901 -135.757670642722,-64.0603553662849,7.10733749999999,-0.001, 5237P 8902 -0.0694050623575851,-0.001,0.151; 5237P 8903 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5239P 8904 -0.0750967369255561,0.0750967369255561,-0.001,-0.001,0.151,0.151, 5239P 8905 -1.,1.,1.,1.,136.567776692114,-64.8090448207513,8.74703749999999, 5239P 8906 -135.746883142724,-64.8090627115737,8.74703749999999, 5239P 8907 -136.567776692114,-64.8090448207513,7.10733749999999, 5239P 8908 -135.746883142724,-64.8090627115737,7.10733749999999, 5239P 8909 --0.00100000000000002,0.0750967369255561,-0.001,0.151; 5239P 8910 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5241P 8911 -1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5241P 8912 -1.,1.,1.,136.556989192117,-77.6192771883878,8.74703749999999, 5241P 8913 -136.556989192117,-64.7982575558576,8.74703749999999, 5241P 8914 -136.556989192117,-77.6192771883878,7.10733749999999, 5241P 8915 -136.556989192117,-64.7982575558576,7.10733749999999, 5241P 8916 --0.00100000000000178,1.18750703430176,-0.001,0.151; 5241P 8917 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0750967369255578, 5243P 8918 -0.0750967369255578,-0.00100000000000001,-0.00100000000000001, 5243P 8919 -0.151,0.151,1.,1.,1.,1.,135.746883142724,-77.6085073441039, 5243P 8920 -8.74703749999999,136.567776692114,-77.6084894532815, 5243P 8921 -8.74703749999999,135.746883142724,-77.6085073441039, 5243P 8922 -7.10733749999999,136.567776692114,-77.6084894532815, 5243P 8923 -7.10733749999999,-0.001,0.0750967369255578,-0.00100000000000001, 5243P 8924 -0.151; 5243P 8925 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5245P 8926 -0.0439980214436811,0.0439980214436811,-0.001,-0.001,0.151,0.151, 5245P 8927 -1.,1.,1.,1.,135.757670642722,-78.0831357653213,8.74703749999999, 5245P 8928 -135.757670642722,-77.5977196089976,8.74703749999999, 5245P 8929 -135.757670642722,-78.0831357653213,7.10733749999999, 5245P 8930 -135.757670642722,-77.5977196089976,7.10733749999999, 5245P 8931 --0.00100000000000178,0.0439980214436811,-0.001,0.151; 5245P 8932 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888872083129, 5247P 8933 -1.29888872083129,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5247P 8934 -121.745908566765,-78.0723308312893,8.74703749999999, 5247P 8935 -135.768458142722,-78.0723482787436,8.74703749999999, 5247P 8936 -121.745908566765,-78.0723308312893,7.10733749999999, 5247P 8937 -135.768458142722,-78.0723482787436,7.10733749999999,-0.001, 5247P 8938 -1.29888872083129,-0.001,0.151; 5247P 8939 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5249P 8940 -0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5249P 8941 -1.,1.,1.,1.,121.756696066765,-77.4608284572515,8.74703749999999, 5249P 8942 -121.756696066765,-78.0831183447116,8.74703749999999, 5249P 8943 -121.756696066765,-77.4608284572515,7.10733749999999, 5249P 8944 -121.756696066765,-78.0831183447116,7.10733749999999, 5249P 8945 --0.00100000000000082,0.0566862004598022,-0.001,0.151; 5249P 8946 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 5251P 8947 -0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 5251P 8948 -0.151,0.151,1.,1.,1.,1.,120.946494204019,-77.4716336129394, 5251P 8949 -8.74703749999999,121.767483566763,-77.4716157221733, 5251P 8950 -8.74703749999999,120.946494204019,-77.4716336129394, 5251P 8951 -7.10733749999999,121.767483566763,-77.4716157221733, 5251P 8952 -7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 5251P 8953 -0.151; 5251P 8954 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18752964274089, 5253P 8955 -1.18752964274089,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5253P 8956 -120.957281704017,-64.6611573567939,8.74703749999999, 5253P 8957 -120.957281704017,-77.4824208778613,8.74703749999999, 5253P 8958 -120.957281704017,-64.6611573567939,7.10733749999999, 5253P 8959 -120.957281704017,-77.4824208778613,7.10733749999999,-0.001, 5253P 8960 -1.18752964274089,-0.001,0.151; 5253P 8961 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5255P 8962 -0.0751056187947589,0.0751056187947589,-0.001,-0.001,0.151,0.151, 5255P 8963 -1.,1.,1.,1.,121.767483566765,-64.6719448567939,8.74703749999999, 5255P 8964 -120.946494204017,-64.6719448567939,8.74703749999999, 5255P 8965 -121.767483566765,-64.6719448567939,7.10733749999999, 5255P 8966 -120.946494204017,-64.6719448567939,7.10733749999999, 5255P 8967 --0.00100000000000002,0.0751056187947589,-0.001,0.151; 5255P 8968 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5257P 8969 -0.0566942749023418,0.0566942749023418,-0.001,-0.001,0.151,0.151, 5257P 8970 -1.,1.,1.,1.,121.756696066765,-64.0603553662849,8.74703749999999, 5257P 8971 -121.756696066765,-64.6827323567939,8.74703749999999, 5257P 8972 -121.756696066765,-64.0603553662849,7.10733749999999, 5257P 8973 -121.756696066765,-64.6827323567939,7.10733749999999, 5257P 8974 --0.00100000000000178,0.0566942749023418,-0.001,0.151; 5257P 8975 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5259P 8976 -1.29888831710916,1.29888831710916,-0.00100000000000009, 5259P 8977 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,116.718084977313, 5259P 8978 --64.0713693476345,8.74703749999999,102.695539756509, 5259P 8979 --64.0713519001801,8.7470375,116.718084977313,-64.0713693476345, 5259P 8980 -7.10733749999999,102.695539756509,-64.0713519001801, 5259P 8981 -7.10733749999999,-0.00100000000000002,1.29888831710916, 5259P 8982 --0.00100000000000009,0.151; 5259P 8983 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5261P 8984 -0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5261P 8985 -116.707297477313,-64.6829762453311,8.74703749999999, 5261P 8986 -116.707297477313,-64.0605818342122,8.74703749999999, 5261P 8987 -116.707297477313,-64.6829762453311,7.10733749999999, 5261P 8988 -116.707297477313,-64.0605818342122,7.10733749999999,-0.001, 5261P 8989 -0.0566958897908597,-0.001,0.151; 5261P 8990 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5263P 8991 -0.0751056188123554,0.0751056188123554,-0.001,-0.001,0.151,0.151, 5263P 8992 -1.,1.,1.,1.,117.517499340059,-64.6721710896431,8.74703749999999, 5263P 8993 -116.696509977316,-64.6721889804092,8.74703749999999, 5263P 8994 -117.517499340059,-64.6721710896431,7.10733749999999, 5263P 8995 -116.696509977316,-64.6721889804092,7.10733749999999, 5263P 8996 --0.00100000000000002,0.0751056188123554,-0.001,0.151; 5263P 8997 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5265P 8998 -1.18750703430203,1.18750703430203,-0.001,-0.001,0.151,0.151,1., 5265P 8999 -1.,1.,1.,117.506720557708,-77.4824034572515,8.74703749999999, 5265P 9000 -117.50671183272,-64.6613838247212,8.74703749999999, 5265P 9001 -117.506720557708,-77.4824034572515,7.10733749999999, 5265P 9002 -117.50671183272,-64.6613838247212,7.10733749999999, 5265P 9003 --0.00100000000000165,1.18750703430203,-0.001,0.151; 5265P 9004 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0751056188123554, 5267P 9005 -0.0751056188123554,-0.00100000000000001,-0.00100000000000001, 5267P 9006 -0.151,0.151,1.,1.,1.,1.,116.696518687621,-77.4716336129394, 5267P 9007 -8.74703749999999,117.517508050364,-77.4716157221734, 5267P 9008 -8.74703749999999,116.696518687621,-77.4716336129394, 5267P 9009 -7.10733749999999,117.517508050364,-77.4716157221734, 5267P 9010 -7.10733749999999,-0.001,0.0751056188123554,-0.00100000000000001, 5267P 9011 -0.151; 5267P 9012 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5269P 9013 -0.0566862004656526,0.0566862004656526,-0.001,-0.001,0.151,0.151, 5269P 9014 -1.,1.,1.,1.,116.707297320895,-78.0831357653202,8.74703749999999, 5269P 9015 -116.707306344036,-77.4608458778624,8.74703749999999, 5269P 9016 -116.707297320895,-78.0831357653202,7.10733749999999, 5269P 9017 -116.707306344036,-77.4608458778624,7.10733749999999, 5269P 9018 --0.00100000000000089,0.0566862004656526,-0.001,0.151; 5269P 9019 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710916, 5271P 9020 -1.29888831710916,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5271P 9021 -102.695539756509,-78.0723308312893,8.7470375,116.718084977313, 5271P 9022 --78.0723482787436,8.74703749999999,102.695539756509, 5271P 9023 --78.0723308312893,7.10733749999999,116.718084977313, 5271P 9024 --78.0723482787436,7.10733749999999,-0.001,1.29888831710916, 5271P 9025 --0.001,0.151; 5271P 9026 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5273P 9027 -0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5273P 9028 -1.,1.,1.,1.,102.706327256509,-77.4608284572515,8.7470375, 5273P 9029 -102.706327256509,-78.0831183447116,8.7470375,102.706327256509, 5273P 9030 --77.4608284572515,7.10733749999999,102.706327256509, 5273P 9031 --78.0831183447116,7.10733749999999,-0.00100000000000082, 5273P 9032 -0.0566862004598022,-0.001,0.151; 5273P 9033 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5275P 9034 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5275P 9035 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,101.896125393763, 5275P 9036 --77.4716336129394,8.7470375,102.717114756506,-77.4716157221733, 5275P 9037 -8.7470375,101.896125393763,-77.4716336129394,7.10733749999999, 5275P 9038 -102.717114756506,-77.4716157221733,7.10733749999999, 5275P 9039 --0.00100000000000178,0.0751056188123522,-0.00100000000000001, 5275P 9040 -0.151; 5275P 9041 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5277P 9042 -1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5277P 9043 -101.90691289376,-64.661401245331,8.7470375,101.90691289376, 5277P 9044 --77.4824208778613,8.7470375,101.90691289376,-64.661401245331, 5277P 9045 -7.10733749999999,101.90691289376,-77.4824208778613, 5277P 9046 -7.10733749999999,-0.001,1.18750703430176,-0.001,0.151; 5277P 9047 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5279P 9048 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5279P 9049 -1.,1.,1.,1.,102.717114756506,-64.6721710896431,8.7470375, 5279P 9050 -101.896125393763,-64.6721889804091,8.7470375,102.717114756506, 5279P 9051 --64.6721710896431,7.10733749999999,101.896125393763, 5279P 9052 --64.6721889804091,7.10733749999999,-0.00100000000000178, 5279P 9053 -0.0751056188123521,-0.001,0.151; 5279P 9054 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5281P 9055 -0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5281P 9056 -102.706327256509,-64.0605644136024,8.7470375,102.706327256509, 5281P 9057 --64.6829588247213,8.7470375,102.706327256509,-64.0605644136024, 5281P 9058 -7.10733749999999,102.706327256509,-64.6829588247213, 5281P 9059 -7.10733749999999,-0.001,0.0566958897908557,-0.001,0.151; 5281P 9060 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5283P 9061 -1.29888831710916,1.29888831710916,-0.00100000000000009, 5283P 9062 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,97.6677161670568, 5283P 9063 --64.0713693476345,8.7470375,83.6451709462526,-64.0713519001801, 5283P 9064 -8.7470375,97.6677161670568,-64.0713693476345,7.10733749999999, 5283P 9065 -83.6451709462526,-64.0713519001801,7.1073375, 5283P 9066 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 5283P 9067 -0.151; 5283P 9068 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5285P 9069 -0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5285P 9070 -97.6569286670568,-64.6829762453311,8.7470375,97.6569286670568, 5285P 9071 --64.0605818342122,8.7470375,97.6569286670568,-64.6829762453311, 5285P 9072 -7.10733749999999,97.6569286670568,-64.0605818342122, 5285P 9073 -7.10733749999999,-0.001,0.0566958897908597,-0.001,0.151; 5285P 9074 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5287P 9075 -0.0751056188123537,0.0751056188123537,-0.001,-0.001,0.151,0.151, 5287P 9076 -1.,1.,1.,1.,98.4671305298027,-64.6721710896431,8.7470375, 5287P 9077 -97.6461411670594,-64.6721889804092,8.7470375,98.4671305298027, 5287P 9078 --64.6721710896431,7.10733749999999,97.6461411670594, 5287P 9079 --64.6721889804092,7.10733749999999,-0.00100000000000178, 5287P 9080 -0.0751056188123537,-0.001,0.151; 5287P 9081 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5289P 9082 -1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5289P 9083 -1.,1.,1.,98.4563430298053,-77.4824034572515,8.7470375, 5289P 9084 -98.4563430298053,-64.6613838247213,8.7470375,98.4563430298053, 5289P 9085 --77.4824034572515,7.10733749999999,98.4563430298053, 5289P 9086 --64.6613838247213,7.10733749999999,-0.00100000000000178, 5289P 9087 -1.18750703430176,-0.001,0.151; 5289P 9088 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000165,-0.00100000000000165, 5291P 9089 -0.0751056188123537,0.0751056188123537,-0.00100000000000001, 5291P 9090 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,97.6461411670594, 5291P 9091 --77.4716336129394,8.7470375,98.4671305298027,-77.4716157221734, 5291P 9092 -8.7470375,97.6461411670594,-77.4716336129394,7.10733749999999, 5291P 9093 -98.4671305298027,-77.4716157221734,7.10733749999999, 5291P 9094 --0.00100000000000165,0.0751056188123537,-0.00100000000000001, 5291P 9095 -0.151; 5291P 9096 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5293P 9097 -0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5293P 9098 -1.,1.,1.,1.,97.6569286670568,-78.0831357653214,8.7470375, 5293P 9099 -97.6569286670568,-77.4608458778613,8.7470375,97.6569286670568, 5293P 9100 --78.0831357653214,7.10733749999999,97.6569286670568, 5293P 9101 --77.4608458778613,7.10733749999999,-0.00100000000000089, 5293P 9102 -0.0566862004597987,-0.001,0.151; 5293P 9103 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888912455341, 5295P 9104 -1.29888912455341,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5295P 9105 -83.6451622359477,-78.0723308312893,8.7470375,97.6677161670568, 5295P 9106 --78.0723482787436,8.7470375,83.6451622359477,-78.0723308312893, 5295P 9107 -7.1073375,97.6677161670569,-78.0723482787436,7.1073375,-0.001, 5295P 9108 -1.29888912455341,-0.001,0.151; 5295P 9109 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5297P 9110 -0.0566862004656559,0.0566862004656559,-0.001,-0.001,0.151,0.151, 5297P 9111 -1.,1.,1.,1.,83.6559586026702,-77.4608284572526,8.7470375, 5297P 9112 -83.6559495795301,-78.0831183447104,8.7470375,83.6559586026702, 5297P 9113 --77.4608284572526,7.1073375,83.65594957953,-78.0831183447104, 5297P 9114 -7.1073375,-0.00100000000000089,0.0566862004656559,-0.001,0.151; 5297P 9115 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5299P 9116 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5299P 9117 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,82.8457565835067, 5299P 9118 --77.4716336129394,8.7470375,83.66674594625,-77.4716157221733, 5299P 9119 -8.7470375,82.8457565835067,-77.4716336129394,7.1073375, 5299P 9120 -83.66674594625,-77.4716157221733,7.1073375,-0.00100000000000178, 5299P 9121 -0.0751056188123522,-0.00100000000000001,0.151; 5299P 9122 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5301P 9123 -1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5301P 9124 -82.8565440835042,-64.661401245331,8.7470375,82.8565440835042, 5301P 9125 --77.4824208778613,8.7470375,82.8565440835042,-64.661401245331, 5301P 9126 -7.1073375,82.8565440835042,-77.4824208778613,7.1073375,-0.001, 5301P 9127 -1.18750703430176,-0.001,0.151; 5301P 9128 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5303P 9129 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5303P 9130 -1.,1.,1.,1.,83.66674594625,-64.6721710896431,8.7470375, 5303P 9131 -82.8457565835067,-64.6721889804091,8.7470375,83.66674594625, 5303P 9132 --64.6721710896431,7.1073375,82.8457565835067,-64.6721889804091, 5303P 9133 -7.1073375,-0.00100000000000178,0.0751056188123521,-0.001,0.151; 5303P 9134 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5305P 9135 -0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5305P 9136 -83.6559584462526,-64.0605644136024,8.7470375,83.6559584462526, 5305P 9137 --64.6829588247213,8.7470375,83.6559584462526,-64.0605644136024, 5305P 9138 -7.1073375,83.6559584462526,-64.6829588247213,7.1073375,-0.001, 5305P 9139 -0.0566958897908557,-0.001,0.151; 5305P 9140 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5307P 9141 -1.29888831710916,1.29888831710916,-0.00100000000000009, 5307P 9142 --0.00100000000000009,0.151,0.151,1.,1.,1.,1.,78.6173473568005, 5307P 9143 --64.0713693476345,8.7470375,64.5948021359963,-64.0713519001801, 5307P 9144 -8.7470375,78.6173473568005,-64.0713693476345,7.1073375, 5307P 9145 -64.5948021359963,-64.0713519001801,7.1073375, 5307P 9146 --0.00100000000000002,1.29888831710916,-0.00100000000000009, 5307P 9147 -0.151; 5307P 9148 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5309P 9149 -0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5309P 9150 -78.6065598568005,-64.6829762453311,8.7470375,78.6065598568005, 5309P 9151 --64.0605818342122,8.7470375,78.6065598568005,-64.6829762453311, 5309P 9152 -7.1073375,78.6065598568005,-64.0605818342122,7.1073375,-0.001, 5309P 9153 -0.0566958897908597,-0.001,0.151; 5309P 9154 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5311P 9155 -0.0751056188123521,0.0751056188123521,-0.001,-0.001,0.151,0.151, 5311P 9156 -1.,1.,1.,1.,79.4167617195464,-64.6721710896431,8.7470375, 5311P 9157 -78.5957723568031,-64.6721889804092,8.7470375,79.4167617195464, 5311P 9158 --64.6721710896431,7.1073375,78.5957723568031,-64.6721889804092, 5311P 9159 -7.1073375,-0.00100000000000266,0.0751056188123521,-0.001,0.151; 5311P 9160 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5313P 9161 -1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5313P 9162 -1.,1.,1.,79.4059742195489,-77.4824034572515,8.7470375, 5313P 9163 -79.4059742195489,-64.6613838247213,8.7470375,79.4059742195489, 5313P 9164 --77.4824034572515,7.1073375,79.4059742195489,-64.6613838247213, 5313P 9165 -7.1073375,-0.00100000000000178,1.18750703430176,-0.001,0.151; 5313P 9166 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5315P 9167 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5315P 9168 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,78.595772356803, 5315P 9169 --77.4716336129394,8.7470375,79.4167617195464,-77.4716157221734, 5315P 9170 -8.7470375,78.595772356803,-77.4716336129394,7.1073375, 5315P 9171 -79.4167617195464,-77.4716157221734,7.1073375, 5315P 9172 --0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5315P 9173 -0.151; 5315P 9174 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5317P 9175 -0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5317P 9176 -1.,1.,1.,1.,78.6065598568005,-78.0831357653214,8.7470375, 5317P 9177 -78.6065598568005,-77.4608458778613,8.7470375,78.6065598568005, 5317P 9178 --78.0831357653214,7.1073375,78.6065598568005,-77.4608458778613, 5317P 9179 -7.1073375,-0.00100000000000089,0.0566862004597987,-0.001,0.151; 5317P 9180 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29888831710916, 5319P 9181 -1.29888831710916,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5319P 9182 -64.5948021359963,-78.0723308312893,8.7470375,78.6173473568005, 5319P 9183 --78.0723482787436,8.7470375,64.5948021359963,-78.0723308312893, 5319P 9184 -7.1073375,78.6173473568005,-78.0723482787436,7.1073375,-0.001, 5319P 9185 -1.29888831710916,-0.001,0.151; 5319P 9186 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5321P 9187 -0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5321P 9188 -1.,1.,1.,1.,64.6055896359963,-77.4608284572515,8.7470375, 5321P 9189 -64.6055896359963,-78.0831183447116,8.7470375,64.6055896359963, 5321P 9190 --77.4608284572515,7.1073375,64.6055896359963,-78.0831183447116, 5321P 9191 -7.1073375,-0.00100000000000082,0.0566862004598022,-0.001,0.151; 5321P 9192 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000266,-0.00100000000000266, 5323P 9193 -0.0751056188123522,0.0751056188123522,-0.00100000000000001, 5323P 9194 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,63.7953877732504, 5323P 9195 --77.4716336129394,8.7470375,64.6163771359937,-77.4716157221733, 5323P 9196 -8.7470375,63.7953877732504,-77.4716336129394,7.1073375, 5323P 9197 -64.6163771359937,-77.4716157221733,7.1073375, 5323P 9198 --0.00100000000000266,0.0751056188123522,-0.00100000000000001, 5323P 9199 -0.151; 5323P 9200 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430176, 5325P 9201 -1.18750703430176,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5325P 9202 -63.8061752732478,-64.661401245331,8.7470375,63.8061752732478, 5325P 9203 --77.4824208778613,8.7470375,63.8061752732478,-64.661401245331, 5325P 9204 -7.1073375,63.8061752732478,-77.4824208778613,7.1073375,-0.001, 5325P 9205 -1.18750703430176,-0.001,0.151; 5325P 9206 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000249,-0.00100000000000249, 5327P 9207 -0.0751056188123528,0.0751056188123528,-0.001,-0.001,0.151,0.151, 5327P 9208 -1.,1.,1.,1.,64.6163771359937,-64.6721710896431,8.7470375, 5327P 9209 -63.7953877732504,-64.6721889804091,8.7470375,64.6163771359937, 5327P 9210 --64.6721710896431,7.1073375,63.7953877732504,-64.6721889804091, 5327P 9211 -7.1073375,-0.00100000000000249,0.0751056188123528,-0.001,0.151; 5327P 9212 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908557, 5329P 9213 -0.0566958897908557,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5329P 9214 -64.6055896359963,-64.0605644136024,8.7470375,64.6055896359963, 5329P 9215 --64.6829588247213,8.7470375,64.6055896359963,-64.0605644136024, 5329P 9216 -7.1073375,64.6055896359963,-64.6829588247213,7.1073375,-0.001, 5329P 9217 -0.0566958897908557,-0.001,0.151; 5329P 9218 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5331P 9219 -1.29879626846414,1.29879626846414,-0.001,-0.001,0.151,0.151,1., 5331P 9220 -1.,1.,1.,59.5672485659959,-64.0713693476354,8.7470375, 5331P 9221 -45.5456963199499,-64.0713519001792,8.7470375,59.5672485659959, 5331P 9222 --64.0713693476354,7.1073375,45.5456963199499,-64.0713519001792, 5331P 9223 -7.1073375,-0.00100000000000002,1.29879626846414,-0.001,0.151; 5331P 9224 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958897908597, 5333P 9225 -0.0566958897908597,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5333P 9226 -59.5564610659959,-64.6829762453311,8.7470375,59.5564610659959, 5333P 9227 --64.0605818342122,8.7470375,59.5564610659959,-64.6829762453311, 5333P 9228 -7.1073375,59.5564610659959,-64.0605818342122,7.1073375,-0.001, 5333P 9229 -0.0566958897908597,-0.001,0.151; 5333P 9230 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5335P 9231 -0.0751056188123538,0.0751056188123538,-0.00100000000000011, 5335P 9232 --0.00100000000000011,0.151,0.151,1.,1.,1.,1.,60.3666629287418, 5335P 9233 --64.6721710896431,8.7470375,59.5456735659985,-64.6721889804092, 5335P 9234 -8.7470375,60.3666629287418,-64.6721710896431,7.1073375, 5335P 9235 -59.5456735659985,-64.6721889804092,7.1073375, 5335P 9236 --0.00100000000000089,0.0751056188123538,-0.00100000000000011, 5335P 9237 -0.151; 5335P 9238 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5337P 9239 -1.18750703430176,1.18750703430176,-0.001,-0.001,0.151,0.151,1., 5337P 9240 -1.,1.,1.,60.3558754287444,-77.4824034572515,8.7470375, 5337P 9241 -60.3558754287444,-64.6613838247213,8.7470375,60.3558754287444, 5337P 9242 --77.4824034572515,7.1073375,60.3558754287444,-64.6613838247213, 5337P 9243 -7.1073375,-0.00100000000000178,1.18750703430176,-0.001,0.151; 5337P 9244 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5339P 9245 -0.0751056188123538,0.0751056188123538,-0.001,-0.001,0.151,0.151, 5339P 9246 -1.,1.,1.,1.,59.5456735659985,-77.4716336129394,8.7470375, 5339P 9247 -60.3666629287418,-77.4716157221734,8.7470375,59.5456735659985, 5339P 9248 --77.4716336129394,7.1073375,60.3666629287418,-77.4716157221734, 5339P 9249 -7.1073375,-0.00100000000000089,0.0751056188123538,-0.001,0.151; 5339P 9250 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5341P 9251 -0.0566862004597987,0.0566862004597987,-0.001,-0.001,0.151,0.151, 5341P 9252 -1.,1.,1.,1.,59.5564610659959,-78.0831357653214,8.7470375, 5341P 9253 -59.5564610659959,-77.4608458778613,8.7470375,59.5564610659959, 5341P 9254 --78.0831357653214,7.1073375,59.5564610659959,-77.4608458778613, 5341P 9255 -7.1073375,-0.00100000000000089,0.0566862004597987,-0.001,0.151; 5341P 9256 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.29879626846414, 5343P 9257 -1.29879626846414,-0.00100000000000011,-0.00100000000000011, 5343P 9258 -0.151,0.151,1.,1.,1.,1.,45.5456963199499,-78.0723308312883, 5343P 9259 -8.7470375,59.5672485659959,-78.0723482787446,8.7470375, 5343P 9260 -45.5456963199499,-78.0723308312883,7.1073375,59.5672485659959, 5343P 9261 --78.0723482787446,7.1073375,-0.001,1.29879626846414, 5343P 9262 --0.00100000000000011,0.151; 5343P 9263 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000082,-0.00100000000000082, 5345P 9264 -0.0566862004598022,0.0566862004598022,-0.001,-0.001,0.151,0.151, 5345P 9265 -1.,1.,1.,1.,45.5564838199499,-77.4608284572515,8.7470375, 5345P 9266 -45.5564838199499,-78.0831183447116,8.7470375,45.5564838199499, 5345P 9267 --77.4608284572515,7.1073375,45.5564838199499,-78.0831183447116, 5345P 9268 -7.1073375,-0.00100000000000082,0.0566862004598022,-0.001,0.151; 5345P 9269 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5347P 9270 -0.0751621399101601,0.0751621399101601,-0.00100000000000001, 5347P 9271 --0.00100000000000001,0.151,0.151,1.,1.,1.,1.,44.7456722358612, 5347P 9272 --77.4716336127602,8.7470375,45.5672713199473,-77.4716157223525, 5347P 9273 -8.7470375,44.7456722358612,-77.4716336127602,7.1073375, 5347P 9274 -45.5672713199473,-77.4716157223525,7.1073375, 5347P 9275 --0.00100000000000089,0.0751621399101601,-0.00100000000000001, 5347P 9276 -0.151; 5347P 9277 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.18750703430286, 5349P 9278 -1.18750703430286,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5349P 9279 -44.7564771711507,-64.661401245331,8.7470375,44.7564597211764, 5349P 9280 --77.4824208778613,8.7470375,44.7564771711507,-64.661401245331, 5349P 9281 -7.1073375,44.7564597211764,-77.4824208778613,7.1073375,-0.001, 5349P 9282 -1.18750703430286,-0.001,0.151; 5349P 9283 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000089,-0.00100000000000089, 5351P 9284 -0.0751621399101601,0.0751621399101601,-0.001,-0.001,0.151,0.151, 5351P 9285 -1.,1.,1.,1.,45.5672887405571,-64.6721710898223,8.7470375, 5351P 9286 -44.745689656471,-64.67218898023,8.7470375,45.5672887405571, 5351P 9287 --64.6721710898223,7.1073375,44.745689656471,-64.67218898023, 5351P 9288 -7.1073375,-0.00100000000000089,0.0751621399101601,-0.001,0.151; 5351P 9289 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.0566958898142677, 5353P 9290 -0.0566958898142677,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5353P 9291 -45.556483507169,-64.0605644136069,8.7470375,45.5565015533406, 5353P 9292 --64.6829588247167,8.7470375,45.556483507169,-64.0605644136069, 5353P 9293 -7.1073375,45.5565015533406,-64.6829588247167,7.1073375,-0.001, 5353P 9294 -0.0566958898142677,-0.001,0.151; 5353P 9295 -128,1,2,1,2,0,0,0,0,0,-1.22399089060933D-16, 5355P 9296 --1.22399089060933D-16,0.808189655172426,0.808189655172426,0.,0., 5355P 9297 -0.,1.53806598054936,1.53806598054936,1.53806598054936,1.,1., 5355P 9298 -0.718583503390008,0.718583503390008,1.,1.,155.763761628875, 5355P 9299 --53.5475075752323,7.11812499999999,155.763761628875, 5355P 9300 --53.5475075752323,8.73624999999999,157.701439739527, 5355P 9301 --53.5475075752323,7.11812499999999,157.701439739527, 5355P 9302 --53.5475075752323,8.73624999999999,157.764849292068, 5355P 9303 --55.4841478849295,7.11812499999999,157.764849292068, 5355P 9304 --55.4841478849295,8.73624999999999,-1.22399089060933D-16, 5355P 9305 -0.808189655172426,0.,1.53806598054936; 5355P 9306 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,10.305761256663, 5357P 9307 -10.305761256663,-0.00100000000000003,-0.00100000000000003,0.151, 5357P 9308 -0.151,1.,1.,1.,1.,44.5903620726228,-53.5475075752323,8.7470375, 5357P 9309 -155.774549128875,-53.5475075752323,8.74703749999999, 5357P 9310 -44.5903620726228,-53.5475075752323,7.1073375,155.774549128875, 5357P 9311 --53.5475075752323,7.10733749999999,-0.001,10.305761256663, 5357P 9312 --0.00100000000000003,0.151; 5357P 9313 -128,1,2,1,2,0,0,0,0,0,-2.17306280968065D-30, 5359P 9314 --2.17306280968065D-30,0.808189655172443,0.808189655172443, 5359P 9315 --1.25985272984906D-14,-1.25985272984906D-14, 5359P 9316 --1.25985272984906D-14,1.57079496575076,1.57079496575076, 5359P 9317 -1.57079496575076,1.,1.,0.707107262388147,0.707107262388147,1., 5359P 9318 -1.,42.5989895726247,-55.5496648502041,7.118125,42.5989895726247, 5359P 9319 --55.5496648502041,8.73625,42.5989922976491,-53.5475075752323, 5359P 9320 -7.118125,42.5989922976491,-53.5475075752323,8.73625, 5359P 9321 -44.6011495726228,-53.5475075752324,7.118125,44.6011495726228, 5359P 9322 --53.5475075752324,8.73625,-2.17306280968065D-30, 5359P 9323 -0.808189655172443,-1.25985272984906D-14,1.57079496575076; 5359P 9324 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,7.62068862441746, 5361P 9325 -7.62068862441746,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5361P 9326 -42.5989922980068,-137.757843386107,8.7470375,42.5989895722671, 5361P 9327 --55.5388773502041,8.7470375,42.5989922980068,-137.757843386107, 5361P 9328 -7.1073375,42.5989895722671,-55.5388773502041,7.1073375,-0.001, 5361P 9329 -7.62068862441746,-0.001,0.151; 5361P 9330 -128,1,2,1,2,0,0,0,0,0,-1.0865314048403D-30,-1.0865314048403D-30, 5363P 9331 -0.808189655172426,0.808189655172426,5.99711237284094D-16, 5363P 9332 -5.99711237284094D-16,5.99711237284094D-16,1.57079632679492, 5363P 9333 -1.57079632679492,1.57079632679492,1.,1.,0.707106781186538, 5363P 9334 -0.707106781186538,1.,1.,44.6011522976492,-139.749215886107, 5363P 9335 -7.118125,44.6011522976492,-139.749215886107,8.73625, 5363P 9336 -42.5989922976492,-139.749215886107,7.118125,42.5989922976492, 5363P 9337 --139.749215886107,8.73625,42.5989922976492,-137.747055886107, 5363P 9338 -7.118125,42.5989922976492,-137.747055886107,8.73625, 5363P 9339 --1.0865314048403D-30,0.808189655172426,5.99711237284094D-16, 5363P 9340 -1.57079632679492; 5363P 9341 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5365P 9342 -10.3057578082426,10.3057578082426,-0.001,-0.001,0.151,0.151,1., 5365P 9343 -1.,1.,1.,155.774514654066,-139.749215886107,8.74703749999999, 5365P 9344 -44.5903647976492,-139.749215886107,8.7470375,155.774514654066, 5365P 9345 --139.749215886107,7.10733749999999,44.5903647976492, 5365P 9346 --139.749215886107,7.1073375,-0.00100000000000002, 5365P 9347 -10.3057578082426,-0.001,0.151; 5365P 9348 -128,1,4,1,2,0,0,0,0,0,-1.22464679896581D-16, 5367P 9349 --1.22464679896581D-16,0.808189655172408,0.808189655172408, 5367P 9350 -2.97223250293513D-15,2.97223250293513D-15,2.97223250293513D-15, 5367P 9351 -0.785406772727348,0.785406772727348,1.57081354545469, 5367P 9352 -1.57081354545469,1.57081354545469,1.,1.,0.92387788517877, 5367P 9353 -0.92387788517877,1.,1.,0.92387788517877,0.92387788517877,1.,1., 5367P 9354 -157.76588715377,-137.747021411595,7.11812499999999, 5367P 9355 -157.76588715377,-137.747021411595,8.73624999999999, 5367P 9356 -157.765901433754,-138.576353334882,7.11812499999999, 5367P 9357 -157.765901433754,-138.576353334882,8.73624999999999, 5367P 9358 -157.179480255615,-139.162784610495,7.11812499999999, 5367P 9359 -157.179480255615,-139.162784610495,8.73624999999999, 5367P 9360 -156.593059077476,-139.749215886107,7.11812499999999, 5367P 9361 -156.593059077476,-139.749215886107,8.73624999999999, 5367P 9362 -155.763727154066,-139.749215886107,7.11812499999999, 5367P 9363 -155.763727154066,-139.749215886107,8.73624999999999, 5367P 9364 --1.22464679896581D-16,0.808189655172408,2.97223250293513D-15, 5367P 9365 -1.57081354545469; 5367P 9366 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,5.58852310204211, 5369P 9367 -5.58852310204211,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5369P 9368 -157.764849106322,-77.4608284572531,8.74703749999999, 5369P 9369 -157.765887339516,-137.757808911594,8.74703749999999, 5369P 9370 -157.764849106322,-77.4608284572531,7.10733749999999, 5369P 9371 -157.765887339516,-137.757808911594,7.10733749999999,-0.001, 5369P 9372 -5.58852310204211,-0.001,0.151; 5369P 9373 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.03923574250957, 5371P 9374 -2.03923574250957,-0.001,-0.001,0.151,0.151,1.,1.,1.,1., 5371P 9375 -157.764849292068,-55.4733603849295,8.74703749999999, 5371P 9376 -157.764849292068,-77.4824034572515,8.74703749999999, 5371P 9377 -157.764849292068,-55.4733603849295,7.10733749999999, 5371P 9378 -157.764849292068,-77.4824034572515,7.10733749999999,-0.001, 5371P 9379 -2.03923574250957,-0.001,0.151; 5371P 9380 -128,1,1,1,1,0,0,1,0,0,-5.33898035415141,-5.33898035415141, 5373P 9381 -5.33897903042604,5.33897903042604,-3.99644418590382, 5373P 9382 --3.99644418590382,3.99644418590383,3.99644418590383,1.,1.,1.,1., 5373P 9383 -157.776688933754,-139.760003386107,7.11812499999999, 5373P 9384 -42.5882020726247,-139.760003386107,7.118125,157.776688933754, 5373P 9385 --53.5367200752323,7.11812499999999,42.5882020726247, 5373P 9386 --53.5367200752323,7.118125,-5.33898035415141,5.33897903042604, 5373P 9387 --3.99644418590382,3.99644418590383; 5373P 9388 -128,1,1,1,1,0,0,1,0,0,-5.33898035415141,-5.33898035415141, 5375P 9389 -5.33897903042604,5.33897903042604,-3.99644418590382, 5375P 9390 --3.99644418590382,3.99644418590383,3.99644418590383,1.,1.,1.,1., 5375P 9391 -42.5882020726247,-139.760003386107,8.73625,157.776688933754, 5375P 9392 --139.760003386107,8.73624999999999,42.5882020726247, 5375P 9393 --53.5367200752323,8.73625,157.776688933754,-53.5367200752323, 5375P 9394 -8.73624999999999,-5.33898035415141,5.33897903042604, 5375P 9395 --3.99644418590382,3.99644418590383; 5375P 9396 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.84523828125,0.84523828125, 5377P 9397 --0.001,-0.001,0.101,0.101,1.,1.,1.,1.,83.9631823855374, 5377P 9398 --232.571324596043,-7.48999999999994,83.9631823855374, 5377P 9399 --224.108941783543,-7.48999999999994,83.9631823855374, 5377P 9400 --232.571324596043,-8.50999999999994,83.9631823855374, 5377P 9401 --224.108941783543,-8.50999999999994,-0.001,0.84523828125,-0.001, 5377P 9402 -0.101; 5377P 9403 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5379P 9404 -2.516625,2.516625,-0.00100000000000116,-0.00100000000000116, 5379P 9405 -0.101000000000001,0.101000000000001,1.,1.,1.,1., 5379P 9406 -83.9731823855374,-224.118941783543,-7.48999999999994, 5379P 9407 -58.7969323855374,-224.118941783543,-7.48999999999994, 5379P 9408 -83.9731823855374,-224.118941783543,-8.50999999999996, 5379P 9409 -58.7969323855374,-224.118941783543,-8.50999999999997, 5379P 9410 --0.00100000000000002,2.516625,-0.00100000000000116, 5379P 9411 -0.101000000000001; 5379P 9412 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,4.12648828125,4.12648828125, 5381P 9413 --0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5381P 9414 -58.8069323855374,-224.128941783543,-7.48999999999996, 5381P 9415 -58.8069323855374,-182.854058971043,-7.48999999999996, 5381P 9416 -58.8069323855374,-224.128941783543,-8.50999999999997, 5381P 9417 -58.8069323855374,-182.854058971043,-8.50999999999997,-0.001, 5381P 9418 -4.12648828125,-0.001,0.101000000000001; 5381P 9419 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5383P 9420 -1.01271875,1.01271875,-0.001,-0.001,0.101000000000001, 5383P 9421 -0.101000000000001,1.,1.,1.,1.,58.8169323855374, 5383P 9422 --182.864058971043,-7.48999999999995,48.6797448855374, 5383P 9423 --182.864058971043,-7.48999999999996,58.8169323855374, 5383P 9424 --182.864058971043,-8.50999999999997,48.6797448855374, 5383P 9425 --182.864058971043,-8.50999999999997,-0.00100000000000002, 5383P 9426 -1.01271875,-0.001,0.101000000000001; 5383P 9427 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,4.9707265625,4.9707265625, 5385P 9428 --0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5385P 9429 -48.6897448855374,-182.854058971043,-7.48999999999996, 5385P 9430 -48.6897448855374,-232.571324596043,-7.48999999999996, 5385P 9431 -48.6897448855374,-182.854058971043,-8.50999999999997, 5385P 9432 -48.6897448855374,-232.571324596043,-8.50999999999997,-0.001, 5385P 9433 -4.9707265625,-0.001,0.101000000000001; 5385P 9434 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,3.52834375,3.52834375, 5387P 9435 --0.001,-0.001,0.101000000000001,0.101000000000001,1.,1.,1.,1., 5387P 9436 -48.6797448855374,-232.561324596043,-7.48999999999995, 5387P 9437 -83.9731823855374,-232.561324596043,-7.48999999999994, 5387P 9438 -48.6797448855374,-232.561324596043,-8.50999999999996, 5387P 9439 -83.9731823855374,-232.561324596043,-8.50999999999995,-0.001, 5387P 9440 -3.52834375,-0.001,0.101000000000001; 5387P 9441 -128,1,1,1,1,0,0,1,0,0,-1.764671875,-1.764671875,1.764671875, 5389P 9442 -1.764671875,-2.48586328125,-2.48586328125,2.48586328125, 5389P 9443 -2.48586328125,1.,1.,1.,1.,48.6797448855374,-232.571324596043, 5389P 9444 --8.49999999999996,83.9731823855374,-232.571324596043, 5389P 9445 --8.49999999999995,48.6797448855374,-182.854058971043, 5389P 9446 --8.49999999999996,83.9731823855374,-182.854058971043, 5389P 9447 --8.49999999999995,-1.764671875,1.764671875,-2.48586328125, 5389P 9448 -2.48586328125; 5389P 9449 -128,1,6,1,2,0,0,0,0,0,11.5962540906493,11.5962540906493, 5391P 9450 -14.5245559935925,14.5245559935925,3.13917765423161, 5391P 9451 -3.13917765423161,3.13917765423161,4.18718020521427, 5391P 9452 -4.18718020521427,5.23518275619693,5.23518275619693, 5391P 9453 -6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5391P 9454 -0.865824083692631,0.865824083692631,1.,1.,0.865824083692631, 5391P 9455 -0.865824083692631,1.,1.,0.865824083692631,0.865824083692631,1., 5391P 9456 -1.,18.9406505609936,-172.121201750437,-7.49999999999996, 5391P 9457 -18.9406505609936,-172.121201750437,-11.6,18.9396735534978, 5391P 9458 --171.312085990108,-7.49999999999996,18.9396735534978, 5391P 9459 --171.312085990108,-11.6,19.6402259760079,-170.907245809948, 5391P 9460 --7.49999999999996,19.6402259760079,-170.907245809948,-11.6, 5391P 9461 -20.340778398518,-170.502405629789,-7.49999999999996, 5391P 9462 -20.340778398518,-170.502405629789,-11.6,21.0413308210281, 5391P 9463 --170.907245809948,-7.49999999999996,21.0413308210281, 5391P 9464 --170.907245809948,-11.6,21.7418832435383,-171.312085990108, 5391P 9465 --7.49999999999996,21.7418832435383,-171.312085990108,-11.6, 5391P 9466 -21.7409062360425,-172.121201750437,-7.49999999999996, 5391P 9467 -21.7409062360425,-172.121201750437,-11.6,11.5962540906493, 5391P 9468 -14.5245559935925,3.13917765423161,6.28318530717959; 5391P 9469 -128,1,6,1,2,0,0,0,0,0,11.5962540906495,11.5962540906495, 5393P 9470 -14.5245559935927,14.5245559935927,3.13917765425437, 5393P 9471 -3.13917765425437,3.13917765425437,4.18718020522942, 5393P 9472 -4.18718020522942,5.23518275620448,5.23518275620448, 5393P 9473 -6.28318530717956,6.28318530717956,6.28318530717956,1.,1., 5393P 9474 -0.865824083694531,0.865824083694531,1.,1.,0.865824083694531, 5393P 9475 -0.865824083694531,1.,1.,0.865824083694531,0.865824083694531,1., 5393P 9476 -1.,21.7409062360425,-172.121201750437,-7.49999999999996, 5393P 9477 -21.7409062360425,-172.121201750437,-11.6,21.7418832435291, 5393P 9478 --172.930317510758,-7.49999999999996,21.7418832435291, 5393P 9479 --172.930317510758,-11.6,21.0413308210236,-173.335157690912, 5393P 9480 --7.49999999999996,21.0413308210236,-173.335157690912,-11.6, 5393P 9481 -20.3407783985181,-173.739997871065,-7.49999999999996, 5393P 9482 -20.3407783985181,-173.739997871065,-11.6,19.6402259760126, 5393P 9483 --173.335157690912,-7.49999999999996,19.6402259760126, 5393P 9484 --173.335157690912,-11.6,18.939673553507,-172.930317510759, 5393P 9485 --7.49999999999996,18.939673553507,-172.930317510759,-11.6, 5393P 9486 -18.9406505609936,-172.121201750437,-7.49999999999996, 5393P 9487 -18.9406505609936,-172.121201750437,-11.6,11.5962540906495, 5393P 9488 -14.5245559935927,3.13917765425437,6.28318530717956; 5393P 9489 -128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5395P 9490 -14.5245559935926,14.5245559935926,3.13917765424305, 5395P 9491 -3.13917765424305,3.13917765424305,4.18718020522189, 5395P 9492 -4.18718020522189,5.23518275620074,5.23518275620074, 5395P 9493 -6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5395P 9494 -0.865824083693586,0.865824083693586,1.,1.,0.865824083693586, 5395P 9495 -0.865824083693586,1.,1.,0.865824083693586,0.865824083693586,1., 5395P 9496 -1.,97.7151063167837,-190.598023114196,-7.49999999999994, 5395P 9497 -97.7151063167837,-190.598023114196,-11.6,97.7141293092926, 5395P 9498 --189.78890735387,-7.49999999999994,97.7141293092926, 5395P 9499 --189.78890735387,-11.6,98.4146817318004,-189.384067173714, 5395P 9500 --7.49999999999994,98.4146817318004,-189.384067173714,-11.6, 5395P 9501 -99.1152341543082,-188.979226993558,-7.49999999999994, 5395P 9502 -99.1152341543082,-188.979226993558,-11.6,99.815786576816, 5395P 9503 --189.384067173714,-7.49999999999994,99.815786576816, 5395P 9504 --189.384067173714,-11.6,100.516338999324,-189.78890735387, 5395P 9505 --7.49999999999994,100.516338999324,-189.78890735387,-11.6, 5395P 9506 -100.515361991833,-190.598023114196,-7.49999999999994, 5395P 9507 -100.515361991833,-190.598023114196,-11.6,11.5962540906494, 5395P 9508 -14.5245559935926,3.13917765424305,6.28318530717959; 5395P 9509 -128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5397P 9510 -14.5245559935926,14.5245559935926,3.13917765424295, 5397P 9511 -3.13917765424295,3.13917765424295,4.18718020522186, 5397P 9512 -4.18718020522186,5.23518275620077,5.23518275620077, 5397P 9513 -6.28318530717964,6.28318530717964,6.28318530717964,1.,1., 5397P 9514 -0.865824083693573,0.865824083693573,1.,1.,0.865824083693573, 5397P 9515 -0.865824083693573,1.,1.,0.865824083693573,0.865824083693573,1., 5397P 9516 -1.,100.515361991833,-190.598023114196,-7.49999999999994, 5397P 9517 -100.515361991833,-190.598023114196,-11.6,100.516338999324, 5397P 9518 --191.407138874521,-7.49999999999994,100.516338999324, 5397P 9519 --191.407138874521,-11.6,99.815786576816,-191.811979054677, 5397P 9520 --7.49999999999994,99.815786576816,-191.811979054677,-11.6, 5397P 9521 -99.1152341543081,-192.216819234834,-7.49999999999994, 5397P 9522 -99.1152341543081,-192.216819234834,-11.6,98.4146817318003, 5397P 9523 --191.811979054677,-7.49999999999994,98.4146817318003, 5397P 9524 --191.811979054677,-11.6,97.7141293092925,-191.407138874521, 5397P 9525 --7.49999999999994,97.7141293092925,-191.407138874521,-11.6, 5397P 9526 -97.7151063167837,-190.598023114196,-7.49999999999994, 5397P 9527 -97.7151063167837,-190.598023114196,-11.6,11.5962540906494, 5397P 9528 -14.5245559935926,3.13917765424295,6.28318530717964; 5397P 9529 -128,1,2,1,2,0,0,0,0,0,0.799309396681273,0.799309396681273, 5399P 9530 -5.99482047510957,5.99482047510957,-1.15918194829754, 5399P 9531 --1.15918194829754,-1.15918194829754,-0.0292778092733589, 5399P 9532 --0.0292778092733589,-0.0292778092733589,1.,1.,0.844614262194488, 5399P 9533 -0.844614262194488,1.,1.,4.43314110940288,-167.842837467805, 5399P 9534 -5.50000000000003,4.43314110940289,-167.842837467805, 5399P 9535 --7.49999999999997,2.97957034725773,-167.208278396419, 5399P 9536 -5.50000000000003,2.97957034725773,-167.208278396419, 5399P 9537 --7.49999999999997,2.93314110940286,-165.622914872961, 5399P 9538 -5.50000000000003,2.93314110940287,-165.622914872961, 5399P 9539 --7.49999999999997,0.799309396681273,5.99482047510957, 5399P 9540 --1.15918194829754,-0.0292778092733589; 5399P 9541 -128,1,1,1,1,0,0,1,0,0,0.228270146333974,0.228270146333974, 5401P 9542 -10.8879873393078,10.8879873393078,0.199,0.199,1.501,1.501,1.,1., 5401P 9543 -1.,1.,7.71696471074415,-248.749215886107,5.51000000000004, 5401P 9544 -114.314136640482,-248.749215886107,5.51000000000006, 5401P 9545 -7.71696471074415,-248.749215886107,-7.50999999999997, 5401P 9546 -114.314136640482,-248.749215886107,-7.50999999999995, 5401P 9547 -0.228270146333974,10.8879873393078,0.199,1.501; 5401P 9548 -128,1,1,1,1,0,0,1,0,0,0.228270146333972,0.228270146333972, 5403P 9549 -6.02854140723685,6.02854140723685,0.198999999999999, 5403P 9550 -0.198999999999999,1.501,1.501,1.,1.,1.,1.,4.43314128158948, 5403P 9551 --187.461624566824,5.51000000000003,4.43214255261294, 5403P 9552 --245.464337167254,5.51000000000003,4.43314128158948, 5403P 9553 --187.461624566824,-7.50999999999997,4.43214255261294, 5403P 9554 --245.464337167254,-7.50999999999997,0.228270146333972, 5403P 9555 -6.02854140723685,0.198999999999999,1.501; 5403P 9556 -128,1,1,1,1,0,0,1,0,0,3.75618683883495,3.75618683883495, 5405P 9557 -5.55913232655296,5.55913232655296,-4.36108541554375, 5405P 9558 --4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5405P 9559 -1.,23.4536836497758,-163.037507575232,5.50000000000002, 5405P 9560 -5.4242287725957,-163.037507575232,5.50000000000002, 5405P 9561 -23.4536836497758,-164.557507575232,5.50000000000002, 5405P 9562 -5.4242287725957,-164.557507575232,5.50000000000002, 5405P 9563 -3.75618683883495,5.55913232655296,-4.36108541554375, 5405P 9564 --4.20908541554375; 5405P 9565 -128,1,1,1,1,0,0,1,0,0,5.65724109287224,5.65724109287224, 5407P 9566 -5.809344879035,5.809344879035,-4.10354468577093, 5407P 9567 --4.10354468577093,4.11086510715957,4.11086510715957,1.,1.,1.,1., 5407P 9568 -4.44314110940289,-165.612914872961,5.50000000000002, 5407P 9569 -2.92210324777535,-165.612914872961,5.50000000000002, 5407P 9570 -4.44314110940289,-247.757012802266,5.50000000000002, 5407P 9571 -2.92210324777535,-247.757012802266,5.50000000000002, 5407P 9572 -5.65724109287224,5.809344879035,-4.10354468577093, 5407P 9573 -4.11086510715957; 5407P 9574 -128,1,1,1,1,0,0,1,0,0,-5.55912860656964,-5.55912860656964, 5409P 9575 -5.55912887907209,5.55912887907209,4.20908541554374, 5409P 9576 -4.20908541554374,4.36108541554375,4.36108541554375,1.,1.,1.,1., 5409P 9577 -116.606838103822,-248.739215886107,5.50000000000005, 5409P 9578 -5.42426324740444,-248.739215886107,5.50000000000002, 5409P 9579 -116.606838103822,-250.259215886107,5.50000000000005, 5409P 9580 -5.42426324740443,-250.259215886107,5.50000000000002, 5409P 9581 --5.55912860656964,5.55912887907209,4.20908541554374, 5409P 9582 -4.36108541554375; 5409P 9583 -128,1,1,1,1,0,0,1,0,0,0.228270146333966,0.228270146333966, 5411P 9584 -1.80194548771801,1.80194548771801,0.199,0.199,1.501,1.501,1.,1., 5411P 9585 -1.,1.,23.4536836497758,-164.547507575232,5.51000000000003, 5411P 9586 -7.71693023593539,-164.547507575232,5.51000000000003, 5411P 9587 -23.4536836497758,-164.547507575232,-7.50999999999997, 5411P 9588 -7.7169302359354,-164.547507575232,-7.50999999999998, 5411P 9589 -0.228270146333966,1.80194548771801,0.199,1.501; 5411P 9590 -128,1,1,1,1,0,0,1,0,0,10.0169535374057,10.0169535374057, 5413P 9591 -10.8879910592913,10.8879910592913,0.198999999999999, 5413P 9592 -0.198999999999999,1.501,1.501,1.,1.,1.,1.,114.314139365509, 5413P 9593 --164.547507575232,5.51000000000006,105.603764146653, 5413P 9594 --164.547507575232,5.51000000000006,114.314139365509, 5413P 9595 --164.547507575232,-7.50999999999994,105.603764146653, 5413P 9596 --164.547507575232,-7.50999999999994,10.0169535374057, 5413P 9597 -10.8879910592913,0.198999999999999,1.501; 5413P 9598 -128,1,1,1,1,0,0,1,0,0,-5.80934505627278,-5.80934505627278, 5415P 9599 --5.65734461417044,-5.65734461417044,-4.11086968638896, 5415P 9600 --4.11086968638896,4.11086941554375,4.11086941554375,1.,1.,1.,1., 5415P 9601 -119.109002600853,-165.53966486678,5.50000000000005, 5415P 9602 -117.58899817983,-165.53966486678,5.50000000000005, 5415P 9603 -119.109002600853,-247.757055886107,5.50000000000005, 5415P 9604 -117.58899817983,-247.757055886107,5.50000000000005, 5415P 9605 --5.80934505627278,-5.65734461417044,-4.11086968638896, 5415P 9606 -4.11086941554375; 5415P 9607 -128,1,1,1,1,0,0,1,0,0,-5.55912887907228,-5.55912887907228, 5417P 9608 --4.45882121085278,-4.45882121085278,-4.36108541554375, 5417P 9609 --4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5417P 9610 -1.,116.606840828848,-163.037507575232,5.50000000000005, 5417P 9611 -105.603764146653,-163.037507575232,5.50000000000004, 5417P 9612 -116.606840828848,-164.557507575232,5.50000000000005, 5417P 9613 -105.603764146653,-164.557507575232,5.50000000000004, 5417P 9614 --5.55912887907228,-4.45882121085278,-4.36108541554375, 5417P 9615 --4.20908541554375; 5417P 9616 -128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5419P 9617 -13.6416015478574,13.6416015478574,3.13925814733116, 5419P 9618 -3.13925814733116,3.13925814733116,4.18720703624771, 5419P 9619 -4.18720703624771,5.23515592516426,5.23515592516426, 5419P 9620 -6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5419P 9621 -0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5419P 9622 -0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5419P 9623 -1.,21.4157277366876,-228.698656211065,-7.49999999999997, 5419P 9624 -21.4157277366876,-228.698656211065,-11.6,21.4147507896972, 5419P 9625 --227.831805396136,-7.49999999999997,21.4147507896972, 5419P 9626 --227.831805396136,-11.6,22.1653032159716,-227.39809772364, 5419P 9627 --7.49999999999997,22.1653032159716,-227.39809772364,-11.6, 5419P 9628 -22.915855642246,-226.964390051143,-7.49999999999997, 5419P 9629 -22.915855642246,-226.964390051143,-11.6,23.6664080685249, 5419P 9630 --227.398097723632,-7.49999999999997,23.6664080685249, 5419P 9631 --227.398097723632,-11.6,24.4169604948039,-227.83180539612, 5419P 9632 --7.49999999999997,24.4169604948039,-227.83180539612,-11.6, 5419P 9633 -24.4159835478226,-228.69865621105,-7.49999999999997, 5419P 9634 -24.4159835478226,-228.69865621105,-11.6,10.7132996449142, 5419P 9635 -13.6416015478574,3.13925814733116,6.28310481408081; 5419P 9636 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5421P 9637 -13.6416015478576,13.6416015478576,3.13925814734165, 5421P 9638 -3.13925814734165,3.13925814734165,4.18720703625122, 5421P 9639 -4.18720703625122,5.23515592516079,5.23515592516079, 5421P 9640 -6.28310481407037,6.28310481407037,6.28310481407037,1.,1., 5421P 9641 -0.865837508250792,0.865837508250792,1.,1.,0.865837508250792, 5421P 9642 -0.865837508250792,1.,1.,0.865837508250792,0.865837508250792,1., 5421P 9643 -1.,24.4159835478226,-228.69865621105,-7.49999999999997, 5421P 9644 -24.4159835478226,-228.69865621105,-11.6,24.4169604948039, 5421P 9645 --229.565507025972,-7.49999999999997,24.4169604948039, 5421P 9646 --229.565507025972,-11.6,23.666408068534,-229.999214698462, 5421P 9647 --7.49999999999997,23.666408068534,-229.999214698462,-11.6, 5421P 9648 -22.9158556422642,-230.432922370953,-7.49999999999997, 5421P 9649 -22.9158556422642,-230.432922370953,-11.6,22.1653032159897, 5421P 9650 --229.99921469847,-7.49999999999997,22.1653032159897, 5421P 9651 --229.99921469847,-11.6,21.4147507897153,-229.565507025988, 5421P 9652 --7.49999999999997,21.4147507897153,-229.565507025988,-11.6, 5421P 9653 -21.4157277366876,-228.698656211065,-7.49999999999997, 5421P 9654 -21.4157277366876,-228.698656211065,-11.6,10.7132996449144, 5421P 9655 -13.6416015478576,3.13925814734165,6.28310481407037; 5421P 9656 -128,1,6,1,2,0,0,0,0,0,10.7132954794018,10.7132954794018, 5423P 9657 -13.6415962437716,13.6415962437716,3.13866619557958, 5423P 9658 -3.13866619557958,3.13866619557958,4.18680559830898, 5423P 9659 -4.18680559830898,5.23494500103838,5.23494500103838, 5423P 9660 -6.28308440376778,6.28308440376778,6.28308440376778,1.,1., 5423P 9661 -0.865789844880249,0.865789844880249,1.,1.,0.865789844880249, 5423P 9662 -0.865789844880249,1.,1.,0.865789844880249,0.865789844880249,1., 5423P 9663 -1.,97.617115874664,-228.698656211057,-7.49999999999994, 5423P 9664 -97.617115874664,-228.698656211057,-11.5999999999999, 5423P 9665 -97.6158909373877,-227.831614772873,-7.49999999999994, 5423P 9666 -97.6158909373877,-227.831614772873,-11.5999999999999, 5423P 9667 -98.3665673588096,-227.397740060174,-7.49999999999994, 5423P 9668 -98.3665673588096,-227.397740060174,-11.5999999999999, 5423P 9669 -99.1172437802314,-226.963865347475,-7.49999999999994, 5423P 9670 -99.1172437802314,-226.963865347475,-11.5999999999999, 5423P 9671 -99.8679202016534,-227.397740060174,-7.49999999999994, 5423P 9672 -99.8679202016534,-227.397740060174,-11.5999999999999, 5423P 9673 -100.618596623075,-227.831614772873,-7.49999999999994, 5423P 9674 -100.618596623075,-227.831614772873,-11.5999999999999, 5423P 9675 -100.617371685799,-228.698656211057,-7.49999999999994, 5423P 9676 -100.617371685799,-228.698656211057,-11.5999999999999, 5423P 9677 -10.7132954794018,13.6415962437716,3.13866619557958, 5423P 9678 -6.28308440376778; 5423P 9679 -128,1,6,1,2,0,0,0,0,0,10.7132954794019,10.7132954794019, 5425P 9680 -13.6415962437718,13.6415962437718,3.13866619559783, 5425P 9681 -3.13866619559783,3.13866619559783,4.18680559832112, 5425P 9682 -4.18680559832112,5.23494500104441,5.23494500104441, 5425P 9683 -6.2830844037677,6.2830844037677,6.2830844037677,1.,1., 5425P 9684 -0.865789844881778,0.865789844881778,1.,1.,0.865789844881778, 5425P 9685 -0.865789844881778,1.,1.,0.865789844881778,0.865789844881778,1., 5425P 9686 -1.,100.617371685799,-228.698656211056,-7.49999999999994, 5425P 9687 -100.617371685799,-228.698656211056,-11.5999999999999, 5425P 9688 -100.618596623067,-229.565697649234,-7.49999999999994, 5425P 9689 -100.618596623067,-229.565697649234,-11.5999999999999, 5425P 9690 -99.8679202016494,-229.999572361928,-7.49999999999994, 5425P 9691 -99.8679202016494,-229.999572361928,-11.5999999999999, 5425P 9692 -99.1172437802314,-230.433447074621,-7.49999999999994, 5425P 9693 -99.1172437802314,-230.433447074621,-11.5999999999999, 5425P 9694 -98.3665673588135,-229.999572361928,-7.49999999999994, 5425P 9695 -98.3665673588135,-229.999572361928,-11.5999999999999, 5425P 9696 -97.6158909373956,-229.565697649234,-7.49999999999994, 5425P 9697 -97.6158909373956,-229.565697649234,-11.5999999999999, 5425P 9698 -97.617115874664,-228.698656211056,-7.49999999999994, 5425P 9699 -97.617115874664,-228.698656211056,-11.5999999999999, 5425P 9700 -10.7132954794019,13.6415962437718,3.13866619559783, 5425P 9701 -6.2830844037677; 5425P 9702 -128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5427P 9703 -13.6416015478574,13.6416015478574,3.13925814733116, 5427P 9704 -3.13925814733116,3.13925814733116,4.18720703624771, 5427P 9705 -4.18720703624771,5.23515592516426,5.23515592516426, 5427P 9706 -6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5427P 9707 -0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5427P 9708 -0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5427P 9709 -1.,21.4157277366876,-190.598023114212,-7.49999999999997, 5427P 9710 -21.4157277366876,-190.598023114212,-11.6,21.4147507896972, 5427P 9711 --189.731172299282,-7.49999999999997,21.4147507896972, 5427P 9712 --189.731172299282,-11.6,22.1653032159716,-189.297464626786, 5427P 9713 --7.49999999999997,22.1653032159716,-189.297464626786,-11.6, 5427P 9714 -22.915855642246,-188.863756954289,-7.49999999999997, 5427P 9715 -22.915855642246,-188.863756954289,-11.6,23.6664080685249, 5427P 9716 --189.297464626778,-7.49999999999997,23.6664080685249, 5427P 9717 --189.297464626778,-11.6,24.4169604948039,-189.731172299267, 5427P 9718 --7.49999999999997,24.4169604948039,-189.731172299267,-11.6, 5427P 9719 -24.4159835478226,-190.598023114196,-7.49999999999997, 5427P 9720 -24.4159835478226,-190.598023114196,-11.6,10.7132996449142, 5427P 9721 -13.6416015478574,3.13925814733116,6.28310481408081; 5427P 9722 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5429P 9723 -13.6416015478576,13.6416015478576,3.13925814734168, 5429P 9724 -3.13925814734168,3.13925814734168,4.18720703625123, 5429P 9725 -4.18720703625123,5.23515592516079,5.23515592516079, 5429P 9726 -6.28310481407034,6.28310481407034,6.28310481407034,1.,1., 5429P 9727 -0.865837508250795,0.865837508250795,1.,1.,0.865837508250795, 5429P 9728 -0.865837508250795,1.,1.,0.865837508250795,0.865837508250795,1., 5429P 9729 -1.,24.4159835478226,-190.598023114196,-7.49999999999997, 5429P 9730 -24.4159835478226,-190.598023114196,-11.6,24.4169604948039, 5429P 9731 --191.464873929118,-7.49999999999997,24.4169604948039, 5429P 9732 --191.464873929118,-11.6,23.666408068534,-191.898581601608, 5429P 9733 --7.49999999999997,23.666408068534,-191.898581601608,-11.6, 5429P 9734 -22.9158556422642,-192.332289274099,-7.49999999999997, 5429P 9735 -22.9158556422642,-192.332289274099,-11.6,22.1653032159898, 5429P 9736 --191.898581601616,-7.49999999999997,22.1653032159898, 5429P 9737 --191.898581601616,-11.6,21.4147507897154,-191.464873929134, 5429P 9738 --7.49999999999997,21.4147507897154,-191.464873929134,-11.6, 5429P 9739 -21.4157277366876,-190.598023114211,-7.49999999999997, 5429P 9740 -21.4157277366876,-190.598023114211,-11.6,10.7132996449144, 5429P 9741 -13.6416015478576,3.13925814734168,6.28310481407034; 5429P 9742 -128,1,6,1,2,0,0,0,0,0,10.7132996449141,10.7132996449141, 5431P 9743 -13.6416015478573,13.6416015478573,3.13925814731996, 5431P 9744 -3.13925814731996,3.13925814731996,4.1872070362402, 5431P 9745 -4.1872070362402,5.23515592516045,5.23515592516045, 5431P 9746 -6.28310481408069,6.28310481408069,6.28310481408069,1.,1., 5431P 9747 -0.865837508248121,0.865837508248121,1.,1.,0.865837508248121, 5431P 9748 -0.865837508248121,1.,1.,0.865837508248121,0.865837508248121,1., 5431P 9749 -1.,100.190183492478,-172.121201750453,-7.49999999999994, 5431P 9750 -100.190183492478,-172.121201750453,-11.5999999999999, 5431P 9751 -100.189206545482,-171.25435093552,-7.49999999999994, 5431P 9752 -100.189206545482,-171.25435093552,-11.5999999999999, 5431P 9753 -100.939758971759,-170.82064326302,-7.49999999999994, 5431P 9754 -100.939758971759,-170.82064326302,-11.5999999999999, 5431P 9755 -101.690311398036,-170.38693559052,-7.49999999999994, 5431P 9756 -101.690311398036,-170.38693559052,-11.5999999999999, 5431P 9757 -102.440863824317,-170.820643263012,-7.49999999999994, 5431P 9758 -102.440863824317,-170.820643263012,-11.5999999999999, 5431P 9759 -103.191416250599,-171.254350935504,-7.49999999999994, 5431P 9760 -103.191416250599,-171.254350935504,-11.5999999999999, 5431P 9761 -103.190439303613,-172.121201750437,-7.49999999999994, 5431P 9762 -103.190439303613,-172.121201750437,-11.5999999999999, 5431P 9763 -10.7132996449141,13.6416015478573,3.13925814731996, 5431P 9764 -6.28310481408069; 5431P 9765 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5433P 9766 -13.6416015478577,13.6416015478577,3.13925814735297, 5433P 9767 -3.13925814735297,3.13925814735297,4.1872070362588, 5433P 9768 -4.1872070362588,5.23515592516463,5.23515592516463, 5433P 9769 -6.28310481407046,6.28310481407046,6.28310481407046,1.,1., 5433P 9770 -0.865837508251727,0.865837508251727,1.,1.,0.865837508251727, 5433P 9771 -0.865837508251727,1.,1.,0.865837508251727,0.865837508251727,1., 5433P 9772 -1.,103.190439303613,-172.121201750437,-7.49999999999994, 5433P 9773 -103.190439303613,-172.121201750437,-11.5999999999999, 5433P 9774 -103.191416250589,-172.988052565356,-7.49999999999994, 5433P 9775 -103.191416250589,-172.988052565356,-11.5999999999999, 5433P 9776 -102.440863824322,-173.421760237843,-7.49999999999994, 5433P 9777 -102.440863824322,-173.421760237843,-11.5999999999999, 5433P 9778 -101.690311398054,-173.85546791033,-7.49999999999994, 5433P 9779 -101.690311398054,-173.85546791033,-11.5999999999999, 5433P 9780 -100.939758971782,-173.421760237851,-7.49999999999994, 5433P 9781 -100.939758971782,-173.421760237851,-11.5999999999999, 5433P 9782 -100.18920654551,-172.988052565371,-7.49999999999994, 5433P 9783 -100.18920654551,-172.988052565371,-11.5999999999999, 5433P 9784 -100.190183492478,-172.121201750453,-7.49999999999994, 5433P 9785 -100.190183492478,-172.121201750453,-11.5999999999999, 5433P 9786 -10.7132996449144,13.6416015478577,3.13925814735297, 5433P 9787 -6.28310481407046; 5433P 9788 -128,1,1,1,1,0,0,1,0,0,-0.701000000000003,-0.701000000000003, 5435P 9789 -0.703178681517682,0.703178681517682,0.899,0.899,1.311,1.311,1., 5435P 9790 -1.,1.,1.,91.5819773314763,-164.547507575232,-7.48999999999993, 5435P 9791 -105.623764146653,-164.547507575232,-7.48999999999993, 5435P 9792 -91.5819773314763,-164.547507575232,-11.61,105.623764146653, 5435P 9793 --164.547507575232,-11.6099999999999,-0.701000000000003, 5435P 9794 -0.703178681517682,0.899,1.311; 5435P 9795 -128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5437P 9796 -0.800999999999997,0.800999999999997,1.,1.,1.,1., 5437P 9797 -105.613764146653,-164.557507575232,-11.6099999999999, 5437P 9798 -105.613764146653,-164.557507575232,5.51000000000006, 5437P 9799 -105.613764146653,-156.537507575232,-11.6099999999999, 5437P 9800 -105.613764146653,-156.537507575232,5.51000000000006,-0.601, 5437P 9801 -1.111,-0.001,0.800999999999997; 5437P 9802 -128,1,1,1,1,0,0,1,0,0,-5.83292786387186,-5.83292786387186, 5439P 9803 -5.83292652709446,5.83292652709446,-4.39739056237306, 5439P 9804 --4.39739056237306,4.38466970486183,4.38466970486183,1.,1.,1.,1., 5439P 9805 -119.344830676844,-162.674456106938,-7.49999999999994, 5439P 9806 -2.68628676718068,-162.674456106938,-7.49999999999997, 5439P 9807 -119.344830676844,-250.495058779287,-7.49999999999994, 5439P 9808 -2.68628676718068,-250.495058779287,-7.49999999999997, 5439P 9809 --5.83292786387186,5.83292652709446,-4.39739056237306, 5439P 9810 -4.38466970486183; 5439P 9811 -128,1,1,1,1,0,0,1,0,0,0.198999999999999,0.198999999999999, 5441P 9812 -1.9011635755716,1.9011635755716,0.898999999999999, 5441P 9813 -0.898999999999999,1.311,1.311,1.,1.,1.,1.,23.4336836497758, 5441P 9814 --164.547507575232,-7.48999999999996,40.4553194054918, 5441P 9815 --164.547507575232,-7.48999999999996,23.4336836497758, 5441P 9816 --164.547507575232,-11.61,40.4553194054918,-164.547507575232, 5441P 9817 --11.61,0.198999999999999,1.9011635755716,0.898999999999999, 5441P 9818 -1.311; 5441P 9819 -128,1,1,1,1,0,0,1,0,0,-0.600999999999999,-0.600999999999999, 5443P 9820 -1.111,1.111,-0.001,-0.001,0.801000000000001,0.801000000000001, 5443P 9821 -1.,1.,1.,1.,40.4453194054918,-164.557507575232,-11.61, 5443P 9822 -40.4453194054918,-164.557507575232,5.51000000000003, 5443P 9823 -40.4453194054918,-156.537507575232,-11.61,40.4453194054918, 5443P 9824 --156.537507575232,5.51000000000003,-0.600999999999999,1.111, 5443P 9825 --0.001,0.801000000000001; 5443P 9826 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000133,-0.00100000000000133, 5445P 9827 -1.7011635755716,1.7011635755716,-0.00100000000000355, 5445P 9828 --0.00100000000000355,0.651,0.651,1.,1.,1.,1.,40.4553194054918, 5445P 9829 --163.057507575232,1.50000000000003,23.4336836497758, 5445P 9830 --163.057507575232,1.50000000000003,40.4553194054918, 5445P 9831 --156.537507575232,1.50000000000003,23.4336836497758, 5445P 9832 --156.537507575232,1.50000000000003,-0.00100000000000133, 5445P 9833 -1.7011635755716,-0.00100000000000355,0.651; 5445P 9834 -128,1,1,1,1,0,0,1,0,0,1.199,1.199,2.60317868151768, 5447P 9835 -2.60317868151768,-0.001,-0.001,0.650999999999999, 5447P 9836 -0.650999999999999,1.,1.,1.,1.,105.623764146653, 5447P 9837 --163.057507575232,1.50000000000005,91.5819773314763, 5447P 9838 --163.057507575232,1.50000000000005,105.623764146653, 5447P 9839 --156.537507575232,1.50000000000005,91.5819773314763, 5447P 9840 --156.537507575232,1.50000000000005,1.199,2.60317868151768, 5447P 9841 --0.001,0.650999999999999; 5447P 9842 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000189,-0.00100000000000189, 5449P 9843 -11.1172612056252,11.1172612056252,-0.00100000000000083, 5449P 9844 --0.00100000000000083,0.601000000000001,0.601000000000001,1.,1., 5449P 9845 -1.,1.,116.606840828848,-163.047507575232,7.51000000000006, 5449P 9846 -5.42422877259571,-163.047507575232,7.51000000000003, 5449P 9847 -116.606840828848,-163.047507575232,1.49000000000005, 5449P 9848 -5.42422877259571,-163.047507575232,1.49000000000002, 5449P 9849 --0.00100000000000189,11.1172612056252,-0.00100000000000083, 5449P 9850 -0.601000000000001; 5449P 9851 -128,1,1,1,1,0,0,1,0,0,-0.411,-0.411,1.301,1.301,-0.001,-0.001, 5451P 9852 -0.801000000000001,0.801000000000001,1.,1.,1.,1., 5451P 9853 -23.4436836497758,-164.557507575232,5.51000000000003, 5451P 9854 -23.4436836497758,-164.557507575232,-11.61,23.4436836497758, 5451P 9855 --156.537507575232,5.51000000000003,23.4436836497758, 5451P 9856 --156.537507575232,-11.61,-0.411,1.301,-0.001,0.801000000000001; 5451P 9857 -128,1,1,1,1,0,0,1,0,0,-0.411000000000001,-0.411000000000001, 5453P 9858 -1.301,1.301,-0.001,-0.001,0.800999999999997,0.800999999999997, 5453P 9859 -1.,1.,1.,1.,91.5919773314763,-164.557507575232,5.51000000000004, 5453P 9860 -91.5919773314763,-164.557507575232,-11.6099999999999, 5453P 9861 -91.5919773314763,-156.537507575232,5.51000000000004, 5453P 9862 -91.5919773314763,-156.537507575232,-11.6099999999999, 5453P 9863 --0.411000000000001,1.301,-0.001,0.800999999999997; 5453P 9864 -128,1,1,1,1,0,0,1,0,0,3.5001090632896,3.5001090632896, 5455P 9865 -4.90089123368072,4.90089123368072,0.199,0.199,1.501,1.501,1.,1., 5455P 9866 -1.,1.,54.4431411094029,-164.547507575232,5.51000000000004, 5455P 9867 -40.4353194054918,-164.547507575232,5.51000000000003, 5455P 9868 -54.4431411094029,-164.547507575232,-7.50999999999997, 5455P 9869 -40.4353194054918,-164.547507575232,-7.50999999999997, 5455P 9870 -3.5001090632896,4.90089123368072,0.199,1.501; 5455P 9871 -128,1,1,1,1,0,0,1,0,0,-3.0586425293351,-3.0586425293351, 5457P 9872 -2.05802326326335,2.05802326326335,-4.36108541554375, 5457P 9873 --4.36108541554375,-3.50908541554383,-3.50908541554383,1.,1.,1., 5457P 9874 -1.,91.6019773314763,-163.037507575232,5.50000000000004, 5457P 9875 -40.4353194054918,-163.037507575232,5.50000000000003, 5457P 9876 -91.6019773314763,-171.557507575232,5.50000000000004, 5457P 9877 -40.4353194054918,-171.557507575232,5.50000000000003, 5457P 9878 --3.0586425293351,2.05802326326335,-4.36108541554375, 5457P 9879 --3.50908541554383; 5457P 9880 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5459P 9881 -0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5459P 9882 -74.4331411094029,-171.557507575232,-7.50999999999996, 5459P 9883 -74.4331411094029,-164.537507575232,-7.50999999999996, 5459P 9884 -74.4331411094029,-171.557507575232,5.51000000000004, 5459P 9885 -74.4331411094029,-164.537507575232,5.51000000000004,-0.001, 5459P 9886 -0.700999999999999,-0.001,1.301; 5459P 9887 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5461P 9888 -2.001,2.001,-0.00100000000000049,-0.00100000000000049,1.301, 5461P 9889 -1.301,1.,1.,1.,1.,54.4231411094029,-171.547507575231, 5461P 9890 --7.50999999999996,74.4431411094029,-171.547507575232, 5461P 9891 --7.50999999999996,54.4231411094029,-171.547507575231, 5461P 9892 -5.51000000000004,74.4431411094029,-171.547507575232, 5461P 9893 -5.51000000000004,-0.00100000000000178,2.001, 5461P 9894 --0.00100000000000049,1.301; 5461P 9895 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5463P 9896 -0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5463P 9897 -54.4331411094029,-164.537507575232,-7.50999999999996, 5463P 9898 -54.4331411094029,-171.557507575232,-7.50999999999996, 5463P 9899 -54.4331411094029,-164.537507575232,5.51000000000004, 5463P 9900 -54.4331411094029,-171.557507575232,5.51000000000004,-0.001, 5463P 9901 -0.700999999999999,-0.001,1.301; 5463P 9902 -128,1,1,1,1,0,0,1,0,0,0.228270425474422,0.228270425474422, 5465P 9903 -7.99146896389396,7.99146896389396,0.198999999999999, 5465P 9904 -0.198999999999999,1.501,1.501,1.,1.,1.,1.,117.598998179498, 5465P 9905 --245.464354455991,5.51000000000007,117.599000753169, 5465P 9906 --167.832369071796,5.51000000000007,117.598998179498, 5465P 9907 --245.464354455991,-7.50999999999994,117.599000753169, 5465P 9908 --167.832369071796,-7.50999999999994,0.228270425474422, 5465P 9909 -7.99146896389396,0.198999999999999,1.501; 5465P 9910 -128,1,1,1,1,0,0,1,0,0,6.89889123368072,6.89889123368072, 5467P 9911 -8.61677485588806,8.61677485588806,0.199,0.199,1.501,1.501,1.,1., 5467P 9912 -1.,1.,91.6019773314763,-164.547507575232,5.51000000000005, 5467P 9913 -74.4231411094029,-164.547507575232,5.51000000000004, 5467P 9914 -91.6019773314763,-164.547507575232,-7.50999999999995, 5467P 9915 -74.4231411094029,-164.547507575232,-7.50999999999996, 5467P 9916 -6.89889123368072,8.61677485588806,0.199,1.501; 5467P 9917 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.96387870990168, 5469P 9918 -1.96387870990168,0.198999999999999,0.198999999999999,1.501, 5469P 9919 -1.501,1.,1.,1.,1.,4.43314110940287,-167.832837467805, 5469P 9920 -5.51000000000003,4.43314110940289,-187.481624566822, 5469P 9921 -5.51000000000003,4.43314110940288,-167.832837467805, 5469P 9922 --7.50999999999997,4.43314110940289,-187.481624566822, 5469P 9923 --7.50999999999997,-0.001,1.96387870990168,0.198999999999999, 5469P 9924 -1.501; 5469P 9925 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20051956797476, 5471P 9926 -2.20051956797476,-0.001,-0.001,1.501,1.501,1.,1.,1.,1., 5471P 9927 -2.93314110940289,-165.466420277504,7.51000000000003, 5471P 9928 -2.9331411094029,-187.481615957251,7.51000000000003, 5471P 9929 -2.93314110940289,-165.466420277504,-7.50999999999997, 5471P 9930 -2.93314110940291,-187.481615957251,-7.50999999999997,-0.001, 5471P 9931 -2.20051956797476,-0.001,1.501; 5471P 9932 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5473P 9933 -6.02853968539494,6.02853968539494,-0.001,-0.001,0.201,0.201,1., 5473P 9934 -1.,1.,1.,2.93314128158951,-187.461615957253,7.51000000000003, 5473P 9935 -2.93210307558876,-247.757012802264,7.51000000000003, 5473P 9936 -2.93314128158951,-187.461615957253,5.49000000000003, 5473P 9937 -2.93210307558876,-247.757012802264,5.49000000000003, 5473P 9938 --0.00100000000000355,6.02853968539494,-0.001,0.201; 5473P 9939 -128,1,6,1,2,0,0,0,0,0,-2.44929359793162D-16, 5475P 9940 --2.44929359793162D-16,5.99482047510948,5.99482047510948, 5475P 9941 --2.72952782394451,-2.72952782394451,-2.72952782394451, 5475P 9942 --1.43344712313306,-1.43344712313306,-0.137366422321606, 5475P 9943 --0.137366422321606,1.15871427848985,1.15871427848985, 5475P 9944 -1.15871427848985,1.,1.,0.797268222513888,0.797268222513888,1., 5475P 9945 -1.,0.797268222513888,0.797268222513888,1.,1.,0.797268222513888, 5475P 9946 -0.797268222513888,1.,1.,7.72696471074416,-248.749215886107, 5475P 9947 -7.50000000000003,7.72696471074416,-248.749215886107, 5475P 9948 --7.49999999999997,6.96821249566286,-250.485058779287, 5475P 9949 -7.50000000000003,6.96821249566286,-250.485058779287, 5475P 9950 --7.49999999999997,5.09163041069214,-250.22564568775, 5475P 9951 -7.50000000000003,5.09163041069214,-250.22564568775, 5475P 9952 --7.49999999999997,3.21504832572142,-249.966232596213, 5475P 9953 -7.50000000000003,3.21504832572142,-249.966232596213, 5475P 9954 --7.49999999999997,2.95566754645106,-248.089646044774, 5475P 9955 -7.50000000000003,2.95566754645106,-248.089646044774, 5475P 9956 --7.49999999999997,2.69628676718069,-246.213059493336, 5475P 9957 -7.50000000000003,2.6962867671807,-246.213059493336, 5475P 9958 --7.49999999999997,4.43214272479956,-245.454337167255, 5475P 9959 -7.50000000000003,4.43214272479956,-245.454337167255, 5475P 9960 --7.49999999999997,-2.44929359793162D-16,5.99482047510948, 5475P 9961 --2.72952782394451,1.15871427848985; 5475P 9962 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5477P 9963 -11.1172574856417,-0.00100000000000078,-0.00100000000000078, 5477P 9964 -0.201000000000001,0.201000000000001,1.,1.,1.,1., 5477P 9965 -5.42426324740445,-250.249215886107,7.51000000000004, 5477P 9966 -116.606838103822,-250.249215886107,7.51000000000007, 5477P 9967 -5.42426324740445,-250.249215886107,5.49000000000003, 5477P 9968 -116.606838103822,-250.249215886107,5.49000000000005,-0.001, 5477P 9969 -11.1172574856417,-0.00100000000000078,0.201000000000001; 5477P 9970 -128,1,6,1,2,0,0,0,0,0,-2.17420625539854D-16, 5479P 9971 --2.17420625539854D-16,5.99482047510955,5.99482047510955, 5479P 9972 --2.72951057213252,-2.72951057213252,-2.72951057213252, 5479P 9973 --1.43343562192506,-1.43343562192506,-0.1373606717176, 5479P 9974 --0.1373606717176,1.15871427848986,1.15871427848986, 5479P 9975 -1.15871427848986,1.,1.,0.797269958115333,0.797269958115333,1., 5479P 9976 -1.,0.797269958115333,0.797269958115333,1.,1.,0.797269958115333, 5479P 9977 -0.797269958115333,1.,1.,117.59899817983,-245.454354455992, 5479P 9978 -7.50000000000006,117.59899817983,-245.454354455992, 5479P 9979 --7.49999999999994,119.334830676844,-246.213102195359, 5479P 9980 -7.50000000000006,119.334830676844,-246.213102195359, 5479P 9981 --7.49999999999994,119.07542986441,-248.089674551596, 5479P 9982 -7.50000000000006,119.07542986441,-248.089674551596, 5479P 9983 --7.49999999999994,118.816029051977,-249.966246907834, 5479P 9984 -7.50000000000006,118.816029051977,-249.966246907834, 5479P 9985 --7.49999999999994,116.93945668714,-250.225647658055, 5479P 9986 -7.50000000000006,116.93945668714,-250.225647658055, 5479P 9987 --7.49999999999994,115.062884322303,-250.485048408276, 5479P 9988 -7.50000000000006,115.062884322303,-250.485048408276, 5479P 9989 --7.49999999999994,114.304136640482,-248.749215886107, 5479P 9990 -7.50000000000006,114.304136640482,-248.749215886107, 5479P 9991 --7.49999999999994,-2.17420625539854D-16,5.99482047510955, 5479P 9992 --2.72951057213252,1.15871427848986; 5479P 9993 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,8.22073910193271, 5481P 9994 -8.22073910193271,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5481P 9995 -119.09899810349,-247.757055886107,7.51000000000006, 5481P 9996 -119.099000829178,-165.53966486678,7.51000000000006, 5481P 9997 -119.09899810349,-247.757055886107,5.49000000000006, 5481P 9998 -119.099000829178,-165.53966486678,5.49000000000006,-0.001, 5481P 9999 -8.22073910193271,-0.001,0.201; 5481P 10000 -128,1,6,1,2,0,0,0,0,0,-2.17420701633559D-16, 5483P 10001 --2.17420701633559D-16,5.99482047511063,5.99482047511063, 5483P 10002 --2.72950952283909,-2.72950952283909,-2.72950952283909, 5483P 10003 --1.43343455052993,-1.43343455052993,-0.137359578220759, 5483P 10004 --0.137359578220759,1.15871539408841,1.15871539408841, 5483P 10005 -1.15871539408841,1.,1.,0.797269951444785,0.797269951444785,1., 5483P 10006 -1.,0.797269951444785,0.797269951444785,1.,1.,0.797269951444785, 5483P 10007 -0.797269951444785,1.,1.,114.304139365509,-164.547507575232, 5483P 10008 -7.50000000000006,114.304139365509,-164.547507575232, 5483P 10009 --7.49999999999994,115.062887064753,-162.811675013205, 5483P 10010 -7.50000000000006,115.062887064753,-162.811675013205, 5483P 10011 --7.49999999999994,116.939459466948,-163.071075810858, 5483P 10012 -7.50000000000006,116.939459466948,-163.071075810858, 5483P 10013 --7.49999999999994,118.816031869142,-163.330476608511, 5483P 10014 -7.50000000000006,118.816031869142,-163.330476608511, 5483P 10015 --7.49999999999994,119.075432604581,-165.207049019306, 5483P 10016 -7.50000000000006,119.075432604581,-165.207049019306, 5483P 10017 --7.49999999999994,119.33483334002,-167.083621430101, 5483P 10018 -7.50000000000006,119.33483334002,-167.083621430101, 5483P 10019 --7.49999999999994,117.599000752838,-167.842369071796, 5483P 10020 -7.50000000000006,117.599000752838,-167.842369071796, 5483P 10021 --7.49999999999994,-2.17420701633559D-16,5.99482047511063, 5483P 10022 --2.72950952283909,1.15871539408841; 5483P 10023 -128,1,4,1,2,0,0,0,0,0,-2.44824391814757D-16, 5485P 10024 --2.44824391814757D-16,5.99482047510955,5.99482047510955, 5485P 10025 --1.54151851752146,-1.54151851752146,-1.54151851752146, 5485P 10026 --0.191402119515813,-0.191402119515813,1.15871427848983, 5485P 10027 -1.15871427848983,1.15871427848983,1.,1.,0.780670581409592, 5485P 10028 -0.780670581409592,1.,1.,0.780670581409592,0.780670581409592,1., 5485P 10029 -1.,2.93314110940286,-165.476420277504,7.50000000000003, 5485P 10030 -2.93314110940286,-165.476420277504,-7.49999999999997, 5485P 10031 -2.99177706791293,-163.474248497833,7.50000000000003, 5485P 10032 -2.99177706791294,-163.474248497833,-7.49999999999997, 5485P 10033 -4.95822887324418,-163.093200852189,7.50000000000003, 5485P 10034 -4.95822887324418,-163.093200852189,-7.49999999999997, 5485P 10035 -6.92468067857542,-162.712153206546,7.50000000000003, 5485P 10036 -6.92468067857543,-162.712153206546,-7.49999999999997, 5485P 10037 -7.72693023593539,-164.547507575232,7.50000000000003, 5485P 10038 -7.7269302359354,-164.547507575232,-7.49999999999997, 5485P 10039 --2.44824391814757D-16,5.99482047510955,-1.54151851752146, 5485P 10040 -1.15871427848983; 5485P 10041 -128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5487P 10042 -6.45935129953954,6.45935129953954,-5.01108541554375, 5487P 10043 --5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5487P 10044 -125.609000828846,-156.537507575232,7.50000000000006, 5487P 10045 --3.57796095727013,-156.537507575232,7.50000000000003, 5487P 10046 -125.609000828846,-256.759215886107,7.50000000000006, 5487P 10047 --3.57796095727013,-256.759215886107,7.50000000000003, 5487P 10048 --6.45934487907209,6.45935129953954,-5.01108541554375, 5487P 10049 -5.01108541554375; 5487P 10050 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20708325126057, 5489P 10051 -2.20708325126057,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5489P 10052 --3.56685889059712,-187.481555692063,7.51000000000003, 5489P 10053 --3.56685889059714,-165.400723179457,7.51000000000003, 5489P 10054 --3.56685889059711,-187.481555692063,-11.61,-3.56685889059713, 5489P 10055 --165.400723179457,-11.61,-0.001,2.20708325126057,-0.001,1.911; 5489P 10056 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,6.02853451978495, 5491P 10057 -6.02853451978495,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5491P 10058 --3.56789692344769,-247.756900880975,7.51000000000003, 5491P 10059 --3.56685871841052,-187.461555692064,7.51000000000003, 5491P 10060 --3.56789692344768,-247.756900880975,-11.61,-3.56685871841052, 5491P 10061 --187.461555692064,-11.61,-0.001,6.02853451978495,-0.001,1.911; 5491P 10062 -128,1,4,1,2,0,0,0,0,0,-2.44929359793162D-16, 5493P 10063 --2.44929359793162D-16,2.12171301109956,2.12171301109956, 5493P 10064 --1.57081354545471,-1.57081354545471,-1.57081354545471, 5493P 10065 --0.785406772727353,-0.785406772727353,0.,0.,0.,1.,1., 5493P 10066 -0.923877885178768,0.923877885178768,1.,1.,0.923877885178768, 5493P 10067 -0.923877885178768,1.,1.,5.43426324740446,-256.749215886107, 5493P 10068 --11.6,5.43426324740445,-256.749215886107,7.50000000000003, 5493P 10069 -1.70540108471929,-256.749215886107,-11.6,1.70540108471929, 5493P 10070 --256.749215886107,7.50000000000003,-0.931279936275416, 5493P 10071 --254.112489464608,-11.6,-0.931279936275421,-254.112489464608, 5493P 10072 -7.50000000000003,-3.56796095727012,-251.475763043109,-11.6, 5493P 10073 --3.56796095727013,-251.475763043109,7.50000000000003, 5493P 10074 --3.56789675126107,-247.746900880977,-11.6,-3.56789675126107, 5493P 10075 --247.746900880977,7.50000000000003,-2.44929359793162D-16, 5493P 10076 -2.12171301109956,-1.57081354545471,0.; 5493P 10077 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5495P 10078 -11.1172574856417,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5495P 10079 -116.606838103822,-256.749215886107,7.51000000000006, 5495P 10080 -5.42426324740443,-256.749215886107,7.51000000000003, 5495P 10081 -116.606838103822,-256.749215886107,-11.6099999999999, 5495P 10082 -5.42426324740443,-256.749215886107,-11.61,-0.001, 5495P 10083 -11.1172574856417,-0.001,1.911; 5495P 10084 -128,1,2,1,2,0,0,0,0,0,-2.95981068971121D-17, 5497P 10085 --2.95981068971121D-17,2.12171301109957,2.12171301109957, 5497P 10086 --1.57079632679491,-1.57079632679491,-1.57079632679491, 5497P 10087 -2.4929260496087D-15,2.4929260496087D-15,2.4929260496087D-15,1., 5497P 10088 -1.,0.707106781186542,0.707106781186542,1.,1.,125.598998103822, 5497P 10089 --247.747055886107,-11.5999999999999,125.598998103822, 5497P 10090 --247.747055886107,7.50000000000006,125.598998103822, 5497P 10091 --256.749215886107,-11.5999999999999,125.598998103822, 5497P 10092 --256.749215886107,7.50000000000006,116.596838103822, 5497P 10093 --256.749215886107,-11.5999999999999,116.596838103822, 5497P 10094 --256.749215886107,7.50000000000006,-2.95981068971121D-17, 5497P 10095 -2.12171301109957,-1.57079632679491,2.4929260496087D-15; 5497P 10096 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5499P 10097 -8.22073908038377,8.22073908038377,-0.001,-0.001,1.911,1.911,1., 5499P 10098 -1.,1.,1.,125.599000829178,-165.53966508227,7.51000000000006, 5499P 10099 -125.59899810349,-247.757055886107,7.51000000000006, 5499P 10100 -125.599000829178,-165.53966508227,-11.6099999999999, 5499P 10101 -125.59899810349,-247.757055886107,-11.6099999999999, 5499P 10102 --0.00100000000000355,8.22073908038377,-0.001,1.911; 5499P 10103 -128,1,2,1,2,0,0,0,0,0,-2.95981225633938D-17, 5501P 10104 --2.95981225633938D-17,2.12171301109993,2.12171301109993, 5501P 10105 --1.57079604986551,-1.57079604986551,-1.57079604986551, 5501P 10106 -4.70460948958054D-22,4.70460948958054D-22,4.70460948958054D-22, 5501P 10107 -1.,1.,0.707106879095863,0.707106879095863,1.,1., 5501P 10108 -116.596840828848,-156.547507575234,-11.5999999999999, 5501P 10109 -116.596840828848,-156.547507575234,7.50000000000006, 5501P 10110 -125.598998335884,-156.547507575234,-11.5999999999999, 5501P 10111 -125.598998335884,-156.547507575234,7.50000000000006, 5501P 10112 -125.599000828846,-165.54966508227,-11.5999999999999, 5501P 10113 -125.599000828846,-165.54966508227,7.50000000000006, 5501P 10114 --2.95981225633938D-17,2.12171301109993,-1.57079604986551, 5501P 10115 -4.70460948958054D-22; 5501P 10116 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000233,-0.00100000000000233, 5503P 10117 -11.1172612056252,11.1172612056252,-0.00100000000000087, 5503P 10118 --0.00100000000000087,1.911,1.911,1.,1.,1.,1.,5.42422877259571, 5503P 10119 --156.547507575232,7.51000000000004,116.606840828848, 5503P 10120 --156.547507575232,7.51000000000006,5.42422877259571, 5503P 10121 --156.547507575232,-11.61,116.606840828848,-156.547507575232, 5503P 10122 --11.61,-0.00100000000000233,11.1172612056252, 5503P 10123 --0.00100000000000087,1.911; 5503P 10124 -128,1,2,1,2,0,0,0,0,0,-2.44900183857515D-16, 5505P 10125 --2.44900183857515D-16,2.12171301109957,2.12171301109957, 5505P 10126 --1.55536115200856,-1.55536115200856,-1.55536115200856, 5505P 10127 -2.95988436008734D-15,2.95988436008734D-15,2.95988436008734D-15, 5505P 10128 -1.,1.,0.712542827450537,0.712542827450537,1.,1., 5505P 10129 --3.56685889059712,-165.410723179457,-11.6,-3.56685889059713, 5505P 10130 --165.410723179457,7.50000000000003,-3.43004274316728, 5505P 10131 --156.547507575232,-11.6,-3.43004274316728,-156.547507575232, 5505P 10132 -7.50000000000003,5.43422877259571,-156.547507575232,-11.6, 5505P 10133 -5.4342287725957,-156.547507575232,7.50000000000003, 5505P 10134 --2.44900183857515D-16,2.12171301109957,-1.55536115200856, 5505P 10135 -2.95988436008734D-15; 5505P 10136 -128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5507P 10137 -6.45935129953954,6.45935129953954,-5.01108541554375, 5507P 10138 --5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5507P 10139 --3.57796095727013,-156.537507575232,-11.6,125.609000828846, 5507P 10140 --156.537507575232,-11.5999999999999,-3.57796095727014, 5507P 10141 --256.759215886107,-11.6,125.609000828846,-256.759215886107, 5507P 10142 --11.5999999999999,-6.45934487907209,6.45935129953954, 5507P 10143 --5.01108541554375,5.01108541554375; 5507P 10144 -128,1,1,1,1,0,0,1,0,0,6.89889123368072,6.89889123368072, 5509P 10145 -7.61615528746972,7.61615528746972,0.199,0.199,1.501,1.501,1.,1., 5509P 10146 -1.,1.,220.762682252201,-164.547507575232,5.51,213.590041714311, 5509P 10147 --164.547507575232,5.51,220.762682252201,-164.547507575232,-7.51, 5509P 10148 -213.590041714311,-164.547507575232,-7.51,6.89889123368072, 5509P 10149 -7.61615528746972,0.199,1.501; 5509P 10150 -128,1,1,1,1,0,0,1,0,0,-2.05802296091676,-2.05802296091676, 5511P 10151 -3.05802326326335,3.05802326326335,-4.36108541554375, 5511P 10152 --4.36108541554375,-3.50908541554383,-3.50908541554383,1.,1.,1., 5511P 10153 -1.,220.762682252201,-163.037507575232,5.5,169.602220010399, 5511P 10154 --163.037507575232,5.5,220.762682252201,-171.557507575232,5.5, 5511P 10155 -169.602220010399,-171.557507575232,5.5,-2.05802296091676, 5511P 10156 -3.05802326326335,-4.36108541554375,-3.50908541554383; 5511P 10157 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5513P 10158 -11.1172612056252,11.1172612056252,-0.001,-0.001,0.601,0.601,1., 5513P 10159 -1.,1.,1.,255.773741433756,-163.047507575232,7.51, 5513P 10160 -144.591129377503,-163.047507575232,7.51,255.773741433756, 5513P 10161 --163.047507575232,1.49,144.591129377503,-163.047507575232,1.49, 5513P 10162 --0.00100000000000178,11.1172612056252,-0.001,0.601; 5513P 10163 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5515P 10164 -0.800999999999997,0.800999999999997,9.999,9.999,11.711,11.711, 5515P 10165 -1.,1.,1.,1.,155.584237511039,-164.557507575232,-11.61, 5515P 10166 -155.584237511039,-156.537507575232,-11.61,155.584237511039, 5515P 10167 --164.557507575232,5.50999999999998,155.584237511039, 5515P 10168 --156.537507575232,5.50999999999998,-0.00100000000000355, 5515P 10169 -0.800999999999997,9.999,11.711; 5515P 10170 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.800999999999999, 5517P 10171 -0.800999999999999,9.999,9.999,11.711,11.711,1.,1.,1.,1., 5517P 10172 -220.752682252201,-164.557507575232,-11.61,220.752682252201, 5517P 10173 --156.537507575232,-11.61,220.752682252201,-164.557507575232, 5517P 10174 -5.51,220.752682252201,-156.537507575232,5.51,-0.001, 5517P 10175 -0.800999999999999,9.999,11.711; 5517P 10176 -128,1,1,1,1,0,0,1,0,0,0.228270146333967,0.228270146333967, 5519P 10177 -1.09931081335358,1.09931081335358,0.199,0.199,1.501,1.501,1.,1., 5519P 10178 -1.,1.,155.594237511039,-164.547507575232,5.51,146.883830840843, 5519P 10179 --164.547507575232,5.51,155.594237511039,-164.547507575232,-7.51, 5519P 10180 -146.883830840843,-164.547507575232,-7.51,0.228270146333967, 5519P 10181 -1.09931081335358,0.199,1.501; 5519P 10182 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000178,-0.00100000000000178, 5521P 10183 -11.1172612056252,11.1172612056252,-0.001,-0.001,1.911,1.911,1., 5521P 10184 -1.,1.,1.,144.591129377503,-156.547507575232,7.51, 5521P 10185 -255.773741433756,-156.547507575232,7.51,144.591129377503, 5521P 10186 --156.547507575232,-11.61,255.773741433756,-156.547507575232, 5521P 10187 --11.61,-0.00100000000000178,11.1172612056252,-0.001,1.911; 5521P 10188 -128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5523P 10189 -6.45935129953954,6.45935129953954,-5.01108541554375, 5523P 10190 --5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5523P 10191 -135.588939647638,-156.537507575232,-11.6,264.775901433754, 5523P 10192 --156.537507575232,-11.6,135.588939647638,-256.759215886107, 5523P 10193 --11.6,264.775901433754,-256.759215886107,-11.6, 5523P 10194 --6.45934487907209,6.45935129953954,-5.01108541554375, 5523P 10195 -5.01108541554375; 5523P 10196 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.90334375,0.90334375, 5525P 10197 --0.001,-0.001,0.101,0.101,1.,1.,1.,1.,189.322570909196, 5525P 10198 --187.660756010089,-7.49,198.366008409196,-187.660756010089, 5525P 10199 --7.49,189.322570909196,-187.660756010089,-8.51,198.366008409196, 5525P 10200 --187.660756010089,-8.51,-0.001,0.90334375,-0.001,0.101; 5525P 10201 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.562521192363372, 5527P 10202 -0.844152403739511,0.844152403739511,0.844152403739511, 5527P 10203 -0.844152403739511,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5527P 10204 -198.356008409196,-187.660756010089,-7.5,200.231830522622, 5527P 10205 --187.649960043727,-7.5,203.046799571848,-187.633758981298,-7.5, 5527P 10206 -205.856214479556,-187.800454535029,-7.5,206.793508409196, 5527P 10207 --187.856068510089,-7.5,198.356008409196,-187.660756010089,-8.5, 5527P 10208 -200.231830522622,-187.649960043727,-8.5,203.046799571848, 5527P 10209 --187.633758981298,-8.5,205.856214479556,-187.800454535029,-8.5, 5527P 10210 -206.793508409196,-187.856068510089,-8.5,0.,0.844152403739511,0., 5527P 10211 -0.1; 5527P 10212 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.261898150092223, 5529P 10213 -0.497778933126644,0.497778933126644,0.497778933126644, 5529P 10214 -0.497778933126644,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5529P 10215 -206.793508409196,-187.856068510089,-7.5,207.662882757985, 5529P 10216 --188.049967147936,-7.5,209.315266463925,-188.418502233228,-7.5, 5529P 10217 -210.559416215435,-189.560844484626,-7.5,211.148977159196, 5529P 10218 --190.102162260089,-7.5,206.793508409196,-187.856068510089,-8.5, 5529P 10219 -207.662882757985,-188.049967147936,-8.5,209.315266463925, 5529P 10220 --188.418502233228,-8.5,210.559416215435,-189.560844484626,-8.5, 5529P 10221 -211.148977159196,-190.102162260089,-8.5,0.,0.497778933126644,0., 5529P 10222 -0.1; 5529P 10223 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.235900997344428, 5531P 10224 -0.499964111306824,0.499964111306824,0.499964111306824, 5531P 10225 -0.499964111306824,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5531P 10226 -211.148977159196,-190.102162260089,-7.5,211.598623495598, 5531P 10227 --190.765518704879,-7.5,212.551595435151,-192.171423805461,-7.5, 5531P 10228 -212.643437973881,-193.871965743153,-7.5,212.691945909196, 5531P 10229 --194.770131010089,-7.5,211.148977159196,-190.102162260089,-8.5, 5531P 10230 -211.598623495598,-190.765518704879,-8.5,212.551595435151, 5531P 10231 --192.171423805461,-8.5,212.643437973881,-193.871965743153,-8.5, 5531P 10232 -212.691945909196,-194.770131010089,-8.5,0.,0.499964111306824,0., 5531P 10233 -0.1; 5531P 10234 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.238137123420061, 5533P 10235 -0.450534415924653,0.450534415924653,0.450534415924653, 5533P 10236 -0.450534415924653,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5533P 10237 -212.691945909196,-194.770131010089,-7.5,212.655290538983, 5533P 10238 --195.575101594424,-7.5,212.585941814299,-197.098034881101,-7.5, 5533P 10239 -211.861566257095,-198.436165560765,-7.5,211.520070909196, 5533P 10240 --199.067006010089,-7.5,212.691945909196,-194.770131010089,-8.5, 5533P 10241 -212.655290538983,-195.575101594424,-8.5,212.585941814299, 5533P 10242 --197.098034881101,-8.5,211.861566257095,-198.436165560765,-8.5, 5533P 10243 -211.520070909196,-199.067006010089,-8.5,0.,0.450534415924653,0., 5533P 10244 -0.1; 5533P 10245 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.202384184696661, 5535P 10246 -0.410291107118963,0.410291107118963,0.410291107118963, 5535P 10247 -0.410291107118963,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5535P 10248 -211.520070909196,-199.067006010089,-7.5,211.087476419098, 5535P 10249 --199.599125342313,-7.5,210.210482633534,-200.677884684425,-7.5, 5535P 10250 -208.927838177421,-201.216133860944,-7.5,208.277883409196, 5535P 10251 --201.488881010089,-7.5,211.520070909196,-199.067006010089,-8.5, 5535P 10252 -211.087476419098,-199.599125342313,-8.5,210.210482633534, 5535P 10253 --200.677884684425,-8.5,208.927838177421,-201.216133860944,-8.5, 5535P 10254 -208.277883409196,-201.488881010089,-8.5,0.,0.410291107118963,0., 5535P 10255 -0.1; 5535P 10256 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.367088791586182, 5537P 10257 -1.04309862016124,1.04309862016124,1.04309862016124, 5537P 10258 -1.04309862016124,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5537P 10259 -208.277883409196,-201.488881010089,-7.5,207.069106365723, 5537P 10260 --201.689994183538,-7.5,203.634314307158,-202.261465932413,-7.5, 5537P 10261 -200.147189290955,-202.219319929824,-7.5,197.887258409196, 5537P 10262 --202.192006010089,-7.5,208.277883409196,-201.488881010089,-8.5, 5537P 10263 -207.069106365723,-201.689994183538,-8.5,203.634314307158, 5537P 10264 --202.261465932413,-8.5,200.147189290955,-202.219319929824,-8.5, 5537P 10265 -197.887258409196,-202.192006010089,-8.5,0.,1.04309862016124,0., 5537P 10266 -0.1; 5537P 10267 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.85646875,0.85646875, 5539P 10268 --0.001,-0.001,0.101,0.101,1.,1.,1.,1.,197.897258409196, 5539P 10269 --202.192006010089,-7.49,189.322570909196,-202.192006010089, 5539P 10270 --7.49,197.897258409196,-202.192006010089,-8.51,189.322570909196, 5539P 10271 --202.192006010089,-8.51,-0.001,0.85646875,-0.001,0.101; 5539P 10272 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.454125,1.454125,-0.001, 5541P 10273 --0.001,0.101,0.101,1.,1.,1.,1.,189.332570909196, 5541P 10274 --202.202006010089,-7.49,189.332570909196,-187.650756010089, 5541P 10275 --7.49,189.332570909196,-202.202006010089,-8.51,189.332570909196, 5541P 10276 --187.650756010089,-8.51,-0.001,1.454125,-0.001,0.101; 5541P 10277 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.391625,2.391625,-0.001, 5543P 10278 --0.001,0.101,0.101,1.,1.,1.,1.,189.332570909196, 5543P 10279 --235.248881010089,-7.49,189.332570909196,-211.322631010089, 5543P 10280 --7.49,189.332570909196,-235.248881010089,-8.51,189.332570909196, 5543P 10281 --211.322631010089,-8.51,-0.001,2.391625,-0.001,0.101; 5543P 10282 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.235375,0.235375,-0.001, 5545P 10283 --0.001,0.101,0.101,1.,1.,1.,1.,189.322570909196, 5545P 10284 --211.332631010089,-7.49,191.686320909196,-211.332631010089, 5545P 10285 --7.49,189.322570909196,-211.332631010089,-8.51,191.686320909196, 5545P 10286 --211.332631010089,-8.51,-0.001,0.235375,-0.001,0.101; 5545P 10287 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.345102942215374, 5547P 10288 -0.58728108987376,0.58728108987376,0.58728108987376, 5547P 10289 -0.58728108987376,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5547P 10290 -191.676320909196,-211.332631010089,-7.5,192.831842297831, 5547P 10291 --211.334659249473,-7.5,194.798258046518,-211.338110818527,-7.5, 5547P 10292 -196.708785715842,-211.790577691044,-7.5,197.496633409196, 5547P 10293 --211.977162260089,-7.5,191.676320909196,-211.332631010089,-8.5, 5547P 10294 -192.831842297831,-211.334659249473,-8.5,194.798258046518, 5547P 10295 --211.338110818527,-8.5,196.708785715842,-211.790577691044,-8.5, 5547P 10296 -197.496633409196,-211.977162260089,-8.5,0.,0.58728108987376,0., 5547P 10297 -0.1; 5547P 10298 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.200908599721103, 5549P 10299 -0.424515823966796,0.424515823966796,0.424515823966796, 5549P 10300 -0.424515823966796,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5549P 10301 -197.496633409196,-211.977162260089,-7.5,198.113566785881, 5549P 10302 --212.251744615522,-7.5,199.417134582878,-212.831931601172,-7.5, 5549P 10303 -200.436343293178,-213.832788618144,-7.5,200.973195909196, 5549P 10304 --214.359974760089,-7.5,197.496633409196,-211.977162260089,-8.5, 5549P 10305 -198.113566785881,-212.251744615522,-8.5,199.417134582878, 5549P 10306 --212.831931601172,-8.5,200.436343293178,-213.832788618144,-8.5, 5549P 10307 -200.973195909196,-214.359974760089,-8.5,0.,0.424515823966796,0., 5549P 10308 -0.1; 5549P 10309 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.378624565580162, 5551P 10310 -1.03970923338266,1.03970923338266,1.03970923338266, 5551P 10311 -1.03970923338266,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5551P 10312 -200.973195909196,-214.359974760089,-7.5,201.766342156981, 5551P 10313 --215.342414541706,-7.5,203.94433469157,-218.04021020804,-7.5, 5551P 10314 -205.853212488561,-220.936425355574,-7.5,207.066945909196, 5551P 10315 --222.777943510089,-7.5,200.973195909196,-214.359974760089,-8.5, 5551P 10316 -201.766342156981,-215.342414541706,-8.5,203.94433469157, 5551P 10317 --218.04021020804,-8.5,205.853212488561,-220.936425355574,-8.5, 5551P 10318 -207.066945909196,-222.777943510089,-8.5,0.,1.03970923338266,0., 5551P 10319 -0.1; 5551P 10320 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.50151362462835, 5553P 10321 -1.50151362462835,-0.001,-0.001,0.101,0.101,1.,1.,1.,1., 5553P 10322 -207.061374900134,-222.769639062002,-7.49,215.431891918257, 5553P 10323 --235.247185458177,-7.49,207.061374900134,-222.769639062002, 5553P 10324 --8.51,215.431891918257,-235.247185458177,-8.51,-0.001, 5553P 10325 -1.50151362462835,-0.001,0.101; 5553P 10326 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.3838125,1.3838125,-0.001, 5555P 10327 --0.001,0.101,0.101,1.,1.,1.,1.,215.416320909196, 5555P 10328 --235.238881010089,-7.49,229.264445909196,-235.238881010089, 5555P 10329 --7.49,215.416320909196,-235.238881010089,-8.51,229.264445909196, 5555P 10330 --235.238881010089,-8.51,-0.001,1.3838125,-0.001,0.101; 5555P 10331 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.31895856175671, 5557P 10332 -1.31895856175671,-0.001,-0.001,0.101,0.101,1.,1.,1.,1., 5557P 10333 -229.259751225844,-235.247357661271,-7.49,222.256953092547, 5557P 10334 --224.058529358908,-7.49,229.259751225844,-235.247357661271, 5557P 10335 --8.51,222.256953092547,-224.058529358908,-8.51,-0.001, 5557P 10336 -1.31895856175671,-0.001,0.101; 5557P 10337 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.677413644671362, 5559P 10338 -1.14014998210771,1.14014998210771,1.14014998210771, 5559P 10339 -1.14014998210771,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5559P 10340 -222.262258409196,-224.067006010089,-7.5,221.071194285368, 5559P 10341 --222.144734836071,-7.5,219.066522914849,-218.90937419357,-7.5, 5559P 10342 -216.657814949634,-215.965086764049,-7.5,215.680227159196, 5559P 10343 --214.770131010089,-7.5,222.262258409196,-224.067006010089,-8.5, 5559P 10344 -221.071194285368,-222.144734836071,-8.5,219.066522914849, 5559P 10345 --218.90937419357,-8.5,216.657814949634,-215.965086764049,-8.5, 5559P 10346 -215.680227159196,-214.770131010089,-8.5,0.,1.14014998210771,0., 5559P 10347 -0.1; 5559P 10348 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.373681930926689, 5561P 10349 -0.785781181487306,0.785781181487306,0.785781181487306, 5561P 10350 -0.785781181487306,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5561P 10351 -215.680227159196,-214.770131010089,-7.5,214.783943791004, 5561P 10352 --213.899557402522,-7.5,212.899232367418,-212.068908657398,-7.5, 5561P 10353 -210.662083255283,-210.689085359138,-7.5,209.488820909196, 5561P 10354 --209.965443510089,-7.5,215.680227159196,-214.770131010089,-8.5, 5561P 10355 -214.783943791004,-213.899557402522,-8.5,212.899232367418, 5561P 10356 --212.068908657398,-8.5,210.662083255283,-210.689085359138,-8.5, 5561P 10357 -209.488820909196,-209.965443510089,-8.5,0.,0.785781181487306,0., 5561P 10358 -0.1; 5561P 10359 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.686133847994611, 5563P 10360 -1.26971165673407,1.26971165673407,1.26971165673407, 5563P 10361 -1.26971165673407,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5563P 10362 -209.488820909196,-209.965443510089,-7.5,211.783402108826, 5563P 10363 --209.536092499316,-7.5,216.029594750405,-208.741565331179,-7.5, 5563P 10364 -219.30946855557,-205.953780785553,-7.5,220.816945909196, 5563P 10365 --204.672474760089,-7.5,209.488820909196,-209.965443510089,-8.5, 5563P 10366 -211.783402108826,-209.536092499316,-8.5,216.029594750405, 5563P 10367 --208.741565331179,-8.5,219.30946855557,-205.953780785553,-8.5, 5563P 10368 -220.816945909196,-204.672474760089,-8.5,0.,1.26971165673407,0., 5563P 10369 -0.1; 5563P 10370 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.554440940539225, 5565P 10371 -1.15039635746486,1.15039635746486,1.15039635746486, 5565P 10372 -1.15039635746486,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5565P 10373 -220.816945909196,-204.672474760089,-7.5,221.921692259118, 5565P 10374 --203.14284764226,-7.5,224.213904258538,-199.969060614703,-7.5, 5565P 10375 -224.472199977234,-196.055393519306,-7.5,224.606008409196, 5565P 10376 --194.027943510089,-7.5,220.816945909196,-204.672474760089,-8.5, 5565P 10377 -221.921692259118,-203.14284764226,-8.5,224.213904258538, 5565P 10378 --199.969060614703,-8.5,224.472199977234,-196.055393519306,-8.5, 5565P 10379 -224.606008409196,-194.027943510089,-8.5,0.,1.15039635746486,0., 5565P 10380 -0.1; 5565P 10381 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.483548351122755, 5567P 10382 -0.946106124712921,0.946106124712921,0.946106124712921, 5567P 10383 -0.946106124712921,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5567P 10384 -224.606008409196,-194.027943510089,-7.5,224.51140065161, 5567P 10385 --192.397733878194,-7.5,224.326292009032,-189.208081150147,-7.5, 5567P 10386 -222.835074753493,-186.384818489344,-7.5,222.106008409196, 5567P 10387 --185.004506010089,-7.5,224.606008409196,-194.027943510089,-8.5, 5567P 10388 -224.51140065161,-192.397733878194,-8.5,224.326292009032, 5567P 10389 --189.208081150147,-8.5,222.835074753493,-186.384818489344,-8.5, 5567P 10390 -222.106008409196,-185.004506010089,-8.5,0.,0.946106124712921,0., 5567P 10391 -0.1; 5567P 10392 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.443673849959561, 5569P 10393 -0.875191282358429,0.875191282358429,0.875191282358429, 5569P 10394 -0.875191282358429,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5569P 10395 -222.106008409196,-185.004506010089,-7.5,221.213376913017, 5569P 10396 --183.793211270963,-7.5,219.45257152887,-181.403810597143,-7.5, 5569P 10397 -216.769000336918,-180.1395665842,-7.5,215.445852159196, 5569P 10398 --179.516224760089,-7.5,222.106008409196,-185.004506010089,-8.5, 5569P 10399 -221.213376913017,-183.793211270963,-8.5,219.45257152887, 5569P 10400 --181.403810597143,-8.5,216.769000336918,-180.1395665842,-8.5, 5569P 10401 -215.445852159196,-179.516224760089,-8.5,0.,0.875191282358429,0., 5569P 10402 -0.1; 5569P 10403 -128,4,1,3,1,0,0,1,0,0,0.,0.,0.,0.,0.553731174536493, 5571P 10404 -1.34714989356346,1.34714989356346,1.34714989356346, 5571P 10405 -1.34714989356346,0.,0.,0.1,0.1,1.,1.,1.,1.,1.,1.,1.,1.,1.,1., 5571P 10406 -215.445852159196,-179.516224760089,-7.5,213.648767024992, 5571P 10407 --179.069647768159,-7.5,209.276712211041,-177.983188896397,-7.5, 5571P 10408 -204.763886597037,-177.976937713112,-7.5,202.106008409196, 5571P 10409 --177.973256010089,-7.5,215.445852159196,-179.516224760089,-8.5, 5571P 10410 -213.648767024992,-179.069647768159,-8.5,209.276712211041, 5571P 10411 --177.983188896397,-8.5,204.763886597037,-177.976937713112,-8.5, 5571P 10412 -202.106008409196,-177.973256010089,-8.5,0.,1.34714989356346,0., 5571P 10413 -0.1; 5571P 10414 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.43459375,2.43459375, 5573P 10415 --0.001,-0.001,0.101,0.101,1.,1.,1.,1.,202.116008409196, 5573P 10416 --177.973256010089,-7.49,177.760070909196,-177.973256010089, 5573P 10417 --7.49,202.116008409196,-177.973256010089,-8.51,177.760070909196, 5573P 10418 --177.973256010089,-8.51,-0.001,2.43459375,-0.001,0.101; 5573P 10419 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,5.7275625,5.7275625,-0.001, 5575P 10420 --0.001,0.101,0.101,1.,1.,1.,1.,177.770070909196, 5575P 10421 --177.963256010089,-7.49,177.770070909196,-235.248881010089, 5575P 10422 --7.49,177.770070909196,-177.963256010089,-8.51,177.770070909196, 5575P 10423 --235.248881010089,-8.51,-0.001,5.7275625,-0.001,0.101; 5575P 10424 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.15725,1.15725,-0.001, 5577P 10425 --0.001,0.101,0.101,1.,1.,1.,1.,177.760070909196, 5577P 10426 --235.238881010089,-7.49,189.342570909196,-235.238881010089, 5577P 10427 --7.49,177.760070909196,-235.238881010089,-8.51,189.342570909196, 5577P 10428 --235.238881010089,-8.51,-0.001,1.15725,-0.001,0.101; 5577P 10429 -128,1,1,1,1,0,0,1,0,0,-2.57521875,-2.57521875,2.57521875, 5579P 10430 -2.57521875,-2.86428125,-2.86428125,2.86428125,2.86428125,1.,1., 5579P 10431 -1.,1.,229.264445909196,-177.963256010089,-8.5,177.760070909196, 5579P 10432 --177.963256010089,-8.5,229.264445909196,-235.248881010089,-8.5, 5579P 10433 -177.760070909196,-235.248881010089,-8.5,-2.57521875,2.57521875, 5579P 10434 --2.86428125,2.86428125; 5579P 10435 -128,1,1,1,1,0,0,1,0,0,-5.83292786387186,-5.83292786387186, 5581P 10436 -5.83292652709446,5.83292652709446,-4.39739056237306, 5581P 10437 --4.39739056237306,4.38466970486183,4.38466970486183,1.,1.,1.,1., 5581P 10438 -258.511731281752,-162.674456106938,-7.5,141.853187372088, 5581P 10439 --162.674456106938,-7.5,258.511731281752,-250.495058779287,-7.5, 5581P 10440 -141.853187372088,-250.495058779287,-7.5,-5.83292786387186, 5581P 10441 -5.83292652709446,-4.39739056237306,4.38466970486183; 5581P 10442 -128,1,6,1,2,0,0,0,0,0,11.5962540906493,11.5962540906493, 5583P 10443 -14.5245559935925,14.5245559935925,3.13917765423161, 5583P 10444 -3.13917765423161,3.13917765423161,4.18718020521427, 5583P 10445 -4.18718020521427,5.23518275619693,5.23518275619693, 5583P 10446 -6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5583P 10447 -0.865824083692631,0.865824083692631,1.,1.,0.865824083692631, 5583P 10448 -0.865824083692631,1.,1.,0.865824083692631,0.865824083692631,1., 5583P 10449 -1.,158.107551165901,-172.121201750437,-7.5,158.107551165901, 5583P 10450 --172.121201750437,-11.6,158.106574158405,-171.312085990108,-7.5, 5583P 10451 -158.106574158405,-171.312085990108,-11.6,158.807126580916, 5583P 10452 --170.907245809948,-7.5,158.807126580916,-170.907245809948,-11.6, 5583P 10453 -159.507679003426,-170.502405629789,-7.5,159.507679003426, 5583P 10454 --170.502405629789,-11.6,160.208231425936,-170.907245809948,-7.5, 5583P 10455 -160.208231425936,-170.907245809948,-11.6,160.908783848446, 5583P 10456 --171.312085990108,-7.5,160.908783848446,-171.312085990108,-11.6, 5583P 10457 -160.90780684095,-172.121201750437,-7.5,160.90780684095, 5583P 10458 --172.121201750437,-11.6,11.5962540906493,14.5245559935925, 5583P 10459 -3.13917765423161,6.28318530717959; 5583P 10460 -128,1,6,1,2,0,0,0,0,0,11.5962540906495,11.5962540906495, 5585P 10461 -14.5245559935927,14.5245559935927,3.13917765425437, 5585P 10462 -3.13917765425437,3.13917765425437,4.18718020522942, 5585P 10463 -4.18718020522942,5.23518275620448,5.23518275620448, 5585P 10464 -6.28318530717956,6.28318530717956,6.28318530717956,1.,1., 5585P 10465 -0.865824083694531,0.865824083694531,1.,1.,0.865824083694531, 5585P 10466 -0.865824083694531,1.,1.,0.865824083694531,0.865824083694531,1., 5585P 10467 -1.,160.90780684095,-172.121201750437,-7.5,160.90780684095, 5585P 10468 --172.121201750437,-11.6,160.908783848437,-172.930317510758,-7.5, 5585P 10469 -160.908783848437,-172.930317510758,-11.6,160.208231425931, 5585P 10470 --173.335157690912,-7.5,160.208231425931,-173.335157690912,-11.6, 5585P 10471 -159.507679003426,-173.739997871065,-7.5,159.507679003426, 5585P 10472 --173.739997871065,-11.6,158.80712658092,-173.335157690912,-7.5, 5585P 10473 -158.80712658092,-173.335157690912,-11.6,158.106574158415, 5585P 10474 --172.930317510759,-7.5,158.106574158415,-172.930317510759,-11.6, 5585P 10475 -158.107551165901,-172.121201750437,-7.5,158.107551165901, 5585P 10476 --172.121201750437,-11.6,11.5962540906495,14.5245559935927, 5585P 10477 -3.13917765425437,6.28318530717956; 5585P 10478 -128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5587P 10479 -14.5245559935926,14.5245559935926,3.13917765424305, 5587P 10480 -3.13917765424305,3.13917765424305,4.18718020522189, 5587P 10481 -4.18718020522189,5.23518275620074,5.23518275620074, 5587P 10482 -6.28318530717959,6.28318530717959,6.28318530717959,1.,1., 5587P 10483 -0.865824083693586,0.865824083693586,1.,1.,0.865824083693586, 5587P 10484 -0.865824083693586,1.,1.,0.865824083693586,0.865824083693586,1., 5587P 10485 -1.,236.882006921691,-190.598023114196,-7.5,236.882006921691, 5587P 10486 --190.598023114196,-11.6,236.8810299142,-189.78890735387,-7.5, 5587P 10487 -236.8810299142,-189.78890735387,-11.6,237.581582336708, 5587P 10488 --189.384067173714,-7.5,237.581582336708,-189.384067173714,-11.6, 5587P 10489 -238.282134759216,-188.979226993558,-7.5,238.282134759216, 5587P 10490 --188.979226993558,-11.6,238.982687181724,-189.384067173714,-7.5, 5587P 10491 -238.982687181724,-189.384067173714,-11.6,239.683239604231, 5587P 10492 --189.78890735387,-7.5,239.683239604231,-189.78890735387,-11.6, 5587P 10493 -239.68226259674,-190.598023114196,-7.5,239.68226259674, 5587P 10494 --190.598023114196,-11.6,11.5962540906494,14.5245559935926, 5587P 10495 -3.13917765424305,6.28318530717959; 5587P 10496 -128,1,6,1,2,0,0,0,0,0,11.5962540906494,11.5962540906494, 5589P 10497 -14.5245559935926,14.5245559935926,3.13917765424295, 5589P 10498 -3.13917765424295,3.13917765424295,4.18718020522186, 5589P 10499 -4.18718020522186,5.23518275620077,5.23518275620077, 5589P 10500 -6.28318530717964,6.28318530717964,6.28318530717964,1.,1., 5589P 10501 -0.865824083693573,0.865824083693573,1.,1.,0.865824083693573, 5589P 10502 -0.865824083693573,1.,1.,0.865824083693573,0.865824083693573,1., 5589P 10503 -1.,239.68226259674,-190.598023114196,-7.5,239.68226259674, 5589P 10504 --190.598023114196,-11.6,239.683239604231,-191.407138874521,-7.5, 5589P 10505 -239.683239604231,-191.407138874521,-11.6,238.982687181724, 5589P 10506 --191.811979054677,-7.5,238.982687181724,-191.811979054677,-11.6, 5589P 10507 -238.282134759216,-192.216819234834,-7.5,238.282134759216, 5589P 10508 --192.216819234834,-11.6,237.581582336708,-191.811979054677,-7.5, 5589P 10509 -237.581582336708,-191.811979054677,-11.6,236.8810299142, 5589P 10510 --191.407138874521,-7.5,236.8810299142,-191.407138874521,-11.6, 5589P 10511 -236.882006921691,-190.598023114196,-7.5,236.882006921691, 5589P 10512 --190.598023114196,-11.6,11.5962540906494,14.5245559935926, 5589P 10513 -3.13917765424295,6.28318530717964; 5589P 10514 -128,1,2,1,2,0,0,0,0,0,0.799309396681276,0.799309396681276, 5591P 10515 -5.99482047510957,5.99482047510957,-1.15918194829754, 5591P 10516 --1.15918194829754,-1.15918194829754,-0.029277809273359, 5591P 10517 --0.029277809273359,-0.029277809273359,1.,1.,0.844614262194489, 5591P 10518 -0.844614262194489,1.,1.,143.600041714311,-167.842837467805,5.5, 5591P 10519 -143.600041714311,-167.842837467805,-7.5,142.146470952165, 5591P 10520 --167.208278396419,5.5,142.146470952165,-167.208278396419,-7.5, 5591P 10521 -142.10004171431,-165.622914872961,5.5,142.10004171431, 5591P 10522 --165.622914872961,-7.5,0.799309396681276,5.99482047510957, 5591P 10523 --1.15918194829754,-0.029277809273359; 5591P 10524 -128,1,1,1,1,0,0,1,0,0,0.228270146333974,0.228270146333974, 5593P 10525 -10.8879873393078,10.8879873393078,0.199,0.199,1.501,1.501,1.,1., 5593P 10526 -1.,1.,146.883865315652,-248.749215886107,5.51,253.48103724539, 5593P 10527 --248.749215886107,5.51,146.883865315652,-248.749215886107,-7.51, 5593P 10528 -253.48103724539,-248.749215886107,-7.51,0.228270146333974, 5593P 10529 -10.8879873393078,0.199,1.501; 5593P 10530 -128,1,1,1,1,0,0,1,0,0,0.228270146333972,0.228270146333972, 5595P 10531 -6.02854140723685,6.02854140723685,0.199,0.199,1.501,1.501,1.,1., 5595P 10532 -1.,1.,143.600041886497,-187.461624566824,5.51,143.599043157521, 5595P 10533 --245.464337167254,5.51,143.600041886497,-187.461624566824,-7.51, 5595P 10534 -143.599043157521,-245.464337167254,-7.51,0.228270146333972, 5595P 10535 -6.02854140723685,0.199,1.501; 5595P 10536 -128,1,1,1,1,0,0,1,0,0,4.45882151319937,4.45882151319937, 5597P 10537 -5.55913232655296,5.55913232655296,-4.36108541554375, 5597P 10538 --4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5597P 10539 -1.,155.594237511039,-163.037507575232,5.5,144.591129377503, 5597P 10540 --163.037507575232,5.5,155.594237511039,-164.557507575232,5.5, 5597P 10541 -144.591129377503,-164.557507575232,5.5,4.45882151319937, 5597P 10542 -5.55913232655296,-4.36108541554375,-4.20908541554375; 5597P 10543 -128,1,1,1,1,0,0,1,0,0,5.65724109287224,5.65724109287224, 5599P 10544 -5.80934487903499,5.80934487903499,-4.10354468577093, 5599P 10545 --4.10354468577093,4.11086510715957,4.11086510715957,1.,1.,1.,1., 5599P 10546 -143.610041714311,-165.612914872961,5.5,142.089003852683, 5599P 10547 --165.612914872961,5.5,143.610041714311,-247.757012802266,5.5, 5599P 10548 -142.089003852683,-247.757012802266,5.5,5.65724109287224, 5599P 10549 -5.80934487903499,-4.10354468577093,4.11086510715957; 5599P 10550 -128,1,1,1,1,0,0,1,0,0,-5.55912860656964,-5.55912860656964, 5601P 10551 -5.55912887907209,5.55912887907209,4.20908541554374, 5601P 10552 -4.20908541554374,4.36108541554375,4.36108541554375,1.,1.,1.,1., 5601P 10553 -255.773738708729,-248.739215886107,5.5,144.591163852312, 5601P 10554 --248.739215886107,5.5,255.773738708729,-250.259215886107,5.5, 5601P 10555 -144.591163852312,-250.259215886107,5.5,-5.55912860656964, 5601P 10556 -5.55912887907209,4.20908541554374,4.36108541554375; 5601P 10557 -128,1,1,1,1,0,0,1,0,0,9.31695353740574,9.31695353740574, 5603P 10558 -10.8879910592913,10.8879910592913,0.199,0.199,1.501,1.501,1.,1., 5603P 10559 -1.,1.,253.481039970417,-164.547507575232,5.51,237.770664751561, 5603P 10560 --164.547507575232,5.51,253.481039970417,-164.547507575232,-7.51, 5603P 10561 -237.770664751561,-164.547507575232,-7.51,9.31695353740574, 5603P 10562 -10.8879910592913,0.199,1.501; 5603P 10563 -128,1,1,1,1,0,0,1,0,0,-5.80934505627278,-5.80934505627278, 5605P 10564 --5.65734461417045,-5.65734461417045,-4.11086968638896, 5605P 10565 --4.11086968638896,4.11086941554375,4.11086941554375,1.,1.,1.,1., 5605P 10566 -258.275903205761,-165.53966486678,5.5,256.755898784737, 5605P 10567 --165.53966486678,5.5,258.275903205761,-247.757055886107,5.5, 5605P 10568 -256.755898784737,-247.757055886107,5.5,-5.80934505627278, 5605P 10569 --5.65734461417045,-4.11086968638896,4.11086941554375; 5605P 10570 -128,1,1,1,1,0,0,1,0,0,-5.55912887907228,-5.55912887907228, 5607P 10571 --3.75882121085278,-3.75882121085278,-4.36108541554375, 5607P 10572 --4.36108541554375,-4.20908541554375,-4.20908541554375,1.,1.,1., 5607P 10573 -1.,255.773741433756,-163.037507575232,5.5,237.770664751561, 5607P 10574 --163.037507575232,5.5,255.773741433756,-164.557507575232,5.5, 5607P 10575 -237.770664751561,-164.557507575232,5.5,-5.55912887907228, 5607P 10576 --3.75882121085278,-4.36108541554375,-4.20908541554375; 5607P 10577 -128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5609P 10578 -13.6416015478574,13.6416015478574,3.13925814733116, 5609P 10579 -3.13925814733116,3.13925814733116,4.18720703624771, 5609P 10580 -4.18720703624771,5.23515592516426,5.23515592516426, 5609P 10581 -6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5609P 10582 -0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5609P 10583 -0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5609P 10584 -1.,160.582628341595,-228.698656211065,-7.5,160.582628341595, 5609P 10585 --228.698656211065,-11.6,160.581651394605,-227.831805396136,-7.5, 5609P 10586 -160.581651394605,-227.831805396136,-11.6,161.332203820879, 5609P 10587 --227.39809772364,-7.5,161.332203820879,-227.39809772364,-11.6, 5609P 10588 -162.082756247154,-226.964390051143,-7.5,162.082756247154, 5609P 10589 --226.964390051143,-11.6,162.833308673433,-227.398097723632,-7.5, 5609P 10590 -162.833308673433,-227.398097723632,-11.6,163.583861099712, 5609P 10591 --227.83180539612,-7.5,163.583861099712,-227.83180539612,-11.6, 5609P 10592 -163.58288415273,-228.69865621105,-7.5,163.58288415273, 5609P 10593 --228.69865621105,-11.6,10.7132996449142,13.6416015478574, 5609P 10594 -3.13925814733116,6.28310481408081; 5609P 10595 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5611P 10596 -13.6416015478576,13.6416015478576,3.13925814734165, 5611P 10597 -3.13925814734165,3.13925814734165,4.18720703625122, 5611P 10598 -4.18720703625122,5.23515592516079,5.23515592516079, 5611P 10599 -6.28310481407037,6.28310481407037,6.28310481407037,1.,1., 5611P 10600 -0.865837508250792,0.865837508250792,1.,1.,0.865837508250792, 5611P 10601 -0.865837508250792,1.,1.,0.865837508250792,0.865837508250792,1., 5611P 10602 -1.,163.58288415273,-228.69865621105,-7.5,163.58288415273, 5611P 10603 --228.69865621105,-11.6,163.583861099712,-229.565507025972,-7.5, 5611P 10604 -163.583861099712,-229.565507025972,-11.6,162.833308673442, 5611P 10605 --229.999214698462,-7.5,162.833308673442,-229.999214698462,-11.6, 5611P 10606 -162.082756247172,-230.432922370953,-7.5,162.082756247172, 5611P 10607 --230.432922370953,-11.6,161.332203820897,-229.99921469847,-7.5, 5611P 10608 -161.332203820897,-229.99921469847,-11.6,160.581651394623, 5611P 10609 --229.565507025988,-7.5,160.581651394623,-229.565507025988,-11.6, 5611P 10610 -160.582628341595,-228.698656211065,-7.5,160.582628341595, 5611P 10611 --228.698656211065,-11.6,10.7132996449144,13.6416015478576, 5611P 10612 -3.13925814734165,6.28310481407037; 5611P 10613 -128,1,6,1,2,0,0,0,0,0,10.7132954794018,10.7132954794018, 5613P 10614 -13.6415962437716,13.6415962437716,3.13866619557958, 5613P 10615 -3.13866619557958,3.13866619557958,4.18680559830898, 5613P 10616 -4.18680559830898,5.23494500103838,5.23494500103838, 5613P 10617 -6.28308440376778,6.28308440376778,6.28308440376778,1.,1., 5613P 10618 -0.865789844880249,0.865789844880249,1.,1.,0.865789844880249, 5613P 10619 -0.865789844880249,1.,1.,0.865789844880249,0.865789844880249,1., 5613P 10620 -1.,236.784016479572,-228.698656211057,-7.5,236.784016479572, 5613P 10621 --228.698656211057,-11.6,236.782791542295,-227.831614772873,-7.5, 5613P 10622 -236.782791542295,-227.831614772873,-11.6,237.533467963717, 5613P 10623 --227.397740060174,-7.5,237.533467963717,-227.397740060174,-11.6, 5613P 10624 -238.284144385139,-226.963865347475,-7.5,238.284144385139, 5613P 10625 --226.963865347475,-11.6,239.034820806561,-227.397740060174,-7.5, 5613P 10626 -239.034820806561,-227.397740060174,-11.6,239.785497227983, 5613P 10627 --227.831614772873,-7.5,239.785497227983,-227.831614772873,-11.6, 5613P 10628 -239.784272290707,-228.698656211057,-7.5,239.784272290707, 5613P 10629 --228.698656211057,-11.6,10.7132954794018,13.6415962437716, 5613P 10630 -3.13866619557958,6.28308440376778; 5613P 10631 -128,1,6,1,2,0,0,0,0,0,10.7132954794019,10.7132954794019, 5615P 10632 -13.6415962437718,13.6415962437718,3.13866619559783, 5615P 10633 -3.13866619559783,3.13866619559783,4.18680559832112, 5615P 10634 -4.18680559832112,5.23494500104441,5.23494500104441, 5615P 10635 -6.2830844037677,6.2830844037677,6.2830844037677,1.,1., 5615P 10636 -0.865789844881778,0.865789844881778,1.,1.,0.865789844881778, 5615P 10637 -0.865789844881778,1.,1.,0.865789844881778,0.865789844881778,1., 5615P 10638 -1.,239.784272290707,-228.698656211056,-7.5,239.784272290707, 5615P 10639 --228.698656211056,-11.6,239.785497227975,-229.565697649234,-7.5, 5615P 10640 -239.785497227975,-229.565697649234,-11.6,239.034820806557, 5615P 10641 --229.999572361928,-7.5,239.034820806557,-229.999572361928,-11.6, 5615P 10642 -238.284144385139,-230.433447074621,-7.5,238.284144385139, 5615P 10643 --230.433447074621,-11.6,237.533467963721,-229.999572361928,-7.5, 5615P 10644 -237.533467963721,-229.999572361928,-11.6,236.782791542303, 5615P 10645 --229.565697649234,-7.5,236.782791542303,-229.565697649234,-11.6, 5615P 10646 -236.784016479572,-228.698656211056,-7.5,236.784016479572, 5615P 10647 --228.698656211056,-11.6,10.7132954794019,13.6415962437718, 5615P 10648 -3.13866619559783,6.2830844037677; 5615P 10649 -128,1,6,1,2,0,0,0,0,0,10.7132996449142,10.7132996449142, 5617P 10650 -13.6416015478574,13.6416015478574,3.13925814733116, 5617P 10651 -3.13925814733116,3.13925814733116,4.18720703624771, 5617P 10652 -4.18720703624771,5.23515592516426,5.23515592516426, 5617P 10653 -6.28310481408081,6.28310481408081,6.28310481408081,1.,1., 5617P 10654 -0.865837508249046,0.865837508249046,1.,1.,0.865837508249046, 5617P 10655 -0.865837508249046,1.,1.,0.865837508249046,0.865837508249046,1., 5617P 10656 -1.,160.582628341595,-190.598023114212,-7.5,160.582628341595, 5617P 10657 --190.598023114212,-11.6,160.581651394605,-189.731172299282,-7.5, 5617P 10658 -160.581651394605,-189.731172299282,-11.6,161.332203820879, 5617P 10659 --189.297464626786,-7.5,161.332203820879,-189.297464626786,-11.6, 5617P 10660 -162.082756247154,-188.863756954289,-7.5,162.082756247154, 5617P 10661 --188.863756954289,-11.6,162.833308673433,-189.297464626778,-7.5, 5617P 10662 -162.833308673433,-189.297464626778,-11.6,163.583861099712, 5617P 10663 --189.731172299267,-7.5,163.583861099712,-189.731172299267,-11.6, 5617P 10664 -163.58288415273,-190.598023114196,-7.5,163.58288415273, 5617P 10665 --190.598023114196,-11.6,10.7132996449142,13.6416015478574, 5617P 10666 -3.13925814733116,6.28310481408081; 5617P 10667 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5619P 10668 -13.6416015478576,13.6416015478576,3.13925814734168, 5619P 10669 -3.13925814734168,3.13925814734168,4.18720703625123, 5619P 10670 -4.18720703625123,5.23515592516079,5.23515592516079, 5619P 10671 -6.28310481407034,6.28310481407034,6.28310481407034,1.,1., 5619P 10672 -0.865837508250795,0.865837508250795,1.,1.,0.865837508250795, 5619P 10673 -0.865837508250795,1.,1.,0.865837508250795,0.865837508250795,1., 5619P 10674 -1.,163.58288415273,-190.598023114196,-7.5,163.58288415273, 5619P 10675 --190.598023114196,-11.6,163.583861099711,-191.464873929118,-7.5, 5619P 10676 -163.583861099711,-191.464873929118,-11.6,162.833308673442, 5619P 10677 --191.898581601608,-7.5,162.833308673442,-191.898581601608,-11.6, 5619P 10678 -162.082756247172,-192.332289274099,-7.5,162.082756247172, 5619P 10679 --192.332289274099,-11.6,161.332203820897,-191.898581601616,-7.5, 5619P 10680 -161.332203820897,-191.898581601616,-11.6,160.581651394623, 5619P 10681 --191.464873929134,-7.5,160.581651394623,-191.464873929134,-11.6, 5619P 10682 -160.582628341595,-190.598023114211,-7.5,160.582628341595, 5619P 10683 --190.598023114211,-11.6,10.7132996449144,13.6416015478576, 5619P 10684 -3.13925814734168,6.28310481407034; 5619P 10685 -128,1,6,1,2,0,0,0,0,0,10.7132996449141,10.7132996449141, 5621P 10686 -13.6416015478573,13.6416015478573,3.13925814731996, 5621P 10687 -3.13925814731996,3.13925814731996,4.1872070362402, 5621P 10688 -4.1872070362402,5.23515592516045,5.23515592516045, 5621P 10689 -6.28310481408069,6.28310481408069,6.28310481408069,1.,1., 5621P 10690 -0.865837508248121,0.865837508248121,1.,1.,0.865837508248121, 5621P 10691 -0.865837508248121,1.,1.,0.865837508248121,0.865837508248121,1., 5621P 10692 -1.,239.357084097385,-172.121201750453,-7.5,239.357084097385, 5621P 10693 --172.121201750453,-11.6,239.35610715039,-171.25435093552,-7.5, 5621P 10694 -239.35610715039,-171.25435093552,-11.6,240.106659576667, 5621P 10695 --170.82064326302,-7.5,240.106659576667,-170.82064326302,-11.6, 5621P 10696 -240.857212002944,-170.38693559052,-7.5,240.857212002944, 5621P 10697 --170.38693559052,-11.6,241.607764429225,-170.820643263012,-7.5, 5621P 10698 -241.607764429225,-170.820643263012,-11.6,242.358316855506, 5621P 10699 --171.254350935504,-7.5,242.358316855506,-171.254350935504,-11.6, 5621P 10700 -242.35733990852,-172.121201750437,-7.5,242.35733990852, 5621P 10701 --172.121201750437,-11.6,10.7132996449141,13.6416015478573, 5621P 10702 -3.13925814731996,6.28310481408069; 5621P 10703 -128,1,6,1,2,0,0,0,0,0,10.7132996449144,10.7132996449144, 5623P 10704 -13.6416015478577,13.6416015478577,3.13925814735297, 5623P 10705 -3.13925814735297,3.13925814735297,4.1872070362588, 5623P 10706 -4.1872070362588,5.23515592516463,5.23515592516463, 5623P 10707 -6.28310481407046,6.28310481407046,6.28310481407046,1.,1., 5623P 10708 -0.865837508251727,0.865837508251727,1.,1.,0.865837508251727, 5623P 10709 -0.865837508251727,1.,1.,0.865837508251727,0.865837508251727,1., 5623P 10710 -1.,242.35733990852,-172.121201750437,-7.5,242.35733990852, 5623P 10711 --172.121201750437,-11.6,242.358316855497,-172.988052565356,-7.5, 5623P 10712 -242.358316855497,-172.988052565356,-11.6,241.607764429229, 5623P 10713 --173.421760237843,-7.5,241.607764429229,-173.421760237843,-11.6, 5623P 10714 -240.857212002962,-173.85546791033,-7.5,240.857212002962, 5623P 10715 --173.85546791033,-11.6,240.10665957669,-173.421760237851,-7.5, 5623P 10716 -240.10665957669,-173.421760237851,-11.6,239.356107150418, 5623P 10717 --172.988052565371,-7.5,239.356107150418,-172.988052565371,-11.6, 5623P 10718 -239.357084097385,-172.121201750453,-7.5,239.357084097385, 5623P 10719 --172.121201750453,-11.6,10.7132996449144,13.6416015478577, 5623P 10720 -3.13925814735297,6.28310481407046; 5623P 10721 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000002,-0.00100000000000002, 5625P 10722 -1.70379824993602,1.70379824993602,0.899,0.899,1.311,1.311,1.,1., 5625P 10723 -1.,1.,220.742682252201,-164.547507575232,-7.49,237.790664751561, 5625P 10724 --164.547507575232,-7.49,220.742682252201,-164.547507575232, 5625P 10725 --11.61,237.790664751561,-164.547507575232,-11.61, 5625P 10726 --0.00100000000000002,1.70379824993602,0.899,1.311; 5625P 10727 -128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5627P 10728 -0.800999999999997,0.800999999999997,1.,1.,1.,1., 5627P 10729 -237.780664751561,-164.557507575232,-11.61,237.780664751561, 5627P 10730 --164.557507575232,5.51,237.780664751561,-156.537507575232, 5627P 10731 --11.61,237.780664751561,-156.537507575232,5.51,-0.601,1.111, 5627P 10732 --0.001,0.800999999999997; 5627P 10733 -128,1,1,1,1,0,0,1,0,0,-1.25194932661626,-1.25194932661626, 5629P 10734 -1.08598817338374,1.08598817338374,-1.90191976533037, 5629P 10735 --1.90191976533037,-0.439172788111116,-0.439172788111116,1.,1., 5629P 10736 -1.,1.,212.701945909196,-187.629164077365,-7.5,189.322570909196, 5629P 10737 --187.629164077365,-7.5,212.701945909196,-202.256633849558,-7.5, 5629P 10738 -189.322570909196,-202.256633849558,-7.5,-1.25194932661626, 5629P 10739 -1.08598817338374,-1.90191976533037,-0.439172788111116; 5629P 10740 -128,1,1,1,1,0,0,1,0,0,1.199,1.199,2.60379824993602, 5631P 10741 -2.60379824993602,0.899,0.899,1.311,1.311,1.,1.,1.,1., 5631P 10742 -155.574237511039,-164.547507575232,-7.49,169.622220010399, 5631P 10743 --164.547507575232,-7.49,155.574237511039,-164.547507575232, 5631P 10744 --11.61,169.622220010399,-164.547507575232,-11.61,1.199, 5631P 10745 -2.60379824993602,0.899,1.311; 5631P 10746 -128,1,1,1,1,0,0,1,0,0,-0.601,-0.601,1.111,1.111,-0.001,-0.001, 5633P 10747 -0.801000000000001,0.801000000000001,1.,1.,1.,1., 5633P 10748 -169.612220010399,-164.557507575232,-11.61,169.612220010399, 5633P 10749 --164.557507575232,5.51,169.612220010399,-156.537507575232, 5633P 10750 --11.61,169.612220010399,-156.537507575232,5.51,-0.601,1.111, 5633P 10751 --0.001,0.801000000000001; 5633P 10752 -128,1,1,1,1,0,0,1,0,0,-0.703634674364426,-0.703634674364426, 5635P 10753 -0.701163575571597,0.701163575571597,-0.00100000000000378, 5635P 10754 --0.00100000000000378,0.651,0.651,1.,1.,1.,1.,169.622220010399, 5635P 10755 --163.057507575232,1.5,155.574237511039,-163.057507575232,1.5, 5635P 10756 -169.622220010399,-156.537507575232,1.5,155.574237511039, 5635P 10757 --156.537507575232,1.5,-0.703634674364426,0.701163575571597, 5635P 10758 --0.00100000000000378,0.651; 5635P 10759 -128,1,1,1,1,0,0,1,0,0,0.198380431581659,0.198380431581659, 5637P 10760 -1.90317868151768,1.90317868151768,-0.001,-0.001,0.651,0.651,1., 5637P 10761 -1.,1.,1.,237.790664751561,-163.057507575232,1.5, 5637P 10762 -220.742682252201,-163.057507575232,1.5,237.790664751561, 5637P 10763 --156.537507575232,1.5,220.742682252201,-156.537507575232,1.5, 5637P 10764 -0.198380431581659,1.90317868151768,-0.001,0.651; 5637P 10765 -128,1,1,1,1,0,0,1,0,0,2.5001090632896,2.5001090632896, 5639P 10766 -4.90089123368072,4.90089123368072,0.199,0.199,1.501,1.501,1.,1., 5639P 10767 -1.,1.,193.610041714311,-164.547507575232,5.51,169.602220010399, 5639P 10768 --164.547507575232,5.51,193.610041714311,-164.547507575232,-7.51, 5639P 10769 -169.602220010399,-164.547507575232,-7.51,2.5001090632896, 5639P 10770 -4.90089123368072,0.199,1.501; 5639P 10771 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5641P 10772 -0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5641P 10773 -213.600041714311,-171.557507575232,-7.51,213.600041714311, 5641P 10774 --164.537507575232,-7.51,213.600041714311,-171.557507575232,5.51, 5641P 10775 -213.600041714311,-164.537507575232,5.51,-0.001, 5641P 10776 -0.700999999999999,-0.001,1.301; 5641P 10777 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5643P 10778 -2.001,2.001,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5643P 10779 -193.590041714311,-171.547507575231,-7.51,213.610041714311, 5643P 10780 --171.547507575232,-7.51,193.590041714311,-171.547507575231,5.51, 5643P 10781 -213.610041714311,-171.547507575232,5.51,-0.00100000000000355, 5643P 10782 -2.001,-0.001,1.301; 5643P 10783 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,0.700999999999999, 5645P 10784 -0.700999999999999,-0.001,-0.001,1.301,1.301,1.,1.,1.,1., 5645P 10785 -193.600041714311,-164.537507575232,-7.51,193.600041714311, 5645P 10786 --171.557507575232,-7.51,193.600041714311,-164.537507575232,5.51, 5645P 10787 -193.600041714311,-171.557507575232,5.51,-0.001, 5645P 10788 -0.700999999999999,-0.001,1.301; 5645P 10789 -128,1,1,1,1,0,0,1,0,0,0.228270425474422,0.228270425474422, 5647P 10790 -7.99146896389396,7.99146896389396,0.199,0.199,1.501,1.501,1.,1., 5647P 10791 -1.,1.,256.765898784406,-245.464354455991,5.51,256.765901358077, 5647P 10792 --167.832369071796,5.51,256.765898784406,-245.464354455991,-7.51, 5647P 10793 -256.765901358077,-167.832369071796,-7.51,0.228270425474422, 5647P 10794 -7.99146896389396,0.199,1.501; 5647P 10795 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,1.96387870990168, 5649P 10796 -1.96387870990168,0.199,0.199,1.501,1.501,1.,1.,1.,1., 5649P 10797 -143.600041714311,-167.832837467805,5.51,143.600041714311, 5649P 10798 --187.481624566822,5.51,143.600041714311,-167.832837467805,-7.51, 5649P 10799 -143.600041714311,-187.481624566822,-7.51,-0.001, 5649P 10800 -1.96387870990168,0.199,1.501; 5649P 10801 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20051956797476, 5651P 10802 -2.20051956797476,-0.001,-0.001,1.501,1.501,1.,1.,1.,1., 5651P 10803 -142.100041714311,-165.466420277504,7.51,142.100041714311, 5651P 10804 --187.481615957251,7.51,142.100041714311,-165.466420277504,-7.51, 5651P 10805 -142.100041714311,-187.481615957251,-7.51,-0.001, 5651P 10806 -2.20051956797476,-0.001,1.501; 5651P 10807 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5653P 10808 -6.02853968539494,6.02853968539494,-0.001,-0.001,0.201,0.201,1., 5653P 10809 -1.,1.,1.,142.100041886497,-187.461615957253,7.51, 5653P 10810 -142.099003680496,-247.757012802264,7.51,142.100041886497, 5653P 10811 --187.461615957253,5.49,142.099003680496,-247.757012802264,5.49, 5653P 10812 --0.00100000000000355,6.02853968539494,-0.001,0.201; 5653P 10813 -128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047510948,5.99482047510948, 5655P 10814 --2.72952782394451,-2.72952782394451,-2.72952782394451, 5655P 10815 --1.43344712313306,-1.43344712313306,-0.137366422321605, 5655P 10816 --0.137366422321605,1.15871427848985,1.15871427848985, 5655P 10817 -1.15871427848985,1.,1.,0.797268222513888,0.797268222513888,1., 5655P 10818 -1.,0.797268222513888,0.797268222513888,1.,1.,0.797268222513888, 5655P 10819 -0.797268222513888,1.,1.,146.893865315652,-248.749215886107,7.5, 5655P 10820 -146.893865315652,-248.749215886107,-7.5,146.13511310057, 5655P 10821 --250.485058779287,7.5,146.13511310057,-250.485058779287,-7.5, 5655P 10822 -144.2585310156,-250.22564568775,7.5,144.2585310156, 5655P 10823 --250.22564568775,-7.5,142.381948930629,-249.966232596213,7.5, 5655P 10824 -142.381948930629,-249.966232596213,-7.5,142.122568151359, 5655P 10825 --248.089646044774,7.5,142.122568151359,-248.089646044774,-7.5, 5655P 10826 -141.863187372088,-246.213059493336,7.5,141.863187372088, 5655P 10827 --246.213059493336,-7.5,143.599043329707,-245.454337167255,7.5, 5655P 10828 -143.599043329707,-245.454337167255,-7.5,0.,5.99482047510948, 5655P 10829 --2.72952782394451,1.15871427848985; 5655P 10830 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5657P 10831 -11.1172574856417,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5657P 10832 -144.591163852312,-250.249215886107,7.51,255.773738708729, 5657P 10833 --250.249215886107,7.51,144.591163852312,-250.249215886107,5.49, 5657P 10834 -255.773738708729,-250.249215886107,5.49,-0.001,11.1172574856417, 5657P 10835 --0.001,0.201; 5657P 10836 -128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047510955,5.99482047510955, 5659P 10837 --2.72951057213252,-2.72951057213252,-2.72951057213252, 5659P 10838 --1.43343562192506,-1.43343562192506,-0.1373606717176, 5659P 10839 --0.1373606717176,1.15871427848986,1.15871427848986, 5659P 10840 -1.15871427848986,1.,1.,0.797269958115333,0.797269958115333,1., 5659P 10841 -1.,0.797269958115333,0.797269958115333,1.,1.,0.797269958115333, 5659P 10842 -0.797269958115333,1.,1.,256.765898784737,-245.454354455992,7.5, 5659P 10843 -256.765898784737,-245.454354455992,-7.5,258.501731281752, 5659P 10844 --246.213102195359,7.5,258.501731281752,-246.213102195359,-7.5, 5659P 10845 -258.242330469318,-248.089674551596,7.5,258.242330469318, 5659P 10846 --248.089674551596,-7.5,257.982929656885,-249.966246907834,7.5, 5659P 10847 -257.982929656885,-249.966246907834,-7.5,256.106357292048, 5659P 10848 --250.225647658055,7.5,256.106357292048,-250.225647658055,-7.5, 5659P 10849 -254.22978492721,-250.485048408276,7.5,254.22978492721, 5659P 10850 --250.485048408276,-7.5,253.47103724539,-248.749215886107,7.5, 5659P 10851 -253.47103724539,-248.749215886107,-7.5,0.,5.99482047510955, 5659P 10852 --2.72951057213252,1.15871427848986; 5659P 10853 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,8.22073910193271, 5661P 10854 -8.22073910193271,-0.001,-0.001,0.201,0.201,1.,1.,1.,1., 5661P 10855 -258.265898708398,-247.757055886107,7.51,258.265901434085, 5661P 10856 --165.53966486678,7.51,258.265898708398,-247.757055886107,5.49, 5661P 10857 -258.265901434085,-165.53966486678,5.49,-0.001,8.22073910193271, 5661P 10858 --0.001,0.201; 5661P 10859 -128,1,6,1,2,0,0,0,0,0,0.,0.,5.99482047511063,5.99482047511063, 5663P 10860 --2.72950952283909,-2.72950952283909,-2.72950952283909, 5663P 10861 --1.43343455052993,-1.43343455052993,-0.137359578220763, 5663P 10862 --0.137359578220763,1.1587153940884,1.1587153940884, 5663P 10863 -1.1587153940884,1.,1.,0.797269951444786,0.797269951444786,1.,1., 5663P 10864 -0.797269951444786,0.797269951444786,1.,1.,0.797269951444786, 5663P 10865 -0.797269951444786,1.,1.,253.471039970417,-164.547507575232,7.5, 5663P 10866 -253.471039970417,-164.547507575232,-7.5,254.22978766966, 5663P 10867 --162.811675013205,7.5,254.22978766966,-162.811675013205,-7.5, 5663P 10868 -256.106360071855,-163.071075810858,7.5,256.106360071855, 5663P 10869 --163.071075810858,-7.5,257.98293247405,-163.330476608511,7.5, 5663P 10870 -257.98293247405,-163.330476608511,-7.5,258.242333209489, 5663P 10871 --165.207049019306,7.5,258.242333209489,-165.207049019306,-7.5, 5663P 10872 -258.501733944928,-167.083621430101,7.5,258.501733944928, 5663P 10873 --167.083621430101,-7.5,256.765901357746,-167.842369071796,7.5, 5663P 10874 -256.765901357746,-167.842369071796,-7.5,0.,5.99482047511063, 5663P 10875 --2.72950952283909,1.1587153940884; 5663P 10876 -128,1,4,1,2,0,0,0,0,0,0.,0.,5.99482047510955,5.99482047510955, 5665P 10877 --1.54151851752146,-1.54151851752146,-1.54151851752146, 5665P 10878 --0.191402119515813,-0.191402119515813,1.15871427848983, 5665P 10879 -1.15871427848983,1.15871427848983,1.,1.,0.780670581409592, 5665P 10880 -0.780670581409592,1.,1.,0.780670581409592,0.780670581409592,1., 5665P 10881 -1.,142.100041714311,-165.476420277504,7.5,142.100041714311, 5665P 10882 --165.476420277504,-7.5,142.158677672821,-163.474248497833,7.5, 5665P 10883 -142.158677672821,-163.474248497833,-7.5,144.125129478152, 5665P 10884 --163.093200852189,7.5,144.125129478152,-163.093200852189,-7.5, 5665P 10885 -146.091581283483,-162.712153206546,7.5,146.091581283483, 5665P 10886 --162.712153206546,-7.5,146.893830840843,-164.547507575232,7.5, 5665P 10887 -146.893830840843,-164.547507575232,-7.5,0.,5.99482047510955, 5665P 10888 --1.54151851752146,1.15871427848983; 5665P 10889 -128,1,1,1,1,0,0,1,0,0,-6.45934487907209,-6.45934487907209, 5667P 10890 -6.45935129953954,6.45935129953954,-5.01108541554375, 5667P 10891 --5.01108541554375,5.01108541554375,5.01108541554375,1.,1.,1.,1., 5667P 10892 -264.775901433754,-156.537507575232,7.5,135.588939647638, 5667P 10893 --156.537507575232,7.5,264.775901433754,-256.759215886107,7.5, 5667P 10894 -135.588939647638,-256.759215886107,7.5,-6.45934487907209, 5667P 10895 -6.45935129953954,-5.01108541554375,5.01108541554375; 5667P 10896 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,2.20708325126057, 5669P 10897 -2.20708325126057,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5669P 10898 -135.600041714311,-187.481555692063,7.51,135.600041714311, 5669P 10899 --165.400723179457,7.51,135.600041714311,-187.481555692063, 5669P 10900 --11.61,135.600041714311,-165.400723179457,-11.61,-0.001, 5669P 10901 -2.20708325126057,-0.001,1.911; 5669P 10902 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,6.02853451978495, 5671P 10903 -6.02853451978495,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5671P 10904 -135.59900368146,-247.756900880975,7.51,135.600041886497, 5671P 10905 --187.461555692064,7.51,135.59900368146,-247.756900880975,-11.61, 5671P 10906 -135.600041886497,-187.461555692064,-11.61,-0.001, 5671P 10907 -6.02853451978495,-0.001,1.911; 5671P 10908 -128,1,4,1,2,0,0,0,0,0,0.,0.,2.12171301109956,2.12171301109956, 5673P 10909 --1.57081354545471,-1.57081354545471,-1.57081354545471, 5673P 10910 --0.785406772727353,-0.785406772727353,7.52737518332756D-21, 5673P 10911 -7.52737518332756D-21,7.52737518332756D-21,1.,1., 5673P 10912 -0.923877885178768,0.923877885178768,1.,1.,0.923877885178768, 5673P 10913 -0.923877885178768,1.,1.,144.601163852312,-256.749215886107, 5673P 10914 --11.6,144.601163852312,-256.749215886107,7.5,140.872301689627, 5673P 10915 --256.749215886107,-11.6,140.872301689627,-256.749215886107,7.5, 5673P 10916 -138.235620668632,-254.112489464608,-11.6,138.235620668632, 5673P 10917 --254.112489464608,7.5,135.598939647638,-251.475763043109,-11.6, 5673P 10918 -135.598939647638,-251.475763043109,7.5,135.599003853647, 5673P 10919 --247.746900880977,-11.6,135.599003853647,-247.746900880977,7.5, 5673P 10920 -0.,2.12171301109956,-1.57081354545471,7.52737518332756D-21; 5673P 10921 -128,1,1,1,1,0,0,1,0,0,-0.001,-0.001,11.1172574856417, 5675P 10922 -11.1172574856417,-0.001,-0.001,1.911,1.911,1.,1.,1.,1., 5675P 10923 -255.773738708729,-256.749215886107,7.51,144.591163852312, 5675P 10924 --256.749215886107,7.51,255.773738708729,-256.749215886107, 5675P 10925 --11.61,144.591163852312,-256.749215886107,-11.61,-0.001, 5675P 10926 -11.1172574856417,-0.001,1.911; 5675P 10927 -128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109957,2.12171301109957, 5677P 10928 --1.57079632679491,-1.57079632679491,-1.57079632679491, 5677P 10929 -1.97325624005823D-15,1.97325624005823D-15,1.97325624005823D-15, 5677P 10930 -1.,1.,0.707106781186542,0.707106781186542,1.,1., 5677P 10931 -264.765898708729,-247.747055886107,-11.6,264.765898708729, 5677P 10932 --247.747055886107,7.5,264.765898708729,-256.749215886107,-11.6, 5677P 10933 -264.765898708729,-256.749215886107,7.5,255.763738708729, 5677P 10934 --256.749215886107,-11.6,255.763738708729,-256.749215886107,7.5, 5677P 10935 -0.,2.12171301109957,-1.57079632679491,1.97325624005823D-15; 5677P 10936 -128,1,1,1,1,0,0,1,0,0,-0.00100000000000355,-0.00100000000000355, 5679P 10937 -8.22073908038377,8.22073908038377,-0.001,-0.001,1.911,1.911,1., 5679P 10938 -1.,1.,1.,264.765901434085,-165.53966508227,7.51, 5679P 10939 -264.765898708398,-247.757055886107,7.51,264.765901434085, 5679P 10940 --165.53966508227,-11.61,264.765898708398,-247.757055886107, 5679P 10941 --11.61,-0.00100000000000355,8.22073908038377,-0.001,1.911; 5679P 10942 -128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109993,2.12171301109993, 5681P 10943 --1.57079604986551,-1.57079604986551,-1.57079604986551, 5681P 10944 -4.70460948958054D-22,4.70460948958054D-22,4.70460948958054D-22, 5681P 10945 -1.,1.,0.707106879095864,0.707106879095864,1.,1., 5681P 10946 -255.763741433756,-156.547507575234,-11.6,255.763741433756, 5681P 10947 --156.547507575234,7.5,264.765898940792,-156.547507575234,-11.6, 5681P 10948 -264.765898940792,-156.547507575234,7.5,264.765901433754, 5681P 10949 --165.54966508227,-11.6,264.765901433754,-165.54966508227,7.5,0., 5681P 10950 -2.12171301109993,-1.57079604986551,4.70460948958054D-22; 5681P 10951 -128,1,2,1,2,0,0,0,0,0,0.,0.,2.12171301109957,2.12171301109957, 5683P 10952 --1.55536115200856,-1.55536115200856,-1.55536115200856, 5683P 10953 -2.95988436008734D-15,2.95988436008734D-15,2.95988436008734D-15, 5683P 10954 -1.,1.,0.712542827450537,0.712542827450537,1.,1., 5683P 10955 -135.600041714311,-165.410723179457,-11.6,135.600041714311, 5683P 10956 --165.410723179457,7.5,135.73685786174,-156.547507575232,-11.6, 5683P 10957 -135.73685786174,-156.547507575232,7.5,144.601129377503, 5683P 10958 --156.547507575232,-11.6,144.601129377503,-156.547507575232,7.5, 5683P 10959 -0.,2.12171301109957,-1.55536115200856,2.95988436008734D-15; 5683P 10960 -502,610,139.68226259674,-80.5980231141957,8.73624999999999, 5685P 10961 -136.882006921691,-80.5980231141957,8.73624999999999, 5685P 10962 -136.882006921691,-80.5980231141957,7.11812499999999, 5685P 10963 -139.68226259674,-80.5980231141957,7.11812499999999, 5685P 10964 -139.68226259674,-118.69865621105,8.73624999999999, 5685P 10965 -136.882006921691,-118.69865621105,8.73624999999999, 5685P 10966 -136.882006921691,-118.69865621105,7.11812499999999, 5685P 10967 -139.68226259674,-118.69865621105,7.11812499999999, 5685P 10968 -63.4808744198821,-118.698656211056,8.73625,60.6806188225967, 5685P 10969 --118.698656211056,8.73625,60.6806188225967,-118.698656211056, 5685P 10970 -7.118125,63.4808744198821,-118.698656211056,7.118125, 5685P 10971 -60.9078068409501,-62.1212017504367,8.73625,58.1075511659012, 5685P 10972 --62.1212017504367,8.73625,58.1075511659012,-62.1212017504367, 5685P 10973 -7.118125,60.9078068409501,-62.1212017504367,7.118125, 5685P 10974 -140.806868895161,-121.223895544679,8.73624999999999, 5685P 10975 -154.808074294198,-121.223878124069,8.73624999999999, 5685P 10976 -140.806868895161,-121.223895544679,7.11812499999999, 5685P 10977 -154.808074294198,-121.223878124069,7.11812499999999, 5685P 10978 -154.808074294198,-121.821979920061,8.73624999999999, 5685P 10979 -154.808074294198,-121.821979920061,7.11812499999999, 5685P 10980 -155.607349292068,-121.82199734067,8.73624999999999, 5685P 10981 -155.607349292068,-121.82199734067,7.11812499999999, 5685P 10982 -155.607349292068,-134.624194429548,8.73624999999999, 5685P 10983 -155.607349292068,-134.624194429548,7.11812499999999, 5685P 10984 -154.808074294198,-134.624177008938,8.73624999999999, 5685P 10985 -154.808074294198,-134.624177008938,7.11812499999999, 5685P 10986 -154.808074294198,-135.223655033103,8.73624999999999, 5685P 10987 -154.808074294198,-135.223655033103,7.11812499999999, 5685P 10988 -140.806873250314,-135.223655033103,8.73624999999999, 5685P 10989 -140.806873250314,-135.223655033103,7.11812499999999, 5685P 10990 -140.806868895161,-134.624177008938,8.73624999999999, 5685P 10991 -140.806868895161,-134.624177008938,7.11812499999999, 5685P 10992 -140.007650514273,-134.624177008938,8.73624999999999, 5685P 10993 -140.007650514273,-134.624177008938,7.11812499999999, 5685P 10994 -140.007654869426,-121.821979920061,8.73624999999999, 5685P 10995 -140.007654869426,-121.821979920061,7.11812499999999, 5685P 10996 -140.806873250314,-121.82199734067,8.73624999999999, 5685P 10997 -140.806873250314,-121.82199734067,7.11812499999999, 5685P 10998 -121.756696066765,-121.223895544679,8.73624999999999, 5685P 10999 -135.757670642722,-121.223878124069,8.73624999999999, 5685P 11000 -121.756696066765,-121.223895544679,7.118125,135.757670642722, 5685P 11001 --121.223878124069,7.11812499999999,135.757670642722, 5685P 11002 --121.821979920061,8.73624999999999,135.757670642722, 5685P 11003 --121.821979920061,7.11812499999999,136.556989192117, 5685P 11004 --121.82199734067,8.73624999999999,136.556989192117, 5685P 11005 --121.82199734067,7.11812499999999,136.556989192117, 5685P 11006 --134.624194429548,8.73624999999999,136.556989192117, 5685P 11007 --134.624194429548,7.11812499999999,135.757670642722, 5685P 11008 --134.624177008938,8.73624999999999,135.757670642722, 5685P 11009 --134.624177008938,7.11812499999999,135.757670642722, 5685P 11010 --135.223655033103,8.73624999999999,135.757670642722, 5685P 11011 --135.223655033103,7.11812499999999,121.756696066765, 5685P 11012 --135.223655033103,8.73624999999999,121.756696066765, 5685P 11013 --135.223655033103,7.118125,121.756696066765,-134.624177008938, 5685P 11014 -8.73624999999999,121.756696066765,-134.624177008938,7.118125, 5685P 11015 -120.957281704017,-134.624177008938,8.73624999999999, 5685P 11016 -120.957281704017,-134.624177008938,7.118125,120.957281704017, 5685P 11017 --121.821979920061,8.73624999999999,120.957281704017, 5685P 11018 --121.821979920061,7.118125,121.756696066765,-121.82199734067, 5685P 11019 -8.73624999999999,121.756696066765,-121.82199734067,7.118125, 5685P 11020 -102.706327256509,-121.223895544679,8.73624999999999, 5685P 11021 -116.707297477313,-121.223878124069,8.73624999999999, 5685P 11022 -102.706327256509,-121.223895544679,7.118125,116.707297477313, 5685P 11023 --121.223878124069,7.118125,116.707297477313,-121.821979920061, 5685P 11024 -8.73624999999999,116.707297477313,-121.821979920061,7.118125, 5685P 11025 -117.506711840062,-121.82199734067,8.73624999999999, 5685P 11026 -117.506711840062,-121.82199734067,7.118125,117.506720550367, 5685P 11027 --134.624194429548,8.73624999999999,117.506720550367, 5685P 11028 --134.624194429548,7.118125,116.707306187618,-134.624177008938, 5685P 11029 -8.73624999999999,116.707306187618,-134.624177008938,7.118125, 5685P 11030 -116.707297477313,-135.223655033103,8.73624999999999, 5685P 11031 -116.707297477313,-135.223655033103,7.118125,102.706327256509, 5685P 11032 --135.223655033103,8.73624999999999,102.706327256509, 5685P 11033 --135.223655033103,7.118125,102.706327256509,-134.624177008938, 5685P 11034 -8.73624999999999,102.706327256509,-134.624177008938,7.118125, 5685P 11035 -101.90691289376,-134.624177008938,8.73624999999999, 5685P 11036 -101.90691289376,-134.624177008938,7.118125,101.90691289376, 5685P 11037 --121.821979920061,8.73624999999999,101.90691289376, 5685P 11038 --121.821979920061,7.118125,102.706327256509,-121.82199734067, 5685P 11039 -8.73624999999999,102.706327256509,-121.82199734067,7.118125, 5685P 11040 -83.6559584462526,-121.223895544679,8.73625,97.6569286670568, 5685P 11041 --121.223878124069,8.73624999999999,83.6559584462526, 5685P 11042 --121.223895544679,7.118125,97.6569286670568,-121.223878124069, 5685P 11043 -7.118125,97.6569286670568,-121.821979920061,8.73624999999999, 5685P 11044 -97.6569286670568,-121.821979920061,7.118125,98.4563430298053, 5685P 11045 --121.82199734067,8.73624999999999,98.4563430298053, 5685P 11046 --121.82199734067,7.118125,98.4563430298053,-134.624194429548, 5685P 11047 -8.73624999999999,98.4563430298053,-134.624194429548,7.118125, 5685P 11048 -97.6569286670568,-134.624177008938,8.73624999999999, 5685P 11049 -97.6569286670568,-134.624177008938,7.118125,97.6569286670568, 5685P 11050 --135.223655033103,8.73624999999999,97.6569286670568, 5685P 11051 --135.223655033103,7.118125,83.6559497359477,-135.223655033103, 5685P 11052 -8.73625,83.6559497359477,-135.223655033103,7.118125, 5685P 11053 -83.6559584462526,-134.624177008938,8.73625,83.6559584462526, 5685P 11054 --134.624177008938,7.118125,82.8565440835042,-134.624177008938, 5685P 11055 -8.73625,82.8565440835042,-134.624177008938,7.118125, 5685P 11056 -82.8565440835042,-121.821979920061,8.73625,82.8565440835042, 5685P 11057 --121.821979920061,7.118125,83.6559584462526,-121.82199734067, 5685P 11058 -8.73625,83.6559584462526,-121.82199734067,7.118125, 5685P 11059 -64.6055896359963,-121.223895544679,8.73625,78.6065598568005, 5685P 11060 --121.223878124069,8.73625,64.6055896359963,-121.223895544679, 5685P 11061 -7.118125,78.6065598568005,-121.223878124069,7.118125, 5685P 11062 -78.6065598568005,-121.821979920061,8.73625,78.6065598568005, 5685P 11063 --121.821979920061,7.118125,79.4059742195489,-121.82199734067, 5685P 11064 -8.73625,79.4059742195489,-121.82199734067,7.118125, 5685P 11065 -79.4059742195489,-134.624194429548,8.73625,79.4059742195489, 5685P 11066 --134.624194429548,7.118125,78.6065598568005,-134.624177008938, 5685P 11067 -8.73625,78.6065598568005,-134.624177008938,7.118125, 5685P 11068 -78.6065598568005,-135.223655033103,8.73625,78.6065598568005, 5685P 11069 --135.223655033103,7.118125,64.6055896359963,-135.223655033103, 5685P 11070 -8.73625,64.6055896359963,-135.223655033103,7.118125, 5685P 11071 -64.6055896359963,-134.624177008938,8.73625,64.6055896359963, 5685P 11072 --134.624177008938,7.118125,63.8061752732478,-134.624177008938, 5685P 11073 -8.73625,63.8061752732478,-134.624177008938,7.118125, 5685P 11074 -63.8061752732478,-121.821979920061,8.73625,63.8061752732478, 5685P 11075 --121.821979920061,7.118125,64.6055896359963,-121.82199734067, 5685P 11076 -8.73625,64.6055896359963,-121.82199734067,7.118125, 5685P 11077 -45.556222510803,-121.223895544679,8.73625,59.5561910465442, 5685P 11078 --121.223878124069,8.73625,45.556222510803,-121.223895544679, 5685P 11079 -7.118125,59.5561910465442,-121.223878124069,7.118125, 5685P 11080 -59.5561910465442,-121.821979920061,8.73625,59.5561910465442, 5685P 11081 --121.821979920061,7.118125,60.3556054092926,-121.82199734067, 5685P 11082 -8.73625,60.3556054092926,-121.82199734067,7.118125, 5685P 11083 -60.3556054092926,-134.624194429548,8.73625,60.3556054092926, 5685P 11084 --134.624194429548,7.118125,59.5561910465442,-134.624177008938, 5685P 11085 -8.73625,59.5561910465442,-134.624177008938,7.118125, 5685P 11086 -59.5561910465442,-135.223655033103,8.73625,59.5561910465442, 5685P 11087 --135.223655033103,7.118125,45.556222510803,-135.223655033103, 5685P 11088 -8.73625,45.556222510803,-135.223655033103,7.118125, 5685P 11089 -45.556222510803,-134.624177008938,8.73625,45.556222510803, 5685P 11090 --134.624177008938,7.118125,44.7561984267118,-134.624177008938, 5685P 11091 -8.73625,44.7561984267118,-134.624177008938,7.118125, 5685P 11092 -44.7561984267118,-121.821979920061,8.73625,44.7561984267118, 5685P 11093 --121.821979920061,7.118125,45.556222510803,-121.82199734067, 5685P 11094 -8.73625,45.556222510803,-121.82199734067,7.118125, 5685P 11095 -140.806868895161,-102.173622547777,8.73624999999999, 5685P 11096 -154.808074294198,-102.173605127167,8.73624999999999, 5685P 11097 -140.806868895161,-102.173622547777,7.11812499999999, 5685P 11098 -154.808074294198,-102.173605127167,7.11812499999999, 5685P 11099 -154.808074294198,-102.772908945234,8.73624999999999, 5685P 11100 -154.808074294198,-102.772908945234,7.11812499999999, 5685P 11101 -155.607349292068,-102.772926365844,8.73624999999999, 5685P 11102 -155.607349292068,-102.772926365844,7.11812499999999, 5685P 11103 -155.607349292068,-115.573782067767,8.73624999999999, 5685P 11104 -155.607349292068,-115.573782067767,7.11812499999999, 5685P 11105 -154.808074294198,-115.573764647157,8.73624999999999, 5685P 11106 -154.808074294198,-115.573764647157,7.11812499999999, 5685P 11107 -154.808074294198,-116.173277512542,8.73624999999999, 5685P 11108 -154.808074294198,-116.173277512542,7.11812499999999, 5685P 11109 -140.806873250314,-116.173277512542,8.73624999999999, 5685P 11110 -140.806873250314,-116.173277512542,7.11812499999999, 5685P 11111 -140.806868895161,-115.573764647157,8.73624999999999, 5685P 11112 -140.806868895161,-115.573764647157,7.11812499999999, 5685P 11113 -140.007650514273,-115.573764647157,8.73624999999999, 5685P 11114 -140.007650514273,-115.573764647157,7.11812499999999, 5685P 11115 -140.007654869426,-102.772908945234,8.73624999999999, 5685P 11116 -140.007654869426,-102.772908945234,7.11812499999999, 5685P 11117 -140.806873250314,-102.772926365844,8.73624999999999, 5685P 11118 -140.806873250314,-102.772926365844,7.11812499999999, 5685P 11119 -121.756696066765,-102.173622547777,8.73624999999999, 5685P 11120 -135.757670642722,-102.173605127167,8.73624999999999, 5685P 11121 -121.756696066765,-102.173622547777,7.118125,135.757670642722, 5685P 11122 --102.173605127167,7.11812499999999,135.757670642722, 5685P 11123 --102.908807122222,8.73624999999999,135.757670642722, 5685P 11124 --102.908807122222,7.11812499999999,136.556989192117, 5685P 11125 --102.908807122222,8.73624999999999,136.556989192117, 5685P 11126 --102.908807122222,7.11812499999999,136.556989192117, 5685P 11127 --115.709662824145,8.73624999999999,136.556989192117, 5685P 11128 --115.709662824145,7.11812499999999,135.757670642722, 5685P 11129 --115.709662824145,8.73624999999999,135.757670642722, 5685P 11130 --115.709662824145,7.11812499999999,135.757670642722, 5685P 11131 --116.174810526203,8.73624999999999,135.757670642722, 5685P 11132 --116.174810526203,7.11812499999999,121.756696066765, 5685P 11133 --116.174810526203,8.73624999999999,121.756696066765, 5685P 11134 --116.174810526203,7.118125,121.756696066765,-115.575297660819, 5685P 11135 -8.73624999999999,121.756696066765,-115.575297660819,7.118125, 5685P 11136 -120.957281704017,-115.575297660819,8.73624999999999, 5685P 11137 -120.957281704017,-115.575297660819,7.118125,120.957281704017, 5685P 11138 --102.772908945234,8.73624999999999,120.957281704017, 5685P 11139 --102.772908945234,7.118125,121.756696066765,-102.772926365844, 5685P 11140 -8.73624999999999,121.756696066765,-102.772926365844,7.118125, 5685P 11141 -102.706327256509,-102.173622547777,8.73624999999999, 5685P 11142 -116.707297477313,-102.173605127167,8.73624999999999, 5685P 11143 -102.706327256509,-102.173622547777,7.118125,116.707297477313, 5685P 11144 --102.173605127167,7.118125,116.707297477313,-102.772908945234, 5685P 11145 -8.73624999999999,116.707297477313,-102.772908945234,7.118125, 5685P 11146 -117.506711840062,-102.772926365844,8.73624999999999, 5685P 11147 -117.506711840062,-102.772926365844,7.118125,117.506720550367, 5685P 11148 --115.573782067767,8.73624999999999,117.506720550367, 5685P 11149 --115.573782067767,7.118125,116.707306187618,-115.573764647157, 5685P 11150 -8.73624999999999,116.707306187618,-115.573764647157,7.118125, 5685P 11151 -116.707297477313,-116.173277512542,8.73624999999999, 5685P 11152 -116.707297477313,-116.173277512542,7.118125,102.706327256509, 5685P 11153 --116.173277512542,8.73624999999999,102.706327256509, 5685P 11154 --116.173277512542,7.118125,102.706327256509,-115.573764647157, 5685P 11155 -8.73624999999999,102.706327256509,-115.573764647157,7.118125, 5685P 11156 -101.90691289376,-115.573764647157,8.73624999999999, 5685P 11157 -101.90691289376,-115.573764647157,7.118125,101.90691289376, 5685P 11158 --102.772908945234,8.73624999999999,101.90691289376, 5685P 11159 --102.772908945234,7.118125,102.706327256509,-102.772926365844, 5685P 11160 -8.73624999999999,102.706327256509,-102.772926365844,7.118125, 5685P 11161 -83.6559584462526,-102.173622547777,8.73625,97.6569286670568, 5685P 11162 --102.173605127167,8.73624999999999,83.6559584462526, 5685P 11163 --102.173622547777,7.118125,97.6569286670568,-102.173605127167, 5685P 11164 -7.118125,97.6569286670568,-102.772908945234,8.73624999999999, 5685P 11165 -97.6569286670568,-102.772908945234,7.118125,98.4563430298053, 5685P 11166 --102.772926365844,8.73624999999999,98.4563430298053, 5685P 11167 --102.772926365844,7.118125,98.4563430298053,-115.573782067767, 5685P 11168 -8.73624999999999,98.4563430298053,-115.573782067767,7.118125, 5685P 11169 -97.6569286670568,-115.573764647157,8.73624999999999, 5685P 11170 -97.6569286670568,-115.573764647157,7.118125,97.6569286670568, 5685P 11171 --116.173277512542,8.73624999999999,97.6569286670568, 5685P 11172 --116.173277512542,7.118125,83.6559497359477,-116.173277512542, 5685P 11173 -8.73625,83.6559497359477,-116.173277512542,7.118125, 5685P 11174 -83.6559584462526,-115.573764647157,8.73625,83.6559584462526, 5685P 11175 --115.573764647157,7.118125,82.8565440835042,-115.573764647157, 5685P 11176 -8.73625,82.8565440835042,-115.573764647157,7.118125, 5685P 11177 -82.8565440835042,-102.772908945234,8.73625,82.8565440835042, 5685P 11178 --102.772908945234,7.118125,83.6559584462526,-102.772926365844, 5685P 11179 -8.73625,83.6559584462526,-102.772926365844,7.118125, 5685P 11180 -64.6055896359963,-102.173622547777,8.73625,78.6065598568005, 5685P 11181 --102.173605127167,8.73625,64.6055896359963,-102.173622547777, 5685P 11182 -7.118125,78.6065598568005,-102.173605127167,7.118125, 5685P 11183 -78.6065598568005,-102.772908945234,8.73625,78.6065598568005, 5685P 11184 --102.772908945234,7.118125,79.4059742195489,-102.772926365844, 5685P 11185 -8.73625,79.4059742195489,-102.772926365844,7.118125, 5685P 11186 -79.4059742195489,-115.573782067767,8.73625,79.4059742195489, 5685P 11187 --115.573782067767,7.118125,78.6065598568005,-115.573764647157, 5685P 11188 -8.73625,78.6065598568005,-115.573764647157,7.118125, 5685P 11189 -78.6065598568005,-116.173277512542,8.73625,78.6065598568005, 5685P 11190 --116.173277512542,7.118125,64.6055896359963,-116.173277512542, 5685P 11191 -8.73625,64.6055896359963,-116.173277512542,7.118125, 5685P 11192 -64.6055896359963,-115.573764647157,8.73625,64.6055896359963, 5685P 11193 --115.573764647157,7.118125,63.8061752732478,-115.573764647157, 5685P 11194 -8.73625,63.8061752732478,-115.573764647157,7.118125, 5685P 11195 -63.8061752732478,-102.772908945234,8.73625,63.8061752732478, 5685P 11196 --102.772908945234,7.118125,64.6055896359963,-102.772926365844, 5685P 11197 -8.73625,64.6055896359963,-102.772926365844,7.118125, 5685P 11198 -45.556222510803,-102.173622547777,8.73625,59.5561910465442, 5685P 11199 --102.173605127167,8.73625,45.556222510803,-102.173622547777, 5685P 11200 -7.118125,59.5561910465442,-102.173605127167,7.118125, 5685P 11201 -59.5561910465442,-102.772908945234,8.73625,59.5561910465442, 5685P 11202 --102.772908945234,7.118125,60.3556054092926,-102.772926365844, 5685P 11203 -8.73625,60.3556054092926,-102.772926365844,7.118125, 5685P 11204 -60.3556054092926,-115.573782067767,8.73625,60.3556054092926, 5685P 11205 --115.573782067767,7.118125,59.5561910465442,-115.573764647157, 5685P 11206 -8.73625,59.5561910465442,-115.573764647157,7.118125, 5685P 11207 -59.5561910465442,-116.173277512542,8.73625,59.5561910465442, 5685P 11208 --116.173277512542,7.118125,45.556222510803,-116.173277512542, 5685P 11209 -8.73625,45.556222510803,-116.173277512542,7.118125, 5685P 11210 -45.556222510803,-115.573764647157,8.73625,45.556222510803, 5685P 11211 --115.573764647157,7.118125,44.7561984267118,-115.573764647157, 5685P 11212 -8.73625,44.7561984267118,-115.573764647157,7.118125, 5685P 11213 -44.7561984267118,-102.772908945234,8.73625,44.7561984267118, 5685P 11214 --102.772908945234,7.118125,45.556222510803,-102.772926365844, 5685P 11215 -8.73625,45.556222510803,-102.772926365844,7.118125, 5685P 11216 -140.806868895161,-83.1232450272155,8.73624999999999, 5685P 11217 -154.808074294198,-83.1232450272156,8.73624999999999, 5685P 11218 -140.806868895161,-83.1232450272155,7.11812499999999, 5685P 11219 -154.808074294198,-83.1232450272156,7.11812499999999, 5685P 11220 -154.808074294198,-83.7225488452825,8.73624999999999, 5685P 11221 -154.808074294198,-83.7225488452825,7.11812499999999, 5685P 11222 -155.607349292068,-83.7225488452825,8.73624999999999, 5685P 11223 -155.607349292068,-83.7225488452825,7.11812499999999, 5685P 11224 -155.607349292068,-96.5234045472058,8.73624999999999, 5685P 11225 -155.607349292068,-96.5234045472058,7.11812499999999, 5685P 11226 -154.808074294198,-96.5234045472058,8.73624999999999, 5685P 11227 -154.808074294198,-96.5234045472058,7.11812499999999, 5685P 11228 -154.808074294198,-97.1227083652727,8.73624999999999, 5685P 11229 -154.808074294198,-97.1227083652727,7.11812499999999, 5685P 11230 -140.806873250314,-97.1227083652727,8.73624999999999, 5685P 11231 -140.806873250314,-97.1227083652727,7.11812499999999, 5685P 11232 -140.806868895161,-96.5234045472058,8.73624999999999, 5685P 11233 -140.806868895161,-96.5234045472058,7.11812499999999, 5685P 11234 -140.007650514273,-96.5234045472058,8.73624999999999, 5685P 11235 -140.007650514273,-96.5234045472058,7.11812499999999, 5685P 11236 -140.007654869426,-83.7225488452825,8.73624999999999, 5685P 11237 -140.007654869426,-83.7225488452825,7.11812499999999, 5685P 11238 -140.806873250314,-83.7225488452825,8.73624999999999, 5685P 11239 -140.806873250314,-83.7225488452825,7.11812499999999, 5685P 11240 -121.756696066765,-83.1232450272155,8.73624999999999, 5685P 11241 -135.757670642722,-83.1232450272156,8.73624999999999, 5685P 11242 -121.756696066765,-83.1232450272155,7.118125,135.757670642722, 5685P 11243 --83.1232450272156,7.11812499999999,135.757670642722, 5685P 11244 --83.7225488452825,8.73624999999999,135.757670642722, 5685P 11245 --83.7225488452825,7.11812499999999,136.556989192117, 5685P 11246 --83.7225488452825,8.73624999999999,136.556989192117, 5685P 11247 --83.7225488452825,7.11812499999999,136.556989192117, 5685P 11248 --96.5234045472058,8.73624999999999,136.556989192117, 5685P 11249 --96.5234045472058,7.11812499999999,135.757670642722, 5685P 11250 --96.5234045472058,8.73624999999999,135.757670642722, 5685P 11251 --96.5234045472058,7.11812499999999,135.757670642722, 5685P 11252 --97.1227083652727,8.73624999999999,135.757670642722, 5685P 11253 --97.1227083652727,7.11812499999999,121.756696066765, 5685P 11254 --97.1227083652727,8.73624999999999,121.756696066765, 5685P 11255 --97.1227083652727,7.118125,121.756696066765,-96.5234045472058, 5685P 11256 -8.73624999999999,121.756696066765,-96.5234045472058,7.118125, 5685P 11257 -120.957281704017,-96.5234045472058,8.73624999999999, 5685P 11258 -120.957281704017,-96.5234045472058,7.118125,120.957281704017, 5685P 11259 --83.7225488452825,8.73624999999999,120.957281704017, 5685P 11260 --83.7225488452825,7.118125,121.756696066765,-83.7225488452825, 5685P 11261 -8.73624999999999,121.756696066765,-83.7225488452825,7.118125, 5685P 11262 -102.706327256509,-83.1232450272155,8.73624999999999, 5685P 11263 -116.707297477313,-83.1232450272156,8.73624999999999, 5685P 11264 -102.706327256509,-83.1232450272155,7.118125,116.707297477313, 5685P 11265 --83.1232450272156,7.118125,116.707297477313,-83.7225488452825, 5685P 11266 -8.73624999999999,116.707297477313,-83.7225488452825,7.118125, 5685P 11267 -117.506711840062,-83.7225488452825,8.73624999999999, 5685P 11268 -117.506711840062,-83.7225488452825,7.118125,117.506720550367, 5685P 11269 --96.5234045472058,8.73624999999999,117.506720550367, 5685P 11270 --96.5234045472058,7.118125,116.707306187618,-96.5234045472058, 5685P 11271 -8.73624999999999,116.707306187618,-96.5234045472058,7.118125, 5685P 11272 -116.707297477313,-97.1227083652727,8.73624999999999, 5685P 11273 -116.707297477313,-97.1227083652727,7.118125,102.706327256509, 5685P 11274 --97.1227083652727,8.73624999999999,102.706327256509, 5685P 11275 --97.1227083652727,7.118125,102.706327256509,-96.5234045472058, 5685P 11276 -8.73624999999999,102.706327256509,-96.5234045472058,7.118125, 5685P 11277 -101.90691289376,-96.5234045472058,8.73624999999999, 5685P 11278 -101.90691289376,-96.5234045472058,7.118125,101.90691289376, 5685P 11279 --83.7225488452825,8.73624999999999,101.90691289376, 5685P 11280 --83.7225488452825,7.118125,102.706327256509,-83.7225488452825, 5685P 11281 -8.73624999999999,102.706327256509,-83.7225488452825,7.118125, 5685P 11282 -83.6559584462526,-83.1232450272155,8.73625,97.6569286670568, 5685P 11283 --83.1232450272156,8.73624999999999,83.6559584462526, 5685P 11284 --83.1232450272155,7.118125,97.6569286670568,-83.1232450272156, 5685P 11285 -7.118125,97.6569286670568,-83.7225488452825,8.73624999999999, 5685P 11286 -97.6569286670568,-83.7225488452825,7.118125,98.4563430298053, 5685P 11287 --83.7225488452825,8.73624999999999,98.4563430298053, 5685P 11288 --83.7225488452825,7.118125,98.4563430298053,-96.5234045472058, 5685P 11289 -8.73624999999999,98.4563430298053,-96.5234045472058,7.118125, 5685P 11290 -97.6569286670568,-96.5234045472058,8.73624999999999, 5685P 11291 -97.6569286670568,-96.5234045472058,7.118125,97.6569286670568, 5685P 11292 --97.1227083652727,8.73624999999999,97.6569286670568, 5685P 11293 --97.1227083652727,7.118125,83.6559497359477,-97.1227083652727, 5685P 11294 -8.73625,83.6559497359477,-97.1227083652727,7.118125, 5685P 11295 -83.6559584462526,-96.5234045472058,8.73625,83.6559584462526, 5685P 11296 --96.5234045472058,7.118125,82.8565440835042,-96.5234045472058, 5685P 11297 -8.73625,82.8565440835042,-96.5234045472058,7.118125, 5685P 11298 -82.8565440835042,-83.7225488452825,8.73625,82.8565440835042, 5685P 11299 --83.7225488452825,7.118125,83.6559584462526,-83.7225488452825, 5685P 11300 -8.73625,83.6559584462526,-83.7225488452825,7.118125, 5685P 11301 -64.6055896359963,-83.1232450272155,8.73625,78.6065598568005, 5685P 11302 --83.1232450272156,8.73625,64.6055896359963,-83.1232450272155, 5685P 11303 -7.118125,78.6065598568005,-83.1232450272156,7.118125, 5685P 11304 -78.6065598568005,-83.7225488452825,8.73625,78.6065598568005, 5685P 11305 --83.7225488452825,7.118125,79.4059742195489,-83.7225488452825, 5685P 11306 -8.73625,79.4059742195489,-83.7225488452825,7.118125, 5685P 11307 -79.4059742195489,-96.5234045472058,8.73625,79.4059742195489, 5685P 11308 --96.5234045472058,7.118125,78.6065598568005,-96.5234045472058, 5685P 11309 -8.73625,78.6065598568005,-96.5234045472058,7.118125, 5685P 11310 -78.6065598568005,-97.1227083652727,8.73625,78.6065598568005, 5685P 11311 --97.1227083652727,7.118125,64.6055896359963,-97.1227083652727, 5685P 11312 -8.73625,64.6055896359963,-97.1227083652727,7.118125, 5685P 11313 -64.6055896359963,-96.5234045472058,8.73625,64.6055896359963, 5685P 11314 --96.5234045472058,7.118125,63.8061752732478,-96.5234045472058, 5685P 11315 -8.73625,63.8061752732478,-96.5234045472058,7.118125, 5685P 11316 -63.8061752732478,-83.7225488452825,8.73625,63.8061752732478, 5685P 11317 --83.7225488452825,7.118125,64.6055896359963,-83.7225488452825, 5685P 11318 -8.73625,64.6055896359963,-83.7225488452825,7.118125, 5685P 11319 -45.556222510803,-83.1232450272155,8.73625,59.5561910465442, 5685P 11320 --83.1232450272156,8.73625,45.556222510803,-83.1232450272155, 5685P 11321 -7.118125,59.5561910465442,-83.1232450272156,7.118125, 5685P 11322 -59.5561910465442,-83.7225488452825,8.73625,59.5561910465442, 5685P 11323 --83.7225488452825,7.118125,60.3556054092926,-83.7225488452825, 5685P 11324 -8.73625,60.3556054092926,-83.7225488452825,7.118125, 5685P 11325 -60.3556054092926,-96.5234045472058,8.73625,60.3556054092926, 5685P 11326 --96.5234045472058,7.118125,59.5561910465442,-96.5234045472058, 5685P 11327 -8.73625,59.5561910465442,-96.5234045472058,7.118125, 5685P 11328 -59.5561910465442,-97.1227083652727,8.73625,59.5561910465442, 5685P 11329 --97.1227083652727,7.118125,45.556222510803,-97.1227083652727, 5685P 11330 -8.73625,45.556222510803,-97.1227083652727,7.118125, 5685P 11331 -45.556222510803,-96.5234045472058,8.73625,45.556222510803, 5685P 11332 --96.5234045472058,7.118125,44.7561984267118,-96.5234045472058, 5685P 11333 -8.73625,44.7561984267118,-96.5234045472058,7.118125, 5685P 11334 -44.7561984267118,-83.7225488452825,8.73625,44.7561984267118, 5685P 11335 --83.7225488452825,7.118125,45.556222510803,-83.7225488452825, 5685P 11336 -8.73625,45.556222510803,-83.7225488452825,7.118125, 5685P 11337 -140.806868895161,-64.0711428662849,8.73624999999999, 5685P 11338 -154.808074294198,-64.0711428662849,8.73624999999999, 5685P 11339 -140.806868895161,-64.0711428662849,7.11812499999999, 5685P 11340 -154.808074294198,-64.0711428662849,7.11812499999999, 5685P 11341 -154.808074294198,-64.672188745331,8.73624999999999, 5685P 11342 -154.808074294198,-64.672188745331,7.11812499999999, 5685P 11343 -155.607349292068,-64.6721713247213,8.73624999999999, 5685P 11344 -155.607349292068,-64.6721713247213,7.11812499999999, 5685P 11345 -155.607349292068,-77.4716159572515,8.73624999999999, 5685P 11346 -155.607349292068,-77.4716159572515,7.11812499999999, 5685P 11347 -154.808074294198,-77.4716333778613,8.73624999999999, 5685P 11348 -154.808074294198,-77.4716333778613,7.11812499999999, 5685P 11349 -154.808074294198,-78.0723482653214,8.73624999999999, 5685P 11350 -154.808074294198,-78.0723482653214,7.11812499999999, 5685P 11351 -140.806873250314,-78.0723308447116,8.73624999999999, 5685P 11352 -140.806873250314,-78.0723308447116,7.11812499999999, 5685P 11353 -140.806868895161,-77.4716159572515,8.73624999999999, 5685P 11354 -140.806868895161,-77.4716159572515,7.11812499999999, 5685P 11355 -140.007650514273,-77.4716333778613,8.73624999999999, 5685P 11356 -140.007650514273,-77.4716333778613,7.11812499999999, 5685P 11357 -140.007654869426,-64.6719448567939,8.73624999999999, 5685P 11358 -140.007654869426,-64.6719448567939,7.11812499999999, 5685P 11359 -140.806873250314,-64.6719448567939,8.73624999999999, 5685P 11360 -140.806873250314,-64.6719448567939,7.11812499999999, 5685P 11361 -121.756696066765,-64.0711428662849,8.73624999999999, 5685P 11362 -135.757670642722,-64.0711428662849,8.73624999999999, 5685P 11363 -121.756696066765,-64.0711428662849,7.118125,135.757670642722, 5685P 11364 --64.0711428662849,7.11812499999999,135.757670642722, 5685P 11365 --64.8090624764674,8.73624999999999,135.757670642722, 5685P 11366 --64.8090624764674,7.11812499999999,136.556989192117, 5685P 11367 --64.8090450558576,8.73624999999999,136.556989192117, 5685P 11368 --64.8090450558576,7.11812499999999,136.556989192117, 5685P 11369 --77.6084896883878,8.73624999999999,136.556989192117, 5685P 11370 --77.6084896883878,7.11812499999999,135.757670642722, 5685P 11371 --77.6085071089976,8.73624999999999,135.757670642722, 5685P 11372 --77.6085071089976,7.11812499999999,135.757670642722, 5685P 11373 --78.0723482653213,8.73624999999999,135.757670642722, 5685P 11374 --78.0723482653213,7.11812499999999,121.756696066765, 5685P 11375 --78.0723308447116,8.73624999999999,121.756696066765, 5685P 11376 --78.0723308447116,7.118125,121.756696066765,-77.4716159572515, 5685P 11377 -8.73624999999999,121.756696066765,-77.4716159572515,7.118125, 5685P 11378 -120.957281704017,-77.4716333778613,8.73624999999999, 5685P 11379 -120.957281704017,-77.4716333778613,7.118125,120.957281704017, 5685P 11380 --64.6719448567939,8.73624999999999,120.957281704017, 5685P 11381 --64.6719448567939,7.118125,121.756696066765,-64.6719448567939, 5685P 11382 -8.73624999999999,121.756696066765,-64.6719448567939,7.118125, 5685P 11383 -102.706327256509,-64.0713519136024,8.73624999999999, 5685P 11384 -116.707297477313,-64.0713693342122,8.73624999999999, 5685P 11385 -102.706327256509,-64.0713519136024,7.118125,116.707297477313, 5685P 11386 --64.0713693342122,7.118125,116.707297477313,-64.6721887453311, 5685P 11387 -8.73624999999999,116.707297477313,-64.6721887453311,7.118125, 5685P 11388 -117.506711840062,-64.6721713247213,8.73624999999999, 5685P 11389 -117.506711840062,-64.6721713247213,7.118125,117.506720550367, 5685P 11390 --77.4716159572515,8.73624999999999,117.506720550367, 5685P 11391 --77.4716159572515,7.118125,116.707306187618,-77.4716333778613, 5685P 11392 -8.73624999999999,116.707306187618,-77.4716333778613,7.118125, 5685P 11393 -116.707297477313,-78.0723482653214,8.73624999999999, 5685P 11394 -116.707297477313,-78.0723482653214,7.118125,102.706327256509, 5685P 11395 --78.0723308447116,8.73624999999999,102.706327256509, 5685P 11396 --78.0723308447116,7.118125,102.706327256509,-77.4716159572515, 5685P 11397 -8.73624999999999,102.706327256509,-77.4716159572515,7.118125, 5685P 11398 -101.90691289376,-77.4716333778613,8.73624999999999, 5685P 11399 -101.90691289376,-77.4716333778613,7.118125,101.90691289376, 5685P 11400 --64.672188745331,8.73624999999999,101.90691289376, 5685P 11401 --64.672188745331,7.118125,102.706327256509,-64.6721713247213, 5685P 11402 -8.73624999999999,102.706327256509,-64.6721713247213,7.118125, 5685P 11403 -83.6559584462526,-64.0713519136024,8.73625,97.6569286670568, 5685P 11404 --64.0713693342122,8.73624999999999,83.6559584462526, 5685P 11405 --64.0713519136024,7.118125,97.6569286670568,-64.0713693342122, 5685P 11406 -7.118125,97.6569286670568,-64.6721887453311,8.73624999999999, 5685P 11407 -97.6569286670568,-64.6721887453311,7.118125,98.4563430298053, 5685P 11408 --64.6721713247213,8.73624999999999,98.4563430298053, 5685P 11409 --64.6721713247213,7.118125,98.4563430298053,-77.4716159572515, 5685P 11410 -8.73624999999999,98.4563430298053,-77.4716159572515,7.118125, 5685P 11411 -97.6569286670568,-77.4716333778613,8.73624999999999, 5685P 11412 -97.6569286670568,-77.4716333778613,7.118125,97.6569286670568, 5685P 11413 --78.0723482653214,8.73624999999999,97.6569286670568, 5685P 11414 --78.0723482653214,7.118125,83.6559497359477,-78.0723308447116, 5685P 11415 -8.73625,83.6559497359477,-78.0723308447116,7.118125, 5685P 11416 -83.6559584462526,-77.4716159572515,8.73625,83.6559584462526, 5685P 11417 --77.4716159572515,7.118125,82.8565440835042,-77.4716333778613, 5685P 11418 -8.73625,82.8565440835042,-77.4716333778613,7.118125, 5685P 11419 -82.8565440835042,-64.672188745331,8.73625,82.8565440835042, 5685P 11420 --64.672188745331,7.118125,83.6559584462526,-64.6721713247213, 5685P 11421 -8.73625,83.6559584462526,-64.6721713247213,7.118125, 5685P 11422 -64.6055896359963,-64.0713519136024,8.73625,78.6065598568005, 5685P 11423 --64.0713693342122,8.73625,64.6055896359963,-64.0713519136024, 5685P 11424 -7.118125,78.6065598568005,-64.0713693342122,7.118125, 5685P 11425 -78.6065598568005,-64.6721887453311,8.73625,78.6065598568005, 5685P 11426 --64.6721887453311,7.118125,79.4059742195489,-64.6721713247213, 5685P 11427 -8.73625,79.4059742195489,-64.6721713247213,7.118125, 5685P 11428 -79.4059742195489,-77.4716159572515,8.73625,79.4059742195489, 5685P 11429 --77.4716159572515,7.118125,78.6065598568005,-77.4716333778613, 5685P 11430 -8.73625,78.6065598568005,-77.4716333778613,7.118125, 5685P 11431 -78.6065598568005,-78.0723482653214,8.73625,78.6065598568005, 5685P 11432 --78.0723482653214,7.118125,64.6055896359963,-78.0723308447116, 5685P 11433 -8.73625,64.6055896359963,-78.0723308447116,7.118125, 5685P 11434 -64.6055896359963,-77.4716159572515,8.73625,64.6055896359963, 5685P 11435 --77.4716159572515,7.118125,63.8061752732478,-77.4716333778613, 5685P 11436 -8.73625,63.8061752732478,-77.4716333778613,7.118125, 5685P 11437 -63.8061752732478,-64.672188745331,8.73625,63.8061752732478, 5685P 11438 --64.672188745331,7.118125,64.6055896359963,-64.6721713247213, 5685P 11439 -8.73625,64.6055896359963,-64.6721713247213,7.118125, 5685P 11440 -45.5564838199499,-64.0713519136024,8.73625,59.5564610659959, 5685P 11441 --64.0713693342122,8.73625,45.5564838199499,-64.0713519136024, 5685P 11442 -7.118125,59.5564610659959,-64.0713693342122,7.118125, 5685P 11443 -59.5564610659959,-64.6721887453311,8.73625,59.5564610659959, 5685P 11444 --64.6721887453311,7.118125,60.3558754287444,-64.6721713247213, 5685P 11445 -8.73625,60.3558754287444,-64.6721713247213,7.118125, 5685P 11446 -60.3558754287444,-77.4716159572515,8.73625,60.3558754287444, 5685P 11447 --77.4716159572515,7.118125,59.5564610659959,-77.4716333778613, 5685P 11448 -8.73625,59.5564610659959,-77.4716333778613,7.118125, 5685P 11449 -59.5564610659959,-78.0723482653214,8.73625,59.5564610659959, 5685P 11450 --78.0723482653214,7.118125,45.5564838199499,-78.0723308447116, 5685P 11451 -8.73625,45.5564838199499,-78.0723308447116,7.118125, 5685P 11452 -45.5564838199499,-77.4716159572515,8.73625,45.5564838199499, 5685P 11453 --77.4716159572515,7.118125,44.7564597358587,-77.4716333778613, 5685P 11454 -8.73625,44.7564597358587,-77.4716333778613,7.118125, 5685P 11455 -44.7564771564685,-64.672188745331,8.73625,44.7564771564685, 5685P 11456 --64.672188745331,7.118125,45.5565012405597,-64.6721713247213, 5685P 11457 -8.73625,45.5565012405597,-64.6721713247213,7.118125, 5685P 11458 -155.763761628875,-53.5475075752323,8.73624999999999, 5685P 11459 -157.764849292068,-55.4841478849295,8.73624999999999, 5685P 11460 -157.764849292068,-55.4841478849295,7.11812499999999, 5685P 11461 -155.763761628875,-53.5475075752323,7.11812499999999, 5685P 11462 -44.6011495726228,-53.5475075752323,8.73625,44.6011495726228, 5685P 11463 --53.5475075752323,7.118125,42.5989895726247,-55.5496648502042, 5685P 11464 -8.73625,42.5989895726247,-55.5496648502042,7.118125, 5685P 11465 -42.5989922976492,-137.747055886107,8.73625,42.5989922976492, 5685P 11466 --137.747055886107,7.118125,44.6011522976492,-139.749215886107, 5685P 11467 -8.73625,44.6011522976492,-139.749215886107,7.118125, 5685P 11468 -155.763727154066,-139.749215886107,8.73624999999999, 5685P 11469 -155.763727154066,-139.749215886107,7.11812499999999, 5685P 11470 -157.76588715377,-137.747021411595,8.73624999999999, 5685P 11471 -157.76588715377,-137.747021411595,7.11812499999999, 5685P 11472 -157.764849292068,-77.4716159572515,8.73624999999999, 5685P 11473 -157.764849292068,-77.4716159572515,7.11812499999999; 5685P 11474 -502,129,83.9631823855374,-224.118941783543,-7.49999999999994, 5687P 11475 -83.9631823855374,-232.561324596043,-7.49999999999994, 5687P 11476 -83.9631823855374,-224.118941783543,-8.49999999999993, 5687P 11477 -83.9631823855374,-232.561324596043,-8.49999999999993, 5687P 11478 -58.8069323855374,-224.118941783543,-7.49999999999996, 5687P 11479 -58.8069323855374,-224.118941783543,-8.49999999999997, 5687P 11480 -58.8069323855374,-182.864058971043,-7.49999999999996, 5687P 11481 -58.8069323855374,-182.864058971043,-8.49999999999997, 5687P 11482 -48.6897448855374,-182.864058971043,-7.49999999999996, 5687P 11483 -48.6897448855374,-182.864058971043,-8.49999999999997, 5687P 11484 -48.6897448855374,-232.561324596043,-7.49999999999996, 5687P 11485 -48.6897448855374,-232.561324596043,-8.49999999999997, 5687P 11486 -18.9406505609936,-172.121201750437,-7.49999999999997, 5687P 11487 -21.7409062360425,-172.121201750437,-7.49999999999997, 5687P 11488 -18.9406505609936,-172.121201750437,-11.6,21.7409062360425, 5687P 11489 --172.121201750437,-11.6,97.7151063167837,-190.598023114196, 5687P 11490 --7.49999999999994,100.515361991833,-190.598023114196, 5687P 11491 --7.49999999999994,97.7151063167837,-190.598023114196, 5687P 11492 --11.5999999999999,100.515361991833,-190.598023114196, 5687P 11493 --11.5999999999999,4.43314110940289,-167.842837467805, 5687P 11494 -5.50000000000003,2.93314110940287,-165.622914872961, 5687P 11495 -5.50000000000003,4.43314110940285,-167.842837467805, 5687P 11496 --7.49999999999997,2.93314110940287,-165.622914872961, 5687P 11497 --7.49999999999997,114.304136640482,-248.749215886107, 5687P 11498 -5.50000000000007,114.304136640482,-248.749215886107, 5687P 11499 --7.49999999999994,7.72696471074415,-248.749215886107, 5687P 11500 --7.49999999999997,7.72696471074415,-248.749215886107, 5687P 11501 -5.50000000000003,4.43214272479956,-245.454337167255, 5687P 11502 -5.50000000000003,4.43214272479953,-245.454337167255, 5687P 11503 --7.49999999999997,4.43314110940289,-187.471624566822, 5687P 11504 --7.49999999999997,4.43314110940289,-187.471624566822, 5687P 11505 -5.50000000000003,5.43422877259573,-163.047507575232, 5687P 11506 -5.50000000000003,7.7269302359354,-164.547507575232, 5687P 11507 -5.50000000000003,23.4436836497758,-164.547507575232, 5687P 11508 -5.50000000000003,23.4436836497758,-163.047507575232, 5687P 11509 -5.50000000000003,2.93210324777537,-247.747012802266, 5687P 11510 -5.50000000000003,2.9331411094029,-187.471615957251, 5687P 11511 -5.50000000000003,116.596838103822,-250.249215886107, 5687P 11512 -5.50000000000007,5.43426324740444,-250.249215886107, 5687P 11513 -5.50000000000003,7.7269302359354,-164.547507575232, 5687P 11514 --7.49999999999997,23.4436836497758,-164.547507575232, 5687P 11515 --7.49999999999997,114.304139365509,-164.547507575232, 5687P 11516 --7.49999999999994,114.304139365509,-164.547507575232, 5687P 11517 -5.50000000000007,105.613764146653,-164.547507575232, 5687P 11518 -5.50000000000005,105.613764146653,-164.547507575232, 5687P 11519 --7.49999999999994,117.59899817983,-245.454354455992, 5687P 11520 -5.50000000000007,119.098998103822,-247.747055886107, 5687P 11521 -5.50000000000007,119.099000828846,-165.54966486678, 5687P 11522 -5.50000000000007,117.599000752838,-167.842369071796, 5687P 11523 -5.50000000000007,116.596840828848,-163.047507575232, 5687P 11524 -5.50000000000007,105.613764146653,-163.047507575232, 5687P 11525 -5.50000000000005,21.4157277366876,-228.698656211065, 5687P 11526 --7.49999999999997,24.4159835478226,-228.69865621105, 5687P 11527 --7.49999999999997,21.4157277366876,-228.698656211065,-11.6, 5687P 11528 -24.4159835478226,-228.69865621105,-11.6,97.6171158746639, 5687P 11529 --228.698656211057,-7.49999999999994,100.617371685799, 5687P 11530 --228.698656211057,-7.49999999999994,97.6171158746639, 5687P 11531 --228.698656211057,-11.5999999999999,100.617371685799, 5687P 11532 --228.698656211057,-11.5999999999999,21.4157277366876, 5687P 11533 --190.598023114212,-7.49999999999997,24.4159835478226, 5687P 11534 --190.598023114196,-7.49999999999997,21.4157277366876, 5687P 11535 --190.598023114212,-11.6,24.4159835478226,-190.598023114196, 5687P 11536 --11.6,100.190183492478,-172.121201750453,-7.49999999999994, 5687P 11537 -103.190439303613,-172.121201750437,-7.49999999999994, 5687P 11538 -100.190183492478,-172.121201750453,-11.5999999999999, 5687P 11539 -103.190439303613,-172.121201750437,-11.5999999999999, 5687P 11540 -91.5919773314763,-164.547507575232,-7.49999999999994, 5687P 11541 -105.613764146653,-164.547507575232,-11.5999999999999, 5687P 11542 -91.5919773314763,-164.547507575232,-11.5999999999999, 5687P 11543 -105.613764146653,-163.047507575232,1.50000000000007, 5687P 11544 -105.613764146653,-156.547507575232,1.50000000000007, 5687P 11545 -105.613764146653,-156.547507575232,-11.5999999999999, 5687P 11546 -117.599000752838,-167.842369071796,-7.49999999999994, 5687P 11547 -117.59899817983,-245.454354455992,-7.49999999999994, 5687P 11548 -119.099000828848,-165.549667575232,-7.49999999999994, 5687P 11549 -74.4331411094029,-164.547507575232,-7.49999999999996, 5687P 11550 -74.4331411094029,-171.547507575232,-7.49999999999996, 5687P 11551 -54.4331411094029,-171.547507575231,-7.49999999999996, 5687P 11552 -54.4331411094029,-164.547507575232,-7.49999999999996, 5687P 11553 -40.4453194054918,-164.547507575232,-7.49999999999997, 5687P 11554 -2.93314110940287,-165.476420277504,-7.49999999999997, 5687P 11555 -40.4453194054918,-164.547507575232,-11.6,23.4436836497758, 5687P 11556 --164.547507575232,-11.6,40.4453194054918,-164.547507575232, 5687P 11557 -5.50000000000003,40.4453194054918,-163.047507575232, 5687P 11558 -5.50000000000003,40.4453194054918,-163.047507575232, 5687P 11559 -1.50000000000003,40.4453194054918,-156.547507575232, 5687P 11560 -1.50000000000003,40.4453194054918,-156.547507575232,-11.6, 5687P 11561 -23.4436836497758,-156.547507575232,1.50000000000003, 5687P 11562 -23.4436836497758,-163.047507575232,1.50000000000003, 5687P 11563 -91.5919773314763,-156.547507575232,1.50000000000007, 5687P 11564 -91.5919773314763,-163.047507575232,1.50000000000007, 5687P 11565 -91.5919773314763,-163.047507575232,5.50000000000004, 5687P 11566 -116.596840828848,-163.047507575232,7.50000000000006, 5687P 11567 -5.43422877259573,-163.047507575232,7.50000000000003, 5687P 11568 -23.4436836497758,-156.547507575232,-11.6,91.5919773314763, 5687P 11569 --156.547507575232,-11.5999999999999,91.5919773314763, 5687P 11570 --164.547507575232,5.50000000000004,54.4331411094029, 5687P 11571 --164.547507575232,5.50000000000004,54.4331411094029, 5687P 11572 --171.547507575231,5.50000000000004,74.4331411094029, 5687P 11573 --171.547507575232,5.50000000000004,74.4331411094029, 5687P 11574 --164.547507575232,5.50000000000004,2.9331411094029, 5687P 11575 --187.471615957251,7.50000000000003,2.93314110940287, 5687P 11576 --165.476420277504,7.50000000000003,2.93210324777537, 5687P 11577 --247.747012802266,7.50000000000003,5.43426324740444, 5687P 11578 --250.249215886107,7.50000000000003,116.596838103822, 5687P 11579 --250.249215886107,7.50000000000006,119.098998103822, 5687P 11580 --247.747055886107,7.50000000000006,119.099000828846, 5687P 11581 --165.54966486678,7.50000000000006,5.43422877259573, 5687P 11582 --156.547507575232,7.50000000000003,-3.56685889059712, 5687P 11583 --165.410723179457,7.50000000000003,-3.56685889059712, 5687P 11584 --187.471555692063,7.50000000000003,-3.56789675126109, 5687P 11585 --247.746900880977,7.50000000000003,5.43426324740444, 5687P 11586 --256.749215886107,7.50000000000003,116.596838103822, 5687P 11587 --256.749215886107,7.50000000000006,125.598998103822, 5687P 11588 --247.747055886107,7.50000000000006,125.599000828846, 5687P 11589 --165.54966508227,7.50000000000006,116.596840828848, 5687P 11590 --156.547507575232,7.50000000000006,-3.56685889059712, 5687P 11591 --165.410723179457,-11.6,-3.56685889059712,-187.471555692063, 5687P 11592 --11.6,-3.56789675126109,-247.746900880977,-11.6, 5687P 11593 -5.43426324740444,-256.749215886107,-11.6,116.596838103822, 5687P 11594 --256.749215886107,-11.5999999999999,125.598998103822, 5687P 11595 --247.747055886107,-11.5999999999999,125.599000828846, 5687P 11596 --165.54966508227,-11.5999999999999,116.596840828848, 5687P 11597 --156.547507575232,-11.5999999999999,5.43422877259573, 5687P 11598 --156.547507575232,-11.6; 5687P 11599 -502,171,220.752682252201,-164.547507575232,-7.5, 5689P 11600 -220.752682252201,-164.547507575232,5.5,213.600041714311, 5689P 11601 --164.547507575232,5.5,213.600041714311,-164.547507575232,-7.5, 5689P 11602 -220.752682252201,-163.047507575232,5.5,169.612220010399, 5689P 11603 --163.047507575232,5.5,169.612220010399,-164.547507575232,5.5, 5689P 11604 -193.600041714311,-164.547507575232,5.5,193.600041714311, 5689P 11605 --171.547507575231,5.5,213.600041714311,-171.547507575232,5.5, 5689P 11606 -220.752682252201,-163.047507575232,1.5,237.780664751561, 5689P 11607 --163.047507575232,1.5,237.780664751561,-163.047507575232,5.5, 5689P 11608 -255.763741433756,-163.047507575232,5.5,255.763741433756, 5689P 11609 --163.047507575232,7.5,144.601129377503,-163.047507575232,7.5, 5689P 11610 -144.601129377503,-163.047507575232,5.5,155.584237511039, 5689P 11611 --163.047507575232,5.5,155.584237511039,-163.047507575232,1.5, 5689P 11612 -169.612220010399,-163.047507575232,1.5,155.584237511039, 5689P 11613 --156.547507575232,-11.6,155.584237511039,-164.547507575232, 5689P 11614 --11.6,155.584237511039,-156.547507575232,1.49999999999999, 5689P 11615 -155.584237511039,-164.547507575232,5.5,155.584237511039, 5689P 11616 --164.547507575232,-7.5,220.752682252201,-156.547507575232,-11.6, 5689P 11617 -220.752682252201,-164.547507575232,-11.6,220.752682252201, 5689P 11618 --156.547507575232,1.5,146.893830840843,-164.547507575232,5.5, 5689P 11619 -146.893830840843,-164.547507575232,-7.5,169.612220010399, 5689P 11620 --156.547507575232,1.5,144.601129377503,-156.547507575232,-11.6, 5689P 11621 -144.601129377503,-156.547507575232,7.5,255.763741433756, 5689P 11622 --156.547507575232,7.5,255.763741433756,-156.547507575232,-11.6, 5689P 11623 -237.780664751561,-156.547507575232,-11.6,237.780664751561, 5689P 11624 --156.547507575232,1.5,169.612220010399,-156.547507575232,-11.6, 5689P 11625 -169.612220010399,-164.547507575232,-11.6,237.780664751561, 5689P 11626 --164.547507575232,-11.6,264.765901433754,-165.54966508227,-11.6, 5689P 11627 -264.765898708729,-247.747055886107,-11.6,255.763738708729, 5689P 11628 --256.749215886107,-11.6,144.601163852312,-256.749215886107, 5689P 11629 --11.6,135.599003853647,-247.746900880977,-11.6,135.600041714311, 5689P 11630 --187.471555692063,-11.6,135.600041714311,-165.410723179457, 5689P 11631 --11.6,239.357084097385,-172.121201750453,-11.6,242.35733990852, 5689P 11632 --172.121201750437,-11.6,160.582628341595,-190.598023114212, 5689P 11633 --11.6,163.58288415273,-190.598023114196,-11.6,236.784016479572, 5689P 11634 --228.698656211057,-11.6,239.784272290707,-228.698656211057, 5689P 11635 --11.6,160.582628341595,-228.698656211065,-11.6,163.58288415273, 5689P 11636 --228.69865621105,-11.6,236.882006921691,-190.598023114196,-11.6, 5689P 11637 -239.68226259674,-190.598023114196,-11.6,158.107551165901, 5689P 11638 --172.121201750437,-11.6,160.90780684095,-172.121201750437,-11.6, 5689P 11639 -198.356008409196,-187.660756010089,-7.5,189.332570909196, 5689P 11640 --187.660756010089,-7.5,198.356008409196,-187.660756010089,-8.5, 5689P 11641 -189.332570909196,-187.660756010089,-8.5,206.793508409196, 5689P 11642 --187.856068510089,-7.5,206.793508409196,-187.856068510089,-8.5, 5689P 11643 -211.148977159196,-190.102162260089,-7.5,211.148977159196, 5689P 11644 --190.102162260089,-8.5,212.691945909196,-194.770131010089,-7.5, 5689P 11645 -212.691945909196,-194.770131010089,-8.5,211.520070909196, 5689P 11646 --199.067006010089,-7.5,211.520070909196,-199.067006010089,-8.5, 5689P 11647 -208.277883409196,-201.488881010089,-7.5,208.277883409196, 5689P 11648 --201.488881010089,-8.5,197.887258409196,-202.192006010089,-7.5, 5689P 11649 -197.887258409196,-202.192006010089,-8.5,189.332570909196, 5689P 11650 --202.192006010089,-7.5,189.332570909196,-202.192006010089,-8.5, 5689P 11651 -189.332570909196,-211.332631010089,-7.5,189.332570909196, 5689P 11652 --235.238881010089,-7.5,189.332570909196,-211.332631010089,-8.5, 5689P 11653 -189.332570909196,-235.238881010089,-8.5,191.676320909196, 5689P 11654 --211.332631010089,-7.5,191.676320909196,-211.332631010089,-8.5, 5689P 11655 -197.496633409196,-211.977162260089,-7.5,197.496633409196, 5689P 11656 --211.977162260089,-8.5,200.973195909196,-214.359974760089,-7.5, 5689P 11657 -200.973195909196,-214.359974760089,-8.5,207.066945909196, 5689P 11658 --222.777943510089,-7.5,207.066945909196,-222.777943510089,-8.5, 5689P 11659 -215.426320909196,-235.238881010089,-7.5,215.426320909196, 5689P 11660 --235.238881010089,-8.5,229.254445909196,-235.238881010089,-7.5, 5689P 11661 -229.254445909196,-235.238881010089,-8.5,222.262258409196, 5689P 11662 --224.067006010089,-7.5,222.262258409196,-224.067006010089,-8.5, 5689P 11663 -215.680227159196,-214.770131010089,-7.5,215.680227159196, 5689P 11664 --214.770131010089,-8.5,209.488820909196,-209.965443510089,-7.5, 5689P 11665 -209.488820909196,-209.965443510089,-8.5,220.816945909196, 5689P 11666 --204.672474760089,-7.5,220.816945909196,-204.672474760089,-8.5, 5689P 11667 -224.606008409196,-194.027943510089,-7.5,224.606008409196, 5689P 11668 --194.027943510089,-8.5,222.106008409196,-185.004506010089,-7.5, 5689P 11669 -222.106008409196,-185.004506010089,-8.5,215.445852159196, 5689P 11670 --179.516224760089,-7.5,215.445852159196,-179.516224760089,-8.5, 5689P 11671 -202.106008409196,-177.973256010089,-7.5,202.106008409196, 5689P 11672 --177.973256010089,-8.5,177.770070909196,-177.973256010089,-7.5, 5689P 11673 -177.770070909196,-177.973256010089,-8.5,177.770070909196, 5689P 11674 --235.238881010089,-7.5,177.770070909196,-235.238881010089,-8.5, 5689P 11675 -256.765901357746,-167.842369071796,-7.5,256.765898784737, 5689P 11676 --245.454354455992,-7.5,258.265901433755,-165.549667575232,-7.5, 5689P 11677 -253.471039970417,-164.547507575232,-7.5,237.780664751561, 5689P 11678 --164.547507575232,-7.5,213.600041714311,-171.547507575232,-7.5, 5689P 11679 -193.600041714311,-171.547507575231,-7.5,193.600041714311, 5689P 11680 --164.547507575232,-7.5,169.612220010399,-164.547507575232,-7.5, 5689P 11681 -142.100041714311,-165.476420277504,-7.5,142.100041714311, 5689P 11682 --165.622914872961,-7.5,143.600041714311,-167.842837467805,-7.5, 5689P 11683 -143.600041714311,-187.471624566822,-7.5,143.599043329707, 5689P 11684 --245.454337167255,-7.5,146.893865315652,-248.749215886107,-7.5, 5689P 11685 -253.47103724539,-248.749215886107,-7.5,242.35733990852, 5689P 11686 --172.121201750437,-7.5,239.357084097385,-172.121201750453,-7.5, 5689P 11687 -163.58288415273,-190.598023114196,-7.5,160.582628341595, 5689P 11688 --190.598023114212,-7.5,239.784272290707,-228.698656211057,-7.5, 5689P 11689 -236.784016479572,-228.698656211057,-7.5,163.58288415273, 5689P 11690 --228.69865621105,-7.5,160.582628341595,-228.698656211065,-7.5, 5689P 11691 -239.68226259674,-190.598023114196,-7.5,236.882006921691, 5689P 11692 --190.598023114196,-7.5,160.90780684095,-172.121201750437,-7.5, 5689P 11693 -158.107551165901,-172.121201750437,-7.5,143.600041714311, 5689P 11694 --167.842837467805,5.5,142.100041714311,-165.622914872961,5.5, 5689P 11695 -253.47103724539,-248.749215886107,5.5,146.893865315652, 5689P 11696 --248.749215886107,5.5,143.599043329707,-245.454337167255,5.5, 5689P 11697 -143.600041714311,-187.471624566822,5.5,142.099003852683, 5689P 11698 --247.747012802266,5.5,142.100041714311,-187.471615957251,5.5, 5689P 11699 -255.763738708729,-250.249215886107,5.5,144.601163852312, 5689P 11700 --250.249215886107,5.5,253.471039970417,-164.547507575232,5.5, 5689P 11701 -237.780664751561,-164.547507575232,5.5,256.765898784737, 5689P 11702 --245.454354455992,5.5,258.265898708729,-247.747055886107,5.5, 5689P 11703 -258.265901433754,-165.54966486678,5.5,256.765901357746, 5689P 11704 --167.842369071796,5.5,142.100041714311,-187.471615957251,7.5, 5689P 11705 -142.100041714311,-165.476420277504,7.5,142.099003852683, 5689P 11706 --247.747012802266,7.5,144.601163852312,-250.249215886107,7.5, 5689P 11707 -255.763738708729,-250.249215886107,7.5,258.265898708729, 5689P 11708 --247.747055886107,7.5,258.265901433754,-165.54966486678,7.5, 5689P 11709 -135.600041714311,-165.410723179457,7.5,135.600041714311, 5689P 11710 --187.471555692063,7.5,135.599003853647,-247.746900880977,7.5, 5689P 11711 -144.601163852312,-256.749215886107,7.5,255.763738708729, 5689P 11712 --256.749215886107,7.5,264.765898708729,-247.747055886107,7.5, 5689P 11713 -264.765901433754,-165.54966508227,7.5; 5689P 11714 -504,915,2027,5685,1,5685,2,2029,5685,2,5685,3,2031,5685,4,5685, 5691P 11715 -3,2033,5685,1,5685,4,2035,5685,2,5685,1,2037,5685,3,5685,4,2039, 5691P 11716 -5685,5,5685,6,2041,5685,6,5685,7,2043,5685,8,5685,7,2045,5685,5, 5691P 11717 -5685,8,2047,5685,6,5685,5,2049,5685,7,5685,8,2051,5685,9,5685, 5691P 11718 -10,2053,5685,10,5685,11,2055,5685,12,5685,11,2057,5685,9,5685, 5691P 11719 -12,2059,5685,10,5685,9,2061,5685,11,5685,12,2063,5685,13,5685, 5691P 11720 -14,2065,5685,14,5685,15,2067,5685,16,5685,15,2069,5685,13,5685, 5691P 11721 -16,2071,5685,14,5685,13,2073,5685,15,5685,16,2075,5685,17,5685, 5691P 11722 -18,2077,5685,17,5685,19,2079,5685,20,5685,19,2081,5685,18,5685, 5691P 11723 -20,2083,5685,18,5685,21,2085,5685,22,5685,20,2087,5685,21,5685, 5691P 11724 -22,2089,5685,21,5685,23,2091,5685,24,5685,22,2093,5685,23,5685, 5691P 11725 -24,2095,5685,23,5685,25,2097,5685,26,5685,24,2099,5685,25,5685, 5691P 11726 -26,2101,5685,25,5685,27,2103,5685,28,5685,26,2105,5685,27,5685, 5691P 11727 -28,2107,5685,27,5685,29,2109,5685,30,5685,28,2111,5685,29,5685, 5691P 11728 -30,2113,5685,29,5685,31,2115,5685,32,5685,30,2117,5685,31,5685, 5691P 11729 -32,2119,5685,31,5685,33,2121,5685,34,5685,32,2123,5685,33,5685, 5691P 11730 -34,2125,5685,33,5685,35,2127,5685,36,5685,34,2129,5685,35,5685, 5691P 11731 -36,2131,5685,35,5685,37,2133,5685,38,5685,36,2135,5685,37,5685, 5691P 11732 -38,2137,5685,37,5685,39,2139,5685,40,5685,38,2141,5685,39,5685, 5691P 11733 -40,2143,5685,39,5685,17,2145,5685,19,5685,40,2147,5685,41,5685, 5691P 11734 -42,2149,5685,41,5685,43,2151,5685,44,5685,43,2153,5685,42,5685, 5691P 11735 -44,2155,5685,42,5685,45,2157,5685,46,5685,44,2159,5685,45,5685, 5691P 11736 -46,2161,5685,45,5685,47,2163,5685,48,5685,46,2165,5685,47,5685, 5691P 11737 -48,2167,5685,47,5685,49,2169,5685,50,5685,48,2171,5685,49,5685, 5691P 11738 -50,2173,5685,49,5685,51,2175,5685,52,5685,50,2177,5685,51,5685, 5691P 11739 -52,2179,5685,51,5685,53,2181,5685,54,5685,52,2183,5685,53,5685, 5691P 11740 -54,2185,5685,53,5685,55,2187,5685,56,5685,54,2189,5685,55,5685, 5691P 11741 -56,2191,5685,55,5685,57,2193,5685,58,5685,56,2195,5685,57,5685, 5691P 11742 -58,2197,5685,57,5685,59,2199,5685,60,5685,58,2201,5685,59,5685, 5691P 11743 -60,2203,5685,59,5685,61,2205,5685,62,5685,60,2207,5685,61,5685, 5691P 11744 -62,2209,5685,61,5685,63,2211,5685,64,5685,62,2213,5685,63,5685, 5691P 11745 -64,2215,5685,63,5685,41,2217,5685,43,5685,64,2219,5685,65,5685, 5691P 11746 -66,2221,5685,65,5685,67,2223,5685,68,5685,67,2225,5685,66,5685, 5691P 11747 -68,2227,5685,66,5685,69,2229,5685,70,5685,68,2231,5685,69,5685, 5691P 11748 -70,2233,5685,69,5685,71,2235,5685,72,5685,70,2237,5685,71,5685, 5691P 11749 -72,2239,5685,71,5685,73,2241,5685,74,5685,72,2243,5685,73,5685, 5691P 11750 -74,2245,5685,73,5685,75,2247,5685,76,5685,74,2249,5685,75,5685, 5691P 11751 -76,2251,5685,75,5685,77,2253,5685,78,5685,76,2255,5685,77,5685, 5691P 11752 -78,2257,5685,77,5685,79,2259,5685,80,5685,78,2261,5685,79,5685, 5691P 11753 -80,2263,5685,79,5685,81,2265,5685,82,5685,80,2267,5685,81,5685, 5691P 11754 -82,2269,5685,81,5685,83,2271,5685,84,5685,82,2273,5685,83,5685, 5691P 11755 -84,2275,5685,83,5685,85,2277,5685,86,5685,84,2279,5685,85,5685, 5691P 11756 -86,2281,5685,85,5685,87,2283,5685,88,5685,86,2285,5685,87,5685, 5691P 11757 -88,2287,5685,87,5685,65,2289,5685,67,5685,88,2291,5685,89,5685, 5691P 11758 -90,2293,5685,89,5685,91,2295,5685,92,5685,91,2297,5685,90,5685, 5691P 11759 -92,2299,5685,90,5685,93,2301,5685,94,5685,92,2303,5685,93,5685, 5691P 11760 -94,2305,5685,93,5685,95,2307,5685,96,5685,94,2309,5685,95,5685, 5691P 11761 -96,2311,5685,95,5685,97,2313,5685,98,5685,96,2315,5685,97,5685, 5691P 11762 -98,2317,5685,97,5685,99,2319,5685,100,5685,98,2321,5685,99,5685, 5691P 11763 -100,2323,5685,99,5685,101,2325,5685,102,5685,100,2327,5685,101, 5691P 11764 -5685,102,2329,5685,101,5685,103,2331,5685,104,5685,102,2333, 5691P 11765 -5685,103,5685,104,2335,5685,103,5685,105,2337,5685,106,5685,104, 5691P 11766 -2339,5685,105,5685,106,2341,5685,105,5685,107,2343,5685,108, 5691P 11767 -5685,106,2345,5685,107,5685,108,2347,5685,107,5685,109,2349, 5691P 11768 -5685,110,5685,108,2351,5685,109,5685,110,2353,5685,109,5685,111, 5691P 11769 -2355,5685,112,5685,110,2357,5685,111,5685,112,2359,5685,111, 5691P 11770 -5685,89,2361,5685,91,5685,112,2363,5685,113,5685,114,2365,5685, 5691P 11771 -113,5685,115,2367,5685,116,5685,115,2369,5685,114,5685,116,2371, 5691P 11772 -5685,114,5685,117,2373,5685,118,5685,116,2375,5685,117,5685,118, 5691P 11773 -2377,5685,117,5685,119,2379,5685,120,5685,118,2381,5685,119, 5691P 11774 -5685,120,2383,5685,119,5685,121,2385,5685,122,5685,120,2387, 5691P 11775 -5685,121,5685,122,2389,5685,121,5685,123,2391,5685,124,5685,122, 5691P 11776 -2393,5685,123,5685,124,2395,5685,123,5685,125,2397,5685,126, 5691P 11777 -5685,124,2399,5685,125,5685,126,2401,5685,125,5685,127,2403, 5691P 11778 -5685,128,5685,126,2405,5685,127,5685,128,2407,5685,127,5685,129, 5691P 11779 -2409,5685,130,5685,128,2411,5685,129,5685,130,2413,5685,129, 5691P 11780 -5685,131,2415,5685,132,5685,130,2417,5685,131,5685,132,2419, 5691P 11781 -5685,131,5685,133,2421,5685,134,5685,132,2423,5685,133,5685,134, 5691P 11782 -2425,5685,133,5685,135,2427,5685,136,5685,134,2429,5685,135, 5691P 11783 -5685,136,2431,5685,135,5685,113,2433,5685,115,5685,136,2435, 5691P 11784 -5685,137,5685,138,2437,5685,137,5685,139,2439,5685,140,5685,139, 5691P 11785 -2441,5685,138,5685,140,2443,5685,138,5685,141,2445,5685,142, 5691P 11786 -5685,140,2447,5685,141,5685,142,2449,5685,141,5685,143,2451, 5691P 11787 -5685,144,5685,142,2453,5685,143,5685,144,2455,5685,143,5685,145, 5691P 11788 -2457,5685,146,5685,144,2459,5685,145,5685,146,2461,5685,145, 5691P 11789 -5685,147,2463,5685,148,5685,146,2465,5685,147,5685,148,2467, 5691P 11790 -5685,147,5685,149,2469,5685,150,5685,148,2471,5685,149,5685,150, 5691P 11791 -2473,5685,149,5685,151,2475,5685,152,5685,150,2477,5685,151, 5691P 11792 -5685,152,2479,5685,151,5685,153,2481,5685,154,5685,152,2483, 5691P 11793 -5685,153,5685,154,2485,5685,153,5685,155,2487,5685,156,5685,154, 5691P 11794 -2489,5685,155,5685,156,2491,5685,155,5685,157,2493,5685,158, 5691P 11795 -5685,156,2495,5685,157,5685,158,2497,5685,157,5685,159,2499, 5691P 11796 -5685,160,5685,158,2501,5685,159,5685,160,2503,5685,159,5685,137, 5691P 11797 -2505,5685,139,5685,160,2507,5685,161,5685,162,2509,5685,161, 5691P 11798 -5685,163,2511,5685,164,5685,163,2513,5685,162,5685,164,2515, 5691P 11799 -5685,162,5685,165,2517,5685,166,5685,164,2519,5685,165,5685,166, 5691P 11800 -2521,5685,165,5685,167,2523,5685,168,5685,166,2525,5685,167, 5691P 11801 -5685,168,2527,5685,167,5685,169,2529,5685,170,5685,168,2531, 5691P 11802 -5685,169,5685,170,2533,5685,169,5685,171,2535,5685,172,5685,170, 5691P 11803 -2537,5685,171,5685,172,2539,5685,171,5685,173,2541,5685,174, 5691P 11804 -5685,172,2543,5685,173,5685,174,2545,5685,173,5685,175,2547, 5691P 11805 -5685,176,5685,174,2549,5685,175,5685,176,2551,5685,175,5685,177, 5691P 11806 -2553,5685,178,5685,176,2555,5685,177,5685,178,2557,5685,177, 5691P 11807 -5685,179,2559,5685,180,5685,178,2561,5685,179,5685,180,2563, 5691P 11808 -5685,179,5685,181,2565,5685,182,5685,180,2567,5685,181,5685,182, 5691P 11809 -2569,5685,181,5685,183,2571,5685,184,5685,182,2573,5685,183, 5691P 11810 -5685,184,2575,5685,183,5685,161,2577,5685,163,5685,184,2579, 5691P 11811 -5685,185,5685,186,2581,5685,185,5685,187,2583,5685,188,5685,187, 5691P 11812 -2585,5685,186,5685,188,2587,5685,186,5685,189,2589,5685,190, 5691P 11813 -5685,188,2591,5685,189,5685,190,2593,5685,189,5685,191,2595, 5691P 11814 -5685,192,5685,190,2597,5685,191,5685,192,2599,5685,191,5685,193, 5691P 11815 -2601,5685,194,5685,192,2603,5685,193,5685,194,2605,5685,193, 5691P 11816 -5685,195,2607,5685,196,5685,194,2609,5685,195,5685,196,2611, 5691P 11817 -5685,195,5685,197,2613,5685,198,5685,196,2615,5685,197,5685,198, 5691P 11818 -2617,5685,197,5685,199,2619,5685,200,5685,198,2621,5685,199, 5691P 11819 -5685,200,2623,5685,199,5685,201,2625,5685,202,5685,200,2627, 5691P 11820 -5685,201,5685,202,2629,5685,201,5685,203,2631,5685,204,5685,202, 5691P 11821 -2633,5685,203,5685,204,2635,5685,203,5685,205,2637,5685,206, 5691P 11822 -5685,204,2639,5685,205,5685,206,2641,5685,205,5685,207,2643, 5691P 11823 -5685,208,5685,206,2645,5685,207,5685,208,2647,5685,207,5685,185, 5691P 11824 -2649,5685,187,5685,208,2651,5685,209,5685,210,2653,5685,209, 5691P 11825 -5685,211,2655,5685,212,5685,211,2657,5685,210,5685,212,2659, 5691P 11826 -5685,210,5685,213,2661,5685,214,5685,212,2663,5685,213,5685,214, 5691P 11827 -2665,5685,213,5685,215,2667,5685,216,5685,214,2669,5685,215, 5691P 11828 -5685,216,2671,5685,215,5685,217,2673,5685,218,5685,216,2675, 5691P 11829 -5685,217,5685,218,2677,5685,217,5685,219,2679,5685,220,5685,218, 5691P 11830 -2681,5685,219,5685,220,2683,5685,219,5685,221,2685,5685,222, 5691P 11831 -5685,220,2687,5685,221,5685,222,2689,5685,221,5685,223,2691, 5691P 11832 -5685,224,5685,222,2693,5685,223,5685,224,2695,5685,223,5685,225, 5691P 11833 -2697,5685,226,5685,224,2699,5685,225,5685,226,2701,5685,225, 5691P 11834 -5685,227,2703,5685,228,5685,226,2705,5685,227,5685,228,2707, 5691P 11835 -5685,227,5685,229,2709,5685,230,5685,228,2711,5685,229,5685,230, 5691P 11836 -2713,5685,229,5685,231,2715,5685,232,5685,230,2717,5685,231, 5691P 11837 -5685,232,2719,5685,231,5685,209,2721,5685,211,5685,232,2723, 5691P 11838 -5685,233,5685,234,2725,5685,233,5685,235,2727,5685,236,5685,235, 5691P 11839 -2729,5685,234,5685,236,2731,5685,234,5685,237,2733,5685,238, 5691P 11840 -5685,236,2735,5685,237,5685,238,2737,5685,237,5685,239,2739, 5691P 11841 -5685,240,5685,238,2741,5685,239,5685,240,2743,5685,239,5685,241, 5691P 11842 -2745,5685,242,5685,240,2747,5685,241,5685,242,2749,5685,241, 5691P 11843 -5685,243,2751,5685,244,5685,242,2753,5685,243,5685,244,2755, 5691P 11844 -5685,243,5685,245,2757,5685,246,5685,244,2759,5685,245,5685,246, 5691P 11845 -2761,5685,245,5685,247,2763,5685,248,5685,246,2765,5685,247, 5691P 11846 -5685,248,2767,5685,247,5685,249,2769,5685,250,5685,248,2771, 5691P 11847 -5685,249,5685,250,2773,5685,249,5685,251,2775,5685,252,5685,250, 5691P 11848 -2777,5685,251,5685,252,2779,5685,251,5685,253,2781,5685,254, 5691P 11849 -5685,252,2783,5685,253,5685,254,2785,5685,253,5685,255,2787, 5691P 11850 -5685,256,5685,254,2789,5685,255,5685,256,2791,5685,255,5685,233, 5691P 11851 -2793,5685,235,5685,256,2795,5685,257,5685,258,2797,5685,257, 5691P 11852 -5685,259,2799,5685,260,5685,259,2801,5685,258,5685,260,2803, 5691P 11853 -5685,258,5685,261,2805,5685,262,5685,260,2807,5685,261,5685,262, 5691P 11854 -2809,5685,261,5685,263,2811,5685,264,5685,262,2813,5685,263, 5691P 11855 -5685,264,2815,5685,263,5685,265,2817,5685,266,5685,264,2819, 5691P 11856 -5685,265,5685,266,2821,5685,265,5685,267,2823,5685,268,5685,266, 5691P 11857 -2825,5685,267,5685,268,2827,5685,267,5685,269,2829,5685,270, 5691P 11858 -5685,268,2831,5685,269,5685,270,2833,5685,269,5685,271,2835, 5691P 11859 -5685,272,5685,270,2837,5685,271,5685,272,2839,5685,271,5685,273, 5691P 11860 -2841,5685,274,5685,272,2843,5685,273,5685,274,2845,5685,273, 5691P 11861 -5685,275,2847,5685,276,5685,274,2849,5685,275,5685,276,2851, 5691P 11862 -5685,275,5685,277,2853,5685,278,5685,276,2855,5685,277,5685,278, 5691P 11863 -2857,5685,277,5685,279,2859,5685,280,5685,278,2861,5685,279, 5691P 11864 -5685,280,2863,5685,279,5685,257,2865,5685,259,5685,280,2867, 5691P 11865 -5685,281,5685,282,2869,5685,281,5685,283,2871,5685,284,5685,283, 5691P 11866 -2873,5685,282,5685,284,2875,5685,282,5685,285,2877,5685,286, 5691P 11867 -5685,284,2879,5685,285,5685,286,2881,5685,285,5685,287,2883, 5691P 11868 -5685,288,5685,286,2885,5685,287,5685,288,2887,5685,287,5685,289, 5691P 11869 -2889,5685,290,5685,288,2891,5685,289,5685,290,2893,5685,289, 5691P 11870 -5685,291,2895,5685,292,5685,290,2897,5685,291,5685,292,2899, 5691P 11871 -5685,291,5685,293,2901,5685,294,5685,292,2903,5685,293,5685,294, 5691P 11872 -2905,5685,293,5685,295,2907,5685,296,5685,294,2909,5685,295, 5691P 11873 -5685,296,2911,5685,295,5685,297,2913,5685,298,5685,296,2915, 5691P 11874 -5685,297,5685,298,2917,5685,297,5685,299,2919,5685,300,5685,298, 5691P 11875 -2921,5685,299,5685,300,2923,5685,299,5685,301,2925,5685,302, 5691P 11876 -5685,300,2927,5685,301,5685,302,2929,5685,301,5685,303,2931, 5691P 11877 -5685,304,5685,302,2933,5685,303,5685,304,2935,5685,303,5685,281, 5691P 11878 -2937,5685,283,5685,304,2939,5685,305,5685,306,2941,5685,305, 5691P 11879 -5685,307,2943,5685,308,5685,307,2945,5685,306,5685,308,2947, 5691P 11880 -5685,306,5685,309,2949,5685,310,5685,308,2951,5685,309,5685,310, 5691P 11881 -2953,5685,309,5685,311,2955,5685,312,5685,310,2957,5685,311, 5691P 11882 -5685,312,2959,5685,311,5685,313,2961,5685,314,5685,312,2963, 5691P 11883 -5685,313,5685,314,2965,5685,313,5685,315,2967,5685,316,5685,314, 5691P 11884 -2969,5685,315,5685,316,2971,5685,315,5685,317,2973,5685,318, 5691P 11885 -5685,316,2975,5685,317,5685,318,2977,5685,317,5685,319,2979, 5691P 11886 -5685,320,5685,318,2981,5685,319,5685,320,2983,5685,319,5685,321, 5691P 11887 -2985,5685,322,5685,320,2987,5685,321,5685,322,2989,5685,321, 5691P 11888 -5685,323,2991,5685,324,5685,322,2993,5685,323,5685,324,2995, 5691P 11889 -5685,323,5685,325,2997,5685,326,5685,324,2999,5685,325,5685,326, 5691P 11890 -3001,5685,325,5685,327,3003,5685,328,5685,326,3005,5685,327, 5691P 11891 -5685,328,3007,5685,327,5685,305,3009,5685,307,5685,328,3011, 5691P 11892 -5685,329,5685,330,3013,5685,329,5685,331,3015,5685,332,5685,331, 5691P 11893 -3017,5685,330,5685,332,3019,5685,330,5685,333,3021,5685,334, 5691P 11894 -5685,332,3023,5685,333,5685,334,3025,5685,333,5685,335,3027, 5691P 11895 -5685,336,5685,334,3029,5685,335,5685,336,3031,5685,335,5685,337, 5691P 11896 -3033,5685,338,5685,336,3035,5685,337,5685,338,3037,5685,337, 5691P 11897 -5685,339,3039,5685,340,5685,338,3041,5685,339,5685,340,3043, 5691P 11898 -5685,339,5685,341,3045,5685,342,5685,340,3047,5685,341,5685,342, 5691P 11899 -3049,5685,341,5685,343,3051,5685,344,5685,342,3053,5685,343, 5691P 11900 -5685,344,3055,5685,343,5685,345,3057,5685,346,5685,344,3059, 5691P 11901 -5685,345,5685,346,3061,5685,345,5685,347,3063,5685,348,5685,346, 5691P 11902 -3065,5685,347,5685,348,3067,5685,347,5685,349,3069,5685,350, 5691P 11903 -5685,348,3071,5685,349,5685,350,3073,5685,349,5685,351,3075, 5691P 11904 -5685,352,5685,350,3077,5685,351,5685,352,3079,5685,351,5685,329, 5691P 11905 -3081,5685,331,5685,352,3083,5685,353,5685,354,3085,5685,353, 5691P 11906 -5685,355,3087,5685,356,5685,355,3089,5685,354,5685,356,3091, 5691P 11907 -5685,354,5685,357,3093,5685,358,5685,356,3095,5685,357,5685,358, 5691P 11908 -3097,5685,357,5685,359,3099,5685,360,5685,358,3101,5685,359, 5691P 11909 -5685,360,3103,5685,359,5685,361,3105,5685,362,5685,360,3107, 5691P 11910 -5685,361,5685,362,3109,5685,361,5685,363,3111,5685,364,5685,362, 5691P 11911 -3113,5685,363,5685,364,3115,5685,363,5685,365,3117,5685,366, 5691P 11912 -5685,364,3119,5685,365,5685,366,3121,5685,365,5685,367,3123, 5691P 11913 -5685,368,5685,366,3125,5685,367,5685,368,3127,5685,367,5685,369, 5691P 11914 -3129,5685,370,5685,368,3131,5685,369,5685,370,3133,5685,369, 5691P 11915 -5685,371,3135,5685,372,5685,370,3137,5685,371,5685,372,3139, 5691P 11916 -5685,371,5685,373,3141,5685,374,5685,372,3143,5685,373,5685,374, 5691P 11917 -3145,5685,373,5685,375,3147,5685,376,5685,374,3149,5685,375, 5691P 11918 -5685,376,3151,5685,375,5685,353,3153,5685,355,5685,376,3155, 5691P 11919 -5685,377,5685,378,3157,5685,377,5685,379,3159,5685,380,5685,379, 5691P 11920 -3161,5685,378,5685,380,3163,5685,378,5685,381,3165,5685,382, 5691P 11921 -5685,380,3167,5685,381,5685,382,3169,5685,381,5685,383,3171, 5691P 11922 -5685,384,5685,382,3173,5685,383,5685,384,3175,5685,383,5685,385, 5691P 11923 -3177,5685,386,5685,384,3179,5685,385,5685,386,3181,5685,385, 5691P 11924 -5685,387,3183,5685,388,5685,386,3185,5685,387,5685,388,3187, 5691P 11925 -5685,387,5685,389,3189,5685,390,5685,388,3191,5685,389,5685,390, 5691P 11926 -3193,5685,389,5685,391,3195,5685,392,5685,390,3197,5685,391, 5691P 11927 -5685,392,3199,5685,391,5685,393,3201,5685,394,5685,392,3203, 5691P 11928 -5685,393,5685,394,3205,5685,393,5685,395,3207,5685,396,5685,394, 5691P 11929 -3209,5685,395,5685,396,3211,5685,395,5685,397,3213,5685,398, 5691P 11930 -5685,396,3215,5685,397,5685,398,3217,5685,397,5685,399,3219, 5691P 11931 -5685,400,5685,398,3221,5685,399,5685,400,3223,5685,399,5685,377, 5691P 11932 -3225,5685,379,5685,400,3227,5685,401,5685,402,3229,5685,401, 5691P 11933 -5685,403,3231,5685,404,5685,403,3233,5685,402,5685,404,3235, 5691P 11934 -5685,402,5685,405,3237,5685,406,5685,404,3239,5685,405,5685,406, 5691P 11935 -3241,5685,405,5685,407,3243,5685,408,5685,406,3245,5685,407, 5691P 11936 -5685,408,3247,5685,407,5685,409,3249,5685,410,5685,408,3251, 5691P 11937 -5685,409,5685,410,3253,5685,409,5685,411,3255,5685,412,5685,410, 5691P 11938 -3257,5685,411,5685,412,3259,5685,411,5685,413,3261,5685,414, 5691P 11939 -5685,412,3263,5685,413,5685,414,3265,5685,413,5685,415,3267, 5691P 11940 -5685,416,5685,414,3269,5685,415,5685,416,3271,5685,415,5685,417, 5691P 11941 -3273,5685,418,5685,416,3275,5685,417,5685,418,3277,5685,417, 5691P 11942 -5685,419,3279,5685,420,5685,418,3281,5685,419,5685,420,3283, 5691P 11943 -5685,419,5685,421,3285,5685,422,5685,420,3287,5685,421,5685,422, 5691P 11944 -3289,5685,421,5685,423,3291,5685,424,5685,422,3293,5685,423, 5691P 11945 -5685,424,3295,5685,423,5685,401,3297,5685,403,5685,424,3299, 5691P 11946 -5685,425,5685,426,3301,5685,425,5685,427,3303,5685,428,5685,427, 5691P 11947 -3305,5685,426,5685,428,3307,5685,426,5685,429,3309,5685,430, 5691P 11948 -5685,428,3311,5685,429,5685,430,3313,5685,429,5685,431,3315, 5691P 11949 -5685,432,5685,430,3317,5685,431,5685,432,3319,5685,431,5685,433, 5691P 11950 -3321,5685,434,5685,432,3323,5685,433,5685,434,3325,5685,433, 5691P 11951 -5685,435,3327,5685,436,5685,434,3329,5685,435,5685,436,3331, 5691P 11952 -5685,435,5685,437,3333,5685,438,5685,436,3335,5685,437,5685,438, 5691P 11953 -3337,5685,437,5685,439,3339,5685,440,5685,438,3341,5685,439, 5691P 11954 -5685,440,3343,5685,439,5685,441,3345,5685,442,5685,440,3347, 5691P 11955 -5685,441,5685,442,3349,5685,441,5685,443,3351,5685,444,5685,442, 5691P 11956 -3353,5685,443,5685,444,3355,5685,443,5685,445,3357,5685,446, 5691P 11957 -5685,444,3359,5685,445,5685,446,3361,5685,445,5685,447,3363, 5691P 11958 -5685,448,5685,446,3365,5685,447,5685,448,3367,5685,447,5685,425, 5691P 11959 -3369,5685,427,5685,448,3371,5685,449,5685,450,3373,5685,449, 5691P 11960 -5685,451,3375,5685,452,5685,451,3377,5685,450,5685,452,3379, 5691P 11961 -5685,450,5685,453,3381,5685,454,5685,452,3383,5685,453,5685,454, 5691P 11962 -3385,5685,453,5685,455,3387,5685,456,5685,454,3389,5685,455, 5691P 11963 -5685,456,3391,5685,455,5685,457,3393,5685,458,5685,456,3395, 5691P 11964 -5685,457,5685,458,3397,5685,457,5685,459,3399,5685,460,5685,458, 5691P 11965 -3401,5685,459,5685,460,3403,5685,459,5685,461,3405,5685,462, 5691P 11966 -5685,460,3407,5685,461,5685,462,3409,5685,461,5685,463,3411, 5691P 11967 -5685,464,5685,462,3413,5685,463,5685,464,3415,5685,463,5685,465, 5691P 11968 -3417,5685,466,5685,464,3419,5685,465,5685,466,3421,5685,465, 5691P 11969 -5685,467,3423,5685,468,5685,466,3425,5685,467,5685,468,3427, 5691P 11970 -5685,467,5685,469,3429,5685,470,5685,468,3431,5685,469,5685,470, 5691P 11971 -3433,5685,469,5685,471,3435,5685,472,5685,470,3437,5685,471, 5691P 11972 -5685,472,3439,5685,471,5685,449,3441,5685,451,5685,472,3443, 5691P 11973 -5685,473,5685,474,3445,5685,473,5685,475,3447,5685,476,5685,475, 5691P 11974 -3449,5685,474,5685,476,3451,5685,474,5685,477,3453,5685,478, 5691P 11975 -5685,476,3455,5685,477,5685,478,3457,5685,477,5685,479,3459, 5691P 11976 -5685,480,5685,478,3461,5685,479,5685,480,3463,5685,479,5685,481, 5691P 11977 -3465,5685,482,5685,480,3467,5685,481,5685,482,3469,5685,481, 5691P 11978 -5685,483,3471,5685,484,5685,482,3473,5685,483,5685,484,3475, 5691P 11979 -5685,483,5685,485,3477,5685,486,5685,484,3479,5685,485,5685,486, 5691P 11980 -3481,5685,485,5685,487,3483,5685,488,5685,486,3485,5685,487, 5691P 11981 -5685,488,3487,5685,487,5685,489,3489,5685,490,5685,488,3491, 5691P 11982 -5685,489,5685,490,3493,5685,489,5685,491,3495,5685,492,5685,490, 5691P 11983 -3497,5685,491,5685,492,3499,5685,491,5685,493,3501,5685,494, 5691P 11984 -5685,492,3503,5685,493,5685,494,3505,5685,493,5685,495,3507, 5691P 11985 -5685,496,5685,494,3509,5685,495,5685,496,3511,5685,495,5685,473, 5691P 11986 -3513,5685,475,5685,496,3515,5685,497,5685,498,3517,5685,497, 5691P 11987 -5685,499,3519,5685,500,5685,499,3521,5685,498,5685,500,3523, 5691P 11988 -5685,498,5685,501,3525,5685,502,5685,500,3527,5685,501,5685,502, 5691P 11989 -3529,5685,501,5685,503,3531,5685,504,5685,502,3533,5685,503, 5691P 11990 -5685,504,3535,5685,503,5685,505,3537,5685,506,5685,504,3539, 5691P 11991 -5685,505,5685,506,3541,5685,505,5685,507,3543,5685,508,5685,506, 5691P 11992 -3545,5685,507,5685,508,3547,5685,507,5685,509,3549,5685,510, 5691P 11993 -5685,508,3551,5685,509,5685,510,3553,5685,509,5685,511,3555, 5691P 11994 -5685,512,5685,510,3557,5685,511,5685,512,3559,5685,511,5685,513, 5691P 11995 -3561,5685,514,5685,512,3563,5685,513,5685,514,3565,5685,513, 5691P 11996 -5685,515,3567,5685,516,5685,514,3569,5685,515,5685,516,3571, 5691P 11997 -5685,515,5685,517,3573,5685,518,5685,516,3575,5685,517,5685,518, 5691P 11998 -3577,5685,517,5685,519,3579,5685,520,5685,518,3581,5685,519, 5691P 11999 -5685,520,3583,5685,519,5685,497,3585,5685,499,5685,520,3587, 5691P 12000 -5685,521,5685,522,3589,5685,521,5685,523,3591,5685,524,5685,523, 5691P 12001 -3593,5685,522,5685,524,3595,5685,522,5685,525,3597,5685,526, 5691P 12002 -5685,524,3599,5685,525,5685,526,3601,5685,525,5685,527,3603, 5691P 12003 -5685,528,5685,526,3605,5685,527,5685,528,3607,5685,527,5685,529, 5691P 12004 -3609,5685,530,5685,528,3611,5685,529,5685,530,3613,5685,529, 5691P 12005 -5685,531,3615,5685,532,5685,530,3617,5685,531,5685,532,3619, 5691P 12006 -5685,531,5685,533,3621,5685,534,5685,532,3623,5685,533,5685,534, 5691P 12007 -3625,5685,533,5685,535,3627,5685,536,5685,534,3629,5685,535, 5691P 12008 -5685,536,3631,5685,535,5685,537,3633,5685,538,5685,536,3635, 5691P 12009 -5685,537,5685,538,3637,5685,537,5685,539,3639,5685,540,5685,538, 5691P 12010 -3641,5685,539,5685,540,3643,5685,539,5685,541,3645,5685,542, 5691P 12011 -5685,540,3647,5685,541,5685,542,3649,5685,541,5685,543,3651, 5691P 12012 -5685,544,5685,542,3653,5685,543,5685,544,3655,5685,543,5685,521, 5691P 12013 -3657,5685,523,5685,544,3659,5685,545,5685,546,3661,5685,545, 5691P 12014 -5685,547,3663,5685,548,5685,547,3665,5685,546,5685,548,3667, 5691P 12015 -5685,546,5685,549,3669,5685,550,5685,548,3671,5685,549,5685,550, 5691P 12016 -3673,5685,549,5685,551,3675,5685,552,5685,550,3677,5685,551, 5691P 12017 -5685,552,3679,5685,551,5685,553,3681,5685,554,5685,552,3683, 5691P 12018 -5685,553,5685,554,3685,5685,553,5685,555,3687,5685,556,5685,554, 5691P 12019 -3689,5685,555,5685,556,3691,5685,555,5685,557,3693,5685,558, 5691P 12020 -5685,556,3695,5685,557,5685,558,3697,5685,557,5685,559,3699, 5691P 12021 -5685,560,5685,558,3701,5685,559,5685,560,3703,5685,559,5685,561, 5691P 12022 -3705,5685,562,5685,560,3707,5685,561,5685,562,3709,5685,561, 5691P 12023 -5685,563,3711,5685,564,5685,562,3713,5685,563,5685,564,3715, 5691P 12024 -5685,563,5685,565,3717,5685,566,5685,564,3719,5685,565,5685,566, 5691P 12025 -3721,5685,565,5685,567,3723,5685,568,5685,566,3725,5685,567, 5691P 12026 -5685,568,3727,5685,567,5685,545,3729,5685,547,5685,568,3731, 5691P 12027 -5685,569,5685,570,3733,5685,569,5685,571,3735,5685,572,5685,571, 5691P 12028 -3737,5685,570,5685,572,3739,5685,570,5685,573,3741,5685,574, 5691P 12029 -5685,572,3743,5685,573,5685,574,3745,5685,573,5685,575,3747, 5691P 12030 -5685,576,5685,574,3749,5685,575,5685,576,3751,5685,575,5685,577, 5691P 12031 -3753,5685,578,5685,576,3755,5685,577,5685,578,3757,5685,577, 5691P 12032 -5685,579,3759,5685,580,5685,578,3761,5685,579,5685,580,3763, 5691P 12033 -5685,579,5685,581,3765,5685,582,5685,580,3767,5685,581,5685,582, 5691P 12034 -3769,5685,581,5685,583,3771,5685,584,5685,582,3773,5685,583, 5691P 12035 -5685,584,3775,5685,583,5685,585,3777,5685,586,5685,584,3779, 5691P 12036 -5685,585,5685,586,3781,5685,585,5685,587,3783,5685,588,5685,586, 5691P 12037 -3785,5685,587,5685,588,3787,5685,587,5685,589,3789,5685,590, 5691P 12038 -5685,588,3791,5685,589,5685,590,3793,5685,589,5685,591,3795, 5691P 12039 -5685,592,5685,590,3797,5685,591,5685,592,3799,5685,591,5685,569, 5691P 12040 -3801,5685,571,5685,592,3803,5685,593,5685,594,3805,5685,594, 5691P 12041 -5685,595,3807,5685,596,5685,595,3809,5685,593,5685,596,3811, 5691P 12042 -5685,597,5685,593,3813,5685,598,5685,596,3815,5685,597,5685,598, 5691P 12043 -3817,5685,599,5685,597,3819,5685,600,5685,598,3821,5685,599, 5691P 12044 -5685,600,3823,5685,601,5685,599,3825,5685,602,5685,600,3827, 5691P 12045 -5685,601,5685,602,3829,5685,603,5685,601,3831,5685,604,5685,602, 5691P 12046 -3833,5685,603,5685,604,3835,5685,605,5685,603,3837,5685,606, 5691P 12047 -5685,604,3839,5685,605,5685,606,3841,5685,607,5685,605,3843, 5691P 12048 -5685,608,5685,606,3845,5685,607,5685,608,3847,5685,609,5685,607, 5691P 12049 -3849,5685,610,5685,608,3851,5685,609,5685,610,3853,5685,594, 5691P 12050 -5685,609,3855,5685,595,5685,610; 5691P 12051 -504,195,3857,5687,1,5687,2,3859,5687,1,5687,3,3861,5687,3,5687, 5693P 12052 -4,3863,5687,2,5687,4,3865,5687,5,5687,1,3867,5687,5,5687,6,3869, 5693P 12053 -5687,6,5687,3,3871,5687,7,5687,5,3873,5687,7,5687,8,3875,5687,8, 5693P 12054 -5687,6,3877,5687,9,5687,7,3879,5687,9,5687,10,3881,5687,10,5687, 5693P 12055 -8,3883,5687,11,5687,9,3885,5687,11,5687,12,3887,5687,12,5687,10, 5693P 12056 -3889,5687,2,5687,11,3891,5687,4,5687,12,3893,5687,13,5687,14, 5693P 12057 -3895,5687,13,5687,15,3897,5687,16,5687,15,3899,5687,14,5687,16, 5693P 12058 -3901,5687,14,5687,13,3903,5687,15,5687,16,3905,5687,17,5687,18, 5693P 12059 -3907,5687,17,5687,19,3909,5687,20,5687,19,3911,5687,18,5687,20, 5693P 12060 -3913,5687,18,5687,17,3915,5687,19,5687,20,3917,5687,21,5687,22, 5693P 12061 -3919,5687,23,5687,21,3921,5687,23,5687,24,3923,5687,22,5687,24, 5693P 12062 -3925,5687,25,5687,26,3927,5687,26,5687,27,3929,5687,27,5687,28, 5693P 12063 -3931,5687,28,5687,25,3933,5687,29,5687,30,3935,5687,30,5687,31, 5693P 12064 -3937,5687,32,5687,31,3939,5687,32,5687,29,3941,5687,33,5687,34, 5693P 12065 -3943,5687,35,5687,34,3945,5687,35,5687,36,3947,5687,33,5687,36, 5693P 12066 -3949,5687,37,5687,29,3951,5687,21,5687,32,3953,5687,38,5687,22, 5693P 12067 -3955,5687,37,5687,38,3957,5687,39,5687,25,3959,5687,28,5687,40, 5693P 12068 -3961,5687,39,5687,40,3963,5687,34,5687,41,3965,5687,41,5687,42, 5693P 12069 -3967,5687,42,5687,35,3969,5687,43,5687,44,3971,5687,44,5687,45, 5693P 12070 -3973,5687,45,5687,46,3975,5687,46,5687,43,3977,5687,47,5687,48, 5693P 12071 -3979,5687,49,5687,48,3981,5687,49,5687,50,3983,5687,47,5687,50, 5693P 12072 -3985,5687,44,5687,51,3987,5687,52,5687,51,3989,5687,52,5687,45, 5693P 12073 -3991,5687,53,5687,54,3993,5687,53,5687,55,3995,5687,56,5687,55, 5693P 12074 -3997,5687,54,5687,56,3999,5687,54,5687,53,4001,5687,55,5687,56, 5693P 12075 -4003,5687,57,5687,58,4005,5687,57,5687,59,4007,5687,60,5687,59, 5693P 12076 -4009,5687,58,5687,60,4011,5687,58,5687,57,4013,5687,59,5687,60, 5693P 12077 -4015,5687,61,5687,62,4017,5687,61,5687,63,4019,5687,64,5687,63, 5693P 12078 -4021,5687,62,5687,64,4023,5687,62,5687,61,4025,5687,63,5687,64, 5693P 12079 -4027,5687,65,5687,66,4029,5687,65,5687,67,4031,5687,68,5687,67, 5693P 12080 -4033,5687,66,5687,68,4035,5687,66,5687,65,4037,5687,67,5687,68, 5693P 12081 -4039,5687,46,5687,69,4041,5687,46,5687,70,4043,5687,71,5687,70, 5693P 12082 -4045,5687,69,5687,71,4047,5687,52,5687,72,4049,5687,72,5687,73, 5693P 12083 -4051,5687,74,5687,73,4053,5687,70,5687,74,4055,5687,75,5687,76, 5693P 12084 -4057,5687,77,5687,75,4059,5687,43,5687,77,4061,5687,78,5687,69, 5693P 12085 -4063,5687,78,5687,79,4065,5687,79,5687,80,4067,5687,80,5687,81, 5693P 12086 -4069,5687,82,5687,81,4071,5687,82,5687,42,4073,5687,83,5687,41, 5693P 12087 -4075,5687,24,5687,83,4077,5687,31,5687,23,4079,5687,27,5687,30, 5693P 12088 -4081,5687,76,5687,26,4083,5687,82,5687,84,4085,5687,85,5687,84, 5693P 12089 -4087,5687,42,5687,85,4089,5687,86,5687,82,4091,5687,87,5687,86, 5693P 12090 -4093,5687,87,5687,88,4095,5687,88,5687,89,4097,5687,90,5687,89, 5693P 12091 -4099,5687,84,5687,90,4101,5687,89,5687,91,4103,5687,92,5687,88, 5693P 12092 -4105,5687,92,5687,91,4107,5687,73,5687,93,4109,5687,94,5687,72, 5693P 12093 -4111,5687,94,5687,93,4113,5687,87,5687,95,4115,5687,94,5687,95, 5693P 12094 -4117,5687,96,5687,51,4119,5687,97,5687,96,4121,5687,97,5687,33, 5693P 12095 -4123,5687,92,5687,36,4125,5687,98,5687,85,4127,5687,91,5687,98, 5693P 12096 -4129,5687,99,5687,71,4131,5687,93,5687,99,4133,5687,100,5687,95, 5693P 12097 -4135,5687,69,5687,100,4137,5687,81,5687,101,4139,5687,101,5687, 5693P 12098 -86,4141,5687,101,5687,102,4143,5687,102,5687,103,4145,5687,103, 5693P 12099 -5687,104,4147,5687,100,5687,104,4149,5687,104,5687,78,4151,5687, 5693P 12100 -79,5687,103,4153,5687,80,5687,102,4155,5687,76,5687,47,4157, 5693P 12101 -5687,50,5687,75,4159,5687,105,5687,106,4161,5687,105,5687,38, 5693P 12102 -4163,5687,106,5687,83,4165,5687,107,5687,105,4167,5687,107,5687, 5693P 12103 -37,4169,5687,108,5687,107,4171,5687,108,5687,40,4173,5687,109, 5693P 12104 -5687,108,4175,5687,109,5687,39,4177,5687,110,5687,109,4179,5687, 5693P 12105 -110,5687,48,4181,5687,111,5687,110,4183,5687,111,5687,49,4185, 5693P 12106 -5687,96,5687,111,4187,5687,106,5687,97,4189,5687,112,5687,113, 5693P 12107 -4191,5687,113,5687,114,4193,5687,114,5687,115,4195,5687,115, 5693P 12108 -5687,116,4197,5687,116,5687,117,4199,5687,117,5687,118,4201, 5693P 12109 -5687,118,5687,119,4203,5687,119,5687,120,4205,5687,120,5687,112, 5693P 12110 -4207,5687,113,5687,121,4209,5687,122,5687,121,4211,5687,114, 5693P 12111 -5687,122,4213,5687,123,5687,122,4215,5687,115,5687,123,4217, 5693P 12112 -5687,124,5687,123,4219,5687,116,5687,124,4221,5687,125,5687,124, 5693P 12113 -4223,5687,117,5687,125,4225,5687,126,5687,125,4227,5687,118, 5693P 12114 -5687,126,4229,5687,127,5687,126,4231,5687,119,5687,127,4233, 5693P 12115 -5687,128,5687,127,4235,5687,120,5687,128,4237,5687,90,5687,99, 5693P 12116 -4239,5687,129,5687,98,4241,5687,112,5687,129,4243,5687,74,5687, 5693P 12117 -128,4245,5687,121,5687,129; 5693P 12118 -504,258,4247,5689,1,5689,2,4249,5689,2,5689,3,4251,5689,3,5689, 5695P 12119 -4,4253,5689,4,5689,1,4255,5689,2,5689,5,4257,5689,6,5689,5,4259, 5695P 12120 -5689,6,5689,7,4261,5689,8,5689,7,4263,5689,8,5689,9,4265,5689,9, 5695P 12121 -5689,10,4267,5689,10,5689,3,4269,5689,11,5689,12,4271,5689,13, 5695P 12122 -5689,12,4273,5689,13,5689,14,4275,5689,15,5689,14,4277,5689,16, 5695P 12123 -5689,15,4279,5689,16,5689,17,4281,5689,17,5689,18,4283,5689,19, 5695P 12124 -5689,18,4285,5689,19,5689,20,4287,5689,6,5689,20,4289,5689,11, 5695P 12125 -5689,5,4291,5689,21,5689,22,4293,5689,23,5689,21,4295,5689,23, 5695P 12126 -5689,19,4297,5689,24,5689,18,4299,5689,25,5689,24,4301,5689,22, 5695P 12127 -5689,25,4303,5689,26,5689,27,4305,5689,28,5689,26,4307,5689,28, 5695P 12128 -5689,11,4309,5689,27,5689,1,4311,5689,24,5689,29,4313,5689,29, 5695P 12129 -5689,30,4315,5689,30,5689,25,4317,5689,31,5689,23,4319,5689,32, 5695P 12130 -5689,21,4321,5689,33,5689,32,4323,5689,34,5689,33,4325,5689,34, 5695P 12131 -5689,35,4327,5689,36,5689,35,4329,5689,36,5689,37,4331,5689,37, 5695P 12132 -5689,28,4333,5689,38,5689,26,4335,5689,38,5689,31,4337,5689,22, 5695P 12133 -5689,39,4339,5689,39,5689,38,4341,5689,27,5689,40,4343,5689,40, 5695P 12134 -5689,36,4345,5689,35,5689,41,4347,5689,41,5689,42,4349,5689,42, 5695P 12135 -5689,43,4351,5689,43,5689,44,4353,5689,44,5689,45,4355,5689,45, 5695P 12136 -5689,46,4357,5689,46,5689,47,4359,5689,47,5689,32,4361,5689,48, 5695P 12137 -5689,49,4363,5689,49,5689,48,4365,5689,50,5689,51,4367,5689,51, 5695P 12138 -5689,50,4369,5689,52,5689,53,4371,5689,53,5689,52,4373,5689,54, 5695P 12139 -5689,55,4375,5689,55,5689,54,4377,5689,56,5689,57,4379,5689,57, 5695P 12140 -5689,56,4381,5689,58,5689,59,4383,5689,59,5689,58,4385,5689,60, 5695P 12141 -5689,61,4387,5689,60,5689,62,4389,5689,62,5689,63,4391,5689,61, 5695P 12142 -5689,63,4393,5689,64,5689,60,4395,5689,64,5689,65,4397,5689,65, 5695P 12143 -5689,62,4399,5689,66,5689,64,4401,5689,66,5689,67,4403,5689,67, 5695P 12144 -5689,65,4405,5689,68,5689,66,4407,5689,68,5689,69,4409,5689,69, 5695P 12145 -5689,67,4411,5689,70,5689,68,4413,5689,70,5689,71,4415,5689,71, 5695P 12146 -5689,69,4417,5689,72,5689,70,4419,5689,72,5689,73,4421,5689,73, 5695P 12147 -5689,71,4423,5689,74,5689,72,4425,5689,74,5689,75,4427,5689,75, 5695P 12148 -5689,73,4429,5689,76,5689,74,4431,5689,76,5689,77,4433,5689,77, 5695P 12149 -5689,75,4435,5689,61,5689,76,4437,5689,63,5689,77,4439,5689,78, 5695P 12150 -5689,79,4441,5689,78,5689,80,4443,5689,80,5689,81,4445,5689,79, 5695P 12151 -5689,81,4447,5689,82,5689,78,4449,5689,82,5689,83,4451,5689,83, 5695P 12152 -5689,80,4453,5689,84,5689,82,4455,5689,84,5689,85,4457,5689,85, 5695P 12153 -5689,83,4459,5689,86,5689,84,4461,5689,86,5689,87,4463,5689,87, 5695P 12154 -5689,85,4465,5689,88,5689,86,4467,5689,88,5689,89,4469,5689,89, 5695P 12155 -5689,87,4471,5689,90,5689,88,4473,5689,90,5689,91,4475,5689,91, 5695P 12156 -5689,89,4477,5689,92,5689,90,4479,5689,92,5689,93,4481,5689,93, 5695P 12157 -5689,91,4483,5689,94,5689,92,4485,5689,94,5689,95,4487,5689,95, 5695P 12158 -5689,93,4489,5689,96,5689,94,4491,5689,96,5689,97,4493,5689,97, 5695P 12159 -5689,95,4495,5689,98,5689,96,4497,5689,98,5689,99,4499,5689,99, 5695P 12160 -5689,97,4501,5689,100,5689,98,4503,5689,100,5689,101,4505,5689, 5695P 12161 -101,5689,99,4507,5689,102,5689,100,4509,5689,102,5689,103,4511, 5695P 12162 -5689,103,5689,101,4513,5689,104,5689,102,4515,5689,104,5689,105, 5695P 12163 -4517,5689,105,5689,103,4519,5689,106,5689,104,4521,5689,106, 5695P 12164 -5689,107,4523,5689,107,5689,105,4525,5689,108,5689,106,4527, 5695P 12165 -5689,108,5689,109,4529,5689,109,5689,107,4531,5689,110,5689,108, 5695P 12166 -4533,5689,110,5689,111,4535,5689,111,5689,109,4537,5689,112, 5695P 12167 -5689,110,4539,5689,112,5689,113,4541,5689,113,5689,111,4543, 5695P 12168 -5689,79,5689,112,4545,5689,81,5689,113,4547,5689,114,5689,115, 5695P 12169 -4549,5689,116,5689,114,4551,5689,117,5689,116,4553,5689,118, 5695P 12170 -5689,117,4555,5689,118,5689,1,4557,5689,4,5689,119,4559,5689, 5695P 12171 -119,5689,120,4561,5689,120,5689,121,4563,5689,122,5689,121,4565, 5695P 12172 -5689,122,5689,25,4567,5689,123,5689,30,4569,5689,124,5689,123, 5695P 12173 -4571,5689,125,5689,124,4573,5689,126,5689,125,4575,5689,127, 5695P 12174 -5689,126,4577,5689,128,5689,127,4579,5689,129,5689,128,4581, 5695P 12175 -5689,115,5689,129,4583,5689,130,5689,131,4585,5689,131,5689,130, 5695P 12176 -4587,5689,132,5689,133,4589,5689,133,5689,132,4591,5689,134, 5695P 12177 -5689,135,4593,5689,135,5689,134,4595,5689,136,5689,137,4597, 5695P 12178 -5689,137,5689,136,4599,5689,138,5689,139,4601,5689,139,5689,138, 5695P 12179 -4603,5689,140,5689,141,4605,5689,141,5689,140,4607,5689,141, 5695P 12180 -5689,58,4609,5689,140,5689,59,4611,5689,139,5689,56,4613,5689, 5695P 12181 -138,5689,57,4615,5689,142,5689,143,4617,5689,125,5689,142,4619, 5695P 12182 -5689,143,5689,124,4621,5689,144,5689,129,4623,5689,128,5689,145, 5695P 12183 -4625,5689,145,5689,144,4627,5689,146,5689,127,4629,5689,147, 5695P 12184 -5689,126,4631,5689,147,5689,146,4633,5689,17,5689,29,4635,5689, 5695P 12185 -148,5689,146,4637,5689,142,5689,147,4639,5689,149,5689,143,4641, 5695P 12186 -5689,148,5689,149,4643,5689,150,5689,144,4645,5689,145,5689,151, 5695P 12187 -4647,5689,150,5689,151,4649,5689,117,5689,152,4651,5689,152, 5695P 12188 -5689,153,4653,5689,153,5689,118,4655,5689,154,5689,155,4657, 5695P 12189 -5689,156,5689,155,4659,5689,156,5689,157,4661,5689,154,5689,157, 5695P 12190 -4663,5689,152,5689,14,4665,5689,13,5689,153,4667,5689,137,5689, 5695P 12191 -54,4669,5689,136,5689,55,4671,5689,135,5689,52,4673,5689,134, 5695P 12192 -5689,53,4675,5689,133,5689,50,4677,5689,132,5689,51,4679,5689, 5695P 12193 -131,5689,48,4681,5689,130,5689,49,4683,5689,118,5689,40,4685, 5695P 12194 -5689,12,5689,37,4687,5689,122,5689,39,4689,5689,7,5689,122,4691, 5695P 12195 -5689,20,5689,31,4693,5689,121,5689,8,4695,5689,119,5689,10,4697, 5695P 12196 -5689,120,5689,9,4699,5689,115,5689,154,4701,5689,157,5689,114, 5695P 12197 -4703,5689,158,5689,159,4705,5689,158,5689,149,4707,5689,159, 5695P 12198 -5689,123,4709,5689,160,5689,158,4711,5689,160,5689,148,4713, 5695P 12199 -5689,161,5689,160,4715,5689,161,5689,151,4717,5689,162,5689,161, 5695P 12200 -4719,5689,162,5689,150,4721,5689,163,5689,162,4723,5689,163, 5695P 12201 -5689,155,4725,5689,164,5689,163,4727,5689,164,5689,156,4729, 5695P 12202 -5689,15,5689,164,4731,5689,159,5689,16,4733,5689,33,5689,165, 5695P 12203 -4735,5689,165,5689,166,4737,5689,166,5689,167,4739,5689,167, 5695P 12204 -5689,168,4741,5689,168,5689,169,4743,5689,169,5689,170,4745, 5695P 12205 -5689,170,5689,171,4747,5689,171,5689,34,4749,5689,165,5689,47, 5695P 12206 -4751,5689,166,5689,46,4753,5689,167,5689,45,4755,5689,168,5689, 5695P 12207 -44,4757,5689,169,5689,43,4759,5689,170,5689,42,4761,5689,171, 5695P 12208 -5689,41; 5695P 12209 -406,1,5Hplate; 5697P 12210 -406,1,4Hleft; 5699P 12211 -406,1,5Hright; 5701P 12212 -314,96.078431372549,96.078431372549,96.4705882352941,25HAluminum 5703P 12213 - - Brushed Linear; 5703P 12214 -314,85.8823529411765,74.5098039215686,60.3921568627451,18H3D Oak 5705P 12215 - - Semigloss; 5705P 12216 -314,62.7450980392157,62.7450980392157,62.7450980392157,13HSteel 5707P 12217 -- Satin; 5707P 12218 -S 1G 3D 5708P 12218 T 1 diff --git a/keyboards/lets_split/imgs/letssplitv2.svg b/keyboards/lets_split/imgs/letssplitv2.svg deleted file mode 100644 index d33706dfc..000000000 --- a/keyboards/lets_split/imgs/letssplitv2.svg +++ /dev/null @@ -1,4077 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/keyboards/lets_split/imgs/plate.stl b/keyboards/lets_split/imgs/plate.stl deleted file mode 100644 index c8e36adc7..000000000 Binary files a/keyboards/lets_split/imgs/plate.stl and /dev/null differ diff --git a/keyboards/lets_split/imgs/right.stl b/keyboards/lets_split/imgs/right.stl deleted file mode 100644 index 31c7aeb6b..000000000 Binary files a/keyboards/lets_split/imgs/right.stl and /dev/null differ diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index 32a1c3ef1..d665d013e 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -6,6 +6,7 @@ This readme and most of the code are from https://github.com/ahtn/tmk_keyboard/ Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 based boards. +**Hardware files for the Let's Split are now stored at http://qmk.fm/lets_split/** ## Build Guide -- cgit v1.2.3-24-g4f1b From f71c99021558691099fbea1573e57d55fd051be0 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 18 Jun 2017 22:39:03 -0700 Subject: tv44: Add core layout based on the Core 47 --- keyboards/tv44/keymaps/core/Makefile | 3 +++ keyboards/tv44/keymaps/core/keymap.c | 34 ++++++++++++++++++++++++++++++++++ keyboards/tv44/keymaps/core/readme.md | 18 ++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 keyboards/tv44/keymaps/core/Makefile create mode 100644 keyboards/tv44/keymaps/core/keymap.c create mode 100644 keyboards/tv44/keymaps/core/readme.md (limited to 'keyboards') diff --git a/keyboards/tv44/keymaps/core/Makefile b/keyboards/tv44/keymaps/core/Makefile new file mode 100644 index 000000000..457a3d01d --- /dev/null +++ b/keyboards/tv44/keymaps/core/Makefile @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/tv44/keymaps/core/keymap.c b/keyboards/tv44/keymaps/core/keymap.c new file mode 100644 index 000000000..d2cabeb98 --- /dev/null +++ b/keyboards/tv44/keymaps/core/keymap.c @@ -0,0 +1,34 @@ +#include "tv44.h" +#include "action_layer.h" +#include "eeconfig.h" + +#define _QW 0 +#define _L1 1 +#define _L2 2 + +// Fillers to make layering more clear +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = KEYMAP( /* Qwerty */ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_L2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_L1), KC_RALT, KC_RCTL + ), + [_L1] = KEYMAP( /* LAYER 1 */ + KC_GRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_PAUS, + KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, + _______, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = KEYMAP( /* LAYER 2 */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UNDS, KC_PLUS, + _______, _______, _______, _______, _______, KC_COMM, KC_SLSH, KC_RBRC, KC_LBRC, KC_BSLS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; diff --git a/keyboards/tv44/keymaps/core/readme.md b/keyboards/tv44/keymaps/core/readme.md new file mode 100644 index 000000000..3ec503b21 --- /dev/null +++ b/keyboards/tv44/keymaps/core/readme.md @@ -0,0 +1,18 @@ +# A minivan keymap based off the Vertex Core + +## Main differences + +* There are only 3 keys on the bottom right, so menu was dropped +* There are only 3 keys on the bottom left, so Pn was dropped because there is + no programmable layer. +* There are only 12 keys in the first row, so the delete key (along with scroll + lock) has been dropped. +* The F1-F12 keys have been shifted by 1 so they all fit in the first row of + layer 2. +* Moved the grave/tilde to layer 1 (because in layer 2 it's now taken up by F1). +* Keys relating to speed have been removed +* The `L_Win + L_Alt + R_spacebar = R_Shift, R_Alt, Menu and R_Ctrl as arrow + keys` as mentioned in the manual does not work. +* The layer 2 plus shift should have support for symbols in the first row (where + the F1-F12 keys are) but this has not been implemented, so you need to use the + second row (where the numbers are). -- cgit v1.2.3-24-g4f1b From 7ce056cad712328c2a41003b3e5697ead8c625e8 Mon Sep 17 00:00:00 2001 From: Jon Nall Date: Mon, 19 Jun 2017 19:51:37 -0700 Subject: Fixed offset for knight rgb mode --- keyboards/s65_x/config.h | 1 + 1 file changed, 1 insertion(+) (limited to 'keyboards') diff --git a/keyboards/s65_x/config.h b/keyboards/s65_x/config.h index 0af9f6dd1..69ea32aca 100644 --- a/keyboards/s65_x/config.h +++ b/keyboards/s65_x/config.h @@ -30,6 +30,7 @@ #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 20 /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -- cgit v1.2.3-24-g4f1b From 2ffcf47793f825d510077975cc72ed0f1f7fd036 Mon Sep 17 00:00:00 2001 From: Brandon Height Date: Mon, 19 Jun 2017 20:12:30 -0700 Subject: This is a complete redo of my keymap. It includes several layers including qwerty, colemak, navigation, and gui layers. I also was playing around with dancing tap keys. --- keyboards/planck/keymaps/brandon/Makefile | 32 +- keyboards/planck/keymaps/brandon/config.h | 98 ++++++ keyboards/planck/keymaps/brandon/keymap.c | 512 +++++++++++++++++++++++------- 3 files changed, 499 insertions(+), 143 deletions(-) create mode 100644 keyboards/planck/keymaps/brandon/config.h (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/brandon/Makefile b/keyboards/planck/keymaps/brandon/Makefile index cf2c31f0f..a79bda373 100644 --- a/keyboards/planck/keymaps/brandon/Makefile +++ b/keyboards/planck/keymaps/brandon/Makefile @@ -1,27 +1,13 @@ -# Please remove if no longer applicable -$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) -$(warning Please disable some options in the Makefile to resolve) +# This gets included at the beginning of the Planck's Makefile. +# Alternatively, you can run make from the keymap directory +# and the main Makefile will be included after. -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # 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 = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Disable shift combination, which conflicts with shift-parens +NKRO_ENABLE = yes # N-key rollover required for use as a steno board +AUDIO_ENABLE = no # Audio output on port C6 +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/brandon/config.h b/keyboards/planck/keymaps/brandon/config.h new file mode 100644 index 000000000..5442ebf75 --- /dev/null +++ b/keyboards/planck/keymaps/brandon/config.h @@ -0,0 +1,98 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#define TAPPING_TERM 200 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define AUDIO_VOICES + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4/config.h" +#endif + +#endif diff --git a/keyboards/planck/keymaps/brandon/keymap.c b/keyboards/planck/keymaps/brandon/keymap.c index 2b89f86db..f6ee89b17 100644 --- a/keyboards/planck/keymaps/brandon/keymap.c +++ b/keyboards/planck/keymaps/brandon/keymap.c @@ -1,134 +1,406 @@ -// 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 +#include "action_layer.h" +#include "eeconfig.h" +#include "keymap_plover.h" +#include "action_tapping.h" + +extern keymap_config_t keymap_config; + +// Keymap layers +enum planck_layers { + BASE_QWERTY_LAYER, + BASE_COLEMAK_LAYER, + BASE_STENO_LAYER, + LOWER_LAYER, + RAISE_LAYER, + NAVIGATION_LAYER, + GUI_LAYER, + KEYBOARD_LAYER +}; + +// Key aliases for legibility +#define _______ KC_TRNS +#define ___x___ KC_NO + +// Macros +enum planck_macros { + LALT_BRACE, + RALT_BRACE +}; + +// Dashes (macOS) +#define KC_NDSH LALT(KC_MINS) +#define KC_MDSH S(LALT(KC_MINS)) -// 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 _TK 2 -#define _LW 3 -#define _RS 4 +// Window manager keys +#define WM_FULL LALT(LGUI(KC_F)) +#define WM_NEXT LCTL(LALT(LGUI(KC_RGHT))) +#define WM_PREV LCTL(LALT(LGUI(KC_LEFT))) +#define WM_NW LCTL(LGUI(KC_LEFT)) +#define WM_N LALT(LGUI(KC_UP)) +#define WM_NE LCTL(LGUI(KC_RGHT)) +#define WM_E LALT(LGUI(KC_RGHT)) +#define WM_SE S(LCTL(LGUI(KC_RGHT))) +#define WM_S LALT(LGUI(KC_DOWN)) +#define WM_SW S(LCTL(LGUI(KC_LEFT))) +#define WM_W LALT(LGUI(KC_LEFT)) +#define WM_CNTR LALT(LGUI(KC_C)) + +// Special key codes +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + STENO, + LOWER, + RAISE, + PV_EXIT, + PV_LOOK +}; + +//Tap Dance Declarations +enum { + TD_ESC_GRV = 0 +}; + +// Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Esc, twice for Backspace + [TD_ESC_GRV] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV) + // Other declarations would go here, separated by commas, if you have them +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ -/* MIT Layout (QWERTY layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | e | r | t | y | u | i | o | p | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | s | d | f | g | h | j | k | l | ; | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, 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, MT(MOD_LSFT, KC_ENT) }, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | k | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, 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, MT(MOD_LSFT, KC_ENT)}, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ -/* MIT Layout (RAISE layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - - {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), M(0), 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 */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - {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), M(0), 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} -}, -[_TK] = { /* Ten Key*/ -/* MIT Layout (Ten Key layer) - * - * ,-----------------------------------------------------------------------. - * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | - * |-----------------------------------------------------------------------| - * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, - {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} + /* Base layer (Qwerty) + * ,-----------------------------------------------------------------------. + * Double tap 4 ~ | ESC | Q | W | E | R | T | Y | U | I | O | P | ' | + * |-----------------------------------------------------------------------| + * Tap for Tab -- |Ctrl | A | S | D | F | G | H | J | K | L |; Fn4|Ctrl | -- Tap for Enter + * |-----------------------------------------------------------------------| + * Tap for ( -- |Shift| Z | X | C | V | B | N | M | , | . | / |Shift| -- Tap for ) + * |-----------------------------------------------------------------------| + * Tap for [ -- | Fn3 |Hyper| Alt |Super| Fn1 | Space | Fn2 |Super| Alt |Hyper| Fn3 | -- Tap for ] + * `-----------------------------------------------------------------------' + * / / + * Tap for ] [ --------'-----------------------------------------------------' + */ + [BASE_QWERTY_LAYER] = { + {TD(TD_ESC_GRV), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT}, + {F(5), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, F(1), F(6)}, + {KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC}, + {F(3), ALL_T(KC_RBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_LBRC), F(4)} + }, + + /* Base layer (Colemak) + * ,-----------------------------------------------------------------------. + * | | Q | W | F | P | G | J | L | U | Y | ; | | + * |-----------------------------------------------------------------------| + * | | A | R | S | T | D | H | N | E | I |O Fn4| | + * |-----------------------------------------------------------------------| + * | | Z | X | C | V | B | K | M | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + [BASE_COLEMAK_LAYER] = { + {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______}, + {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, F(2), _______}, + {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + + /* Base layer (Qwerty-Steno) + * ,-----------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |-----------------------------------------------------------------------| + * |Look | | T | P | H | | F | P | L | T | D | + * | -up | S |-----+-----+-----| * |-----+-----+-----+-----+-----| + * | | | K | W | R | | R | B | G | S | Z | + * |-----------------------------------------------------------------------| + * |Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------' + */ + [BASE_STENO_LAYER] = { + {PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM}, + {PV_LOOK, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD}, + {PV_LOOK, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ}, + {PV_EXIT, ___x___, ___x___, PV_A, PV_O, _______, _______, PV_E, PV_U, ___x___, ___x___, ___x___} + }, + + /* Numeric layer + * ,-----------------------------------------------------------------------. + * Application -- |D-Grv| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | # | + * window |-----------------------------------------------------------------------| + * switcher | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |-----------------------------------------------------------------------| + * | | - | = | ` | \ | |ndash|mdash| , | . | / | | + * |-----------------------------------------------------------------------| + * | | | | | | Backspace | | | | | | + * `-----------------------------------------------------------------------' + */ + [LOWER_LAYER] = { + {LGUI(KC_GRV), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_3)}, + {F(5), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, F(6)}, + {KC_LSPO, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, ___x___, KC_NDSH, KC_MDSH, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC}, + {F(3), ALL_T(KC_LBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_BSPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_RBRC), F(4)} + }, + + /* Symbol layer + * ,-----------------------------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | # | + * |-----------------------------------------------------------------------| + * | | ! | @ | # | $ | % | ^ | & | * | ' | " | | \ + * |-----------------------------------------------------------------------| |-- Mostly shifted version + * | | _ | + | ~ | | | |ndash|mdash| , | . | / | | / of lower layer + * |-----------------------------------------------------------------------| + * | | | | | | Delete | | | | | | + * `-----------------------------------------------------------------------' + */ + [RAISE_LAYER] = { + {_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, S(KC_3)}, + {_______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_QUOT, S(KC_QUOT), _______}, + {_______, KC_UNDS, KC_PLUS, KC_TILD, KC_PIPE, ___x___, KC_NDSH, KC_MDSH, KC_COMM, KC_DOT, KC_SLSH, _______}, + {_______, _______, _______, _______, _______, KC_DEL, KC_DEL, _______, _______, _______, _______, _______} + }, + + /* Directional navigation layer + * + * Large movements -----/```````````````````\ /```````````````````\----- Vim-style arrow keys + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | |Home |PgUp |PgDn | End |Left |Down | Up |Right| | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + [NAVIGATION_LAYER] = { + {___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___}, + {_______, ___x___, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, F(1), _______}, + {_______, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, _______}, + {_______, _______, _______, _______, ___x___, ___x___, ___x___, ___x___, _______, _______, _______, _______} + }, + /* GUI (window management/mouse/media controls) layer + * + * Mouse keys -----/```````````````````\ /```````````````````\----- Window manager + * ,-----------------------------------------------------------------------. + * | |Ms B2|Ms Up|Ms B1|Ms WD| | |Prev | NW | N | NE | | + * |-----------------------------------------------------------------------| + * | |Ms L |Ms Dn|Ms R |Ms WU| | |Full | W |Centr| E | | + * |-----------------------------------------------------------------------| + * | |Ms WL|Ms B3|Ms WR| | | |Next | SW | S | SE | | + * |-----------------------------------------------------------------------| + * | |Prev |Play |Next |Brig-| Sleep |Brig+|Mute |Vol- |Vol+ | | + * `-----------------------------------------------------------------------' + * \___ Media ___/ \___ Screen/sleep __/ \___ Volume __/ + */ + [GUI_LAYER] = { + {_______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_D, ___x___, ___x___, WM_PREV, WM_NW, WM_N, WM_NE, _______}, + {_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, ___x___, ___x___, WM_FULL, WM_W, WM_CNTR, WM_E, _______}, + {_______, KC_WH_L, KC_BTN3, KC_WH_R, ___x___, ___x___, ___x___, WM_NEXT, WM_SW, WM_S, WM_SE, _______}, + {_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_SLCK, KC_SLEP, KC_SLEP, KC_PAUS, KC_MUTE, KC_VOLD, KC_VOLU, _______} + }, + + /* Keyboard settings layer + * ,-----------------------------------------------------------------------. + * Firmware -- | |Reset| | | | | | | | | | | + * |-----------------------------------------------------------------------| + * Set layer -- | |Qwert|Colem|Steno| ... | | | | | | | | + * |-----------------------------------------------------------------------| + * Audio -- | |Voic-|Voic+|Mus +|Mus -|MIDI+|MIDI-| | |Aud +|Aud -| | + * |-----------------------------------------------------------------------| + * | | | | | | Toggle | |Toggl| BL- | BL+ | | + * `-----------------------------------------------------------------------' + * \_____________\_ Backlight _/ + */ + [KEYBOARD_LAYER] = { + {___x___, RESET, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___}, + {___x___, QWERTY, COLEMAK, STENO, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___}, + {___x___, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, ___x___, ___x___, AU_ON, AU_OFF, ___x___}, + {___x___, ___x___, ___x___, ___x___, LOWER, BL_TOGG, BL_TOGG, RAISE, BL_TOGG, BL_DEC, BL_INC, ___x___} + } }; const uint16_t PROGMEM fn_actions[] = { + // Layer switching + [1] = ACTION_LAYER_TAP_KEY(NAVIGATION_LAYER, KC_SCOLON), + [2] = ACTION_LAYER_TAP_KEY(NAVIGATION_LAYER, KC_O), + [3] = ACTION_LAYER_TAP_KEY(GUI_LAYER, KC_LBRACKET), + [4] = ACTION_LAYER_TAP_KEY(GUI_LAYER, KC_RBRACKET), + // Modifiers + [5] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), + [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), }; 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; + switch(id) { + case LALT_BRACE: + if (record->event.pressed) { + register_mods(MOD_LALT); + record->tap.interrupted = 0; + } else { + unregister_mods(MOD_LALT); + + if (record->tap.count && !record->tap.interrupted) { + add_weak_mods(MOD_LSFT); + register_code(KC_LBRACKET); + unregister_code(KC_LBRACKET); + del_weak_mods(MOD_LSFT); + } + + record->tap.count = 0; } - return MACRO_NONE; -}; + break; + case RALT_BRACE: + if (record->event.pressed) { + register_mods(MOD_RALT); + record->tap.interrupted = 0; + } else { + unregister_mods(MOD_RALT); + + if (record->tap.count && !record->tap.interrupted) { + add_weak_mods(MOD_LSFT); + register_code(KC_RBRACKET); + unregister_code(KC_RBRACKET); + del_weak_mods(MOD_LSFT); + } + + record->tap.count = 0; + } + break; + } + return MACRO_NONE; +} + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Send PHROPB ({PLOVER:RESUME}). +void plover_resume(void) { + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RP); + register_code(PV_RB); + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RP); + unregister_code(PV_RB); +} + +// Send PHROF ({PLOVER:SUSPEND}). +void plover_suspend(void) { + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RF); + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RF); +} + +// Send PHROBG ({PLOVER:LOOKUP}). +void plover_lookup(void) { + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RB); + register_code(PV_RG); + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RB); + unregister_code(PV_RG); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<event.pressed) { + persistant_default_layer_set(1UL<event.pressed) { + layer_on(LOWER_LAYER); + update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER); + } else { + layer_off(LOWER_LAYER); + update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER); + } + return false; + case RAISE: + if (record->event.pressed) { + layer_on(RAISE_LAYER); + update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER); + } else { + layer_off(RAISE_LAYER); + update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER); + } + return false; + case STENO: + if (record->event.pressed) { + layer_off(RAISE_LAYER); + layer_off(LOWER_LAYER); + layer_off(KEYBOARD_LAYER); + layer_on(BASE_STENO_LAYER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + plover_resume(); + } + return false; + case PV_EXIT: + if (record->event.pressed) { + plover_suspend(); + layer_off(BASE_STENO_LAYER); + } + return false; + case PV_LOOK: + if (record->event.pressed) { + plover_lookup(); + } + return false; + } + return true; +} + +void matrix_init_user(void) { +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} -- cgit v1.2.3-24-g4f1b From f169c715ebb1d8482a36fa9883310c64a152b218 Mon Sep 17 00:00:00 2001 From: Jon Nall Date: Mon, 19 Jun 2017 22:44:42 -0700 Subject: Added custom keymap and enabled Space Cadet --- keyboards/s65_x/keymaps/nall/keymap.c | 167 ++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 keyboards/s65_x/keymaps/nall/keymap.c (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/nall/keymap.c b/keyboards/s65_x/keymaps/nall/keymap.c new file mode 100644 index 000000000..823f6448a --- /dev/null +++ b/keyboards/s65_x/keymaps/nall/keymap.c @@ -0,0 +1,167 @@ +#include "s65_x.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: Main layer, swapped alt and GUI for Mac + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│DEL │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│END │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│PG_UP│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + /* 0: ANSI qwerty */ + [_BL] = ANSI_KEYMAP( + F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ + F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + + /* 1: Locking arrow keys to WASD for when you need dedicated arrow keys + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_AL] = ANSI_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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS), + + /* 2: Fn layer + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ _AL │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │Left │Down │Right│ │ │Left │Down │ Up │Right│ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │ │Home │End │▒▒▒▒▒│ │Vol+ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_FL] = ANSI_KEYMAP( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(1), KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_MPLY), + + /* 3: Locking layer for controlling the underglow + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │BL On│BL St│ │ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ On │Mode │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │▒▒▒▒▒│ │Hue+ │Hue- │Sat+ │Sat- │Val+ │Val- │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + * │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + */ + + [_UL] = ANSI_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, BL_TOGG, BL_STEP, 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, RGB_TOG, RGB_MOD, 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void matrix_scan_user(void) { + + // Would like to do something like this, that would be cool + // Turn off all the LEDs on except for the ones mapped on the UL layer, for example + /* uint32_t layer = layer_state; */ + /* if (layer & (1<<1)) { */ + /* gh60_wasd_leds_on(); */ + /* } else { */ + /* gh60_wasd_leds_off(); */ + /* } */ + /* */ + /* if (layer & (1<<2)) { */ + /* gh60_esc_led_on(); */ + /* } else { */ + /* gh60_esc_led_off(); */ + /* } */ +}; + +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; +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +}; -- cgit v1.2.3-24-g4f1b From e71b3c65720c3e6b0384fa094b641bc19583ca84 Mon Sep 17 00:00:00 2001 From: David Dizon Date: Mon, 19 Jun 2017 22:59:17 -0700 Subject: KBD75 - Initial KBD75 port from qmkeyboard.cn source files --- keyboards/kbd75/Makefile | 3 + keyboards/kbd75/config.h | 58 ++++++++ keyboards/kbd75/kbd75.c | 1 + keyboards/kbd75/kbd75.h | 22 ++++ keyboards/kbd75/keymaps/default/keymap.c | 220 +++++++++++++++++++++++++++++++ keyboards/kbd75/rules.mk | 56 ++++++++ keyboards/readme.md | 1 + 7 files changed, 361 insertions(+) create mode 100644 keyboards/kbd75/Makefile create mode 100644 keyboards/kbd75/config.h create mode 100644 keyboards/kbd75/kbd75.c create mode 100644 keyboards/kbd75/kbd75.h create mode 100644 keyboards/kbd75/keymaps/default/keymap.c create mode 100644 keyboards/kbd75/rules.mk (limited to 'keyboards') diff --git a/keyboards/kbd75/Makefile b/keyboards/kbd75/Makefile new file mode 100644 index 000000000..57b2ef62e --- /dev/null +++ b/keyboards/kbd75/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/kbd75/config.h b/keyboards/kbd75/config.h new file mode 100644 index 000000000..e54192c09 --- /dev/null +++ b/keyboards/kbd75/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER qmkbuilder +#define PRODUCT KBD75 +#define DESCRIPTION QMK keyboard firmware for KBD75 R3 or later + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, B7 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 5 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 16 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/kbd75/kbd75.c b/keyboards/kbd75/kbd75.c new file mode 100644 index 000000000..9f6e545ca --- /dev/null +++ b/keyboards/kbd75/kbd75.c @@ -0,0 +1 @@ +#include "kbd75.h" diff --git a/keyboards/kbd75/kbd75.h b/keyboards/kbd75/kbd75.h new file mode 100644 index 000000000..16374b4f5 --- /dev/null +++ b/keyboards/kbd75/kbd75.h @@ -0,0 +1,22 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K504, K506, K508, K510, K511, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, KC_NO, K510, K511, K512, K513, K514, K515 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/kbd75/keymaps/default/keymap.c b/keyboards/kbd75/keymaps/default/keymap.c new file mode 100644 index 000000000..95cf34100 --- /dev/null +++ b/keyboards/kbd75/keymaps/default/keymap.c @@ -0,0 +1,220 @@ +#include "kbd75.h" +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + LT(2, KC_ESC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, MO(1), KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + 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_TRNS, RESET, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, BL_DEC, BL_TOGG, BL_INC, BL_STEP, 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), + + KEYMAP( + KC_TRNS, M(1), M(2), 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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), + + 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_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_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) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/kbd75/rules.mk b/keyboards/kbd75/rules.mk new file mode 100644 index 000000000..c303af4bc --- /dev/null +++ b/keyboards/kbd75/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # 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 +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes \ No newline at end of file diff --git a/keyboards/readme.md b/keyboards/readme.md index 4fa2a74de..9ee3fc7ab 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -43,6 +43,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not * [Happy Hacking Keyboard](/keyboards/hhkb) — The Happy Hacking keyboard can be hacked with a custom controller to run QMK. * [Infinity 60%](/keyboards/infinity60) - — Compact community keyboard by Input Club. * [JD45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe. +* [KBD75](/keyboards/kbd75) — A 75% keyboard made by made by KBDFans. * [KC60](/keyboards/kc60) — A programmable Chinese-made keyboard, lost in the mists of time. * [Kinesis Advantage](/keyboards/kinesis) — Contoured ergonomic keyboard by Kinesis Computer Ergonomics. * [KMAC](/keyboards/kmac) — Korean custom keyboard. -- cgit v1.2.3-24-g4f1b From 8705ac408da2133b60304bb64e21d4f7f605b470 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Fri, 16 Jun 2017 19:46:57 -0400 Subject: Use the new Quantum KC_GESC instead of custom code --- keyboards/s65_x/keymaps/default/keymap.c | 72 ++------------------------------ keyboards/s65_x/keymaps/iso/keymap.c | 67 +---------------------------- keyboards/s65_x/keymaps/nall/keymap.c | 67 +---------------------------- 3 files changed, 6 insertions(+), 200 deletions(-) (limited to 'keyboards') diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index 2b7a091e3..27c9e7c94 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -1,5 +1,4 @@ #include "s65_x.h" -#include "action_layer.h" #define _BL 0 #define _AL 1 @@ -23,10 +22,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ [_BL] = ANSI_KEYMAP( - F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ - F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ + F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), @@ -94,74 +93,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; -enum function_id { - SHIFT_ESC, -}; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay - [4] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void matrix_scan_user(void) { - - // Would like to do something like this, that would be cool - // Turn off all the LEDs on except for the ones mapped on the UL layer, for example - /* uint32_t layer = layer_state; */ - /* if (layer & (1<<1)) { */ - /* gh60_wasd_leds_on(); */ - /* } else { */ - /* gh60_wasd_leds_off(); */ - /* } */ - /* */ - /* if (layer & (1<<2)) { */ - /* gh60_esc_led_on(); */ - /* } else { */ - /* gh60_esc_led_off(); */ - /* } */ }; -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; -}; - -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - static uint8_t shift_esc_shift_mask; - // Shift + ESC = ~ - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -}; diff --git a/keyboards/s65_x/keymaps/iso/keymap.c b/keyboards/s65_x/keymaps/iso/keymap.c index 96e3bb846..2be27b463 100644 --- a/keyboards/s65_x/keymaps/iso/keymap.c +++ b/keyboards/s65_x/keymaps/iso/keymap.c @@ -1,5 +1,4 @@ #include "s65_x.h" -#include "action_layer.h" #define _BL 0 #define _AL 1 @@ -23,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ISO qwerty */ [_BL] = ISO_KEYMAP( - F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRAVE, KC_ENT, KC_PGUP, \ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ @@ -95,74 +94,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -enum function_id { - SHIFT_ESC, -}; - const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay - [12] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void matrix_scan_user(void) { - - // Would like to do something like this, that would be cool - // Turn off all the LEDs on except for the ones mapped on the UL layer, for example - /* uint32_t layer = layer_state; */ - /* if (layer & (1<<1)) { */ - /* gh60_wasd_leds_on(); */ - /* } else { */ - /* gh60_wasd_leds_off(); */ - /* } */ - /* */ - /* if (layer & (1<<2)) { */ - /* gh60_esc_led_on(); */ - /* } else { */ - /* gh60_esc_led_off(); */ - /* } */ -}; - -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; }; -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - static uint8_t shift_esc_shift_mask; - // Shift + ESC = ~ - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -}; diff --git a/keyboards/s65_x/keymaps/nall/keymap.c b/keyboards/s65_x/keymaps/nall/keymap.c index 823f6448a..651f7441b 100644 --- a/keyboards/s65_x/keymaps/nall/keymap.c +++ b/keyboards/s65_x/keymaps/nall/keymap.c @@ -1,5 +1,4 @@ #include "s65_x.h" -#include "action_layer.h" #define _BL 0 #define _AL 1 @@ -23,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ [_BL] = ANSI_KEYMAP( - F(4), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ + KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \ F(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, \ @@ -94,74 +93,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; -enum function_id { - SHIFT_ESC, -}; - const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(_FL), // Momentary Fn overlay [1] = ACTION_LAYER_TOGGLE(_AL), // Toggle Arrow Layer overlay [2] = ACTION_LAYER_TAP_KEY(_FL, KC_CAPS),// Tap to toggle caps lock and hold to activate function layer [3] = ACTION_LAYER_TOGGLE(_UL), // Toggle Underglow Layer overlay - [4] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void matrix_scan_user(void) { - - // Would like to do something like this, that would be cool - // Turn off all the LEDs on except for the ones mapped on the UL layer, for example - /* uint32_t layer = layer_state; */ - /* if (layer & (1<<1)) { */ - /* gh60_wasd_leds_on(); */ - /* } else { */ - /* gh60_wasd_leds_off(); */ - /* } */ - /* */ - /* if (layer & (1<<2)) { */ - /* gh60_esc_led_on(); */ - /* } else { */ - /* gh60_esc_led_off(); */ - /* } */ -}; - -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; }; -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - static uint8_t shift_esc_shift_mask; - // Shift + ESC = ~ - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -}; -- cgit v1.2.3-24-g4f1b