summaryrefslogtreecommitdiffstats
path: root/keyboard/gh60
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-06-21 22:39:54 -0400
committerGitHub <noreply@github.com>2016-06-21 22:39:54 -0400
commit649b33d7783cf3021928534b7ae127e0a89e8807 (patch)
treec2b5e0cf8ff4aa2918e3b88ab75dbdb071cc0a1d /keyboard/gh60
parent464c8e274f993d3571fe5ea5e836fe55a3912ffe (diff)
Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432)
* fixes from tmk's repo * rename keyboard to keyboards
Diffstat (limited to 'keyboard/gh60')
-rw-r--r--keyboard/gh60/Makefile74
-rw-r--r--keyboard/gh60/README.md60
-rw-r--r--keyboard/gh60/config.h161
-rw-r--r--keyboard/gh60/gh60.c68
-rw-r--r--keyboard/gh60/gh60.h81
-rw-r--r--keyboard/gh60/gh60revc.jpgbin1424987 -> 0 bytes
-rw-r--r--keyboard/gh60/keymaps/default/compiled.hex1019
-rw-r--r--keyboard/gh60/keymaps/default/keymap.c69
-rw-r--r--keyboard/gh60/pinout.txt18
9 files changed, 0 insertions, 1550 deletions
diff --git a/keyboard/gh60/Makefile b/keyboard/gh60/Makefile
deleted file mode 100644
index 39a9cc0ae1..0000000000
--- a/keyboard/gh60/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-# CONSOLE_ENABLE ?= yes # Console for debug(+400)
-# COMMAND_ENABLE ?= yes # Commands for debug and configuration
-KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-# SLEEP_LED_ENABLE ?= 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
-
-
-ifndef QUANTUM_DIR
- include ../../Makefile
-endif
-
diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md
deleted file mode 100644
index bf209be8c6..0000000000
--- a/keyboard/gh60/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-## gh60 Rev C keyboard firmware
-
-![gh60 Rev C PCB](gh60revc.jpg)
-
- /* Column pin configuration
- * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
- * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
- */
-
- /* Row pin configuration
- * row: 0 1 2 3 4
- * pin: D0 D1 D2 D3 D5
- */
-
- GPIO pads
- 0 F7 WASD LEDs
- 1 F6 ESC LED
- 2 F5 FN LED
- 3 F4 POKER Arrow LEDs
-
- B2 Capslock LED
- B0 not connected
-
-Functions to controls LED clusters
-
- gh60_caps_led_on()
- gh60_poker_leds_on()
- gh60_fn_led_on()
- gh60_esc_led_on()
- gh60_wasd_leds_on()
-
- gh60_caps_led_off()
- gh60_poker_leds_off()
- gh60_fn_led_off()
- gh60_esc_led_off()
- gh60_wasd_leds_off()
-
-======================
-
-## 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/gh60_rev_c 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` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files.
-
-To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
-```
-$ make KEYMAP=[default|jack|<name>]
-```
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/gh60/config.h b/keyboard/gh60/config.h
deleted file mode 100644
index 4813c4e786..0000000000
--- a/keyboard/gh60/config.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-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 geekhack
-#define PRODUCT GH60
-#define DESCRIPTION t.m.k. keyboard firmware for GH60
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
- #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
-// Rev A
-// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
-// Rev B/C
- #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
-#define UNUSED_PINS
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCING_DELAY 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboard/gh60/gh60.c b/keyboard/gh60/gh60.c
deleted file mode 100644
index 6da4d8ee3e..0000000000
--- a/keyboard/gh60/gh60.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "gh60.h"
-#include "led.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))
-bool process_action_user(keyrecord_t *record) {
- // leave this function blank - it can be defined in a keymap file
- return true;
-}
-
-__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)
-
- matrix_scan_user();
-}
-
-bool process_action_kb(keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_action_user(record);
-}
-
-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)) {
- gh60_caps_led_on();
- } else {
- gh60_caps_led_off();
- }
-
- // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
- // gh60_esc_led_on();
- // } else {
- // gh60_esc_led_off();
- // }
-
- // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
- // gh60_fn_led_on();
- // } else {
- // gh60_fn_led_off();
- // }
-
- led_set_user(usb_led);
-}
diff --git a/keyboard/gh60/gh60.h b/keyboard/gh60/gh60.h
deleted file mode 100644
index a0ad51357b..0000000000
--- a/keyboard/gh60/gh60.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef GH60_H
-#define GH60_H
-
-#include "matrix.h"
-#include "keymap.h"
-#include "backlight.h"
-#include <stddef.h>
-
-/* GH60 LEDs
- * GPIO pads
- * 0 F7 WASD LEDs
- * 1 F6 ESC LED
- * 2 F5 FN LED
- * 3 F4 POKER Arrow LEDs
- * B2 Capslock LED
- * B0 not connected
- */
-inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
-inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
-inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
-inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
-inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
-
-inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
-inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
-inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
-inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
-inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
-
-/* GH60 keymap definition macro
- * K2C, K31 and K3C are extra keys for ISO
- */
-#define KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
- { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
-}
-
-/* ANSI valiant. No extra keys for ISO */
-#define KEYMAP_ANSI( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K41, K42, K45, K4A, K4B, K4C, K4D \
-) KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
- K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
- K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
-)
-
-#define KEYMAP_HHKB( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
- K40, K41, K42, K45, K4A, K4B, K4C, K4D \
-) KEYMAP( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
- K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
-)
-
-void matrix_init_user(void);
-void matrix_scan_user(void);
-bool process_action_user(keyrecord_t *record);
-void led_set_user(uint8_t usb_led);
-
-#endif
diff --git a/keyboard/gh60/gh60revc.jpg b/keyboard/gh60/gh60revc.jpg
deleted file mode 100644
index 6c88ad2442..0000000000
--- a/keyboard/gh60/gh60revc.jpg
+++ /dev/null
Binary files differ
diff --git a/keyboard/gh60/keymaps/default/compiled.hex b/keyboard/gh60/keymaps/default/compiled.hex
deleted file mode 100644
index 5c253e970a..0000000000
--- a/keyboard/gh60/keymaps/default/compiled.hex
+++ /dev/null
@@ -1,1019 +0,0 @@
-:100000000C9428020C946C020C946C020C946C02FC
-:100010000C946C020C946C020C946C020C946C02A8
-:100020000C946C020C946C020C94A50B0C94770C41
-:100030000C949B190C946C020C946C020C946C0242
-:100040000C946C020C946C020C946C020C946C0278
-:100050000C946C020C94031A0C946C020C946C02B9
-:100060000C946C020C946C020C946C020C946C0258
-:100070000C946C020C946C020C946C020C946C0248
-:100080000C946C020C946C020C946C020C946C0238
-:100090000C946C020C946C020C946C020C946C0228
-:1000A0000C946C020C946C020C946C02E40C060D23
-:1000B000F40D060DF40D4B0D6E0DF40DC30DD60DA4
-:1000C000B310B310E210E21021114111711271123C
-:1000D0004C117112FC11FC116212711271126B122F
-:1000E0000912091209120912091209120912091238
-:1000F0000912091209120912091209120912091228
-:10010000191227122E1235123F12F1A1048A29006A
-:100110001E001F00200021002200230024002500D3
-:10012000260027002D002E0035002B0014001A0099
-:100130000800150017001C0018000C001200130026
-:100140002F0030002A0039000400160007000900C3
-:100150000A000B000D000E000F00330034000000F9
-:100160002800E100C1001D001B0006001900050069
-:1001700011001000360037003800C000E500E00034
-:10018000E300E200000000002C000000000000007E
-:100190003100E600E7006500E40029003A003B007A
-:1001A0003C003D003E003F00400041004200430053
-:1001B000440045000100010001005200010001005F
-:1001C0000100010001000100010001000100010027
-:1001D00001000100500051004F000100010001002A
-:1001E0000100010001000100010001000100010007
-:1001F00001000100010001000100010001000100F7
-:1002000001000100010001000100010001000100E6
-:1002100000000000010000000000000001000100DB
-:1002200001000100010001000100010001000100C6
-:1002300001000100010001000100010001000100B6
-:1002400001000100010001000100010001000100A6
-:100250000100010001000100010001000100010096
-:100260000100010001000100010001000100010086
-:100270000100010001000100010001000100010076
-:100280000100010001000100010001000100010066
-:100290000100010052000100010001000000000007
-:1002A00001000000000000000100010050005100AA
-:1002B0004F000A03470048003600300000001203D8
-:1002C0006700650065006B006800610063006B00FB
-:1002D00000000403090409026D00040100A0FA09EA
-:1002E0000400000103010100092111010001223F66
-:1002F000000705810308000A090401000103010247
-:1003000000092111010001224D00070582030800A8
-:100310000A09040200010300000009211101000183
-:100320002236000705830308000A090403000103BD
-:100330000000000921110100012239000705840392
-:100340001000011201100100000008EDFE606001C4
-:10035000000102000105010906A101050719E029B4
-:10036000E715002501950875018102050819012985
-:100370000595057501910295017503910105071910
-:1003800000297715002501957875018102C00501C6
-:100390000980A101850216010026B7001A01002A72
-:1003A000B700751095018100C0050C0901A10185F8
-:1003B00003160100269C021A01002A9C0275109562
-:1003C000018100C005010902A1010901A10005097F
-:1003D0001901290515002501950575018102950171
-:1003E000750381010501093009311581257F9502C9
-:1003F0007508810609381581257F950175088106E4
-:10040000050C0A38021581257F950175088106C003
-:10041000C005010906A101050719E029E715002516
-:10042000019508750181029501750881010508197A
-:100430000129059505750191029501750391010545
-:1004400007190029FF150025FF950675088100C0D2
-:1004500011241FBECFEFDAE0DEBFCDBF04B603FE2E
-:1004600024C08091F1019091F201A091F301B0912B
-:10047000F4018730904BA740B04BB9F41092F101D2
-:100480001092F2011092F3011092F40114BE84B79D
-:10049000877F84BF88E10FB6F89480936000109244
-:1004A00060000FBEE0E0F8E3099511E0A0E0B1E0E4
-:1004B000EEE5FFE302C005900D92AC33B107D9F72A
-:1004C00011E0ACE3B1E001C01D92A13FB107E1F73B
-:1004D0000E94EB080C94AD1F0C940000089581E07D
-:1004E000089508950C946E020C9490020C946F027F
-:1004F00081FF02C0229A01C022982A980C947102AE
-:1005000061110BC0FC018281882321F085EE0E94DD
-:10051000620F03C085EE0E941F1080E090E00895F6
-:100520008091B70181FF04C0879A8F98859A03C094
-:1005300087988F9885988D9882FF04C0849A8C98AC
-:10054000869A03C084988C9886988E98089581E046
-:1005500008950C94A70208950F931F93CF93DF93F0
-:100560008C01FC01C081D181CE010E94D517BE0152
-:100570000E945903EC01B8010E94A902882309F4E2
-:100580008DC0F8018281882309F44AC08091470117
-:1005900081111FC0C431F0E5DF0709F051C00E948E
-:1005A000AB0281E0809347010E94CD1990934601F0
-:1005B0008093450110923E011092400110923F013C
-:1005C0001092420110924101109244011092430195
-:1005D00065C080914501909146010E94D919883CDF
-:1005E000910570F480913E01E82FF0E0EE0FFF1FBF
-:1005F000E15CFE4FD183C0838F5F80933E014EC08C
-:10060000C43880E5D80721F0C538D04501F13AC09B
-:10061000F8018281882341F010923C0182E01EC0E3
-:10062000C438E0E5DE0759F580913C01811106C030
-:1006300086E20E94620F86E20E941F1082E01CC0C8
-:10064000C438F0E5DF0741F3C538D045D9F4F801E7
-:100650008281882331F010923D0180E20E946E1069
-:100660001DC080913D01811106C087E20E94620F8A
-:1006700087E20E941F1080E20E9475100FC0C538EB
-:10068000D04529F381E080933C0180933D01C8016E
-:10069000DF91CF911F910F910C94760280E0DF9152
-:1006A000CF911F910F9108950C9472020C947402D3
-:1006B00008959EE0799FF001112496E4899FE00D52
-:1006C000F11D1124E60FF11DEE0FFF1FE25FFE4F3B
-:1006D000859194910895880F991FFC01E657F04089
-:1006E000859194910895880F991FFC01E65FFE4F54
-:1006F0008591949108950F931F93CF93DF93EC010D
-:10070000811520E3920750F5C11580E2D80708F063
-:10071000C3C0CB3BD10590F4C83AD10508F06AC0FC
-:10072000C53AD10508F05BC0C430D10508F0D0C18E
-:10073000219709F0CAC101E010E00AC2CF3FD105FC
-:1007400011F008F0C5C1C03FD10508F0A2C0CE012C
-:10075000805E9109089708F4BBC1B7C1C13090E52C
-:10076000D90709F4A2C020F5C0318FE4D80770F48E
-:10077000C11590E4D90708F094C0C11521E3D20750
-:1007800008F0A3C1DD278E01106CE2C1C115D04570
-:1007900009F09BC10E94DC128FEF94E32CE08150A2
-:1007A00090402040E1F700C000000E94281AD0C10C
-:1007B000C11597E5D90758F4C03121E5D20708F0F3
-:1007C0001CC1C43180E5D80708F475C07EC1CE01D4
-:1007D00090578115904108F078C1DF7073C1C53A18
-:1007E000D10509F477C1C63AD10509F076C102E80E
-:1007F00010E4AEC1C83AD10509F472C1C93AD105B5
-:1008000009F471C1CA3AD10509F470C1CB3AD105D6
-:1008100009F46FC1CC3AD10509F46EC1CD3AD105C6
-:1008200009F46DC1C03BD10509F46CC1CE3AD105C4
-:1008300009F46BC1CF3AD10509F46AC1C13BD105B6
-:1008400009F469C1C23BD10509F468C1C33BD105B4
-:1008500009F467C1C43BD10509F466C1C53BD105A4
-:1008600009F465C1C63BD10509F464C1C73BD10594
-:1008700009F463C1C83BD10509F462C1C93BD10584
-:1008800009F461C1CA3BD10509F460C100E014E478
-:100890005FC18E0110655CC1CE019F700E94730321
-:1008A00058C1DF708E01106A53C18091D4018160FC
-:1008B0008093D4014DC10E94D51B811102C00E94BA
-:1008C000BB1B0E94F21B90E09093F1018093F0011A
-:1008D000C23080E5D80721F48091F001816086C0A4
-:1008E000C43090E5D90721F48091F00182607EC088
-:1008F000C63020E5D20721F48091F001846076C0F3
-:10090000C83080E5D80719F48091F00127C0CA30BB
-:1009100090E5D90721F48091F001806167C0CC3067
-:1009200020E5D20721F48091F00180625FC0CE30D3
-:1009300080E5D80721F48091F001806457C0C03170
-:1009400090E5D90721F48091F00180684FC0C23151
-:1009500020E5D20729F48091F0018460886046C0C8
-:10096000C33080E5D80721F48091F0018E7F3EC02E
-:10097000C53090E5D90721F48091F0018D7F36C014
-:10098000C73020E5D20721F48091F0018B7F2EC083
-:10099000C93080E5D80719F48091F00126C0CB302A
-:1009A00090E5D90721F48091F0018F7E1FC0CD30F2
-:1009B00020E5D20721F48091F0018F7D17C0CF3060
-:1009C00080E5D80721F48091F0018F7B0FC0C13101
-:1009D00090E5D90721F48091F0018F7707C0C331EA
-:1009E000D04531F48091F0018B7F877F8093F001B7
-:1009F0008091F0010E94F61BABC08D2F99278F705C
-:100A0000992781309105D9F49E012370332702C0C4
-:100A1000880F991F2A95E2F79C688E0144E0000F29
-:100A2000111F4A95E1F700271370802B912B53E09B
-:100A3000CC0FDD1F5A95E1F7C076DD272FC082303D
-:100A4000910531F4DC2FCC278E01016F106A80C034
-:100A50008330910569F4CE018370992701E010E09D
-:100A600002C0000F111F8A95E2F7C8019C680FC0F1
-:100A700084309105B9F4CE018370992701E010E02C
-:100A800002C0000F111F8A95E2F7C8019A6823E09F
-:100A9000CC0FDD1F2A95E1F7C07ED7708C010C2B9F
-:100AA0001D2B56C08530910531F4DC2FCC278E01EB
-:100AB000046F106A4DC0069709F04AC0CF71DD2758
-:100AC000DC2FCC278E01106243C000E010E040C054
-:100AD0008E013EC001E810E43BC003E810E438C0DA
-:100AE00002EE14E435C009EE14E432C00AEE14E458
-:100AF0002FC005EB14E42CC006EB14E429C007EB6F
-:100B000014E426C00CEC14E423C00DEC14E420C063
-:100B100003E815E41DC00AE815E41AC002E915E46B
-:100B200017C004E915E414C001E216E411C003E2A1
-:100B300016E40EC004E216E40BC005E216E408C099
-:100B400006E216E405C007E216E402C00AE216E473
-:100B5000C801DF91CF911F910F9108959EE0799F79
-:100B6000F001112496E4899FE00DF11D1124E60F98
-:100B7000F11DEE0FFF1FE25FFE4F85919491803EC5
-:100B80009105E0F4803C910558F58133910509F415
-:100B90006FC048F48932910509F463C08A32910527
-:100BA00009F46DC072C089339105E9F0823891056E
-:100BB000D1F08533910509F44DC067C0833E91059E
-:100BC00081F138F4803E9105B9F0823E9105D9F06B
-:100BD0005CC0863E910561F1873E9105A1F155C04B
-:100BE0000E946B0308952091F00120FD02C021FFB7
-:100BF0004CC080EE90E049C08091F00180FFF9CFB9
-:100C000089E390E042C08091F00182FF0EC08091A4
-:100C1000F00184FF03C080E090E037C083EE90E0F5
-:100C200034C08091F00182FFF2CF82EE90E02DC0BF
-:100C30008091F00183FF0BC08091F00184FDEBCF28
-:100C400087EE90E022C08091F00183FFF5CF86EE21
-:100C500090E01BC08091F00185FF07C089E290E021
-:100C600014C08091F00185FFF9CF85E390E00DC0BD
-:100C70008091F00186FF07C08AE290E006C0809173
-:100C8000F00186FFF9CF81E390E00E947B03089595
-:100C90000C947802E82FF0E0ED5DFE4F8081E82FA4
-:100CA000EF70F0E082958F7021E030E0A90102C082
-:100CB000440F551F8A95E2F740A308950F931F93A1
-:100CC000CF93DF9385B7806885BF85B7806885BF80
-:100CD000C4E0D0E001E010E0FE01ED5DFE4F808158
-:100CE000E82FEF70F0E021A182958F70A80102C07B
-:100CF000440F551F8A95E2F7CA01822B81A38C2FDE
-:100D00000E944A06219740F78DE090E061E070E094
-:100D1000FC01EB5EFE4F2081E22FEF70F0E042A17C
-:100D200022952F70DB0102C0AA0FBB1F2A95E2F7A4
-:100D30009D01242B22A3019758F7DF91CF911F919A
-:100D40000F910C945403EF92FF920F931F93CF9344
-:100D5000DF9302E511E0C4E0EE24E394F12CD5E04A
-:100D60008C2F0E944A068DE090E040E050E0FC01AC
-:100D7000EB5EFE4F6081E62FEF70F0E020A130E0E7
-:100D800062956F7002C0359527956A95E2F720FD50
-:100D900009C09701082E02C0220F331F0A94E2F700
-:100DA000422B532B019718F7F801929182918F01F2
-:100DB0008417950721F051834083D09300018C2F35
-:100DC0000E944A06C15060F68091000187FD1FC055
-:100DD0008150809300018F3F39F08FE99FE00197A8
-:100DE000F1F700C0000013C080E090E0FC01EE5A73
-:100DF000FE4FDC01A85BBE4F18962D913C911997D0
-:100E0000318720870297863FEFEF9E0779F70E9490
-:100E1000560381E0DF91CF911F910F91FF90EF90EA
-:100E20000895E82FF0E0EE0FFF1FEE5AFE4F80818D
-:100E30009181089508950F931F93CF930CE511E0CE
-:100E4000C0E0F801929182918F010E945019C80F61
-:100E5000F1E002351F07A9F78C2FCF911F910F9159
-:100E6000089580916C010895CF93DF9300D01F9275
-:100E7000CDB7DEB79C018091E701843019F593E08E
-:100E800099833B832A839093E9008FEF9091E80048
-:100E9000815095FD06C095ED9A95F1F700008111FE
-:100EA000F5CF8091E80085FF0DC040E050E063E0A1
-:100EB00070E0CE0101960E9495098091E8008E773E
-:100EC0008093E8000F900F900F90DF91CF910895DD
-:100ED000CF93DF9300D01F92CDB7DEB72091E7010B
-:100EE000243021F522E029839B838A8383E0809349
-:100EF000E9008FEF9091E800815095FD06C095EDD7
-:100F00009A95F1F700008111F5CF8091E80085FFF7
-:100F10000DC040E050E063E070E0CE0101960E9419
-:100F200095098091E8008E778093E8000F900F90EC
-:100F30000F90DF91CF9108952091E7012430F1F4D3
-:100F400022E02093E9002FEF3091E800215035FD99
-:100F500006C035ED3A95F1F700002111F5CF20914B
-:100F6000E80025FF0BC040E050E065E070E00E9423
-:100F700095098091E8008E778093E8000895CF93DB
-:100F8000DF93EC019091E701943009F046C0809125
-:100F90000B018823D9F080910C018823B9F090933C
-:100FA000E9008FEF9091E800815095FD06C095E132
-:100FB0009A95F1F700008111F5CF8091E80085FF47
-:100FC0002CC040E050E060E170E017C081E0809309
-:100FD000E9008FEF9091E800815095FD06C095EDF6
-:100FE0009A95F1F700008111F5CF8091E80085FF17
-:100FF00014C040E050E068E070E0CE010E94950926
-:101000008091E8008E778093E80080E1FE01ACE5F6
-:10101000B1E001900D928A95E1F7DF91CF910895AB
-:101020008091E601811109C00E942A0B0E94870B62
-:101030008091E20084608093E20008951092E601BE
-:101040000895089508950C94951942E061EC81E0AB
-:101050000E94A40A42E061EC82E00E94A40A42E0FD
-:1010600061EC83E00E94A40A42E161EC84E00C940C
-:10107000A40A8091E901833009F455C030F481302D
-:1010800071F0823009F48EC008958A3009F47AC074
-:101090008B3009F460C0893009F09CC020C0809179
-:1010A000E801813A09F096C08091E800877F80933B
-:1010B000E8008091EC019091ED01892B21F460E131
-:1010C0008CE591E003C060E080E090E070E00E9479
-:1010D000E0098091E8008B778093E8000895809183
-:1010E000E801813209F076C08091EC019091ED0128
-:1010F000009719F0039709F06DC08091E800877F91
-:101100008093E8008091E80082FD05C08091E701AE
-:101110008111F8CF5FC08091F10080936C018091C4
-:10112000E8008B7753C08091E801813A09F052C002
-:101130008091EC019091ED01892B09F04BC08091D9
-:10114000E800877F8093E8008091E80080FFFCCF73
-:1011500080910B0136C08091E8018132D9F58091F0
-:10116000EC019091ED01892BA9F58091E800877F32
-:101170008093E8000E94D90A8091EA0180930B01D4
-:101180000C94DC128091E801813221F58091E80015
-:10119000877F8093E8000E94D90A8091EB018093B9
-:1011A0006D0108958091E801813AA1F48091E800F1
-:1011B000877F8093E8008091E80080FFFCCF8091DA
-:1011C0006D018093F1008091E8008E778093E800B4
-:1011D0000C94D90A089584B7877F84BF88E10FB63D
-:1011E000F89480936000109260000FBE90E080E859
-:1011F0000FB6F89480936100909361000FBE0E9437
-:101200007C0E0E942A0B0E94870B8091E200846072
-:101210008093E20078940E940D0E0E947E0E81E081
-:1012200091E00E94280E8091E701853069F40E94C8
-:101230005C198091E5018823B1F30E948719882306
-:1012400091F30E947F09EFCF0E94840EECCF292FEB
-:10125000332723303105C9F064F42130310581F0A2
-:101260002230310509F043C08DE690E026ED32E0F2
-:1012700042C021323105F1F02232310541F137C04F
-:1012800082E190E023E433E036C099278130910574
-:1012900041F08230910541F0892B49F5E2EDF2E011
-:1012A00005C0EEEBF2E002C0E2EBF2E0849190E0E8
-:1012B0009F0121C06430D8F4E62FF0E0EE0FFF1F4D
-:1012C000EC5CFE4F2081318189E090E014C06430F5
-:1012D00070F470E0FB01EE0FFF1FE45DFE4F208114
-:1012E0003181FB01E85DFE4F808190E004C080E029
-:1012F00090E020E030E0FA0131832083089580E11E
-:1013000089BD82E189BD09B400FEFDCF8091D8007E
-:101310008F7D8093D8008091E00082608093E00010
-:101320008091E00081FDFCCF0895CF92DF92EF9293
-:10133000FF920F931F93CF93DF93EC018B016A0110
-:101340000E94F80A811133C0C114D10439F0F601AA
-:1013500080819181081B190BC80FD91FE12CF12C3A
-:101360000115110519F18091E80085FD16C08091E5
-:10137000E8008E778093E800C114D10449F0F601AB
-:1013800080819181E80EF91EF182E08285E00FC034
-:101390000E94F80A882321F30AC089918093F10002
-:1013A00001501109FFEFEF1AFF0ADACF80E0DF9159
-:1013B000CF911F910F91FF90EF90DF90CF90089504
-:1013C0002091EE013091EF012617370748F06115A3
-:1013D000710539F42091E8002E772093E80001C0D0
-:1013E000B90140E061157105A9F12091E7012223BF
-:1013F00009F443C0253009F442C02091E80023FDE0
-:1014000040C02091E80022FD32C02091E80020FF7A
-:10141000E9CF4091F3002091F20030E0342BFC0141
-:10142000CF016115710559F02830310540F48191E3
-:101430008093F100615071092F5F3F4FF1CF41E080
-:101440002830310509F040E02091E8002E77209304
-:10145000E800C8CF4111C9CF0AC08091E7018823B5
-:1014600061F0853061F08091E80083FD0AC08091D1
-:10147000E80082FFF2CF80E0089582E0089583E0E3
-:10148000089581E008952091EE013091EF01261733
-:10149000370748F06115710539F42091E8002E777F
-:1014A0002093E80001C0B901FC0120E0611571053D
-:1014B00091F18091E701882309F440C0853009F457
-:1014C0003FC08091E80083FD3DC08091E80082FD2F
-:1014D0002FC08091E80080FFE9CF2091F300809138
-:1014E000F20090E0922B6115710559F0883091055A
-:1014F00040F424912093F1003196615071090196D6
-:10150000F2CF21E0089709F020E08091E8008E7783
-:101510008093E800CBCF2111CCCF0AC08091E701A6
-:10152000882361F0853061F08091E80083FD0AC076
-:101530008091E80082FFF2CF80E0089582E0089574
-:1015400083E0089581E00895982F973058F590939F
-:10155000E900981739F07091EC002091ED0050915E
-:10156000F00003C0242F762F50E021FF19C03091E6
-:10157000EB003E7F3093EB003091ED003D7F3093E8
-:10158000ED003091EB0031603093EB007093EC0094
-:101590002093ED005093F0002091EE0027FF07C04C
-:1015A0009F5FD3CF8F708093E90081E0089580E042
-:1015B00008958091E80187FF11C08091E80082FDC5
-:1015C00005C08091E7018111F8CF11C08091E8003A
-:1015D0008B770BC08091E701882349F08091E80068
-:1015E00080FFF8CF8091E8008E778093E80008951F
-:1015F0002091E4003091E50095E64091EC00842FC5
-:10160000817040FF22C08091E80080FD1CC0809165
-:10161000E701882391F0853091F08091EB0085FD02
-:1016200010C04091E4005091E5004217530729F3A0
-:101630009A01915011F784E0089582E0089583E0C3
-:10164000089581E0089580E008954091E80042FF08
-:10165000DECF08950E94980B0E94A00BE0EEF0E010
-:10166000808181608083E8EDF0E080818F778083E6
-:1016700019BCA7EDB0E08C918E7F8C9380818F7E1A
-:1016800080831092E60108950F931F93CF93DF9309
-:101690000E94980B0E94A00BC8EDD0E088818F7744
-:1016A000888388818068888388818F7D888319BC3E
-:1016B0001092E7011092E3011092E5011092E4010B
-:1016C00000EE10E0F80180818B7F8083888181604B
-:1016D000888342E060E080E00E94A40AE1EEF0E04E
-:1016E00080818E7F8083E2EEF0E080818160808364
-:1016F000808188608083F80180818E7F80838881EB
-:1017000080618883DF91CF911F910F910895E8ED5B
-:10171000F0E080818F7E8083E7EDF0E08081816062
-:10172000808384E082BF81E08093E6010C94440BC7
-:10173000E8EDF0E080818E7F80831092E2000895D2
-:101740001092DA001092E10008951F920F920FB6E6
-:101750000F9211242F933F934F935F936F937F9337
-:101760008F939F93AF93BF93EF93FF938091E1008B
-:1017700082FF0BC08091E20082FF07C08091E100F0
-:101780008B7F8093E1000E940C0E8091DA0080FF35
-:101790001FC08091D80080FF1BC08091DA008E7F2F
-:1017A0008093DA008091D90080FF0DC080E189BD6F
-:1017B00082E189BD09B400FEFDCF81E08093E7019D
-:1017C0000E94100805C019BC1092E7010E941E0873
-:1017D0008091E10080FF19C08091E20080FF15C078
-:1017E0008091E2008E7F8093E2008091E200806130
-:1017F0008093E2008091D80080628093D80019BC69
-:1018000085E08093E7010E9422088091E10084FF37
-:1018100030C08091E20084FF2CC080E189BD82E16C
-:1018200089BD09B400FEFDCF8091D8008F7D8093E3
-:10183000D8008091E1008F7E8093E1008091E200EA
-:101840008F7E8093E2008091E20081608093E200CD
-:101850008091E301882311F084E007C08091E300C8
-:1018600087FD02C081E001C083E08093E7010E9410
-:1018700023088091E10083FF29C08091E20083FF6B
-:1018800025C08091E100877F8093E10082E0809312
-:10189000E7011092E3018091E1008E7F8093E100E7
-:1018A0008091E2008E7F8093E2008091E20080616F
-:1018B0008093E20042E060E080E00E94A40A809110
-:1018C000F00088608093F0000E942108FF91EF9162
-:1018D000BF91AF919F918F917F916F915F914F9148
-:1018E0003F912F910F900FBE0F901F9018951F9250
-:1018F0000F920FB60F9211242F933F934F935F9344
-:101900006F937F938F939F93AF93BF93CF93DF9307
-:10191000EF93FF93C091E900CF708091EC00D82F36
-:10192000D17080FDD0E81092E9008091F000877FAF
-:101930008093F00078940E94BB0C1092E900809193
-:10194000F00088608093F000CD2BCF70C093E90049