diff options
author | Christopher Browne <cbbrowne@ca.afilias.info> | 2016-03-28 11:29:54 -0400 |
---|---|---|
committer | Christopher Browne <cbbrowne@ca.afilias.info> | 2016-03-28 11:29:54 -0400 |
commit | 95a88c09e18a7531a64838ceaa52df37bad8dc0d (patch) | |
tree | e108b87cbe318ff4824509be19209b010101d419 | |
parent | a4ff9f256738cf637553e7840d53f778d791fb6f (diff) | |
parent | 80eefb09ac5de95a6977702b4014d4b4d79a5d7d (diff) |
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
36 files changed, 3763 insertions, 1161 deletions
diff --git a/keyboard/Bantam44/Bantam44.c b/keyboard/Bantam44/Bantam44.c new file mode 100644 index 0000000000..ad91401eeb --- /dev/null +++ b/keyboard/Bantam44/Bantam44.c @@ -0,0 +1,25 @@ +#include "Bantam44.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +}
\ No newline at end of file diff --git a/keyboard/Bantam44/Bantam44.h b/keyboard/Bantam44/Bantam44.h new file mode 100644 index 0000000000..fa5b9df9e4 --- /dev/null +++ b/keyboard/Bantam44/Bantam44.h @@ -0,0 +1,29 @@ +#ifndef BANTAM44_H +#define BANTAM44_H + +#include "matrix.h" +#include "keymap_common.h" +#include "backlight.h" +#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, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, K2A }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, KC_NO, K33, KC_NO, K34, KC_NO, K35, K36, K37, K38 }, \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/Bantam44/Makefile b/keyboard/Bantam44/Makefile new file mode 100644 index 0000000000..e7dea9f602 --- /dev/null +++ b/keyboard/Bantam44/Makefile @@ -0,0 +1,139 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = Bantam44 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = Bantam44.c + +ifdef KEYMAP + SRC := keymaps/$(KEYMAP).c $(SRC) +else + SRC := keymaps/default.c $(SRC) +endif + +CONFIG_H = config.h + +# 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 +# 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 = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk + diff --git a/keyboard/Bantam44/README.md b/keyboard/Bantam44/README.md new file mode 100644 index 0000000000..cd059a66c9 --- /dev/null +++ b/keyboard/Bantam44/README.md @@ -0,0 +1,24 @@ +Bantam44 keyboard firmware +====================== + +## 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 keyboard/Bantam44 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`. + +### 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 `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|<name>] +``` +Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
\ No newline at end of file diff --git a/keyboard/Bantam44/config.h b/keyboard/Bantam44/config.h new file mode 100644 index 0000000000..26d680704d --- /dev/null +++ b/keyboard/Bantam44/config.h @@ -0,0 +1,81 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +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 <http://www.gnu.org/licenses/>. +*/ + +#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 Bantam Keyboards +#define PRODUCT Bantam44 +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#define COLS (int []){ B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 } +#define ROWS (int []){ F0, D6, D4, D5 } + +/* 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 DEBOUNCE 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)) \ +) + +/* + * 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/keyboard/Bantam44/keymaps/default.c b/keyboard/Bantam44/keymaps/default.c new file mode 100644 index 0000000000..17ade6241f --- /dev/null +++ b/keyboard/Bantam44/keymaps/default.c @@ -0,0 +1,30 @@ +#include "Bantam44.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Base */ + {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_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(1), KC_NO, KC_SPC, KC_NO, MO(2), KC_SCLN, KC_QUOT, KC_SLSH } + }, + [1] = { /* LOWER */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT }, + {KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_HOME, KC_PGUP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_END, KC_PGDN, KC_EXLM } + }, + [2] = { /* RAISE */ + {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT }, + {KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_UP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_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 +{ + return MACRO_NONE; +};
\ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/naps62/README.md b/keyboard/ergodox_ez/keymaps/naps62/README.md new file mode 100644 index 0000000000..14728e4cc4 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/naps62/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex new file mode 100644 index 0000000000..e5f213ba82 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex @@ -0,0 +1,1474 @@ +:100000000C9402070C9449070C9449070C94490777
+:100010000C9449070C9449070C9449070C94490720
+:100020000C9449070C9449070C9472120C944413D5
+:100030000C9449070C9449070C9449070C94490700
+:100040000C9449070C94082C0C9449070C9449070C
+:100050000C9449070C9401220C9449070C9449070D
+:100060000C9449070C9449070C9449070C944907D0
+:100070000C9449070C9449070C9449070C944907C0
+:100080000C9449070C9449070C9449070C944907B0
+:100090000C9449070C9449070C9449070C944907A0
+:1000A0000C9449070C9449070C944907B113D313D6
+:1000B000C614D313C61418143B14C6149014A314F6
+:1000C000F117F1172018201863189D18AA1AAA1AF8
+:1000D000B618AA1AAB19AB197E1AAA1AAA1A951A37
+:1000E0000000F0A12D002B002971E100C1000000EB
+:1000F0001E00140004001D003500E2001F001A005D
+:1001000016001B003400E000200008000700060075
+:1001100050002C0021001500090019004F82E30057
+:10012000220017000A00050000004A812C08015433
+:100130000000007F00004D8249000254000000775B
+:1001400000004B8223001C000B00110000004E81B8
+:10015000240018000D0010002F024C0025000C0098
+:100160000E00360030022C00260012000F0037006F
+:100170002F002800270013003300380030002A0029
+:100180002D00310034712D72C1000000010001000A
+:1001900001000100010000003A001E0220022202BC
+:1001A000010001003B001F022102230201000100A7
+:1001B0003C002F0226022F00010001003D0030020A
+:1001C00027023000010001003E00310235003502F7
+:1001D000000001000100010000000100000001001A
+:1001E0000100010000000100000001003F0052007A
+:1001F00051002402000001004000240021001E00E4
+:100200002E0001004100250022001F0037000100E0
+:1002100042002600230020002700010043002502A1
+:100220002E0231002D0001004400450001000100B4
+:100230000100000000500100010001000100000069
+:1002400001000100040801000100010001001A087A
+:10025000160801000100F500010008080708010068
+:100260000100F4000100F400F100010001000100B0
+:1002700001001708F3000100000001000100010067
+:100280000000010000000100010001000000010069
+:100290000000010001000100F20001000000010067
+:1002A0000100F400F100AA00AE0001000100F50019
+:1002B000F000A900AC00B70001000100F300A800A5
+:1002C000AB00B600010001000100010001000100C7
+:1002D0000100010001000100010000000A002530BA
+:1002E000313662003A200025303258000A722F63FE
+:1002F0002030313233343536373839414243444582
+:10030000460A000A002530325800626F756E636538
+:10031000213A20006C6566742073696465206174FD
+:100320007461636865640A006C656674207369644F
+:1003300065206E6F7420726573706F6E64696E678E
+:100340000A00747279696E6720746F207265736534
+:1003500074206D637032333031380A000A444542EC
+:1003600055473A20656E61626C65642E0A005B73C6
+:100370005D004B6579626F617264207374617274A1
+:100380002E0A005B575D005B535D005B525D005BB6
+:10039000445D005B435D0016034500720067006F1B
+:1003A0000044006F007800200045005A000000164D
+:1003B000034500720067006F0044006F0078002062
+:1003C0000045005A0000000403090409028D0005DD
+:1003D0000100A0FA09040000010301010009211134
+:1003E000010001223F000705810308000A090401FA
+:1003F000000103010200092111010001224D000743
+:1004000005820308000A0904020001030000000934
+:1004100021110100012236000705830308000A09A3
+:100420000403000203000000092111010001222041
+:1004300000070584032000010705040320000109CB
+:100440000404000103000000092111010001223908
+:1004500000070585031000011201100100000008CB
+:10046000EDFE071301000102000105010906A101CB
+:10047000050719E029E71500250195087501810296
+:100480000508190129059505750191029501750366
+:100490009101050719002977150025019578750147
+:1004A0008102C00631FF0974A1010975150025FFFD
+:1004B0009520750881020976150025FF952075089D
+:1004C0009102C005010980A101850216010026B72D
+:1004D000001A01002AB700751095018100C0050CB3
+:1004E0000901A1018503160100269C021A01002AB8
+:1004F0009C02751095018100C005010902A1010946
+:1005000001A10005091901290515002501950575A9
+:100510000181029501750381010501093009311539
+:1005200081257F95027508810609381581257F95FB
+:100530000175088106050C0A38021581257F950191
+:1005400075088106C0C005010906A101050719E06B
+:1005500029E71500250195087501810295017508A7
+:10056000810105081901290595057501910295017B
+:10057000750391010507190029FF150025FF950650
+:1005800075088100C00A002530325820006B65795B
+:10059000626F6172645F7265706F72743A20000AF4
+:1005A0000025303258006B6579626F6172645F7349
+:1005B00065745F6C65643A200064656C5F6B657997
+:1005C0005F6269743A2063616E27742064656C3AD7
+:1005D00020253032580A006164645F6B65795F6280
+:1005E00069743A2063616E2774206164643A20253F
+:1005F0003032580A00646F6E652E0A00626F6F67B2
+:100600006D61676963207363616E3A202E2E2E2020
+:1006100000290A002575002F002575005D2800259A
+:10062000640020002564002000256400200025646B
+:10063000007C0025303258006D6F7573656B6579ED
+:10064000205B62746E7C782079207620685D287249
+:1006500065702F61636C293A205B006D6B5F776872
+:1006600065656C5F74696D655F746F5F6D6178203F
+:100670003D2025640A006D6B5F776865656C5F6D72
+:1006800061785F7370656564203D2025640A006DA4
+:100690006B5F74696D655F746F5F6D6178203D207D
+:1006A00025640A006D6B5F6D61785F7370656564CA
+:1006B000203D2025640A006D6B5F696E746572765B
+:1006C000616C203D2025640A006D6B5F64656C6180
+:1006D00079203D2025640A006D6B5F776865656C45
+:1006E0005F74696D655F746F5F6D6178203D202573
+:1006F000640A006D6B5F776865656C5F6D61785F3C
+:100700007370656564203D2025640A006D6B5F741D
+:10071000696D655F746F5F6D6178203D2025640AA7
+:10072000006D6B5F6D61785F7370656564203D205F
+:1007300025640A006D6B5F696E74657276616C206A
+:100740003D2025640A006D6B5F64656C6179203D16
+:100750002025640A000A00257500363A207768656E
+:10076000656C5F74696D655F746F5F6D61783A2069
+:10077000000A00257500353A20776865656C5F6D65
+:1007800061785F73706565643A20000A0025750022
+:10079000343A2074696D655F746F5F6D61783A20DB
+:1007A000000A00257500333A206D61785F7370652B
+:1007B00065643A20000A00257500323A20696E749B
+:1007C000657276616C286D73293A20000A002575E0
+:1007D00000313A2064656C6179282A31306D7329C3
+:1007E0003A20000A092D2056616C756573202D0A88
+:1007F000004D3E004D25643E20003F00736574208F
+:1008000064656661756C740A00433E200077686514
+:1008100072652064656C74613A20637572736F72DF
+:100820003D25642C20776865656C3D25640A536519
+:100830006520687474703A2F2F656E2E77696B6926
+:1008400070656469612E6F72672F77696B692F4DD0
+:100850006F7573655F6B6579730A000A092D204D0A
+:100860006F7573656B6579202D0A4553432F713A77
+:1008700009717569740A313A0964656C6179282ACD
+:1008800031306D73290A323A09696E746572766186
+:100890006C286D73290A333A096D61785F7370654E
+:1008A00065640A343A0974696D655F746F5F6D61E0
+:1008B000780A353A09776865656C5F6D61785F73B2
+:1008C000706565640A363A09776865656C5F7469B6
+:1008D0006D655F746F5F6D61780A0A703A097072B6
+:1008E000696E742076616C7565730A643A09736584
+:1008F000742064656661756C74730A75703A092BAF
+:10090000310A646F776E3A092D310A706775703A53
+:10091000092B31300A7067646F776E3A092D3130D8
+:100920000A0A7370656564203D2064656C746120FB
+:100930002A206D61785F7370656564202A202872B3
+:100940006570656174202F2074696D655F746F5FD9
+:100950006D6178290A003F004D3E2000433E200093
+:100960004C25640A000A092D20436F6E736F6C6575
+:10097000202D0A4553432F713A09717569740A6D28
+:100980003A096D6F7573656B65790A000A092D2048
+:100990004D61676963202D0A643A09646562756771
+:1009A0000A783A096465627567206D6174726978C6
+:1009B0000A6B3A096465627567206B6579626F61DD
+:1009C00072640A6D3A096465627567206D6F7573AC
+:1009D000650A763A0976657273696F6E0A733A0929
+:1009E0007374617475730A633A09636F6E736F6C25
+:1009F00065206D6F64650A302D343A096C61796544
+:100A000072302D34284631302D4634290A50617514
+:100A1000733A09626F6F746C6F616465720A653A4C
+:100A200009656570726F6D0A6E3A094E4B524F0A36
+:100A30007A3A09736C656570204C4544207465737F
+:100A4000740A000A002575002E6E6B726F3A200042
+:100A50000A002575002E737761705F6261636B73A6
+:100A60006C6173685F6261636B73706163653A2088
+:100A7000000A002575002E737761705F67726176DA
+:100A8000655F6573633A20000A002575002E6E6F5E
+:100A90005F6775693A20000A002575002E7377613B
+:100AA000705F72616C745F726775693A20000A004A
+:100AB0002575002E737761705F6C616C745F6C6775
+:100AC00075693A20000A002575002E636170736C09
+:100AD0006F636B5F746F5F636F6E74726F6C3A20DD
+:100AE000000A002575002E737761705F636F6E7466
+:100AF000726F6C5F636170736C6F636B3A20000A96
+:100B00000025303258006B65796D61705F636F6EE0
+:100B10006669672E7261773A20000A002575002EFB
+:100B20006D6F7573653A20000A002575002E6B65A0
+:100B300079626F6172643A20000A002575002E6D9B
+:100B400061747269783A20000A002575002E656E7E
+:100B500061626C653A20000A0025303258006465F5
+:100B60006275675F636F6E6669672E7261773A20A0
+:100B7000000A0025750064656661756C745F6C61C0
+:100B80007965723A20003F004E4B524F3A206F6613
+:100B9000660A004E4B524F3A206F6E0A0074696D20
+:100BA00065725F636F756E743A202530346C580A35
+:100BB000006B6579626F6172645F6E6B726F3A2071
+:100BC00025580A006B6579626F6172645F69646CB5
+:100BD000653A2025580A006B6579626F6172645F1F
+:100BE00070726F746F636F6C3A2025580A00686FDB
+:100BF00073745F6B6579626F6172645F6C65647357
+:100C000028293A2025580A000A092D2053746174B6
+:100C10007573202D0A004743433A20352E332E307A
+:100C2000204156522D4C4942433A20312E382E3124
+:100C300073766E204156525F415243483A206176A6
+:100C400072350A004F5054494F4E533A204C554686
+:100C50004120424F4F544D41474943204D4F55533A
+:100C6000454B45592045585452414B455920434F17
+:100C70004E534F4C4520434F4D4D414E44204E4B1B
+:100C8000524F203531320A004255494C443A203601
+:100C9000386366663764202832323A33323A303568
+:100CA000204A616E2033302032303136290A005616
+:100CB00049443A20307846454544284572676F4498
+:100CC0006F7820455A29205049443A2030783133F2
+:100CD0003037284572676F446F7820455A2920566F
+:100CE00045523A203078303030310A004445534381
+:100CF0003A20742E6D2E6B2E206B6579626F6172B7
+:100D000064206669726D7761726520666F72204536
+:100D100072676F646F780A000A092D205665727336
+:100D2000696F6E202D0A000A6D6F7573653A206F2A
+:100D300066660A000A6D6F7573653A206F6E0A0069
+:100D40000A6B6579626F6172643A206F66660A00A9
+:100D50000A6B6579626F6172643A206F6E0A000AED
+:100D60006D61747269783A206F66660A000A6D6177
+:100D7000747269783A206F6E0A000A64656275675A
+:100D80003A206F6E0A000A64656275673A206F66E2
+:100D9000660A000A0A626F6F746C6F616465722E76
+:100DA0002E2E2000433E20006565636F6E666967E6
+:100DB0003A0A00536C656570204C45442074657395
+:100DC000740A0000000000000000000000000102A2
+:100DD00004060A0F17202C3A4A5D71879DB3C7DAC3
+:100DE000E9F5FCFFFCF5E9DAC7B39D87715D4A3A86
+:100DF0002C20170F0A06040201000000000000006A
+:100E00000000000011241FBECFEFDAE0DEBFCDBF2F
+:100E100004B603FE27C08091F8019091F901A091DA
+:100E2000FA01B091FB018730904BA740B04BD1F451
+:100E30001092F8011092F9011092FA011092FB0140
+:100E400014BE84B7877F84BF0FB6F894A8958091AD
+:100E50006000886180936000109260000FBEE0E047
+:100E6000FFE3099511E0A0E0B1E0EAECFBE502C088
+:100E700005900D92AA33B107D9F721E0AAE3B1E0BA
+:100E800001C01D92A83FB207E1F70E94AD0F0C947C
+:100E9000E32D0C940000FF93EF93E0913A01F09161
+:100EA0003B01309709F00995EF91FF910895FC01FE
+:100EB0008591803011F0EFDFFBCF0895FF27E0E24E
+:100EC00030E247FF0CC0419597FF09C0EDE2609505
+:100ED000709580959095611D711D811D911D27FF55
+:100EE00002C0219530E350E2AA27660F771F881FC2
+:100EF000991FAA1FA41710F0A41B63955A95A9F770
+:100F0000AA3008F0A95FA05DAF93F3956115710554
+:100F10008105910541F7ED3211F4EF93F395F21746
+:100F200018F43F93F395FBCF8F91B5DFFA95E1F776
+:100F30000895E991F9918591803021F0853219F079
+:100F4000AADFF9CF089520E0E89455915532C1F316
+:100F5000503311F4689455915A3348F4505390F338
+:100F6000220F022E220F220F200D250FF4CF0EF498
+:100F7000219589919991533619F3533729F15335B6
+:100F800059F1BC0188279927E8945C3621F48991AE
+:100F9000999168945591543639F446EF7EF077FF75
+:100FA0000DC08FEF9FEF0AC055374AE039F0583532
+:100FB00040E121F0523642E009F00895FF93EF93AB
+:100FC0007DDFEF91FF91B7CFFF93EF93FC0181910C
+:100FD0008030B9F360DFFBCFFF93EF9368DFF1CF91
+:100FE000DF93CF93CDB7DEB72596A3DFCF91DF9107
+:100FF000089561110BC0FC018281882321F085EEE8
+:101000000E948B1603C085EE0E94531780E090E08B
+:10101000089508956091BC017091BD018091BE0159
+:101020009091BF010E94022156985E9825982D98B4
+:1010300026982E9827982F98813019F0823021F029
+:101040000895259A2D9A0895269A2E9A08958AE051
+:1010500098E0892B11F00E940A0880E090E0089542
+:1010600056985E9825982D9826982E9827982F9810
+:101070008FEF90E0909389008093880090938B008D
+:1010800080938A0090938D0080938C00259A2D9AEE
+:101090002FEF80E792E0215080409040E1F700C0C0
+:1010A0000000269A2E9A2FEF80E792E02150804090
+:1010B0009040E1F700C00000279A2F9A2FEF80E7B9
+:1010C00092E0215080409040E1F700C00000259858
+:1010D0002D982FEF80E792E0215080409040E1F77B
+:1010E00000C0000026982E982FEF80E792E0215054
+:1010F00080409040E1F700C0000027982F98569854
+:101100005E9825982D9826982E9827982F980895C0
+:1011100089EA8093800089E08093810024982C984C
+:101120003F988AB18F748AB96E98479A8BB1806B59
+:101130008BB9769A0E94300889E098E0892B11F0EB
+:101140000E94090880E090E0089580E28093000109
+:1011500080913C0181110EC00E94F40881E08093CF
+:101160003C012FEF83ED90E3215080409040E1F768
+:1011700000C0000080E40E94FA0880930001811101
+:101180002EC00E94240980930001811128C00E9472
+:10119000240980930001811122C08FE30E94240959
+:1011A0008093000181111BC00E941C0980E40E94F1
+:1011B000FA0880930001811112C08CE00E9424097A
+:1011C0008093000181110BC00E94240980930001CB
+:1011D000811105C08FE30E942409809300010E94C1
+:1011E0001C098091000108951092B9008AE0809353
+:1011F000B800089594EA9093BC009091BC0097FFCA
+:10120000FCCF9091B900987F983021F0903111F087
+:1012100081E008958093BB0084E88093BC008091B6
+:10122000BC0087FFFCCF8091B900887F883111F026
+:10123000803471F780E0089584E98093BC00809148
+:10124000BC0084FDFCCF08958093BB0084E88093AC
+:10125000BC008091BC0087F |