summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Browne <cbbrowne@ca.afilias.info>2016-03-28 11:29:54 -0400
committerChristopher Browne <cbbrowne@ca.afilias.info>2016-03-28 11:29:54 -0400
commit95a88c09e18a7531a64838ceaa52df37bad8dc0d (patch)
treee108b87cbe318ff4824509be19209b010101d419
parenta4ff9f256738cf637553e7840d53f778d791fb6f (diff)
parent80eefb09ac5de95a6977702b4014d4b4d79a5d7d (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
-rw-r--r--keyboard/Bantam44/Bantam44.c25
-rw-r--r--keyboard/Bantam44/Bantam44.h29
-rw-r--r--keyboard/Bantam44/Makefile139
-rw-r--r--keyboard/Bantam44/README.md24
-rw-r--r--keyboard/Bantam44/config.h81
-rw-r--r--keyboard/Bantam44/keymaps/default.c30
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/README.md29
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex1474
-rw-r--r--keyboard/ergodox_ez/keymaps/naps62/keymap.c187
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/keymap.c126
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.pngbin0 -> 95077 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.pngbin0 -> 108774 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.pngbin0 -> 93001 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex2162
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.pngbin93556 -> 0 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/readme.md10
-rw-r--r--keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md6
-rw-r--r--keyboard/planck/keymaps/default/keymap.c70
-rw-r--r--keyboard/retro_refit/Makefile139
-rw-r--r--keyboard/retro_refit/README.md24
-rw-r--r--keyboard/retro_refit/config.h79
-rw-r--r--keyboard/retro_refit/keymaps/default.c33
-rw-r--r--keyboard/retro_refit/retro_refit.c68
-rw-r--r--keyboard/retro_refit/retro_refit.h45
-rw-r--r--quantum/led.c9
-rw-r--r--quantum/template/template.c23
-rw-r--r--quantum/template/template.h1
m---------teensy-sdk0
-rw-r--r--tmk_core/common/action.c5
-rw-r--r--tmk_core/common/action_macro.c4
-rw-r--r--tmk_core/common/action_util.c9
-rw-r--r--tmk_core/common/action_util.h7
-rw-r--r--tmk_core/common/led.h5
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
+:10125000BC008091BC0087FFFCCF9091B900987FC3
+:1012600081E0983209F480E0089584E88093BC001E
+:101270008091BC0087FFFCCF8091BB0008958091D6
+:101280000001811115C080E40E94FA0880930001DA
+:1012900081110CC082E10E94240980930001811118
+:1012A00005C08FEF0E942409809300010E941C0951
+:1012B00084B1807F84B985B1807F85B98AB1837F0D
+:1012C0008AB98BB1837F8BB93E98469808950E9466
+:1012D000A508809300010E943F0980B38C7080BBF9
+:1012E00081B3836F81BBECE4F1E0AEE3B1E0119236
+:1012F0001D9281E0EA35F807D1F788E898E0892B5C
+:1013000011F00C94880808957F928F929F92AF926B
+:10131000BF92CF92DF92EF92FF920F931F93CF93E2
+:10132000DF93809100018823E1F080913D018F5F80
+:1013300080933D01811115C082E493E00E9457071C
+:101340000E94A50880930001882329F088E293E099
+:101350000E94570706C084E193E00E9457070E944D
+:1013600030088EE3E82E81E0F82E8701C0E0D0E05F
+:101370009924939492E0892EAA24A394B12C35E069
+:10138000C32E33E0D32EC730D10500F58091000184
+:10139000811164C080E40E94FA08809300018111E9
+:1013A00012C082E10E9424098093000181110BC0C8
+:1013B000C5010C2E01C0880F0A94EAF780950E949F
+:1013C0002409809300010E941C0948C0CA30A1F082
+:1013D00028F4C83059F0C93061F005C0CC3089F02C
+:1013E00070F0CD3089F0209A289810C0219A299861
+:1013F0000DC0229A2A980AC0239A2B9807C0529AA5
+:1014000001C0539A5B9802C03E9A4698E0EAEA957A
+:10141000F1F78FB181708925799902C032E001C05E
+:1014200030E0832B7C9902C034E001C030E0832B94
+:101430007D9902C028E001C020E0822B7E9902C085
+:1014400090E101C090E0892B9FB19095991F992759
+:10145000991F9295990F907E892B10C08091000161
+:10146000811175C080E40E94FA08809300018823EE
+:1014700009F45AC0712C0E941C09872DD8019C9137
+:10148000981739F18C9380910101882301F18091A3
+:10149000D70180FF04C08AE093E00E945707809143
+:1014A000D70180FF0CC0809101011F928F93DF92C2
+:1014B000CF920E94F0070F900F900F900F908091A5
+:1014C000D70180FF04C083E093E00E945707809219
+:1014D00001010E943F0921960F5F1F4FCE30D105B9
+:1014E00009F051CF809101018823B9F08150809398
+:1014F0000101882339F0EFE9FFE03197F1F700C0EF
+:1015000000000BC0ECE4F1E0D7018D917D018193E7
+:10151000BCE4EB16B1E0FB06B9F787E298E0892B53
+:10152000C1F00E94270815C083E10E94240980931E
+:10153000000181119FCF81E40E94FA08809300018D
+:10154000811198CF0E943509782E709494CF80E055
+:1015500095CF81E0DF91CF911F910F91FF90EF9098
+:10156000DF90CF90BF90AF909F908F907F90089525
+:10157000E82FF0E0E45BFE4F80810895CF92DF9288
+:10158000EF92FF920F931F93CF93DF938CEE92E035
+:101590000E9457078CE4E82E81E0F82EC0E0D0E0EE
+:1015A00097EEC92E92E0D92E0EED12E0DF93CF9385
+:1015B000DF92CF920E94F00784EE92E00E945707DC
+:1015C000F70181917F0190E00E9464219F938F93A6
+:1015D0001F930F930E94F0078CED92E00E94570733
+:1015E00021968DB79EB708960FB6F8949EBF0FBE92
+:1015F0008DBFCE30D105D1F6DF91CF911F910F91E4
+:10160000FF90EF90DF90CF9008958B3B910580F491
+:10161000883A910548F5853A9105D8F484309105CA
+:1016200008F0B2C0019709F06EC081E090E0089523
+:10163000803E910508F467C0883E910508F4A4C077
+:101640009C01205F31092031310508F05CC09065B4
+:101650000895853A910509F459C0863A910509F033
+:1016600058C082E890E40895883A910509F454C07E
+:10167000893A910509F453C08A3A910509F452C098
+:101680008B3A910509F451C08C3A910509F450C088
+:101690008D3A910509F44FC0803B910509F44EC085
+:1016A0008E3A910509F44DC08F3A910509F44CC06A
+:1016B000813B910509F44BC0823B910509F44AC076
+:1016C000833B910509F449C0843B910509F448C066
+:1016D000853B910509F447C0863B910509F446C056
+:1016E000873B910509F445C0883B910509F444C046
+:1016F000893B910509F443C08A3B910509F442C036
+:1017000080E094E4089580E090E0089581E890E41A
+:10171000089583E890E4089582EE94E4089589EEB4
+:1017200094E408958AEE94E4089585EB94E4089592
+:1017300086EB94E4089587EB94E408958CEC94E4AC
+:1017400008958DEC94E4089583E895E408958AE87B
+:1017500095E4089582E995E4089584E995E408956F
+:1017600081E296E4089583E296E4089584E296E4A3
+:10177000089585E296E4089586E296E4089587E266
+:1017800096E408958AE296E40895089524E5829FF8
+:10179000C0011124FC0126E0729FE00DF11D11240F
+:1017A000E60FF11DEE0FFF1FEC51FF4F8591949155
+:1017B0000895880F991FFC01E05AF040859194919B
+:1017C0000895880F991FFC01E052FF4F8591949175
+:1017D000089524E5829FC0011124FC0146E0749F16
+:1017E000E00DF11D1124E60FF11DEE0FFF1FEC516E
+:1017F000FF4F859194919C013A9521154FE1340753
+:1018000008F429C13F512115304120F49F700E94F6
+:10181000E10B08959C0130532115304118F49927AC
+:10182000906C0895811520E5920769F40E94CC1A06
+:101830004FEF84E39CE0415080409040E1F700C0CE
+:1018400000000C942622813020E5920751F48CE5AB
+:1018500093E00E9457078091D70181608093D70160
+:1018600008959C0130552115304108F05CC0292FA6
+:1018700033272F70332721303105E9F4AC0164E0C0
+:10188000440F551F6A95E1F744275370BC016370FC
+:10189000772702C0220F331F6A95E2F73C68242B9A
+:1018A000352B73E0880F991F7A95E1F78076992799
+:1018B000822B932B08952230310529F4982F882705
+:1018C000816F906A089523303105A1F4AC0133E0B3
+:1018D000440F551F3A95E1F7407E57708370992762
+:1018E00021E030E002C0220F331F8A95E2F7C901E0
+:1018F0009C6816C02430310531F5AC0123E0440F5B
+:10190000551F2A95E1F7407E57708370992721E093
+:1019100030E002C0220F331F8A95E2F7C9019A68AE
+:10192000842B952B08959C0130572115304118F4D4
+:101930009F70906208959C0130582115304118F431
+:101940009F70906A0895803E9105E0F4803C910577
+:1019500058F58133910509F46FC048F48932910537
+:1019600009F463C08A32910509F46DC072C08933ED
+:101970009105E9F082389105D1F08533910509F49C
+:101980004DC067C0833E910581F138F4803E9105DA
+:10199000B9F0823E9105D9F05CC0863E910561F1B7
+:1019A000873E9105A1F155C00E94D90B0895209161
+:1019B000E90120FD02C021FF4CC080EE90E049C04B
+:1019C0008091E90180FFF9CF89E390E042C08091E6
+:1019D000E90182FF0EC08091E90184FF03C080E02D
+:1019E00090E037C083EE90E034C08091E90182FF3F
+:1019F000F2CF82EE90E02DC08091E90183FF0BC011
+:101A00008091E90184FDEBCF87EE90E022C08091C8
+:101A1000E90183FFF5CF86EE90E01BC08091E901DC
+:101A200085FF07C089E290E014C08091E90185FF3D
+:101A3000F9CF85E390E00DC08091E90186FF07C0F2
+:101A40008AE290E006C08091E90186FFF9CF81E348
+:101A500090E00E94050B0895089580916D0108950E
+:101A60009FB7F89410925C019FBF9091EF01943062
+:101A700009F057C09091E9009F703091EC00232F3E
+:101A8000217030FD20E8922B24E02093E900209182
+:101A9000EB0020FF43C02091EE0027FF3FC02091C4
+:101AA0005A01222321F02091E80025FF37C010922F
+:101AB0005A0126E03091E80035FD15C03091EF0164
+:101AC000343061F53091EB0035FD28C0215021F410
+:101AD00081E080935A0122C0EFE9FFE03197F1F7EE
+:101AE00000C00000E7CF8093F1008091E80085FD01
+:101AF0000AC08091E80080FFFCCF8091E8008E77DB
+:101B00008093E80006C08FB7F89421E020935C0131
+:101B10008FBF9F709093E90080E008959F7090932D
+:101B2000E9008FEF0895CF93DF9300D01F92CDB7D8
+:101B3000DEB79C018091EF01843019F593E0998321
+:101B40003B832A839093E9008FEF9091E8008150C6
+:101B500095FD06C095ED9A95F1F700008111F5CF3E
+:101B60008091E80085FF0DC040E050E063E070E048
+:101B7000CE0101960E9466108091E8008E778093D6
+:101B8000E8000F900F900F90DF91CF910895CF93C1
+:101B9000DF9300D01F92CDB7DEB72091EF01243044
+:101BA00021F522E029839B838A8383E08093E900E7
+:101BB0008FEF9091E800815095FD06C095ED9A95C4
+:101BC000F1F700008111F5CF8091E80085FF0DC08D
+:101BD00040E050E063E070E0CE0101960E946610A4
+:101BE0008091E8008E778093E8000F900F900F901F
+:101BF000DF91CF9108959C018091EF018430F9F439
+:101C000082E08093E9009FEF8091E800915085FD8C
+:101C100006C085ED8A95F1F700009111F5CF80910E
+:101C2000E80085FF0CC040E050E065E070E0C901CD
+:101C30000E9466108091E8008E778093E8000895F6
+:101C4000CF93DF93EC018091EF01843009F047C01E
+:101C500080910C018823E1F080910D018823C1F06F
+:101C600085E08093E9008FEF9091E800815095FD29
+:101C700006C095E19A95F1F700008111F5CF8091AA
+:101C8000E80085FF2CC040E050E060E170E017C044
+:101C900081E08093E9008FEF9091E800815095FDFD
+:101CA00006C095ED9A95F1F700008111F5CF80916E
+:101CB000E80085FF14C040E050E068E070E0CE012D
+:101CC0000E9466108091E8008E778093E80080E1A2
+:101CD000FE01ADE5B1E001900D928A95E1F7DF914B
+:101CE000CF91089583E993E00E9457078091EE0118
+:101CF000811109C00E94F7110E9454128091E200E4
+:101D000084608093E20008958FE893E00E94570773
+:101D10001092EE0108958BE893E00C94570787E842
+:101D200093E00E9457070C94F52B83E893E00E9400
+:101D300057070E94BC210E94FB2B0E94FE140C94AA
+:101D40002C0D20915B012F5F822F62E30E94782D82
+:101D5000992319F020935B01089510925B01809103
+:101D60005C01882371F18091EF01843041F580910D
+:101D7000E9008F702091EC00922F917020FD90E887
+:101D8000892B94E09093E9009091EB0090FF14C0B0
+:101D90009091EE0097FF10C09091E80095FF03C06E
+:101DA0001092F100F9CF9091E80090FF05C090915A
+:101DB000E8009E779093E8008F708093E90010927E
+:101DC0005C01089542E061EC81E00E94701142E004
+:101DD00061EC82E00E94701142E061EC83E00E94BD
+:101DE000701142E261EC84E00E94701142E161EC0A
+:101DF00085E00C9470118091F101833009F455C095
+:101E000030F4813071F0823009F48EC008958A3048
+:101E100009F47AC08B3009F460C0893009F09CC0A5
+:101E200020C08091F001813A09F096C08091E800CD
+:101E3000877F8093E8008091F4019091F501892BD0
+:101E400021F460E18DE591E003C060E080E090E086
+:101E500070E00E94B1108091E8008B778093E800D9
+:101E600008958091F001813209F076C08091F401EB
+:101E70009091F501009719F0049709F06DC08091D9
+:101E8000E800877F8093E8008091E80082FD05C02C
+:101E90008091EF018111F8CF5FC08091F1008093B4
+:101EA0006D018091E8008B7753C08091F001813AF9
+:101EB00009F052C08091F4019091F501892B09F04D
+:101EC0004BC08091E800877F8093E8008091E80014
+:101ED00080FFFCCF80910C0136C08091F0018132EF
+:101EE000D9F58091F4019091F501892BA9F58091A4
+:101EF000E800877F8093E8000E94A5118091F2019D
+:101F000080930C010C94CC1A8091F001813221F560
+:101F10008091E800877F8093E8000E94A51180915E
+:101F2000F30180936E0108958091F001813AA1F44C
+:101F30008091E800877F8093E8008091E80080FF2F
+:101F4000FCCF80916E018093F1008091E8008E7744
+:101F50008093E8000C94A511089584B7877F84BF0F
+:101F60000FB6F894A8958091600088618093600016
+:101F7000109260000FBE90E080E80FB6F894809356
+:101F80006100909361000FBE0E948A150E94F711B4
+:101F90000E9454128091E20084608093E20080E30A
+:101FA0009DE00E94FD2078940E94DE140E948C1512
+:101FB00082E091E00E94F9140E94E32B82E793E013
+:101FC0000E9457078091EF01853089F48EE693E0F7
+:101FD0000E9457070E947E218091ED01882391F392
+:101FE0000E94A821882371F30E945010EBCF0E9419
+:101FF000BA15E8CF292F332723303105C9F060F413
+:102000002130310581F02230310509F041C08DE8E1
+:1020100090E02BEC33E040C021323105E1F0223278
+:10202000310531F135C082E190E028E534E034C07B
+:1020300099278130910549F028F0029749F5E7E9A1
+:10204000F3E005C0E7ECF3E002C0EFEAF3E08491CF
+:1020500090E09F0121C06530D8F4E62FF0E0EE0F4C
+:10206000FF1FEB5DFE4F2081318189E090E014C0BD
+:10207000653070F470E0FB01EE0FFF1FE55EFE4F70
+:1020800020813181FB01EA5EFE4F808190E004C037
+:1020900080E090E020E030E0FA0131832083089571
+:1020A00080E189BD82E189BD09B400FEFDCF809148
+:1020B000D8008F7D8093D8008091E000826080936B
+:1020C000E0008091E00081FDFCCF0895CF92DF9287
+:1020D000EF92FF920F931F93CF93DF93EC018B014D
+:1020E0006A010E94C411811133C0C114D10439F0B6
+:1020F000F60180819181081B190BC80FD91FE12CB3
+:10210000F12C0115110519F18091E80085FD16C02B
+:102110008091E8008E778093E800C114D10449F0E3
+:10212000F60180819181E80EF91EF182E08285E05E
+:102130000FC00E94C411882321F30AC089918093A3
+:10214000F10001501109FFEFEF1AFF0ADACF80E02A
+:10215000DF91CF911F910F91FF90EF90DF90CF9083
+:1021600008952091F6013091F7012617370748F0BE
+:102170006115710539F42091E8002E772093E8006D
+:1021800001C0B901FC0120E06115710579F1809170
+:10219000EF018823F1F18530F1F18091E80083FDB2
+:1021A0003CC08091E80082FD2EC08091E80080FF55
+:1021B000EBCF2091F3008091F20090E0922B61151B
+:1021C000710551F08830910538F421912093F10088
+:1021D000615071090196F3CF21E0089709F020E0E2
+:1021E0008091E8008E778093E800CECF2111CFCF89
+:1021F0000AC08091EF01882361F0853061F0809101
+:10220000E80083FD0AC08091E80082FFF2CF80E001
+:10221000089582E0089583E0089581E00895209173
+:10222000F6013091F7012617370748F0611571055F
+:1022300039F42091E8002E772093E80001C0B9011D
+:10224000FC0120E06115710591F18091EF01882377
+:1022500009F440C0853009F43FC08091E80083FD57
+:102260003DC08091E80082FD2FC08091E80080FF92
+:10227000E9CF2091F3008091F20090E0922B61155C
+:10228000710559F08830910540F424912093F100B4
+:102290003196615071090196F2CF21E0089709F05B
+:1022A00020E08091E8008E778093E800CBCF211169
+:1022B000CCCF0AC08091EF01882361F0853061F0B6
+:1022C0008091E80083FD0AC08091E80082FFF2CF90
+:1022D00080E0089582E0089583E0089581E0089504
+:1022E000982F973068F59093E900981739F070911E
+:1022F000EC002091ED005091F00003C0242F762FC8
+:1023000050E021FD02C09F5FECCF3091EB003E7F9B
+:102310003093EB003091ED003D7F3093ED00309134
+:10232000EB0031603093EB007093EC002093ED00F4
+:102330005093F0002091EE0027FDE5CF80E0089556
+:102340008F708093E90081E008958091F00187FF0C
+:1023500011C08091E80082FD05C08091EF018111DC
+:10236000F8CF11C08091E8008B770BC08091EF010E
+:10237000882349F08091E80080FFF8CF8091E80041
+:102380008E778093E80008952091E4003091E50075
+:1023900095E64091EC00842F817040FF23C080912E
+:1023A000E80080FD1DC08091EF01882399F0853001
+:1023B00099F08091EB0085FD11C04091E4005091AF
+:1023C000E5002417350729F3915011F09A01E1CF68
+:1023D00084E0089582E0089583E0089581E00895FF
+:1023E00080E008954091E80042FFDDCF08950E940B
+:1023F00065120E946D12E0EEF0E0808181608083C2
+:10240000E8EDF0E080818F77808319BCA7EDB0E024
+:102410008C918E7F8C9380818F7E80831092EE01D1
+:1024200008950F931F93CF93DF930E9465120E942C
+:102430006D12C8EDD0E088818F77888388818068AD
+:10244000888388818F7D888319BC1092EF01109258
+:10245000EB011092ED011092EC0100EE10E0F8019A
+:1024600080818B7F808388818160888342E060E007
+:1024700080E00E947011E1EEF0E080818E7F808329
+:10248000E2EEF0E0808181608083808188608083DB
+:10249000F80180818E7F8083888180618883DF91CD
+:1024A000CF911F910F910895E8EDF0E080818F7E2C
+:1024B0008083E7EDF0E080818160808384E082BFEB
+:1024C00081E08093EE010C941112E8EDF0E0808140
+:1024D0008E7F80831092E20008951092DA001092AD
+:1024E000E10008951F920F920FB60F9211242F93BF
+:1024F0003F934F935F936F937F938F939F93AF938C
+:10250000BF93EF93FF938091E10082FF0BC0809116
+:10251000E20082FF07C08091E1008B7F8093E100A1
+:102520000E94A10E8091DA0080FF1FC08091D80028
+:1025300080FF1BC08091DA008E7F8093DA0080914B
+:10254000D90080FF0DC080E189BD82E189BD09B459
+:1025500000FEFDCF81E08093EF010E94720E05C066
+:1025600019BC1092EF010E94840E8091E10080FF5F
+:1025700019C08091E20080FF15C08091E2008E7F3B
+:102580008093E2008091E20080618093E20080917C
+:10259000D80080628093D80019BC85E08093EF0159
+:1025A0000E948F0E8091E10084FF30C08091E20094
+:1025B00084FF2CC080E189BD82E189BD09B400FEA1
+:1025C000FDCF8091D8008F7D8093D8008091E1006D
+:1025D0008F7E8093E1008091E2008F7E8093E20005
+:1025E0008091E20081608093E2008091EB0188237A
+:1025F00011F084E007C08091E30087FD02C081E014
+:1026000001C083E08093EF010E94950E8091E1006C
+:1026100083FF29C08091E20083FF25C08091E10003
+:10262000877F8093E10082E08093EF011092EB01BD
+:102630008091E1008E7F8093E1008091E2008E7FA7
+:102640008093E2008091E20080618093E20042E0AA
+:1026500060E080E00E9470118091F00088608093BB
+:10266000F0000E948B0EFF91EF91BF91AF919F916F
+:102670008F917F916F915F914F913F912F910F902B
+:102680000FBE0F901F9018951F920F920FB60F92CA
+:1026900011242F933F934F935F936F937F938F9367
+:1026A0009F93AF93BF93CF93DF93EF93FF93C0912B
+:1026B000E900CF708091EC00D82FD17080FDD0E878
+:1026C0001092E9008091F000877F8093F000789469
+:1026D0000E9488131092E9008091F0008860809336
+:1026E000F000CD2BCF70C093E900FF91EF91DF9107
+:1026F000CF91BF91AF919F918F917F916F915F919A
+:102700004F913F912F910F900FBE0F901F901895F2
+:102710001F93CF93DF93CDB7DEB7AA970FB6F89488
+:10272000DEBF0FBECDBFE0EFF1E08091F1008193FD
+:1027300021E0E83FF207C9F70E94FB0E8091E80014
+:1027400083FF24C18091F0019091F101492F50E065
+:102750004A30510508F01AC1FA01EA5AFF4F0C94A9
+:10276000982D803881F0823809F010C18091F401F1
+:102770008F708093E9008091EB0085FB882780F9BA
+:102780001092E90006C08091EC019091ED01911149
+:1027900082609091E800977F9093E8008093F10029
+:1027A0001092F100C8C0282F2D7F09F0EFC08823B8
+:1027B00019F0823061F0EAC08091F201813009F0B5
+:1027C000E5C0933009F080E08093ED012BC080914B
+:1027D000F201811127C08091F4018F7009F4D6C0F5
+:1027E0008093E9002091EB0020FF1CC0933021F47E
+:1027F0008091EB00806214C09091EB009061909307
+:10280000EB0021E030E0A90102C0440F551F8A957A
+:10281000E2F74093EA001092EA008091EB008860B2
+:102820008093EB001092E9008091E800877F86C0DA
+:102830008111ACC01091F2011F778091E300807884
+:10284000812B8093E3008091E800877F8093E800EC
+:102850000E94A5118091E80080FFFCCF8091E300E9
+:1028600080688093E300111102C082E001C083E020
+:102870008093EF018BC08058823008F087C0809130
+:10288000F2019091F3018C3D53E0950779F583E0D7
+:102890008A838AE289834FB7F894DE01139620E099
+:1028A0003EE051E2E32FF0E050935700E49120FF27
+:1028B00003C0E295EF703F5FEF708E2F90E0EA303B
+:1028C00010F0C79601C0C0968D939D932F5F243161
+:1028D00049F74FBF8091E800877F8093E8006AE264
+:1028E00070E0CE0101960E94B11014C0AE014F5F9E
+:1028F0005F4F6091F4010E94FA0FBC01892B09F42B
+:1029000045C09091E800977F9093E80089819A8173
+:102910000E940F118091E8008B778093E80036C009
+:102920008038A1F58091E800877F8093E80080914E
+:10293000EB018093F1008091E8008E778093E800AE
+:102940000E94A51123C0811121C08091F2019091B4
+:10295000F30199270297D4F48091E800877F809350
+:10296000E8008091F2018093EB010E94A511809113
+:10297000EB01811106C08091E30087FD02C081E078
+:1029800001C084E08093EF010E94E20E8091E80094
+:1029900083FF0AC08091E800877F8093E8008091E0
+:1029A000EB0080628093EB00AA960FB6F894DEBF2E
+:1029B0000FBECDBFDF91CF911F910895CF9380912E
+:1029C000EF018823A1F0C091E900CF709091EC0055
+:1029D000892F817090FD80E8C82B1092E9008091CA
+:1029E000E80083FD0E948813CF70C093E900CF9167
+:1029F000089590937401809373010895E091730199
+:102A0000F0917401309721F00190F081E02D09944C
+:102A100080E00895EF92FF921F93CF93DF93F82EFB
+:102A2000192FE0917301F09174013097A9F10280A0
+:102A3000F381E02D09958091D70182FF2DC080FFA1
+:102A400004C08DE895E00E945707CF2DD12F10E1EB
+:102A500087E8E82E85E0F82E8091D70180FF0BC033
+:102A600088811F928F93FF92EF920E94F0070F9040
+:102A70000F900F900F90115021961111EDCF809172
+:102A8000D70180FF09C085E895E0DF91CF911F91C4
+:102A9000FF90EF900C945707DF91CF911F91FF901B
+:102AA000EF900895E0917301F0917401309721F057
+:102AB0000480F581E02D09940895209171013091F1
+:102AC00072012817390771F0909372018093710198
+:102AD000E0917301F0917401309721F00680F78145
+:102AE000E02D0994089520916F013091700128170D
+:102AF000390771F09093700180936F01E091730139
+:102B0000F0917401309721F00084F185E02D099453
+:102B1000089508950C9489150E94C2210E946709A6
+:102B20000C948822CF93C82F8091D70182FF1EC0BA
+:102B300080FF04C086EA95E00E9457078091D70184
+:102B400080FF0CC01F92CF9381EA95E09F938F93F3
+:102B50000E94F0070F900F900F900F908091D70177
+:102B600080FF04C08FE995E00E9457078C2FCF911A
+:102B70000C942C0DCF92DF92EF92FF920F931F9344
+:102B8000CF93DF93CDB7DEB72B970FB6F894DEBFA8
+:102B90000FBECDBF0E94840986E7C82E81E0D82EE3
+:102BA00000E010E0E02E802F0E94B80AF60141916B
+:102BB0006F01F82EF426B1F40F5F1F4F0E30110590
+:102BC00089F78FEF89838A831B820E94CB218160E2
+:102BD000782F9D838C8349815A816B818D810E94DE
+:102BE0005D1640C09091D70191FF04C08B870E9471
+:102BF000BE0A8B8520E030E04F2D50E0922FBA01C5
+:102C0000022E02C0759567950A94E2F760FF24C012
+:102C10002E83EF8221E030E0690102C0CC0CDD1C84
+:102C20009A95E2F790E08C219D21892B09F420E010
+:102C300028870E94CB218160782F9A8789874E81CF
+:102C40005F8168858A850E945D16F801EA58FE4F0B
+:102C50008081C826C08206C02F5F3F4F26303105D5
+:102C600069F6AACF0E94F9250E94FE149091750181
+:102C70008917A1F00E94FE14809375012B960FB660
+:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2
+:102C9000FF90EF90DF90CF900C9492152B960FB68B
+:102CA000F894DEBF0FBECDBFDF91CF911F910F9182
+:102CB000FF90EF90DF90CF900895CF93DF93CDB743
+:102CC000DEB72B970FB6F894DEBF0FBECDBF4F8394
+:102CD000588769877A878B87DE01119686E0FD0128
+:102CE00011928A95E9F785E0FE01379601900D92E1
+:102CF0008A95E1F749815A816B817C818D819E8122
+:102D00000E94601D2B960FB6F894DEBF0FBECDBF9C
+:102D1000DF91CF910895CF93C82F882309F4C1C0C4
+:102D2000823859F40E94FE1481FDBBC089E30E94E1
+:102D3000FD1F0E94D72089E30CC0833879F40E94DC
+:102D4000FE1480FDAEC083E50E94FD1F0E94D720C7
+:102D500083E50E944D20CF910C94D720843859F4FC
+:102D60000E94FE1482FD9DC087E40E94FD1F0E9408
+:102D7000D72087E4EECF8CEF8C0F813A48F48C2F6C
+:102D80000E948B2A81118DC08C2F0E94FD1FE3CFE2
+:102D900080E28C0F883048F4C77081E001C0880F52
+:102DA000CA95EAF70E94A020D6CF8BE58C0F83301E
+:102DB00078F4C53A29F0C63A31F083E890E005C0CE
+:102DC00081E890E002C082E890E0CF910C945D151C
+:102DD00088E58C0F833108F064C0C83A39F1C93AEC
+:102DE00041F1CA3A49F1CB3A51F1CC3A59F1CD3AD5
+:102DF00061F1C03B69F1CE3A71F1CF3A79F1C13B53
+:102E000081F1C23B89F1C33B91F1C43B99F1C53BD0
+:102E1000A1F1C63BA9F1C73BB1F1C83BB9F1C93B30
+:102E2000C1F1CA3BC9F180E090E038C082EE90E089
+:102E300035C089EE90E032C08AEE90E02FC085EB7D
+:102E400090E02CC086EB90E029C087EB90E026C094
+:102E50008CEC90E023C08DEC90E020C083E891E002
+:102E60001DC08AE891E01AC082E991E017C084E9A8
+:102E700091E014C081E292E011C083E292E00EC0C2
+:102E800084E292E00BC085E292E008C086E292E024
+:102E900005C087E292E002C08AE292E0CF910C94F2
+:102EA0007315CF910895882309F44BC0823859F4E3
+:102EB0000E94FE1481FF45C089E30E94FD1F0E940D
+:102EC000D72089E30CC0833871F40E94FE1480FF80
+:102ED00038C083E50E94FD1F0E94D72083E50E9431
+:102EE0004D200C94D720843859F40E94FE1482FFA0
+:102EF00028C087E40E94FD1F0E94D72087E4EFCFFF
+:102F00009CEF980F913A58F390E2980F983050F454
+:102F1000877091E001C0990F8A95EAF7892F0E9486
+:102F2000A620DFCF9BE5980F933020F480E090E05F
+:102F30000C945D15885A833120F480E090E00C9465
+:102F400073150895882321F00E94A0200C94D720A7
+:102F50000895882321F00E94A6200C94D72008957C
+:102F6000BF92CF92DF92EF92FF920F931F93CF9376
+:102F7000DF9300D000D000D0CDB7DEB77C0185E074
+:102F8000F701DE01119601900D928A95E1F7F701A4
+:102F900083819481892B09F4DDC2908181818F3FE7
+:102FA00019F49F3F09F4D6C2F701028125812295C9
+:102FB0002F7099838A8389819A812E830E94BC1FF6
+:102FC000182FB92E0E94BB1F0E94821EEB2DE29586
+:102FD000EF704E2F50E0FA01E05AFF4F2E810C9413
+:102FE000982D8B2D807F9B2D9F70F92E882319F0B3
+:102FF000F29480EFF822002349F0FF2009F457C231
+:103000008F2D0E94B0200E94D72051C2812F0E9494
+:103010005317FF2009F49EC28F2D0E94B6202696DA
+:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9
+:103030000F91FF90EF90DF90CF90BF900C94D7202E
+:103040003B2D307F8B2D8F70303211F08295807F39
+:10305000112319F0113021F12CC00023B9F02223E3
+:1030600009F490C1213009F08DC126960FB6F8946D
+:10307000DEBF0FBECDBFDF91CF911F910F91FF90AB
+:10308000EF90DF90CF90BF900C94C020222319F0D6
+:10309000213009F45FC28E830E94C3208E8186C1D5
+:1030A000002321F0223008F055C26CC1211152C218
+:1030B0007DC1002321F0222309F464C1F8C1222339
+:1030C00009F474C109C28B2D86958695837019F019
+:1030D0008130D1F03FC2002321F0812F9B2D9370CE
+:1030E00002C080E090E026960FB6F894DEBF0FBED7
+:1030F000CDBFDF91CF911F910F91FF90EF90DF90A7
+:10310000CF90BF900C945D15002321F0812F9B2D53
+:10311000937002C080E090E026960FB6F894DEBF70
+:103120000FBECDBFDF91CF911F910F91FF90EF9018
+:10313000DF90CF90BF900C947315812F002319F06E
+:103140000E947F2402C00E94E72426960FB6F894BE
+:10315000DEBF0FBECDBFDF91CF911F910F91FF90CA
+:10316000EF90DF90CF90BF900C946C258B2D8370E7
+:1031700009F075C00111EEC1812F82958695877087
+:10318000880F880F912F9F70C92ED12CE12CF12C24
+:10319000082E04C0CC0CDD1CEE1CFF1C0A94D2F7D8
+:1031A00014FF12C00FE010E020E030E004C0000F78
+:1031B000111F221F331F8A95D2F7C901B8016095EC
+:1031C00070958095909503C060E070E0CB014B2D29
+:1031D0004695469543704230C1F060F56C297D29D3
+:1031E0008E299F29413051F126960FB6F894DEBF03
+:1031F0000FBECDBFDF91CF911F910F91FF90EF9048
+:10320000DF90CF90BF900C94A91E6C297D298E2948
+:103210009F2926960FB6F894DEBF0FBECDBFDF9173
+:10322000CF911F910F91FF90EF90DF90CF90BF90C3
+:103230000C94C51E0E94A91EC701B60126960FB6A2
+:10324000F894DEBF0FBECDBFDF91CF911F910F91DC
+:10325000FF90EF90DF90CF90BF900C948D1E0023D5
+:1032600019F08B2D817001C08695882309F472C1F5
+:10327000812F829586958770880F880F912F9F7078
+:10328000C92ED12CE12CF12C082E04C0CC0CDD1C55
+:10329000EE1CFF1C0A94D2F714FF12C00FE010E0DE
+:1032A00020E030E004C0000F111F221F331F8A9559
+:1032B000D2F7C901B801609570958095909503C0CB
+:1032C00060E070E0CB014B2D46954695437042304F
+:1032D000C1F060F56C297D298E299F29413051F17B
+:1032E00026960FB6F894DEBF0FBECDBFDF91CF910B
+:1032F0001F910F91FF90EF90DF90CF90BF900C94B3
+:10330000831F6C297D298E299F2926960FB6F89454
+:10331000DEBF0FBECDBFDF91CF911F910F91FF9008
+:10332000EF90DF90CF90BF900C949F1F0E94831F5F
+:10333000C701B60126960FB6F894DEBF0FBECDBF0B
+:10334000DF91CF911F910F91FF90EF90DF90CF9081
+:10335000BF900C94671F103FD1F118F4103E50F449
+:10336000A1C0123F09F463C008F44CC0133F09F434
+:1033700073C098C01F708B2D8F710023A1F00E9425
+:10338000001F812F26960FB6F894DEBF0FBECDBF6B
+:10339000DF91CF911F910F91FF90EF90DF90CF9031
+:1033A000BF900C94A2170E94211F812F26960FB662
+:1033B000F894DEBF0FBECDBFDF91CF911F910F916B
+:1033C000FF90EF90DF90CF90BF900C94A91700234F
+:1033D000A9F02111BFC08B2D8F7126960FB6F894DE
+:1033E000DEBF0FBECDBFDF91CF911F910F91FF9038
+:1033F000EF90DF90CF90BF900C94461F223008F0E2
+:10340000A9C0E9CF0023A9F08B2D8F7126960FB6A6
+:10341000F894DEBF0FBECDBFDF91CF911F910F910A
+:10342000FF90EF90DF90CF90BF900C94001F00238F
+:1034300059F38B2D8F7126960FB6F894DEBF0FBE11
+:10344000CDBFDF91CF911F910F91FF90EF90DF9053
+:10345000CF90BF900C94211F002399F08B2D8F717A
+:1034600026960FB6F894DEBF0FBECDBFDF91CF9189
+:103470001F910F91FF90EF90DF90CF90BF900C9431
+:10348000EB1E26960FB6F894DEBF0FBECDBFDF91C0
+:10349000CF911F910F91FF90EF90DF90CF90BF9051
+:1034A0000C94E11E0023A9F0222309F4ADCF812F53
+:1034B00026960FB6F894DEBF0FBECDBFDF91CF9139
+:1034C0001F910F91FF90EF90DF90CF90BF900C94E1
+:1034D0008B16222309F4ADCF812F26960FB6F894D0
+:1034E000DEBF0FBECDBFDF91CF911F910F91FF9037
+:1034F000EF90DF90CF90BF900C9453174B2D4F70EF
+:10350000612FC7010E94F90726960FB6F894DEBF17
+:103510000FBECDBFDF91CF911F910F91FF90EF9024
+:10352000DF90CF90BF900C94051E4B2D4F70612FF4
+:10353000C70126960FB6F894DEBF0FBECDBFDF9150
+:10354000CF911F910F91FF90EF90DF90CF90BF90A0
+:103550000C94C50B26960FB6F894DEBF0FBECDBFF8
+:10356000DF91CF911F910F91FF90EF90DF90CF905F
+:10357000BF9008950E94BD200E9492200E94D720F3
+:103580000E949E260E946C2580E090E00E945D15BE
+:1035900080E090E00C9473150E94AD200C94BA1A50
+:1035A0000E94BC1F292F22952F702C3030F42A3016
+:1035B00048F42250223078F405C02C3041F02F30EE
+:1035C00031F009C0803E48F0803F29F406C093FBEB
+:1035D000882780F9089580E0089581E00895CF93C9
+:1035E000DF9300D000D01F92CDB7DEB70F900F90C1
+:1035F0000F900F900F90DF91CF910895CF93DF93AD
+:1036000000D000D000D0CDB7DEB726960FB6F89424
+:10361000DEBF0FBECDBFDF91CF9108951F93CF9333
+:10362000DF93C091840116E080918501C81799F05D
+:10363000D0E01C9FF0011D9FF00D1124EA57FE4FB2
+:103640004081518162817381848195810E94FE1A3B
+:103650002196C770E9CFDF91CF911F9108954091D6
+:10366000B6015091B7016091B8017091B901809194
+:10367000BA019091BB010C94FE1A8091BB01829516
+:103680008F7009F054C08091B801882309F44FC0AD
+:1036900080918401A09185014091B9015091BA01B6
+:1036A0006091B6017091B701B6E08A1709F43FC086
+:1036B00090E041155105C1F17F3F11F46F3FA1F139
+:1036C000B89FF001B99FF00D1124EA57FE4F2181F8
+:1036D00027132AC02081261327C02281211124C04C
+:1036E000238134812417350710F421503109241B1C
+:1036F000350B283C3105C0F42091BB012F702061AF
+:103700002093BB0126E0289FF001299FF00D112492
+:10371000E557FE4F80818F708061808386EB91E05A
+:103720000E94B0170C940E1B01968770BECF0895AF
+:10373000CF92DF92EF92FF920F931F93CF93DF937D
+:10374000CDB7DEB762970FB6F894DEBF0FBECDBF20
+:103750008C0185E0F801DE011D9601900D928A959D
+:10376000E1F7D8014C9111965C91119712966C91EA
+:103770008091B9019091BA01009709F475C1309117
+:10378000B6017091B7017F3F19F43F3F09F46CC156
+:10379000F801C380D480E090B801EE2009F4BEC0E7
+:1037A0002091BB01C816D90628F0D601A81BB90B79
+:1037B000CD0104C0809590958C0D9D1DFF24F39440
+:1037C000883C910578F0F12C207F09F0C4C07C2D55
+:1037D000D98AC88A89890E94EF1A86EB91E00E94F3
+:1037E000B017AFC0822F807F09F045C0571313C0B8
+:1037F000431311C061110FC02F7020612093BB01D2
+:103800000E942F1B86EB91E00E94B0178091BB01B4
+:10381000F80185832EC0CD2819F15F3F11F44F3F89
+:10382000F9F0F62E61111CC0809184012091850170
+:1038300036E0821709F45BC090E0389FF001399FB1
+:10384000F00D1124EA57FE4F7181571306C07081A5
+:10385000471303C07281711103C001968770E9CFCD
+:10386000F62E662309F41CC18091BB018160809310
+:10387000BB01F12C15C1571309C0431307C06111D7
+:1038800005C08091BB01F8018583C8C04D875E8764
+:103890008D859E856A8B0E94D01A6A898823D1F112
+:1038A0006623C1F12091BB01822F82958F7090E039
+:1038B000029774F08091B6019091B70198878F8339
+:1038C0001986DB86CA862C87CE0107960E94B01720
+:1038D00086E0F801A6EBB1E001900D928A95E1F740
+:1038E0000E943D1B0E942F1BFF24F394D9C04D87DB
+:1038F0005E878D859E850E94BC1F292F22952F7083
+:10390000223008F0C1C09F7009F0BBC0805E8830D3
+:1039100008F4C6C0C8010E94B017E6CFC816D90681
+:1039200008F453C0F601E81BF90BCF01883C910560
+:1039300008F450C0F12C7C2DD98AC88A89890E944C
+:10394000EF1AE6EBF1E086E0DF011D928A95E9F7D8
+:103950000E942F1BA5C0571314C0431312C061113E
+:1039600010C08091BB01F8018583C8010E94B01787
+:1039700086E0E6EBF1E0DF011D928A95E9F7FE2C87
+:103980008FC04D875E878D859E856A8B0E94D01A79
+:103990006A89882309F4BECF662309F4BBCF20913E
+:1039A000BB01822F82958F7090E002970CF490CF2C
+:1039B0008091B6019091B7019A8389831B82DD8241
+:1039C000CC822E83CE01019681CF809590958C0D6F
+:1039D0009D1DACCFF62E662309F49CCF571333C040
+:1039E000431331C02091BB0120FD24C0822F82955A
+:1039F0008F70482F50E041155105E1F0D801159620
+:103A00002C9315974F30510549F08F5F982F929561
+:103A1000907F822F8F70892B15968C93C8010E94FE
+:103A2000B01786E0F801A6EBB1E001900D928A95FF
+:103A3000E1F78ECF86E0F801A6EBB1E001900D92A0
+:103A40008A95E1F72DC04D875E878D859E850E9402
+:103A5000D01A81113DCF8091BB0181608093BB0161
+:103A6000C8010E94B0171CC0662309F453CF4D87CC
+:103A70005E878D859E850E94D01A882309F44ACFDF
+:103A800027CF811143CF0CC0243008F043CF9F7063
+:103A900009F43CCFD80115969C91907F09F036CF60
+:103AA0008F2D62960FB6F894DEBF0FBECDBFDF91AB
+:103AB000CF911F910F91FF90EF90DF90CF900895DD
+:103AC0001F93CF93DF93CDB7DEB72C970FB6F89443
+:103AD000DEBF0FBECDBF4F83588769877A878B873C
+:103AE0009C87CE0107960E94981B882371F08A85D7
+:103AF0009B85892B09F441C088858F3F09F065C0FB
+:103B00008F818F3F09F061C038C086E0FE01379693
+:103B1000DE01119601900D928A95E1F76A857B8509
+:103B20006115710551F1FF81E885EF3F11F4FF3F09
+:103B300021F12091850130E0C90101968770992714
+:103B40004091840150E08417950709F447C0F98338
+:103B5000EA837D836C8396E0929FD001939FB00DA2
+:103B60001124AA57BE4FFE01319601900D929A95ED
+:103B7000E1F7809385010E940E1B16E0809184017D
+:103B8000909185018917B9F1189FC00111248A57B6
+:103B90009E4F0E94981B882371F1E09184011E9F23
+:103BA000F0011124EA57FE4F4081518162817381F7
+:103BB000848195810E94FE1A8091840190E0019693
+:103BC0008770992780938401D9CF4F815885698563
+:103BD0007A858B859C850E94FE1ACFCF0E94CC1AD5
+:103BE0001092850110928401E6EBF1E086E0DF019E
+:103BF0001D928A95E9F72C960FB6F894DEBF0FBE9A
+:103C0000CDBFDF91CF911F910895EF92FF920F9357
+:103C10001F93CF93DF938C01892B09F46CC0F12C97
+:103C2000EE24E394E8012196F8018491843740F46E
+:103C3000843008F051C0813081F0823019F15BC0CE
+:103C4000853709F444C0A8F19CE7980F903708F035
+:103C500052C08F770E94531741C00E5F1F4FFE0165
+:103C6000849190E2980F983050F48770FE2D01C037
+:103C7000FF0F8A95EAF78F2F0E94B02014C00E9490
+:103C80008B162DC00E5F1F4FFE01849190E2980F9E
+:103C9000983060F48770FE2D01C0FF0F8A95EAF717
+:103CA0008F2F0E94B6200E94D72019C00E94531760
+:103CB00016C00E5F1F4FFE01C491CC2381F08FE927
+:103CC0009FE00197F1F700C00000C150F6CF0E5FF2
+:103CD0001F4FFE01F49003C00E948B168E018F2DA2
+:103CE000882309F49FCFEFE9FFE03197F1F700C097
+:103CF00000008150F5CFDF91CF911F910F91FF9080
+:103D0000EF90089508956093C0017093C10180936E
+:103D1000C2019093C3010C94BA1A0F931F930091A0
+:103D2000C0011091C1012091C2013091C301DC0199
+:103D3000CB01802B912BA22BB32B8093C0019093AE
+:103D4000C101A093C201B093C3011F910F910C94C4
+:103D5000BA1A0F931F930091C0011091C1012091D5
+:103D6000C2013091C301DC01CB0180239123A22346
+:103D7000B3238093C0019093C101A093C201B0937B
+:103D8000C3011F910F910C94BA1A0F931F930091C6
+:103D9000C0011091C1012091C2013091C301DC0129
+:103DA000CB0180279127A227B3278093C00190934E
+:103DB000C101A093C201B093C3011F910F910C9454
+:103DC000BA1A1092BC011092BD011092BE0110925D
+:103DD000BF010C94BA1A41E050E060E070E004C00A
+:103DE000440F551F661F771F8A95D2F74093BC0179
+:103DF0005093BD016093BE017093BF010C94BA1A39
+:103E000041E050E060E070E004C0440F551F661FC1
+:103E1000771F8A95D2F78091BC019091BD01A09146
+:103E2000BE01B091BF01482B592B6A2B7B2B4093CD
+:103E3000BC015093BD016093BE017093BF010C940F
+:103E4000BA1A41E050E060E070E004C0440F551F32
+:103E5000661F771F8A95D2F74095509560957095AB
+:103E60008091BC019091BD01A091BE01B091BF01B4
+:103E7000482359236A237B234093BC015093BD01FF
+:103E80006093BE017093BF010C94BA1A41E050E0F8
+:103E900060E070E004C0440F551F661F771F8A95CD
+:103EA000D2F78091BC019091BD01A091BE01B0916B
+:103EB000BF01482759276A277B274093BC015093AD
+:103EC000BD016093BE017093BF010C94BA1A0F93A9
+:103ED0001F930091BC011091BD012091BE01309152
+:103EE000BF01DC01CB01802B912BA22BB32B809344
+:103EF000BC019093BD01A093BE01B093BF011F917F
+:103F00000F910C94BA1A0F931F930091BC0110915A
+:103F1000BD012091BE013091BF01DC01CB018023A6
+:103F20009123A223B3238093BC019093BD01A0935E
+:103F3000BE01B093BF011F910F910C94BA1A0F9359
+:103F40001F930091BC011091BD012091BE013091E1
+:103F5000BF01DC01CB0180279127A227B3278093E3
+:103F6000BC019093BD01A093BE01B093BF011F910E
+:103F70000F910C94BA1A0895CF92DF92EF92FF92AC
+:103F80000F931F93CF93DF938C01C090BC01D0900F
+:103F9000BD01E090BE01F090BF018091C001909101
+:103FA000C101A091C201B091C301C82AD92AEA2A4D
+:103FB000FB2ACFE1D0E0D701C6010C2E04C0B69594
+:103FC000A795979587950A94D2F780FF07C0B80107
+:103FD0008C2F0E94E90B8130910531F4219758F71D
+:103FE000B80180E00E94E90BDF91CF911F910F9102
+:103FF000FF90EF90DF90CF90089590910C0199235E
+:1040000079F190910D01992359F1982F96959695F4
+:1040100096959F30A0F4E0910E01F0910F01E90F09
+:10402000F11D877021E030E0A90102C0440F551F47
+:104030008A95E2F7CA019181892B81830895909135
+:10404000D70190FF29C01F928F9387ED95E09F9332
+:104050008F930E94F0070F900F900F900F9008958C
+:1040600020910E0130910F01F90132969FEF40E04F
+:104070005191851789F09F3F19F4511101C0942F78
+:104080004F5F4E30A9F79F3F39F0F901E90FF11D5D
+:1040900097FDFA9582830895089590910C019923D4
+:1040A00081F190910D01992361F1982F9695969544
+:1040B00096959F30A8F4E0910E01F0910F01E90F61
+:1040C000F11D877021E030E0A90102C0440F551FA7
+:1040D0008A95E2F7CA0180959181892381830895A9
+:1040E0009091D70190FF1DC01F928F9389EB95E0AF
+:1040F0009F938F930E94F0070F900F900F900F9057
+:10410000089520910E0130910F01F9013296205F40
+:104110003F4F9081891301C010823196E217F30757
+:10412000C1F7089581E090E0E0910E01F0910F0158
+:10413000E80FF91F1082019680319105A9F70895C3
+:104140009091D601892B8093D60108958095909106
+:10415000D60189238093D60108951092D60108953F
+:104160009091D501892B8093D501089580959091E8
+:10417000D50189238093D50108951092D501089522
+:104180008093C40108951092C401089580910E0196
+:1041900090910F01FC0131969C01205F3F4F80E020
+:1041A000919191118F5FE217F307D1F70895E09194
+:1041B0000E01F0910F018091D6018083E0910E01F4
+:1041C000F0910F0190818091D501892B808380919E
+:1041D000C401882361F0E0910E01F0910F019081FC
+:1041E000892B80830E94C62081111092C401809186
+:1041F0000E0190910F010C940A1590933B0180934E
+:104200003A010895CF92DF92EF92FF926C01EE2473
+:10421000FF24C114D104E104F10421F0C701B60167
+:1042200020E101C020E0C72ED82EE92EFF24C114C2
+:10423000D104E104F10419F0285FC701B6016B0154
+:104240007C0154E0F694E794D794C7945A95D1F73B
+:10425000C114D104E104F10419F02C5FC701B601C7
+:104260006B017C0142E0F694E794D794C7944A9599
+:10427000D1F7C114D104E104F10419F02E5FC70194
+:10428000B601DC01CB01B695A79597958795892B4B
+:104290008A2B8B2B09F02F5F822FFF90EF90DF90FE
+:1042A000CF9008958295982F937344E0949F900146
+:1042B00011248C7C86958695282B822F8575880FF6
+:1042C0002A7A2695822B08951F93CF93DF931F920E
+:1042D000CDB7DEB799830E945221182F9981892F7B
+:1042E0000E945221212F30E0322F2227A901482B92
+:1042F000CA010F90DF91CF911F9108958091EF0136
+:10430000843011F120E488E190E00FB6F894A8958C
+:10431000809360000FBE2093600083B7817F84602C
+:1043200083BF83B7816083BF7894889583B78E7F7E
+:1043300083BF0FB6F894A895809160008861809340
+:104340006000109260000FBE089508950C94A5219E
+:10435000CF930E94A6210E9484090E94A521C0E05B
+:104360008C2F0E94B80A811104C0CF5FCE30C1F7F4
+:1043700001C081E0CF9108950E94CC1A0E94FE14E2
+:104380000C942C0D82E084BD93E095BD9AEF97BD0F
+:1043900080936E0008952FB7F8948091D801909182
+:1043A000D901A091DA01B091DB012FBF0895CF921E
+:1043B000DF92EF92FF920F931F932FB7F8944091E3
+:1043C000D8015091D9016091DA017091DB012FBFC2
+:1043D0006A017B01EE24FF248C0120E030E0C0164E
+:1043E000D106E206F30610F4415051099A01281B48
+:1043F000390BC9011F910F91FF90EF90DF90CF9083
+:1044000008951F920F920FB60F9211248F939F93CE
+:10441000AF93BF938091D8019091D901A091DA0117
+:10442000B091DB010196A11DB11D8093D80190933D
+:10443000D901A093DA01B093DB01BF91AF919F91B5
+:104440008F910F900FBE0F901F9018950E94F7113B
+:10445000F8942FEF87EA91E6215080409040E1F7F1
+:1044600000C0000087E090EBDC018093F80190939E
+:10447000F901A093FA01B093FB019CE088E10FB62B
+:10448000F894A895809360000FBE90936000FFCFD2
+:10449000EF92FF920F931F93CF93DF93D82FC0E03B
+:1044A0008C2F0E94B80A00E010E0E82EF12CC70122
+:1044B000002E02C0959587950A94E2F780FD06C00C
+:1044C0000F5F1F4F0630110591F709C0602F7C2F39
+:1044D00080E00E94C60B8D13F3CF81E004C0CF5F54
+:1044E000CE30F1F680E0DF91CF911F910F91FF90D8
+:1044F000EF900895CF93C82F8CE20E944822882322
+:1045000021F08C2FCF910C94482280E0CF91089518
+:10451000CF930E94D723811102C00E94BD238CEF4C
+:1045200095E00E945707C5E6C15049F00E948409F2
+:104530008FE39CE90197F1F700C00000F5CF85EF0C
+:1045400095E00E94570789E20E947A22811113C1E7
+:104550008AE20E947A2281110E94BD2385E00E9496
+:104560007A2281110E9426220E94E2238093D701A1
+:1045700087E00E947A228823A9F18BE10E947A22A7
+:10458000882351F08091D70181FB222720F991E007
+:10459000922790FB81F90EC08EE00E947A22882338
+:1045A00061F08091D70182FB222720F991E09227C8
+:1045B00090FB82F98093D70115C080E10E947A2296
+:1045C0009091D701882341F093FB222720F981E0C5
+:1045D000822780FB93F904C0892F809580FB90F996
+:1045E0009093D7018091D7010E94E6230E94F42383
+:1045F0008093E90180EE0E947A22882341F0809125
+:10460000E901982F909590FB80F98093E90189E367
+:104610000E947A22882359F08091E90181FB2227A8
+:1046200020F991E0922790FB81F98093E90182EED5
+:104630000E947A22882359F08091E90182FB222787
+:1046400020F991E0922790FB82F98093E90186EEB0
+:104650000E947A22882359F08091E90183FB222766
+:1046600020F991E0922790FB83F98093E90183EE92
+:104670000E947A22882359F08091E90184FB222745
+:1046800020F991E0922790FB84F98093E90185E37A
+:104690000E947A22882359F08091E90185FB222724
+:1046A00020F991E0922790FB85F98093E90181E35D
+:1046B0000E947A22882359F08091E90186FB222703
+:1046C00020F991E0922790FB86F98093E90181E13E
+:1046D0000E947A22882359F08091E90187FB2227E2
+:1046E00020F991E0922790FB87F98093E90180916E
+:1046F000E9010E94F8238091E90187FB882780F96E
+:1047000080930D0187E20E947A22C82F8EE10E94D9
+:104710007A228111C2608FE10E947A228111C460E5
+:1047200080E20E947A228111C86081E20E947A228E
+:104730008111C06182E20E947A228111C06283E20B
+:104740000E947A228111C06484E20E947A22882326
+:1047500011F0C06802C0CC2329F08C2F0E94EF23F7
+:104760006C2F03C00E94EB23682F70E080E090E084
+:10477000CF910C94831ECF9108956DEE7EEF80E073
+:1047800090E00E94CE2D60E082E090E00E94C02D7B
+:1047900060E083E090E00E94C02D60E084E090E063
+:1047A0000E94C02D60E085E090E00C94C02D80E078
+:1047B00090E00E94BA2D21E08D3E9E4F09F020E04E
+:1047C000822F089582E090E00C94B22D682F82E051
+:1047D00090E00C94C02D83E090E00C94B22D682FF3
+:1047E00083E090E00C94C02D84E090E00C94B22D16
+:1047F000682F84E090E00C94C02D8091DE0180FF52
+:104800000BC06091130185E0689FB001112475957C
+:104810006795759567952BC081FF09C0609113015D
+:1048200085E0689FB00111247595679520C082FFCF
+:1048300007C06091130185E0689FB001112417C083
+:104840009091DF019923D1F060911201961788F7BA
+:104850002091130185E0289F90011124929FA001CF
+:10486000939F500D112470E0CA010E94842D60387E
+:10487000710540F46115710519F406C065E070E03A
+:10488000862F08958FE7089581E008958091DE01D5
+:1048900080FF08C06091110170E07595679575956E
+:1048A000679521C081FF06C06091110170E0759588
+:1048B000679519C082FF04C06091110170E010C0BB
+:1048C0009091DF01992399F0609110019617A0F75C
+:1048D00080911101899FC001112470E00E94842DF4
+:1048E0006038710540F46115710519F406C061E086
+:1048F00070E0862F08958FE7089581E00895803F46
+:1049000021F40E94FD23819504C0813F29F40E9477
+:10491000FD238093E2010895823F21F40E94FD234C
+:10492000819504C0833F29F40E94FD238093E10117
+:104930000895893F19F40E94462405C08A3F31F446
+:104940000E94462481958093E30108958B3F21F4D2
+:104950000E944624819504C08C3F29F40E9446247D
+:104960008093E4010895843F21F48091E001816007
+:1049700017C0853F21F48091E001826011C0863F1D
+:1049800021F48091E00184600BC0873F21F4809185
+:10499000E001886005C0883F31F48091E0018061CA
+:1049A0008093E00108958D3F21F48091DE018160C4
+:1049B0000BC08E3F21F48091DE01826005C08F3FE5
+:1049C00029F48091DE0184608093DE010895803FA8
+:1049D00039F48091E20187FF6CC01092E20169C056
+:1049E000813F29F48091E2011816BCF362C09091D6
+:1049F000E101823F29F497FF5CC01092E10159C0A8
+:104A0000833F19F41916CCF354C0893F41F48091C7
+:104A1000E30118160CF04DC01092E3014AC08A3F22
+:104A200029F48091E30187FF44C0F6CF8B3F39F42E
+:104A30008091E40187FF3DC01092E4013AC08C3FB1
+:104A400029F48091E4011816BCF333C0843F21F4AB
+:104A50008091E0018E7F17C0853F21F48091E001B5
+:104A60008D7F11C0863F21F48091E0018B7F0BC0C8
+:104A7000873F21F48091E001877F05C0883F31F4B2
+:104A80008091E0018F7E8093E00113C08D3F21F47F
+:104A90008091DE018E7F0BC08E3F21F48091DE017C
+:104AA0008D7F05C08F3F29F48091DE018B7F80933D
+:104AB000DE018091E10181110EC08091E20181113E
+:104AC0000AC08091E301811106C08091E401811147
+:104AD00002C01092DF0108958091D70183FF7EC04C
+:104AE00088E396E00E9457078091E0011F928F9320
+:104AF00083E396E09F938F930E94F00781E396E013
+:104B00000E9457078091E101282F082E000C330BDB
+:104B10003F938F938EE296E09F938F930E94F007CE
+:104B20008CE296E00E9457078091E201282F082E20
+:104B3000000C330B3F938F9389E296E09F938F9302
+:104B40000E94F00787E296E00E9457078091E301F8
+:104B5000282F082E000C330B3F938F9384E296E0AE
+:104B60009F938F930E94F00782E296E00E9457077E
+:104B70008091E401282F082E000C330B3F938F9374
+:104B80008FE196E09F938F930E94F0078CE196E06F
+:104B90000E9457078091DF011F928F9389E196E071
+:104BA0009F938F930E94F00787E196E00E9457073A
+:104BB0008091DE011F928F9384E196E09F938F9303
+:104BC0000E94F00781E196E00E9457078DB79EB7DB
+:104BD0004C960FB6F8949EBF0FBE8DBF80EE91E04D
+:104BE0000E9452150E94CB219093DD018093DC013D
+:104BF00008951F93CF93DF938091DC019091DD01A5
+:104C00000E94D721AC019091DF01992321F02091DE
+:104C1000140130E006C0209115018AE0289F900120
+:104C200011244217530708F485C08091E101C09117
+:104C3000E201D091E3011091E401811107C0C1119B
+:104C400075C0D11173C0111171C074C09F3F19F0AC
+:104C50009F5F9093DF01181624F40E94FD23809338
+:104C6000E1018091E10187FF05C00E94FD2381954C
+:104C70008093E1011C1624F40E94FD238093E2013D
+:104C80008091E20187FF05C00E94FD2381958093FA
+:104C9000E2016091E101662331F1C091E201CC2390
+:104CA00011F1062E000C770B880B990B0E947F2CBC
+:104CB00023E333E343E35FE30E94E32C0E94472CAA
+:104CC0006093E1016C2FCC0F770B880B990B0E943E
+:104CD0007F2C23E333E343E35FE30E94E32C0E9452
+:104CE000472C6093E2011D1624F40E944624809311
+:104CF000E3018091E30187FF05C00E94462481956E
+:104D00008093E301111624F40E9446248093E40169
+:104D10008091E40187FF05C00E944624819580931D
+:104D2000E401DF91CF911F910C946C259F3F09F016
+:104D30008FCFA0CFDF91CF911F910895E0EEF1E0EA
+:104D400085E0DF011D928A95E9F71092DF0110924C
+:104D5000DE0108958BE598E00E9457071F9281E0DD
+:104D60008F931F9285E08F938DE098E09F938F93B0
+:104D70000E94F0070F900F900F900F900F900F90E0
+:104D800008958330E9F128F4813061F0823009F12F
+:104D90000895853009F462C008F449C0863009F4EA
+:104DA00074C0089580911501262F30E0280F311D21
+:104DB0002F3F310524F4680F6093150103C08FEF76
+:104DC00080931501809115011F928F9386E497E0DF
+:104DD00072C080911401262F30E0280F311D2F3F23
+:104DE000310524F4680F6093140103C08FEF8093A2
+:104DF0001401809114011F928F9384E397E05BC0AC
+:104E000080911301262F30E0280F311D2F3F3105EF
+:104E100024F4680F6093130103C08FEF8093130194
+:104E2000809113011F928F9381E297E044C080919B
+:104E30001201262F30E0280F311D2F3F310524F4B9
+:104E4000680F6093120103C08FEF8093120180916D
+:104E500012011F928F938CE097E02DC08091110179
+:104E6000262F30E0280F311D2F3F310524F4680F25
+:104E70006093110103C08FEF8093110180911101A4
+:104E80001F928F9383EF96E016C080911001262F1A
+:104E900030E0280F311D2F3F310524F4680F609357
+:104EA000100103C08FEF80931001809110011F92B9
+:104EB0008F9388ED96E09F938F930E94F0070F9059
+:104EC0000F900F900F900895833081F128F4813076
+:104ED00059F08230D1F00895853009F449C0B8F115
+:104EE000863009F456C0089580911501681720F4A2
+:104EF000861B8093150102C0109215018091150147
+:104F00001F928F9389EC96E054C08091140168172A
+:104F100020F4861B8093140102C01092140180912A
+:104F200014011F928F9387EB96E043C08091130189
+:104F3000681720F4861B8093130102C0109213019E
+:104F4000809113011F928F9384EA96E032C0809182
+:104F50001201681720F4861B8093120102C0109280
+:104F60001201809112011F928F938FE896E021C069
+:104F700080911101681720F4861B8093110102C0F3
+:104F800010921101809111011F928F9386E796E094
+:104F900010C080911001681720F4861B80931001C7
+:104FA00002C010921001809110011F928F938BE527
+:104FB00096E09F938F930E94F0070F900F900F90B1
+:104FC0000F900895CF93C82F1F928F9380E699E09A
+:104FD0009F938F930E94F00781E090E0A0E0B0E003
+:104FE000BC01CD0104C0660F771F881F991FCA95A9
+:104FF000D2F70E94831E0F900F900F900F90CF91C9
+:105000000C94CC1ACF938D3109F465C0B0F58E3075
+:1050100009F4CCC100F5873009F49BC1A8F48630AF
+:1050200009F06DC28091D701817F8E7F8093D70177
+:1050300085E699E00E94570784EA9DE00E945707A1
+:1050400081E08093E60180C1883009F44FC08B3045
+:1050500009F47CC154C2863109F4F0C138F48031BE
+:1050600009F4B8C1813109F430C249C2893109F467
+:10507000CEC18B3109F486C142C2853309F437C2EF
+:1050800048F4873209F433C208F433C2893209F490
+:105090002EC235C2833438F48A3308F02CC28833E8
+:1050A00009F454C12CC2833409F421C2883409F0B4
+:1050B00026C20E94CC1A83E99DE00E9457079FEF09
+:1050C00023ED80E3915020408040E1F700C00000D4
+:1050D0000E94262239C183EB9DE00E9457070E945F
+:1050E000012C0E94FE140E942C0D2EC188EA9DE026
+:1050F0000E94570786E79BE00E9457070E94EB2318
+:105100001F928F9383E79BE09F938F930E94F007FA
+:1051100081E79BE00E9457070E94E223C82F8EE59B
+:105120009BE00E9457071F92CF9389E59BE09F93D6
+:105130008F930E94F00787E59BE00E9457078DE45C
+:105140009BE00E9457078C2F81701F928F938AE4F7
+:105150009BE09F938F930E94F00788E49BE00E945E
+:1051600057078EE39BE00E945707C1FB882780F911
+:105170001F928F938BE39BE09F938F930E94F00786
+:1051800089E39BE00E9457078DE29BE00E9457074E
+:10519000C2FB882780F91F928F938AE29BE09F933E
+:1051A0008F930E94F00788E29BE00E9457078FE1EF
+:1051B0009BE00E945707C3FBCC27C0F91F92CF93F7
+:1051C0008CE19BE09F938F930E94F0078AE19BE024
+:1051D0000E9457070E94F423C82F86E09BE00E949C
+:1051E00057071F92CF9381E09BE09F938F930E947C
+:1051F000F0078FEF9AE00E94570786EE9AE00E9430
+:1052000057078C2F81701F928F9383EE9AE09F93A4
+:105210008F930E94F0078DB79EB780960FB6F894D3
+:105220009EBF0FBE8DBF81EE9AE00E9457078AECA9
+:105230009AE00E945707C1FB882780F91F928F933D
+:1052400087EC9AE09F938F930E94F00785EC9AE099
+:105250000E94570783EB9AE00E945707C2FB8827FA
+:1052600080F91F928F9380EB9AE09F938F930E9417
+:10527000F0078EEA9AE00E9457078CE99AE00E94B4
+:105280005707C3FB882780F91F928F9389E99AE01B
+:105290009F938F930E94F00787E99AE00E94570737
+:1052A0008DE89AE00E945707C4FB882780F91F9277
+:1052B0008F938AE89AE09F938F930E94F00788E883
+:1052C0009AE00E94570786E79AE00E945707C5FBBD
+:1052D000882780F91F928F9383E79AE09F938F939B
+:1052E0000E94F00781E79AE00E94570785E59AE05F
+:1052F0000E945707C6FB882780F91F928F9382E58B
+:105300009AE09F938F930E94F00780E59AE00E94B5
+:10531000570788E49AE00E945707C7FBCC27C0F9DB
+:105320001F92CF9385E49AE09F938F930E94F0079A
+:1053300083E49AE00E9457078DB79EB74C960FB64C
+:10534000F8949EBF0FBE8DBFC1E0DEC08CE899E02F
+:105350005BC08091D701C82FC17080FF09C086E86B
+:105360009DE00E9457078091D701817F8E7F47C0C3
+:105370008AE79DE00E9457078091D7018160809362
+:10538000D701E2CF9091D70191FBCC27C0F981E002
+:10539000C827892FC0FB81F98093D701CC2319F04E
+:1053A0008DE69DE027C08FE59DE02EC09091D7014E
+:1053B00092FBCC27C0F981E0C827892FC0FB82F976
+:1053C0008093D701CC2319F080E59DE013C080E4E1
+:1053D0009DE01AC09091D70193FBCC27C0F981E0E2
+:1053E000C827892FC0FB83F98093D701CC2351F0C4
+:1053F00084E39DE00E9457078091D70181608093EC
+:10540000D70182C087E29DE00E9457079DCF88E1C7
+:105410009DE00E9457078CEE9CE00E9457078FEAA0
+:105420009CE00E94570788E89CE00E94570784E4AC
+:105430009CE00E94570786E19CE0E6CF88E09CE074
+:105440000E9457070E94FE141F928F938EEE9BE0DE
+:105450009F938F930E94F00780910C011F928F936E
+:1054600087ED9BE09F938F930E94F00780916E01E0
+:105470001F928F9384EC9BE09F938F930E94F00781
+:1054800080910D011F928F9381EB9BE09F938F93EF
+:105490000E94F0078091D8019091D901A091DA0182
+:1054A000B091DB01BF93AF939F938F938DE99BE006
+:1054B0009F938F930E94F0078DB79EB746960FB6C5
+:1054C000F8949EBF0FBE8DBF3FCF0E94CC1AC091F3
+:1054D0000D0181E0C827C0930D01CC2329F083E999
+:1054E0009BE00E94570710C088E89BE08DCF80E0CA
+:1054F00003C08D5101C089530E94E22725CF86E861
+:105500009BE00E945707C0E08C2FCF91089580E068
+:1055100008950C94872ACF93C82F8091E60181309B
+:1055200081F020F0823009F44FC045C1E0910E01B6
+:10553000F0910F018081813169F0823209F03DC123
+:1055400009C0E0910E01F0910F018081813111F0CD
+:10555000823261F48C2F0E94892A811104C08C2F21
+:105560000E9402282FC081E090E02CC08C2F0E9466
+:10557000872A811126C0C431E1F070F4CB3081F06C
+:10558000C031D1F40E94AA2688E599E00E9457070D
+:1055900082E08093E60115C0C93259F0C83361F446
+:1055A00085E699E00E9457078CE599E00E9457072D
+:1055B00008C01092E60103C186E599E00E945707F2
+:1055C000FEC081E08170FDC0C43220F5CE3108F00C
+:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E
+:1055E0008093150194E19093140193E0909313013B
+:1055F0008093120188E08093110188E2809310016A
+:105600008CEF97E00E945707BFC0C33149F1C43106
+:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D
+:10562000C83361F0AEC0C13509F49EC0C23509F47B
+:1056300099C0CE3409F0A5C06AE09EC00E94AA2697
+:10564000A3C08091E501882319F01092E5019CC068
+:1056500089E098E00E94570781E08093E601B1C09D
+:1056600083EE97E00E94570781ED97E00E9457076D
+:10567000809115011F928F938EEC97E09F938F93EB
+:105680000E94F0078CEC97E00E9457078AEB97E0A6
+:105690000E945707809114011F928F9387EB97E028
+:1056A0009F938F930E94F00785EB97E00E94570726
+:1056B00086EA97E00E945707809113011F928F930B
+:1056C00083EA97E09F938F930E94F00781EA97E027
+:1056D0000E94570780E997E00E94570780911201C6
+:1056E0001F928F938DE897E09F938F930E94F0070E
+:1056F0008BE897E00E94570786E797E00E945707DC
+:10570000809111011F928F9383E797E09F938F936E
+:105710000E94F00781E797E00E9457078AE597E02B
+:105720000E945707809110011F928F9387E597E0A1
+:105730009F938F930E94F00785E597E00E9457079B
+:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B
+:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5
+:10576000E50112C061E003C061E006C06AE080911B
+:10577000E5010E94C12608C08091E5010E946427CE
+:1057800003C08AEF97E013C08091E501882369F098
+:105790001F928F9384EF97E09F938F930E94F0075F
+:1057A0000F900F900F900F9004C081EF97E00E9430
+:1057B000570781E006C01092E60180E002C080E059
+:1057C00001CFCF910895E1E8F0E080818860808387
+:1057D0008081816080838FB7F89493E090938900F3
+:1057E00090ED909388008FBF0895EFE6F0E0808100
+:1057F000826080830895EFE6F0E080818D7F808372
+:105800000895EFE6F0E0908182E089278083089593
+:105810001F920F920FB60F9211242F933F934F9325
+:105820005F936F937F938F939F93AF93BF93EF9308
+:10583000FF938091E7019091E80101969093E80130
+:105840008093E701811103C082E00E942C0DE0915A
+:10585000E801E695E695F0E0ED53F24FE491809192
+:10586000E7018E1303C080E00E942C0DFF91EF91A1
+:10587000BF91AF919F918F917F916F915F914F9168
+:105880003F912F910F900FBE0F901F9018950E947F
+:105890004E2C6894B1110C94DD2C08950E94C22CFA
+:1058A00088F09F5798F0B92F9927B751B0F0E1F0E1
+:1058B000660F771F881F991F1AF0BA95C9F714C091
+:1058C000B13091F00E94DC2CB1E008950C94DC2CF6
+:1058D000672F782F8827B85F39F0B93FCCF38695CA
+:1058E00077956795B395D9F73EF490958095709527
+:1058F00061957F4F8F4F9F4F0895E89409C097FBA4
+:105900003EF490958095709561957F4F8F4F9F4F96
+:105910009923A9F0F92F96E9BB279395F6958795DA
+:1059200077956795B795F111F8CFFAF4BB0F11F49D
+:1059300060FF1BC06F5F7F4F8F4F9F4F16C0882344
+:1059400011F096E911C0772321F09EE8872F762F7A
+:1059500005C0662371F096E8862F70E060E02AF0BB
+:105960009A95660F771F881FDAF7880F96958795A7
+:1059700097F9089557FD9058440F551F59F05F3F10
+:1059800071F04795880F97FB991F61F09F3F79F061
+:1059900087950895121613061406551FF2CF4695E3
+:1059A000F1DF08C0161617061806991FF1CF869565
+:1059B0007105610508940895E894BB276627772749
+:1059C000CB0197F908950E94F62C0C94672D0E9444
+:1059D000592D38F00E94602D20F0952311F00C9481
+:1059E000502D0C94562D11240C94DD2C0E94BA2CB1
+:1059F00070F3959FC1F3950F50E0551F629FF00122
+:105A0000729FBB27F00DB11D639FAA27F00DB11D3A
+:105A1000AA1F649F6627B00DA11D661F829F2227C3
+:105A2000B00DA11D621F739FB00DA11D621F839F4A
+:105A3000A00D611D221F749F3327A00D611D231F20
+:105A4000849F600D211D822F762F6A2F11249F576E
+:105A500050409AF0F1F088234AF0EE0FFF1FBB1F71
+:105A6000661F771F881F91505040A9F79E3F510530
+:105A700080F00C94502D0C94DD2C5F3FE4F3983EA5
+:105A8000D4F3869577956795B795F795E7959F5FDA
+:105A9000C1F7FE2B880F911D9695879597F908956C
+:105AA00097F99F6780E870E060E008959FEF80ECD1
+:105AB000089500240A941616170618060906089574
+:105AC00000240A9412161306140605060895092EDA
+:105AD0000394000C11F4882352F0BB0F40F4BF2B49
+:105AE00011F460FF04C06F5F7F4F8F4F9F4F089589
+:105AF000991B79E004C0991F961708F0961B881F20
+:105B00007A95C9F78095089597FB072E16F40094AF
+:105B100007D077FD09D00E949E2D07FC05D03EF4EA
+:105B2000909581959F4F0895709561957F4F089549
+:105B3000EE0FFF1F0590F491E02D0994AA1BBB1BEB
+:105B400051E107C0AA1FBB1FA617B70710F0A61B7D
+:105B5000B70B881F991F5A95A9F780959095BC019E
+:105B6000CD010895F999FECF92BD81BDF89A99278C
+:105B700080B50895A8E1B0E042E050E00C94D52D46
+:105B8000262FF999FECF1FBA92BD81BD20BD0FB659
+:105B9000F894FA9AF99A0FBE019608950E94C02DC2
+:105BA000272F0C94C12DDC01CB01FC01F999FECF0C
+:105BB00006C0F2BDE1BDF89A319600B40D92415095
+:0A5BC0005040B8F70895F894FFCFA5
+:105BCA0020022D0D200EFB0DC70D930D0101C501FD
+:105BDA0028080A03140A3F4D3620394605F904C33A
+:105BEA0004A3046A04DD03F6030F0428044804012D
+:0A5BFA000203040506070809000075
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/naps62/keymap.c b/keyboard/ergodox_ez/keymaps/naps62/keymap.c
new file mode 100644
index 0000000000..b954a311e6
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/naps62/keymap.c
@@ -0,0 +1,187 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " |
+ * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,--------------. ,---------------.
+ * | Home | End | | PgUp |Insert |
+ * ,------|-------|------| |-------+-------+------.
+ * | | | LGui | | Del | | |
+ * | Space| Alt |------| |-------| Enter |Space |
+ * | | | LGui | | Bcsp | | |
+ * `---------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2),
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1),
+ MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2),
+
+ KC_HOME, KC_END,
+ KC_LGUI,
+ KC_SPC, KC_LALT, KC_LGUI,
+
+ // right hand
+ KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
+ KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1),
+
+ KC_PGUP, KC_INS,
+ KC_DEL,
+ KC_BSPC, KC_ENT, KC_SPC
+),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | = | . | 0 | - | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+ KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | |GuiUp | Expl | | Term | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | | Play | Prev | Next | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | |Brwser|Brwser|
+ * | Lclk | Rclk |------| |------|Fwd |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+KEYMAP(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS,
+ KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), 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_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_BTN1, KC_BTN2, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_WBAK, KC_WFWD
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ // TODO: Make this relevant to the ErgoDox EZ.
+ case 1:
+ ergodox_right_led_1_on();
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ break;
+ default:
+ // none
+ break;
+ }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
index 3343c22963..4dd6d883ca 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
@@ -7,7 +7,7 @@
#define MDIA 2 // media keys
/*
- * Ordinary Ergodox EZ keyboard layout, v1
+ * Ordinary Ergodox EZ keyboard layout, v2
* modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
* Details: http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html
*/
@@ -16,13 +16,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | Grv | 1 | 2 | 3 | 4 | 5 | ESC | | = | 6 | 7 | 8 | 9 | 0 | - |
+ * | Grv | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | \ | | / | Y | U | I | O | P | ~L2 |
+ * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MDIA \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ~L1 | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ~L1 |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |'/Ctrl| RShift |
+ * | SYMB | A | S | D | F | G |------| |------| H | J | K | L | ; | SYMB ' |
+ * |--------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | -Tab | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh |RCtrl |
* `----------------------------------' `----------------------------------'
@@ -37,20 +37,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSLS,
- KC_FN1, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT,CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_LCTL,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI,
- KC_HOME, KC_END,
- KC_PGUP,
- KC_BSPC, KC_DEL, KC_PGDN,
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
+ MO(SYMB), KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, LSFT(KC_TAB),
+ KC_LCTL, MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI,
+ KC_HOME, KC_END,
+ KC_PGUP,
+ KC_BSPC, KC_DEL, KC_PGDN,
+
// right hand
- KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_SLSH, KC_Y, KC_U, KC_I, KC_O, KC_P, LT(MDIA, KC_SLSH),
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_FN1,
- KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_QUOT),KC_RSFT,
+ KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, LT(MDIA, KC_BSLS),
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(SYMB, KC_QUOT),
+ KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH),KC_RSFT,
KC_RGUI, KC_RALT, ALL_T(KC_NO),MEH_T(KC_NO), KC_RCTL,
KC_LEFT, KC_RGHT,
KC_UP,
@@ -59,82 +60,82 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * | Esc | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * | MDIA | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CAPS | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | CAPS |
+ * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
+ * |--------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | CAPS |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
+ * | | | | | | | 0 | . | = | + | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | | | | | |
+ * | Left | Right| | Home | End |
* ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
+ * | | | Up | | PgUp | | |
+ * |Space |Enter |------| |------|BackSp| Del |
+ * | | | Down | | PgDn | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_CAPS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ MO(MDIA), KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_AMPR,LSFT(KC_COMM),
+ KC_TRNS, KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+ KC_TRNS, KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TAB,
+ KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_LEFT,KC_RGHT,
+ KC_UP,
+ KC_SPC,KC_ENT,KC_DOWN,
// right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_CAPS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ LSFT(KC_DOT), KC_PIPE, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_F12,
+ KC_SLSH, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS,
+ LSFT(KC_TAB), KC_BSLS, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_CAPS,
+ KC_P0, KC_DOT, KC_PEQL, KC_PPLS, KC_PENT,
+ KC_HOME, KC_END,
+ KC_PGUP,
+ KC_PGDN, KC_BSPC, KC_DEL
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | Sleep| | | | | |MyComp| Mail | |
+ * | Esc |ShutDn| Sleep| Mute |Vol Dn|Vol Up| | | | |PrtSc | PgUp |MyComp| Mail | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp |ScrlUp| |ScrlUp| |ScrlUp| | | | | Mute | |
+ * | | | | MsUp |ScrlUp| |ScrlUp| |ScrlUp| |ScrlUp| Up | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | |
+ * | | |MsLeft|MsDown|MsRght| |------| |------| Home | Left | Down | Right| End | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | |MsDown|ScrlDn| |ScrlDn| |ScrlDn| | | | | | |
+ * | | | |MsDown|ScrlDn| |ScrlDn| |ScrlDn| |ScrlDn| Down | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | | | | | |
+ * | | | | Lclk | Rclk | | | PgDn | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Stop |Refrsh| | Prev | Next |
* ,------|------|------| |------+------+------.
- * |Brwser|Brwser| Home | |VolUp | | |
- * |Back | Fwd |------| |------| Stop | Play |
- * | | |Search| |VolDn | | |
+ * |Brwser|Brwser|Search| |VolUp | | |
+ * |Back | Fwd |------| |------| Stop | Play-|
+ * | | | Home | |VolDn | | Pause|
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_WH_U, KC_TRNS, KC_WH_U,
+ KC_ESC, KC_PWR, KC_SLEP, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS,
+ MO(MDIA), KC_TRNS, KC_TRNS, KC_MS_U, KC_WH_U, KC_TRNS, KC_WH_U,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_D, KC_TRNS, KC_TRNS, KC_WH_D,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_WH_D,
KC_WSTP, KC_WREF,
- KC_WHOM,
- KC_WBAK, KC_TRNS, KC_WSCH,
+ KC_WSCH,
+ KC_WBAK, KC_TRNS, KC_WHOM,
// right hand
- KC_WSCH, KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_MAIL, KC_TRNS,
- KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_WH_D, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_PSCR, KC_PGUP, KC_MYCM, KC_MAIL, KC_TRNS,
+ KC_WH_U, KC_TRNS, KC_WH_U, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_END, KC_TRNS,
+ KC_WH_D, KC_TRNS, KC_WH_D, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_PGDN, KC_TRNS,KC_TRNS, KC_TRNS,
KC_MPRV, KC_MNXT,
KC_VOLU,
KC_VOLD, KC_MSTP, KC_MPLY
@@ -188,3 +189,4 @@ void matrix_scan_user(void) {
}
};
+
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png
new file mode 100644
index 0000000000..b32b95533c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt
new file mode 100644
index 0000000000..727775ea2c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt
@@ -0,0 +1,27 @@
+[{x:3.5},"#\n3",{x:10.5},"*\n8"],
+[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
+[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
+[{y:-0.875,c:"#73ab6a",w:1.5},"~\n\n\n\n\n\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{t:"#000000\n\n\n\n#0000ff",w:1.5},"+\n\n\n\n\n\n="],
+[{y:-0.375,x:3.5,t:"#000000"},"E",{x:10.5},"I"],
+[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
+[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
+[{y:-0.875,c:"#73ab6a",w:1.5},"Tab",{c:"#cccccc"},"Q",{x:14.5},"P",{c:"#2277ff",fa:[0,0,0,1],w:1.5},"|\n\\\nMedia\nL2"],
+[{y:-0.375,x:3.5,c:"#cccccc"},"D",{x:10.5},"K"],
+[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"],
+[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
+[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\nL1",{c:"#cccccc"},"A",{x:14.5},":\n;",{c:"#2277ff",w:1.5},"\"\n'\nSymbols\nL1"],
+[{y:-0.625,x:6.5,c:"#bfbf67",h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
+[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
+[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
+[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
+[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\nShift",{c:"#cccccc"},"Z\n\nCtrl",{x:14.5},"?\n/\nCtrl",{c:"#2277ff",w:1.5},"\n\nCapitals\nShift"],
+[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
+[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
+[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bfbf67"},"Home","End"],
+[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
+[{x:2},"Page\n\n\n\n\n\nDown"],
+[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
+[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],
+[{x:-3},"Down"]
+
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png
new file mode 100644
index 0000000000..89d15e4506
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt
new file mode 100644
index 0000000000..4237f08201
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt
@@ -0,0 +1,27 @@
+[{x:3.5,c:"#9988bb"},"Vol\n\n\n\n\n\nMute",{x:10.5,c:"#ccffff"},"Page\n\n\n\n\n\nUp"],
+[{y:-0.875,x:2.5,c:"#9988bb"},"Sleep",{x:1},"Vol\n\n\n\n\n\nDown",{x:8.5},"Print\n\n\n\n\n\nScreen",{x:1},"Home\n\n\n\n\n\nDir"],
+[{y:-0.875,x:5.5},"Vol\n\n\n\n\n\nUp",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
+[{y:-0.875,c:"#ff4444",a:4,w:1.5},"Esc",{c:"#9988bb"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Email",{c:"#cccccc",a:7,w:1.5},""],
+[{y:-0.375,x:3.5,c:"#ccffff",a:4},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
+[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#99ffff",a:4},"Scroll\n\n\n\n\n\nUp",{x:8.5},"Scroll\n\n\n\n\n\nUp",{x:1,c:"#cccccc",a:7},""],
+[{y:-0.875,x:5.5},"",{c:"#99ffff",a:4,h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#cccccc",a:7},""],
+[{y:-0.875,c:"#000000",t:"#ff0000",a:4,fa:[0,0,0,1],w:1.5},"Media\n\n\nL2",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#000000",t:"#ff0000",a:4,w:1.5},"\n\nMedia\nL2"],
+[{y:-0.375,x:3.5,c:"#ccffff",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
+[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
+[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5,c:"#ccffff",a:4},"Home"],
+[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\nL1",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5,c:"#ccffff",a:4},"End",{c:"#cccccc",a:7,w:1.5},""],
+[{y:-0.625,x:6.5,c:"#99ffff",a:4,h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
+[{y:-0.75,x:3.5,c:"#ccffff"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
+[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#99ffff",a:4},"Scroll\n\n\n\n\n\nDown",{x:8.5},"Scroll\n\n\n\n\n\nDown",{x:1,c:"#cccccc",a:7},""],
+[{y:-0.875,x:5.5},"",{x:6.5},""],
+[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
+[{y:-0.375,x:3.5,c:"#ccffff",a:4},"Left\n\n\n\n\n\nClick",{x:10.5},"Page\n\n\n\n\n\nDown"],
+[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#ccffff",a:4},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#cccccc",a:7},"",{x:1},""],
+[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bbaacc",a:4},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
+[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
+[{x:2},"Home\n\n\nBrowser"],
+[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
+[{x:-3,c:"#9988bb"},"Vol\n\n\n\n\n\nUp",{c:"#bbaacc",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
+[{x:-3,c:"#9988bb"},"Vol\n\n\n\n\n\nDown"]
+
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
new file mode 100644
index 0000000000..7522af3330
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
new file mode 100644
index 0000000000..dda15f71be
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
@@ -0,0 +1,27 @@
+[{x:3.5,c:"#a3a3a3"},"F3",{x:10.5},"F8"],
+[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
+[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#a3a3a3",a:4},"F6"],
+[{y:-0.875,c:"#ff4444",w:1.5},"Esc",{c:"#a3a3a3"},"F1",{x:14.5},"F10",{w:1.5},"F11"],
+[{y:-0.375,x:3.5,c:"#bbc6ed"},"{",{x:10.5,c:"#bed4ba"},"8"],
+[{y:-0.875,x:2.5,c:"#bbc6ed"},"@",{x:1},"}",{x:8.5,c:"#bed4ba"},"7",{x:1},"9"],
+[{y:-0.875,x:5.5,c:"#bbc6ed"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
+[{y:-0.875,c:"#2277ff",fa:[0,0,0,1],w:1.5},"Media\n\n\nL2",{c:"#bbc6ed"},"!",{x:14.5,c:"#bed4ba"},"/",{c:"#a3a3a3",w:1.5},"F12"],
+[{y:-0.375,x:3.5,c:"#bbc6ed"},"(",{x:10.5,c:"#bed4ba"},"5"],
+[{y:-0.875,x:2.5,c:"#bbc6ed"},"$",{x:1},")",{x:8.5,c:"#bed4ba"},"4",{x:1},"6"],
+[{y:-0.875,x:5.5,c:"#bbc6ed"},"`",{x:6.5},"/"],
+[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\nL1",{c:"#bbc6ed",t:"#000000"},"#",{x:14.5,c:"#bed4ba"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\nL1"],
+[{y:-0.625,x:6.5,c:"#bfbf67",t:"#000000",h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"],
+[{y:-0.75,x:3.5,c:"#bbc6ed"},"[",{x:10.5,c:"#bed4ba"},"2"],
+[{y:-0.875,x:2.5,c:"#bbc6ed"},"^",{x:1},"]",{x:8.5,c:"#bed4ba"},"1",{x:1},"3"],
+[{y:-0.875,x:5.5,c:"#bbc6ed"},"~",{x:6.5},"\\"],
+[{y:-0.875,c:"#cccccc",a:7,w:1.5},"",{c:"#bbc6ed",a:4},"%",{x:14.5,c:"#bed4ba"},"-",{c:"#2277ff",w:1.5},"\n\nCaps Lock"],
+[{y:-0.375,x:3.5,c:"#cccccc",a:7},"",{x:10.5,c:"#bed4ba",a:4},"."],
+[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#bed4ba",a:4},"0",{x:1},"="],
+[{y:-0.75,x:0.5,c:"#cccccc",a:7},"","",{x:14.5,c:"#bed4ba",a:4},"+","Enter"],
+[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bfbf67"},"Left","Right"],
+[{h:2},"Space",{h:2},"Enter","Up"],
+[{x:2},"Down"],
+[{r:-30,rx:13,y:-1,x:-3},"Home","End"],
+[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"],
+[{x:-3},"Page\n\n\n\n\n\nDown"]
+
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
index 5a847aa6e7..1a08598465 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
@@ -1,48 +1,48 @@
-:100000000C9465020C94AC020C94AC020C94AC02FF
-:100010000C94AC020C94AC020C94AC020C94AC02A8
-:100020000C94AC020C94AC020C94C30B0C94950C85
-:100030000C94AC020C94AC020C94AC020C94AC0288
-:100040000C94AC020C9409210C94AC020C94AC02FC
-:100050000C94AC020C949B1A0C94AC020C94AC0261
-:100060000C94AC020C94AC020C94AC020C94AC0258
-:100070000C94AC020C94AC020C94AC020C94AC0248
-:100080000C94AC020C94AC020C94AC020C94AC0238
-:100090000C94AC020C94AC020C94AC020C94AC0228
-:1000A0000C94AC020C94AC020C94AC02020D240D26
-:1000B000170E240D170E690D8C0D170EE10DF40DA2
-:1000C000DE10DE100D110D1150118A1197139713C8
-:1000D000A3119713981298126B1397139713821307
-:1000E0000000F0A135002B00C100E100E00000009D
+:100000000C9465020C94A9020C94A9020C94A90208
+:100010000C94A9020C94A9020C94A9020C94A902B4
+:100020000C94A9020C94A9020C94B00B0C94820CB1
+:100030000C94A9020C94A9020C94A9020C94A90294
+:100040000C94A9020C940B210C94A9020C94A90203
+:100050000C94A9020C94AD1A0C94A9020C94A90258
+:100060000C94A9020C94A9020C94A9020C94A90264
+:100070000C94A9020C94A9020C94A9020C94A90254
+:100080000C94A9020C94A9020C94A9020C94A90244
+:100090000C94A9020C94A9020C94A9020C94A90234
+:1000A0000C94A9020C94A9020C94A902E70C090D66
+:1000B000F40D090DF40D4B0D6E0DF40DC30DD60DA1
+:1000C000C310C310F110F11033116F116F136F13C0
+:1000D00087116F137E127E1249136F136F135D1316
+:1000E0000000F0A135002B000152E100E00000000B
:1000F0001E00140004001D7100774E001F001A003E
:1001000016001B00007F4C002000080007000600BE
:10011000E2002A002100150009001900E3004B004D
-:10012000220017000A00050000004A0029003100E3
-:1001300000002F0000004D002E00380000003000AD
+:10012000220017000A00050000004A0029002F00E5
+:1001300000002B0200004D002D00300000002B00BD
:100140000000500023001C000B00110000004F00B5
:10015000240018000D001000E700520025000C00DC
:100160000E003600E6002C00260012000F003700BB
-:10017000007F2800270013003300347100775100FE
-:100180002D003882C100E500E400000001000100FC
-:1001900001003900010000003A001E022002220284
-:1001A000010001003B001F022102230201000100A7
-:1001B0003C002F0226022F00010001003D0030020A
-:1001C00027023000010001003E00310235003502F7
-:1001D000000001000100010000000100000001001A
-:1001E0000100010000000100000001003F0052007A
-:1001F00051002402000001004000240021001E00E4
-:10020000010001004100250022001F00370001000D
-:1002100042002600230020002700010043002502A1
-:100220002E0231002E00010044004500010039007B
-:1002300001000000010001000100010001000000B8
-:1002400001000100010001000100B40001000100F3
-:10025000F2000100010001000100F000F100F100D6
-:10026000F400B6000100F900F3000100FA00B50047
-:1002700001000100010001000000B800A600F90023
-:100280000000FA000000B900B400F9000000FA0014
-:100290000000AC0001000100010001000000AB0003
-:1002A00001000100010001000100A900010001009E
-:1002B000010001000100AE00B300010001000100D7
-:1002C0000100AD00B100A800010001000100AA007A
+:10017000007F2800270013003300387100775100FA
+:100180002E0031823481E500E40000002900025293
+:1001900001000100010000003A001E0220022202BC
+:1001A000010051003B001F02210223020100280030
+:1001B0003C002F0226022F0001002C003D003002DF
+:1001C00027023000010052003E00240235003502B3
+:1001D000000050000100360200002B0000004F001C
+:1001E0000100370200002B0200004A003F003102EC
+:1001F0003800310000004D0040005F005C005900F5
+:1002000062004B00410060005D005A0037004C0066
+:10021000420061005E005B0067002A00430054005A
+:100220005500560057004E004400450001003900BB
+:1002300058000000290002520100010001000000E6
+:10024000A5000100010001000100B500A6000100A9
+:10025000F200010001000100A800F000F100F1002F
+:10026000F400B600AA00F900F3000100FA00B4009F
+:10027000A9000100010001000000B8000100F90020
+:100280000000FA000000B9000100F9000000FA00C7
+:100290000000AC00010001004A0001000000AB00BA
+:1002A0004600F9005000FA000100A9004B0052007E
+:1002B000510051004E00AE00B30001004F0001009C
+:1002C0000100AD00B10001004D0001000100AA00D5
:1002D00001000100010001000100000016034500BB
:1002E000720067006F0044006F0078002000450036
:1002F0005A00000016034500720067006F004400BA
@@ -75,1047 +75,1045 @@
:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
:1004B000B39D87715D4A3A2C20170F0A060402018A
:1004C0000000000000000000000011241FBECFEF5C
-:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198
-:1004E0009091EE01A091EF01B091F0018730904B17
-:1004F000A740B04BD1F41092ED011092EE01109292
-:10050000EF011092F00114BE84B7877F84BF0FB64D
-:10051000F894A895809160008861809360001092A3
-:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C
-:10053000E4EBF5E402C005900D92A433B107D9F7BE
-:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6
-:100550000E940A090C94D8220C94000061110BC06F
-:10056000FC018281882321F085EE0E94780F03C070
-:1005700085EE0E94401080E090E00895089560911B
-:10058000B1017091B2018091B3019091B4010E94C8
-:10059000C81956985E9825982D9826982E982798D1
-:1005A0002F98813019F0823021F00895259A2D9AE4
-:1005B0000895269A2E9A08950C94BF0256985E9834
-:1005C00025982D9826982E9827982F988FEF90E0B1
-:1005D000909389008093880090938B0080938A0089
-:1005E00090938D0080938C00259A2D9A2FEF80E7B1
-:1005F00092E0215080409040E1F700C00000269A30
-:100600002E9A2FEF80E792E0215080409040E1F752
-:1006100000C00000279A2F9A2FEF80E792E0215028
-:1006200080409040E1F700C0000025982D982FEF02
-:1006300080E792E0215080409040E1F700C0000048
-:1006400026982E982FEF80E792E02150804090402E
-:10065000E1F700C0000027982F9856985E982598DB
-:100660002D9826982E9827982F98089589EA809398
-:10067000800089E08093810024982C983F988AB16B
-:100680008F748AB96E98479A8BB1806B8BB9769AC2
-:100690000E94DE020C94BE0280E2809300018091F1
-:1006A000340181110EC00E949B0381E080933401CC
-:1006B0002FEF83ED90E3215080409040E1F700C0A0
-:1006C000000080E40E94A1038093000181112EC0EC
-:1006D0000E94CB0380930001811128C00E94CB03AC
-:1006E00080930001811122C08FE30E94CB0380938D
-:1006F000000181111BC00E94C30380E40E94A1037A
-:1007000080930001811112C08CE00E94CB03809382
-:10071000000181110BC00E94CB0380930001811165
-:1007200005C08FE30E94CB03809300010E94C303A6
-:100730008091000108951092B9008AE08093B8007A
-:10074000089594EA9093BC009091BC0097FFFCCF71
-:100750009091B900987F983021F0903111F081E0AC
-:1007600008958093BB0084E88093BC008091BC0016
-:1007700087FFFCCF8091B900887F883111F08034E9
-:1007800071F780E0089584E98093BC008091BC00FB
-:1007900084FDFCCF08958093BB0084E88093BC0067
-:1007A0008091BC0087FFFCCF9091B900987F81E0D9
-:1007B000983209F480E0089584E88093BC00809129
-:1007C000BC0087FFFCCF8091BB00089580910001A1
-:1007D000811115C080E40E94A10380930001811162
-:1007E0000CC082E10E94CB0380930001811105C0FF
-:1007F0008FEF0E94CB03809300010E94C30384B15A
-:10080000807F84B985B1807F85B98AB1837F8AB9B9
-:100810008BB1837F8BB93E98469808950E944C0314
-:10082000809300010E94E60380B38C7080BB81B38B
-:10083000836F81BBE4E4F1E0A6E3B1E011921D9285
-:1008400081E0E235F807D1F70C9436039F92AF921E
-:10085000BF92CF92DF92EF92FF920F931F93CF93AD
-:10086000DF9380910001882379F0809135018F5FBB
-:1008700080933501811108C00E944C0380930001D0
-:10088000811102C00E94DE0286E3E82E81E0F82E8C
-:100890008701C0E0D0E0BB24B39492E0A92ECC2421
-:1008A000C394D12CC730D10500F58091000181118E
-:1008B00064C080E40E94A10380930001811112C0F2
-:1008C00082E10E94CB038093000181110BC0C6011D
-:1008D0000C2E01C0880F0A94EAF780950E94CB0382
-:1008E000809300010E94C30348C0CA30A1F028F4DD
-:1008F000C83059F0C93061F005C0CC3089F070F0D3
-:10090000CD3089F0209A289810C0219A29980DC0DE
-:10091000229A2A980AC0239A2B9807C0529A01C09B
-:10092000539A5B9802C03E9A4698E0EAEA95F1F73E
-:100930008FB181708B25799902C032E001C030E01F
-:10094000832B7C9902C034E001C030E0832B7D9979
-:1009500002C028E001C020E0822B7E9902C090E115
-:1009600001C090E0892B9FB19095991F9927991FFD
-:100970009295990F907E892B0FC080910001811173
-:100980004AC080E40E94A10380930001882381F182
-:10099000912C0E94C303892DD8019C91981719F0BE
-:1009A0008C93A09201010E94E60321960F5F1F4FD6
-:1009B000CE30D10509F076CF80910101882369F10D
-:1009C000815080930101882339F0EFE9FFE03197EE
-:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF
-:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5
-:1009F00083E10E94CB03809300018111C9CF81E480
-:100A00000E94A103809300018111C2CF0E94DC03E8
-:100A1000982E9094BECF80E0BFCF0E94DC0281E090
-:100A2000DF91CF911F910F91FF90EF90DF90CF90CA
-:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1
-:100A40008081089508958B3B910580F4883A910543
-:100A500048F5853A9105D8F48430910508F0B2C084
-:100A6000019709F06EC081E090E00895803E910505
-:100A700008F467C0883E910508F4A4C09C01205F7B
-:100A800031092031310508F05CC090650895853A40
-:100A9000910509F459C0863A910509F058C082E8D9
-:100AA00090E40895883A910509F454C0893A910573
-:100AB00009F453C08A3A910509F452C08B3A910562
-:100AC00009F451C08C3A910509F450C08D3A910552
-:100AD00009F44FC0803B910509F44EC08E3A910550
-:100AE00009F44DC08F3A910509F44CC0813B910542
-:100AF00009F44BC0823B910509F44AC0833B910540
-:100B000009F449C0843B910509F448C0853B91052F
-:100B100009F447C0863B910509F446C0873B91051F
-:100B200009F445C0883B910509F444C0893B91050F
-:100B300009F443C08A3B910509F442C080E094E483
-:100B4000089580E090E0089581E890E4089583E8B6
-:100B500090E4089582EE94E4089589EE94E4089573
-:100B60008AEE94E4089585EB94E4089586EB94E48A
-:100B7000089587EB94E408958CEC94E408958DEC4B
-:100B800094E4089583E895E408958AE895E4089547
-:100B900082E995E4089584E995E4089581E296E474
-:100BA000089583E296E4089584E296E4089585E248
-:100BB00096E4089586E296E4089587E296E408951F
-:100BC0008AE296E40895089524E5829FC0011124E5
-:100BD000FC0126E0729FE00DF11D1124E60FF11DCE
-:100BE000EE0FFF1FEC51FF4F859194910895880FF0
-:100BF000991FFC01E05AF040859194910895880F67
-:100C0000991FFC01E052FF4F85919491089524E5CE
-:100C1000829FC0011124FC0146E0749FE00DF11D8C
-:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0
-:100C300094919C013A9521154FE1340708F425C1A0
-:100C40003F512115304120F49F700E94FF05089507
-:100C50009C0130532115304118F49927906C089568
-:100C6000811520E5920769F40E94B9134FEF84E3E0
-:100C70009CE0415080409040E1F700C000000C949F
-:100C8000C01A813020E5920731F48091CC01816057
-:100C90008093CC0108959C0130552115304108F016
-:100CA0005CC0292F33272F70332721303105E9F419
-:100CB000AC0164E0440F551F6A95E1F74427537077
-:100CC000BC016370772702C0220F331F6A95E2F7D9
-:100CD0003C68242B352B73E0880F991F7A95E1F738
-:100CE00080769927822B932B08952230310529F4A1
-:100CF000982F8827816F906A089523303105A1F4D9
-:100D0000AC0133E0440F551F3A95E1F7407E577030
-:100D10008370992721E030E002C0220F331F8A95AB
-:100D2000E2F7C9019C6816C02430310531F5AC01E9
-:100D300023E0440F551F2A95E1F7407E57708370DA
-:100D4000992721E030E002C0220F331F8A95E2F795
-:100D5000C9019A68842B952B08959C013057211561
-:100D6000304118F49F70906208959C01305821150D
-:100D7000304118F49F70906A0895803E9105E0F428
-:100D8000803C910558F58133910509F46FC048F412
-:100D90008932910509F463C08A32910509F46DC066
-:100DA00072C089339105E9F082389105D1F085331D
-:100DB000910509F44DC067C0833E910581F138F477
-:100DC000803E9105B9F0823E9105D9F05CC0863E27
-:100DD000910561F1873E9105A1F155C00E94F7058B
-:100DE00008952091DE0120FD02C021FF4CC080EE5D
-:100DF00090E049C08091DE0180FFF9CF89E390E067
-:100E000042C08091DE0182FF0EC08091DE0184FF2E
-:100E100003C080E090E037C083EE90E034C0809162
-:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4
-:100E300083FF0BC08091DE0184FDEBCF87EE90E055
-:100E400022C08091DE0183FFF5CF86EE90E01BC0CB
-:100E50008091DE0185FF07C089E290E014C0809197
-:100E6000DE0185FFF9CF85E390E00DC08091DE01C2
-:100E700086FF07C08AE290E006C08091DE0186FF0F
-:100E8000F9CF81E390E00E942305089508958091B1
-:100E900062010895CF93DF9300D01F92CDB7DEB7E4
-:100EA0009C018091E401843019F593E099833B83A0
-:100EB0002A839093E9008FEF9091E800815095FD8F
-:100EC00006C095ED9A95F1F700008111F5CF80915C
-:100ED000E80085FF0DC040E050E063E070E0CE0127
-:100EE00001960E94B7098091E8008E778093E80010
-:100EF0000F900F900F90DF91CF910895CF93DF93D4
-:100F000000D01F92CDB7DEB72091E401243021F547
-:100F100022E029839B838A8383E08093E9008FEF1B
-:100F20009091E800815095FD06C095ED9A95F1F7F6
-:100F300000008111F5CF8091E80085FF0DC040E0F1
-:100F400050E063E070E0CE0101960E94B709809105
-:100F5000E8008E778093E8000F900F900F90DF915C
-:100F6000CF9108959C018091E4018430F9F482E0EE
-:100F70008093E9009FEF8091E800915085FD06C0C5
-:100F800085ED8A95F1F700009111F5CF8091E80089
-:100F900085FF0CC040E050E065E070E0C9010E94B0
-:100FA000B7098091E8008E778093E8000895CF9389
-:100FB000DF93EC018091E401843009F046C0909108
-:100FC0000C019923D9F090910D019923B9F08093E8
-:100FD000E9008FEF9091E800815095FD06C095E102
-:100FE0009A95F1F700008111F5CF8091E80085FF17
-:100FF0002CC040E050E060E170E017C081E08093D9
-:10100000E9008FEF9091E800815095FD06C095EDC5
-:101010009A95F1F700008111F5CF8091E80085FFE6
-:1010200014C040E050E068E070E0CE010E94B709D3
-:101030008091E8008E778093E80080E1FE01A2E5D0
-:10104000B1E001900D928A95E1F7DF91CF9108957B
-:101050008091E301811109C00E94480B0E94A50BF9
-:101060008091E20084608093E20008951092E30191
-:10107000089508950C94F6200E94561A0E94FC20B0
-:101080000E94500E0C94460742E061EC81E00E9401
-:10109000C10A42E061EC82E00E94C10A42E061ECD8
-:1010A00083E00E94C10A42E161EC84E00C94C10A31
-:1010B0008091E601833009F455C030F4813071F03D
-:1010C000823009F48EC008958A3009F47AC08B30DA
-:1010D00009F460C0893009F09CC020C08091E5010E
-:1010E000813A09F096C08091E800877F8093E800FC
-:1010F0008091E9019091EA01892B21F460E182E578
-:1011000091E003C060E080E090E070E00E94020A9D
-:101110008091E8008B778093E80008958091E50145
-:10112000813209F076C08091E9019091EA0100973F
-:1011300019F0039709F06DC08091E800877F8093D4
-:10114000E8008091E80082FD05C08091E4018111F2
-:10115000F8CF5FC08091F100809362018091E80038
-:101160008B7753C08091E501813A09F052C080919C
-:10117000E9019091EA01892B09F04BC08091E800C8
-:10118000877F8093E8008091E80080FFFCCF80910A
-:101190000C0136C08091E5018132D9F58091E901D9
-:1011A0009091EA01892BA9F58091E800877F8093CF
-:1011B000E8000E94F60A8091E70180930C010C94EC
-:1011C000B9138091E501813221F58091E800877F94
-:1011D0008093E8000E94F60A8091E8018093630101
-:1011E00008958091E501813AA1F48091E800877F1C
-:1011F0008093E8008091E80080FFFCCF809163013C
-:101200008093F1008091E8008E778093E8000C9441
-:10121000F60A089584B7877F84BF0FB6F894A8951F
-:1012200080916000886180936000109260000FBE22
-:1012300090E080E80FB6F89480936100909361008D
-:101240000FBE0E949F0E0E94480B0E94A50B80912A
-:10125000E20084608093E20078940E94300E0E9445
-:10126000A10E82E091E00E944B0E0E94E42080914A
-:10127000E401853069F40E94181A8091E201882304
-:10128000B1F30E94421A882391F30E94A109EFCF83
-:101290000E94A70EECCF292F332723303105C9F048
-:1012A00060F42130310581F02230310509F041C070
-:1012B0008DE690E020E133E040C021323105E1F0DD
-:1012C0002232310531F135C082E190E02DE733E083
-:1012D00034C099278130910549F028F0029749F5EB
-:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088
-:1012F000849190E09F0121C06430D8F4E62FF0E0A3
-:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE
-:1013100014C0643070F470E0FB01EE0FFF1FE65E56
-:10132000FE4F20813181FB01EA5EFE4F808190E01B
-:1013300004C080E090E020E030E0FA0131832083B7
-:10134000089580E189BD82E189BD09B400FEFDCF29
-:101350008091D8008F7D8093D8008091E0008260DA
-:101360008093E0008091E00081FDFCCF0895CF9252
-:10137000DF92EF92FF920F931F93CF93DF93EC01D5
-:101380008B016A010E94150B811133C0C114D10475
-:1013900039F0F60180819181081B190BC80FD91F04
-:1013A000E12CF12C0115110519F18091E80085FD62
-:1013B00016C08091E8008E778093E800C114D104B4
-:1013C00049F0F60180819181E80EF91EF182E082F8
-:1013D00085E00FC00E94150B882321F30AC0899174
-:1013E0008093F10001501109FFEFEF1AFF0ADACFE5
-:1013F00080E0DF91CF911F910F91FF90EF90DF90F0
-:10140000CF9008952091EB013091EC01261737071A
-:1014100048F06115710539F42091E8002E7720938A
-:10142000E80001C0B901FC0120E06115710579F106
-:101430008091E4018823F1F18530F1F18091E80099
-:1014400083FD3CC08091E80082FD2EC08091E800C1
-:1014500080FFEBCF2091F3008091F20090E0922B7F
-:101460006115710551F08830910538F42191209370
-:10147000F100615071090196F3CF21E0089709F05E
-:1014800020E08091E8008E778093E800CECF211194
-:10149000CFCF0AC08091E401882361F0853061F0EC
-:1014A0008091E80083FD0AC08091E80082FFF2CFBE
-:1014B00080E0089582E0089583E0089581E0089532
-:1014C0002091EB013091EC012617370748F06115A8
-:1014D000710539F42091E8002E772093E80001C0CF
-:1014E000B901FC0120E06115710591F18091E401E1
-:1014F000882309F440C0853009F43FC08091E8009A
-:1015000083FD3DC08091E80082FD2FC08091E800FE
-:1015100080FFE9CF2091F3008091F20090E0922BC0
-:101520006115710559F08830910540F4249120939C
-:10153000F1003196615071090196F2CF21E00897D0
-:1015400009F020E08091E8008E778093E800CBCF0F
-:101550002111CCCF0AC08091E401882361F085304D
-:1015600061F08091E80083FD0AC08091E80082FF6D
-:10157000F2CF80E0089582E0089583E0089581E04D
-:101580000895982F973068F59093E900981739F0EF
-:101590007091EC002091ED005091F00003C0242FD9
-:1015A000762F50E021FD02C09F5FECCF3091EB0021
-:1015B0003E7F3093EB003091ED003D7F3093ED00A6
-:1015C0003091EB0031603093EB007093EC0020938E
-:1015D000ED005093F0002091EE0027FDE5CF80E074
-:1015E00008958F708093E90081E008958091E5016E
-:1015F00087FF11C08091E80082FD05C08091E40161
-:101600008111F8CF11C08091E8008B770BC08091D9
-:10161000E401882349F08091E80080FFF8CF8091B1
-:10162000E8008E778093E80008952091E4003091DF
-:10163000E50095E64091EC00842F817040FF23C0C7
-:101640008091E80080FD1DC08091E401882399F01D
-:10165000853099F08091EB0085FD11C04091E40048
-:101660005091E5002417350729F3915011F09A01A4
-:10167000E1CF84E0089582E0089583E0089581E059
-:10168000089580E008954091E80042FFDDCF08957D
-:101690000E94B60B0E94BE0BE0EEF0E080818160FC
-:1016A0008083E8EDF0E080818F77808319BCA7ED1F
-:1016B000B0E08C918E7F8C9380818F7E808310929E
-:1016C000E30108950F931F93CF93DF930E94B60B0E
-:1016D0000E94BE0BC8EDD0E088818F778883888117
-:1016E0008068888388818F7D888319BC1092E4018B
-:1016F0001092E0011092E2011092E10100EE10E080
-:10170000F80180818B7F808388818160888342E0BB
-:1017100060E080E00E94C10AE1EEF0E080818E7F0F
-:101720008083E2EEF0E08081816080838081886048
-:101730008083F80180818E7F8083888180618883A7
-:10174000DF91CF911F910F910895E8EDF0E0808136
-:101750008F7E8083E7EDF0E080818160808384E08C
-:1017600082BF81E08093E3010C94620BE8EDF0E02E
-:1017700080818E7F80831092E20008951092DA00BB
-:101780001092E10008951F920F920FB60F9211244C
-:101790002F933F934F935F936F937F938F939F9379
-:1017A000AF93BF93EF93FF938091E10082FF0BC053
-:1017B0008091E20082FF07C08091E1008B7F8093DF
-:1017C000E1000E942F0E8091DA0080FF1FC08091FF
-:1017D000D80080FF1BC08091DA008E7F8093DA00F2
-:1017E0008091D90080FF0DC080E189BD82E189BD73
-:1017F00009B400FEFDCF81E08093E4010E94280837
-:1018000005C019BC1092E4010E9436088091E100E5
-:1018100080FF19C08091E20080FF15C08091E20036
-:101820008E7F8093E2008091E20080618093E200ED
-:101830008091D80080628093D80019BC85E08093A5
-:10184000E4010E943A088091E10084FF30C0809159
-:10185000E20084FF2CC080E189BD82E189BD09B42A
-:1018600000FEFDCF8091D8008F7D8093D8008091BD
-:10187000E1008F7E8093E1008091E2008F7E809373
-:10188000E2008091E20081608093E2008091E001BB
-:10189000882311F084E007C08091E30087FD02C037
-:1018A00081E001C083E08093E4010E943C088091C4
-:1018B000E10083FF29C08091E20083FF25C0809171
-:1018C000E100877F8093E10082E08093E401109241
-:1018D000E0018091E1008E7F8093E1008091E20041
-:1018E0008E7F8093E2008091E20080618093E2002D
-:1018F00042E060E080E00E94C10A8091F0008860D0
-:101900008093F0000E943908FF91EF91BF91AF9151
-:101910009F918F917F916F915F914F913F912F9107
-:101920000F900FBE0F901F9018951F920F920FB639
-:101930000F9211242F933F934F935F936F937F9355
-:101940008F939F93AF93BF93CF93DF93EF93FF93C7
-:10195000C091E900CF708091EC00D82FD17080FD4C
-:10196000D0E81092E9008091F000877F8093F0002A
-:1019700078940E94D90C1092E9008091F000886060
-:101980008093F000CD2BCF70C093E900FF91EF91D1
-:10199000DF91CF91BF91AF919F918F917F916F9187
-:1019A0005F914F913F912F910F900FBE0F901F901D
-:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5
-:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF
-:1019D000819321E0ED3EF207C9F70E9458088091FB
-:1019E000E80083FF24C18091E5019091E601492F31
-:1019F00050E04A30510508F01AC1FA01EA5AFF4F87
-:101A00000C948D22803881F0823809F010C18091C9
-:101A1000E9018F708093E9008091EB0085FB8827B6
-:101A200080F91092E90006C08091E1019091E201F5
-:101A3000911182609091E800977F9093E8008093E5
-:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF
-:101A5000882319F0823061F0EAC08091E70181307B
-:101A600009F0E5C0933009F080E08093E2012BC0DB
-:101A70008091E701811127C08091E9018F7009F4FD
-:101A8000D6C08093E9002091EB0020FF1CC093306A
-:101A900021F48091EB00806214C09091EB00906182
-:101AA0009093EB0021E030E0A90102C0440F551FE4
-:101AB0008A95E2F74093EA001092EA008091EB00E9
-:101AC00088608093EB001092E9008091E800877FA6
-:101AD00086C08111ACC01091E7011F778091E300AF
-:101AE0008078812B8093E3008091E800877F80934A
-:101AF000E8000E94F60A8091E80080FFFCCF809108
-:101B0000E30080688093E300111102C082E001C00D
-:101B100083E08093E4018BC08058823008F087C056
-:101B20008091E7019091E8018C3D53E0950779F5AC
-:101B300083E08A838AE289834FB7F894DE011396A3
-:101B400020E03EE051E2E32FF0E050935700E491B3
-:101B500020FF03C0E295EF703F5FEF708E2F90E0A3
-:101B6000EA3010F0C79601C0C0968D939D932F5F09
-:101B7000243149F74FBF8091E800877F8093E800C8
-:101B80006AE270E0CE0101960E94020A14C0AE0122
-:101B90004F5F5F4F6091E9010E944B09BC01892BA7
-:101BA00009F445C09091E800977F9093E8008981FF
-:101BB0009A810E94600A8091E8008B778093E80008
-:101BC00036C08038A1F58091E800877F8093E800D7
-:101BD0008091E0018093F1008091E8008E778093FE
-:101BE000E8000E94F60A23C0811121C08091E7011C
-:101BF0009091E80199270297D4F48091E800877FBB
-:101C00008093E8008091E7018093E0010E94F60A4A
-:101C10008091E001811106C08091E30087FD02C040
-:101C200081E001C084E08093E4010E944408809137
-:101C3000E80083FF0AC08091E800877F8093E80076
-:101C40008091EB0080628093EB00AA960FB6F89427
-:101C5000DEBF0FBECDBFDF91CF911F9108950895D4
-:101C6000CF938091E4018823A1F0C091E900CF7067
-:101C70009091EC00892F817090FD80E8C82B109224
-:101C8000E9008091E80083FD0E94D90CCF70C093D9
-:101C9000E900CF91089590936901809368010895B8
-:101CA000E0916801F0916901309721F00190F08195
-:101CB000E02D099480E00895E0916801F0916901B8
-:101CC000309721F00280F381E02D09940895E0918E
-:101CD0006801F0916901309721F00480F581E02DD1
-:101CE00009940895209166013091670128173907FA
-:101CF00071F09093670180936601E0916801F09123
-:101D00006901309721F00680F781E02D099408954C
-:101D100020916401309165012817390771F0909383
-:101D2000650180936401E0916801F0916901309749
-:101D300021F00084F185E02D0994089508950C9414
-:101D40009E0E0E945C1A0E940E040C94221BCF92DD
-:101D5000DF92EF92FF920F931F93CF93DF93CDB754
-:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433
-:101D700026048BE6C82E81E0D82E00E010E0E02E8D
-:101D8000802F0E941C05F60141916F01F82EF42668
-:101D9000B1F40F5F1F4F0E30110589F78FEF898364
-:101DA0008A831B820E94651A8160782F9D838C83B1
-:101DB00049815A816B818D810E944A0F40C0909168
-:101DC000CC0191FF04C08B870E9422058B8520E007
-:101DD00030E04F2D50E0922FBA01022E02C07595CF
-:101DE00067950A94E2F760FF24C02E83EF8221E01A
-:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E
-:101E00008C219D21892B09F420E028870E94651AE6
-:101E10008160782F9A8789874E815F8168858A855E
-:101E20000E944A0FF801E559FE4F8081C826C08202
-:101E300006C02F5F3F4F2630310569F6AACF0E94BA
-:101E4000091E0E94500E90916A018917A1F00E940C
-:101E5000500E80936A012B960FB6F894DEBF0FBE2A
-:101E6000CDBFDF91CF911F910F91FF90EF90DF9049
-:101E7000CF900C9446072B960FB6F894DEBF0FBE9A
-:101E8000CDBFDF91CF911F910F91FF90EF90DF9029
-:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2
-:101EA000F894DEBF0FBECDBF4F83588769877A870E
-:101EB0008B87DE01119686E0FD0111928A95E9F784
-:101EC00085E0FE01379601900D928A95E1F74981F0
-:101ED0005A816B817C818D819E810E944D162B964B
-:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E
-:101EF000CF93C82F882309F4C1C0823859F40E94B7
-:101F0000500E81FDBBC089E30E94EA180E94A2190D
-:101F100089E30CC0833879F40E94500E80FDAEC076
-:101F200083E50E94EA180E94A21983E50E942919FC
-:101F3000CF910C94A219843859F40E94500E82FD5E
-:101F40009DC087E40E94EA180E94A21987E4EECFA0
-:101F50008CEF8C0F813A48F48C2F0E94492081111C
-:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E
-:101F700048F4C77081E001C0880FCA95EAF70E9453
-:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6
-:101F9000C63A31F083E890E005C081E890E002C0E5
-:101FA00082E890E0CF910C94720E88E58C0F83311B
-:101FB00008F064C0C83A39F1C93A41F1CA3A49F166
-:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC
-:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F
-:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB
-:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B
-:1020000080E090E038C082EE90E035C089EE90E04C
-:1020100032C08AEE90E02FC085EB90E02CC086EBBA
-:1020200090E029C087EB90E026C08CEC90E023C0C4
-:102030008DEC90E020C083E891E01DC08AE891E03B
-:102040001AC082E991E017C084E991E014C081E2EE
-:1020500092E011C083E292E00EC084E292E00BC0F5
-:1020600085E292E008C086E292E005C087E292E055
-:1020700002C08AE292E0CF910C94880ECF9108952D
-:10208000882309F44BC0823859F40E94500E81FF16
-:1020900045C089E30E94EA180E94A21989E30CC096
-:1020A000833871F40E94500E80FF38C083E50E948F
-:1020B000EA180E94A21983E50E9429190C94A2191A
-:1020C000843859F40E94500E82FF28C087E40E9491
-:1020D000EA180E94A21987E4EFCF9CEF980F913A7B
-:1020E00058F390E2980F983050F4877091E001C057
-:1020F000990F8A95EAF7892F0E947119DFCF9BE526
-:10210000980F933020F480E090E00C94720E885A7F
-:10211000833120F480E090E00C94880E08958823A9
-:1021200021F00E946B190C94A2190895882321F0C4
-:102130000E9471190C94A2190895BF92CF92DF9258
-:10214000EF92FF920F931F93CF93DF9300D000D0B5
-:1021500000D0CDB7DEB77C0185E0F701DE01119636
-:1021600001900D928A95E1F7F70183819481892B83
-:1021700009F4DDC2908181818F3F19F49F3F09F4FA
-:10218000D6C2F7010281258122952F7099838A8317
-:1021900089819A812E830E94A918182FB92E0E9436
-:1021A000A8180E946F17EB2DE295EF704E2F50E0AC
-:1021B000FA01E05AFF4F2E810C948D228B2D807FE7
-:1021C0009B2D9F70F92E882319F0F29480EFF8224E
-:1021D000002349F0FF2009F457C28F2D0E947B197C
-:1021E0000E94A21951C2812F0E944010FF2009F4C1
-:1021F0009EC28F2D0E94811926960FB6F894DEBFDD
-:102200000FBECDBFDF91CF911F910F91FF90EF9047
-:10221000DF90CF90BF900C94A2193B2D307F8B2D77
-:102220008F70303211F08295807F112319F01130B8
-:1022300021F12CC00023B9F0222309F490C12130F0
-:1022400009F08DC126960FB6F894DEBF0FBECDBF44
-:10225000DF91CF911F910F91FF90EF90DF90CF9082
-:10226000BF900C948B19222319F0213009F45FC21E
-:102270008E830E948E198E8186C1002321F0223028
-:1022800008F055C26CC1211152C27DC1002321F05A
-:10229000222309F464C1F8C1222309F474C109C2DC
-:1022A0008B2D86958695837019F08130D1F03FC2D1
-:1022B000002321F0812F9B2D937002C080E090E0DD
-:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B
-:1022D0001F910F91FF90EF90DF90CF90BF900C94E3
-:1022E000720E002321F0812F9B2D937002C080E09D
-:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB
-:10230000CF911F910F91FF90EF90DF90CF90BF90F2
-:102310000C94880E812F002319F00E94111D02C019
-:102320000E94791D26960FB6F894DEBF0FBECDBF72
-:10233000DF91CF911F910F91FF90EF90DF90CF90A1
-:10234000BF900C94FE1D8B2D837009F075C0011198
-:10235000EEC1812F829586958770880F880F912F07
-:102360009F70C92ED12CE12CF12C082E04C0CC0C6E
-:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004
-:1023800010E020E030E004C0000F111F221F331FB7
-:102390008A95D2F7C901B80160957095809590959E
-:1023A00003C060E070E0CB014B2D4695469543702D
-:1023B0004230C1F060F56C297D298E299F2941307A
-:1023C00051F126960FB6F894DEBF0FBECDBFDF9158
-:1023D000CF911F910F91FF90EF90DF90CF90BF9022
-:1023E0000C9496176C297D298E299F2926960FB665
-:1023F000F894DEBF0FBECDBFDF91CF911F910F913B
-:10240000FF90EF90DF90CF90BF900C94B2170E9496
-:102410009617C701B60126960FB6F894DEBF0FBE19
-:10242000CDBFDF91CF911F910F91FF90EF90DF9083
-:10243000CF90BF900C947A17002319F08B2D8170E8
-:1024400001C08695882309F472C1812F82958695F3
-:102450008770880F880F912F9F70C92ED12CE12C87
-:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1
-:10247000D2F714FF12C00FE010E020E030E004C0FB
-:10248000000F111F221F331F8A95D2F7C901B8010F
-:10249000609570958095909503C060E070E0CB01E9
-:1024A0004B2D4695469543704230C1F060F56C293E
-:1024B0007D298E299F29413051F126960FB6F89437
-:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067
-:1024D000EF90DF90CF90BF900C9470186C297D29FD
-:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A
-:1024F000DF91CF911F910F91FF90EF90DF90CF90E0
-:10250000BF900C948C180E947018C701B6012696D3
-:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4
-:102520000F91FF90EF90DF90CF90BF900C945418D4
-:10253000103FD1F118F4103E50F4A1C0123F09F43D
-:1025400063C008F44CC0133F09F473C098C01F70F7
-:102550008B2D8F710023A1F00E94ED17812F2696FD
-:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4
-:102570000F91FF90EF90DF90CF90BF900C948F1051
-:102580000E940E18812F26960FB6F894DEBF0FBE5C
-:10259000CDBFDF91CF911F910F91FF90EF90DF9012
-:1025A000CF90BF900C9496100023A9F02111BFC0CA
-:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60
-:1025C000DF91CF911F910F91FF90EF90DF90CF900F
-:1025D000BF900C943318223008F0A9C0E9CF002333
-:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23
-:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2
-:10260000CF90BF900C94ED17002359F38B2D8F7151
-:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7
-:102620001F910F91FF90EF90DF90CF90BF900C948F
-:102630000E18002399F08B2D8F7126960FB6F89403
-:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5
-:10265000EF90DF90CF90BF900C94D81726960FB6CE
-:10266000F894DEBF0FBECDBFDF91CF911F910F91C8
-:10267000FF90EF90DF90CF90BF900C94CE17002387
-:10268000A9F0222309F4ADCF812F26960FB6F89436
-:10269000DEBF0FBECDBFDF91CF911F910F91FF9095
-:1026A000EF90DF90CF90BF900C94780F222309F425
-:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB
-:1026C000DF91CF911F910F91FF90EF90DF90CF900E
-:1026D000BF900C9440104B2D4F70612FC7010E948A
-:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7
-:1026F000CF911F910F91FF90EF90DF90CF90BF90FF
-:102700000C94F2164B2D4F70612FC70126960FB611
-:10271000F894DEBF0FBECDBFDF91CF911F910F9117
-:10272000FF90EF90DF90CF90BF900C94E30526963A
-:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2
-:102740000F91FF90EF90DF90CF90BF9008950E947F
-:1027500088190E945D190E94A2190E94AE1E0E9453
-:10276000FE1D80E090E00E94720E80E090E00C94EC
-:10277000880E0E9478190C94A7130E94A918292F7B
-:1027800022952F702C3030F42A3048F42250223019
-:1027900078F405C02C3041F02F3031F009C0803E74
-:1027A00048F0803F29F406C093FB882780F90895FC
-:1027B00080E0089581E00895CF93DF9300D000D0AA
-:1027C0001F92CDB7DEB70F900F900F900F900F9024
-:1027D000DF91CF910895CF93DF9300D000D000D048
-:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD
-:1027F000DF91CF9108951F93CF93DF93C09179011B
-:1028000016E080917A01C81799F0D0E01C9FF00182
-:102810001D9FF00D1124E558FE4F408151816281CA
-:102820007381848195810E94EB132196C770E9CF53
-:10283000DF91CF911F9108954091AB015091AC0170
-:102840006091AD017091AE018091AF019091B001A6
-:102850000C94EB138091B00182958F7009F054C0F5
-:102860008091AD01882309F44FC080917901A09136
-:102870007A014091AE015091AF016091AB0170912E
-:10288000AC01B6E08A1709F43FC090E0411551054C
-:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3
-:1028A000F00D1124E558FE4F218127132AC0208105
-:1028B000261327C02281211124C0238134812417AB
-:1028C000350710F421503109241B350B283C310504
-:1028D000C0F42091B0012F7020612093B00126E058
-:1028E000289FF001299FF00D1124E058FE4F8081B0
-:1028F0008F70806180838BEA91E00E949D100C9420
-:10290000FB1301968770BECF0895CF92DF92EF92AE
-:10291000FF920F931F93CF93DF93CDB7DEB76297EC
-:102920000FB6F894DEBF0FBECDBF8C0185E0F80175
-:10293000DE011D9601900D928A95E1F7D8014C9128
-:1029400011965C91119712966C918091AE019091C5
-:10295000AF01009709F475C13091AB017091AC01E2
-:102960007F3F19F43F3F09F46CC1F801C380D48064
-:10297000E090AD01EE2009F4BEC02091B001C81670
-:10298000D90628F0D601A81BB90BCD0104C080954B
-:1029900090958C0D9D1DFF24F394883C910578F053
-:1029A000F12C207F09F0C4C07C2DD98AC88A89897E
-:1029B0000E94DC138BEA91E00E949D10AFC0822F31
-:1029C000807F09F045C0571313C0431311C0611134
-:1029D0000FC02F7020612093B0010E941C148BEA5D
-:1029E00091E00E949D108091B001F80185832EC076
-:1029F000CD2819F15F3F11F44F3FF9F0F62E611128
-:102A00001CC08091790120917A0136E0821709F487
-:102A10005BC090E0389FF001399FF00D1124E5581C
-:102A2000FE4F7181571306C07081471303C0728136
-:102A3000711103C001968770E9CFF62E662309F461
-:102A40001CC18091B00181608093B001F12C15C14F
-:102A5000571309C0431307C0611105C08091B0012D
-:102A6000F8018583C8C04D875E878D859E856A8BFA
-:102A70000E94BD136A898823D1F16623C1F1209198
-:102A8000B001822F82958F7090E0029774F0809150
-:102A9000AB019091AC0198878F831986DB86CA863B
-:102AA0002C87CE0107960E949D1086E0F801ABEAC4
-:102AB000B1E001900D928A95E1F70E942A140E94DC
-:102AC0001C14FF24F394D9C04D875E878D859E85A5
-:102AD0000E94A918292F22952F70223008F0C1C01A
-:102AE0009F7009F0BBC0805E883008F4C6C0C80182
-:102AF0000E949D10E6CFC816D90608F453C0F6010F
-:102B0000E81BF90BCF01883C910508F450C0F12C6B
-:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E
-:102B200086E0DF011D928A95E9F70E941C14A5C07A
-:102B3000571314C0431312C0611110C08091B0012B
-:102B4000F8018583C8010E949D1086E0EBEAF1E060
-:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5
-:102B60008D859E856A8B0E94BD136A89882309F42E
-:102B7000BECF662309F4BBCF2091B001822F82958E
-:102B80008F7090E002970CF490CF8091AB01909100
-:102B9000AC019A8389831B82DD82CC822E83CE0195
-:102BA000019681CF809590958C0D9D1DACCFF62E12
-:102BB000662309F49CCF571333C0431331C02091CF
-:102BC000B00120FD24C0822F82958F70482F50E0E5
-:102BD00041155105E1F0D80115962C9315974F300A
-:102BE000510549F08F5F982F9295907F822F8F70BB
-:102BF000892B15968C93C8010E949D1086E0F801E0
-:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4
-:102C1000F801ABEAB1E001900D928A95E1F72DC081
-:102C20004D875E878D859E850E94BD1381113DCFA6
-:102C30008091B00181608093B001C8010E949D1015
-:102C40001CC0662309F453CF4D875E878D859E8512
-:102C50000E94BD13882309F44ACF27CF811143CFA7
-:102C60000CC0243008F043CF9F7009F43CCFD8014A
-:102C700015969C91907F09F036CF8F2D62960FB6F6
-:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2
-:102C9000FF90EF90DF90CF9008951F93CF93DF9335
-:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01
-:102CB0004F83588769877A878B879C87CE010796D1
-:102CC0000E948514882371F08A859B85892B09F4DD
-:102CD00041C088858F3F09F065C08F818F3F09F023
-:102CE00061C038C086E0FE013796DE011196019082
-:102CF0000D928A95E1F76A857B856115710551F121
-:102D0000FF81E885EF3F11F4FF3F21F120917A0127
-:102D100030E0C9010196877099274091790150E010
-:102D20008417950709F447C0F983EA837D836C8390
-:102D300096E0929FD001939FB00D1124A558BE4FED
-:102D4000FE01319601900D929A95E1F780937A01F8
-:102D50000E94FB1316E08091790190917A01891706
-:102D6000B9F1189FC001112485589E4F0E94851407
-:102D7000882371F1E09179011E9FF0011124E5583B
-:102D8000FE4F4081518162817381848195810E94CF
-:102D9000EB138091790190E00196877099278093D9
-:102DA0007901D9CF4F81588569857A858B859C8536
-:102DB0000E94EB13CFCF0E94B91310927A011092A8
-:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF
-:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A
-:102DE0001F910895EF92FF920F931F93CF93DF935C
-:102DF0008C01892B09F46CC0F12CEE24E394E801DA
-:102E00002196F8018491843740F4843008F051C051
-:102E1000813081F0823019F15BC0853709F444C0FC
-:102E2000A8F19CE7980F903708F052C08F770E9466
-:102E3000401041C00E5F1F4FFE01849190E2980F39
-:102E4000983050F48770FE2D01C0FF0F8A95EAF785
-:102E50008F2F0E947B1914C00E94780F2DC00E5F27
-:102E60001F4FFE01849190E2980F983060F48770B4
-:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E
-:102E80000E94A21919C00E94401016C00E5F1F4F69
-:102E9000FE01C491CC2381F08FE99FE00197F1F707
-:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E
-:102EB00003C00E94780F8E018F2D882309F49FCFC5
-:102EC000EFE9FFE03197F1F700C000008150F5CF46
-:102ED000DF91CF911F910F91FF90EF90089508958A
-:102EE0006093B5017093B6018093B7019093B801D8
-:102EF0000C94A7130F931F930091B5011091B60185
-:102F00002091B7013091B801DC01CB01802B912BCE
-:102F1000A22BB32B8093B5019093B601A093B70178
-:102F2000B093B8011F910F910C94A7130F931F93A7
-:102F30000091B5011091B6012091B7013091B8010F
-:102F4000DC01CB0180239123A223B3238093B5011D
-:102F50009093B601A093B701B093B8011F910F9160
-:102F60000C94A7130F931F930091B5011091B60114
-:102F70002091B7013091B801DC01CB018027912766
-:102F8000A227B3278093B5019093B601A093B70110
-:102F9000B093B8011F910F910C94A7131092B10137
-:102FA0001092B2011092B3011092B4010C94A713C5
-:102FB00041E050E060E070E004C0440F551F661F20
-:102FC000771F8A95D2F74093B1015093B201609375
-:102FD000B3017093B4010C94A71341E050E060E09A
-:102FE00070E004C0440F551F661F771F8A95D2F703
-:102FF0008091B1019091B201A091B301B091B4015F
-:10300000482B592B6A2B7B2B4093B1015093B20173
-:103010006093B3017093B4010C94A71341E050E0A6
-:1030200060E070E004C0440F551F661F771F8A954B
-:10303000D2F740955095609570958091B10190912F
-:10304000B201A091B301B091B401482359236A237E
-:103050007B234093B1015093B2016093B30170930D
-:10306000B4010C94A71341E050E060E070E004C0AC
-:10307000440F551F661F771F8A95D2F78091B101C3
-:103080009091B201A091B301B091B40148275927A2
-:103090006A277B274093B1015093B2016093B3013B
-:1030A0007093B4010C94A7130F931F930091B10177
-:1030B0001091B2012091B3013091B401DC01CB0138
-:1030C000802B912BA22BB32B8093B1019093B20153
-:1030D000A093B301B093B4011F910F910C94A71367
-:1030E0000F931F930091B1011091B2012091B30190
-:1030F0003091B401DC01CB0180239123A223B323BF
-:103100008093B1019093B201A093B301B093B40145
-:103110001F910F910C94A7130F931F930091B1016E
-:103120001091B2012091B3013091B401DC01CB01C7
-:1031300080279127A227B3278093B1019093B201F2
-:10314000A093B301B093B4011F910F910C94A713F6
-:103150000895CF92DF92EF92FF920F931F93CF9338
-:10316000DF938C01C090B101D090B201E090B30127
-:10317000F090B4018091B5019091B601A091B70192
-:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7
-:10319000D701C6010C2E04C0B695A79597958795C3
-:1031A0000A94D2F780FF07C0B8018C2F0E9407064F
-:1031B0008130910531F4219758F7B80180E00E94E1
-:1031C0000706DF91CF911F910F91FF90EF90DF9055
-:1031D000CF90089590910C019923F1F090910D01F9
-:1031E0009923D1F0982F9695969596959F3080F5D6
-:1031F000E0910E01F0910F01E90FF11D877021E0C0
-:1032000030E0A90102C0440F551F8A95E2F7CA01B8
-:103210009181892B8183089520910E0130910F01B6
-:10322000F90132969FEF40E05191851789F09F3F59
-:1032300019F4511101C0942F4F5F4E30A9F79F3FF1
-:1032400039F0F901E90FF11D97FDFA958283089590
-:10325000089590910C019923F9F090910D01992313
-:10326000D9F0982F9695969596959F3028F5E091F0
-:103270000E01F0910F01E90FF11D877021E030E0A0
-:10328000A90102C0440F551F8A95E2F7CA01809533
-:10329000918189238183089520910E0130910F013E
-:1032A000F9013296205F3F4F9081891301C010824F
-:1032B0003196E217F307C1F7089581E090E0E091BD
-:1032C0000E01F0910F01E80FF91F10820196803175
-:1032D0009105A9F708959091CB01892B8093CB019B
-:1032E000089580959091CB0189238093CB01089517
-:1032F0001092CB0108959091CA01892B8093CA0145
-:10330000089580959091CA0189238093CA010895F8
-:103310001092CA0108958093B90108951092B901DD
-:10332000089580910E0190910F01FC0131969C014E
-:10333000205F3F4F80E0919191118F5FE217F3077B
-:10334000D1F70895E0910E01F0910F018091CB012A
-:103350008083E0910E01F0910F0190818091CA016C
-:10336000892B80838091B901882361F0E0910E015F
-:10337000F0910F019081892B80830E949119811116
-:103380001092B90180910E0190910F010C945C0E86
-:10339000CF92DF92EF92FF926C01EE24FF24C114D2
-:1033A000D104E104F10421F0C701B60120E101C01C
-:1033B00020E0C72ED82EE92EFF24C114D104E10449
-:1033C000F10419F0285FC701B6016B017C0154E0DC
-:1033D000F694E794D794C7945A95D1F7C114D104C1
-:1033E000E104F10419F02C5FC701B6016B017C0107
-:1033F00042E0F694E794D794C7944A95D1F7C11464
-:10340000D104E104F10419F02E5FC701B601DC011B
-:10341000CB01B695A79597958795892B8A2B8B2BF2
-:1034200009F02F5F822FFF90EF90DF90CF900895EB
-:103430008091E401843011F120E488E190E00FB63E
-:10344000F894A895809360000FBE2093600083B726
-:10345000817F846083BF83B7816083BF78948895C0
-:1034600083B78E7F83BF0FB6F894A89580916000D4
-:10347000886180936000109260000FBE08950895E7
-:103480000C943F1ACF930E94401A0E9426040E9477
-:103490003F1AC0E08C2F0E941C05811104C0CF5F31
-:1034A000CE30C1F701C081E0CF9108950E94B913D9
-:1034B0000E94500E0C94460782E084BD93E095BDB7
-:1034C0009AEF97BD80936E0008952FB7F89480917E
-:1034D000CD019091CE01A091CF01B091D0012FBF2D
-:1034E0000895CF92DF92EF92FF920F931F932FB721
-:1034F000F8944091CD015091CE016091CF0170912F
-:10350000D0012FBF6A017B01EE24FF248C0120E053
-:1035100030E0C016D106E206F30610F4415051091E
-:103520009A01281B390BC9011F910F91FF90EF9051
-:10353000DF90CF9008951F920F920FB60F92112433
-:103540008F939F93AF93BF938091CD019091CE01C4
-:10355000A091CF01B091D0010196A11DB11D809322
-:10356000CD019093CE01A093CF01B093D001BF9134
-:10357000AF919F918F910F900FBE0F901F90189554
-:103580000E94480BF8942FEF87EA91E62150804083
-:103590009040E1F700C0000087E090EBDC018093F1
-:1035A000ED019093EE01A093EF01B093F0019CE048
-:1035B00088E10FB6F894A895809360000FBE9093B1
-:1035C0006000FFCFEF92FF920F931F93CF93DF9393
-:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0
-:1035E000F12CC701002E02C0959587950A94E2F749
-:1035F00080FD06C00F5F1F4F0630110591F709C00F
-:10360000602F7C2F80E00E94E4058D13F3CF81E0D2
-:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3
-:103620000F91FF90EF900895CF93C82F8CE20E94E6
-:10363000E21A882321F08C2FCF910C94E21A80E0BB
-:10364000CF910895CF930E94691C811102C00E94FE
-:103650004F1CC5E6C15049F00E9426048FE39CE947
-:103660000197F1F700C00000F5CF89E20E94141B1A
-:10367000811113C18AE20E94141B81110E944F1C08
-:1036800085E00E94141B81110E94C01A0E94741CC4
-:103690008093CC0187E00E94141B8823A9F18BE161
-:1036A0000E94141B882351F08091CC0181FB2227BA
-:1036B00020F991E0922790FB81F90EC08EE00E94E4
-:1036C000141B882361F08091CC0182FB222720F912
-:1036D00091E0922790FB82F98093CC0115C080E1A4
-:1036E0000E94141B9091CC01882341F093FB222768
-:1036F00020F981E0822780FB93F904C0892F80950F
-:1037000080FB90F99093CC018091CC010E94781CB1
-:103710000E94861C8093DE0180EE0E94141B882389
-:1037200041F08091DE01982F909590FB80F9809375
-:10373000DE0189E30E94141B882359F08091DE0189
-:1037400081FB222720F991E0922790FB81F9809359
-:10375000DE0182EE0E94141B882359F08091DE0165
-:1037600082FB222720F991E0922790FB82F9809337
-:10377000DE0186EE0E94141B882359F08091DE0141
-:1037800083FB222720F991E0922790FB83F9809315
-:10379000DE0183EE0E94141B882359F08091DE0124
-:1037A00084FB222720F991E0922790FB84F98093F3
-:1037B000DE0185E30E94141B882359F08091DE010D
-:1037C00085FB222720F991E0922790FB85F98093D1
-:1037D000DE0181E30E94141B882359F08091DE01F1
-:1037E00086FB222720F991E0922790FB86F98093AF
-:1037F000DE0181E10E94141B882359F08091DE01D3
-:1038000087FB222720F991E0922790FB87F980938C
-:10381000DE018091DE010E948A1C8091DE0187FB1F
-:10382000882780F980930D0187E20E94141BC82F1E
-:103830008EE10E94141B8111C2608FE10E94141B53
-:103840008111C46080E20E94141B8111C86081E272
-:103850000E94141B8111C06182E20E94141B81111D
-:10386000C06283E20E94141B8111C06484E20E9442
-:10387000141B882311F0C06802C0CC2329F08C2FC0
-:103880000E94811C6C2F03C00E947D1C682F70E079
-:1038900080E090E0CF910C947017CF9108956DEE79
-:1038A0007EEF80E090E00E94C32260E082E090E042
-:1038B0000E94B52260E083E090E00E94B52260E0C3
-:1038C00084E090E00E94B52260E085E090E00C94F6
-:1038D000B52280E090E00E94AF2221E08D3E9E4F15
-:1038E00009F020E0822F089582E090E00C94A72256
-:1038F000682F82E090E00C94B52283E090E00C9475
-:10390000A722682F83E090E00C94B52284E090E039
-:103910000C94A722682F84E090E00C94B52280914B
-:10392000D30180FF0BC06091130185E0689FB00157
-:10393000112475956795759567952BC081FF09C012
-:103940006091130185E0689FB0011124759567951A
-:1039500020C082FF07C06091130185E0689FB0011D
-:10396000112417C09091D4019923D1F060911201D4
-:10397000961788F72091130185E0289F9001112464
-:10398000929FA001939F500D112470E0CA010E94E4
-:1039900079226038710540F46115710519F406C08B
-:1039A00065E070E0862F08958FE7089581E008951F
-:1039B0008091D30180FF08C06091110170E075957E
-:1039C00067957595679521C081FF06C060911101CB
-:1039D00070E07595679519C082FF04C06091110170
-:1039E00070E010C09091D401992399F0609110017A
-:1039F0009617A0F780911101899FC001112470E0F2
-:103A00000E9479226038710540F46115710519F43E
-:103A100006C061E070E0862F08958FE7089581E089
-:103A20000895803F21F40E948F1C819504C0813F3E
-:103A300029F40E948F1C8093D7010895823F21F4BE
-:103A40000E948F1C819504C0833F29F40E948F1C23
-:103A50008093D6010895893F19F40E94D81C05C0AF
-:103A60008A3F31F40E94D81C81958093D801089533
-:103A70008B3F21F40E94D81C819504C08C3F29F40F
-:103A80000E94D81C8093D9010895843F21F480912D
-:103A9000D501816017C0853F21F48091D5018260F6
-:103AA00011C0863F21F48091D50184600BC0873F0F
-:103AB00021F48091D501886005C0883F31F4809160
-:103AC000D50180618093D50108958D3F21F48091C7
-:103AD000D30181600BC08E3F21F48091D3018260BD
-:103AE00005C08F3F29F48091D30184608093D30176
-:103AF0000895803F39F48091D70187FF6CC0109200
-:103B0000D70169C0813F29F48091D7011816BCF311
-:103B100062C09091D601823F29F497FF5CC0109259
-:103B2000D60159C0833F19F41916CCF354C0893F0C
-:103B300041F48091D80118160CF04DC01092D801B4
-:103B40004AC08A3F29F48091D80187FF44C0F6CF4C
-:103B50008B3F39F48091D90187FF3DC01092D90184
-:103B60003AC08C3F29F48091D9011816BCF333C0B8
-:103B7000843F21F48091D5018E7F17C0853F21F4C9
-:103B80008091D5018D7F11C0863F21F48091D501B0
-:103B90008B7F0BC0873F21F48091D501877F05C0C3
-:103BA000883F31F48091D5018F7E8093D50113C079
-:103BB0008D3F21F48091D3018E7F0BC08E3F21F485
-:103BC0008091D3018D7F05C08F3F29F48091D3016F
-:103BD0008B7F8093D3018091D60181110EC080919B
-:103BE000D70181110AC08091D801811106C080914E
-:103BF000D901811102C01092D401089585ED91E0A0
-:103C00000E94670E0E94651A9093D2018093D101A1
-:103C100008951F93CF93DF938091D1019091D201AA
-:103C20000E94711AAC019091D401992321F0209146
-:103C3000140130E006C0209115018AE0289F900110
-:103C400011244217530708F485C08091D601C09112
-:103C5000D701D091D8011091D901811107C0C111AC
-:103C600075C0D11173C0111171C074C09F3F19F09C
-:103C70009F5F9093D401181624F40E948F1C8093A8
-:103C8000D6018091D60187FF05C00E948F1C8195C7
-:103C90008093D6011C1624F40E948F1C8093D701B8
-:103CA0008091D70187FF05C00E948F1C819580936A
-:103CB000D7016091D601662331F1C091D701CC23A1
-:103CC00011F1062E000C770B880B990B0E948021B6
-:103CD00023E333E343E35FE30E94E4210E944821AE
-:103CE0006093D6016C2FCC0F770B880B990B0E9439
-:103CF000802123E333E343E35FE30E94E4210E9456
-:103D000048216093D7011D1624F40E94D81C80938B
-:103D1000D8018091D80187FF05C00E94D81C8195E9
-:103D20008093D801111624F40E94D81C8093D901E5
-:103D30008091D90187FF05C00E94D81C819580938E
-:103D4000D901DF91CF911F910C94FE1D9F3F09F087
-:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6
-:103D600085E0DF011D928A95E9F71092D401109247
-:103D7000D3010895833081F128F4813059F08230E5
-:103D8000D1F00895853009F449C0B8F1863009F4BE
-:103D900056C0089580911501262F30E0280F311D5F
-:103DA0002F3F310524F4680F6093150108958FEFBC
-:103DB00080931501089580911401262F30E0280F7B
-:103DC000311D2F3F310524F4680F609314010895CD
-:103DD0008FEF80931401089580911301262F30E016
-:103DE000280F311D2F3F310524F4680F6093130114
-:103DF00008958FEF80931301089580911201262F6B
-:103E000030E0280F311D2F3F310524F4680F6093F7
-:103E1000120108958FEF809312010895809111018E
-:103E2000262F30E0280F311D2F3F310524F4680F75
-:103E30006093110108958FEF80931101089580918F
-:103E40001001262F30E0280F311D2F3F310524F4BB
-:103E5000680F6093100108958FEF8093100108950B
-:103E6000833011F128F4813049F0823091F00895C7
-:103E7000853081F120F18630C1F1089580911501DE
-:103E8000681720F4861B8093150108951092150180
-:103E9000089580911401681720F4861B8093140103
-:103EA000089510921401089580911301681720F469
-:103EB000861B809313010895109213010895809139
-:103EC0001201681720F4861B809312010895109246
-:103ED0001201089580911101681720F4861B8093C8
-:103EE0001101089510921101089580911001681731
-:103EF00020F4861B809310010895109210010895FC
-:103F00000F931F938D3109F46BC008F03FC08E30C2
-:103F100009F47DC0C0F4873009F46EC068F48630BF
-:103F200009F0AFC08091CC01817F8E7F8093CC015E
-:103F300081E08093DB01A6C0883009F458C08B3043
-:103F400009F49BC09EC0863109F497C078F4803193
-:103F500009F470C0813109F094C00E94B9139091A6
-:103F60000D0181E0892780930D0187C0893109F413
-:103F700084C08B3109F085C08091CC0181FB222760
-:103F800020F991E0922790FB81F94AC0853309F42A
-:103F90005BC048F4873209F457C008F45AC089322C
-:103FA00009F452C06EC0833438F48A3308F067C015
-:103FB000883309F462C065C0833409F445C088348D
-:103FC00009F05FC00E94B9130FEF13ED20E3015019
-:103FD00010402040E1F700C000000E94C01A4DC010
-:103FE0000E9402210E94500E0E94460746C00E9475
-:103FF000741C0E94861C41C09091CC01892F817055
-:1040000090FF12C0917F9E7F9093CC013BC0809126
-:10401000CC0182FB222720F991E0922790FB82F9C4
-:104020008093CC01992349F18091CC0181608093E8
-:10403000CC0123C08091CC0183FB222720F991E0A1
-:10404000922790FB83F9ECCF61E070E080E090E094
-:1040500010C08D5141E050E060E070E08A019B01AA
-:1040600004C0000F111F221F331F8A95D2F7C90108
-:10407000B8010E9470170E94B91381E003C08953F0
-:10408000E9CF80E01F910F91089580E008950C948E
-:104090004520CF93C82F8091DB01813079F018F053
-:1040A0008230E9F187C0E0910E01F0910F0180812B
-:1040B000813169F0823209F07FC009C0E0910E01C0
-:1040C000F0910F018081813111F0823261F48C2FE7
-:1040D0000E944720811104C08C2F0E94801F1DC0A8
-:1040E00081E090E01AC08C2F0E944520811114C0FD
-:1040F000C43179F048F4CB3079F0C03109F060C0B8
-:1041000082E08093DB0108C0C93219F0C83321F086
-:1041100057C01092DB0154C081E0817053C0C93296
-:1041200089F118F5C43171F1A8F4C73009F046C01F
-:104130008AE08093150194E19093140193E09093A9
-:1041400013018093120188E08093110188E280932B
-:10415000100134C0CE51C63088F5EC2FF0E0E65D9A
-:10416000FE4F80818093DA0129C0CE34E9F020F43B
-:10417000CB3421F56AE013C0C13579F0C235F1F4D2
-:1041800061E00DC08091DA01882319F01092DA0104
-:1041900015C081E08093DB0115C061E006C080910D
-:1041A000DA010E94BA1E0AC06AE08091DA010E9418
-:1041B000301F04C01092DB0180E004C081E002C027
-:1041C00080E0ABCFCF910895E1E8F0E08081886096
-:1041D00080838081816080838FB7F89493E090938F
-:1041E000890090ED909388008FBF0895EFE6F0E08E
-:1041F0008081826080830895EFE6F0E080818D7F8A
-:1042000080830895EFE6F0E0908182E08927808343
-:1042100008951F920F920FB60F9211242F933F9380
-:104220004F935F936F937F938F939F93AF93BF93BE
-:10423000EF93FF938091DC019091DD0101969093C3
-:10424000DD018093DC01811103C082E00E944607FA
-:10425000E091DD01E695E695F0E0E657FB4FE4914D
-:104260008091DC018E1303C080E00E944607FF911D
-:10427000EF91BF91AF919F918F917F916F915F91DE
-:104280004F913F912F910F900FBE0F901F90189557
-:104290000E944F216894B1110C94DE2108950E9470
-:1042A000C32188F09F5798F0B92F9927B751B0F0E4
-:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA
-:1042C00014C0B13091F00E94DD21B1E008950C944A
-:1042D000DD21672F782F8827B85F39F0B93FCCF3FD
-:1042E000869577956795B395D9F73EF49095809527
-:1042F000709561957F4F8F4F9F4F0895E89409C047
-:1043000097FB3EF490958095709561957F4F8F4F08
-:104310009F4F9923A9F0F92F96E9BB279395F6951E
-:10432000879577956795B795F111F8CFFAF4BB0F9C
-:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000
-:10434000882311F096E911C0772321F09EE8872F8A
-:10435000762F05C0662371F096E8862F70E060E046
-:104360002AF09A95660F771F881FDAF7880F9695BF
-:10437000879597F9089557FD9058440F551F59F0A8
-:104380005F3F71F04795880F97FB991F61F09F3F42
-:1043900079F087950895121613061406551FF2CF6B
-:1043A0004695F1DF08C0161617061806991FF1CFBB
-:1043B00086957105610508940895E894BB276627E2
-:1043C0007727CB0197F908950E94F7210C94682272
-:1043D0000E945A2238F00E94612220F0952311F0A9
-:1043E0000C9451220C94572211240C94DE210E942B
-:1043F000BB2170F3959FC1F3950F50E0551F629F4D
-:10440000F001729FBB27F00DB11D639FAA27F00D2D
-:10441000B11DAA1F649F6627B00DA11D661F829F54
-:104420002227B00DA11D621F739FB00DA11D621F39
-:10443000839FA00D611D221F749F3327A00D611D56
-:10444000231F849F600D211D822F762F6A2F112438
-:104450009F5750409AF0F1F088234AF0EE0FFF1F6B
-:10446000BB1F661F771F881F91505040A9F79E3FC2
-:10447000510580F00C9451220C94DE215F3FE4F34F
-:10448000983ED4F3869577956795B795F795E79518
-:104490009F5FC1F7FE2B880F911D9695879597F921
-:1044A000089597F99F6780E870E060E008959FEFB6
-:1044B00080EC089500240A941616170618060906BB
-:1044C000089500240A94121613061406050608958A
-:1044D000092E0394000C11F4882352F0BB0F40F412
-:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52
-:1044F000089597FB072E16F4009407D077FD09D096
-:104500000E94932207FC05D03EF4909581959F4F21
-:104510000895709561957F4F0895EE0FFF1F0590E8
-:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF
-:10453000BB1FA617B70710F0A61BB70B881F991F44
-:104540005A95A9F780959095BC01CD010895F999E8
-:10455000FECF92BD81BDF89A992780B50895A8E154
-:10456000B0E042E050E00C94CA22262FF999FECF29
-:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80
-:104580000FBE019608950E94B522272F0C94B622E3
-:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03
-:1045A000F89A319600B40D9241505040B8F70895F2
-:0445B000F894FFCFAD
-:1045B40020024707D707B2077E074A070101BA015D
-:1045C40028080A03140A3F4D36394B04FE03C80376
-:1045D4008F0322033B0354036D0301020304050606
-:0445E40007080900BB
+:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A
+:1004E0009091EF01A091F001B091F1018730904B14
+:1004F000A740B04BB9F41092EE011092EF011092A8
+:10050000F0011092F10114BE84B7877F84BF88E1A7
+:100510000FB6F89480936000109260000FBEE0E088
+:10052000FFE3099511E0A0E0B1E0EAE9F5E402C0DB
+:1005300005900D92A433B107D9F721E0A4E3B1E00F
+:1005400001C01D92AE3EB207E1F70E94F6080C947E
+:10055000CB220C94000061110BC0FC018281882326
+:1005600021F085EE0E94570F03C085EE0E941F10F8
+:1005700080E090E0089508956091B1017091B2011A
+:100580008091B3019091B4010E94D91956985E9858
+:1005900025982D9826982E9827982F98813019F015
+:1005A000823021F00895259A2D9A0895269A2E9A40
+:1005B00008950C94BC0256985E9825982D9826981C
+:1005C0002E9827982F988FEF90E090938900809332
+:1005D000880090938B0080938A0090938D00809385
+:1005E0008C00259A2D9A2FEF80E792E021508040D1
+:1005F0009040E1F700C00000269A2E9A2FEF80E786
+:1006000092E0215080409040E1F700C00000279A1E
+:100610002F9A2FEF80E792E0215080409040E1F741
+:1006200000C0000025982D982FEF80E792E0215020
+:1006300080409040E1F700C0000026982E982FEFF0
+:1006400080E792E0215080409040E1F700C0000038
+:1006500027982F9856985E9825982D9826982E982A
+:1006600027982F98089589EA8093800089E08093E5
+:10067000810024982C983F988AB18F748AB96E981B
+:10068000479A8BB1806B8BB9769A0E94DB020C94EF
+:10069000BB0280E2809300018091340181110EC081
+:1006A0000E94980381E0809334012FEF83ED90E363
+:1006B000215080409040E1F700C0000080E40E949B
+:1006C0009E038093000181112EC00E94C803809375
+:1006D0000001811128C00E94C8038093000181118C
+:1006E00022C08FE30E94C8038093000181111BC0C8
+:1006F0000E94C00380E40E949E0380930001811148
+:1007000012C08CE00E94C8038093000181110BC0CD
+:100710000E94C80380930001811105C08FE30E94ED
+:10072000C803809300010E94C003809100010895D6
+:100730001092B9008AE08093B800089594EA9093EB
+:10074000BC009091BC0097FFFCCF9091B900987FBE
+:10075000983021F0903111F081E008958093BB0032
+:1007600084E88093BC008091BC0087FFFCCF80911F
+:10077000B900887F883111F0803471F780E00895E6
+:1007800084E98093BC008091BC0084FDFCCF089577
+:100790008093BB0084E88093BC008091BC0087FFFD
+:1007A000FCCF9091B900987F81E0983209F480E005
+:1007B000089584E88093BC008091BC0087FFFCCF43
+:1007C0008091BB00089580910001811115C080E4E3
+:1007D0000E949E038093000181110CC082E10E945F
+:1007E000C80380930001811105C08FEF0E94C803E8
+:1007F000809300010E94C00384B1807F84B985B1D9
+:10080000807F85B98AB1837F8AB98BB1837F8BB9A9
+:100810003E98469808950E944903809300010E94E3
+:10082000E30380B38C7080BB81B3836F81BBE4E44E
+:10083000F1E0A6E3B1E011921D9281E0E235F80704
+:10084000D1F70C943303BF92CF92DF92EF92FF92D5
+:100850000F931F93CF93DF9380910001882379F04A
+:10086000809135018F5F80933501811108C00E940E
+:10087000490380930001811102C00E94DB0206E35C
+:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455
+:10089000E394F12CC73000F580910001811162C012
+:1008A00080E40E949E0380930001811112C082E1C6
+:1008B0000E94C8038093000181110BC0C7010C2E58
+:1008C00001C0880F0A94EAF780950E94C8038093BC
+:1008D00000010E94C00346C0CA30A1F028F4C8300D
+:1008E00059F0C93061F005C0CC3089F070F0CD30DE
+:1008F00089F0209A289810C0219A29980DC0229A30
+:100900002A980AC0239A2B9807C0529A01C0539A7A
+:100910005B9802C03E9A4698E0EAEA95F1F78FB1FB
+:1009200079995AC092E081708D25892B7C9B02C0F9
+:1009300090E001C094E0892B7D9B02C090E001C053
+:1009400098E0892B7E9B02C090E001C090E1892B4A
+:100950009FB19095991F9927991F9295990F907E15
+:10096000892B0FC08091000181114BC080E40E944F
+:100970009E0380930001882389F1B12C0E94C0035B
+:100980008B2DF8019081981719F08083C092010196
+:100990000E94E30321960F5F1F4FCE30D10509F06F
+:1009A00079CF80910101882371F1815080930101F9
+:1009B000882339F08FE99FE00197F1F700C000002C
+:1009C00022C0A4E4B1E0E6E3F1E081918D9391E0EF
+:1009D000E434F907D1F717C090E0A5CF83E10E9476
+:1009E000C803809300018111C8CF81E40E949E0357
+:1009F000809300018111C1CF0E94D903B82EB09419
+:100A0000BDCF80E0BECF0E94D90281E0DF91CF91BF
+:100A10001F910F91FF90EF90DF90CF90BF900895BE
+:100A2000E82FF0E0EC5BFE4F8081089508958B3B4A
+:100A3000910578F4883A910540F5853A9105D0F40E
+:100A40008430910508F0B1C08130910509F4ADC042
+:100A50006BC0803E910508F467C0883E910508F49C
+:100A6000A4C09C01205F31092031310508F05CC031
+:100A700090650895853A910509F459C0863A910523
+:100A800009F458C083E890E40895883A910509F480
+:100A900054C0893A910509F453C08A3A910509F482
+:100AA00052C08B3A910509F451C08C3A910509F472
+:100AB00050C08D3A910509F44FC0803B910509F46F
+:100AC0004EC08E3A910509F44DC08F3A910509F454
+:100AD0004CC0813B910509F44BC0823B910509F460
+:100AE0004AC0833B910509F449C0843B910509F450
+:100AF00048C0853B910509F447C0863B910509F440
+:100B000046C0873B910509F445C0883B910509F42F
+:100B100044C0893B910509F443C08A3B910509F023
+:100B200042C08AE296E4089580E090E0089581E86A
+:100B300090E4089582E890E4089582EE94E40895A4
+:100B400089EE94E408958AEE94E4089585EB94E4A4
+:100B5000089586EB94E4089587EB94E408958CEC73
+:100B600094E408958DEC94E4089583E895E4089561
+:100B70008AE895E4089582E995E4089584E995E486
+:100B8000089581E296E4089583E296E4089584E26C
+:100B900096E4089585E296E4089586E296E4089541
+:100BA00087E296E4089580E094E40895089596E03D
+:100BB000799FF001112494E5899FE00DF11D112426
+:100BC000E60FF11DEE0FFF1FEC51FF4F8591949141
+:100BD0000895880F991F805A9040FC018591949147
+:100BE0000895880F991F80529F4FFC018591949121
+:100BF000089526E0729FF001112444E5849FE00DE2
+:100C0000F11D1124E60FF11DEE0FFF1FEC51FF4FF8
+:100C100025913491C9019A9581159F4110F4C9011C
+:100C20000895C90190528115904128F4C9019F701F
+:100C30000E94F1050895C90190538115904120F457
+:100C4000C9019927906C0895211580E5380769F44A
+:100C50000E9490139FEF24E34CE0915020404040CD
+:100C6000E1F700C000000C94D21A213080E538076B
+:100C700031F48091CC0181608093CC010895C90149
+:100C800090558115904108F050C0832F99278F709F
+:100C9000992781309105D9F4A9014370552702C0E5
+:100CA000880F991F4A95E2F79C68A90164E0440FF8
+:100CB000551F6A95E1F744275370842B952B73E0F9
+:100CC000220F331F7A95E1F7207633271DC082303B
+:100CD000910529F4922F8827816F906A08958330B7
+:100CE0009105A9F4A9014370552781E090E002C065
+:100CF000880F991F4A95E2F79C6843E0220F331F43
+:100D00004A95E1F7207E3770822B932B0895049744
+:100D1000F1F4A9014370552781E090E002C0880FEB
+:100D2000991F4A95E2F79A68E8CFC9019057811553
+:100D3000904120F4C9019F7090620895C9019058B4
+:100D40008115904120F4C9019F70906A0895203E5A
+:100D50003105E0F4203C310558F52133310509F423
+:100D600070C048F42932310509F464C02A323105D3
+:100D700009F46EC074C029333105F1F02238310511
+:100D8000D9F02533310509F44EC069C0233E310541
+:100D900089F138F4203E3105C1F0223E3105E1F001
+:100DA0005EC0263E310569F1273E3105A9F157C0E5
+:100DB000C9010E94E90508958091DF0180FD02C00C
+:100DC00081FF4DC080EE90E04BC08091DF0180FF3D
+:100DD000F9CF89E390E044C08091DF0182FF0EC02B
+:100DE0008091DF0184FF03C080E090E039C083EE92
+:100DF00090E036C08091DF0182FFF2CF82EE90E07A
+:100E00002FC08091DF0183FF0BC08091DF0184FD43
+:100E1000EBCF87EE90E024C08091DF0183FFF5CF18
+:100E200086EE90E01DC08091DF0185FF07C089E25A
+:100E300090E016C08091DF0185FFF9CF85E390E057
+:100E40000FC08091DF0186FF07C08AE290E008C0F2
+:100E50008091DF0186FFF9CF81E390E001C0C901F5
+:100E60000E941705089508950C943307809162013C
+:100E70000895CF93DF9300D01F92CDB7DEB72091B6
+:100E8000E501243019F523E029839B838A8320938D
+:100E9000E9008FEF9091E800815095FD06C095ED37
+:100EA0009A95F1F700008111F5CF8091E80085FF58
+:100EB0000DC040E050E063E070E0CE0101960E947A
+:100EC000A3098091E8008E778093E8000F900F903F
+:100ED0000F90DF91CF910895CF93DF9300D01F92B1
+:100EE000CDB7DEB72091E501243021F522E029833A
+:100EF0009B838A8383E08093E9008FEF9091E800E1
+:100F0000815095FD06C095ED9A95F1F7000081118D
+:100F1000F5CF8091E80085FF0DC040E050E063E030
+:100F200070E0CE0101960E94A3098091E8008E77BF
+:100F30008093E8000F900F900F90DF91CF9108956C
+:100F40002091E5012430F1F422E02093E9002FEF15
+:100F50003091E800215035FD06C035ED3A95F1F7A6
+:100F600000002111F5CF2091E80025FF0BC040E0E3
+:100F700050E065E070E00E94A3098091E8008E7760
+:100F80008093E8000895CF93DF93EC018091E50111
+:100F9000843009F046C090910C019923D9F09091CA
+:100FA0000D019923B9F08093E9008FEF9091E8004B
+:100FB000815095FD06C095E19A95F1F700008111E9
+:100FC000F5CF8091E80085FF2CC040E050E060E163
+:100FD00070E017C081E08093E9008FEF9091E80006
+:100FE000815095FD06C095ED9A95F1F700008111AD
+:100FF000F5CF8091E80085FF14C040E050E068E044
+:1010000070E0CE010E94A3098091E8008E77809362
+:10101000E80080E1FE01A2E5B1E001900D928A9521
+:10102000E1F7DF91CF9108958091E401811109C02A
+:101030000E94350B0E94920B8091E20084608093A5
+:10104000E20008951092E401089508950C94F820A8
+:101050000E94691A0E94FE200E942F0E0C943407F1
+:1010600042E061EC81E00E94AF0A42E061EC82E084
+:101070000E94AF0A42E061EC83E00E94AF0A42E1C5
+:1010800061EC84E00C94AF0A8091E701833009F4AD
+:1010900055C030F4813071F0823009F48EC008956B
+:1010A0008A3009F47AC08B3009F460C0893009F0C5
+:1010B0009CC020C08091E601813A09F096C08091E1
+:1010C000E800877F8093E8008091EA019091EB012E
+:1010D000892B21F060E080E090E003C060E182E5D0
+:1010E00091E070E00E94EC098091E8008B7780939A
+:1010F000E80008958091E601813209F076C0809180
+:10110000EA019091EB01009719F0039709F06DC087
+:101110008091E800877F8093E8008091E80082FD5D
+:1011200005C08091E5018111F8CF5FC08091F10089
+:10113000809362018091E8008B7753C08091E60133
+:10114000813A09F052C08091EA019091EB01892B1C
+:1011500009F04BC08091E800877F8093E800809180
+:10116000E80080FFFCCF80910C0136C08091E60141
+:101170008132D9F58091EA019091EB01892BA9F593
+:101180008091E800877F8093E8000E94E40A8091C4
+:10119000E80180930C010C9490138091E601813258
+:1011A00021F58091E800877F8093E8000E94E40A9F
+:1011B0008091E9018093630108958091E601813A6D
+:1011C000A1F48091E800877F8093E8008091E80097
+:1011D00080FFFCCF809163018093F1008091E80053
+:1011E0008E778093E8000C94E40A089584B7877F93
+:1011F00084BF88E10FB6F89480936000109260007D
+:101200000FBE90E080E80FB6F89480936100909351
+:1012100061000FBE0E947E0E0E94350B0E94920B51
+:101220008091E20084608093E20078940E940D0E29
+:101230000E94800E82E091E00E942A0E0E94E62029
+:101240008091E501853069F40E942C1A8091E301B8
+:101250008823B1F30E94541A882391F30E948D09C8
+:10126000EFCF0E94860EECCF292F33272330310594
+:10127000A9F06CF42130310509F442C02230310567
+:1012800009F043C08DE690E020E133E042C0213216
+:101290003105C9F02232310519F137C09927813063
+:1012A000910541F08230910541F0892B71F5ECE018
+:1012B000F3E005C0E4EFF2E002C0ECEDF2E084916F
+:1012C00090E09F0126C0643000F5E62FF0E0EE0FBD
+:1012D000FF1FEE5DFE4F2081318189E090E019C053
+:1012E000643098F4E62FF0E0DF01AA0FBB1FA65E82
+:1012F000BE4F2D913C91EA5EFE4F808190E009C087
+:1013000082E190E02DE733E004C080E090E020E04F
+:1013100030E0FA0131832083089580E189BD82E1C4
+:1013200089BD09B400FEFDCF8091D8008F7D8093E8
+:10133000D8008091E00082608093E0008091E0001E
+:1013400081FDFCCF0895CF92DF92EF92FF920F9331
+:101350001F93CF93DF937C018B01EA010E94050B61
+:10136000811131C0209731F088819981081B190BB8
+:10137000E80EF91EC12CD12C0115110519F180912F
+:10138000E80085FD14C08091E8008E778093E80026
+:10139000209741F0888199818C0D9D1D99838883C8
+:1013A00085E011C00E94050B882331F30CC0F701C2
+:1013B00081917F018093F10001501109FFEFCF1A55
+:1013C000DF0ADACF80E0DF91CF911F910F91FF907C
+:1013D000EF90DF90CF9008952091EC013091ED01D6
+:1013E0002617370748F06115710539F42091E80098
+:1013F0002E772093E80001C0B901FC0120E06115BF
+:101400007105B9F18091E501882309F440C0853068
+:1014100009F43FC08091E80083FD3DC08091E80061
+:1014200082FF06C08091E80082FF26C080E0089518
+:101430008091E80080FFE3CF2091F3008091F200DB
+:1014400090E0922B6115710551F08830910538F4C8
+:1014500021912093F100615071090196F3CF21E0B1
+:10146000089709F020E08091E8008E778093E800EB
+:10147000C6CF2111C7CFD6CF8091E501882339F09F
+:10148000853039F08091E80083FFCCCF04C082E042
+:10149000089583E0089581E008952091EC01309152
+:1014A000ED012617370748F06115710539F42091D1
+:1014B000E8002E772093E80001C0B901FC0120E08C
+:1014C00061157105C1F18091E501882309F441C0DE
+:1014D000853009F440C08091E80083FD3EC08091D2
+:1014E000E80082FF06C08091E80082FF27C080E00C
+:1014F00008958091E80080FFE3CF2091F300809170
+:10150000F20090E0922B6115710559F08830910539
+:1015100040F424912093F1003196615071090196B5
+:10152000F2CF21E0089709F020E08091E8008E7763
+:101530008093E800C5CF2111C6CFD5CF8091E501BA
+:10154000882339F0853039F08091E80083FFCBCFD4
+:1015500004C082E0089583E0089581E00895982F03
+:10156000973058F59093E900981739F07091EC0096
+:101570002091ED005091F00003C0242F762F50E011
+:1015800021FF19C03091EB003E7F3093EB0030918A
+:10159000ED003D7F3093ED003091EB0031603093F2
+:1015A000EB007093EC002093ED005093F00020913D
+:1015B000EE0027FF07C09F5FD3CF8F708093E900B5
+:1015C00081E0089580E008958091E60187FD05C0DF
+:1015D0008091E80080FF0EC012C08091E80082FD7B
+:1015E00005C08091E5018111F8CF08958091E80050
+:1015F0008B7708C08091E5018111EACF0895809131
+:10160000E8008E778093E80008958091E40090913F
+:10161000E50045E62091EC0020FF21C02091E80084
+:1016200020FD21C02091E501222389F0253089F099
+:101630002091EB0025FD0FC02091E4003091E500E2
+:101640002817390739F3415041F0C901E3CF82E04F
+:10165000089583E0089581E0089584E0089520913D
+:10166000E80022FFDFCF80E008950E94A30B0E94D4
+:10167000AB0BE0EEF0E0808181608083E8EDF0E08C
+:1016800080818F77808319BCA7EDB0E08C918E7F2D
+:101690008C9380818F7E80831092E40108950F9354
+:1016A0001F93CF93DF930E94A30B0E94AB0BC8ED57
+:1016B000D0E088818F77888388818068888388815B
+:1016C0008F7D888319BC1092E5011092E101109280
+:1016D000E3011092E20100EE10E0F80180818B7FBF
+:1016E000808388818160888342E060E080E00E949E
+:1016F000AF0AE1EEF0E080818E7F8083E2EEF0E0E1
+:10170000808181608083808188608083F80180810E
+:101710008E7F8083888180618883DF91CF911F9144
+:101720000F910895E8EDF0E080818F7E8083E7EDF2
+:10173000F0E080818160808384E082BF81E08093DB
+:10174000E4010C944F0BE8EDF0E080818E7F808304
+:101750001092E20008951092DA001092E1000895CC
+:101760001F920F920FB60F9211242F933F934F9316
+:101770005F936F937F938F939F93AF93BF93EF93F9
+:10178000FF938091E10082FF0BC08091E20082FF15
+:1017900007C08091E1008B7F8093E1000E940C0ED6
+:1017A0008091DA0080FF1FC08091D80080FF1BC0AD
+:1017B0008091DA008E7F8093DA008091D90080FFDB
+:1017C0000DC080E189BD82E189BD09B400FEFDCF75
+:1017D00081E08093E5010E94140805C019BC1092B5
+:1017E000E5010E9422088091E10080FF19C08091EC
+:1017F000E20080FF15C08091E2008E7F8093E200BE
+:101800008091E20080618093E2008091D800806244
+:101810008093D80019BC85E08093E5010E942608DA
+:101820008091E10084FF30C08091E20084FF2CC0F1
+:1018300080E189BD82E189BD09B400FEFDCF8091C0
+:10184000D8008F7D8093D8008091E1008F7E8093B7
+:10185000E1008091E2008F7E8093E2008091E200BF
+:1018600081608093E2008091E101882311F084E09F
+:1018700007C08091E30087FF02C083E001C081E0E0
+:101880008093E5010E9428088091E10083FF29C030
+:101890008091E20083FF25C08091E100877F8093E3
+:1018A000E10082E08093E5011092E1018091E10086
+:1018B0008E7F8093E1008091E2008E7F8093E20032
+:1018C0008091E20080618093E20042E060E080E08D
+:1018D0000E94AF0A8091F00088608093F0000E941F
+:1018E0002508FF91EF91BF91AF919F918F917F91CB
+:1018F0006F915F914F913F912F910F900FBE0F907D
+:101900001F9018951F920F920FB60F9211242F93CC
+:101910003F934F935F936F937F938F939F93AF9377
+:10192000BF93CF93EF93FF93C091E900CF70809165
+:10193000EC001092E9008091F000877F8093F00026
+:1019400078940E94BE0C1092E9008091F0008860AB
+:101950008093F000C093E900FF91EF91CF91BF9188
+:10196000AF919F918F917F916F915F914F913F9137
+:101970002F910F900FBE0F901F9018951F93CF932C
+:10198000DF93CDB7DEB7AA970FB6F894DEBF0FBED0
+:10199000CDBFE6EEF1E08091F100819321E0EE3ED3
+:1019A000F207C9F70E9444088091E80083FF1CC138
+:1019B0002091E6013091E701832F90E08A30910574
+:1019C00008F012C1FC01EA5AFF4F0C948022203823
+:1019D00081F0223809F008C18091EA018F7080936C
+:1019E000E9008091EB0085FB882780F91092E900DF
+:1019F00006C08091E2019091E30191118260909183
+:101A0000E800977F9093E8008093F1001092F10036
+:101A1000C5C0822F8D7F09F0E7C0222319F0223044
+:101A200061F0E2C08091E801813009F0DDC033301F
+:101A300009F080E08093E30128C08091E8018111E2
+:101A400024C02091EA012F7009F4CEC02093E90050
+:101A50008091EB0080FF19C08091EB00333011F4CE
+:101A6000806211C080618093EB0081E090E0022EE3
+:101A700001C0880F0A94EAF78093EA001092EA0006
+:101A80008091EB0088608093EB001092E9008091D8
+:101A9000E800877F86C02111A7C01091E8011F7759
+:101AA0008091E3008078812B8093E3008091E800AF
+:101AB000877F8093E8000E94E40A8091E80080FF1D
+:101AC000FCCF8091E30080688093E300112311F044
+:101AD00083E001C082E08093E50186C02058223077
+:101AE00008F082C08091E8019091E9018C3D23E0EB
+:101AF000920779F583E08A838AE289834FB7F89465
+:101B0000DE01139620E03EE051E2E32FF0E0509337
+:101B10005700E49120FF03C0E295EF703F5FEF7044
+:101B20008E2F90E0EA3010F0C79601C0C0968D93DA
+:101B30009D932F5F243149F74FBF8091E800877F45
+:101B40008093E8006AE270E0CE0101960E94EC0901
+:101B500014C0AE014F5F5F4F6091EA010E943409EB
+:101B6000009709F441C02091E800277F2093E80006
+:101B7000BC0189819A810E944D0A8091E8008B778F
+:101B80008093E80031C0203879F58091E800877FA4
+:101B90008093E8008091E1018093F1008091E8005A
+:101BA0008E778093E8000E94E40A1EC021111CC0B9
+:101BB0009091E8019230C0F48091E800877F809393
+:101BC000E8009093E1010E94E40A8091E101811113
+:101BD00004C08091E30087FF02C084E001C081E07F
+:101BE0008093E5010E9430088091E80083FF0AC0DD
+:101BF0008091E800877F8093E8008091EB0080620D
+:101C00008093EB00AA960FB6F894DEBF0FBECDBF4F
+:101C1000DF91CF911F9108950895CF938091E501B1
+:101C20008823B1F08091E9008F709091EC0090FFD3
+:101C300002C090E801C090E0C92FC82B1092E900C3
+:101C40008091E80083FD0E94BE0CCF70C093E90034
+:101C5000CF91089590936901809368010895E09170
+:101C60006801F0916901309721F00190F081E02D39
+:101C7000099480E00895E0916801F091690130973E
+:101C800021F00280F381E02D09940895E09168012C
+:101C9000F0916901309721F00480F581E02D0994DD
+:101CA000089520916601309167018217930771F0C2
+:101CB0009093670180936601E0916801F09169015A
+:101CC000309721F00680F781E02D09940895209146
+:101CD0006401309165018217930771F0909365015B
+:101CE00080936401E0916801F0916901309721F0DF
+:101CF0000084F185E02D0994089508950C947D0EDB
+:101D00000E946F1A0E940B040C94351BCF92DF9235
+:101D1000EF92FF920F931F93CF93DF93CDB7DEB770
+:101D20002B970FB6F894DEBF0FBECDBF0E942304E1
+:101D30003BE6E32E31E0F32E00E010E0C02E802FD2
+:101D40000E941005F701D1907F01D826B1F40F5FF2
+:101D50001F4F0E30110591F78FEF89838A831B8205
+:101D60000E94781A8160782F9D838C8349815A81E3
+:101D70006B818D810E94290F41C09091CC0191FF10
+:101D800004C08B870E9416058B8520E030E04D2D26
+:101D900050E0922FBA01022E02C0759567950A9401
+:101DA000E2F760FF25C02E83CF82EE24E394F12C6E
+:101DB00002C0EE0CFF1C9A95E2F790E08E219F2165
+:101DC00021E0892B09F420E028870E94781A81609D
+:101DD000782F9A8789874E815F8168858A850E94DE
+:101DE000290FF801E559FE4F80818E25808306C0BA
+:101DF0002F5F3F4F2630310561F6A9CF0E94191E93
+:101E000010916A010E942F0E1817A1F00E942F0E48
+:101E100080936A012B960FB6F894DEBF0FBECDBF3C
+:101E2000DF91CF911F910F91FF90EF90DF90CF90B6
+:101E30000C9434072B960FB6F894DEBF0FBECDBFBF
+:101E4000DF91CF911F910F91FF90EF90DF90CF9096
+:101E50000895CF93DF93CDB7DEB72B970FB6F894E5
+:101E6000DEBF0FBECDBF4F83588769877A878B87C8
+:101E7000DE01119686E0FD0111928A95E9F785E071
+:101E8000FE01379601900D928A95E1F749815A81BA
+:101E90006B817C818D819E810E945C162B960FB692
+:101EA000F894DEBF0FBECDBFDF91CF910895CF93E1
+:101EB000C82F882309F4C1C0823859F40E942F0E1C
+:101EC00081FDBBC089E30E94F9180E94B31989E320
+:101ED0000CC0833879F40E942F0E80FDAEC083E5DC
+:101EE0000E94F9180E94B31983E50E943919CF9115
+:101EF0000C94B319843859F40E942F0E82FD9DC0B2
+:101F000087E40E94F9180E94B31987E4EECF8CEFA2
+:101F10008C0F813A48F48C2F0E944E2081118DC085
+:101F20008C2F0E94F918E3CF80E28C0F883048F4A0
+:101F3000C77081E001C0880FCA95EAF70E947A193C
+:101F4000D6CF8BE58C0F833078F4C53A29F0C63AAA
+:101F500031F482E890E005C081E890E002C083E8B7
+:101F600090E0CF910C94510E88E58C0F833108F0EE
+:101F700064C0C83A39F1C93A41F1CA3A49F1CB3A99
+:101F800051F1CC3A59F1CD3A61F1C03B69F1CE3A09
+:101F900071F1CF3A79F1C13B81F1C23B89F1C33B89
+:101FA00091F1C43B99F1C53BA1F1C63BA9F1C73BF7
+:101FB000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2ED
+:101FC00092E038C082EE90E035C089EE90E032C0F9
+:101FD0008AEE90E02FC085EB90E02CC086EB90E07D
+:101FE00029C087EB90E026C08CEC90E023C08DECFC
+:101FF00090E020C083E891E01DC08AE891E01AC01B
+:1020000082E991E017C084E991E014C081E292E096
+:1020100011C083E292E00EC084E292E00BC085E240
+:1020200092E008C086E292E005C087E292E002C03A
+:1020300080E090E0CF910C94670ECF9108958823B3
+:1020400009F44BC0823859F40E942F0E81FF45C01D
+:1020500089E30E94F9180E94B31989E30CC0833800
+:1020600071F40E942F0E80FF38C083E50E94F9189A
+:102070000E94B31983E50E9439190C94B31984386E
+:1020800059F40E942F0E82FF28C087E40E94F9189D
+:102090000E94B31987E4EFCF9CEF980F913A58F361
+:1020A00090E2980F983050F4877091E001C0990F3A
+:1020B0008A95EAF7892F0E948019DFCF9BE5980F58
+:1020C000933020F480E090E00C94510E885A8331D4
+:1020D00020F480E090E00C94670E0895882321F0AE
+:1020E0000E947A190C94B3190895882321F00E9454
+:1020F00080190C94B3190895CF92DF92EF92FF925A
+:102100000F931F93CF93DF93CDB7DEB728970FB60A
+:10211000F894DEBF0FBECDBF8C0185E0F801DE0173
+:10212000119601900D928A95E1F7F8014081318175
+:10213000F280258122952F7083819481892B31F043
+:102140003F3F31F481E04F3F19F403C081E001C00B
+:1021500080E080FDC4C249833A8389819A812F83BC
+:102160000E94B7189E8388870E94B6180E9489171C
+:102170004E81E42FE295EF70F0E0E05AFF4F2F819F
+:1021800068850C948022842F807F142F1F708823F1
+:1021900011F01295107FFF2059F0112309F454C259
+:1021A000812F68870E948A190E94B31968854CC2E2
+:1021B000862F0E941F10112309F491C2812F0E94C3
+:1021C000901928960FB6F894DEBF0FBECDBFDF91F1
+:1021D000CF911F910F91FF90EF90DF90CF900C94D3
+:1021E000B319342F307F842F8F70303211F08295E5
+:1021F000807F662319F0613019F12BC0FF20B1F008
+:10220000222309F493C1213009F090C128960FB61A
+:10221000F894DEBF0FBECDBFDF91CF911F910F911C
+:10222000FF90EF90DF90CF900C949A19222319F031
+:10223000213009F454C28E830E949D198E8189C178
+:10224000FF2021F0223008F04AC270C1211147C29C
+:1022500080C1FF2021F0222309F468C1F5C12223A7
+:1022600009F477C105C2242F26952695237030E006
+:102270002115310521F021303105C9F030C2FF2090
+:1022800021F0862F942F937002C080E090E0289672
+:102290000FB6F894DEBF0FBECDBFDF91CF911F9177
+:1022A0000F91FF90EF90DF90CF900C94510EFF2094
+:1022B00021F0862F942F937002C080E090E0289642
+:1022C0000FB6F894DEBF0FBECDBFDF91CF911F9147
+:1022D0000F91FF90EF90DF90CF900C94670E862FB8
+:1022E000FF2019F00E94211D02C00E94891D28961E
+:1022F0000FB6F894DEBF0FBECDBFDF91CF911F9117
+:102300000F91FF90EF90DF90CF900C940E1E842FD2
+:10231000837009F076C0F110E2C1262F2295269530
+:102320002770220F220F862F8F70C82ED12CE12C00
+:10233000F12C022E04C0CC0CDD1CEE1CFF1C0A94F8
+:10234000D2F764FF10C06FE070E080E090E004C05E
+:10235000660F771F881F991F2A95D2F76095709591
+:102360008095909503C060E070E0CB01242F269506
+:1023700026952370422F50E042305105D1F0433072
+:10238000510559F16C297D298E299F29413051052C
+:1023900041F128960FB6F894DEBF0FBECDBFDF9196
+:1023A000CF911F910F91FF90EF90DF90CF900C9401
+:1023B000AE176C297D298E299F2928960FB6F8948F
+:1023C000DEBF0FBECDBFDF91CF911F910F91FF9068
+:1023D000EF90DF90CF900C94C8170E94AE17C70102
+:1023E000B60128960FB6F894DEBF0FBECDBFDF91C1
+:1023F000CF911F910F91FF90EF90DF90CF900C94B1
+:102400009417FF2019F0842F817001C086958823CE
+:1024100009F465C1262F229526952770220F220FD9
+:10242000862F8F70C82ED12CE12CF12C022E04C0E7
+:10243000CC0CDD1CEE1CFF1C0A94D2F764FF10C00C
+:102440006FE070E080E090E004C0660F771F881FA7
+:10245000991F2A95D2F7609570958095909503C045
+:1024600060E070E0CB01242F269526952370422F43
+:1024700050E042305105D1F04330510559F16C29FB
+:102480007D298E299F294130510541F128960FB6AB
+:10249000F894DEBF0FBECDBFDF91CF911F910F919A
+:1024A000FF90EF90DF90CF900C9482186C297D29DB
+:1024B0008E299F2928960FB6F894DEBF0FBECDBF98
+:1024C000DF91CF911F910F91FF90EF90DF90CF9010
+:1024D0000C949C180E948218C701B60128960FB66A
+:1024E000F894DEBF0FBECDBFDF91CF911F910F914A
+:1024F000FF90EF90DF90CF900C946818603FC9F187
+:1025000018F4603E50F49BC0623F09F460C008F4C8
+:102510004AC0633F09F46FC092C0162F1F70842F0A
+:102520008F71FF2099F00E940118812F28960FB615
+:10253000F894DEBF0FBECDBFDF91CF911F910F91F9
+:10254000FF90EF90DF90CF900C946E100E942218B5
+:10255000812F28960FB6F894DEBF0FBECDBFDF9156
+:10256000CF911F910F91FF90EF90DF90CF900C943F
+:102570007510FF20A1F02111B2C0842F8F71289611
+:102580000FB6F894DEBF0FBECDBFDF91CF911F9184
+:102590000F91FF90EF90DF90CF900C94471822306E
+:1025A00008F09DC0EACFFF20A1F0842F8F712896FC
+:1025B0000FB6F894DEBF0FBECDBFDF91CF911F9154
+:1025C0000F91FF90EF90DF90CF900C940118FF20B7
+:1025D00061F3842F8F7128960FB6F894DEBF0FBE7B
+:1025E000CDBFDF91CF911F910F91FF90EF90DF90C2
+:1025F000CF900C942218FF2091F0842F8F71289691
+:102600000FB6F894DEBF0FBECDBFDF91CF911F9103
+:102610000F91FF90EF90DF90CF900C94EC172896DD
+:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3
+:102630000F91FF90EF90DF90CF900C94E217FF2066
+:10264000A1F0222309F4B1CF862F28960FB6F89473
+:10265000DEBF0FBECDBFDF91CF911F910F91FF90D5
+:10266000EF90DF90CF900C94570F222309F4B1CF55
+:10267000862F28960FB6F894DEBF0FBECDBFDF9130
+:10268000CF911F910F91FF90EF90DF90CF900C941E
+:102690001F104F70C8010E94AB0228960FB6F89425
+:1026A000DEBF0FBECDBFDF91CF911F910F91FF9085
+:1026B000EF90DF90CF900C9409174F70C8012896C7
+:1026C0000FB6F894DEBF0FBECDBFDF91CF911F9143
+:1026D0000F91FF90EF90DF90CF900C94D605289645
+:1026E0000FB6F894DEBF0FBECDBFDF91CF911F9123
+:1026F0000F91FF90EF90DF90CF9008950E9497196F
+:102700000E946C190E94B3190E94BA1E0E940E1EEC
+:1027100080E090E00E94510E80E090E00C94670E03
+:102720000E9487190C947E130E94B718292F2295B6
+:102730002F7030E02C3031054CF42A3031056CF428
+:10274000225031092230310590F407C02C30310578
+:1027500051F02F30310539F00AC0803E10F0803F33
+:1027600031F481E0089593FB882780F9089580E093
+:102770000895CF93DF9300D000D01F92CDB7DEB77E
+:102780000F900F900F900F900F90DF91CF910895C1
+:10279000CF93DF9300D000D000D0CDB7DEB7269620
+:1027A0000FB6F894DEBF0FBECDBFDF91CF91089575
+:1027B0001F93CF93DF93C091790116E080917A0146
+:1027C000C81799F0D0E01C9FF0011D9FF00D112457
+:1027D000E558FE4F408151816281738184819581EA
+:1027E0000E94C8132196C770E9CFDF91CF911F9146
+:1027F00008954091AB015091AC016091AD01709191
+:10280000AE018091AF019091B0010C94C813CF93A9
+:102810008091B00182958F7009F05FC08091AD0109
+:10282000882309F45AC020917901A0917A0160911E
+:10283000AB017091AC018091AE019091AF0131E09C
+:102840006F3F09F030E0B32FC6E02A1709F445C006
+:10285000009721F07F3F21F44B2F03C041E001C0DE
+:1028600040E030E040FD35C0C29FF001C39FF00D55
+:102870001124E558FE4F418174132BC0408164132D
+:1028800028C04281411125C043815481481759070E
+:1028900010F441505109481B590B483C5105C8F4EC
+:1028A0008091B0018F7080618093B00186E0829F3B
+:1028B000F001839FF00D1124E058FE4F80818F704E
+:1028C000806180838BEA91E00E947C10CF910C9410
+:1028D000D8132F5F3F4F2770B8CFCF910895CF9275
+:1028E000DF92EF92FF920F931F93CF93DF93CDB7B9
+:1028F000DEB762970FB6F894DEBF0FBECDBF8C0176
+:1029000085E0F801DE011D9601900D928A95E1F7B0
+:10291000D8014C9111965C91119712966C91129777
+:102920001396ED90FC9014977091AB01E091AC017F
+:102930002091AE013091AF012115310531F0EF3F0B
+:1029400031F481E07F3F19F403C081E001C080E0F1
+:10295000B82FB170CB2E80FD6CC1D090AD01DD20C1
+:1029600009F4F5C0F091B001E216F30638F0C701A2
+:10297000821B930B883C910548F09BC020953095B5
+:102980002E0D3F1D283C310508F093C08F2F807F0E
+:1029900009F052C0E51314C0741312C0D62E611191
+:1029A0000FC0FF70F061F093B0010E94F9138BEA41
+:1029B00091E00E947C108091B001F80185836CC188
+:1029C000EF2831F05F3F31F481E04F3F19F403C04D
+:1029D00081E001C080E080FD03C081E0862701C066
+:1029E00080E0F82FF170FF2E80FF1CC080917901EC
+:1029F00020917A0136E0821709F428C190E0389FCF
+:102A0000F001399FF00D1124E558FE4F71815713E5
+:102A100006C07081471303C07281671303C001961B
+:102A20008770E9CFD62E662309F436C18091B001B4
+:102A300081608093B00153C0E51308C0741306C0D1
+:102A4000611104C0D8011596FC93AEC04D875E8716
+:102A50008D859E856A8B0E9494136A89882329F14B
+:102A6000D62E662311F12091B001822F82958F70AE
+:102A700090E002970CF460C08091AB019091AC01A2
+:102A800098878F831986FB86EA862C87CE01079666
+:102A900051C0E51731F14D875E878D859E856A8B24
+:102AA0000E9494136A8981112EC0C8010E947C1073
+:102AB000A4C08F2F807F69F77E2DF98AE88A8989E3
+:102AC0000E94B9138BEA91E00E947C10EBEAF1E0DE
+:102AD00086E0DF011D928A95E9F70E94F913D12C57
+:102AE000DBC07413D8CF6111D6CFD8011596FC93F3
+:102AF000C8010E947C10EBEAF1E086E0DF011D9244
+:102B00008A95E9F7C9C0D62E662379F22091B001E3
+:102B1000822F82958F7090E0029774F08091AB01C4
+:102B20009091AC019A8389831B82FD82EC822E8373
+:102B3000CE0101960E947C1086E0F801ABEAB1E07C
+:102B400001900D928A95E1F70E9407146FC0E2167A
+:102B5000F30628F0C701821B930B9C0104C020954B
+:102B600030952E0D3F1D283C310508F052C0D62E61
+:102B7000662309F49ACFE5132CC074132AC0809100
+:102B8000B00180FD1DC0982F92959F70C9F0D801AB
+:102B900015968C9315979F3039F09F5F9295907F93
+:102BA0008F70892B15968C93C8010E947C1086E04B
+:102BB000F801ABEAB1E001900D928A95E1F736C0D9
+:102BC00086E0F801ABEAB1E001900D928A95E1F759
+:102BD00063C04D875E878D859E850E9494138823F0
+:102BE00079F086E0F801ABEAB1E001900D928A95A8
+:102BF000E1F70E9407140E94F913DD24D3944CC01E
+:102C00008091B00181608093B001C8010E947C1066
+:102C100043C07E2DF98AE88A89890E94B913EBEABC
+:102C2000F1E086E0DF011D928A95E9F70E94F91331
+:102C300033C0662309F439CF4D875E878D859E8525
+:102C40000E949413882309F430CFCBCF4D875E8741
+:102C50008D859E850E94B718292F22952F7030E010
+:102C6000223031052CF49F7041F0811106C00CC058
+:102C7000243031052CF49F7049F4805E883020F0B8
+:102C8000C8010E947C10CF2CDC2C06C0D801159600
+:102C90009C91907F91F7F8CF8D2D62960FB6F894A6
+:102CA000DEBF0FBECDBFDF91CF911F910F91FF907F
+:102CB000EF90DF90CF9008951F93CF93DF93CDB720
+:102CC000DEB72C970FB6F894DEBF0FBECDBF4F8393
+:102CD000588769877A878B879C87CE0107960E94E1
+:102CE0006F148823C1F02F8138858A859B85892BB5
+:102CF00031F03F3F11F080E003C02F3FE1F781E06A
+:102D0000811147C04F81588569857A858B859C855F
+:102D10000E94C8133EC086E0FE013796DE01119680
+:102D200001900D928A95E1F7FF81E8854A855B85E0
+:102D30004115510531F0EF3F31F481E0FF3F19F4C7
+:102D400003C081E001C080E080FD23C020917A01B2
+:102D500030E0C9010196877099276091790170E090
+:102D600086179707F1F1F983EA835D834C8396E038
+:102D7000929FD001939FB00D1124A558BE4FFE0124
+:102D8000319601900D929A95E1F780937A010E9415
+:102D9000D81316E08091790190917A01891779F121
+:102DA000189FC001112485589E4F0E946F148823DC
+:102DB00031F1E09179011E9FF0011124E558FE4F99
+:102DC0004081518162817381848195810E94C81301
+:102DD0008091790190E0019687709927809379011D
+:102DE000D9CF0E94901310927A0110927901EBEAE8
+:102DF000F1E086E0DF011D928A95E9F7CACF2C96B3
+:102E00000FB6F894DEBF0FBECDBFDF91CF911F91FB
+:102E10000895EF92FF920F931F93CF93DF93FC01DE
+:102E2000009709F46FC0F12CEE24E394EF01219692
+:102E30008491843740F4843008F055C0813081F0AB
+:102E4000823021F15FC0853709F447C0C0F19CE7AB
+:102E5000980F903708F056C08F770E941F1045C01A
+:102E60008F010E5F1F4FFE01849190E2980F983002
+:102E700050F48770FE2D01C0FF0F8A95EAF78F2F5F
+:102E80000E948A1915C00E94570F14C08F010E5F4F
+:102E90001F4FFE01849190E2980F983068F487707C
+:102EA000FE2D01C0FF0F8A95EAF78F2F0E9490191F
+:102EB0000E94B319E80119C00E941F10FBCFCF0177
+:102EC0000296FE01C491CC2361F0EFE9FFE0319757
+:102ED000F1F700C00000C150F6CFCF010296FE010D
+:102EE000F490EC0102C00E94570F8F2D882341F00F
+:102EF000EFE9FFE03197F1F700C000008150F6CF15
+:102F0000FE0194CFDF91CF911F910F91FF90EF9031
+:102F1000089508956093B5017093B6018093B70149
+:102F20009093B8010C947E130F931F930091B501F9
+:102F30001091B6012091B7013091B801062B172BE3
+:102F4000282B392B0093B5011093B6012093B701BC
+:102F50003093B8011F910F910C947E130F931F9320
+:102F60000091B5011091B6012091B7013091B801DF
+:102F700006231723282339230093B5011093B601A4
+:102F80002093B7013093B8011F910F910C947E13D9
+:102F90000F931F930091B5011091B6012091B701D5
+:102FA0003091B80106271727282739270093B50144
+:102FB0001093B6012093B7013093B8011F910F9180
+:102FC0000C947E131092B1011092B2011092B301D1
+:102FD0001092B4010C947E1341E050E060E070E088
+:102FE00004C0440F551F661F771F8A95D2F7409380
+:102FF000B1015093B2016093B3017093B4010C948A
+:103000007E1341E050E060E070E004C0440F551FC3
+:10301000661F771F8A95D2F78091B1019091B20116
+:10302000A091B301B091B401842B952BA62BB72BA3
+:103030008093B1019093B201A093B301B093B40116
+:103040000C947E1341E050E060E070E004C0440F57
+:10305000551F661F771F8A95D2F74095509560954A
+:1030600070958091B1019091B201A091B301B0919E
+:10307000B40184239523A623B7238093B1019093B1
+:10308000B201A093B301B093B4010C947E1341E05C
+:1030900050E060E070E004C0440F551F661F771FCA
+:1030A0008A95D2F78091B1019091B201A091B301BC
+:1030B000B091B40184279527A627B7278093B10143
+:1030C0009093B201A093B301B093B4010C947E131A
+:1030D0000F931F930091B1011091B2012091B301A0
+:1030E0003091B401062B172B282B392B0093B101FB
+:1030F0001093B2012093B3013093B4011F910F914B
+:103100000C947E130F931F930091B1011091B201A3
+:103110002091B3013091B4010623172328233923CA
+:103120000093B1011093B2012093B3013093B40125
+:103130001F910F910C947E130F931F930091B10177
+:103140001091B2012091B3013091B40106271727E5
+:10315000282739270093B1011093B2012093B301BE
+:103160003093B4011F910F910C947E130895CF9268
+:10317000DF92EF92FF920F931F93CF93DF93EC01B7
+:10318000C090B501D090B601E090B701F090B801C1
+:103190008091B1019091B201A091B301B091B401BD
+:1031A000C82AD92AEA2AFB2A0FE110E0B701A601B2
+:1031B000002E04C076956795579547950A94D2F7E7
+:1031C00040FF07C0BE01802F0E94F90581309105A4
+:1031D00039F40150110950F7BE0180E00E94F90551
+:1031E000DF91CF911F910F91FF90EF90DF90CF90E3
+:1031F000089590910C019923D9F090910D01992394
+:10320000B9F0982F9695969596959F3088F5E09110
+:103210000E01F0910F01E90FF11D877021E030E000
+:1032200001C0220F8A95EAF78181822B818308955C
+:1032300040910E0150910F0120E030E09FEFFA0124
+:10324000E20FF31F6281681799F09F3F19F4611133
+:1032500001C0922F2F5F3F4F2E30310581F79F3FE6
+:1032600039F0FA01E90FF11D97FDFA95828308956F
+:10327000089590910C019923E1F090910D0199230B
+:10328000C1F0982F9695969596959F3020F5E091F0
+:103290000E01F0910F01E90FF11D877021E030E080
+:1032A00001C0220F8A95EAF7209581812823218386
+:1032B000089540910E0150910F0120E030E0FA0195
+:1032C000E20FF31F9281981301C012822F5F3F4FCC
+:1032D0002E303105A1F7089581E090E0E0910E01D4
+:1032E000F0910F01E80FF91F1082019680319105CE
+:1032F000A9F708959091CB01982B9093CB01089555
+:1033000080959091CB0198239093CB0108951092D2
+:10331000CB0108959091CA01982B9093CA0108950A
+:1033200080959091CA0198239093CA0108951092B4
+:10333000CA0108958093B90108951092B9010895C2
+:1033400040910E0150910F0120E030E080E0FA0141
+:10335000E20FF31F918191118F5F2F5F3F4F2F304D
+:103360003105A9F70895E0910E01F0910F018091C8
+:10337000CB018083E0910E01F0910F01808190914B
+:10338000CA01892B80839091B901992361F0E09162
+:103390000E01F0910F018081892B80830E94A0197A
+:1033A00081111092B90180910E0190910F010C943E
+:1033B0003B0ECF92DF92EF92FF920F931F936C011F
+:1033C000EE24FF24C114D104E104F10421F46B01C3
+:1033D0007C0180E001C080E133272F2D1E2D0D2DB3
+:1033E000011511052105310519F0885F6801790182
+:1033F00097018601A4E03695279517950795AA951C
+:10340000D1F7011511052105310519F08C5F68010F
+:10341000790197018601F2E0369527951795079572
+:10342000FA95D1F7011511052105310519F08E5FC7
+:1034300068017901B701A60176956795579547957B
+:10344000452B462B472B09F08F5F1F910F91FF9063
+:10345000EF90DF90CF9008958091E501843009F1DD
+:103460001092CD0120E488E190E00FB6F894A89581
+:10347000809360000FBE2093600083B7817F8460DB
+:1034800083BF83B7816083BF7894889583B78E7F2D
+:1034900083BF88E10FB6F8948093600010926000BB
+:1034A0000FBE089508950895CF930E94521A0E9466
+:1034B00023040E94531AC0E08C2F0E941005811132
+:1034C00005C0CF5FCE30C1F780E001C081E0CF9171
+:1034D00008950E9490130E942F0E0C94340782E0EE
+:1034E00084BD93E095BD9AEF97BD80936E000895DB
+:1034F0002FB7F8948091CE019091CF01A091D00187
+:10350000B091D1012FBF0895CF92DF92EF92FF9239
+:103510000F931F932FB7F8944091CE015091CF0194
+:103520006091D0017091D1012FBF6A017B01EE241F
+:10353000FF248C0120E030E0C016D106E206F3063D
+:1035400010F441505109481B590BCA011F910F91AA
+:10355000FF90EF90DF90CF9008951F920F920FB6DB
+:103560000F9211248F939F93AF93BF938091CE01BD
+:103570009091CF01A091D001B091D1010196A11DF0
+:10358000B11D8093CE019093CF01A093D001B09351
+:10359000D101BF91AF919F918F910F900FBE0F906E
+:1035A0001F9018950E94350BF8942FEF87EA91E64B
+:1035B000215080409040E1F700C0000087E090EB90
+:1035C000DC018093EE019093EF01A093F001B093A2
+:1035D000F1012CE088E190E00FB6F894A895809373
+:1035E00060000FBE20936000FFCFEF92FF920F9319
+:1035F0001F93CF93DF93E82EF12C8F2D0E9410059F
+:10360000C0E0D0E0082F10E098010C2E02C03595E4
+:1036100027950A94E2F720FD05C02196C630D10512
+:1036200099F709C06C2F7F2D80E00E94D705E81222
+:10363000F4CF81E005C0F3948EE0F812DECF80E095
+:10364000DF91CF911F910F91FF90EF900895CF934D
+:10365000C82F8CE20E94F51A882321F08C2FCF917D
+:103660000C94F51A80E0CF910895CF930E947A1CB4
+:10367000811102C00E94601CC5E6C15049F00E9441
+:1036800023048FE39CE90197F1F700C00000F5CF18
+:1036900089E20E94271B811111C18AE20E94271B27
+:1036A00081110E94601C85E00E94271B81110E94ED
+:1036B000D21A0E94851C8093CC0187E00E94271BB0
+:1036C000882399F18BE10E94271B882351F0909168
+:1036D000CC0191FB882780F921E0822780FB91F9BA
+:1036E00022C08EE00E94271B882351F09091CC01CC
+:1036F00092FB882780F921E0822780FB92F913C092
+:1037000080E10E94271B9091CC01882341F093FB1C
+:10371000882780F921E0822780FB93F904C0892F54
+:10372000809580FB90F99093CC018091CC010E9410
+:10373000891C0E94971C8093DF0180EE0E94271B4A
+:10374000882341F08091DF01982F909590FB80F9BC
+:103750008093DF0189E30E94271B882359F0909111
+:10376000DF0191FB882780F921E0822780FB91F916
+:103770009093DF0182EE0E94271B882359F09091DD
+:10378000DF0192FB882780F921E0822780FB92F9F4
+:103790009093DF0186EE0E94271B882359F09091B9
+:1037A000DF0193FB882780F921E0822780FB93F9D2
+:1037B0009093DF0183EE0E94271B882359F090919C
+:1037C000DF0194FB882780F921E0822780FB94F9B0
+:1037D0009093DF0185E30E94271B882359F0909185
+:1037E000DF0195FB882780F921E0822780FB95F98E
+:1037F0009093DF0181E30E94271B882359F0909169
+:10380000DF0196FB882780F921E0822780FB96F96B
+:103810009093DF0181E10E94271B882359F090914A
+:10382000DF0197FB882780F921E0822780FB97F949
+:103830009093DF018091DF010E949B1C8091DF014A
+:1038400087FB882780F980930D0187E20E94271B60
+:10385000C82F8EE10E94271B8111C2608FE10E9458
+:10386000271B8111C46080E20E94271B8111C86060
+:1038700081E20E94271B8111C06182E20E94271B06
+:103880008111C06283E20E94271B8111C06484E21F
+:103890000E94271B882311F0C06802C0CC2329F0A6
+:1038A0008C2F0E94921C6C2F03C00E948E1C682FCC
+:1038B00070E080E090E0CF910C948A17CF9108954A
+:1038C0006DEE7EEF80E090E00E94B62260E082E044
+:1038D00090E00E94A82260E083E090E00E94A8228D
+:1038E00060E084E090E00E94A82260E085E090E043
+:1038F0000C94A82280E090E00E94A22221E08D3E5C
+:103900009E4F09F020E0822F089582E090E00C9411
+:103910009A22682F82E090E00C94A82283E090E045
+:103920000C949A22682F83E090E00C94A82284E003
+:1039300090E00C949A22682F84E090E00C94A822E6
+:103940008091D40180FF0BC06091130185E0689FD6
+:10395000B001112475956795759567952AC081FF0B
+:1039600009C06091130185E0689FB001112475952D
+:1039700067951FC082FF07C06091130185E0689FB3
+:10398000B001112416C04091D5014423C9F06091C3
+:103990001201461788F72091130185E0289F9001B6
+:1039A0001124429FC001439F900D112470E00E949A
+:1039B0006C226038710540F46115710539F002C060
+:1039C00065E070E0862F08958FE7089581E00895FF
+:1039D0008091D40180FF08C06091110170E075955D
+:1039E00067957595679521C081FF06C060911101AB
+:1039F00070E07595679519C082FF04C06091110150
+:103A000070E010C08091D5018823C1F06091100151
+:103A10008617A0F790911101989FC001112470E0C2
+:103A20000E946C226038710528F46115710521F03F
+:103A3000862F08958FE7089581E0089561E070E092
+:103A4000F4CF803F21F40E94A01C819504C0813FE7
+:103A500029F40E94A01C8093D8010895823F21F48C
+:103A60000E94A01C819504C0833F29F40E94A01CE1
+:103A70008093D7010895893F19F40E94E81C05C07E
+:103A80008A3F31F40E94E81C81958093D901089502
+:103A90008B3F21F40E94E81C819504C08C3F29F4DF
+:103AA0000E94E81C8093DA010895843F21F48091FC
+:103AB000D601816017C0853F21F48091D6018260D4
+:103AC00011C0863F21F48091D60184600BC0873FEE
+:103AD00021F48091D601886005C0883F31F480913F
+:103AE000D60180618093D60108958D3F21F48091A5
+:103AF000D40181600BC08E3F21F48091D40182609B
+:103B000005C08F3F29F48091D40184608093D40153
+:103B10000895803F39F48091D80187FF6CC01092DE
+:103B2000D80169C0813F29F48091D8011816BCF3EF
+:103B300062C09091D701823F29F497FF5CC0109238
+:103B4000D70159C0833F19F41916CCF354C0893FEB
+:103B500041F48091D90118160CF04DC01092D90192
+:103B60004AC08A3F29F48091D90187FF44C0F6CF2B
+:103B70008B3F39F48091DA0187FF3DC01092DA0162
+:103B80003AC08C3F29F48091DA011816BCF333C097
+:103B9000843F21F48091D6018E7F17C0853F21F4A8
+:103BA0008091D6018D7F11C0863F21F48091D6018E
+:103BB0008B7F0BC0873F21F48091D601877F05C0A2
+:103BC000883F31F48091D6018F7E8093D60113C057
+:103BD0008D3F21F48091D4018E7F0BC08E3F21F464
+:103BE0008091D4018D7F05C08F3F29F48091D4014D
+:103BF0008B7F8093D4018091D70181110EC0809179
+:103C0000D80181110AC08091D901811106C080912B
+:103C1000DA01811102C01092D501089586ED91E07C
+:103C20000E94460E0E94781A9093D3018093D2018D
+:103C300008951F93CF93DF938091D2019091D30188
+:103C40000E94841A4091D501442321F0209114014F
+:103C500030E006C0209115015AE0259F9001112403
+:103C60008217930708F482C08091D7011091D80180
+:103C7000D091D901C091DA01811107C0111105C09D
+:103C8000D11103C0CC2309F471C04F3F19F04F5F2D
+:103C90004093D501181624F40E94A01C8093D701EC
+:103CA0008091D70187FF05C00E94A01C8195809359
+:103CB000D701111624F40E94A01C8093D801809192
+:103CC000D80187FF05C00E94A01C81958093D80170
+:103CD0006091D701662339F11091D801112319F1B0
+:103CE000772767FD7095872F972F0E947D2123E30B
+:103CF00033E343E35FE30E94E1210E944A216093A2
+:103D0000D701612F772767FD7095872F972F0E9426
+:103D10007D2123E333E343E35FE30E94E1210E943B
+:103D20004A216093D8011D1624F40E94E81C809358
+:103D3000D9018091D90187FF05C00E94E81C8195B7
+:103D40008093D9011C1624F40E94E81C8093DA01A8
+:103D50008091DA0187FF05C00E94E81C819580935D
+:103D6000DA01DF91CF911F910C940E1EDF91CF915C
+:103D70001F910895E6EDF1E085E0DF011D928A953F
+:103D8000E9F71092D5011092D4010895833081F1A2
+:103D900028F4813059F08230D1F00895853009F44B
+:103DA00049C0B8F1863009F456C008952091150134
+:103DB000862F90E0820F911D8F3F910520F4620FB6
+:103DC0006093150108958FEF809315010895209158
+:103DD0001401862F90E0820F911D8F3F910520F4F2
+:103DE000620F6093140108958FEF8093140108957A
+:103DF00020911301862F90E0820F911D8F3F910536
+:103E000020F4620F6093130108958FEF80931301E4
+:103E1000089520911201862F90E0820F911D8F3F0F
+:103E2000910520F4620F6093120108958FEF809343
+:103E30001201089520911101862F90E0820F911DAB
+:103E40008F3F910520F4620F6093110108958FEF69
+:103E500080931101089520911001862F90E0820F28
+:103E6000911D8F3F910520F4620F6093100108951A
+:103E70008FEF809310010895833011F128F4813081
+:103E800049F0823091F00895853081F120F186303B
+:103E9000C1F1089580911501681720F4861B809365
+:103EA0001501089510921501089580911401681765
+:103EB00020F4861B80931401089510921401089534
+:103EC00080911301681720F4861B809313010895D5
+:103ED00010921301089580911201681720F4861B37
+:103EE000809312010895109212010895809111019A
+:103EF000681720F4861B8093110108951092110118
+:103F0000089580911001681720F4861B809310019A
+:103F100008951092100108958D3109F442C020F5E2
+:103F20008E3009F479C070F4873009F45EC020F453
+:103F3000863009F442C033C08830D1F18B3009F4A7
+:103F4000A7C02DC0863109F4A3C038F4803109F42C
+:103F50006DC0813109F47BC022C0893109F498C059
+:103F60008B3109F44FC01BC0853309F479C048F484
+:103F7000873209F475C008F478C0893209F470C03A
+:103F80000EC0833438F48A3308F071C0883309F4E2
+:103F90007FC005C0833409F463C08834C1F080E079
+:103FA00008950E9404210E942F0E0E94340770C0C1
+:103FB0000E94851C0E94971C6BC08091CC01817F60
+:103FC0008E7F8093CC0181E08093DC0108950E9474
+:103FD00090132FEF83ED90E3215080409040E1F764
+:103FE00000C000000E94D21A53C09091CC01892FCA
+:103FF000817090FF03C0917F9E7F26C09160909357
+:10400000CC0146C09091CC0191FB882780F921E03A
+:10401000822780FB91F913C09091CC0192FB8827F5
+:1040200080F921E0822780FB92F909C09091CC01B0
+:1040300093FB882780F921E0822780FB93F99093F6
+:10404000CC01882329F191609093CC0108950E94BE
+:10405000901380910D0191E0892780930D0118C084
+:1040600061E070E080E090E00FC023EE01C027EC3B
+:10407000280F61E070E080E090E004C0660F771FD9
+:10408000881F991F2A95D2F70E948A170E949013C1
+:1040900081E0089580E0089580E00895CF93C82FCF
+:1040A0008091DC01813079F018F08230D1F184C048
+:1040B000A0910E01B0910F018C91813169F0823293
+:1040C00009F07CC009C0A0910E01B0910F018C9144
+:1040D000813111F0823249F48C2F0E944A208111E3
+:1040E0001DC08C2F0E948C1F1AC08C2F0E944C2048
+:1040F000811114C0C43179F048F4CB3079F0C0316B
+:1041000009F060C082E08093DC0108C0C93219F078
+:10411000C83321F057C01092DC0154C081E0817097
+:1041200053C0C93289F118F5C43171F1A8F4C73010
+:1041300009F046C08AE08093150194E19093140140
+:1041400093E0909313018093120188E08093110112
+:1041500088E28093100134C0CE51C63088F5EC2F30
+:10416000F0E0E65DFE4F80818093DB0129C0CE3414
+:10417000E9F020F4CB3421F56AE013C0C13579F0C1
+:10418000C235F1F461E00DC08091DB01882319F0A4
+:104190001092DB0115C081E08093DC0115C061E065
+:1041A00006C08091DB010E94C61E0AC06AE08091B1
+:1041B000DB010E943C1F04C01092DC0180E004C0BF
+:1041C00081E002C080E0ABCFCF910895E1E8F0E05C
+:1041D0008081886080838081816080838FB7F8943C
+:1041E00093E09093890090ED909388008FBF08959D
+:1041F000EFE6F0E08081826080830895EFE6F0E0F2
+:1042000080818D7F80830895EFE6F0E0808192E0E9
+:104210008927808308951F920F920FB60F92112461
+:104220002F933F934F935F936F937F938F939F93BE
+:10423000AF93BF93EF93FF938091DD019091DE01E7
+:1042400001969093DE018093DD01811103C082E02D
+:104250000E943407E091DE01E695E695F0E0E6572E
+:10426000FB4FE4918091DD018E1303C080E00E943A
+:104270003407FF91EF91BF91AF919F918F917F9103
+:104280006F915F914F913F912F910F900FBE0F90C3
+:104290001F90189504D06894B1118DC0089570D006
+:1042A00088F09F5790F0B92F9927B751A0F0D1F01F
+:1042B000660F771F881F991F1AF0BA95C9F712C0A9
+:1042C000B13081F077D0B1E0089574C0672F782FB6
+:1042D0008827B85F39F0B93FCCF386957795679515
+:1042E000B395D9F73EF490958095709561957F4F81
+:1042F0008F4F9F4F0895E89409C097FB3EF4909527
+:104300008095709561957F4F8F4F9F4F9923A9F0AE
+:10431000F92F96E9BB279395F6958795779567953D
+:10432000B795F111F8CFFAF4BB0F11F460FF1BC081
+:104330006F5F7F4F8F4F9F4F16C0882311F096E914
+:1043400011C0772321F09EE8872F762F05C06623C2
+:1043500071F096E8862F70E060E02AF09A95660F7B
+:10436000771F881FDAF7880F9695879597F9089534
+:1043700057FD9058440F551F59F05F3F71F0479516
+:10438000880F97FB991F61F09F3F79F087950895FB
+:10439000121613061406551FF2CF4695F1DF08C01A
+:1043A000161617061806991FF1CF86957105610537
+:1043B00008940895E894BB2766277727CB0197F9DF
+:1043C00008950BD078C069D028F06ED018F09523EE
+:1043D00009F05AC05FC01124EECFCADFA0F3959F49
+:1043E000D1F3950F50E0551F629FF001729FBB27DC
+:1043F000F00DB11D639FAA27F00DB11DAA1F649F88
+:104400006627B00DA11D661F829F2227B00DA11D3A
+:10441000621F739FB00DA11D621F839FA00D611DC0
+:10442000221F749F3327A00D611D231F849F600DE1
+:10443000211D822F762F6A2F11249F5750408AF01A
+:10444000E1F088234AF0EE0FFF1FBB1F661F771FA6
+:10445000881F91505040A9F79E3F510570F014C03D
+:10446000AACF5F3FECF3983EDCF38695779567958E
+:10447000B795F795E7959F5FC1F7FE2B880F911DC4
+:104480009695879597F9089597F99F6780E870E06A
+:1044900060E008959FEF80EC089500240A941616BA
+:1044A000170618060906089500240A941216130622
+:1044B000140605060895092E0394000C11F48823B0
+:1044C00052F0BB0F40F4BF2B11F460FF04C06F5FCC
+:1044D0007F4F8F4F9F4F089597FB072E16F4009440
+:1044E00007D077FD09D00E94862207FC05D03EF454
+:1044F000909581959F4F0895709561957F4F089590
+:10450000EE0FFF1F0590F491E02D0994AA1BBB1B31
+:1045100051E107C0AA1FBB1FA617B70710F0A61BC3
+:10452000B70B881F991F5A95A9F780959095BC01E4
+:10453000CD010895F999FECF92BD81BDF89A9927D2
+:1045400080B50895A8E1B0E042E050E00C94BD22AF
+:10455000262FF999FECF1FBA92BD81BD20BD0FB69F
+:10456000F894FA9AF99A0FBE019608950E94A8222B
+:10457000272F0C94A922DC01CB01FC01F999FECF75
+:1045800006C0F2BDE1BDF89A319600B40D924150DB
+:0A4590005040B8F70895F894FFCFEB
+:10459A0020023607C307A0076C0739070101BA01D1
+:1045AA0028080A03140A3F4D36394B04FE03C80390
+:1045BA008F0322033B0354036D0301020304050620
+:0445CA0007080900D5
:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.png
deleted file mode 100644
index c83f972cfe..0000000000
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.png
+++ /dev/null
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md
index 033e8ef4d5..1cfea06dd0 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/readme.md
+++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md
@@ -1,5 +1,9 @@
-# The Ordinary Layout. for users of common keyboards
+# The Ordinary Layout, a familiar and powerful layout
-You can read more about the reasoning behind this layout over at [Nicholas's blog](http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html). The idea is to make a layout that's as familiar as possible for users of "regular" keyboards.
+The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards and features enhanced Symbol and Media layers compared to the default Ergodox EZ layout.
-![Ordinary layout](ordinary.png)
+Full details about the rationale behind this layout [are available](http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html).
+
+![Ordinary base layout](ordinary-base.png)
+![Ordinary symbol layout](ordinary-symbol.png)
+![Ordinary media layout](ordinary-media.png)
diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md
index 6f182d0d83..9eb4c24db3 100644
--- a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md
+++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md
@@ -28,7 +28,11 @@ There are four layers:
- Tap `F2` to copy screenshot to the clipboard.
- Hold `SHIFT` and tap `F2` to save screenshot as a file.
- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
-- Tap `F14`, `F15` to adjust display brightness.
+- Tap `F14`, `F15` to adjust display brightness.
+
+**IMPORTANT**: If you have another keyboard connected via Bluetooth, then `F14` and `F15` will not work.
+Turn off that Bluetooth keyboard. Re-plug you ErgoDox. Enjoy!
+
## CTRL/ESC
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
index a9c2a06813..d995eb9e58 100644
--- a/keyboard/planck/keymaps/default/keymap.c
+++ b/keyboard/planck/keymaps/default/keymap.c
@@ -17,31 +17,91 @@
#define _RS 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QW] = { /* Qwerty */
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QW] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
-[_CM] = { /* Colemak */
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_CM] = {
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
-[_DV] = { /* Dvorak */
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DV] = {
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
-[_RS] = { /* RAISE */
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RS] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
-[_LW] = { /* LOWER */
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LW] = {
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
diff --git a/keyboard/retro_refit/Makefile b/keyboard/retro_refit/Makefile
new file mode 100644
index 0000000000..ec51227ff1
--- /dev/null
+++ b/keyboard/retro_refit/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 = retro_refit
+
+
+# Directory common source filess exist
+TOP_DIR = ../..
+TMK_DIR = ../../tmk_core
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# # project specific files
+SRC = retro_refit.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/retro_refit/README.md b/keyboard/retro_refit/README.md
new file mode 100644
index 0000000000..d3c9d4197d
--- /dev/null
+++ b/keyboard/retro_refit/README.md
@@ -0,0 +1,24 @@
+retro_refit 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/retro_refit 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/retro_refit/config.h b/keyboard/retro_refit/config.h
new file mode 100644
index 0000000000..ba9a861edd
--- /dev/null
+++ b/keyboard/retro_refit/config.h
@@ -0,0 +1,79 @@
+/*
+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 Nobody
+#define PRODUCT retro_refit
+#define DESCRIPTION Retro Refit
+
+/* key matrix size */
+#define MATRIX_ROWS 11
+#define MATRIX_COLS 8
+
+// See note in retro_refit.h for an explanation of how this matrix is wired up
+#define COLS (int []){ B0, B1, B2, B3, D2, D3, C7, D5 }
+#define ROWS (int []){ D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 0
+
+/* 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/retro_refit/keymaps/default.c b/keyboard/retro_refit/keymaps/default.c
new file mode 100644
index 0000000000..405402d5e3
--- /dev/null
+++ b/keyboard/retro_refit/keymaps/default.c
@@ -0,0 +1,33 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "retro_refit.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] =
+ KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NLCK, SLCK, PSCR, PAUS, \
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, HOME, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, PGUP, \
+ BSLS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, PGDN, \
+ LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, END, \
+ LCTL, LGUI, LALT, SPC, INS, DEL, LEFT, DOWN, RGHT),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboard/retro_refit/retro_refit.c b/keyboard/retro_refit/retro_refit.c
new file mode 100644
index 0000000000..0b13eb8301
--- /dev/null
+++ b/keyboard/retro_refit/retro_refit.c
@@ -0,0 +1,68 @@
+#include "retro_refit.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS)
+ DDRD |= (1<<6);
+ PORTD |= (1<<6);
+
+ matrix_init_user();
+};
+
+void amatrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+};
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // output low
+ DDRD |= (1<<0);
+ PORTD &= ~(1<<0);
+ } else {
+ // Hi-Z
+ DDRD &= ~(1<<0);
+ PORTD &= ~(1<<0);
+ }
+ if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // output low
+ DDRD |= (1<<1);
+ PORTD &= ~(1<<1);
+ } else {
+ // Hi-Z
+ DDRD &= ~(1<<1);
+ PORTD &= ~(1<<1);
+ }
+ if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // output low
+ DDRC |= (1<<6);
+ PORTC &= ~(1<<6);
+ } else {
+ // Hi-Z
+ DDRC &= ~(1<<6);
+ PORTC &= ~(1<<6);
+ }
+
+ led_set_user(usb_led);
+}; \ No newline at end of file
diff --git a/keyboard/retro_refit/retro_refit.h b/keyboard/retro_refit/retro_refit.h
new file mode 100644
index 0000000000..6e57586374
--- /dev/null
+++ b/keyboard/retro_refit/retro_refit.h
@@ -0,0 +1,45 @@
+#ifndef RETRO_REFIT_H
+#define RETRO_REFIT_H
+
+#include "matrix.h"
+#include "keymap_common.h"
+#include "led.h"
+#include <stddef.h>
+
+// This macro is an example of using a non-standard row-column matrix. The
+// keyboard in question had 11 rows and 8 columns, but the rows were not all
+// horizontal, and the columns were not all vertical. For example, row 2
+// contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and
+// "Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B",
+// "Left Alt", "Up Arrow", and "Down Arrow".
+//
+// The macro makes programming the keys easier and in a more straight-forward
+// manner because it realigns the keys into a 6x15 sensible keyboard layout
+// instead of the obtuse 11x8 matrix.
+
+#define KEYMAP( \
+ K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \
+ K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \
+ K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45, K97, \
+ K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30, K44, K87, \
+ K26, K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \
+ K10, K06, K25, K07, K86, K85, K95, K90, K93 \
+) { \
+{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, }, \
+{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, }, \
+{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, }, \
+{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, }, \
+{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, }, \
+{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, }, \
+{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, }, \
+{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, }, \
+{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K85, KC_##K86, KC_##K87, }, \
+{ KC_##K90, KC_##K91, KC_NO, KC_##K93, KC_##K94, KC_##K95, KC_NO, KC_##K97, }, \
+{ KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+void led_set_user(uint8_t usb_led);
+
+#endif \ No newline at end of file
diff --git a/quantum/led.c b/quantum/led.c
index 2c05746607..9cdb8a5c20 100644
--- a/quantum/led.c
+++ b/quantum/led.c
@@ -19,9 +19,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdint.h"
#include "led.h"
+__attribute__ ((weak))
+void led_set_kb(uint8_t usb_led) {
+
+}
void led_set(uint8_t usb_led)
{
+
+ // Example LED Code
+ //
// // Using PE6 Caps Lock LED
// if (usb_led & (1<<USB_LED_CAPS_LOCK))
// {
@@ -35,4 +42,6 @@ void led_set(uint8_t usb_led)
// DDRE &= ~(1<<6);
// PORTE &= ~(1<<6);
// }
+
+ led_set_kb(usb_led);
}
diff --git a/quantum/template/template.c b/quantum/template/template.c
index 7dcd67cfcf..58e73cb09f 100644
--- a/quantum/template/template.c
+++ b/quantum/template/template.c
@@ -2,22 +2,35 @@
__attribute__ ((weak))
void matrix_init_user(void) {
- // leave these blank
-}
+ // leave this function blank - it can be defined in a keymap file
+};
__attribute__ ((weak))
void matrix_scan_user(void) {
- // leave these blank
+ // leave this function blank - it can be defined in a keymap file
+}
+
+__attribute__ ((weak))
+void led_set_user(uint8_t usb_led) {
+ // leave this function blank - it can be defined in a keymap file
}
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)
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
matrix_scan_user();
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
} \ No newline at end of file
diff --git a/quantum/template/template.h b/quantum/template/template.h
index 1171dc8e0f..ba91abac3e 100644
--- a/quantum/template/template.h
+++ b/quantum/template/template.h
@@ -21,5 +21,6 @@
void matrix_init_user(void);
void matrix_scan_user(void);
+void led_set_user(uint8_t usb_led);
#endif \ No newline at end of file
diff --git a/teensy-sdk b/teensy-sdk
deleted file mode 160000
-Subproject 19892c196894e6676fa69c732e05a03a68d5cb0
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index 77ea39e942..4197c53ed2 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -70,6 +70,10 @@ void process_action(keyrecord_t *record)
#endif
dprintln();
+ if (event.pressed) {
+ // clear the potential weak mods left by previously pressed keys
+ clear_weak_mods();
+ }
switch (action.kind.id) {
/* Key and Mods */
case ACT_LMODS:
@@ -500,6 +504,7 @@ void clear_keyboard(void)
void clear_keyboard_but_mods(void)
{
clear_weak_mods();
+ clear_macro_mods();
clear_keys();
send_keyboard_report();
#ifdef MOUSEKEY_ENABLE
diff --git a/tmk_core/common/action_macro.c b/tmk_core/common/action_macro.c
index ffaf125c06..7726b11907 100644
--- a/tmk_core/common/action_macro.c
+++ b/tmk_core/common/action_macro.c
@@ -41,7 +41,7 @@ void action_macro_play(const macro_t *macro_p)
MACRO_READ();
dprintf("KEY_DOWN(%02X)\n", macro);
if (IS_MOD(macro)) {
- add_weak_mods(MOD_BIT(macro));
+ add_macro_mods(MOD_BIT(macro));
send_keyboard_report();
} else {
register_code(macro);
@@ -51,7 +51,7 @@ void action_macro_play(const macro_t *macro_p)
MACRO_READ();
dprintf("KEY_UP(%02X)\n", macro);
if (IS_MOD(macro)) {
- del_weak_mods(MOD_BIT(macro));
+ del_macro_mods(MOD_BIT(macro));
send_keyboard_report();
} else {
unregister_code(macro);
diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index f81877dd9f..a2d6577b24 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -29,6 +29,7 @@ static inline void del_key_bit(uint8_t code);
static uint8_t real_mods = 0;
static uint8_t weak_mods = 0;
+static uint8_t macro_mods = 0;
#ifdef USB_6KRO_ENABLE
#define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS)
@@ -55,6 +56,7 @@ static int16_t oneshot_time = 0;
void send_keyboard_report(void) {
keyboard_report->mods = real_mods;
keyboard_report->mods |= weak_mods;
+ keyboard_report->mods |= macro_mods;
#ifndef NO_ACTION_ONESHOT
if (oneshot_mods) {
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
@@ -118,6 +120,13 @@ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; }
void set_weak_mods(uint8_t mods) { weak_mods = mods; }
void clear_weak_mods(void) { weak_mods = 0; }
+/* macro modifier */
+uint8_t get_macro_mods(void) { return macro_mods; }
+void add_macro_mods(uint8_t mods) { macro_mods |= mods; }
+void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; }
+void set_macro_mods(uint8_t mods) { macro_mods = mods; }
+void clear_macro_mods(void) { macro_mods = 0; }
+
/* Oneshot modifier */
#ifndef NO_ACTION_ONESHOT
void set_oneshot_mods(uint8_t mods)
diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h
index a955638b46..1a95cec10e 100644
--- a/tmk_core/common/action_util.h
+++ b/tmk_core/common/action_util.h
@@ -47,6 +47,13 @@ void del_weak_mods(uint8_t mods);
void set_weak_mods(uint8_t mods);
void clear_weak_mods(void);
+/* macro modifier */
+uint8_t get_macro_mods(void);
+void add_macro_mods(uint8_t mods);
+void del_macro_mods(uint8_t mods);
+void set_macro_mods(uint8_t mods);
+void clear_macro_mods(void);
+
/* oneshot modifier */
void set_oneshot_mods(uint8_t mods);
void clear_oneshot_mods(void);
diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h
index d5fc051bf5..2e18dc2afa 100644
--- a/tmk_core/common/led.h
+++ b/tmk_core/common/led.h
@@ -34,8 +34,11 @@ extern "C" {
void led_set(uint8_t usb_led);
+/* keyboard-specific LED functionality */
+void led_set_kb(uint8_t usb_led);
+
#ifdef __cplusplus
}
#endif
-#endif
+#endif \ No newline at end of file