diff options
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | keyboard/atreus/Makefile | 17 | ||||
-rw-r--r-- | keyboard/atreus/README.md | 10 | ||||
-rw-r--r-- | keyboard/atreus/atreus.h | 19 | ||||
-rw-r--r-- | keyboard/atreus/config.h | 10 | ||||
-rw-r--r-- | keyboard/atreus/keymaps/keymap_gerb.c | 66 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/tm2030/README.md | 2 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/tm2030/keymap.c | 28 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/tm2030/keymap.hex | 2958 | ||||
-rw-r--r-- | keyboard/planck/keymaps/lukas.c | 64 | ||||
-rw-r--r-- | quantum/keymap_common.c | 3 | ||||
-rw-r--r-- | quantum/keymap_extras/keymap_dvorak.h | 4 | ||||
-rw-r--r-- | quantum/keymap_extras/keymap_fr_ch.h | 98 |
13 files changed, 1760 insertions, 1526 deletions
diff --git a/.gitignore b/.gitignore index 1e19ce9a87..ae342167df 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,9 @@ tags build/ *.bak .vagrant/ -.DS_STORE
\ No newline at end of file +.DS_STORE + +# Eclipse Settings +.cproject +.project +.settings/
\ No newline at end of file diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile index e1ebee47bd..2e542d62ed 100644 --- a/keyboard/atreus/Makefile +++ b/keyboard/atreus/Makefile @@ -58,6 +58,15 @@ else SRC := keymaps/keymap_default.c $(SRC) endif +ifdef TEENSY2 + OPT_DEFS += -DATREUS_TEENSY2 + ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex +else + OPT_DEFS += -DATREUS_ASTAR + ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ + avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) +endif + CONFIG_H = config.h # MCU name @@ -114,8 +123,8 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # 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) +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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE @@ -137,3 +146,7 @@ VPATH += $(TMK_DIR) include $(TOP_DIR)/quantum/quantum.mk +USB ?= /dev/cu.usbmodem1411 + +upload: build + $(ATRUES_UPLOAD_COMMAND) diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md index 75f198fd1c..4db7ac1203 100644 --- a/keyboard/atreus/README.md +++ b/keyboard/atreus/README.md @@ -1,10 +1,6 @@ atreus keyboard firmware ====================== -## Note - -This is for the Teensy2 hand wired boards only. - ## Quantum MK Firmware You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. @@ -14,6 +10,12 @@ You have access to a bunch of goodies! Check out the Makefile to enable/disable # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +## Atreus specific information + +These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands. + +If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use. + ## Quick aliases to common actions Your keymap can include shortcuts to common operations (called "function actions" in tmk). diff --git a/keyboard/atreus/atreus.h b/keyboard/atreus/atreus.h index 29d1d18bac..9dd77859f9 100644 --- a/keyboard/atreus/atreus.h +++ b/keyboard/atreus/atreus.h @@ -7,21 +7,20 @@ #include <stddef.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 #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ + k00, k01, k02, 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, k2a, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ -} + { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \ + { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ +} void * matrix_init_user(void); void * matrix_scan_user(void); diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h index 733f579d43..ca0cd7e47a 100644 --- a/keyboard/atreus/config.h +++ b/keyboard/atreus/config.h @@ -33,11 +33,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MATRIX_ROWS 4 #define MATRIX_COLS 11 -// Planck PCB default pin-out // Change this to how you wired your keyboard // COLS: Left to right, ROWS: Top to bottom -#define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0} -#define ROWS (int []){ D0, D1, D2, D3 } +#if defined(ATREUS_ASTAR) + #define COLS (int []){ B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 } + #define ROWS (int []){ D0, D1, D3, D2 } +#elif defined(ATREUS_TEENSY2) + #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0} + #define ROWS (int []){ D0, D1, D2, D3 } +#endif /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/keymap_gerb.c new file mode 100644 index 0000000000..1ba3942e3b --- /dev/null +++ b/keyboard/atreus/keymaps/keymap_gerb.c @@ -0,0 +1,66 @@ +// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks +// with the Colemak and Dvorak support yet, but everything else works nicely. + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _L1 3 +#define _L2 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } + }, + [_L1] = { /* LAYER 1 */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, + {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, + {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } + }, + [_L2] = { /* LAYER 2 */ + {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, + {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/ergodox_ez/keymaps/tm2030/README.md b/keyboard/ergodox_ez/keymaps/tm2030/README.md index 096939dc28..ae69adf78a 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/README.md +++ b/keyboard/ergodox_ez/keymaps/tm2030/README.md @@ -55,7 +55,7 @@ As on the original TM 2030, when `num` layer is activated, holding `fn` disables ## Dvorak Layer Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. -Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. +Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. The middle (green) led indicates when the Dvorak layer is activated. diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c index cbdf0ae00e..92efd9b5e6 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -11,9 +11,6 @@ #define MDBL0 1 #define MFNLR 2 -#define MCUT 3 -#define MCOPY 4 -#define MPSTE 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Basic layer @@ -142,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, // right hand - KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, @@ -178,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, - KC_TRNS, KC_TRNS, M(MCUT), M(MCOPY), M(MPSTE), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -210,22 +207,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case MFNLR: - layer_state ^= (1 << NUMR) | (1 << FNLR); - break; - case MCUT: - if (record->event.pressed) { - return MACRO(D(LSFT), T(DELT), U(LSFT), END); - } - break; - case MCOPY: - if (record->event.pressed) { - return MACRO(D(LCTL), T(INS), U(LCTL), END); - } - break; - case MPSTE: - if (record->event.pressed) { - return MACRO(D(LSFT), T(INS), U(LSFT), END); - } + layer_invert(NUMR); + layer_invert(FNLR); break; } return MACRO_NONE; @@ -233,7 +216,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) { - + return NULL; }; // Runs constantly in the background, in a loop. @@ -255,4 +238,5 @@ void * matrix_scan_user(void) { if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { ergodox_right_led_3_on(); } + return NULL; }; diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex b/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex index 7e1118e3b2..1100ba2fa2 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.hex @@ -1,41 +1,41 @@ -:100000000C9462090C94A6090C94A6090C94A609F8
-:100010000C94A6090C94A6090C94A6090C94A609A4
-:100020000C94A6090C94A6090C94F4140C94C6150F
-:100030000C94A6090C94A6090C94A6090C94A60984
-:100040000C94A6090C94472E0C94A6090C94A609AE
-:100050000C94A6090C944E240C94A6090C94A609A1
-:100060000C94A6090C94A6090C94A6090C94A60954
-:100070000C94A6090C94A6090C94A6090C94A60944
-:100080000C94A6090C94A6090C94A6090C94A60934
-:100090000C94A6090C94A6090C94A6090C94A60924
-:1000A0000C94A6090C94A6090C94A6092B164D16BF
-:1000B00038174D1638178F16B216381707171A1734
-:1000C000681A681A961A961AD81A141B141D141D49
-:1000D0002C1B141D231C231CEE1C141D141D021D9F
-:1000E00001E10149024902E10001E001490249023E
-:1000F000E00001E1014C024C02E1007519016202CD
-:1001000062016202620035002B00E100E100E000C4
-:1001100000001E00140004001D0002304E001F00ED
-:100120001A0016001B00E300E10020000800070091
-:100130000600AE002C0021001500090019006574AE
-:100140004B00220017000A000500000029744C0033
-:100150002A0000002800000008544C002A0000007B
-:1001600028000000500023001C000B0011000000BC
-:100170004F00240018000D001000E600520025007A
-:100180000C000E0036002D002C00260012000F007F
-:1001900037004A00E50027001300330038002E0026
-:1001A000510030002F00347231724D710000350063
-:1001B0002B00E100E100E00000001E00340004001C
-:1001C000330002304E001F00360012001400E3001E
-:1001D000E1002000370008000D00AE002C002100D7
-:1001E000130018000E0065744B0022001C000C0068
-:1001F0001B00000029744C002A00000028000000A9
-:1002000008544C002A000000280000005000230081
-:1002100009000700050000004F0024000A000B0041
-:100220001000E60052002500060017001A002F00FB
-:100230002C0026001500110019004A00E5002700D7
-:100240000F0016001D00300051002E0038002D72E6
-:1002500031724D710000000000000000000000003D
+:100000000C9454090C9498090C9498090C94980930
+:100010000C9498090C9498090C9498090C949809DC
+:100020000C9498090C9498090C94C4140C9496158B
+:100030000C9498090C9498090C9498090C949809BC
+:100040000C9498090C94172E0C9498090C94980908
+:100050000C9498090C941E240C9498090C949809FB
+:100060000C9498090C9498090C9498090C9498098C
+:100070000C9498090C9498090C9498090C9498097C
+:100080000C9498090C9498090C9498090C9498096C
+:100090000C9498090C9498090C9498090C9498095C
+:1000A0000C9498090C9498090C949809FB151D164A
+:1000B00008171D1608175F1682160817D716EA16B6
+:1000C000381A381A661A661AA81AE41AE41CE41CCC
+:1000D000FC1AE41CF31BF31BBE1CE41CE41CD21C26
+:1000E000751901620262016202620035002B00E1B3
+:1000F00000E100E00000001E00140004001D0002EA
+:10010000304E001F001A0016001B00E300E1002023
+:1001100000080007000600AE002C002100150009B1
+:1001200000190065744B00220017000A000500004A
+:100130000029744C002A0000002800000008544CDC
+:10014000002A00000028000000500023001C000BC3
+:1001500000110000004F00240018000D001000E600
+:1001600000520025000C000E0036002D002C002649
+:100170000012000F0037004A00E50027001300338B
+:100180000038002E00510030002F00347231724DC3
+:1001900071000035002B00E100E100E00000001ECE
+:1001A0000034000400330002304E001F00360012FD
+:1001B000001400E300E1002000370008000D00AE4D
+:1001C000002C002100130018000E0065744B002263
+:1001D000001C000C001B00000029744C002A0000C9
+:1001E000002800000008544C002A000000280000ED
+:1001F000005000230009000700050000004F002404
+:10020000000A000B001000E600520025000600174F
+:10021000001A002F002C0026001500110019004ABA
+:1002200000E50027000F0016001D00300051002ED1
+:100230000038002D7231724D710000000000000086
+:1002400000000000000000000000000000000000AE
+:10025000000000000000000000000000000000009E
:10026000000000000000000000000000000000008E
:10027000000000000000000000000000000000007E
:10028000000000000000000000000000000000006E
@@ -96,1449 +96,1443 @@ :1005F00000000000000000000000000000000000FB
:1006000000000000000000000000000000000000EA
:1006100000000000000000000000000000000000DA
-:1006200000000000000000000000000000000000CA
-:1006300000000000000000000000000000000000BA
-:1006400000000000000001000100010001000100A5
-:1006500000003A003F0044000100010001003B009F
-:10066000400045000100010001003C004100010084
-:100670000100010001003D004200010001000100F5
-:1006800001003E00430001000100000001000100E4
-:10069000010000000100000001004900010000000D
-:1006A0005000000053003F000100520051000000C4
-:1006B000390040004A004D004F00010001002B00AE
-:1006C0005F005C00590062000100540060005D00A2
-:1006D0005A0001300100550061005E005B006300BC
-:1006E00001005600570057005800587100000100E3
-:1006F00001000100010001000000010001000100F3
-:1007000001000100010001000100010003300100AF
-:10071000010001000100B20004300100A800010046
-:100720000100B10005300100010001000100B50029
-:10073000A800000001004900A9000000AA00000074
-:100740000100490001000000010000000100B000AC
-:1007500001000100010000000100A50001000100EE
-:1007600001000100AC00A600010001000100010031
-:100770000100A70001000100010001000100460086
-:100780000100010001000100AB004700480001002A
-:100790000100010000000A002530313662003A20D5
-:1007A0000025303258000A722F6320303132333442
-:1007B00035363738394142434445460A000A002558
-:1007C00030325800626F756E6365213A20006C65A7
-:1007D000667420736964652061747461636865641C
-:1007E0000A006C6566742073696465206E6F7420FE
-:1007F000726573706F6E64696E670A0074727969EE
-:100800006E6720746F207265736574206D6370323B
-:10081000333031380A000A44454255473A20656E64
-:1008200061626C65642E0A005B735D004B657962E2
-:100830006F6172642073746172742E0A005B575D7D
-:10084000005B535D005B525D005B445D005B435D9C
-:100850000016034500720067006F0044006F0078C7
-:1008600000200045005A0000001603450072006792
-:10087000006F0044006F007800200045005A00001F
-:10088000000403090409028D00050100A0FA09040F
-:1008900000000103010100092111010001223F00B4
-:1008A0000705810308000A09040100010301020091
-:1008B000092111010001224D000705820308000AE9
-:1008C00009040200010300000009211101000122B6
-:1008D00036000705830308000A0904030002030029
-:1008E00000000921110100012220000705840320D6
-:1008F00000010705040320000109040400010300AE
-:1009000000000921110100012239000705850310AB
-:1009100000011201100100000008EDFE07130100A4
-:100920000102000105010906A101050719E029E7F7
-:100930001500250195087501810205081901290591
-:10094000950575019102950175039101050719003F
-:10095000297715002501957875018102C00631FFC0
-:100960000974A1010975150025FF952075088102FC
-:100970000976150025FF952075089102C00501092B
-:1009800080A101850216010026B7001A01002AB7CE
-:1009900000751095018100C0050C0901A1018503B6
-:1009A000160100269C021A01002A9C02751095016E
-:1009B0008100C005010902A1010901A10005091971
-:1009C000012905150025019505750181029501751F
-:1009D0000381010501093009311581257F950275D3
-:1009E00008810609381581257F950175088106055E
-:1009F0000C0A38021581257F950175088106C0C053
-:100A000005010906A101050719E029E715002501DF
-:100A10009508750181029501750881010508190184
-:100A20002905950575019102950175039101050749
-:100A3000190029FF150025FF950675088100C00AD9
-:100A4000002530325820006B6579626F6172645FF7
-:100A50007265706F72743A20000A002530325800B7
-:100A60006B6579626F6172645F7365745F6C6564F6
-:100A70003A200064656C5F6B65795F6269743A2047
-:100A800063616E27742064656C3A20253032580A01
-:100A9000006164645F6B65795F6269743A206361C9
-:100AA0006E2774206164643A20253032580A00644D
-:100AB0006F6E652E0A00626F6F676D6167696320F4
-:100AC0007363616E3A202E2E2E2000290A002575B0
-:100AD000002F002575005D28002564002000256496
-:100AE00000200025640020002564007C00253032B1
-:100AF00058006D6F7573656B6579205B62746E7CF1
-:100B0000782079207620685D287265702F61636C8B
-:100B1000293A205B006D6B5F776865656C5F74696F
-:100B20006D655F746F5F6D6178203D2025640A00FC
-:100B30006D6B5F776865656C5F6D61785F7370651D
-:100B40006564203D2025640A006D6B5F74696D65E6
-:100B50005F746F5F6D6178203D2025640A006D6BC6
-:100B60005F6D61785F7370656564203D2025640A60
-:100B7000006D6B5F696E74657276616C203D202537
-:100B8000640A006D6B5F64656C6179203D202564AB
-:100B90000A006D6B5F776865656C5F74696D655F92
-:100BA000746F5F6D6178203D2025640A006D6B5F76
-:100BB000776865656C5F6D61785F737065656420EB
-:100BC0003D2025640A006D6B5F74696D655F746F0D
-:100BD0005F6D6178203D2025640A006D6B5F6D615B
-:100BE000785F7370656564203D2025640A006D6B35
-:100BF0005F696E74657276616C203D2025640A0021
-:100C00006D6B5F64656C6179203D2025640A000A84
-:100C100000257500363A20776865656C5F74696DEC
-:100C2000655F746F5F6D61783A20000A002575007A
-:100C3000353A20776865656C5F6D61785F737065C4
-:100C400065643A20000A00257500343A2074696D05
-:100C5000655F746F5F6D61783A20000A002575004A
-:100C6000333A206D61785F73706565643A20000ADD
-:100C700000257500323A20696E74657276616C28C1
-:100C80006D73293A20000A00257500313A20646509
-:100C90006C6179282A31306D73293A20000A092DB8
-:100CA0002056616C756573202D0A004D3E004D2560
-:100CB000643E20003F007365742064656661756C56
-:100CC000740A00433E200077686572652064656C95
-:100CD00074613A20637572736F723D25642C2077BE
-:100CE0006865656C3D25640A536565206874747099
-:100CF0003A2F2F656E2E77696B6970656469612E76
-:100D00006F72672F77696B692F4D6F7573655F6BB6
-:100D10006579730A000A092D204D6F7573656B653F
-:100D200079202D0A4553432F713A09717569740A68
-:100D3000313A0964656C6179282A31306D73290A6A
-:100D4000323A09696E74657276616C286D73290A8E
-:100D5000333A096D61785F73706565640A343A09E6
-:100D600074696D655F746F5F6D61780A353A0977F4
-:100D70006865656C5F6D61785F73706565640A3680
-:100D80003A09776865656C5F74696D655F746F5F5C
-:100D90006D61780A0A703A097072696E7420766122
-:100DA0006C7565730A643A097365742064656661DD
-:100DB000756C74730A75703A092B310A646F776E1B
-:100DC0003A092D310A706775703A092B31300A7073
-:100DD00067646F776E3A092D31300A0A7370656562
-:100DE00064203D2064656C7461202A206D61785F09
-:100DF0007370656564202A202872657065617420AF
-:100E00002F2074696D655F746F5F6D6178290A00CA
-:100E10003F004D3E2000433E20004C25640A000A5E
-:100E2000092D20436F6E736F6C65202D0A45534367
-:100E30002F713A09717569740A6D3A096D6F75738E
-:100E4000656B65790A000A092D204D616769632089
-:100E50002D0A643A0964656275670A783A0964651F
-:100E6000627567206D61747269780A6B3A0964650E
-:100E7000627567206B6579626F6172640A6D3A0909
-:100E80006465627567206D6F7573650A763A0976D9
-:100E9000657273696F6E0A733A097374617475735E
-:100EA0000A633A09636F6E736F6C65206D6F6465DA
-:100EB0000A302D343A096C61796572302D34284638
-:100EC00031302D4634290A506175733A09626F6FCB
-:100ED000746C6F616465720A653A09656570726F5A
-:100EE0006D0A6E3A094E4B524F0A7A3A09736C6595
-:100EF0006570204C454420746573740A000A00250F
-:100F000075002E6E6B726F3A20000A002575002E58
-:100F1000737761705F6261636B736C6173685F624A
-:100F200061636B73706163653A20000A0025750088
-:100F30002E737761705F67726176655F6573633A80
-:100F400020000A002575002E6E6F5F6775693A20D4
-:100F5000000A002575002E737761705F72616C74F2
-:100F60005F726775693A20000A002575002E737755
-:100F700061705F6C616C745F6C6775693A20000A20
-:100F8000002575002E636170736C6F636B5F746F07
-:100F90005F636F6E74726F6C3A20000A00257500F3
-:100FA0002E737761705F636F6E74726F6C5F6361D5
-:100FB00070736C6F636B3A20000A00253032580062
-:100FC0006B65796D61705F636F6E6669672E7261C4
-:100FD000773A20000A002575002E6D6F7573653A0B
-:100FE00020000A002575002E6B6579626F617264BE
-:100FF0003A20000A002575002E6D61747269783AF6
-:1010000020000A002575002E656E61626C653A202D
-:10101000000A00253032580064656275675F636FAF
-:101020006E6669672E7261773A20000A00257500A6
-:1010300064656661756C745F6C617965723A2000F5
-:101040003F004E4B524F3A206F66660A004E4B529D
-:101050004F3A206F6E0A0074696D65725F636F7539
-:101060006E743A202530346C580A006B6579626FD3
-:101070006172645F6E6B726F3A2025580A006B656F
-:1010800079626F6172645F69646C653A2025580A01
-:10109000006B6579626F6172645F70726F746F6309
-:1010A0006F6C3A2025580A00686F73745F6B65791E
-:1010B000626F6172645F6C65647328293A202558F9
-:1010C0000A000A092D20537461747573202D0A00DB
-:1010D0004743433A20342E382E31204156522D4C6E
-:1010E0004942433A20312E382E3073766E204156D5
-:1010F000525F415243483A20617672350A004F50A0
-:1011000054494F4E533A204C55464120424F4F547C
-:101110004D41474943204D4F5553454B4559204577
-:10112000585452414B455920434F4E534F4C452044
-:10113000434F4D4D414E44204E4B524F203531329E
-:101140000A004255494C443A2065356638343035FA
-:101150002D6469727479202831373A34363A33393C
-:10116000204A616E2032332032303136290A00564F
-:1011700049443A20307846454544284572676F44D3
-:101180006F7820455A29205049443A20307831332D
-:101190003037284572676F446F7820455A292056AA
-:1011A00045523A203078303030310A0044455343BC
-:1011B0003A20742E6D2E6B2E206B6579626F6172F2
-:1011C00064206669726D7761726520666F72204572
-:1011D00072676F646F780A000A092D205665727372
-:1011E000696F6E202D0A000A6D6F7573653A206F66
-:1011F00066660A000A6D6F7573653A206F6E0A00A5
-:101200000A6B6579626F6172643A206F66660A00E4
-:101210000A6B6579626F6172643A206F6E0A000A28
-:101220006D61747269783A206F66660A000A6D61B2
-:10123000747269783A206F6E0A000A646562756795
-:101240003A206F6E0A000A64656275673A206F661D
-:10125000660A000A0A626F6F746C6F616465722EB1
-:101260002E2E2000433E20006565636F6E66696721
-:101270003A0A00536C656570204C454420746573D0
-:10128000740A0000000000000000000000000102DD
-:1012900004060A0F17202C3A4A5D71879DB3C7DAFE
-:1012A000E9F5FCFFFCF5E9DAC7B39D87715D4A3AC1
-:1012B0002C20170F0A0604020100000000000000A5
-:1012C0000000000011241FBECFEFDAE0DEBFCDBF6B
-:1012D00004B603FE24C08091F9019091FA01A09117
-:1012E000FB01B091FC018730904BA740B04BB9F4A3
-:1012F0001092F9011092FA011092FB011092FC0178
-:1013000014BE84B7877F84BF88E10FB6F8948093BA
-:101310006000109260000FBEE0E0FFE3099511E06D
-:10132000A0E0B1E0EAE2F0E602C005900D92AA3337
-:10133000B107D9F721E0AAE3B1E001C01D92A93FAE
-:10134000B207E1F70E942E120C9413300C940000A7
-:10135000FF93EF93E0913A01F0913B01309709F050
-:101360000995EF91FF910895FC018591803011F06E
-:10137000EFDFFBCF0895FF27E0E230E247FF0CC02C
-:10138000419597FF09C0EDE2609570958095909525
-:10139000611D711D811D911D27FF02C0219530E344
-:1013A00050E2AA27660F771F881F991FAA1FA4174C
-:1013B00010F0A41B63955A95A9F7AA3008F0A95F0D
-:1013C000A05DAF93F395611571058105910541F716
-:1013D000ED3211F4EF93F395F21718F43F93F39570
-:1013E000FBCF8F91B5DFFA95E1F70895E991F99177
-:1013F0008591803021F0853219F0AADFF9CF089568
-:1014000020E0E89455915532C1F3503311F46894BB
-:1014100055915A3348F4505390F3220F022E220F65
-:10142000220F200D250FF4CF0EF42195899199916B
-:10143000533619F3533729F1533559F1BC01882735
-:101440009927E8945C3621F4899199916894559193
-:10145000543639F446EF7EF077FF0DC08FEF9FEFE3
-:101460000AC055374AE039F0583540E121F052368C
-:1014700042E009F00895FF93EF937DDFEF91FF9134
-:10148000B7CFFF93EF93FC0181918030B9F360DF18
-:10149000FBCFFF93EF9368DFF1CFDF93CF93CDB70F
-:1014A000DEB72596A3DFCF91DF910895FC0163306D
-:1014B00019F1B8F46130D1F0623081F58091BC014E
-:1014C0009091BD01A091BE01B091BF0123E0922790
-:1014D0008093BC019093BD01A093BE01B093BF0166
-:1014E0001DC0643079F0653099F018C0828188237E
-:1014F000A9F08BEF90E008958281882379F082EF44
-:1015000090E008958281882349F089EE90E0089563
-:101510008281882319F080EE90E0089580E090E0C9
-:101520000895089556985E9825982D9826982E9897
-:1015300027982F988091BC019091BD01A091BE0188
-:10154000B091BF0190FF02C0259A2D9A8091C001F1
-:101550009091C101A091C201B091C3010297A10570
-:10156000B10511F4269A2E9A0E94721781FF02C0CB
-:10157000279A2F9A089582E99AE0892B11F00E9408
-:10158000920A80E090E0089556985E9825982D98EC
-:1015900026982E9827982F988FEF90E090938900A7
-:1015A0008093880090938B0080938A0090938D00A5
-:1015B00080938C00259A2D9A2FEF80E792E021509E
-:1015C00080409040E1F700C00000269A2E9A2FEF4D
-:1015D00080E792E0215080409040E1F700C0000099
-:1015E000279A2F9A2FEF80E792E021508040904079
-:1015F000E1F700C0000025982D982FEF80E792E0DA
-:10160000215080409040E1F700C0000026982E98BD
-:101610002FEF80E792E0215080409040E1F700C03A
-:10162000000027982F9856985E9825982D98269810
-:101630002E9827982F98089589EA8093800089E052
-:101640008093810024982C983F988AB18F748AB92E
-:101650006E98479A8BB1806B8BB9769A0E94C40AB8
-:1016600081E99AE0892B11F00E94910A80E090E0D4
-:10167000089580E28093000180913C0181110EC0A9
-:101680000E94880B81E080933C012FEF83ED90E373
-:10169000215080409040E1F700C0000080E40E94AB
-:1016A0008E0B8093000181112EC00E94B80B809395
-:1016B0000001811128C00E94B80B809300018111A4
-:1016C00022C08FE30E94B80B8093000181111BC0E0
-:1016D0000E94B00B80E40E948E0B80930001811168
-:1016E00012C08CE00E94B80B8093000181110BC0E6
-:1016F0000E94B80B80930001811105C08FE30E9406
-:10170000B80B809300010E94B00B809100010895F6
-:101710001092B9008AE08093B800089594EA9093FB
-:10172000BC009091BC0097FFFCCF9091B900987FCE
-:10173000983021F0903111F081E008958093BB0042
-:1017400084E88093BC008091BC0087FFFCCF80912F
-:10175000B900887F883111F0803471F780E00895F6
-:1017600084E98093BC008091BC0084FDFCCF089587
-:101770008093BB0084E88093BC008091BC0087FF0D
-:10178000FCCF9091B900987F81E0983209F480E015
-:10179000089584E88093BC008091BC0087FFFCCF53
-:1017A0008091BB00089580910001811115C080E4F3
-:1017B0000E948E0B8093000181110CC082E10E9477
-:1017C000B80B80930001811105C08FEF0E94B80B08
-:1017D000809300010E94B00B84B1807F84B985B1F1
-:1017E000807F85B98AB1837F8AB98BB1837F8BB9BA
-:1017F0003E98469808950E94390B809300010E94FC
-:10180000D30B80B38C7080BB81B3836F81BBECE45E
-:10181000F1E0AEE3B1E011921D9281E0EA35F80704
-:10182000D1F78CE19BE0892B11F00C941C0B0895EF
-:101830009F92AF92BF92CF92DF92EF92FF920F935F
-:101840001F93CF93DF93809100018823E1F0809173
-:101850003D018F5F80933D01811115C08CEF97E0B2
-:101860000E94B4090E94390B80930001882329F05B
-:1018700082EE97E00E94B40906C08EEC97E00E94C9
-:10188000B4090E94C40A0EE311E0C0E0D0E0BB241A
-:10189000B39482E0A82ECC24C394D12C2FEBE22E5B
-:1018A00027E0F22EC73000F580910001811162C05F
-:1018B00080E40E948E0B80930001811112C082E1AE
-:1018C0000E94B80B8093000181110BC0C6010C2E41
-:1018D00001C0880F0A94EAF780950E94B80B8093A4
-:1018E00000010E94B00B46C0CA30A1F028F4C830F5
-:1018F00059F0C93061F005C0CC3089F070F0CD30BE
-:1019000089F0209A289810C0219A29980DC0229A0F
-:101910002A980AC0239A2B9807C0529A01C0539A5A
-:101920005B9802C03E9A4698E0EAEA95F1F78FB1DB
-:10193000799985C092E081708B25892B7C9B02C0B0
-:1019400090E001C094E0892B7D9B02C090E001C033
-:1019500098E0892B7E9B02C090E001C090E1892B2A
-:101960009FB19095991F9927991F9295990F907EF5
-:10197000892B10C080910001811176C080E40E9403
-:101980008E0B80930001882309F45BC0912C0E9488
-:10199000B00B892DF8019081981739F180838091DF
-:1019A0000101882301F18091D70180FF04C084ECFC
-:1019B00097E00E94B4098091D70180FF0CC080910C
-:1019C00001011F928F93FF92EF920E944D0A0F9098
-:1019D0000F900F900F908091D70180FF04C08DEB86
-:1019E00097E00E94B409A09201010E94D30B2196B6
-:1019F0000F5F1F4FCE30D10509F054CF8091010108
-:101A00008823B1F0815080930101882339F08FE958
-:101A10009FE00197F1F700C000000AC0ACE4B1E01C
-:101A2000EEE3F1E081918D9391E0EC34F907D1F789
-:101A30008BEB9AE0892BD1F00E94BB0A17C090E093
-:101A40007ACF83E10E94B80B8093000181119ECF71
-:101A500081E40E948E0B80930001811197CF0E9438
-:101A6000C90B982E909493CF80E094CF81E0DF91C2
-:101A7000CF911F910F91FF90EF90DF90CF90BF908B
-:101A8000AF909F900895E82FF0E0E45BFE4F8081D7
-:101A90000895CF92DF92EF92FF920F931F93CF930F
-:101AA000DF9386EA97E00E94B4093CE4E32E31E03C
-:101AB000F32EC0E0D0E041EAC42E47E0D42E08E97E
-:101AC00017E0DF93CF93DF92CF920E944D0A8EE909
-:101AD00097E00E94B409F70181917F0190E00E9494
-:101AE000B7239F938F931F930F930E944D0A86E90C
-:101AF00097E00E94B40921968DB79EB708960FB65D
-:101B0000F8949EBF0FBE8DBFCE30D105D1F6DF91C8
-:101B1000CF911F910F91FF90EF90DF90CF9008959C
-:101B20008B3B910578F4883A910540F5853A91050B
-:101B3000D0F48430910508F0B1C08130910509F4EA
-:101B4000ADC06BC0803E910508F467C0883E91052A
-:101B500008F4A4C09C01205F31092031310508F050
-:101B60005CC090650895853A910509F459C0863A9C
-:101B7000910509F458C083E890E40895883A9105E6
-:101B800009F454C0893A910509F453C08A3A910581
-:101B900009F452C08B3A910509F451C08C3A910571
-:101BA00009F450C08D3A910509F44FC0803B91056E
-:101BB00009F44EC08E3A910509F44DC08F3A910553
-:101BC00009F44CC0813B910509F44BC0823B91055F
-:101BD00009F44AC0833B910509F449C0843B91054F
-:101BE00009F448C0853B910509F447C0863B91053F
-:101BF00009F446C0873B910509F445C0883B91052F
-:101C000009F444C0893B910509F443C08A3B91051E
-:101C100009F042C08AE296E4089580E090E00895D9
-:101C200081E890E4089582E890E4089582EE94E4D7
-:101C3000089589EE94E408958AEE94E4089585EB7E
-:101C400094E4089586EB94E4089587EB94E4089572
-:101C50008CEC94E408958DEC94E4089583E895E485
-:101C600008958AE895E4089582E995E4089584E961
-:101C700095E4089581E296E4089583E296E4089558
-:101C800084E296E4089585E296E4089586E296E477
-:101C9000089587E296E4089580E094E40895089515
-:101CA00096E0799FF001112494E5899FE00DF11DE4
-:101CB0001124E60FF11DEE0FFF1FEA5FFE4F859125
-:101CC00094910895880F991F8A579040FC0185913F
-:101CD00094910895880F991F8A5F9E4FFC0185910A
-:101CE0009491089526E0729FF001112444E5849FA9
-:101CF000E00DF11D1124E60FF11DEE0FFF1FEA5F4D
-:101D0000FE4F25913491C9019A9581159F4110F498
-:101D1000C9010895C90190528115904128F4C90163
-:101D20009F700E946A0E0895C901905381159041D9
-:101D300020F4C9019927906C0895211580E5380792
-:101D400069F40E94351D9FEF24E34CE09150204040
-:101D50004040E1F700C000000C947324213080E57E
-:101D6000380751F486E198E00E94B4098091D701C8
-:101D700081608093D7010895C901905581159041E4
-:101D800008F050C0832F99278F70992781309105D3
-:101D9000D9F4A9014370552702C0880F991F4A95AD
-:101DA000E2F79C68A90164E0440F551F6A95E1F7CA
-:101DB00044275370842B952B73E0220F331F7A95A1
-:101DC000E1F7207633271DC08230910529F4922F48
-:101DD0008827816F906A089583309105A9F4A9013D
-:101DE0004370552781E090E002C0880F991F4A9503
-:101DF000E2F79C6843E0220F331F4A95E1F7207E0B
-:101E00003770822B932B08950497F1F4A901437046
-:101E1000552781E090E002C0880F991F4A95E2F7AC
-:101E20009A68E8CFC90190578115904120F4C90103
-:101E30009F7090620895C90190588115904120F4D7
-:101E4000C9019F70906A0895203E3105E0F4203C5E
-:101E5000310558F52133310509F470C048F42932B1
-:101E6000310509F464C02A32310509F46EC074C02A
-:101E700029333105F1F022383105D9F02533310508
-:101E800009F44EC069C0233E310589F138F4203E83
-:101E90003105C1F0223E3105E1F05EC0263E31053C
-:101EA00069F1273E3105A9F157C0C9010E94620EB0
-:101EB00008958091EA0180FD02C081FF4DC080EE4F
-:101EC00090E04BC08091EA0180FFF9CF89E390E078
-:101ED00044C08091EA0182FF0EC08091EA0184FF34
-:101EE00003C080E090E039C083EE90E036C080917E
-:101EF000EA0182FFF2CF82EE90E02FC08091EA01EA
-:101F000083FF0BC08091EA0184FDEBCF87EE90E068
-:101F100024C08091EA0183FFF5CF86EE90E01DC0DA
-:101F20008091EA0185FF07C089E290E016C08091A8
-:101F3000EA0185FFF9CF85E390E00FC08091EA01C7
-:101F400086FF07C08AE290E008C08091EA0186FF20
-:101F5000F9CF81E390E001C0C9010E94900D08957E
-:101F6000089580916D0108959FB7F89410925C01D7
-:101F70009FBF9091F001943009F058C09091E90012
-:101F80009F702091EC0020FF02C020E801C020E0FB
-:101F9000292B94E09093E9009091EB0090FF43C0CF
-:101FA0009091EE0097FF3FC090915A01992321F044
-:101FB0009091E80095FF37C010925A0196E0309159
-:101FC000E80035FD15C03091F001343061F53091F5
-:101FD000EB0035FD28C0915021F481E080935A0137
-:101FE00022C0EFE9FFE03197F1F700C00000E7CF32
-:101FF0008093F1008091E80085FD0AC08091E8009F
-:1020000080FFFCCF8091E8008E778093E80006C0C7
-:102010008FB7F89491E090935C018FBF2F7020935D
|