summaryrefslogtreecommitdiffstats
path: root/keyboard/ergodox_ez/keymaps/workman_osx_mdw
diff options
context:
space:
mode:
authorErez Zukerman <ezuk@madmimi.com>2016-01-20 05:49:38 +0200
committerErez Zukerman <ezuk@madmimi.com>2016-01-20 05:49:38 +0200
commit7f84ab6ad9e2447766b1a4139348761a885c4f03 (patch)
tree0fdc9a22f6bb0a0c5ded32f86975716d5bfaaf3c /keyboard/ergodox_ez/keymaps/workman_osx_mdw
parent922545240b52fabdb4b011d74f809421a0aa3b36 (diff)
Adds a bunch of compiled files
Diffstat (limited to 'keyboard/ergodox_ez/keymaps/workman_osx_mdw')
-rw-r--r--keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.c366
-rw-r--r--keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.hex1553
2 files changed, 1919 insertions, 0 deletions
diff --git a/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.c b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.c
new file mode 100644
index 0000000000..14bbe010d5
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.c
@@ -0,0 +1,366 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+// README
+// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer.
+// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of
+// blanks so still discovering what I like.
+// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit
+// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I
+// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do.
+
+
+// TODO: Define layer names that make sense for the ErgoDox EZ.
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+#define DEAD 3 // dead version of the symbols layer
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' |
+ * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
+ * | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * |Bckspc| Space|------| |------| Space |Enter |
+ * | | | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(1),
+ ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO,
+ KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI,
+ KC_NO, KC_NO,
+ KC_HOME,
+ KC_BSPC,KC_SPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
+ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,
+ MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4,
+ KC_NO, KC_NO,
+ KC_PGUP,
+ KC_PGDN,KC_SPC,KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS,
+ KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC),
+ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12,
+ KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT,
+ KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_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
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+),
+/* Keymap 4: Dead Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[DEAD] = KEYMAP(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, M(100), M(101), M(102), M(103), M(104), KC_TRNS,
+ KC_TRNS, M(109), M(110), M(111), M(112), M(113),
+ KC_TRNS, M(120), M(121), M(122), M(123), M(124), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, M(105), M(106), M(107), M(108), M(130), KC_F12,
+ M(114), M(115), M(116), M(117), M(118), M(119),
+ KC_TRNS, M(125), M(126), M(127), M(128), M(129), 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 uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols)
+ [2] = ACTION_LAYER_ON(BASE,0), // FN2 - Go back to the base layer
+ [3] = ACTION_LAYER_ON(DEAD,0),
+ [4] = ACTION_LAYER_TOGGLE(DEAD),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case 100:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(5), U(LSFT), T(FN4), END);
+ break;
+ case 101:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(7), U(LSFT), T(FN4), END);
+ break;
+ case 102:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(SLSH), U(LSFT), T(FN4), END);
+ break;
+ case 103:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(EQL), U(LSFT), T(FN4), END);
+ break;
+ case 104:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(2), U(LSFT), T(FN4), END);
+ break;
+ case 105:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(4), U(LSFT), T(FN4), END);
+ break;
+ case 106:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(MINS), U(LSFT), T(FN4), END);
+ break;
+ case 107:
+ layer_clear();
+ return MACRODOWN(T(LBRC), T(FN4), END);
+ break;
+ case 108:
+ layer_clear();
+ return MACRODOWN(T(RBRC), T(FN4), END);
+ break;
+ case 130:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(1), U(LSFT), T(FN4), END);
+ break;
+ case 109:
+ layer_clear();
+ return MACRODOWN(T(SLSH), T(FN4), END);
+ break;
+ case 110:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(9), U(LSFT), T(FN4), END);
+ break;
+ case 111:
+ layer_clear();
+ return MACRODOWN(T(EQL), T(FN4), END);
+ break;
+ case 112:
+ layer_clear();
+ return MACRODOWN(T(0), T(FN4), END);
+ break;
+ case 113:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(LBRC), U(LSFT), T(FN4), END);
+ break;
+ case 114:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(RBRC), U(LSFT), T(FN4), END);
+ break;
+ case 115:
+ layer_clear();
+ return MACRODOWN(T(1), T(FN4), END);
+ break;
+ case 116:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(8), U(LSFT), T(FN4), END);
+ break;
+ case 117:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(0), U(LSFT), T(FN4), END);
+ break;
+ case 118:
+ layer_clear();
+ return MACRODOWN(T(MINS), T(FN4), END);
+ break;
+ case 119:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(QUOT), U(LSFT), T(FN4), END);
+ break;
+ case 120:
+ layer_clear();
+ return MACRODOWN(T(6), T(FN4), END);
+ break;
+ case 121:
+ layer_clear();
+ return MACRODOWN(T(7), T(FN4), END);
+ break;
+ case 122:
+ layer_clear();
+ return MACRODOWN(T(8), T(FN4), END);
+ break;
+ case 123:
+ layer_clear();
+ return MACRODOWN(T(9), T(FN4), END);
+ break;
+ case 124:
+ layer_clear();
+ return MACRODOWN(D(LSFT), T(BSLS), U(LSFT), T(FN4), END);
+ break;
+ case 125:
+ layer_clear();
+ return MACRODOWN(T(BSLS), T(FN4), END);
+ break;
+ case 126:
+ layer_clear();
+ return MACRODOWN(T(2), T(FN4), END);
+ break;
+ case 127:
+ layer_clear();
+ return MACRODOWN(T(3), T(FN4), END);
+ break;
+ case 128:
+ layer_clear();
+ return MACRODOWN(T(4), T(FN4), END);
+ break;
+ case 129:
+ layer_clear();
+ return MACRODOWN(T(5), T(FN4), END);
+ break;
+
+ default:
+ return MACRO_NONE;
+ }
+
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.hex b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.hex
new file mode 100644
index 0000000000..e6fe6a368b
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap_workman_osx_mdw.hex
@@ -0,0 +1,1553 @@
+:100000000C9404080C9448080C9448080C94480874
+:100010000C9448080C9448080C9448080C94480820
+:100020000C9448080C9448080C94E4140C94B615ED
+:100030000C9448080C9448080C9448080C94480800
+:100040000C9448080C948E2E0C9448080C94480884
+:100050000C9448080C9495240C9448080C94480877
+:100060000C9448080C9448080C9448080C944808D0
+:100070000C9448080C9448080C9448080C944808C0
+:100080000C9448080C9448080C9448080C944808B0
+:100090000C9448080C9448080C9448080C944808A0
+:1000A0000C9448080C9448080C9448081B163D16FC
+:1000B00028173D1628177F16A2162817F7160A17B5
+:1000C000581A581A861A861AC91A051B061D061DC3
+:1000D0001D1B061D141C141CE01C061D061DF41C13
+:1000E0000122022201C402C4000121022101C40232
+:1000F000C4000120022001C402C400011F021F012C
+:10010000C402C4000131023101C402C40001E10192
+:1001100031023102E101C402C4000126022601C4F9
+:1001200002C4000125022501C402C40001240224E6
+:1001300001C402C4000123022301C402C40001E17E
+:100140000134023402E101C402C400012D022D0178
+:10015000C402C40001E10127022702E101C402C474
+:100160000001E10125022502E101C402C400011ED3
+:10017000021E01C402C40001E10130023002E101AB
+:10018000C402C40001E1012F022F02E101C402C434
+:10019000000127022701C402C400012E022E01C45F
+:1001A00002C40001E10126022602E101C402C400EA
+:1001B0000138023801C402C40001E1011E021E021E
+:1001C000E101C402C4000130023001C402C40001D4
+:1001D0002F022F01C402C40001E1012D022D02E112
+:1001E00001C402C40001E10121022102E101C402B3
+:1001F000C40001E1011F021F02E101C402C40001A9
+:10020000E1012E022E02E101C402C40001E1013825
+:10021000023802E101C402C40001E1012402240207
+:10022000E101C402C40001E10122022202E101C491
+:1002300002C4000000F0A101840884088A35002B64
+:1002400000297FE100000000001E00140004001DD2
+:100250000000004D001F00070016001B00E0002CEE
+:1002600000200015000B001000E2002A0021001AF7
+:100270000017000600E3004A00220005000A0019EA
+:1002800000000000005000015400000000000000C9
+:10029000004F000154000000770000000023000D13
+:1002A000001C000E00000000002400090011000FD7
+:1002B0000050004B002500180008003600510028AF
+:1002C00000260013001200370052002C00270033D4
+:1002D000000C0038714F004E002D0031003400E555
+:1002E00000C4000000010001000100010001000045
+:1002F000003A00220238002300010001003B0024E4
+:100300000226022400010001003C0038022E0025D4
+:1003100000010001003D002E02270026000100011F
+:10032000003E001F022F0231020000010001000107
+:1003300000000001000000010001000100000001B8
+:1003400000000001003F00210230023800000001DF
+:100350000040002D021E001F000100010041002F7F
+:100360000025022000010001004200300027022188
+:10037000000100010043001E022D002200010001C7
+:1003800000440045003400010001000000010001AC
+:100390000001000100010000000100010001000156
+:1003A000000100010001000100F200010001000154
+:1003B000000100F000F1000100F400010001000163
+:1003C00000F3000100F5000100010001000100013F
+:1003D0000000000100010001000000010000000118
+:1003E0000001000100000001000000010001000107
+:1003F00000010001000000010001000100010001F6
+:1004000000A9000100010001000100AC00AA00B633
+:1004100000010001000100AB00A800010001000183
+:1004200000010001000100010001000100AE000117
+:1004300000010000000100010001000100010000B6
+:10044000003A0064306D307830010001003B0065F7
+:10045000306E307930010001003C0066306F307A38
+:1004600030010001003D00673070307B3001000139
+:10047000003E00683071307C300000010001000156
+:100480000000000100000001000100010000000167
+:1004900000000001003F00693072307D3000000133
+:1004A0000040006A3073307E300100010041006B73
+:1004B0003074307F300100010042006C30753080B4
+:1004C00030010001004300823076308130010001AC
+:1004D000004400450077300100010000000A0025BB
+:1004E00030313662003A200025303258000A722F2F
+:1004F0006320303132333435363738394142434462
+:1005000045460A000A002530325800626F756E6356
+:1005100065213A20006C656674207369646520610A
+:10052000747461636865640A006C6566742073693D
+:100530006465206E6F7420726573706F6E64696E8F
+:10054000670A00747279696E6720746F2072657330
+:100550006574206D637032333031380A000A4445C7
+:100560004255473A20656E61626C65642E0A005BF5
+:10057000735D004B6579626F6172642073746172A0
+:10058000742E0A005B575D005B535D005B525D009B
+:100590005B445D005B435D0016034500720067002D
+:1005A0006F0044006F007800200045005A000000F2
+:1005B00016034500720067006F0044006F0078006A
+:1005C000200045005A0000000403090409028D00C0
+:1005D000050100A0FA09040000010301010009213E
+:1005E00011010001223F000705810308000A0904E8
+:1005F00001000103010200092111010001224D0047
+:100600000705820308000A09040200010300000034
+:100610000921110100012236000705830308000AA1
+:100620000904030002030000000921110100012256
+:1006300020000705840320000107050403200001B2
+:100640000904040001030000000921110100012236
+:100650003900070585031000011201100100000098
+:1006600008EDFE071301000102000105010906A1C2
+:1006700001050719E029E715002501950875018195
+:100680000205081901290595057501910295017565
+:100690000391010507190029771500250195787543
+:1006A000018102C00631FF0974A1010975150025F9
+:1006B000FF9520750881020976150025FF952075A4
+:1006C000089102C005010980A101850216010026DA
+:1006D000B7001A01002AB700751095018100C00506
+:1006E0000C0901A1018503160100269C021A0100D4
+:1006F0002A9C02751095018100C005010902A10123
+:100700000901A10005091901290515002501950513
+:1007100075018102950175038101050109300931D7
+:100720001581257F95027508810609381581257F79
+:10073000950175088106050C0A38021581257F95FB
+:100740000175088106C0C005010906A10105071948
+:10075000E029E715002501950875018102950175CD
+:100760000881010508190129059505750191029572
+:1007700001750391010507190029FF150025FF9553
+:100780000675088100C00A002530325820006B65CC
+:1007900079626F6172645F7265706F72743A200083
+:1007A0000A0025303258006B6579626F6172645FB0
+:1007B0007365745F6C65643A200064656C5F6B659B
+:1007C000795F6269743A2063616E27742064656C96
+:1007D0003A20253032580A006164645F6B65795FA6
+:1007E0006269743A2063616E2774206164643A2000
+:1007F000253032580A00646F6E652E0A00626F6FF2
+:10080000676D61676963207363616E3A202E2E2ED7
+:100810002000290A002575002F002575005D28009D
+:1008200025640020002564002000256400200025A8
+:1008300064007C0025303258006D6F7573656B6500
+:1008400079205B62746E7C782079207620685D2840
+:100850007265702F61636C293A205B006D6B5F7766
+:100860006865656C5F74696D655F746F5F6D6178F5
+:10087000203D2025640A006D6B5F776865656C5FBD
+:100880006D61785F7370656564203D2025640A00A2
+:100890006D6B5F74696D655F746F5F6D6178203D2E
+:1008A0002025640A006D6B5F6D61785F737065650C
+:1008B00064203D2025640A006D6B5F696E7465726B
+:1008C00076616C203D2025640A006D6B5F64656C69
+:1008D0006179203D2025640A006D6B5F776865654E
+:1008E0006C5F74696D655F746F5F6D6178203D202A
+:1008F00025640A006D6B5F776865656C5F6D617874
+:100900005F7370656564203D2025640A006D6B5F30
+:1009100074696D655F746F5F6D6178203D2025643B
+:100920000A006D6B5F6D61785F7370656564203D73
+:100930002025640A006D6B5F696E74657276616C68
+:10094000203D2025640A006D6B5F64656C61792031
+:100950003D2025640A000A00257500363A20776894
+:1009600065656C5F74696D655F746F5F6D61783A22
+:1009700020000A00257500353A20776865656C5FB0
+:100980006D61785F73706565643A20000A002575B3
+:1009900000343A2074696D655F746F5F6D61783AF9
+:1009A00020000A00257500333A206D61785F73706E
+:1009B0006565643A20000A00257500323A20696EA8
+:1009C00074657276616C286D73293A20000A0025DF
+:1009D0007500313A2064656C6179282A31306D7375
+:1009E000293A20000A092D2056616C756573202D67
+:1009F0000A004D3E004D25643E20003F00736574A3
+:100A00002064656661756C740A00433E2000776857
+:100A10006572652064656C74613A20637572736FEA
+:100A2000723D25642C20776865656C3D25640A530A
+:100A3000656520687474703A2F2F656E2E77696B28
+:100A40006970656469612E6F72672F77696B692FB2
+:100A50004D6F7573655F6B6579730A000A092D2008
+:100A60004D6F7573656B6579202D0A4553432F7162
+:100A70003A09717569740A313A0964656C617928BB
+:100A80002A31306D73290A323A09696E74657276BB
+:100A9000616C286D73290A333A096D61785F737050
+:100AA0006565640A343A0974696D655F746F5F6DDA
+:100AB00061780A353A09776865656C5F6D61785FC2
+:100AC00073706565640A363A09776865656C5F74AA
+:100AD000696D655F746F5F6D61780A0A703A0970BD
+:100AE00072696E742076616C7565730A643A097375
+:100AF00065742064656661756C74730A75703A0973
+:100B00002B310A646F776E3A092D310A7067757060
+:100B10003A092B31300A7067646F776E3A092D31CC
+:100B2000300A0A7370656564203D2064656C7461E9
+:100B3000202A206D61785F7370656564202A202803
+:100B4000726570656174202F2074696D655F746FC4
+:100B50005F6D6178290A003F004D3E2000433E2032
+:100B6000004C25640A000A092D20436F6E736F6CD8
+:100B700065202D0A4553432F713A09717569740A2E
+:100B80006D3A096D6F7573656B65790A000A092DF9
+:100B9000204D61676963202D0A643A0964656275B6
+:100BA000670A783A096465627567206D61747269D5
+:100BB000780A6B3A096465627567206B6579626FC4
+:100BC0006172640A6D3A096465627567206D6F75BC
+:100BD00073650A763A0976657273696F6E0A733ABD
+:100BE000097374617475730A633A09636F6E736F86
+:100BF0006C65206D6F64650A302D343A096C61793B
+:100C00006572302D34284631302D4634290A506122
+:100C100075733A09626F6F746C6F616465720A650F
+:100C20003A09656570726F6D0A6E3A094E4B524F04
+:100C30000A7A3A09736C656570204C4544207465E6
+:100C400073740A000A002575002E6E6B726F3A20CD
+:100C5000000A002575002E737761705F6261636B17
+:100C6000736C6173685F6261636B73706163653A33
+:100C700020000A002575002E737761705F6772612E
+:100C800076655F6573633A20000A002575002E6E55
+:100C90006F5F6775693A20000A002575002E73772B
+:100CA00061705F72616C745F726775693A20000AE7
+:100CB000002575002E737761705F6C616C745F6CDA
+:100CC0006775693A20000A002575002E636170730C
+:100CD0006C6F636B5F746F5F636F6E74726F6C3A8F
+:100CE00020000A002575002E737761705F636F6EB8
+:100CF00074726F6C5F636170736C6F636B3A20002A
+:100D00000A0025303258006B65796D61705F636F42
+:100D10006E6669672E7261773A20000A00257500B9
+:100D20002E6D6F7573653A20000A002575002E6BD5
+:100D30006579626F6172643A20000A002575002EA1
+:100D40006D61747269783A20000A002575002E657D
+:100D50006E61626C653A20000A00253032580064EA
+:100D6000656275675F636F6E6669672E7261773A59
+:100D700020000A0025750064656661756C745F6CFF
+:100D8000617965723A20003F004E4B524F3A206F16
+:100D900066660A004E4B524F3A206F6E0A00746925
+:100DA0006D65725F636F756E743A202530346C58D0
+:100DB0000A006B6579626F6172645F6E6B726F3A85
+:100DC0002025580A006B6579626F6172645F6964FF
+:100DD0006C653A2025580A006B6579626F61726410
+:100DE0005F70726F746F636F6C3A2025580A0068E9
+:100DF0006F73745F6B6579626F6172645F6C656459
+:100E00007328293A2025580A000A092D20537461B5
+:100E1000747573202D0A004743433A20342E382E30
+:100E200032204156522D4C4942433A20312E382E21
+:100E300030204156525F415243483A206176723524
+:100E40000A004F5054494F4E533A204C55464120CA
+:100E5000424F4F544D41474943204D4F5553454B09
+:100E600045592045585452414B455920434F4E5304
+:100E70004F4C4520434F4D4D414E44204E4B524F19
+:100E8000203531320A004255494C443A2039323239
+:100E9000353435322D6469727479202830353A340E
+:100EA000323A3231204A616E2032302032303136CF
+:100EB000290A005649443A20307846454544284599
+:100EC00072676F446F7820455A29205049443A2070
+:100ED000307831333037284572676F446F7820455A
+:100EE0005A29205645523A203078303030310A00A5
+:100EF000444553433A20742E6D2E6B2E206B65793A
+:100F0000626F617264206669726D776172652066D6
+:100F10006F72204572676F646F780A000A092D208E
+:100F200056657273696F6E202D0A000A6D6F7573B6
+:100F3000653A206F66660A000A6D6F7573653A2020
+:100F40006F6E0A000A6B6579626F6172643A206F96
+:100F500066660A000A6B6579626F6172643A206F97
+:100F60006E0A000A6D61747269783A206F66660ACB
+:100F7000000A6D61747269783A206F6E0A000A6423
+:100F8000656275673A206F6E0A000A64656275676C
+:100F90003A206F66660A000A0A626F6F746C6F61AE
+:100FA0006465722E2E2E2000433E20006565636F1F
+:100FB0006E6669673A0A00536C656570204C45445B
+:100FC00020746573740A0000000000000000000037
+:100FD0000000010204060A0F17202C3A4A5D7187AF
+:100FE0009DB3C7DAE9F5FCFFFCF5E9DAC7B39D87E5
+:100FF000715D4A3A2C20170F0A0604020100000016
+:10100000000000000000000011241FBECFEFDAE056
+:10101000DEBFCDBF04B603FE24C08091F9019091DC
+:10102000FA01A091FB01B091FC018730904BA740E1
+:10103000B04BB9F41092F9011092FA011092FB0131
+:101040001092FC0114BE84B7877F84BF88E10FB67D
+:10105000F89480936000109260000FBEE0E0FFE320
+:10106000099511E0A0E0B1E0E8EBF0E602C00590E0
+:101070000D92AA33B107D9F711E0AAE3B1E001C09C
+:101080001D92A93FB107E1F70E941E120C945A303D
+:101090000C940000FF93EF93E0913A01F0913B0133
+:1010A000309709F00995EF91FF910895FC01859122
+:1010B000803011F0EFDFFBCF0895FF27E0E230E250
+:1010C00047FF0CC0419597FF09C0EDE26095709510
+:1010D00080959095611D711D811D911D27FF02C096
+:1010E000219530E350E2AA27660F771F881F991FCA
+:1010F000AA1FA41710F0A41B63955A95A9F7AA304C
+:1011000008F0A95FA05DAF93F395611571058105A6
+:10111000910541F7ED3211F4EF93F395F21718F4BE
+:101120003F93F395FBCF8F91B5DFFA95E1F70895E3
+:10113000E991F9918591803021F0853219F0AADF8B
+:10114000F9CF089520E0E89455915532C1F350331A
+:1011500011F4689455915A3348F4505390F3220F88
+:10116000022E220F220F200D250FF4CF0EF4219511
+:1011700089919991533619F3533729F1533559F120
+:10118000BC0188279927E8945C3621F489919991CC
+:1011900068945591543639F446EF7EF077FF0DC0D0
+:1011A0008FEF9FEF0AC055374AE039F0583540E1DC
+:1011B00021F0523642E009F00895FF93EF937DDF6E
+:1011C000EF91FF91B7CFFF93EF93FC0181918030B6
+:1011D000B9F360DFFBCFFF93EF9368DFF1CFDF93CD
+:1011E000CF93CDB7DEB72596A3DFCF91DF910895DA
+:1011F000CF93DF93EC01623709F4C6C038F56A3645
+:1012000009F483C098F4663609F463C048F4643680
+:1012100009F451C008F056C0662309F441C01AC150
+:10122000683609F464C008F45BC068C06E3609F41F
+:101230008FC030F46C3609F476C008F46DC081C0FC
+:10124000603709F493C008F48AC097C06A3709F47C
+:10125000D0C080F4663709F4B3C030F4643709F4C1
+:10126000A1C008F498C0A5C0683709F4B6C008F456
+:10127000AEC0B9C06E3709F4D4C030F46C3709F48D
+:10128000C4C008F4BCC0C7C0603809F4D6C008F4B4
+:10129000CEC0613809F4D7C0623809F44BC0DAC057
+:1012A0008A81882321F085EE0E94EC18D2C085EE59
+:1012B0000E94B419CEC00E947B218A81882309F440
+:1012C000C9C0CBC00E947B218A81882309F4C2C097
+:1012D000C7C00E947B218A81882309F4BBC0C3C098
+:1012E0000E947B218A81882309F4B4C0BFC00E9478
+:1012F0007B218A81882309F4ADC0BBC00E947B2179
+:101300008A81882309F4A6C0B7C00E947B218A8104
+:10131000882309F49FC0B3C00E947B218A8188235F
+:1013200009F498C0AFC00E947B218A81882309F408
+:1013300091C0ABC00E947B218A81882309F48AC0B6
+:10134000A7C00E947B218A81882309F483C0A3C09F
+:101350000E947B218A81882309F47CC09FC00E945F
+:101360007B218A81882309F475C09BC00E947B2160
+:101370008A81882309F46EC097C00E947B218A81EC
+:10138000882309F467C093C00E947B218A81882347
+:1013900009F460C08FC00E947B218A81882309F4F0
+:1013A00059C08BC00E947B218A81882309F452C0D6
+:1013B00087C00E947B218A81882309F44BC083C0A7
+:1013C0000E947B218A81882309F444C07FC00E9447
+:1013D0007B218A818823F1F17CC00E947B218A8154
+:1013E0008823C1F179C00E947B218A81882391F1F1
+:1013F00076C00E947B218A81882361F173C00E949C
+:101400007B218A81882331F170C00E947B218A81EF
+:10141000882301F16DC00E947B218A818823D1F04D
+:101420006AC00E947B218A818823A1F067C00E9444
+:101430007B218A81882371F064C00E947B218A818C
+:10144000882341F061C00E947B218A81882311F0AA
+:101450005EC060C020E030E05CC026E232E059C0EF
+:1014600029E132E056C02CE032E053C02FEF31E0EA
+:1014700050C022EF31E04DC025EE31E04AC028EDEA
+:1014800031E047C02FEC31E044C026EC31E041C0F0
+:1014900029EB31E03EC020EB31E03BC023EA31E0F4
+:1014A00038C02AE931E035C021E931E032C024E812
+:1014B00031E02FC027E731E02CC02EE631E029C013
+:1014C00021E631E026C024E531E023C02BE431E001
+:1014D00020C02EE331E01DC025E331E01AC02CE22C
+:1014E00031E017C023E231E014C02AE131E011C03D
+:1014F0002DE031E00EC024E031E00BC02BEF30E0F6
+:1015000008C022EF30E005C029EE30E002C020EE36
+:1015100030E0C901DF91CF91089508956091BC0139
+:101520007091BD018091BE019091BF010E949923ED
+:1015300056985E9825982D9826982E9827982F983B
+:10154000813019F0823021F00895259A2D9A08955E
+:10155000269A2E9A08958EE89AE0892B11F00E941F
+:101560008E0A80E090E0089556985E9825982D9810
+:1015700026982E9827982F988FEF90E090938900C7
+:101580008093880090938B0080938A0090938D00C5
+:1015900080938C00259A2D9A2FEF80E792E02150BE
+:1015A00080409040E1F700C00000269A2E9A2FEF6D
+:1015B00080E792E0215080409040E1F700C00000B9
+:1015C000279A2F9A2FEF80E792E021508040904099
+:1015D000E1F700C0000025982D982FEF80E792E0FA
+:1015E000215080409040E1F700C0000026982E98DE
+:1015F0002FEF80E792E0215080409040E1F700C05B
+:10160000000027982F9856985E9825982D98269830
+:101610002E9827982F98089589EA8093800089E072
+:101620008093810024982C983F988AB18F748AB94E
+:101630006E98479A8BB1806B8BB9769A0E94B40AE8
+:101640008DE89AE0892B11F00E948D0A80E090E0ED
+:10165000089580E28093000180913C0181110EC0C9
+:101660000E94780B81E080933C012FEF83ED90E3A3
+:10167000215080409040E1F700C0000080E40E94CB
+:101680007E0B8093000181112EC00E94A80B8093D5
+:101690000001811128C00E94A80B809300018111D4
+:1016A00022C08FE30E94A80B8093000181111BC010
+:1016B0000E94A00B80E40E947E0B809300018111A8
+:1016C00012C08CE00E94A80B8093000181110BC016
+:1016D0000E94A80B80930001811105C08FE30E9436
+:1016E000A80B809300010E94A00B80910001089537
+:1016F0001092B9008AE08093B800089594EA90931C
+:10170000BC009091BC0097FFFCCF9091B900987FEE
+:10171000983021F0903111F081E008958093BB0062
+:1017200084E88093BC008091BC0087FFFCCF80914F
+:10173000B900887F883111F0803471F780E0089516
+:1017400084E98093BC008091BC0084FDFCCF0895A7
+:101750008093BB0084E88093BC008091BC0087FF2D
+:10176000FCCF9091B900987F81E0983209F480E035
+:10177000089584E88093BC008091BC0087FFFCCF73
+:101780008091BB00089580910001811115C080E413
+:101790000E947E0B8093000181110CC082E10E94A7
+:1017A000A80B80930001811105C08FEF0E94A80B48
+:1017B000809300010E94A00B84B1807F84B985B121
+:1017C000807F85B98AB1837F8AB98BB1837F8BB9DA
+:1017D0003E98469808950E94290B809300010E942C
+:1017E000C30B80B38C7080BB81B3836F81BBECE48F
+:1017F000F1E0AEE3B1E011921D9281E0EA35F80725
+:10180000D1F78CE09BE0892B11F00C940C0B089520
+:101810009F92AF92BF92CF92DF92EF92FF920F937F
+:101820001F93CF93DF93809100018823E1F0809193
+:101830003D018F5F80933D01811115C083E495E0E8
+:101840000E9456080E94290B80930001882329F0EA
+:1018500089E295E00E94560806C085E195E00E9465
+:1018600056080E94B40A0EE311E0C0E0D0E0BB24A9
+:10187000B39482E0A82ECC24C394D12C26E0E22E8F
+:1018800025E0F22EC73000F580910001811162C081
+:1018900080E40E947E0B80930001811112C082E1DE
+:1018A0000E94A80B8093000181110BC0C6010C2E71
+:1018B00001C0880F0A94EAF780950E94A80B8093D4
+:1018C00000010E94A00B46C0CA30A1F028F4C83025
+:1018D00059F0C93061F005C0CC3089F070F0CD30DE
+:1018E00089F0209A289810C0219A29980DC0229A30
+:1018F0002A980AC0239A2B9807C0529A01C0539A7B
+:101900005B9802C03E9A4698E0EAEA95F1F78FB1FB
+:10191000799985C092E081708B25892B7C9B02C0D0
+:1019200090E001C094E0892B7D9B02C090E001C053
+:1019300098E0892B7E9B02C090E001C090E1892B4A
+:101940009FB19095991F9927991F9295990F907E15
+:10195000892B10C080910001811176C080E40E9423
+:101960007E0B80930001882309F45BC0912C0E94B8
+:10197000A00B892DF8019081981739F1808380910F
+:101980000101882301F18091D70180FF04C08BE021
+:1019900095E00E9456088091D70180FF0CC080918D
+:1019A00001011F928F93FF92EF920E94EF080F9018
+:1019B0000F900F900F908091D70180FF04C084E0BA
+:1019C00095E00E945608A09201010E94C30B219647
+:1019D0000F5F1F4FCE30D10509F054CF8091010128
+:1019E0008823B1F0815080930101882339F08FE979
+:1019F0009FE00197F1F700C000000AC0ACE4B1E03D
+:101A0000EEE3F1E081918D9391E0EC34F907D1F7A9
+:101A10008BEA9AE0892BD1F00E94AB0A17C090E0C4
+:101A20007ACF83E10E94A80B8093000181119ECFA1
+:101A300081E40E947E0B80930001811197CF0E9468
+:101A4000B90B982E909493CF80E094CF81E0DF91F2
+:101A5000CF911F910F91FF90EF90DF90CF90BF90AB
+:101A6000AF909F900895E82FF0E0E45BFE4F8081F7
+:101A70000895CF92DF92EF92FF920F931F93CF932F
+:101A8000DF938DEE94E00E9456083CE4E32E31E0B3
+:101A9000F32EC0E0D0E048EEC42E44E0D42E0FED8B
+:101AA00014E0DF93CF93DF92CF920E94EF0885EE90
+:101AB00094E00E945608F70181917F0190E00E9416
+:101AC000FE239F938F931F930F930E94EF088DED3A
+:101AD00094E00E94560821968DB79EB708960FB6DF
+:101AE000F8949EBF0FBE8DBFCE30D105D1F6DF91E9
+:101AF000CF911F910F91FF90EF90DF90CF900895BD
+:101B00008B3B910578F4883A910540F5853A91052B
+:101B1000D0F48430910508F0B1C08130910509F40A
+:101B2000ADC06BC0803E910508F467C0883E91054A
+:101B300008F4A4C09C01205F31092031310508F070
+:101B40005CC090650895853A910509F459C0863ABC
+:101B5000910509F458C083E890E40895883A910506
+:101B600009F454C0893A910509F453C08A3A9105A1
+:101B700009F452C08B3A910509F451C08C3A910591
+:101B800009F450C08D3A910509F44FC0803B91058E
+:101B900009F44EC08E3A910509F44DC08F3A910573
+:101BA00009F44CC0813B910509F44BC0823B91057F
+:101BB00009F44AC0833B910509F449C0843B91056F
+:101BC00009F448C0853B910509F447C0863B91055F
+:101BD00009F446C0873B910509F445C0883B91054F
+:101BE00009F444C0893B910509F443C08A3B91053F
+:101BF