aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bösebeck <sb@caluga.de>2016-04-01 23:54:16 +0200
committerStephan Bösebeck <sb@caluga.de>2016-04-01 23:54:16 +0200
commitaee8715815544b076c123d4ed55c76e23a7e54d0 (patch)
treeea5beb11e41bf0cc0257f1a098b2218b48a83b84
parentc274699085b2f922a5e8b14b21aa377249e62d29 (diff)
parentde904af36072f53d2354bff0ed36b63014ad0d61 (diff)
downloadqmk_firmware-aee8715815544b076c123d4ed55c76e23a7e54d0.tar.gz
qmk_firmware-aee8715815544b076c123d4ed55c76e23a7e54d0.zip
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
-rw-r--r--1-setup-path-win.bat80
-rw-r--r--BUILD_GUIDE.md5
-rw-r--r--README.md4
-rw-r--r--keyboard/alps64/Makefile4
-rw-r--r--keyboard/alps64/keymaps/default.c (renamed from keyboard/alps64/keymap_plain.c)0
-rw-r--r--keyboard/alps64/keymaps/hasu.c (renamed from keyboard/alps64/keymap_hasu.c)0
-rw-r--r--keyboard/atomic/Makefile4
-rw-r--r--keyboard/atomic/README.md4
-rw-r--r--keyboard/atomic/keymaps/abienz.c (renamed from keyboard/atomic/keymaps/keymap_abienz.c)0
-rw-r--r--keyboard/atomic/keymaps/default.c (renamed from keyboard/atomic/keymaps/keymap_default.c)0
-rw-r--r--keyboard/atomic/keymaps/michelle.c (renamed from keyboard/atomic/keymaps/keymap_michelle.c)0
-rw-r--r--keyboard/atreus/Makefile4
-rw-r--r--keyboard/atreus/README.md4
-rw-r--r--keyboard/atreus/keymaps/default.c (renamed from keyboard/atreus/keymaps/keymap_default.c)0
-rw-r--r--keyboard/atreus/keymaps/gerb.c (renamed from keyboard/atreus/keymaps/keymap_gerb.c)0
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md29
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex1127
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.pngbin0 -> 73585 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.pngbin0 -> 59122 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.pngbin0 -> 53319 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c185
-rw-r--r--keyboard/gh60/Makefile4
-rw-r--r--keyboard/gh60/Makefile.pjrc4
-rw-r--r--keyboard/gh60/README.md14
-rw-r--r--keyboard/gh60/keymaps/hasu.c (renamed from keyboard/gh60/keymap_hasu.c)0
-rw-r--r--keyboard/gh60/keymaps/hhkb.c (renamed from keyboard/gh60/keymap_hhkb.c)0
-rw-r--r--keyboard/gh60/keymaps/plain.c (renamed from keyboard/gh60/keymap_plain.c)0
-rw-r--r--keyboard/gh60/keymaps/poker.c (renamed from keyboard/gh60/keymap_poker.c)0
-rw-r--r--keyboard/gh60/keymaps/poker_bit.c (renamed from keyboard/gh60/keymap_poker_bit.c)0
-rw-r--r--keyboard/gh60/keymaps/poker_set.c (renamed from keyboard/gh60/keymap_poker_set.c)0
-rw-r--r--keyboard/gh60/keymaps/spacefn.c (renamed from keyboard/gh60/keymap_spacefn.c)0
-rw-r--r--keyboard/hhkb/Makefile8
-rw-r--r--keyboard/hhkb/Makefile.pjrc4
-rw-r--r--keyboard/hhkb/Makefile.rn428
-rw-r--r--keyboard/hhkb/README.md2
-rw-r--r--keyboard/hhkb/keymaps/hasu.c (renamed from keyboard/hhkb/keymap_hasu.c)0
-rw-r--r--keyboard/hhkb/keymaps/hhkb.c (renamed from keyboard/hhkb/keymap_hhkb.c)0
-rw-r--r--keyboard/hhkb/keymaps/jp.c (renamed from keyboard/hhkb/keymap_jp.c)0
-rw-r--r--keyboard/hhkb/keymaps/spacefn.c (renamed from keyboard/hhkb/keymap_spacefn.c)0
-rw-r--r--keyboard/hhkb_qmk/Makefile4
-rw-r--r--keyboard/hhkb_qmk/README.md4
-rw-r--r--keyboard/hhkb_qmk/keymaps/default.c (renamed from keyboard/hhkb_qmk/keymaps/keymap_default.c)0
-rw-r--r--keyboard/hhkb_qmk/keymaps/lxol.c (renamed from keyboard/hhkb_qmk/keymaps/keymap_lxol.c)0
-rw-r--r--keyboard/jd45/Makefile4
-rw-r--r--keyboard/jd45/keymaps/default.c (renamed from keyboard/jd45/keymaps/keymap_default.c)0
-rw-r--r--keyboard/jd45/keymaps/justin.c (renamed from keyboard/jd45/keymaps/keymap_justin.c)0
-rw-r--r--keyboard/planck/Makefile2
-rw-r--r--keyboard/planck/README.md4
-rw-r--r--keyboard/planck/keymaps/default/keymap.c4
-rw-r--r--keyboard/planck/keymaps/tak3over.c136
-rw-r--r--keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c (renamed from keyboard/planck/common_keymaps/keymap_mitch.c)0
-rw-r--r--keyboard/preonic/Makefile56
-rw-r--r--keyboard/preonic/Makefile.pjrc116
-rw-r--r--keyboard/preonic/PCB_GUIDE.md116
-rw-r--r--keyboard/preonic/README.md57
-rw-r--r--keyboard/preonic/__avr_gdbinit6
-rw-r--r--keyboard/preonic/analog.c53
-rw-r--r--keyboard/preonic/analog.h36
-rw-r--r--keyboard/preonic/beeps.c246
-rw-r--r--keyboard/preonic/beeps.h12
-rw-r--r--keyboard/preonic/config.h18
-rw-r--r--keyboard/preonic/config_definitions.h50
-rw-r--r--keyboard/preonic/extended_keymap_common.c216
-rw-r--r--keyboard/preonic/extended_keymap_common.h181
-rw-r--r--keyboard/preonic/extended_keymaps/extended_keymap_default.c70
-rw-r--r--keyboard/preonic/extended_keymaps/extended_keymap_lock.c81
-rwxr-xr-xkeyboard/preonic/flash-pcb.sh3
-rw-r--r--keyboard/preonic/keymap_midi.c110
-rw-r--r--keyboard/preonic/keymap_midi.h220
-rw-r--r--keyboard/preonic/keymaps/default/README.md34
-rw-r--r--keyboard/preonic/keymaps/default/keymap.c96
-rw-r--r--keyboard/preonic/keymaps/lock/README.md3
-rw-r--r--keyboard/preonic/keymaps/lock/keymap.c105
-rw-r--r--keyboard/preonic/led.c38
-rw-r--r--keyboard/preonic/matrix.c234
-rw-r--r--keyboard/preonic/preonic.c36
-rw-r--r--keyboard/preonic/preonic.h50
-rw-r--r--keyboard/preonic/preonic_pcb.hex1702
-rw-r--r--keyboard/preonic/preonic_pcb_silent.hex1189
-rw-r--r--quantum/keymap_midi.c4
-rw-r--r--quantum/template/README.md2
81 files changed, 4883 insertions, 1909 deletions
diff --git a/1-setup-path-win.bat b/1-setup-path-win.bat
index 49fb00e14..2c15857bb 100644
--- a/1-setup-path-win.bat
+++ b/1-setup-path-win.bat
@@ -1,9 +1,71 @@
1@echo off 1@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
2setx /M path "%PATH%;C:\MinGW\bin;C:\MinGW\msys\1.0\bin" > nul 2>&1 2@ECHO OFF
3if NOT ["%errorlevel%"]==["0"] ( 3SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe
4 echo FAILED. Rerun with administrator privileges. 4
5 pause 5SET NEWPATH1="C:\MinGW\msys\1.0\bin"
6) else ( 6SET NEWPATH2="C:\MinGW\bin"
7 echo Success! 7
8 pause 8:: Make sure paths exist
9) 9IF NOT EXIST !NEWPATH1! (ECHO Path not found: %NEWPATH1% && GOTO ExitBatch)
10IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch)
11
12:: Add paths
13CALL :AddPath %NEWPATH1%
14CALL :AddPath %NEWPATH2%
15
16:: Branch to UpdateEnv if we need to update
17IF DEFINED UPDATE (GOTO UpdateEnv)
18
19GOTO ExitBatch
20
21:: -----------------------------------------------------------------------------
22
23:UpdateEnv
24ECHO Making updated PATH go live . . .
25REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
26setx TEMPVAR 1 > nul 2>&1
27REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
28IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer)
29GOTO ExitBatch
30
31:: -----------------------------------------------------------------------------
32
33:ExitBatch
34ENDLOCAL
35PAUSE
36EXIT /b
37
38:: -----------------------------------------------------------------------------
39
40:AddPath <pathToAdd>
41ECHO %PATH% | FINDSTR /C:"%~1" > nul
42IF ERRORLEVEL 1 (
43 REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1" > nul 2>&1
44 IF ERRORLEVEL 0 (
45 ECHO Adding %1 . . . Success!
46 SET "PATH=%PATH%;%~1"
47 SET UPDATE=1
48 ) ELSE (
49 ECHO Adding %1 . . . FAILED. Run this script with administrator privileges.
50 )
51) ELSE (
52 ECHO Skipping %1 - Already in PATH
53 )
54EXIT /b
55
56:: -----------------------------------------------------------------------------
57
58:KillExplorer
59
60ECHO Your desktop is being restarted, please wait. . .
61ping -n 5 127.0.0.1 > NUL 2>&1
62ECHO Killing process Explorer.exe. . .
63taskkill /f /im explorer.exe
64ECHO.
65ECHO Your desktop is now loading. . .
66ping -n 5 127.0.0.1 > NUL 2>&1
67ECHO.
68ping -n 5 127.0.0.1 > NUL 2>&1
69START explorer.exe
70START explorer.exe %CD%
71EXIT /b \ No newline at end of file
diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md
index 22df53c30..f7a57d2fc 100644
--- a/BUILD_GUIDE.md
+++ b/BUILD_GUIDE.md
@@ -44,7 +44,10 @@ If you have any problems building the firmware, you can try using a tool called
444. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. 444. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process.
45 45
46## Customizing, Building, and Deploying Your Firmware 46## Customizing, Building, and Deploying Your Firmware
471. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. 47
48Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly.
49
501. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides.
482. To build a keymap other than the default, type `KEYMAP=<name>` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. 512. To build a keymap other than the default, type `KEYMAP=<name>` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`.
493. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP=<name> dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the <keyboardname>.hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) 523. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP=<name> dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the <keyboardname>.hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html)
50 53
diff --git a/README.md b/README.md
index 6a6bbed40..985733067 100644
--- a/README.md
+++ b/README.md
@@ -269,7 +269,7 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring
269 269
270 RGBLIGHT_ENABLE = yes 270 RGBLIGHT_ENABLE = yes
271 271
272Please note that the underglow is not compatible with MIDI functions. So you cannot enable both of them at the same time. 272Please note that the underglow is not compatible with audio output. So you cannot enable both of them at the same time.
273 273
274Please add the following options into your config.h, and set them up according your hardware configuration. 274Please add the following options into your config.h, and set them up according your hardware configuration.
275 275
@@ -309,4 +309,4 @@ what things are (and likely aren't) too risky.
309- EEPROM has around a 100000 write cycle. You shouldn't rewrite the 309- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
310 firmware repeatedly and continually; that'll burn the EEPROM 310 firmware repeatedly and continually; that'll burn the EEPROM
311 eventually. 311 eventually.
312 \ No newline at end of file 312
diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile
index e90dcedb6..7634c4280 100644
--- a/keyboard/alps64/Makefile
+++ b/keyboard/alps64/Makefile
@@ -53,9 +53,9 @@ SRC = keymap_common.c \
53 led.c 53 led.c
54 54
55ifdef KEYMAP 55ifdef KEYMAP
56 SRC := keymap_$(KEYMAP).c $(SRC) 56 SRC := keymaps/$(KEYMAP).c $(SRC)
57else 57else
58 SRC := keymap_plain.c $(SRC) 58 SRC := keymaps/default.c $(SRC)
59endif 59endif
60 60
61CONFIG_H = config.h 61CONFIG_H = config.h
diff --git a/keyboard/alps64/keymap_plain.c b/keyboard/alps64/keymaps/default.c
index a54899196..a54899196 100644
--- a/keyboard/alps64/keymap_plain.c
+++ b/keyboard/alps64/keymaps/default.c
diff --git a/keyboard/alps64/keymap_hasu.c b/keyboard/alps64/keymaps/hasu.c
index d297d72fe..d297d72fe 100644
--- a/keyboard/alps64/keymap_hasu.c
+++ b/keyboard/alps64/keymaps/hasu.c
diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile
index e678b4efa..da6d0ac60 100644
--- a/keyboard/atomic/Makefile
+++ b/keyboard/atomic/Makefile
@@ -54,9 +54,9 @@ SRC = atomic.c \
54 backlight.c 54 backlight.c
55 55
56ifdef KEYMAP 56ifdef KEYMAP
57 SRC := keymaps/keymap_$(KEYMAP).c $(SRC) 57 SRC := keymaps/$(KEYMAP).c $(SRC)
58else 58else
59 SRC := keymaps/keymap_default.c $(SRC) 59 SRC := keymaps/default.c $(SRC)
60endif 60endif
61 61
62CONFIG_H = config.h 62CONFIG_H = config.h
diff --git a/keyboard/atomic/README.md b/keyboard/atomic/README.md
index c8e83cf55..0e42370ba 100644
--- a/keyboard/atomic/README.md
+++ b/keyboard/atomic/README.md
@@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight
16To build with the default keymap, simply run `make`. 16To build with the default keymap, simply run `make`.
17 17
18### Other Keymaps 18### Other Keymaps
19Several 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 `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. 19Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
20 20
21To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: 21To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
22``` 22```
23$ make KEYMAP=[default|jack|<name>] 23$ make KEYMAP=[default|jack|<name>]
24``` 24```
25Keymaps follow the format **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder. 25Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/atomic/keymaps/keymap_abienz.c b/keyboard/atomic/keymaps/abienz.c
index 589a64dc4..589a64dc4 100644
--- a/keyboard/atomic/keymaps/keymap_abienz.c
+++ b/keyboard/atomic/keymaps/abienz.c
diff --git a/keyboard/atomic/keymaps/keymap_default.c b/keyboard/atomic/keymaps/default.c
index f37d9d9a5..f37d9d9a5 100644
--- a/keyboard/atomic/keymaps/keymap_default.c
+++ b/keyboard/atomic/keymaps/default.c
diff --git a/keyboard/atomic/keymaps/keymap_michelle.c b/keyboard/atomic/keymaps/michelle.c
index 2364c46a1..2364c46a1 100644
--- a/keyboard/atomic/keymaps/keymap_michelle.c
+++ b/keyboard/atomic/keymaps/michelle.c
diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile
index 2e542d62e..a6fddd70d 100644
--- a/keyboard/atreus/Makefile
+++ b/keyboard/atreus/Makefile
@@ -53,9 +53,9 @@ TARGET_DIR = .
53SRC = atreus.c 53SRC = atreus.c
54 54
55ifdef KEYMAP 55ifdef KEYMAP
56 SRC := keymaps/keymap_$(KEYMAP).c $(SRC) 56 SRC := keymaps/$(KEYMAP).c $(SRC)
57else 57else
58 SRC := keymaps/keymap_default.c $(SRC) 58 SRC := keymaps/default.c $(SRC)
59endif 59endif
60 60
61ifdef TEENSY2 61ifdef TEENSY2
diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md
index 4db7ac120..aacf2841f 100644
--- a/keyboard/atreus/README.md
+++ b/keyboard/atreus/README.md
@@ -177,10 +177,10 @@ Depending on which keymap you would like to use, you will have to compile slight
177To build with the default keymap, simply run `make`. 177To build with the default keymap, simply run `make`.
178 178
179### Other Keymaps 179### Other Keymaps
180Several 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 `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. 180Several 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.
181 181
182To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: 182To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
183``` 183```
184$ make KEYMAP=[default|jack|<name>] 184$ make KEYMAP=[default|jack|<name>]
185``` 185```
186Keymaps follow the format **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder. 186Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/atreus/keymaps/keymap_default.c b/keyboard/atreus/keymaps/default.c
index 1c4280ff5..1c4280ff5 100644
--- a/keyboard/atreus/keymaps/keymap_default.c
+++ b/keyboard/atreus/keymaps/default.c
diff --git a/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/gerb.c
index 1ba3942e3..1ba3942e3 100644
--- a/keyboard/atreus/keymaps/keymap_gerb.c
+++ b/keyboard/atreus/keymaps/gerb.c
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md
new file mode 100644
index 000000000..984106ff4
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md
@@ -0,0 +1,29 @@
1# ErgoDox EZ Dvorak International Squisher
2
3Dvorak layout adjusted with several (linux) applications in mind:
4
5* Easier Escape for VIM
6* Windows/Super key for awesome WM
7* Alt+Shift for international characters
8* PrintScreen for sys-rq
9* Insert for the X11 clip-board
10
11Major layer changes:
12
13* Common multimedia keys are integrated into layer 0, less common into layer 1
14* No mouse keys
15* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users)
16
17Known issues:
18
19* Alt+Shift does not work reliably (depends on the X11 kb layout? Not
20 entirely clear...)
21
22![layer0](keyboard-layout0.png)
23![layer1](keyboard-layout1.png)
24![layer2](keyboard-layout2.png)
25
26## Changelog
27
28* 2016-03-29
29 * Initial release
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex
new file mode 100644
index 000000000..bd70f5829
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex
@@ -0,0 +1,1127 @@
1:100000000C9465020C94AC020C94AC020C94AC02FF
2:100010000C94AC020C94AC020C94AC020C94AC02A8
3:100020000C94AC020C94AC020C94B50B0C94870CA1
4:100030000C94AC020C94AC020C94AC020C94AC0288
5:100040000C94AC020C943B210C94AC020C94AC02CA
6:100050000C94AC020C94C71A0C94AC020C94AC0235
7:100060000C94AC020C94AC020C94AC020C94AC0258
8:100070000C94AC020C94AC020C94AC020C94AC0248
9:100080000C94AC020C94AC020C94AC020C94AC0238
10:100090000C94AC020C94AC020C94AC020C94AC0228
11:1000A0000C94AC020C94AC020C94AC02F40C160D43
12:1000B000040E160D040E5B0D7E0D040ED30DE60D21
13:1000C000D110D11000110011431181119A139A130C
14:1000D0009A119A139B129B126E139A139A138513FB
15:1000E0000000F0A12E0029002A00E1003581000067
16:1000F0001E00340004003371E2004D001F00360082
17:1001000012001400E3002B002000370008000D004F
18:1001100050002C002100130018000E004F004A0070
19:1001200022001C000C001B0000006571B6004C0092
20:100130000000007F00000154AE004900000000777D
21:1001400000000254230009000700050000004600DB
22:1001500024000A000B00100052004B00250006008E
23:1001600017001A0051002800260015001100190080
24:100170002F00E51427000F0016001D7130004E00FF
25:10018000318238002D00E500C100000001000100AF
26:1001900001000100010000003A001E0220022202BC
27:1001A000010001003B001F022102230201000100A7
28:1001B0003C002F0226022F00AC0001003D0030025F
29:1001C00027023000AB0001003E003102350035024D
30:1001D000000001000100010000000100000001001A
31:1001E0000100010000000100000001003F0052007A
32:1001F00051002402000001004000240021001E00E4
33:100200000100A9004100250022001F003700010065
34:1002100042002600230020002700A80043002502FA
35:100220002E0231002E00AA0044004500010001000A
36:1002300001000000010001000100010001000000B8
37:100240000100140004001D710100010001001A00EA
38:1002500016001B0001000100010008000700060055
39:100260000100010001001500090019000100010052
40:10027000010017000A000500000001000100010054
41:100280000000010000000100010001000000010069
42:100290000000010001001C000B0011000000010023
43:1002A000010018000D0010000100010001000C0009
44:1002B0000E00360001000100010012000F0037009F
45:1002C00001000100010013003382387101000100B8
46:1002D00001000100010001000100000016034500BB
47:1002E000720067006F0044006F0078002000450036
48:1002F0005A00000016034500720067006F004400BA
49:100300006F007800200045005A0000000403090433
50:1003100009026D00040100A0FA09040000010301B4
51:100320000100092111010001223F00070581030896
52:10033000000A090401000103010200092111010062
53:1003400001224D000705820308000A09040200018A
54:100350000300000009211101000122360007058376
55:100360000308000A09040300010300000009211129
56:100370000100012239000705840310000112011059
57:100380000100000008EDFE07130100010200010555
58:10039000010906A101050719E029E71500250195C6
59:1003A0000875018102050819012905950575019156
60:1003B000029501750391010507190029771500259C
61:1003C00001957875018102C005010980A1018502AE
62:1003D00016010026B7001A01002AB7007510950112
63:1003E0008100C0050C0901A1018503160100269CAE
64:1003F000021A01002A9C02751095018100C00501B6
65:100400000902A1010901A100050919012905150029
66:10041000250195057501810295017503810105018D
67:10042000093009311581257F950275088106093843
68:100430001581257F950175088106050C0A3802157E
69:1004400081257F950175088106C0C005010906A1B7
70:1004500001050719E029E7150025019508750181B7
71:100460000295017508810105081901290595057591
72:100470000191029501750391010507190029FF15E6
73:100480000025FF950675088100C0000000000000EF
74:100490000000000000010204060A0F17202C3A4A4F
75:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
76:1004B000B39D87715D4A3A2C20170F0A060402018A
77:1004C0000000000000000000000011241FBECFEF5C
78:1004D000DAE0DEBFCDBF04B603FE27C08091EF0196
79:1004E0009091F001A091F101B091F2018730904B11
80:1004F000A740B04BD1F41092EF011092F00110928E
81:10050000F1011092F20114BE84B7877F84BF0FB649
82:10051000F894A895809160008861809360001092A3
83:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C
84:10053000E8E1F6E402C005900D92A433B107D9F7C3
85:1005400021E0A4E3B1E001C01D92AF3EB207E1F7A4
86:100550000E94F6080C940A230C94000061110BC051
87:10056000FC018281882321F085EE0E94660F03C082
88:1005700085EE0E942E1080E090E00895089560912D
89:10058000B1017091B2018091B3019091B4010E94C8
90:10059000F01956985E9825982D9826982E982798A9
91:1005A0002F98813019F0823021F00895259A2D9AE4
92:1005B0000895269A2E9A08950C94BF0256985E9834
93:1005C00025982D9826982E9827982F988FEF90E0B1
94:1005D000909389008093880090938B0080938A0089
95:1005E00090938D0080938C00259A2D9A2FEF80E7B1
96:1005F00092E0215080409040E1F700C00000269A30
97:100600002E9A2FEF80E792E0215080409040E1F752
98:1006100000C00000279A2F9A2FEF80E792E0215028
99:1006200080409040E1F700C0000025982D982FEF02
100:1006300080E792E0215080409040E1F700C0000048
101:1006400026982E982FEF80E792E02150804090402E
102:10065000E1F700C0000027982F9856985E982598DB
103:100660002D9826982E9827982F98089589EA809398
104:10067000800089E08093810024982C983F988AB16B
105:100680008F748AB96E98479A8BB1806B8BB9769AC2
106:100690000E94DE020C94BE0280E2809300018091F1
107:1006A000340181110EC00E949B0381E080933401CC
108:1006B0002FEF83ED90E3215080409040E1F700C0A0
109:1006C000000080E40E94A1038093000181112EC0EC
110:1006D0000E94CB0380930001811128C00E94CB03AC
111:1006E00080930001811122C08FE30E94CB0380938D
112:1006F000000181111BC00E94C30380E40E94A1037A
113:1007000080930001811112C08CE00E94CB03809382
114:10071000000181110BC00E94CB0380930001811165
115:1007200005C08FE30E94CB03809300010E94C303A6
116:100730008091000108951092B9008AE08093B8007A
117:10074000089594EA9093BC009091BC0097FFFCCF71
118:100750009091B900987F983021F0903111F081E0AC
119:1007600008958093BB0084E88093BC008091BC0016
120:1007700087FFFCCF8091B900887F883111F08034E9
121:1007800071F780E0089584E98093BC008091BC00FB
122:1007900084FDFCCF08958093BB0084E88093BC0067
123:1007A0008091BC0087FFFCCF9091B900987F81E0D9
124:1007B000983209F480E0089584E88093BC00809129
125:1007C000BC0087FFFCCF8091BB00089580910001A1
126:1007D000811115C080E40E94A10380930001811162
127:1007E0000CC082E10E94CB0380930001811105C0FF
128:1007F0008FEF0E94CB03809300010E94C30384B15A
129:10080000807F84B985B1807F85B98AB1837F8AB9B9
130:100810008BB1837F8BB93E98469808950E944C0314
131:10082000809300010E94E60380B38C7080BB81B38B
132:10083000836F81BBA6E3B1E0E4E4F1E08EE08E0FCC
133:1008400011921D928E13FCCF0C943603BF92CF925F
134:10085000DF92EF92FF920F931F93CF93DF938091DC
135:100860000001882379F0809135018F5F80933501F5
136:10087000811108C00E944C0380930001811102C0C5
137:100880000E94DE0206E311E0C0E0D0E0DD24D39454
138:1008900082E0C82EEE24E394F12CC730D10500F598
139:1008A00080910001811164C080E40E94A1038093C3
140:1008B0000001811112C082E10E94CB0380930001EC
141:1008C00081110BC0C7010C2E01C0880F0A94EAF7F2
142:1008D00080950E94CB03809300010E94C30348C00F
143:1008E000CA30A1F028F4C83059F0C93061F005C011
144:1008F000CC3089F070F0CD3089F0209A289810C063
145:10090000219A29980DC0229A2A980AC0239A2B98D6
146:1009100007C0529A01C0539A5B9802C03E9A46980B
147:1009200090EA9A95F1F79FB1799902C082E001C0EF
148:1009300080E091709D25982B7C9902C084E001C0D5
149:1009400080E0892B7D9902C038E001C030E0832B24
150:100950007E9902C020E101C020E0822B9FB19095DA
151:10096000991F9927991F9295990F907E892B0FC0F7
152:1009700080910001811149C080E40E94A10380930D
153:100980000001882379F1B12C0E94C3038B2DF8015B
154:100990009081981719F08083C09201010E94E603AC
155:1009A00021960F5F1F4FCE30D10509F076CF809191
156:1009B0000101882361F1815080930101882339F07E
157:1009C0008FE99FE00197F1F700C0000020C0A4E488
158:1009D000B1E0E6E3F1E0CF01825F91919D938E1348
159:1009E000FCCF15C083E10E94CB03809300018111ED
160:1009F000CACF81E40E94A103809300018111C3CF7B
161:100A00000E94DC03B82EB094BFCF80E0C0CF0E941C
162:100A1000DC0281E0DF91CF911F910F91FF90EF9069
163:100A2000DF90CF90BF900895E82FF0E0EC5BFE4F91
164:100A30008081089508958B3B910578F4883A91055B
165:100A400040F5853A9105D0F48430910508F0B1C0A5
166:100A50008130910509F4ADC06BC0803E910508F46A
167:100A600067C0883E910508F4A4C09C01205F31094D
168:100A70002031310508F05CC090650895853A9105F4
169:100A800009F459C0863A910509F058C082E890E40B
170:100A90000895883A910509F454C0893A910509F4FA
171:100AA00053C08A3A910509F452C08B3A910509F472
172:100AB00051C08C3A910509F450C08D3A910509F462
173:100AC0004FC0803B910509F44EC08E3A910509F460
174:100AD0004DC08F3A910509F44CC0813B910509F452
175:100AE0004BC0823B910509F44AC0833B910509F450
176:100AF00049C0843B910509F448C0853B910509F440
177:100B000047C0863B910509F446C0873B910509F42F
178:100B100045C0883B910509F444C0893B910509F41F
179:100B200043C08A3B910509F442C080E094E40895F3
180:100B300080E090E0089581E890E4089583E890E4EF
181:100B4000089582EE94E4089589EE94E408958AEE7F
182:100B500094E4089585EB94E4089586EB94E4089575
183:100B600087EB94E408958CEC94E408958DEC94E480
184:100B7000089583E895E408958AE895E4089582E964
185:100B800095E4089584E995E4089581E296E4089552
186:100B900083E296E4089584E296E4089585E296E47B
187:100BA000089586E296E4089587E296E408958AE23D
188:100BB00096E40895089596E0799FF001112494E554
189:100BC000899FE00DF11D1124E60FF11DEE0FFF1FAF
190:100BD000EC51FF4F859194910895880F991FFC0166
191:100BE000E05AF040859194910895880F991FFC0177
192:100BF000E052FF4F85919491089526E0729FF00195
193:100C0000112444E5849FE00DF11D1124E60FF11D30
194:100C1000EE0FFF1FEC51FF4F859194919C013A9587
195:100C200021154FE1340708F41CC13F512115304113
196:100C300020F49F700E94F50508959C013053211502
197:100C4000304118F49927906C0895811520E592079A
198:100C500071F40E94BE134FEF84E39CE0415080404A
199:100C60009040E1F700C000000E94EC1AFAC0813009
200:100C700020E5920731F48091CD0181608093CD0110
201:100C8000F0C09C0130552115304108F051C0292F8A
202:100C900033272F70332721303105D9F4AC0143704D
203:100CA000552702C0220F331F4A95E2F73C68AC017A
204:100CB00064E0440F551F6A95E1F744275370242BD5
205:100CC000352B73E0880F991F7A95E1F78076992785
206:100CD0001DC02230310529F4982F8827816F906A32
207:100CE000089523303105A9F4AC014370552721E064
208:100CF00030E002C0220F331F4A95E2F73C6843E020
209:100D0000880F991F4A95E1F7807E9770822B932B6D
210:100D1000089524303105E1F4AC014370552721E0FA
211:100D200030E002C0220F331F4A95E2F73A68E7CF5E
212:100D30009C0130572115304118F49F70906208953E
213:100D40009C0130582115304118F49F70906A089525
214:100D5000803E9105E0F4803C910558F58133910582
215:100D600009F46FC048F48932910509F463C08A32EE
216:100D7000910509F46DC072C089339105E9F082389C
217:100D80009105D1F08533910509F44DC067C0833ECC
218:100D9000910581F138F4803E9105B9F0823E9105CC
219:100DA000D9F05CC0863E910561F1873E9105A1F1C5
220:100DB00055C00E94ED0508952091E00120FD02C07C
221:100DC00021FF4CC080EE90E049C08091E00180FF9F
222:100DD000F9CF89E390E042C08091E00182FF0EC02C
223:100DE0008091E00184FF03C080E090E037C083EE93
224:100DF00090E034C08091E00182FFF2CF82EE90E07B
225:100E00002DC08091E00183FF0BC08091E00184FD43
226:100E1000EBCF87EE90E022C08091E00183FFF5CF19
227:100E200086EE90E01BC08091E00185FF07C089E25B
228:100E300090E014C08091E00185FFF9CF85E390E058
229:100E40000DC08091E00186FF07C08AE290E006C0F5
230:100E50008091E00186FFF9CF81E390E00E941B05BD
231:100E60000895089508950C943207809162010895C1
232:100E7000CF93DF9300D01F92CDB7DEB79C01809156
233:100E8000E601843019F593E099833B832A8390939C
234:100E9000E9008FEF9091E800815095FD06C095ED37
235:100EA0009A95F1F700008111F5CF8091E80085FF58
236:100EB0000DC040E050E063E070E0CE0101960E947A
237:100EC000A5098091E8008E778093E8000F900F903D
238:100ED0000F90DF91CF910895CF93DF9300D01F92B1
239:100EE000CDB7DEB72091E601243021F522E0298339
240:100EF0009B838A8383E08093E9008FEF9091E800E1
241:100F0000815095FD06C095ED9A95F1F7000081118D
242:100F1000F5CF8091E80085FF0DC040E050E063E030
243:100F200070E0CE0101960E94A5098091E8008E77BD
244:100F30008093E8000F900F900F90DF91CF9108956C
245:100F40002091E6012430F1F422E02093E9002FEF14
246:100F50003091E800215035FD06C035ED3A95F1F7A6
247:100F600000002111F5CF2091E80025FF0BC040E0E3
248:100F700050E065E070E00E94A5098091E8008E775E
249:100F80008093E8000895CF93DF93EC019091E60100
250:100F9000943009F046C080910C018823D9F08091EB
251:100FA0000D018823B9F09093E9008FEF9091E8004C
252:100FB000815095FD06C095E19A95F1F700008111E9
253:100FC000F5CF8091E80085FF2CC040E050E060E163
254:100FD00070E017C081E08093E9008FEF9091E80006
255:100FE000815095FD06C095ED9A95F1F700008111AD
256:100FF000F5CF8091E80085FF14C040E050E068E044
257:1010000070E0CE010E94A5098091E8008E77809360
258:10101000E80080E1FE01A2E5B1E001900D928A9521
259:10102000E1F7DF91CF9108958091E501811109C029
260:101030000E943A0B0E94970B8091E200846080939B
261:10104000E20008951092E501089508950C94282176
262:101050000E94821A0E942E210E943D0E0C9433079A
263:1010600042E061EC81E00E94B40A42E061EC82E07F
264:101070000E94B40A42E061EC83E00E94B40A42E1BB
265:1010800061EC84E00C94B40A8091E801833009F4A7
266:1010900055C030F4813071F0823009F48EC008956B
267:1010A0008A3009F47AC08B3009F460C0893009F0C5
268:1010B0009CC020C08091E701813A09F096C08091E0
269:1010C000E800877F8093E8008091EB019091EC012C
270:1010D000892B21F460E182E591E003C060E080E0CB
271:1010E00090E070E00E94F0098091E8008B77809397
272:1010F000E80008958091E701813209F076C080917F
273:10110000EB019091EC01009719F0039709F06DC085
274:101110008091E800877F8093E8008091E80082FD5D
275:1011200005C08091E6018111F8CF5FC08091F10088
276:10113000809362018091E8008B7753C08091E70132
277:10114000813A09F052C08091EB019091EC01892B1A
278:1011500009F04BC08091E800877F8093E800809180
279:10116000E80080FFFCCF80910C0136C08091E70140
280:101170008132D9F58091EB019091EC01892BA9F591
281:101180008091E800877F8093E8000E94E90A8091BF
282:10119000E90180930C010C94BE138091E701813228
283:1011A00021F58091E800877F8093E8000E94E90A9A
284:1011B0008091EA018093630108958091E701813A6B
285:1011C000A1F48091E800877F8093E8008091E80097
286:1011D00080FFFCCF809163018093F1008091E80053
287:1011E0008E778093E8000C94E90A089584B7877F8E
288:1011F00084BF0FB6F894A8958091600088618093B1
289:101200006000109260000FBE90E080E80FB6F89486
290:1012100080936100909361000FBE0E948C0E0E942B
291:101220003A0B0E94970B8091E20084608093E20069
292:1012300078940E941D0E0E948E0E82E091E00E9422
293:10124000380E0E9416218091E601853069F40E94D3
294:10125000401A8091E4018823B1F30E946E1A88231A
295:1012600091F30E948F09EFCF0E94940EECCF292FAB
296:10127000332723303105C9F064F42130310581F082
297:101280002230310509F043C08DE690E020E133E0E3
298:1012900042C021323105F1F02232310541F137C02F
299:1012A00082E190E02DE733E036C099278130910547
300:1012B00041F08230910541F0892B49F5ECE0F3E0F3
301:1012C00005C0E4EFF2E002C0ECEDF2E0849190E0C2
302:1012D0009F0121C06430D8F4E62FF0E0EE0FFF1F2D
303:1012E000EE5DFE4F2081318189E090E014C06430D2
304:1012F00070F470E0FB01EE0FFF1FE65EFE4F2081F1
305:101300003181FB01EA5EFE4F808190E004C080E005
306:1013100090E020E030E0FA0131832083089580E1FD
307:1013200089BD82E189BD09B400FEFDCF8091D8005E
308:101330008F7D8093D8008091E00082608093E000F0
309:101340008091E00081FDFCCF0895CF92DF92EF9273
310:10135000FF920F931F93CF93DF93EC018B016A01F0
311:101360000E94080B811133C0C114D10439F0F60179
312:1013700080819181081B190BC80FD91FE12CF12C1A
313:101380000115110519F18091E80085FD16C08091C5
314:10139000E8008E778093E800C114D10449F0F6018B
315:1013A00080819181E80EF91EF182E08285E00FC014
316:1013B0000E94080B882321F30AC089918093F100D1
317:1013C00001501109FFEFEF1AFF0ADACF80E0DF9139
318:1013D000CF911F910F91FF90EF90DF90CF900895E4
319:1013E0002091ED013091EE012617370748F0611585
320:1013F000710539F42091E8002E772093E80001C0B0
321:10140000B90140E061157105A9F12091E60122239F
322:1014100009F443C0253009F442C02091E80023FDBF
323:1014200040C02091E80022FD32C02091E80020FF5A
324:10143000E9CF4091F3002091F20030E0342BFC0121
325:10144000CF016115710559F02830310540F48191C3
326:101450008093F100615071092F5F3F4FF1CF41E060
327:101460002830310509F040E02091E8002E772093E4
328:10147000E800C8CF4111C9CF0AC08091E601882396
329:1014800061F0853061F08091E80083FD0AC08091B1
330:10149000E80082FFF2CF80E0089582E0089583E0C3
331:1014A000089581E008952091ED013091EE01261715
332:1014B000370748F06115710539F42091E8002E775F
333:1014C0002093E80001C0B901FC0120E0611571051D
334:1014D00091F18091E601882309F440C0853009F438
335:1014E0003FC08091E80083FD3DC08091E80082FD0F
336:1014F0002FC08091E80080FFE9CF2091F300809118
337:10150000F20090E0922B6115710559F08830910539
338:1015100040F424912093F1003196615071090196B5
339:10152000F2CF21E0089709F020E08091E8008E7763
340:101530008093E800CBCF2111CCCF0AC08091E60187
341:10154000882361F0853061F08091E80083FD0AC056
342:101550008091E80082FFF2CF80E0089582E0089554
343:1015600083E0089581E00895982F973058F590937F
344:10157000E900981739F07091EC002091ED0050913E
345:10158000F00003C0242F762F50E021FF19C03091C6
346:10159000EB003E7F3093EB003091ED003D7F3093C8
347:1015A000ED003091EB0031603093EB007093EC0074
348:1015B0002093ED005093F0002091EE0027FF07C02C
349:1015C0009F5FD3CF8F708093E90081E0089580E022
350:1015D00008958091E70187FF11C08091E80082FDA6
351:1015E00005C08091E6018111F8CF11C08091E8001B
352:1015F0008B770BC08091E601882349F08091E80049
353:1016000080FFF8CF8091E8008E778093E8000895FE
354:101610002091E4003091E50095E64091EC00842FA4
355:10162000817040FF22C08091E80080FD1CC0809145
356:10163000E601882391F0853091F08091EB0085FDE3
357:1016400010C04091E4005091E5004217530729F380
358:101650009A01915011F784E0089582E0089583E0A3
359:10166000089581E0089580E008954091E80042FFE8
360:10167000DECF08950E94A80B0E94B00BE0EEF0E0D0
361:10168000808181608083E8EDF0E080818F778083C6
362:1016900019BCA7EDB0E08C918E7F8C9380818F7EFA
363:1016A00080831092E50108950F931F93CF93DF93EA
364:1016B0000E94A80B0E94B00BC8EDD0E088818F7704
365:1016C000888388818068888388818F7D888319BC1E
366:1016D0001092E6011092E2011092E4011092E301EF
367:1016E00000EE10E0F80180818B7F8083888181602B
368:1016F000888342E060E080E00E94B40AE1EEF0E01E
369:1017000080818E7F8083E2EEF0E080818160808343
370:10171000808188608083F80180818E7F80838881CA
371:1017200080618883DF91CF911F910F910895E8ED3B
372:10173000F0E080818F7E8083E7EDF0E08081816042
373:10174000808384E082BF81E08093E5010C94540B98
374:10175000E8EDF0E080818E7F80831092E2000895B2
375:101760001092DA001092E10008951F920F920FB6C6
376:101770000F9211242F933F934F935F936F937F9317
377:101780008F939F93AF93BF93EF93FF938091E1006B
378:1017900082FF0BC08091E20082FF07C08091E100D0
379:1017A0008B7F8093E1000E941C0E8091DA0080FF05
380:1017B0001FC08091D80080FF1BC08091DA008E7F0F
381:1017C0008093DA008091D90080FF0DC080E189BD4F
382:1017D00082E189BD09B400FEFDCF81E08093E6017E
383:1017E0000E94140805C019BC1092E6010E9422084C
384:1017F0008091E10080FF19C08091E20080FF15C058
385:101800008091E2008E7F8093E2008091E20080610F
386:101810008093E2008091D80080628093D80019BC48
387:1018200085E08093E6010E9426088091E10084FF14
388:1018300030C08091E20084FF2CC080E189BD82E14C
389:1018400089BD09B400FEFDCF8091D8008F7D8093C3
390:10185000D8008091E1008F7E8093E1008091E200CA
391:101860008F7E8093E2008091E20081608093E200AD
392:101870008091E201882311F084E007C08091E300A9
393:1018800087FD02C081E001C083E08093E6010E94F1
394:1018900028088091E10083FF29C08091E20083FF46
395:1018A00025C08091E100877F8093E10082E08093F2
396:1018B000E6011092E2018091E1008E7F8093E100C9
397:1018C0008091E2008E7F8093E2008091E20080614F
398:1018D0008093E20042E060E080E00E94B40A8091E0
399:1018E000F00088608093F0000E942508FF91EF913E
400:1018F000BF91AF919F918F917F916F915F914F9128
401:101900003F912F910F900FBE0F901F9018951F922F
402:101910000F920FB60F9211242F933F934F935F9323
403:101920006F937F938F939F93AF93BF93CF93DF93E7
404:10193000EF93FF93C091E900CF708091EC00D82F16
405:10194000D17080FDD0E81092E9008091F000877F8F
406:101950008093F00078940E94CB0C1092E900809163
407:10196000F00088608093F000CD2BCF70C093E90029
408:10197000FF91EF91DF91CF91BF91AF919F918F91A7
409:101980007F916F915F914F913F912F910F900FBE7B
410:101990000F901F9018951F93CF93DF93CDB7DEB7AD
411:1019A000AA970FB6F894DEBF0FBECDBFE7EEF1E009
412:1019B00088E08E0F9091F10091938E13FBCF0E94DF
413:1019C00044088091E80083FF1FC18091E701909156
414:1019D000E801492F50E04A30510508F015C1FA01DD
415:1019E000EA5AFF4F0C94BF22803881F0823809F008
416:1019F0000BC18091EB018F708093E9008091EB0027
417:101A000085FB882780F91092E90006C08091E301E8
418:101A10009091E401911182609091E800977F9093FA
419:101A2000E8008093F1001092F100C8C0282F2D7FAC
420:101A300009F0EAC0882319F0823061F0E5C0809196
421:101A4000E901813009F0E0C0933009F080E0809333
422:101A5000E4012BC08091E901811127C08091EB0145
423:101A60008F7009F4D1C08093E9002091EB0020FF32
424:101A70001CC0933021F48091EB00806214C09091DF
425:101A8000EB0090619093EB0021E030E0A90102C0EF
426:101A9000440F551F8A95E2F74093EA001092EA003E
427:101AA0008091EB0088608093EB001092E9008091B8
428:101AB000E800877F86C08111A7C01091E9011F77D8
429:101AC0008091E3008078812B8093E3008091E8008F
430:101AD000877F8093E8000E94E90A8091E80080FFF8
431:101AE000FCCF8091E30080688093E300111102C075
432:101AF00082E001C083E08093E60186C08058823096
433:101B000008F082C08091E9019091EA018C3D53E098
434:101B1000950779F583E08A838AE289834FB7F89441
435:101B2000DE01139620E03EE051E2E32FF0E0509317
436:101B30005700E49120FF03C0E295EF703F5FEF7024
437:101B40008E2F90E0EA3010F0C79601C0C0968D93BA
438:101B50009D932F5F243149F74FBF8091E800877F25
439:101B60008093E8006AE270E0CE0101960E94F009DD
440:101B700014C0AE014F5F5F4F6091EB010E943709C7
441:101B8000BC01892B09F440C09091E800977F9093A5
442:101B9000E80089819A810E94530A8091E8008B773E
443:101BA0008093E80031C0803879F58091E800877F24
444:101BB0008093E8008091E2018093F1008091E80039
445:101BC0008E778093E8000E94E90A1EC081111CC034
446:101BD0009091E9019230C0F48091E800877F809372
447:101BE000E8009093E2010E94E90A8091E2018111EC
448:101BF00006C08091E30087FD02C081E001C084E05F
449:101C00008093E6010E9430088091E80083FF0AC0BB
450:101C10008091E800877F8093E8008091EB008062EC
451:101C20008093EB00AA960FB6F894DEBF0FBECDBF2F
452:101C3000DF91CF911F9108950895CF938091E60190
453:101C40008823A1F0C091E900CF709091EC00892F1A
454:101C5000817090FD80E8C82B1092E9008091E80027
455:101C600083FD0E94CB0CCF70C093E900CF91089503
456:101C700090936901809368010895E0916801F09163
457:101C80006901309721F00190F081E02D099480E006
458:101C90000895E0916801F0916901309721F0028088
459:101CA000F381E02D09940895E0916801F0916901B4
460:101CB000309721F00480F581E02D0994089520915A
461:101CC0006601309167018217930771F09093670165
462:101CD00080936601E0916801F0916901309721F0ED
463:101CE0000680F781E02D09940895209164013091D8
464:101CF00065018217930771F09093650180936401E9
465:101D0000E0916801F0916901309721F00084F1853C
466:101D1000E02D0994089508950C948B0E0E94881A62
467:101D20000E940E040C944E1BCF92DF92EF92FF9212
468:101D30000F931F93CF93DF93CDB7DEB72B970FB6DB
469:101D4000F894DEBF0FBECDBF0E9426048BE6C82EDE
470:101D500081E0D82E00E010E0E02E802F0E941405D4
471:101D6000F60141916F01F42EF826B1F40F5F1F4F79
472:101D70000E30110589F78FEF89838A831B820E94B9
473:101D8000911A8160782F9D838C8349815A816B8160
474:101D90008D810E94370F40C09091CD0191FF04C00A
475:101DA0008B870E941A058B8520E030E04F2D50E094
476:101DB000922FBA01022E02C0759567950A94E2F738
477:101DC00060FF24C02E83EF8221E030E0690102C071
478:101DD000CC0CDD1C9A95E2F790E08C219D21892B9B
479:101DE00009F420E028870E94911A8160782F9A8751
480:101DF00089874E815F8168858A850E94370FF80147
481:101E0000E559FE4F8081C826C08206C02F5F3F4F34
482:101E10002630310569F6AACF0E94351E10916A015D
483:101E20000E943D0E1817A1F00E943D0E80936A019A
484:101E30002B960FB6F894DEBF0FBECDBFDF91CF91CA
485:101E40001F910F91FF90EF90DF90CF900C9433078C
486:101E50002B960FB6F894DEBF0FBECDBFDF91CF91AA
487:101E60001F910F91FF90EF90DF90CF900895CF9347
488:101E7000DF93CDB7DEB72B970FB6F894DEBF0FBE5A
489:101E8000CDBF4F83588769877A878B87DE0111968C
490:101E900086E0FD0111928A95E9F785E0FE0137960B
491:101EA00001900D928A95E1F749815A816B817C817D
492:101EB0008D819E810E9458162B960FB6F894DEBF36
493:101EC0000FBECDBFDF91CF9108950895CF938823A2
494:101ED00009F4C2C0C82F823859F40E943D0E81FD1A
495:101EE000BBC089E30E94F4180E94C11989E30CC0A9
496:101EF000833879F40E943D0E80FDAEC083E50E94D8
497:101F0000F4180E94C11983E50E943619CF910C94F0
498:101F1000C119843859F40E943D0E82FD9DC087E4AA
499:101F20000E94F4180E94C11987E4EECF8CEF8C0F49
500:101F3000813A48F48C2F0E947B2081118DC08C2F18
501:101F40000E94F418E3CF80E28C0F883048F4C77009
502:101F500081E001C0880FCA95EAF70E947A19D6CFAE
503:101F60008BE58C0F833078F4C53A29F0C63A31F00E
504:101F700083E890E005C081E890E002C082E890E04C
505:101F8000CF910C945F0E88E58C0F833108F064C00C
506:101F9000C83A39F1C93A41F1CA3A49F1CB3A51F15B
507:101FA000CC3A59F1CD3A61F1C03B69F1CE3A71F1C9
508:101FB000CF3A79F1C13B81F1C23B89F1C33B91F149
509:101FC000C43B99F1C53BA1F1C63BA9F1C73BB1F1B7
510:101FD000C83BB9F1C93BC1F1CA3BC9F180E090E00F
511:101FE00038C082EE90E035C089EE90E032C08AEED3
512:101FF00090E02FC085EB90E02CC086EB90E029C0EC
513:1020000087EB90E026C08CEC90E023C08DEC90E054
514:1020100020C083E891E01DC08AE891E01AC082E9FF
515:1020200091E017C084E991E014C081E292E011C010
516:1020300083E292E00EC084E292E00BC085E292E07F
517:1020400008C086E292E005C087E292E002C08AE220
518:1020500092E0CF910C94750ECF910895882309F4E6
519:102060004BC0823859F40E943D0E81FF45C089E380
520:102070000E94F4180E94C11989E30CC0833871F4DE
521:102080000E943D0E80FF38C083E50E94F4180E9434
522:10209000C11983E50E9436190C94C119843859F48A
523:1020A0000E943D0E82FF28C087E40E94F4180E941F
524:1020B000C11987E4EFCF9CEF980F913A58F390E263
525:1020C000980F983050F4877091E001C0990F8A956D
526:1020D000EAF7892F0E948019DFCF9BE5980F933094
527:1020E00020F480E090E00C945F0E885A833120F455
528:1020F00080E090E00C94750E0895882321F00E94F2
529:102100007A190C94C1190895882321F00E9480192E
530:102110000C94C1190895BF92CF92DF92EF92FF9273
531:102120000F931F93CF93DF9300D000D000D0CDB793
532:10213000DEB725E0FC01DE01119601900D922A9593
533:10214000E1F7FC01D08011810281258122952F7059
534:1021500043815481452B09F4EDC21F3F21F4FFEF69
535:10216000DF1609F4E7C27C012E830E94650FD98235
536:102170001A8389819A810E94B318182FB92E0E9460
537:10218000B2180E9479172E81002319F00E94971926
538:102190002E81EB2DE295EF70F0E0E05AFF4F0C94AA
539:1021A000BF228B2D807F9B2D9F70F92E882319F0E5
540:1021B000F29480EFF822002349F0FF2009F467C26F
541:1021C0008F2D0E948A190E94C11961C2812F0E941D
542:1021D0002E10FF2009F4AEC28F2D0E949019269672
543:1021E0000FB6F894DEBF0FBECDBFDF91CF911F9128
544:1021F0000F91FF90EF90DF90CF90BF900C94C1199A
545:102200003B2D307F8B2D8F70303211F08295807F87
546:10221000112319F0113021F12CC00023B9F0222331
547:1022200009F4A0C1213009F09DC126960FB6F8949B
548:10223000DEBF0FBECDBFDF91CF911F910F91FF90F9
549:10224000EF90DF90CF90BF900C94AA19222319F041
550:10225000213009F46FC28E830E94AD198E8196C120
551:10226000002321F0223008F065C27CC1211162C236
552:102270008DC1002321F0222309F474C108C2222356
553:1022800009F484C119C22B2D26952695237030E0C0
554:102290002115310521F021303105D1F04BC2002349
555:1022A00021F0812F9B2D937002C080E090E0269654
556:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157
557:1022C0000F91FF90EF90DF90CF90BF900C945F0E36
558:1022D000002321F0812F9B2D937002C080E090E0BD
559:1022E00026960FB6F894DEBF0FBECDBFDF91CF911B
560:1022F0001F910F91FF90EF90DF90CF90BF900C94C3
561:10230000750E812F002319F00E943D1D02C00E940E
562:10231000A51D26960FB6F894DEBF0FBECDBFDF9188
563:10232000CF911F910F91FF90EF90DF90CF90BF90D2
564:102330000C942A1E8B2D837009F07BC00111FAC109
565:10234000812F829586958770880F880F912F9F70B7
566:10235000C92ED12CE12CF12C082E04C0CC0CDD1C94
567:10236000EE1CFF1C0A94D2F714FF12C04FE050E09D
568:1023700060E070E004C0440F551F661F771F8A9508
569:10238000D2F7CB01BA01609570958095909503C006
570:1023900060E070E0CB012B2D269526952370422F0F
571:1023A00050E042305105D9F04330510569F16C29B4
572:1023B0007D298E299F294130510551F126960FB66E
573:1023C000F894DEBF0FBECDBFDF91CF911F910F916B
574:1023D000FF90EF90DF90CF90BF900C94A0176C29E6
575:1023E0007D298E299F2926960FB6F894DEBF0FBE51
576:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4
577:10240000CF90BF900C94BC170E94A017C701B601D3
578:1024100026960FB6F894DEBF0FBECDBFDF91CF91E9
579:102420001F910F91FF90EF90DF90CF90BF900C9491
580:102430008417002319F08B2D817001C086958823A5
581:1024400009F478C1812F829586958770880F880F4F
582:10245000912F9F70C92ED12CE12CF12C082E04C095
583:10246000CC0CDD1CEE1CFF1C0A94D2F714FF12C02A
584:102470004FE050E060E070E004C0440F551F661F5D
585:10248000771F8A95D2F7CB01BA0160957095809538
586:10249000909503C060E070E0CB012B2D269526952A
587:1024A0002370422F50E042305105D9F0433051059E
588:1024B00069F16C297D298E299F294130510551F1FF
589:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139
590:1024D0001F910F91FF90EF90DF90CF90BF900C94E1
591:1024E0007A186C297D298E299F2926960FB6F89493
592:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037
593:10250000EF90DF90CF90BF900C9496180E947A18AD
594:10251000C701B60126960FB6F894DEBF0FBECDBF39
595:10252000DF91CF911F910F91FF90EF90DF90CF90AF
596:10253000BF900C945E18103FD1F118F4103E50F487
597:10254000A1C0123F09F463C008F44CC0133F09F462
598:1025500073C098C01F708B2D8F710023A1F00E9453
599:10256000F717812F26960FB6F894DEBF0FBECDBFAA
600:10257000DF91CF911F910F91FF90EF90DF90CF905F
601:10258000BF900C947D100E941818812F26960FB6CC
602:10259000F894DEBF0FBECDBFDF91CF911F910F9199
603:1025A000FF90EF90DF90CF90BF900C9484100023A9
604:1025B000A9F02111BFC08B2D8F7126960FB6F8940C
605:1025C000DEBF0FBECDBFDF91CF911F910F91FF9066
606:1025D000EF90DF90CF90BF900C943D18223008F020
607:1025E000A9C0E9CF0023A9F08B2D8F7126960FB6D5
608:1025F000F894DEBF0FBECDBFDF91CF911F910F9139
609:10260000FF90EF90DF90CF90BF900C94F7170023CE
610:1026100059F38B2D8F7126960FB6F894DEBF0FBE3F
611:10262000CDBFDF91CF911F910F91FF90EF90DF9081
612:10263000CF90BF900C941818002399F08B2D8F71B8
613:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7
614:102650001F910F91FF90EF90DF90CF90BF900C945F
615:10266000E21726960FB6F894DEBF0FBECDBFDF91FE
616:10267000CF911F910F91FF90EF90DF90CF90BF907F
617:102680000C94D8170023A9F0222309F4ADCF812F91
618:1026900026960FB6F894DEBF0FBECDBFDF91CF9167
619:1026A0001F910F91FF90EF90DF90CF90BF900C940F
620:1026B000660F222309F4ADCF812F26960FB6F8942A
621:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065
622:1026D000EF90DF90CF90BF900C942E104B2D4F7049
623:1026E000612FC7010E94AE0226960FB6F894DEBF96
624:1026F0000FBECDBFDF91CF911F910F91FF90EF9053
625:10270000DF90CF90BF900C94FC164B2D4F70612F33
626:10271000C70126960FB6F894DEBF0FBECDBFDF917E
627:10272000CF911F910F91FF90EF90DF90CF90BF90CE
628:102730000C94DA0526960FB6F894DEBF0FBECDBF17
629:10274000DF91CF911F910F91FF90EF90DF90CF908D
630:10275000BF9008950E9497190E94A7190E946C19B2
631:102760000E94C1190E94DA1E0E942A1E80E090E099
632:102770000E945F0E80E090E00C94750E0E94871915
633:102780000C94AA130E94B318292F22952F7030E0C1
634:102790002C3031054CF42A3031056CF422503109CB
635:1027A0002230310588F407C02C30310549F02F3034
636:1027B000310531F009C0803E48F0803F29F406C061
637:1027C00093FB882780F9089580E0089581E00895BB
638:1027D000CF93DF9300D000D01F92CDB7DEB70F901C
639:1027E0000F900F900F900F90DF91CF910895CF939E
640:1027F000DF9300D000D000D0CDB7DEB726960FB65D
641:10280000F894DEBF0FBECDBFDF91CF9108951F9327
642:10281000CF93DF93C091790116E080917A01C817B8
643:1028200099F0D0E01C9FF0011D9FF00D1124E55898
644:10283000FE4F4081518162817381848195810E9424
645:10284000F7132196C770E9CFDF91CF911F910895BB
646:102850004091AB015091AC016091AD017091AE011E
647:102860008091AF019091B0010C94F7138091B00169
648:1028700082958F7009F054C08091AD01882309F4CE
649:102880004FC080917901A0917A016091AB01709164
650:10289000AC014091AE015091AF01B6E08A1709F446
651:1028A0003FC090E041155105C1F17F3F11F46F3FEA
652:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A
653:1028C000218172132AC02081621327C02281211125
654:1028D00024C0238134812417350710F42150310995
655:1028E000241B350B283C3105C0F42091B0012F701A
656:1028F00020612093B00126E0289FF001299FF00D70
657:102900001124E058FE4F80818F70806180838BEAB4
658:1029100091E00E948B100C94071401968770BECF33
659:102920000895CF92DF92EF92FF920F931F93CF9370
660:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58
661:10294000CDBF8C0185E0F801DE011D9601900D924E
662:102950008A95E1F7D8014C9111965C9111971296E6
663:102960006C9112971396CD90DC9014973091AB0137
664:102970007091AC018091AE019091AF01009709F484
665:102980006BC17F3F19F43F3F09F466C1E090AD0190
666:10299000EE2009F4C0C02091B001C816D90628F075
667:1029A000F601E81BF90BCF0104C0809590958C0DC2
668:1029B0009D1DFF24F394883C910578F0F12C207F35
669:1029C00009F0C6C07C2DD98AC88A89890E94E8137B
670:1029D0008BEA91E00E948B10B1C0822F807F09F0BA
671:1029E00046C0751314C0341312C0611110C02F708B
672:1029F00020612093B0010E9428148BEA91E00E948C
673:102A00008B108091B001D80115968C932EC0CD28E3
674:102A100019F15F3F11F44F3FF9F0F62E61111CC020
675:102A20008091790120917A0136E0821709F45AC029
676:102A300090E0389FF001399FF00D1124E558FE4FCA
677:102A40007181571306C07081471303C072817111E1
678:102A500003C001968770E9CFF62E662309F418C1EA
679:102A60008091B00181608093B001F12C11C1751388
680:102A700008C0341306C0611104C08091B001D801B0
681:102A8000C3C04D875E878D859E856A8B0E94C21369
682:102A90006A898823E1F16623D1F12091B001822F68
683:102AA00082958F7090E0029774F08091AB019091C5
684:102AB000AC0198878F831986DB86CA862C87CE0166
685:102AC00007960E948B1086E0F801ABEAB1E0019016
686:102AD0000D928A95E1F70E9436140E942814FF2473
687:102AE000F394D6C04D875E878D859E850E94B3186E
688:102AF000292F22952F7030E0223031050CF0BCC018
689:102B00009F7009F0B6C0805E883008F4C1C0C8016B
690:102B10000E948B10E4CFC816D90608F453C0F60102
691:102B2000E81BF90BCF01883C910508F450C0F12C4B
692:102B30007C2DD98AC88A89890E94E813EBEAF1E0E2
693:102B400086E0DF011D928A95E9F70E942814A0C053
694:102B5000751314C0341312C0611110C08091B001FC
695:102B6000F8018583C8010E948B1086E0EBEAF1E052
696:102B7000DF011D928A95E9F7FE2C8AC04D875E879A
697:102B80008D859E856A8B0E94C2136A89882309F409
698:102B9000BECF662309F4BBCF2091B001822F82956E
699:102BA0008F7090E002970CF48ECF8091AB019091E2
700:102BB000AC019A8389831B82DD82CC822E83CE0175
701:102BC00001967FCF809590958C0D9D1DACCFF62EF4
702:102BD000662309F49CCF75132EC034132CC02091AA
703:102BE000B00120FD1FC0822F82958F70D9F0D801CF
704:102BF00015962C9315978F3049F08F5F982F9295EB
705:102C0000907F822F8F70892B15968C93C8010E941C
706:102C10008B1086E0F801ABEAB1E001900D928A9545
707:102C2000E1F793CF86E0F801ABEAB1E001900D92B5
708:102C30008A95E1F72DC04D875E878D859E850E9420
709:102C4000C213811140CF8091B00181608093B001A7
710:102C5000C8010E948B101CC0662309F458CF4D8711
711:102C60005E878D859E850E94C213882309F44FCF0D
712:102C70002ACF811148CF0CC0243031050CF047CF4A
713:102C80009F7009F440CFF8019581907F09F03BCF08
714:102C90008F2D62960FB6F894DEBF0FBECDBFDF91C9
715:102CA000CF911F910F91FF90EF90DF90CF900895FB
716:102CB0001F93CF93DF93CDB7DEB72C970FB6F89461
717:102CC000DEBF0FBECDBF4F83588769877A878B875A
718:102CD0009C87CE0107960E949114882369F08F810A
719:102CE00098852A853B85232BF1F19F3F09F063C02E
720:102CF0008F3F09F060C037C086E0FE013796DE01E5
721:102D0000119601900D928A95E1F76F817885EA8599
722:102D1000FB85309741F17F3F11F46F3F21F1209106
723:102D20007A0130E0C90101968770992740917901B5
724:102D300050E08417950709F447C069837A83FD83BF
725:102D4000EC8396E0929FD001939FB00D1124A5587B
726:102D5000BE4FFE01319601900D929A95E1F7809356
727:102D60007A010E94071416E08091790190917A010E
728:102D70008917C1F1189FC001112485589E4F0E94E8
729:102D80009114882379F1E09179011E9FF0011124BB
730:102D9000E558FE4F40815181628173818481958124
731:102DA0000E94F7138091790190E00196877099272E
732:102DB00080937901D9CF4F81588569857A858B8534
733:102DC0009C850E94F713CFCF0E94BE1310927A0108
734:102DD00010927901EBEAF1E086E0DF011D928A951D
735:102DE000E9F7C1CF2C960FB6F894DEBF0FBECDBF6A
736:102DF000DF91CF911F910895EF92FF920F931F9350
737:102E0000CF93DF938C01892B09F46CC0F12CEE2455
738:102E1000E394E8012196F8018491843740F48430EA
739:102E200008F051C0813081F0823019F15BC08537E4
740:102E300009F444C0A8F19CE7980F903708F052C0FD
741:102E40008F770E942E1041C00E5F1F4FFE01C4916C
742:102E500080E28C0F883048F4C7708E2D01C0880F37
743:102E6000CA95EAF70E949A1914C08C2F0E94660F27
744:102E70002DC00E5F1F4FFE01C49180E28C0F883081
745:102E800058F4C7708E2D01C0880FCA95EAF70E94CA
746:102E9000A0190E94C1191AC08C2F0E942E1016C0B2
747:102EA0000E5F1F4FFE01C491CC2381F08FE99FE09C
748:102EB0000197F1F700C00000C150F6CF0E5F1F4F21
749:102EC000FE01F49003C00E94660F8E018F2D8823AF
750:102ED00009F49FCFEFE9FFE03197F1F700C0000060
751:102EE0008150F5CFDF91CF911F910F91FF90EF901F
752:102EF000089508956093B5017093B6018093B7016A
753:102F00009093B8010C94AA130F931F930091B501ED
754:102F10001091B6012091B7013091B801DC01CB01CD
755:102F2000802B912BA22BB32B8093B5019093B601EC
756:102F3000A093B701B093B8011F910F910C94AA13FD
757:102F40000F931F930091B5011091B6012091B70125
758:102F50003091B801DC01CB0180239123A223B3235C
759:102F60008093B5019093B601A093B701B093B801D7
760:102F70001F910F910C94AA130F931F930091B50109
761:102F80001091B6012091B7013091B801DC01CB015D
762:102F900080279127A227B3278093B5019093B6018C
763:102FA000A093B701B093B8011F910F910C94AA138D
764:102FB0001092B1011092B2011092B3011092B401BB
765:102FC0000C94AA1341E050E060E070E004C0440FAC
766:102FD000551F661F771F8A95D2F74093B101509312
767:102FE000B2016093B3017093B4010C94AA1341E051
768:102FF00050E060E070E004C0440F551F661F771F6B
769:103000008A95D2F78091B1019091B201A091B3015C
770:10301000B091B401482B592B6A2B7B2B4093B10103
771:103020005093B2016093B3017093B4010C94AA134E
772:1030300041E050E060E070E004C0440F551F661F9F
773:10304000771F8A95D2F7409550956095709580913D
774:10305000B1019091B201A091B301B091B4014823A4
775:1030600059236A237B234093B1015093B2016093AB
776:10307000B3017093B4010C94AA1341E050E060E0F6
777:1030800070E004C0440F551F661F771F8A95D2F762
778:103090008091B1019091B201A091B301B091B401BE
779:1030A000482759276A277B274093B1015093B201E3
780:1030B0006093B3017093B4010C94AA130F931F9300
781:1030C0000091B1011091B2012091B3013091B4018E
782:1030D000DC01CB01802B912BA22BB32B8093B10170
783:1030E0009093B201A093B301B093B4011F910F91DB
784:1030F0000C94AA130F931F930091B1011091B20188
785:103100002091B3013091B401DC01CB0180239123E4
786:10311000A223B3238093B1019093B201A093B30192
787:10312000B093B4011F910F910C94AA130F931F93A6
788:103130000091B1011091B2012091B3013091B4011D
789:10314000DC01CB0180279127A227B3278093B1010F
790:103150009093B201A093B301B093B4011F910F916A
791:103160000C94AA130895CF92DF92EF92FF920F93DF
792:103170001F93CF93DF938C01C090B501D090B6011F
793:10318000E090B701F090B8014091B1015091B201C7
794:103190006091B3017091B401C42AD52AE62AF72AB6
795:1031A000CFE1D0E0D701C6010C2E04C0B695A7959B
796:1031B000979587950A94D2F780FF07C0B8018C2FA6
797:1031C0000E94FD058130910531F4219758F7B8012F
798:1031D00080E00E94FD05DF91CF911F910F91FF903C
799:1031E000EF90DF90CF90089590910C01992321F0FA
800:1031F00090910D01911109C020910E0130910F01A4
801:10320000F90132969FEF40E01FC0982F9695969552
802:1032100096959F3050F5E0910E01F0910F01E90F66
803:10322000F11D877021E030E0A90102C0440F551F55
804:103230008A95E2F7CA019181892B818308959F3F86
805:1032400039F04F5F4E3041F051915813F8CF0DC017
806:103250005111F7CF942FF5CF9F3F39F0F901E90FC6
807:10326000F11D97FDFA9582830895089590910C01C0
808:10327000992321F090910D01911109C020910E0127
809:1032800030910F01F9013296205F3F4F1FC0982FF8
810:103290009695969596959F30F0F4E0910E01F091F9
811:1032A0000F01E90FF11D877021E030E0A90102C094
812:1032B000440F551F8A95E2F7CA01809591818923B1
813:1032C000818308953196E217F30729F090819813CE
814:1032D000F9CF1082F7CF089581E090E0E0910E01E0
815:1032E000F0910F01E80FF91F1082019680319105CE
816:1032F000A9F708959091CC01892B8093CC01089572
817:1033000080959091CC0189238093CC0108951092EF
818:10331000CC0108959091CB01892B8093CB01089526
819:1033200080959091CB0189238093CB0108951092D1
820:10333000CB0108959091CA01892B8093CA01089509
821:1033400080959091CA0189238093CA0108951092B3
822:10335000CA0108958093B90108951092B9010895A2
823:1033600080910E0190910F01FC0131969C01205F2C
824:103370003F4F80E0919191118F5FE217F307D1F7F2
825:103380000895E0910E01F0910F018091CC018083AE
826:10339000E0910E01F0910F0190818091CB01892B7A
827:1033A0008083E0910E01F0910F0190818091CA011C
828:1033B000892B80838091B901882361F0E0910E010F
829:1033C000F0910F019081892B80830E94B0198111A7
830:1033D0001092B90180910E0190910F010C94490E49
831:1033E000CF92DF92EF92FF926C01EE24FF24C11482
832:1033F000D104E104F10421F0C701B60120E101C0CC
833:1034000020E0C72ED82EE92EFF24C114D104E104F8
834:10341000F10419F0285FC701B6016B017C0154E08B
835:10342000F694E794D794C7945A95D1F7C114D10470
836:10343000E104F10419F02C5FC701B6016B017C01B6
837:1034400042E0F694E794D794C7944A95D1F7C11413
838:10345000D104E104F10419F02E5FC701B601DC01CB
839:10346000CB01B695A79597958795892B8A2B8B2BA2
840:1034700009F02F5F822FFF90EF90DF90CF9008959B
841:103480008091E601843039F11092CE0120E488E188
842:1034900090E00FB6F894A895809360000FBE20933B
843:1034A000600080E00E94330783B7817F846083BF20
844:1034B00083B7816083BF7894889583B78E7F83BFFD
845:1034C0000FB6F894A89580916000886180936000A1
846:1034D000109260000FBE089508950895CF930E9442
847:1034E0006C1A0E9426040E946D1AC0E08C2F0E9464
848:1034F0001405811104C0CF5FCE30C1F701C081E057
849:10350000CF9108950E94BE130E943D0E0C94330784
850:1035100082E084BD93E095BD9AEF97BD80936E00E5
851:1035200008952FB7F8948091CF019091D001A09188
852:10353000D101B091D2012FBF0895CF92DF92EF92C7
853:10354000FF920F931F932FB7F8944091CF015091A2
854:10355000D0016091D1017091D2012FBF6A017B012E
855:10356000EE24FF248C0120E030E0C016D106E206F4
856:10357000F30610F4415051099A01281B390BC90177
857:103580001F910F91FF90EF90DF90CF9008951F92C1
858:103590000F920FB60F9211248F939F93AF93BF9307
859:1035A0008091CF019091D001A091D101B091D20131
860:1035B0000196A11DB11D8093CF019093D001A093DE
861:1035C000D101B093D201BF91AF919F918F910F9094
862:1035D0000FBE0F901F9018950E943A0BF8942FEF92
863:1035E00087EA91E6215080409040E1F700C000005A
864:1035F00087E090EBDC018093EF019093F001A093C2
865:10360000F101B093F2019CE088E10FB6F894A8951F
866:10361000809360000FBE90936000FFCFEF92FF9207
867:103620000F931F93CF93DF93D82FC0E08C2F0E946E
868:10363000140500E010E0E82EF12CC701002E02C0B6
869:10364000959587950A94E2F780FD06C00F5F1F4F9E
870:103650000630110591F709C0602F7C2F80E00E9491
871:10366000DB05D813F3CF81E004C0CF5FCE30F1F695
872:1036700080E0DF91CF911F910F91FF90EF9008951F
873:10368000CF93C82F8CE20E940E1B882321F08C2F31
874:10369000CF910C940E1B80E0CF910895CF930E94A0
875:1036A000951C811102C00E947B1CC5E6C15049F0E7
876:1036B0000E9426048FE39CE90197F1F700C0000007
877:1036C000F5CF89E20E94401B811113C18AE20E945A
878:1036D000401B81110E947B1C85E00E94401B8111D0
879:1036E0000E94EC1A0E94A01C8093CD0187E00E94EA
880:1036F000401B8823A9F18BE10E94401B882351F0D5
881:103700008091CD0181FB222720F991E0922790FB47
882:1037100081F90EC08EE00E94401B882361F08091E9
883:10372000CD0182FB222720F991E0922790FB82F9BC
884:103730008093CD0115C080E10E94401B9091CD0186
885:10374000882341F093FB222720F981E0822780FB28
886:1037500093F904C0892F809580FB90F99093CD0157
887:103760008091CD010E94A41C0E94B21C8093E001B4
888:1037700080EE0E94401B882341F08091E001982F49
889:10378000909590FB80F98093E00189E30E94401BB3
890:10379000882359F08091E00181FB222720F991E0F4
891:1037A000922790FB81F98093E00182EE0E94401BFA
892:1037B000882359F08091E00182FB222720F991E0D3
893:1037C000922790FB82F98093E00186EE0E94401BD5
894:1037D000882359F08091E00183FB222720F991E0B2
895:1037E000922790FB83F98093E00183EE0E94401BB7
896:1037F000882359F08091E00184FB222720F991E091
897:10380000922790FB84F98093E00185E30E94401B9E
898:10381000882359F08091E00185FB222720F991E06F
899:10382000922790FB85F98093E00181E30E94401B81
900:10383000882359F08091E00186FB222720F991E04E
901:10384000922790FB86F98093E00181E10E94401B62
902:10385000882359F08091E00187FB222720F991E02D
903:10386000922790FB87F98093E0018091E0010E940C
904:10387000B61C8091E00187FB882780F980930D01B9
905:1038800087E20E94401BC82F8EE10E94401B8111DD
906:10389000C2608FE10E94401B8111C46080E20E94DF
907:1038A000401B8111C86081E20E94401B8111C061F0
908:1038B00082E20E94401B8111C06283E20E94401B91
909:1038C0008111C06484E20E94401B882311F0C0680B
910:1038D00002C0CC2329F08C2F0E94AD1C6C2F03C09A
911:1038E0000E94A91C682F70E080E090E0CF910C94BA
912:1038F0007A17CF9108956DEE7EEF80E090E00E9400
913:10390000F52260E082E090E00E94E72260E083E040
914:1039100090E00E94E72260E084E090E00E94E722CD
915:1039200060E085E090E00C94E72280E090E00E9467
916:10393000E12221E08D3E9E4F09F020E0822F089584
917:1039400082E090E00C94D922682F82E090E00C9401
918:10395000E72283E090E00C94D922682F83E090E086
919:103960000C94E72284E090E00C94D922682F84E044
920:1039700090E00C94E7228091D50180FF0BC060910C
921:10398000130185E0689FB0011124759567957595C1
922:1039900067952BC081FF09C06091130185E0689F86
923:1039A000B00111247595679520C082FF07C0609112
924:1039B000130185E0689FB001112417C09091D601D2
925:1039C0009923D1F060911201961788F72091130185
926:1039D00085E0289F90011124929FA001939F500D94
927:1039E000112470E0CA010E94AB226038710540F4D6
928:1039F0006115710539F002C065E070E0862F089509
929:103A00008FE7089581E008958091D50180FF08C077
930:103A10006091110170E0759567957595679521C066
931:103A200081FF06C06091110170E07595679519C01E
932:103A300082FF04C06091110170E010C09091D60126
933:103A40009923C1F0609110019617A0F780911101A0
934:103A5000899FC001112470E00E94AB22603871057B
935:103A600028F46115710521F0862F08958FE70895D8
936:103A700081E0089561E070E0F4CF803F21F40E947E
937:103A8000BB1C819504C0813F29F40E94BB1C80931C
938:103A9000D9010895823F21F40E94BB1C819504C086
939:103AA000833F29F40E94BB1C8093D8010895893F6D
940:103AB00019F40E94041D05C08A3F31F40E94041DC0
941:103AC00081958093DA0108958B3F21F40E94041DB3
942:103AD000819504C08C3F29F40E94041D8093DB0172
943:103AE0000895843F21F48091D701816017C0853FFC
944:103AF00021F48091D701826011C0863F21F480912A
945:103B0000D70184600BC0873F21F48091D701886082
946:103B100005C0883F31F48091D70180618093D7013F
947:103B200008958D3F21F48091D50181600BC08E3FB7
948:103B300021F48091D501826005C08F3F29F48091E6
949:103B4000D50184608093D5010895803F39F4809138
950:103B5000D90187FF6CC01092D90169C0813F29F457
951:103B60008091D9011816BCF362C09091D801823FB0
952:103B700029F497FF5CC01092D80159C0833F19F413
953:103B80001916CCF354C0893F41F48091DA0118161C
954:103B90000CF04DC01092DA014AC08A3F29F480919E
955:103BA000DA0187FF44C0F6CF8B3F39F48091DB0107
956:103BB00087FF3DC01092DB013AC08C3F29F4809111
957:103BC000DB011816BCF333C0843F21F48091D70188
958:103BD0008E7F17C0853F21F48091D7018D7F11C062
959:103BE000863F21F48091D7018B7F0BC0873F21F462
960:103BF0008091D701877F05C0883F31F48091D7013C
961:103C00008F7E8093D70113C08D3F21F48091D50121
962:103C10008E7F0BC08E3F21F48091D5018D7F05C032
963:103C20008F3F29F48091D5018B7F8093D5018091BE
964:103C3000D80181110EC08091D90181110AC08091F3
965:103C4000DA01811106C08091DB01811102C010925E
966:103C5000D601089587ED91E00E94540E0E94911ABA
967:103C60009093D4018093D30108951F93CF93DF9352
968:103C70008091D3019091D4010E949D1AAC01909142
969:103C8000D601992321F02091140130E006C0209143
970:103C900015018AE0289F900111244217530708F468
971:103CA00085C08091D801C091D901D091DA011091DD
972:103CB000DB01811107C0C11175C0D11173C0111191
973:103CC00071C074C09F3F19F09F5F9093D601181682
974:103CD00024F40E94BB1C8093D8018091D80187FFF7
975:103CE00005C00E94BB1C81958093D8011C1624F44A
976:103CF0000E94BB1C8093D9018091D90187FF05C028
977:103D00000E94BB1C81958093D9016091D8016623E4
978:103D100031F1C091D901CC2311F1062E000C770BA3
979:103D2000880B990B0E94B22123E333E343E35FE363
980:103D30000E9416220E947A216093D8016C2FCC0F2A
981:103D4000770B880B990B0E94B22123E333E343E303
982:103D50005FE30E9416220E947A216093D9011D160A
983:103D600024F40E94041D8093DA018091DA0187FF18
984:103D700005C00E94041D81958093DA01111624F478
985:103D80000E94041D8093DB018091DB0187FF05C049
986:103D90000E94041D81958093DB01DF91CF911F91DB
987:103DA0000C942A1E9F3F09F08FCF97CFDF91CF91C0
988:103DB0001F910895E7EDF1E085E0DF011D928A95FE
989:103DC000E9F71092D6011092D5010895833081F160
990:103DD00028F4813059F08230D1F00895853009F40B
991:103DE00049C0B8F1863009F456C008958091150194
992:103DF000262F30E0280F311D2F3F310524F4680FA6
993:103E00006093150108958FEF8093150108958091B7
994:103E10001401262F30E0280F311D2F3F310524F4E7
995:103E2000680F6093140108958FEF80931401089533
996:103E300080911301262F30E0280F311D2F3F3105CF
997:103E400024F4680F6093130108958FEF809313019A
998:103E5000089580911201262F30E0280F311D2F3F49
999:103E6000310524F4680F6093120108958FEF809359
1000:103E70001201089580911101262F30E0280F311D85
1001:103E80002F3F310524F4680F6093110108958FEFDF
1002:103E900080931101089580911001262F30E0280FA2
1003:103EA000311D2F3F310524F4680F609310010895F0
1004:103EB0008FEF809310010895833011F128F4813041
1005:103EC00049F0823091F00895853081F120F18630FB
1006:103ED000C1F1089580911501681720F4861B809325
1007:103EE0001501089510921501089580911401681725
1008:103EF00020F4861B809314010895109214010895F4
1009:103F000080911301681720F4861B80931301089594
1010:103F100010921301089580911201681720F4861BF6
1011:103F20008093120108951092120108958091110159
1012:103F3000681720F4861B80931101089510921101D7
1013:103F4000089580911001681720F4861B809310015A
1014:103F500008951092100108950F931F938D3109F465
1015:103F60006AC008F03FC08E3009F484C0C0F48730C6
1016:103F700009F46DC068F4863009F0B5C08091CD01B8
1017:103F8000817F8E7F8093CD0181E08093DD01ACC085
1018:103F9000883009F457C08B3009F46AC0A4C0863158
1019:103FA00009F466C078F4803109F477C0813109F0F2
1020:103FB0009AC00E94BE1390910D0181E089278093E1
1021:103FC0000D0156C0893109F453C08B3109F08BC003
1022:103FD0008091CD0181FB222720F991E0922790FB6F
1023:103FE00081F951C0853309F475C048F4873209F46A
1024:103FF00071C008F45EC0893209F46CC074C08334A7
1025:1040000030F48A3308F053C0883391F16CC08334A4
1026:1040100009F460C0883409F066C00E94BE130FEF37
1027:1040200013ED20E3015010402040E1F700C00000F4
1028:104030000E94EC1A1DC00E9434210E943D0E0E9475
1029:10404000330716C00E94A01C0E94B21C11C09091A0
1030:10405000CD01892F8095817080FB90F929F09660C1
1031:1040600098609093CD0140C0997F977F9093CD0148
1032:1040700081E03AC08091CD0182FB222720F991E0B6
1033:10408000922790FB82F98093CD01992389F3809147
1034:10409000CD0181608093CD01EBCF8091CD0183FB79
1035:1040A000222720F991E0922790FB83F9ECCF8953E6
1036:1040B00001C08D5141E050E060E070E08A019B0159
1037:1040C00004C0000F111F221F331F8A95D2F7C901A8
1038:1040D000B80104C061E070E080E090E00E947A17CF
1039:1040E0000E94BE13C5CF80E01F910F91089580E01C
1040:1040F000089580E00895CF93C82F8091DD0181302D
1041:1041000079F018F08230E9F187C0E0910E01F0916A
1042:104110000F018081813169F0823209F07FC009C0CE
1043:10412000E0910E01F0910F018081813111F0823216
1044:1041300061F48C2F0E947720811104C08C2F0E9483
1045:10414000AC1F1DC081E090E01AC08C2F0E94792026
1046:10415000811114C0C43179F048F4CB3079F0C0310A
1047:1041600009F060C082E08093DD0108C0C93219F017
1048:10417000C83321F057C01092DD0154C081E0817036
1049:1041800053C0C93289F118F5C43171F1A8F4C730B0
1050:1041900009F046C08AE08093150194E190931401E0
1051:1041A00093E0909313018093120188E080931101B2
1052:1041B00088E28093100134C0CE51C63088F5EC2FD0
1053:1041C000F0E0E65DFE4F80818093DC0129C0CE34B3
1054:1041D000E9F020F4CB3421F56AE013C0C13579F061
1055:1041E000C235F1F461E00DC08091DC01882319F043
1056:1041F0001092DC0115C081E08093DD0115C061E003
1057:1042000006C08091DC010E94E61E0AC06AE080912F
1058:10421000DC010E945C1F04C01092DD0180E004C03C
1059:1042200081E002C080E0ABCFCF910895E1E8F0E0FB
1060:104230008081886080838081816080838FB7F894DB
1061:1042400093E09093890090ED909388008FBF08953C
1062:10425000EFE6F0E08081826080830895EFE6F0E091
1063:1042600080818D7F80830895EFE6F0E0908182E089
1064:104270008927808308951F920F920FB60F92112401
1065:104280002F933F934F935F936F937F938F939F935E
1066:10429000AF93BF93EF93FF938091DE019091DF0185
1067:1042A00001969093DF018093DE01811103C082E0CB
1068:1042B0000E943307E091DF01E695E695F0E0E657CE
1069:1042C000FB4FE4918091DE018E1303C080E00E94D9
1070:1042D0003307FF91EF91BF91AF919F918F917F91A4
1071:1042E0006F915F914F913F912F910F900FBE0F9063
1072:1042F0001F9018950E9481216894B1110C9410228E
1073:1043000008950E94F52188F09F5798F0B92F9927BA
1074:10431000B751B0F0E1F0660F771F881F991F1AF0B0
1075:10432000BA95C9F714C0B13091F00E940F22B1E0E4
1076:1043300008950C940F22672F782F8827B85F39F0E3
1077:10434000B93FCCF3869577956795B395D9F73EF449
1078:1043500090958095709561957F4F8F4F9F4F0895F1
1079:10436000E89409C097FB3EF490958095709561950F
1080:104370007F4F8F4F9F4F9923A9F0F92F96E9BB27C5
1081:104380009395F695879577956795B795F111F8CF41
1082:10439000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAC
1083:1043A0009F4F16C0882311F096E911C0772321F0A2
1084:1043B0009EE8872F762F05C0662371F096E8862F3A
1085:1043C00070E060E02AF09A95660F771F881FDAF791
1086:1043D000880F9695879597F9089557FD9058440F43
1087:1043E000551F59F05F3F71F04795880F97FB991F54
1088:1043F00061F09F3F79F08795089512161306140611
1089:10440000551FF2CF4695F1DF08C01616170618069D
1090:10441000991FF1CF86957105610508940895E89478
1091:10442000BB2766277727CB0197F908950E94292299
1092:104430000C949A220E948C2238F00E94932220F041
1093:10444000952311F00C9483220C94892211240C944E
1094:1044500010220E94ED2170F3959FC1F3950F50E05B
1095:10446000551F629FF001729FBB27F00DB11D639F26
1096:10447000AA27F00DB11DAA1F649F6627B00DA11DCC
1097:10448000661F829F2227B00DA11D621F739FB00D72
1098:10449000A11D621F839FA00D611D221F749F3327E2
1099:1044A000A00D611D231F849F600D211D822F762F7B
1100:1044B0006A2F11249F5750409AF0F1F088234AF058
1101:1044C000EE0FFF1FBB1F661F771F881F91505040C4
1102:1044D000A9F79E3F510580F00C9483220C94102282
1103:1044E0005F3FE4F3983ED4F3869577956795B7954B
1104:1044F000F795E7959F5FC1F7FE2B880F911D969565
1105:10450000879597F9089597F99F6780E870E060E0D4
1106:1045100008959FEF80EC089500240A94161617065C
1107:1045200018060906089500240A94121613061406A4
1108:1045300005060895092E0394000C11F4882352F007
1109:10454000BB0F40F4BF2B11F460FF04C06F5F7F4FBF
1110:104550008F4F9F4F089597FB072E16F4009407D0B6
1111:1045600077FD09D00E94C52207FC05D03EF4909546
1112:1045700081959F4F0895709561957F4F0895EE0F37
1113:10458000FF1F0590F491E02D0994AA1BBB1B51E17C
1114:1045900007C0AA1FBB1FA617B70710F0A61BB70BB3
1115:1045A000881F991F5A95A9F780959095BC01CD0158
1116:1045B0000895F999FECF92BD81BDF89A992780B5EB
1117:1045C0000895A8E1B0E042E050E00C94FC22262FD0
1118:1045D000F999FECF1FBA92BD81BD20BD0FB6F894E8
1119:1045E000FA9AF99A0FBE019608950E94E722272FA2
1120:1045F0000C94E822DC01CB01FC01F999FECF06C046
1121:10460000F2BDE1BDF89A319600B40D924150504090
1122:08461000B8F70895F894FFCFFC
1123:1046180020023507C307A0076C0738070101BA0154
1124:1046280028080A03140A3F4D36394B04FE03C80311
1125:104638008F0322033B0354036D03010203040506A1
1126:044648000708090056
1127:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png
new file mode 100644
index 000000000..6a36f9bfa
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png
new file mode 100644
index 000000000..c6e6d913c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png
new file mode 100644
index 000000000..23f56ff4c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c
new file mode 100644
index 000000000..82f55b4bc
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c
@@ -0,0 +1,185 @@
1#include "ergodox_ez.h"
2#include "debug.h"
3#include "action_layer.h"
4
5#define BASE 0 // default layer
6#define SYMB 1 // symbols
7#define MDIA 2 // media keys
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10/* Keymap 0: Basic layer
11 *
12 * ,--------------------------------------------------. ,--------------------------------------------------.
13 * | = | 1 | 2 | 3 | 4 | 5 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 |
14 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
15 * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / |
16 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
17 * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - |
18 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
19 * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
20 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
21 * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 |
22 * `----------------------------------' `----------------------------------'
23 * ,-------------. ,---------------.
24 * | App | L1 | | L2 |PrntScr |
25 * ,------|------|------| |------+--------+------.
26 * | | | Home | | PgUp | | |
27 * | Space| Tab |------| |------| AltShf |Enter |
28 * | | | End | | PgDn | | |
29 * `--------------------' `----------------------'
30 */
31// If it accepts an argument (i.e, is a function), it doesn't need KC_.
32// Otherwise, it needs KC_*
33[BASE] = KEYMAP( // layer 0 : default
34 // left hand
35 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK,
36 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT,
37 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
38 KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
39 LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT,
40 CTL_T(KC_APP), TG(1),
41 KC_HOME,
42 KC_SPC,KC_TAB,KC_END,
43 // right hand
44 KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS),
45 KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
46 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
47 MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
48 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
49 TG(2), KC_PSCREEN,
50 KC_PGUP,
51 KC_PGDN,RALT(KC_RSFT), KC_ENT
52 ),
53/* Keymap 1: Symbol & Media Layer
54 *
55 * ,--------------------------------------------------. ,--------------------------------------------------.
56 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
57 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
58 * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
59 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
60 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
62 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
63 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
64 * | | | | Prev | Next | | | . | 0 | = | |
65 * `----------------------------------' `----------------------------------'
66 * ,-------------. ,-------------.
67 * | | | | | |
68 * ,------|------|------| |------+------+------.
69 * | | | | |VolUp | | |
70 * | | |------| |------| Mute | |
71 * | | | | |VolDn | | |
72 * `--------------------' `--------------------'
73 */
74// SYMBOLS
75[SYMB] = KEYMAP(
76 // left hand
77 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
78 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
79 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
80 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
81 KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MNXT,
82 KC_TRNS,KC_TRNS,
83 KC_TRNS,
84 KC_TRNS,KC_TRNS,KC_TRNS,
85 // right hand
86 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
87 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
88 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
89 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
90 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
91 KC_TRNS, KC_TRNS,
92 KC_VOLU,
93 KC_VOLD, KC_MUTE, KC_TRNS
94),
95/* Keymap 2: QWERTY Layer
96 *
97 * ,--------------------------------------------------. ,--------------------------------------------------.
98 * | | | | | | | | | | | | | | | |
99 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
100 * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
101 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
102 * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
103 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
104 * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| |
105 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
106 * | | | | | | | | | | | |
107 * `----------------------------------' `----------------------------------'
108 * ,-------------. ,-------------.
109 * | | | | | |
110 * ,------|------|------| |------+------+------.
111 * | | | | | | | |
112 * | | |------| |------| | |
113 * | | | | | | | |
114 * `--------------------' `--------------------'
115 */
116// MEDIA AND MOUSE
117KEYMAP( // layer 0 : default
118 // left hand
119 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
120 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
121 KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
122 KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS,
123 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
124 KC_TRNS, KC_TRNS,
125 KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS,
127 // right hand
128 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
129 KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
130 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS,
131 KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_TRNS,
132 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
133 KC_TRNS, KC_TRNS,
134 KC_TRNS,
135 KC_TRNS, KC_TRNS, KC_TRNS
136 ),
137};
138
139const uint16_t PROGMEM fn_actions[] = {
140 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
141};
142
143const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
144{
145 // MACRODOWN only works in this function
146 switch(id) {
147 case 0:
148 if (record->event.pressed) {
149 register_code(KC_RSFT);
150 } else {
151 unregister_code(KC_RSFT);
152 }
153 break;
154 }
155 return MACRO_NONE;
156};
157
158// Runs just one time when the keyboard initializes.
159void matrix_init_user(void) {
160
161};
162
163// Runs constantly in the background, in a loop.
164void matrix_scan_user(void) {
165
166 uint8_t layer = biton32(layer_state);
167
168 ergodox_board_led_off();
169 ergodox_right_led_1_off();
170 ergodox_right_led_2_off();
171 ergodox_right_led_3_off();
172 switch (layer) {
173 // TODO: Make this relevant to the ErgoDox EZ.
174 case 1:
175 ergodox_right_led_1_on();
176 break;
177 case 2:
178 ergodox_right_led_2_on();
179 break;
180 default:
181 // none
182 break;
183 }
184
185};
diff --git a/keyboard/gh60/Makefile b/keyboard/gh60/Makefile
index daba0f644..4c8f9dc8a 100644
--- a/keyboard/gh60/Makefile
+++ b/keyboard/gh60/Makefile
@@ -53,9 +53,9 @@ SRC = keymap_common.c \
53 led.c 53 led.c
54 54
55ifdef KEYMAP 55ifdef KEYMAP
56 SRC := keymap_$(KEYMAP).c $(SRC) 56 SRC := keymaps/$(KEYMAP).c $(SRC)
57else 57else
58 SRC := keymap_poker.c $(SRC) 58 SRC := keymaps/poker.c $(SRC)
59endif 59endif
60 60
61CONFIG_H = config.h 61CONFIG_H = config.h
diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc
index 11bd3b784..8ed73a248 100644
--- a/keyboard/gh60/Makefile.pjrc
+++ b/keyboard/gh60/Makefile.pjrc
@@ -53,9 +53,9 @@ SRC = keymap_common.c \
53 led.c 53 led.c
54 54
55ifdef KEYMAP 55ifdef KEYMAP
56 SRC := keymap_$(KEYMAP).c $(SRC) 56 SRC := keymaps/$(KEYMAP).c $(SRC)
57else 57else
58 SRC := keymap_poker.c $(SRC) 58 SRC := keymaps/poker.c $(SRC)
59endif 59endif
60 60
61CONFIG_H = config.h 61CONFIG_H = config.h
diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md
index 510cb5c8b..41a757ea3 100644
--- a/keyboard/gh60/README.md
+++ b/keyboard/gh60/README.md
@@ -21,7 +21,7 @@ Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason t
21 21
22 22
23## Keymap 23## Keymap
24Several 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 `keymap_<name>.c` and see keymap document(you can find in top README.md) and existent keymap files. 24Several 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.
25 25
26To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like: 26To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like:
27 27
@@ -29,8 +29,8 @@ To build firmware binary hex file with a certain keymap just do `make` with `KEY
29 29
30 30
31### 1 Poker 31### 1 Poker
32[keymap_poker.c](keymap_poker.c) emulates original Poker layers 32[poker.c](keymaps/poker.c) emulates original Poker layers
33while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. 33while both [poker_bit.c](keymaps/poker_bit.c) and [poker_set.c](keymaps/poker_set.c) implement the same layout in different ways and they fix a minor issue of original Poker and enhance arrow keys.
34 34
35 Fn + Esc = ` 35 Fn + Esc = `
36 Fn + {left, down, up, right} = {home, pgdown, pgup, end} 36 Fn + {left, down, up, right} = {home, pgdown, pgup, end}
@@ -63,7 +63,7 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key
63 63
64### 2. Plain 64### 2. Plain
65Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. 65Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host.
66See [keymap_plain.c](keymap_plain.c) for detail. 66See [plain.c](keymaps/plain.c) for detail.
67 67
68#### 1.0 Plain Default layer 68#### 1.0 Plain Default layer
69 ,-----------------------------------------------------------. 69 ,-----------------------------------------------------------.
@@ -80,11 +80,11 @@ See [keymap_plain.c](keymap_plain.c) for detail.
80 80
81 81
82### 3. Hasu 82### 3. Hasu
83This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. 83This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [hasu.c](keymaps/hasu.c) for detail.
84 84
85 85
86### 4. SpaceFN 86### 4. SpaceFN
87This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). 87This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [spacefn.c](keymaps/spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0).
88 88
89#### 4.0 Default layer 89#### 4.0 Default layer
90 ,-----------------------------------------------------------. 90 ,-----------------------------------------------------------.
@@ -113,7 +113,7 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual
113 113
114 114
115### 5. HHKB 115### 5. HHKB
116[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. 116[hhkb.c](keymaps/hhkb.c) emulates original HHKB layers.
117#### 5.0: Default layer 117#### 5.0: Default layer
118 ,-----------------------------------------------------------. 118 ,-----------------------------------------------------------.
119 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| 119 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
diff --git a/keyboard/gh60/keymap_hasu.c b/keyboard/gh60/keymaps/hasu.c
index e6af28585..e6af28585 100644
--- a/keyboard/gh60/keymap_hasu.c
+++ b/keyboard/gh60/keymaps/hasu.c
diff --git a/keyboard/gh60/keymap_hhkb.c b/keyboard/gh60/keymaps/hhkb.c
index ce1b816ec..ce1b816ec 100644
--- a/keyboard/gh60/keymap_hhkb.c
+++ b/keyboard/gh60/keymaps/hhkb.c
diff --git a/keyboard/gh60/keymap_plain.c b/keyboard/gh60/keymaps/plain.c
index 3138c1807..3138c1807 100644
--- a/keyboard/gh60/keymap_plain.c
+++ b/keyboard/gh60/keymaps/plain.c
diff --git a/keyboard/gh60/keymap_poker.c b/keyboard/gh60/keymaps/poker.c
index 7a612ee44..7a612ee44 100644
--- a/keyboard/gh60/keymap_poker.c
+++ b/keyboard/gh60/keymaps/poker.c
diff --git a/keyboard/gh60/keymap_poker_bit.c b/keyboard/gh60/keymaps/poker_bit.c
index b8870fdd8..b8870fdd8 100644
--- a/keyboard/gh60/keymap_poker_bit.c
+++ b/keyboard/gh60/keymaps/poker_bit.c
diff --git a/keyboard/gh60/keymap_poker_set.c b/keyboard/gh60/keymaps/poker_set.c
index aaa31fc57..aaa31fc57 100644
--- a/keyboard/gh60/keymap_poker_set.c
+++ b/keyboard/gh60/keymaps/poker_set.c
diff --git a/keyboard/gh60/keymap_spacefn.c b/keyboard/gh60/keymaps/spacefn.c
index 8077dcee7..8077dcee7 100644
--- a/keyboard/gh60/keymap_spacefn.c
+++ b/keyboard/gh60/keymaps/spacefn.c
diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile
index 5a179bd24..d434246ce 100644
--- a/keyboard/hhkb/Makefile
+++ b/keyboard/hhkb/Makefile
@@ -129,17 +129,17 @@ NKRO_ENABLE = yes # USB Nkey Rollover
129# Keymap file 129# Keymap file
130# 130#
131ifdef KEYMAP 131ifdef KEYMAP
132 SRC := keymap_$(KEYMAP).c $(SRC) 132 SRC := keymaps/$(KEYMAP).c $(SRC)
133else 133else
134 ifdef HHKB_JP 134 ifdef HHKB_JP
135 SRC := keymap_jp.c $(SRC) 135 SRC := keymaps/jp.c $(SRC)
136 else 136 else
137 SRC := keymap_hhkb.c $(SRC) 137 SRC := keymaps/hhkb.c $(SRC)
138 endif 138 endif
139endif 139endif
140 140
141 141
142ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) 142ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP))))
143 OPT_DEFS += -DHHKB_JP 143 OPT_DEFS += -DHHKB_JP
144endif 144endif
145 145
diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc
index 7d0f8c3a9..403a8ec60 100644
--- a/keyboard/hhkb/Makefile.pjrc
+++ b/keyboard/hhkb/Makefile.pjrc
@@ -18,9 +18,9 @@ SRC = keymap_common.c \
18 led.c 18 led.c
19 19
20ifdef KEYMAP 20ifdef KEYMAP
21 SRC := keymap_$(KEYMAP).c $(SRC) 21 SRC := keymaps/$(KEYMAP).c $(SRC)
22else 22else
23 SRC := keymap_hasu.c $(SRC) 23 SRC := keymaps/hasu.c $(SRC)
24endif 24endif
25 25
26CONFIG_H = config.h 26CONFIG_H = config.h
diff --git a/keyboard/hhkb/Makefile.rn42 b/keyboard/hhkb/Makefile.rn42
index cbb2b744c..a730442af 100644
--- a/keyboard/hhkb/Makefile.rn42
+++ b/keyboard/hhkb/Makefile.rn42
@@ -122,17 +122,17 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
122# Keymap file 122# Keymap file
123# 123#
124ifdef KEYMAP 124ifdef KEYMAP
125 SRC := keymap_$(KEYMAP).c $(SRC) 125 SRC := keymaps/$(KEYMAP).c $(SRC)
126else 126else
127 ifdef HHKB_JP 127 ifdef HHKB_JP
128 SRC := keymap_jp.c $(SRC) 128 SRC := keymaps/jp.c $(SRC)
129 else 129 else
130 SRC := keymap_hhkb.c $(SRC) 130 SRC := keymaps/hhkb.c $(SRC)
131 endif 131 endif
132endif 132endif
133 133
134 134
135ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) 135ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP))))
136 OPT_DEFS += -DHHKB_JP 136 OPT_DEFS += -DHHKB_JP
137endif 137endif
138 138
diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md
index fcd72e194..e20c23d82 100644
--- a/keyboard/hhkb/README.md
+++ b/keyboard/hhkb/README.md
@@ -76,7 +76,7 @@ Use [Teensy Loader] if your controller is Teensy/Teensy++.
76 76
77 77
78##Keymap 78##Keymap
79To define your own keymap create file named `keymap_<name>.c` and see [keymap document](../../doc/keymap.md) and existent keymap files. 79To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
80 80
81 81
82##Hardware 82##Hardware
diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymaps/hasu.c
index a5602ded3..a5602ded3 100644
--- a/keyboard/hhkb/keymap_hasu.c
+++ b/keyboard/hhkb/keymaps/hasu.c
diff --git a/keyboard/hhkb/keymap_hhkb.c b/keyboard/hhkb/keymaps/hhkb.c
index 86ad0f5ee..86ad0f5ee 100644
--- a/keyboard/hhkb/keymap_hhkb.c
+++ b/keyboard/hhkb/keymaps/hhkb.c
diff --git a/keyboard/hhkb/keymap_jp.c b/keyboard/hhkb/keymaps/jp.c
index 48d0ee70b..48d0ee70b 100644
--- a/keyboard/hhkb/keymap_jp.c
+++ b/keyboard/hhkb/keymaps/jp.c
diff --git a/keyboard/hhkb/keymap_spacefn.c b/keyboard/hhkb/keymaps/spacefn.c
index deff920ae..deff920ae 100644
--- a/keyboard/hhkb/keymap_spacefn.c
+++ b/keyboard/hhkb/keymaps/spacefn.c
diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile
index 8bd44100b..21ba261a2 100644
--- a/keyboard/hhkb_qmk/Makefile
+++ b/keyboard/hhkb_qmk/Makefile
@@ -54,9 +54,9 @@ SRC = hhkb_qmk.c \
54 matrix.c 54 matrix.c
55 55
56ifdef KEYMAP 56ifdef KEYMAP
57 SRC := keymaps/keymap_$(KEYMAP).c $(SRC) 57 SRC := keymaps/keymaps/$(KEYMAP).c $(SRC)
58else 58else
59 SRC := keymaps/keymap_default.c $(SRC) 59 SRC := keymaps/keymaps/default.c $(SRC)
60endif 60endif
61 61
62CONFIG_H = config.h 62CONFIG_H = config.h
diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md
index 606025c41..389407b3a 100644
--- a/keyboard/hhkb_qmk/README.md
+++ b/keyboard/hhkb_qmk/README.md
@@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight
171To build with the default keymap, simply run `make`. 171To build with the default keymap, simply run `make`.
172 172
173### Other Keymaps 173### Other Keymaps
174Several 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 `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. 174Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
175 175
176To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: 176To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
177``` 177```
178$ make KEYMAP=[default|jack|<name>] 178$ make KEYMAP=[default|jack|<name>]
179``` 179```
180Keymaps follow the format **__keymap\_\<name\>.c__** and are stored in the `keymaps` folder. 180Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/default.c
index bcd8ead37..bcd8ead37 100644
--- a/keyboard/hhkb_qmk/keymaps/keymap_default.c
+++ b/keyboard/hhkb_qmk/keymaps/default.c
diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/lxol.c
index 3256fda51..3256fda51 100644
--- a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c
+++ b/keyboard/hhkb_qmk/keymaps/lxol.c
diff --git a/keyboard/jd45/Makefile b/keyboard/jd45/Makefile
index 076dced82..f6a8d10c5 100644
--- a/keyboard/jd45/Makefile
+++ b/keyboard/jd45/Makefile
@@ -54,9 +54,9 @@ SRC = jd45.c \
54 backlight.c 54 backlight.c
55 55
56ifdef KEYMAP 56ifdef KEYMAP
57 SRC := keymaps/keymap_$(KEYMAP).c $(SRC) 57 SRC := keymaps/keymaps/(KEYMAP).c $(SRC)
58else 58else
59 SRC := keymaps/keymap_default.c $(SRC) 59 SRC := keymaps/keymaps/default.c $(SRC)
60endif 60endif
61 61
62CONFIG_H = config.h 62CONFIG_H = config.h
diff --git a/keyboard/jd45/keymaps/keymap_default.c b/keyboard/jd45/keymaps/default.c
index 05dd46e79..05dd46e79 100644
--- a/keyboard/jd45/keymaps/keymap_default.c
+++ b/keyboard/jd45/keymaps/default.c
diff --git a/keyboard/jd45/keymaps/keymap_justin.c b/keyboard/jd45/keymaps/justin.c
index f261b5463..f261b5463 100644
--- a/keyboard/jd45/keymaps/keymap_justin.c
+++ b/keyboard/jd45/keymaps/justin.c
diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile
index 307b0c7f4..03d260176 100644
--- a/keyboard/planck/Makefile
+++ b/keyboard/planck/Makefile
@@ -143,7 +143,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
143# AUDIO_ENABLE = YES # Audio output on port C6 143# AUDIO_ENABLE = YES # Audio output on port C6
144# UNICODE_ENABLE = YES # Unicode 144# UNICODE_ENABLE = YES # Unicode
145# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID 145# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
146# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. 146# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
147 147
148ifdef BACKLIGHT_ENABLE 148ifdef BACKLIGHT_ENABLE
149 SRC += backlight.c 149 SRC += backlight.c
diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md
index 3ba0cc152..d9a1e3bee 100644
--- a/keyboard/planck/README.md
+++ b/keyboard/planck/README.md
@@ -16,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight
16To build with the default keymap, simply run `make`. 16To build with the default keymap, simply run `make`.
17 17
18### Other Keymaps 18### Other Keymaps
19Several 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. 19Several 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.
20 20
21To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: 21To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
22``` 22```
23$ make KEYMAP=[default|jack|<name>] 23$ make KEYMAP=[default|jack|<name>]
24``` 24```
25Keymaps follow the format **__<name\>.c__** and are stored in the `keymaps` folder. 25Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
26 26
27### Notable forks (which some of the keymap files are from) 27### Notable forks (which some of the keymap files are from)
28- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) 28- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
index d995eb9e5..988deee99 100644
--- a/keyboard/planck/keymaps/default/keymap.c
+++ b/keyboard/planck/keymaps/default/keymap.c
@@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 * ,-----------------------------------------------------------------------------------. 76 * ,-----------------------------------------------------------------------------------.
77 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | 77 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
78 * |------+------+------+------+------+-------------+------+------+------+------+------| 78 * |------+------+------+------+------+-------------+------+------+------+------+------|
79 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | 79 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
80 * |------+------+------+------+------+------|------+------+------+------+------+------| 80 * |------+------+------+------+------+------|------+------+------+------+------+------|
81 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | 81 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
82 * |------+------+------+------+------+------+------+------+------+------+------+------| 82 * |------+------+------+------+------+------+------+------+------+------+------+------|
@@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
94 * ,-----------------------------------------------------------------------------------. 94 * ,-----------------------------------------------------------------------------------.
95 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | 95 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
96 * |------+------+------+------+------+-------------+------+------+------+------+------| 96 * |------+------+------+------+------+-------------+------+------+------+------+------|
97 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | 97 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
98 * |------+------+------+------+------+------|------+------+------+------+------+------| 98 * |------+------+------+------+------+------|------+------+------+------+------+------|
99 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | 99 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter |
100 * |------+------+------+------+------+------+------+------+------+------+------+------| 100 * |------+------+------+------+------+------+------+------+------+------+------+------|
diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c
new file mode 100644
index 000000000..c49af7d0e
--- /dev/null
+++ b/keyboard/planck/keymaps/tak3over.c
@@ -0,0 +1,136 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3//
4// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over
5// keys to make room for a second function key on the left side. Now has a keypad and most all
6// standard keyboard keys. Including Delete. See TK layer.
7
8#include "planck.h"
9#ifdef BACKLIGHT_ENABLE
10 #include "backlight.h"
11#endif
12
13// Each layer gets a name for readability, which is then used in the keymap matrix below.
14// The underscores don't mean anything - you can have a layer called STUFF or any other name.
15// Layer names don't all need to be of the same length, obviously, and you can also skip them
16// entirely and just use numbers.
17#define _QW 0
18#define _CM 1
19#define _TK 2
20#define _LW 3
21#define _RS 4
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25/* Qwerty
26 * ,-----------------------------------------------------------------------------------.
27 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
28 * |------+------+------+------+------+-------------+------+------+------+------+------|
29 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
30 * |------+------+------+------+------+------|------+------+------+------+------+------|
31 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
32 * |------+------+------+------+------+------+------+------+------+------+------+------|
33 * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
34 * `-----------------------------------------------------------------------------------'
35 */
36[_QW] = {
37 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
38 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
39 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
40 {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
41},
42
43/* Colemak
44 * ,-----------------------------------------------------------------------------------.
45 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
46 * |------+------+------+------+------+-------------+------+------+------+------+------|
47 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
48 * |------+------+------+------+------+------|------+------+------+------+------+------|
49 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
50 * |------+------+------+------+------+------+------+------+------+------+------+------|
51 * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
52 * `-----------------------------------------------------------------------------------'
53 */
54[_CM] = {
55 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
56 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
57 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
58 {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
59},
60
61/* TenKey, Arrow, and Function key Layer
62 * ,-----------------------------------------------------------------------------------.
63 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
64 * |------+------+------+------+------+-------------+------+------+------+------+------|
65 * | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / |
66 * |------+------+------+------+------+------|------+------+------+------+------+------|
67 * | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter |
68 * |------+------+------+------+------+------+------+------+------+------+------+------|
69 * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
70 * `-----------------------------------------------------------------------------------'
71 */
72[_TK] = {
73 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
74 {KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH},
75 {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT },
76 {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
77},
78
79/* Raise
80 * ,-----------------------------------------------------------------------------------.
81 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
82 * |------+------+------+------+------+-------------+------+------+------+------+------|
83 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
84 * |------+------+------+------+------+------|------+------+------+------+------+------|
85 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter |
86 * |------+------+------+------+------+------+------+------+------+------+------+------|
87 * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
88 * `-----------------------------------------------------------------------------------'
89 */
90[_RS] = {
91 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
92 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
93 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS},
94 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
95},
96
97/* Lower
98 * ,-----------------------------------------------------------------------------------.
99 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
100 * |------+------+------+------+------+-------------+------+------+------+------+------|
101 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
102 * |------+------+------+------+------+------|------+------+------+------+------+------|
103 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter |
104 * |------+------+------+------+------+------+------+------+------+------+------+------|
105 * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
106 * `-----------------------------------------------------------------------------------'
107 */
108[_LW] = {
109 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
110 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
111 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS},
112 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
113}
114};
115
116const uint16_t PROGMEM fn_actions[] = {
117
118};
119
120const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
121{
122 // MACRODOWN only works in this function
123 switch(id) {
124 case 0:
125 if (record->event.pressed) {
126 register_code(KC_RSFT);
127 #ifdef BACKLIGHT_ENABLE
128 backlight_step();
129 #endif
130 } else {
131 unregister_code(KC_RSFT);
132 }
133 break;
134 }
135 return MACRO_NONE;
136};
diff --git a/keyboard/planck/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c
index f7df7bbba..f7df7bbba 100644
--- a/keyboard/planck/common_keymaps/keymap_mitch.c
+++ b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c
diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile
index 0145e44bc..89c48e50a 100644
--- a/keyboard/preonic/Makefile
+++ b/keyboard/preonic/Makefile
@@ -27,7 +27,7 @@
27# make flip-ee = Download the eeprom file to the device, using Atmel FLIP 27# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
28# (must have Atmel FLIP installed). 28# (must have Atmel FLIP installed).
29# 29#
30# make debug = Start either simulavr or avarice as specified for debugging, 30# make debug = Start either simulavr or avarice as specified for debugging,
31# with avr-gdb or avr-insight as the front end for debugging. 31# with avr-gdb or avr-insight as the front end for debugging.
32# 32#
33# make filename.s = Just compile filename.c into the assembler code only. 33# make filename.s = Just compile filename.c into the assembler code only.
@@ -39,25 +39,41 @@
39#---------------------------------------------------------------------------- 39#----------------------------------------------------------------------------
40 40
41# Target file name (without extension). 41# Target file name (without extension).
42TARGET = preonic_lufa 42TARGET = preonic
43
43 44
44# Directory common source filess exist 45# Directory common source filess exist
45TOP_DIR = ../.. 46TOP_DIR = ../..
47TMK_DIR = ../../tmk_core
46 48
47# Directory keyboard dependent files exist 49# Directory keyboard dependent files exist
48TARGET_DIR = . 50TARGET_DIR = .
49 51
50# # project specific files 52# # project specific files
51SRC = extended_keymap_common.c \ 53SRC = preonic.c
52 matrix.c \ 54
53 led.c \ 55ifdef keymap
54 backlight.c 56 KEYMAP = $(keymap)
57endif
55 58
56ifdef KEYMAP 59ifdef KEYMAP
57 SRC := extended_keymaps/extended_keymap_$(KEYMAP).c $(SRC) 60ifneq ("$(wildcard keymaps/$(KEYMAP).c)","")
61 KEYMAP_FILE = keymaps/$(KEYMAP).c
58else 62else
59 SRC := extended_keymaps/extended_keymap_default.c $(SRC) 63ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","")
64 KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c
65else
66$(error Keymap file does not exist)
67endif
60endif 68endif
69else
70ifneq ("$(wildcard keymaps/default.c)","")
71 KEYMAP_FILE = keymaps/default.c
72else
73 KEYMAP_FILE = keymaps/default/keymap.c
74endif
75endif
76SRC := $(KEYMAP_FILE) $(SRC)
61 77
62CONFIG_H = config.h 78CONFIG_H = config.h
63 79
@@ -120,24 +136,26 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
120CONSOLE_ENABLE = yes # Console for debug(+400) 136CONSOLE_ENABLE = yes # Console for debug(+400)
121COMMAND_ENABLE = yes # Commands for debug and configuration 137COMMAND_ENABLE = yes # Commands for debug and configuration
122# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 138# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
123#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 139# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
124NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA 140# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
125BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 141BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
126MIDI_ENABLE = yes # MIDI controls 142# MIDI_ENABLE = YES # MIDI controls
127BACKLIGHT_ENABLE = yes 143# AUDIO_ENABLE = YES # Audio output on port C6
128 144# UNICODE_ENABLE = YES # Unicode
129ifdef MIDI_ENABLE 145# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
130 SRC += keymap_midi.c \ 146# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time.
131 beeps.c 147
148ifdef BACKLIGHT_ENABLE
149 SRC += backlight.c
132endif 150endif
133 151
152
134# Optimize size but this may cause error "relocation truncated to fit" 153# Optimize size but this may cause error "relocation truncated to fit"
135#EXTRALDFLAGS = -Wl,--relax 154#EXTRALDFLAGS = -Wl,--relax
136 155
137# Search Path 156# Search Path
138VPATH += $(TARGET_DIR) 157VPATH += $(TARGET_DIR)
139VPATH += $(TOP_DIR) 158VPATH += $(TOP_DIR)
159VPATH += $(TMK_DIR)
140 160
141include $(TOP_DIR)/protocol/lufa.mk 161include $(TOP_DIR)/quantum/quantum.mk
142include $(TOP_DIR)/common.mk
143include $(TOP_DIR)/rules.mk
diff --git a/keyboard/preonic/Makefile.pjrc b/keyboard/preonic/Makefile.pjrc
deleted file mode 100644
index be83ba18b..000000000
--- a/keyboard/preonic/Makefile.pjrc
+++ /dev/null
@@ -1,116 +0,0 @@
1#----------------------------------------------------------------------------
2# On command line:
3#
4# make all = Make software.
5#
6# make clean = Clean out built project files.
7#
8# make coff = Convert ELF to AVR COFF.
9#
10# make extcoff = Convert ELF to AVR Extended COFF.
11#
12# make program = Download the hex file to the device.
13# Please customize your programmer settings(PROGRAM_CMD)
14#
15# make teensy = Download the hex file to the device, using teensy_loader_cli.
16# (must have teensy_loader_cli installed).
17#
18# make dfu = Download the hex file to the device, using dfu-programmer (must
19# have dfu-programmer installed).
20#
21# make flip = Download the hex file to the device, using Atmel FLIP (must
22# have Atmel FLIP installed).
23#
24# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
25# (must have dfu-programmer installed).
26#
27# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
28# (must have Atmel FLIP installed).
29#
30# make debug = Start either simulavr or avarice as specified for debugging,
31# with avr-gdb or avr-insight as the front end for debugging.
32#
33# make filename.s = Just compile filename.c into the assembler code only.
34#
35# make filename.i = Create a preprocessed source file for use in submitting
36# bug reports to the GCC project.
37#
38# To rebuild project do "make clean" then "make all".
39#----------------------------------------------------------------------------
40
41# Target file name (without extension).
42TARGET = gh60_pjrc
43
44# Directory common source filess exist
45TOP_DIR = ../..
46
47# Directory keyboard dependent files exist
48TARGET_DIR = .
49
50# project specific files
51SRC = keymap_common.c \
52 matrix.c \
53 led.c
54
55ifdef KEYMAP
56 SRC := keymap_$(KEYMAP).c $(SRC)
57else
58 SRC := keymap_jack.c $(SRC)
59endif
60
61CONFIG_H = config.h
62
63
64# MCU name, you MUST set this to match the board you are using
65# type "make clean" after changing this, so all files will be rebuilt
66MCU = atmega32u4
67#MCU = at90usb1286
68
69
70# Processor frequency.
71# Normally the first thing your program should do is set the clock prescaler,
72# so your program will run at the correct speed. You should also set this
73# variable to same clock speed. The _delay_ms() macro uses this, and many
74# examples use this variable to calculate timings. Do not add a "UL" here.
75F_CPU = 16000000
76
77
78# Boot Section Size in *bytes*
79# Teensy halfKay 512
80# Atmel DFU loader 4096
81# LUFA bootloader 4096
82OPT_DEFS += -DBOOTLOADER_SIZE=4096
83
84
85# Build Options
86# comment out to disable the options.
87#
88BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
89MOUSEKEY_ENABLE = yes # Mouse keys(+5000)
90EXTRAKEY_ENABLE = yes # Audio control and System control(+600)
91CONSOLE_ENABLE = yes # Console for debug
92COMMAND_ENABLE = yes # Commands for debug and configuration
93SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
94NKRO_ENABLE = yes # USB Nkey Rollover(+500)
95#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
96
97
98# Search Path
99VPATH += $(TARGET_DIR)
100VPATH += $(TOP_DIR)
101
102include $(TOP_DIR)/protocol/pjrc.mk
103include $(TOP_DIR)/common.mk
104include $(TOP_DIR)/rules.mk
105
106plain: OPT_DEFS += -DKEYMAP_PLAIN
107plain: all
108
109poker: OPT_DEFS += -DKEYMAP_POKER
110poker: all
111
112poker_set: OPT_DEFS += -DKEYMAP_POKER_SET
113poker_set: all
114
115poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT
116poker_bit: all
diff --git a/keyboard/preonic/PCB_GUIDE.md b/keyboard/preonic/PCB_GUIDE.md
deleted file mode 100644
index c3004c75a..000000000
--- a/keyboard/preonic/PCB_GUIDE.md
+++ /dev/null
@@ -1,116 +0,0 @@
1# Planck Firmware Guide
2
3## Setting up the environment
4
5### Windows
61. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler.
72. Install [DFU-Programmer][dfu-prog] (the -win one).
83. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver.
9
10### Mac
111. Install [CrossPack](http://www.obdev.at/products/crosspack/index.html) or install Xcode from the App Store and install the Command Line Tools from `Xcode->Preferences->Downloads`.
122. Install [DFU-Programmer][dfu-prog].
13
14### Linux
151. Install AVR GCC with your favorite package manager.
162. Install [DFU-Programmer][dfu-prog].
17
18##Verify Your Installation
191. Clone the following repository: https://github.com/jackhumbert/tmk_keyboard
202. Open a Terminal and `cd` into `tmk_keyboard/keyboard/planck`
213. Run `make`. This should output a lot of information about the build process.
22
23## Using the built-in functions
24
25Here is a list of some of the functions available from the command line:
26
27* `make clean`: clean the environment - may be required in-between builds
28* `make`: compile the code
29* `make COMMON=true`: compile with the common (non-extended) keymap
30* `make MATRIX=<matrix_file>`: compile with the referenced matrix file. Default if unspecified is `matrix_pcb.c`. For handwired boards, use `matrix_handwired.c`.
31* `make KEYMAP=<keymap>`: compile with the extended keymap file `extended_keymaps/extended_keymap_<keymap>.c`
32* `make COMMON=true KEYMAP=<keymap>`: compile with the common keymap file `common_keymaps/keymap_<keymap>.c`
33* `make dfu`: build and flash the layout to the PCB
34* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash)
35
36Generally, the instructions to flash the PCB are as follows:
37
381. Make changes to the appropriate keymap file
392. Save the file
403. `make clean`
414. Press the reset button on the PCB/press the key with the `RESET` keycode
425. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
43
44## Extended keymap
45
46### Keymap
47
48Unlike the common keymap, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/planck/extended_keymap_common.h).
49
50You can use modifiers with keycodes like this:
51
52 LCTL(KC_C)
53
54Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like:
55
56 LCTL(LALT(KC_C))
57
58That will generate Ctrl+Alt+c. The entire list of these functions is here:
59
60* `LCTL()`: Left control
61* `LSFT()` / `S()`: Left shift
62* `LALT()`: Left alt/opt
63* `LGUI()`: Left win/cmd
64* `RCTL()`: Right control
65* `RSFT()`: Right shift
66* `RALT()`: Right alt/opt
67* `RGUI()`: Right win/cmd
68
69`S(KC_1)`-like entries are useful in writing keymaps for the Planck.
70
71### Other keycodes
72
73A number of other keycodes have been added that you may find useful:
74
75* `CM_<key>`: the Colemak equivalent of a key (in place of `KC_<key>`), when using Colemak in software (`CM_O` generates `KC_SCLN`)
76* `RESET`: jump to bootloader for flashing (same as press the reset button)
77* `BL_STEP`: step through the backlight brightnesses
78* `BL_<0-15>`: set backlight brightness to 0-15
79* `BL_DEC`: lower the backlight brightness
80* `BL_INC`: raise the backlight brightness
81* `BL_TOGG`: toggle the backlight on/off
82
83### Function layers
84
85The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN<num>` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC(<num>)` notation. `F(<num>)` is a shortcut for this.
86
87The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action).
88
89### Macros
90
91Macros have been setup in the `extended_keymaps/extended_keymaps_default.c` file so that you can use `M(<num>)` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`):
92
93 switch(id) {
94 case 0:
95 return MACRODOWN(TYPE(KC_A), END);
96 break;
97 case 1:
98 return MACRODOWN(TYPE(KC_B), END);
99 break;
100 case 2:
101 return MACRODOWN(TYPE(KC_C), END);
102 break;
103 case 3:
104 return MACRODOWN(TYPE(KC_D), END);
105 break;
106 }
107 return MACRO_NONE;
108
109`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke.
110
111[cygwin]: https://www.cygwin.com/
112[mingw]: http://www.mingw.org/
113[mhv]: https://infernoembedded.com/products/avr-tools
114[winavr]: http://winavr.sourceforge.net/
115[crosspack]: http://www.obdev.at/products/crosspack/index.html
116[dfu-prog]: http://dfu-programmer.sourceforge.net/
diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md
index ee824d26e..4a33a3e4e 100644
--- a/keyboard/preonic/README.md
+++ b/keyboard/preonic/README.md
@@ -1,56 +1,25 @@
1Planck keyboard firmware 1Preonic keyboard firmware
2====================== 2======================
3DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). 3DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com).
4 4
5## Extended Keymap 5## Quantum MK Firmware
6If you include extended_keymap_common.h instead of keymap_common.h at the top of your file, you'll have access to a bunch of goodies:
7 6
8- Use `LSFT()`, `LCTL()`, et. al. (listed in extended_keymap_common.h) as modifiers for keys (daisy-chain-able) 7For the full Quantum feature list, see [the parent README.md](/README.md).
9- Use `FUNC(1)` instead of `FN1` (etc.) to access the function layers beyond the 32 function layer limit
10- Use `CM_F` instead of `KC_F` to get the ColeMak equivilent for shortcuts (maps backwards)
11- Use `MACRODOWN()` instead of `MACRO()` to easily make a keydown macro (`CM_*` works here too)
12 8
13### Some notes on usage: 9## Building
14 10
15- The `KEYMAP()` macro is unable to be used due to the bitwise modifications that take place - refer to extended_keymap_jack.c to see how to set things up with the `KC_` prefix 11Download or clone the whole firmware and navigate to the keyboard/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
16- Keep an eye on the Makefile - this needs to include the correct files to work
17- Don't forget to use `const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {` instead of the 8bit equivilent
18
19## Build
20
21Follow [this guide](http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) to setup your development environment before anything else. Abbreviated instructions are provide at the [bottom of this document](https://github.com/rswiernik/tmk_keyboard/tree/rswiernik_dev/keyboard/planck#environment-setup)
22
23Download the whole firmware [here](https://github.com/jackhumbert/tmk_keyboard/archive/master.zip) and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex that you can load with the Teensy app onto your Planck (once you've hit reset/shorted GND & RST).
24 12
25Depending on which keymap you would like to use, you will have to compile slightly differently. 13Depending on which keymap you would like to use, you will have to compile slightly differently.
26 14
27####Default 15### Default
28To build with the default keymap, simply move to the tmk\_keyboard/keyboard/planck/ and run `make` as follows: 16To build with the default keymap, simply run `make`.
29```
30$ make
31```
32
33## Keymap
34Several 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 `keymap_<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
35
36####**Extended Keymaps**
37 17
38To build the firmware binary hex file with an extended keymap just do `make` with `KEYMAP` option like: 18### Other Keymaps
39``` 19Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
40$ make KEYMAP=[common|jack|<name>]
41```
42_The only applicable keymaps will work with this option._ Extended keymaps follow the format **__extended\_keymap\_\<name\>.c__**
43 20
44####**Common Keymaps** 21To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
45
46Building with a common keymap is as simple as adding the COMMON option. Note that only
47``` 22```
48$ make KEYMAP=[common|jack|<name>] COMMON=true 23$ make KEYMAP=[default|jack|<name>]
49``` 24```
50_The only applicable keymaps will work with this option._ Common keymaps follow the format **__keymap\_\<name\>.c__** 25Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
51
52## Notable TMK forks (which some of the keymap files are from)
53- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
54- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c)
55- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck)
56- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid)
diff --git a/keyboard/preonic/__avr_gdbinit b/keyboard/preonic/__avr_gdbinit
deleted file mode 100644
index afc51e6d1..000000000
--- a/keyboard/preonic/__avr_gdbinit
+++ /dev/null
@@ -1,6 +0,0 @@
1define reset
2SIGNAL SIGHUP
3end
4file planck_lufa.elf
5target remote localhost:4242
6break main
diff --git a/keyboard/preonic/analog.c b/keyboard/preonic/analog.c
deleted file mode 100644
index 49b84ee0e..000000000
--- a/keyboard/preonic/analog.c
+++ /dev/null
@@ -1,53 +0,0 @@
1// Simple analog to digitial conversion
2
3#include <avr/io.h>
4#include <avr/pgmspace.h>
5#include <stdint.h>
6#include "analog.h"
7
8
9static uint8_t aref = (1<<REFS0); // default to AREF = Vcc
10
11
12void analogReference(uint8_t mode)
13{
14 aref = mode & 0xC0;
15}
16
17
18// Arduino compatible pin input
19int16_t analogRead(uint8_t pin)
20{
21#if defined(__AVR_ATmega32U4__)
22 static const uint8_t PROGMEM pin_to_mux[] = {
23 0x00, 0x01, 0x04, 0x05, 0x06, 0x07,
24 0x25, 0x24, 0x23, 0x22, 0x21, 0x20};
25 if (pin >= 12) return 0;
26 return adc_read(pgm_read_byte(pin_to_mux + pin));
27#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
28 if (pin >= 8) return 0;
29 return adc_read(pin);
30#else
31 return 0;
32#endif
33}
34
35// Mux input
36int16_t adc_read(uint8_t mux)
37{
38#if defined(__AVR_AT90USB162__)
39 return 0;
40#else
41 uint8_t low;
42
43 ADCSRA = (1<<ADEN) | ADC_PRESCALER; // enable ADC
44 ADCSRB = (1<<ADHSM) | (mux & 0x20); // high speed mode
45 ADMUX = aref | (mux & 0x1F); // configure mux input
46 ADCSRA = (1<<ADEN) | ADC_PRESCALER | (1<<ADSC); // start the conversion
47 while (ADCSRA & (1<<ADSC)) ; // wait for result
48 low = ADCL; // must read LSB first
49 return (ADCH << 8) | low; // must read MSB only once!
50#endif
51}
52
53
diff --git a/keyboard/preonic/analog.h b/keyboard/preonic/analog.h
deleted file mode 100644
index 9b95a93be..000000000
--- a/keyboard/preonic/analog.h
+++ /dev/null
@@ -1,36 +0,0 @@
1#ifndef _analog_h_included__
2#define _analog_h_included__
3
4#include <stdint.h>
5
6void analogReference(uint8_t mode);
7int16_t analogRead(uint8_t pin);
8int16_t adc_read(uint8_t mux);
9
10#define ADC_REF_POWER (1<<REFS0)
11#define ADC_REF_INTERNAL ((1<<REFS1) | (1<<REFS0))
12#define ADC_REF_EXTERNAL (0)
13
14// These prescaler values are for high speed mode, ADHSM = 1
15#if F_CPU == 16000000L
16#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS1))
17#elif F_CPU == 8000000L
18#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS0))
19#elif F_CPU == 4000000L
20#define ADC_PRESCALER ((1<<ADPS2))
21#elif F_CPU == 2000000L
22#define ADC_PRESCALER ((1<<ADPS1) | (1<<ADPS0))
23#elif F_CPU == 1000000L
24#define ADC_PRESCALER ((1<<ADPS1))
25#else
26#define ADC_PRESCALER ((1<<ADPS0))
27#endif
28
29// some avr-libc versions do not properly define ADHSM
30#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
31#if !defined(ADHSM)
32#define ADHSM (7)
33#endif
34#endif
35
36#endif
diff --git a/keyboard/preonic/beeps.c b/keyboard/preonic/beeps.c
deleted file mode 100644
index 8ffd70f41..000000000
--- a/keyboard/preonic/beeps.c
+++ /dev/null
@@ -1,246 +0,0 @@
1#include "beeps.h"
2#include <math.h>
3#include <avr/pgmspace.h>
4#include <avr/interrupt.h>
5#include <avr/io.h>
6
7#define PI 3.14159265
8
9void delay_us(int count) {
10 while(count--) {
11 _delay_us(1);
12 }
13}
14
15int voices = 0;
16double frequency = 0;
17int volume = 0;
18int position = 0;
19
20double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0};
21int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0};
22bool sliding = false;
23#define RANGE 1000
24volatile int i=0; //elements of the wave
25
26
27void beeps() {
28 play_notes();
29}
30
31void send_freq(double freq, int vol) {
32 int duty = (((double)F_CPU) / freq);
33 ICR3 = duty; // Set max to the period
34 OCR3A = duty >> (0x10 - vol); // Set compare to half the period
35}
36
37void stop_all_notes() {
38 voices = 0;
39 TCCR3A = 0;
40 TCCR3B = 0;
41 frequency = 0;
42 volume = 0;
43
44 for (int i = 0; i < 8; i++) {
45 frequencies[i] = 0;
46 volumes[i] = 0;
47 }
48}
49
50void stop_note(double freq) {
51 for (int i = 7; i >= 0; i--) {
52 if (frequencies[i] == freq) {
53 frequencies[i] = 0;
54 volumes[i] = 0;
55 for (int j = i; (j < 7); j++) {
56 frequencies[j] = frequencies[j+1];
57 frequencies[j+1] = 0;
58 volumes[j] = volumes[j+1];
59 volumes[j+1] = 0;
60 }
61 }
62 }
63 voices--;
64 if (voices < 0)
65 voices = 0;
66 if (voices == 0) {
67 TCCR3A = 0;
68 TCCR3B = 0;
69 frequency = 0;
70 volume = 0;
71 } else {
72 double freq = frequencies[voices - 1];
73 int vol = volumes[voices - 1];
74 if (frequency < freq) {
75 sliding = true;
76 for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) {
77 send_freq(f, vol);
78 }
79 sliding = false;
80 } else if (frequency > freq) {
81 sliding = true;
82 for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) {
83 send_freq(f, vol);
84 }
85 sliding = false;
86 }
87 send_freq(freq, vol);
88 frequency = freq;
89 volume = vol;
90 }
91}
92
93void init_notes() {
94 // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10);
95 // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
96
97 // DDRC |= (1<<6);
98
99 // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
100 // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30);
101
102 // ICR3 = 0xFFFF;
103 // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element
104
105
106 // cli();
107
108 // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz,
109 // this gives a timer interrupt at 15625Hz. */
110 // TIMSK3 = (1 << OCIE3A);
111
112 // /* clear/reset timer on match */
113 // // TCCR3A = 1<<WGM31 | 0<<WGM30; CTC mode, reset on match
114 // // TCCR3B = 0<<CS32 | 1<<CS31 | 0<<CS30; /* clk, /8 prescaler */
115
116 // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
117 // TCCR3B = (0 << WGM33) | (0 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30);
118
119
120 // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
121 // TCCR1B = (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
122 // // SPCR = 0x50;
123 // // SPSR = 0x01;
124 // DDRC |= (1<<6);
125 // // ICR3 = 0xFFFF;
126 // // OCR3A=80;
127 // PORTC |= (1<<6);
128
129 // sei();
130}
131
132// #define highByte(c) ((c >> 8) & 0x00FF)
133// #define lowByte(c) (c & 0x00FF)
134
135ISR(TIMER3_COMPA_vect) {
136
137 if (ICR3 > 0 && !sliding) {
138 switch (position) {
139 case 0: {
140 int duty = (((double)F_CPU) / (frequency));
141 ICR3 = duty; // Set max to the period
142 OCR3A = duty >> 1; // Set compare to half the period
143 break;
144 }
145 case 1: {
146 int duty = (((double)F_CPU) / (frequency*2));
147 ICR3 = duty; // Set max to the period
148 OCR3A = duty >> 1; // Set compare to half the period
149 break;
150 }
151 case 2: {
152 int duty = (((double)F_CPU) / (frequency*3));
153 ICR3 = duty; // Set max to the period
154 OCR3A = duty >> 1; // Set compare to half the period
155 break;
156 }
157 }
158 position = (position + 1) % 3;
159 }
160// /* OCR2A has been cleared, per TCCR2A above */
161// // OCR3A = 127;
162
163// // pos1 += incr1;
164// // pos2 += incr2;
165// // pos3 += incr3;
166
167// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)];
168
169// // OCR3A = sample;
170
171
172// OCR3A=pgm_read_byte(&sinewave[pos1]);
173// pos1++;
174// // PORTC &= ~(1<<6);
175
176// /* buffered, 1x gain, active mode */
177// // SPDR = highByte(sample) | 0x70;
178// // while (!(SPSR & (1<<SPIF)));
179
180// // SPDR = lowByte(sample);
181// // while (!(SPSR & (1<<SPIF)));
182
183// // PORTC |= (1<<6);
184}
185
186void play_note(double freq, int vol) {
187
188 if (freq > 0) {
189 DDRC |= (1<<6);
190
191 TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
192 TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
193
194 if (frequency != 0) {
195 if (frequency < freq) {
196 for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) {
197 send_freq(f, vol);
198 }
199 } else if (frequency > freq) {
200 for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) {
201 send_freq(f, vol);
202 }
203 }
204 }
205 send_freq(freq, vol);
206 frequency = freq;
207 volume = vol;
208
209 frequencies[voices] = frequency;
210 volumes[voices] = volume;
211 voices++;
212 }
213 // ICR3 = 0xFFFF;
214 // for (int i = 0; i < 10000; i++) {
215 // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF;
216 // // _delay_us(50);
217 // }
218
219 // TCCR3A = 0;
220 // TCCR3B = 0;
221}
222
223// void note(int x, float length) {
224// DDRC |= (1<<6);
225// int t = (int)(440*pow(2,-x/12.0)); // starting note
226// for (int y = 0; y < length*1000/t; y++) { // note length
227// PORTC |= (1<<6);
228// delay_us(t);
229// PORTC &= ~(1<<6);
230// delay_us(t);
231// }
232// PORTC &= ~(1<<6);
233// }
234
235// void true_note(float x, float y, float length) {
236// for (uint32_t i = 0; i < length * 50; i++) {
237// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8));
238// for (int u = 0; u < 8; u++) {
239// if (v & (1 << u) && !(PORTC&(1<<6)))
240// PORTC |= (1<<6);
241// else if (PORTC&(1<<6))
242// PORTC &= ~(1<<6);
243// }
244// }
245// PORTC &= ~(1<<6);
246// } \ No newline at end of file
diff --git a/keyboard/preonic/beeps.h b/keyboard/preonic/beeps.h
deleted file mode 100644
index 378983c60..000000000
--- a/keyboard/preonic/beeps.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#include <stdint.h>
2#include <stdbool.h>
3#include <avr/io.h>
4#include <util/delay.h>
5
6void note(int x, float length);
7void beeps();
8void true_note(float x, float y, float length);
9void play_note(double freq, int vol);
10void stop_note(double freq);
11void stop_all_notes();
12void init_notes(); \ No newline at end of file
diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h
index cad269c9d..5528667fa 100644
--- a/keyboard/preonic/config.h
+++ b/keyboard/preonic/config.h
@@ -18,11 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_H 18#ifndef CONFIG_H
19#define CONFIG_H 19#define CONFIG_H
20 20
21#include "config_definitions.h" 21#include "config_common.h"
22 22
23/* USB Device descriptor parameter */ 23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED 24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6062 25#define PRODUCT_ID 0x6061
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Ortholinear Keyboards 27#define MANUFACTURER Ortholinear Keyboards
28#define PRODUCT The Preonic Keyboard 28#define PRODUCT The Preonic Keyboard
@@ -34,7 +34,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
34 34
35/* Planck PCB default pin-out */ 35/* Planck PCB default pin-out */
36#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } 36#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
37#define ROWS (int []){ D1, D0, D5, B5, B6 } 37#define ROWS (int []){ D2, D5, B5, B6, D3 }
38
39/* COL2ROW or ROW2COL */
40#define DIODE_DIRECTION COL2ROW
38 41
39/* define if matrix has ghost */ 42/* define if matrix has ghost */
40//#define MATRIX_HAS_GHOST 43//#define MATRIX_HAS_GHOST
@@ -55,6 +58,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
55 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 58 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
56) 59)
57 60
61/* ws2812 RGB LED */
62#define ws2812_PORTREG PORTD
63#define ws2812_DDRREG DDRD
64#define ws2812_pin PD1
65#define RGBLED_NUM 28 // Number of LEDs
66#define RGBLIGHT_HUE_STEP 10
67#define RGBLIGHT_SAT_STEP 17
68#define RGBLIGHT_VAL_STEP 17
69
58/* 70/*
59 * Feature disable options 71 * Feature disable options
60 * These options are also useful to firmware size reduction. 72 * These options are also useful to firmware size reduction.
diff --git a/keyboard/preonic/config_definitions.h b/keyboard/preonic/config_definitions.h
deleted file mode 100644
index fd138b884..000000000
--- a/keyboard/preonic/config_definitions.h
+++ /dev/null
@@ -1,50 +0,0 @@
1#ifndef CONFIG_DEFINITIONS_H
2#define CONFIG_DEFINITIONS_H
3
4#define B0 0x20
5#define B1 0x21
6#define B2 0x22
7#define B3 0x23
8#define B4 0x24
9#define B5 0x25
10#define B6 0x26
11#define B7 0x27
12#define C0 0x30
13#define C1 0x31
14#define C2 0x32
15#define C3 0x33
16#define C4 0x34
17#define C5 0x35
18#define C6 0x36
19#define C7 0x37
20#define D0 0x40
21#define D1 0x41
22#define D2 0x42
23#define D3 0x43
24#define D4 0x44
25#define D5 0x45
26#define D6 0x46
27#define D7 0x47
28#define E0 0x50
29#define E1 0x51
30#define E2 0x52
31#define E3 0x53
32#define E4 0x54
33#define E5 0x55
34#define E6 0x56
35#define E7 0x57
36#define F0 0x60
37#define F1 0x61
38#define F2 0x62
39#define F3 0x63
40#define F4 0x64
41#define F5 0x65
42#define F6 0x66
43#define F7 0x67
44
45
46
47
48
49#endif
50
diff --git a/keyboard/preonic/extended_keymap_common.c b/keyboard/preonic/extended_keymap_common.c
deleted file mode 100644
index 4fa80de7c..000000000
--- a/keyboard/preonic/extended_keymap_common.c
+++ /dev/null
@@ -1,216 +0,0 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "extended_keymap_common.h"
19#include "report.h"
20#include "keycode.h"
21#include "action_layer.h"
22#include "action.h"
23#include "action_macro.h"
24#include "debug.h"
25#include "backlight.h"
26#include "keymap_midi.h"
27#include <lufa.h>
28
29static action_t keycode_to_action(uint16_t keycode);
30
31/* converts key to action */
32action_t action_for_key(uint8_t layer, keypos_t key)
33{
34 // 16bit keycodes - important
35 uint16_t keycode = keymap_key_to_keycode(layer, key);
36
37 if (keycode >= 0x0100 && keycode < 0x2000) {
38 // Has a modifier
39 action_t action;
40 // Split it up
41 action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF);
42 return action;
43 } else if (keycode >= 0x2000 && keycode < 0x3000) {
44 // Is a shortcut for function layer, pull last 12bits
45 return keymap_func_to_action(keycode & 0xFFF);
46 } else if (keycode >= 0x3000 && keycode < 0x4000) {
47 action_t action;
48 action.code = ACTION_MACRO(keycode & 0xFF);
49 return action;
50 } else if (keycode >= BL_0 & keycode <= BL_15) {
51 action_t action;
52 action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F);
53 return action;
54 } else if (keycode == BL_DEC) {
55 action_t action;
56 action.code = ACTION_BACKLIGHT_DECREASE();
57 return action;
58 } else if (keycode == BL_INC) {
59 action_t action;
60 action.code = ACTION_BACKLIGHT_INCREASE();
61 return action;
62 } else if (keycode == BL_TOGG) {
63 action_t action;
64 action.code = ACTION_BACKLIGHT_TOGGLE();
65 return action;
66 } else if (keycode == BL_STEP) {
67 action_t action;
68 action.code = ACTION_BACKLIGHT_STEP();
69 return action;
70 } else if (keycode == RESET) {
71 bootloader_jump();
72 return;
73 } else if (keycode == DEBUG) {
74 print("\nDEBUG: enabled.\n");
75 debug_enable = true;
76 return;
77 } else if (keycode >= 0x6000 && keycode < 0x7000) {
78 action_t action;
79 action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8);
80 return action;
81 }
82
83 switch (keycode) {
84 case KC_FN0 ... KC_FN31:
85 return keymap_fn_to_action(keycode);
86#ifdef BOOTMAGIC_ENABLE
87 case KC_CAPSLOCK:
88 case KC_LOCKING_CAPS:
89 if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
90 return keycode_to_action(KC_LCTL);
91 }
92 return keycode_to_action(keycode);
93 case KC_LCTL:
94 if (keymap_config.swap_control_capslock) {
95 return keycode_to_action(KC_CAPSLOCK);
96 }
97 return keycode_to_action(KC_LCTL);
98 case KC_LALT:
99 if (keymap_config.swap_lalt_lgui) {
100 if (keymap_config.no_gui) {
101 return keycode_to_action(ACTION_NO);
102 }
103 return keycode_to_action(KC_LGUI);
104 }
105 return keycode_to_action(KC_LALT);
106 case KC_LGUI:
107 if (keymap_config.swap_lalt_lgui) {
108 return keycode_to_action(KC_LALT);
109 }
110 if (keymap_config.no_gui) {
111 return keycode_to_action(ACTION_NO);
112 }
113 return keycode_to_action(KC_LGUI);
114 case KC_RALT:
115 if (keymap_config.swap_ralt_rgui) {
116 if (keymap_config.no_gui) {
117 return keycode_to_action(ACTION_NO);
118 }
119 return keycode_to_action(KC_RGUI);
120 }
121 return keycode_to_action(KC_RALT);
122 case KC_RGUI:
123 if (keymap_config.swap_ralt_rgui) {
124 return keycode_to_action(KC_RALT);
125 }
126 if (keymap_config.no_gui) {
127 return keycode_to_action(ACTION_NO);
128 }
129 return keycode_to_action(KC_RGUI);
130 case KC_GRAVE:
131 if (keymap_config.swap_grave_esc) {
132 return keycode_to_action(KC_ESC);
133 }
134 return keycode_to_action(KC_GRAVE);
135 case KC_ESC:
136 if (keymap_config.swap_grave_esc) {
137 return keycode_to_action(KC_GRAVE);
138 }
139 return keycode_to_action(KC_ESC);
140 case KC_BSLASH:
141 if (keymap_config.swap_backslash_backspace) {
142 return keycode_to_action(KC_BSPACE);
143 }
144 return keycode_to_action(KC_BSLASH);
145 case KC_BSPACE:
146 if (keymap_config.swap_backslash_backspace) {
147 return keycode_to_action(KC_BSLASH);
148 }
149 return keycode_to_action(KC_BSPACE);
150#endif
151 default:
152 return keycode_to_action(keycode);
153 }
154}
155
156
157/* Macro */
158__attribute__ ((weak))
159const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
160{
161 return MACRO_NONE;
162}
163
164/* Function */
165__attribute__ ((weak))
166void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
167{
168}
169
170/* translates keycode to action */
171static action_t keycode_to_action(uint16_t keycode)
172{
173 action_t action;
174 switch (keycode) {
175 case KC_A ... KC_EXSEL:
176 case KC_LCTRL ... KC_RGUI:
177 action.code = ACTION_KEY(keycode);
178 break;
179 case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
180 action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
181 break;
182 case KC_AUDIO_MUTE ... KC_WWW_FAVORITES:
183 action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
184 break;
185 case KC_MS_UP ... KC_MS_ACCEL2:
186 action.code = ACTION_MOUSEKEY(keycode);
187 break;
188 case KC_TRNS:
189 action.code = ACTION_TRANSPARENT;
190 break;
191 default:
192 action.code = ACTION_NO;
193 break;
194 }
195 return action;
196}
197
198
199/* translates key to keycode */
200uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
201{
202 // Read entire word (16bits)
203 return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]);
204}
205
206/* translates Fn keycode to action */
207action_t keymap_fn_to_action(uint16_t keycode)
208{
209 return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
210}
211
212action_t keymap_func_to_action(uint16_t keycode)
213{
214 // For FUNC without 8bit limit
215 return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
216}
diff --git a/keyboard/preonic/extended_keymap_common.h b/keyboard/preonic/extended_keymap_common.h
deleted file mode 100644
index 7ccfa1b03..000000000
--- a/keyboard/preonic/extended_keymap_common.h
+++ /dev/null
@@ -1,181 +0,0 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef KEYMAP_H
19#define KEYMAP_H
20
21#include <stdint.h>
22#include <stdbool.h>
23#include "action.h"
24#include <avr/pgmspace.h>
25#include "keycode.h"
26#include "keymap.h"
27#include "action_macro.h"
28#include "report.h"
29#include "host.h"
30// #include "print.h"
31#include "debug.h"
32
33#ifdef BOOTMAGIC_ENABLE
34/* NOTE: Not portable. Bit field order depends on implementation */
35typedef union {
36 uint16_t raw;
37 struct {
38 bool swap_control_capslock:1;
39 bool capslock_to_control:1;
40 bool swap_lalt_lgui:1;
41 bool swap_ralt_rgui:1;
42 bool no_gui:1;
43 bool swap_grave_esc:1;
44 bool swap_backslash_backspace:1;
45 bool nkro:1;
46 };
47} keymap_config_t;
48keymap_config_t keymap_config;
49#endif
50
51
52/* translates key to keycode */
53uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key);
54
55/* translates Fn keycode to action */
56action_t keymap_fn_to_action(uint16_t keycode);
57
58/* translates Fn keycode to action */
59action_t keymap_func_to_action(uint16_t keycode);
60
61extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
62extern const uint16_t fn_actions[];
63
64// Ability to use mods in layouts
65#define LCTL(kc) kc | 0x0100
66#define LSFT(kc) kc | 0x0200
67#define LALT(kc) kc | 0x0400
68#define LGUI(kc) kc | 0x0800
69#define RCTL(kc) kc | 0x1100
70#define RSFT(kc) kc | 0x1200
71#define RALT(kc) kc | 0x1400
72#define RGUI(kc) kc | 0x1800
73
74// Alias for function layers than expand past FN31
75#define FUNC(kc) kc | 0x2000
76
77// Aliases
78#define S(kc) LSFT(kc)
79#define F(kc) FUNC(kc)
80
81// For software implementation of colemak
82#define CM_Q KC_Q
83#define CM_W KC_W
84#define CM_F KC_E
85#define CM_P KC_R
86#define CM_G KC_T
87#define CM_J KC_Y
88#define CM_L KC_U
89#define CM_U KC_I
90#define CM_Y KC_O
91#define CM_SCLN KC_P
92
93#define CM_A KC_A
94#define CM_R KC_S
95#define CM_S KC_D
96#define CM_T KC_F
97#define CM_D KC_G
98#define CM_H KC_H
99#define CM_N KC_J
100#define CM_E KC_K
101#define CM_I KC_L
102#define CM_O KC_SCLN
103
104#define CM_Z KC_Z
105#define CM_X KC_X
106#define CM_C KC_C
107#define CM_V KC_V
108#define CM_B KC_B
109#define CM_K KC_N
110#define CM_M KC_M
111#define CM_COMM KC_COMM
112#define CM_DOT KC_DOT
113#define CM_SLSH KC_SLSH
114
115// Make it easy to support these in macros
116#define KC_CM_Q CM_Q
117#define KC_CM_W CM_W
118#define KC_CM_F CM_F
119#define KC_CM_P CM_P
120#define KC_CM_G CM_G
121#define KC_CM_J CM_J
122#define KC_CM_L CM_L
123#define KC_CM_U CM_U
124#define KC_CM_Y CM_Y
125#define KC_CM_SCLN CM_SCLN
126
127#define KC_CM_A CM_A
128#define KC_CM_R CM_R
129#define KC_CM_S CM_S
130#define KC_CM_T CM_T
131#define KC_CM_D CM_D
132#define KC_CM_H CM_H
133#define KC_CM_N CM_N
134#define KC_CM_E CM_E
135#define KC_CM_I CM_I
136#define KC_CM_O CM_O
137
138#define KC_CM_Z CM_Z
139#define KC_CM_X CM_X
140#define KC_CM_C CM_C
141#define KC_CM_V CM_V
142#define KC_CM_B CM_B
143#define KC_CM_K CM_K
144#define KC_CM_M CM_M
145#define KC_CM_COMM CM_COMM
146#define KC_CM_DOT CM_DOT
147#define KC_CM_SLSH CM_SLSH
148
149#define M(kc) kc | 0x3000
150
151#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
152
153#define BL_ON 0x4009
154#define BL_OFF 0x4000
155#define BL_0 0x4000
156#define BL_1 0x4001
157#define BL_2 0x4002
158#define BL_3 0x4003
159#define BL_4 0x4004
160#define BL_5 0x4005
161#define BL_6 0x4006
162#define BL_7 0x4007
163#define BL_8 0x4008
164#define BL_9 0x4009
165#define BL_10 0x400A
166#define BL_11 0x400B
167#define BL_12 0x400C
168#define BL_13 0x400D
169#define BL_14 0x400E
170#define BL_15 0x400F
171#define BL_DEC 0x4010
172#define BL_INC 0x4011
173#define BL_TOGG 0x4012
174#define BL_STEP 0x4013
175
176#define RESET 0x5000
177#define DEBUG 0x5001
178
179#define MIDI(n) n | 0x6000
180
181#endif
diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_default.c b/keyboard/preonic/extended_keymaps/extended_keymap_default.c
deleted file mode 100644
index b52f60fd0..000000000
--- a/keyboard/preonic/extended_keymaps/extended_keymap_default.c
+++ /dev/null
@@ -1,70 +0,0 @@
1#include "extended_keymap_common.h"
2#include "backlight.h"
3#include "lufa.h"
4#include "debug.h"
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7[0] = { /* Qwerty */
8 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
9 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
10 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
11 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
12 {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
13 // Space is repeated to accommadate for both spacebar wiring positions
14},
15[1] = { /* Colemak */
16 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
17 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
18 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
19 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
20 {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
21},
22[2] = { /* RAISE */
23 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
24 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
25 {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
26 {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
27 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
28},
29[3] = { /* LOWER */
30 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
31 {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
32 {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
33 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
34 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
35},
36[4] = { /* TENKEY */
37 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
38 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC},
39 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT},
40 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT},
41 {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
42}
43};
44
45const uint16_t PROGMEM fn_actions[] = {
46 [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
47 [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
48
49 [3] = ACTION_DEFAULT_LAYER_SET(0),
50 [4] = ACTION_DEFAULT_LAYER_SET(1),
51
52};
53
54const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
55{
56 // MACRODOWN only works in this function
57 switch(id) {
58 case 0:
59 if (record->event.pressed) {
60 register_code(KC_RSFT);
61 midi_send_noteon(&midi_device, 1, 64, 127);
62 backlight_step();
63 } else {
64 unregister_code(KC_RSFT);
65 midi_send_noteoff(&midi_device, 1, 64, 127);
66 }
67 break;
68 }
69 return MACRO_NONE;
70};
diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c b/keyboard/preonic/extended_keymaps/extended_keymap_lock.c
deleted file mode 100644
index ec7bc776a..000000000
--- a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c
+++ /dev/null
@@ -1,81 +0,0 @@
1#include "extended_keymap_common.h"
2#include "backlight.h"
3#include "action_layer.h"
4#include "keymap_midi.h"
5#include "beeps.h"
6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8[0] = { /* Qwerty */
9 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
10 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
11 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
12 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
13 {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
14 // Space is repeated to accommadate for both spacebar wiring positions
15},
16[1] = { /* Colemak */
17 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
18 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
19 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
20 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
21 {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
22},
23[2] = { /* RAISE */
24 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
25 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
26 {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
27 {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
28 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
29},
30[3] = { /* LOWER */
31 {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
32 {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
33 {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
34 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
35 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
36},
37[4] = { /* TENKEY */
38 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
39 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC},
40 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT},
41 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT},
42 {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
43},
44[5] = {
45 { MIDI12 },
46 { MIDI12 },
47 { MIDI12 },
48 { MIDI12 },
49 {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI}
50}
51
52};
53
54const uint16_t PROGMEM fn_actions[] = {
55 [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
56 [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
57
58 [3] = ACTION_DEFAULT_LAYER_SET(0),
59 [4] = ACTION_DEFAULT_LAYER_SET(1),
60
61};
62
63const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
64{
65 switch(id) {
66 case 0:
67 if (record->event.pressed) {
68 // register_code(KC_RSFT);
69 backlight_set(BACKLIGHT_LEVELS);
70 default_layer_and(0);
71 default_layer_or((1<<5));
72 } else {
73 // unregister_code(KC_RSFT);
74 backlight_set(0);
75 default_layer_and(0);
76 default_layer_or(0);
77 }
78 break;
79 }
80 return MACRO_NONE;
81};
diff --git a/keyboard/preonic/flash-pcb.sh b/keyboard/preonic/flash-pcb.sh
new file mode 100755
index 000000000..8b59b83f5
--- /dev/null
+++ b/keyboard/preonic/flash-pcb.sh
@@ -0,0 +1,3 @@
1dfu-programmer atmega32u4 erase --force
2dfu-programmer atmega32u4 flash preonic_pcb.hex
3dfu-programmer atmega32u4 reset \ No newline at end of file
diff --git a/keyboard/preonic/keymap_midi.c b/keyboard/preonic/keymap_midi.c
deleted file mode 100644
index a0fa59990..000000000
--- a/keyboard/preonic/keymap_midi.c
+++ /dev/null
@@ -1,110 +0,0 @@
1/*
2Copyright 2015 Jack Humbert <jack.humb@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "extended_keymap_common.h"
19#include "keymap_midi.h"
20#include <lufa.h>
21
22uint8_t starting_note = 0x0C;
23int offset = 7;
24
25void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
26{
27 if (id != 0) {
28 if (record->event.pressed) {
29 midi_send_noteon(&midi_device, opt, (id & 0xFF), 127);
30 } else {
31 midi_send_noteoff(&midi_device, opt, (id & 0xFF), 127);
32 }
33 }
34
35 if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) {
36 if (record->event.pressed) {
37 starting_note++;
38 play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
39 midi_send_cc(&midi_device, 0, 0x7B, 0);
40 midi_send_cc(&midi_device, 1, 0x7B, 0);
41 midi_send_cc(&midi_device, 2, 0x7B, 0);
42 midi_send_cc(&midi_device, 3, 0x7B, 0);
43 midi_send_cc(&midi_device, 4, 0x7B, 0);
44 return;
45 } else {
46 stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
47 stop_all_notes();
48 return;
49 }
50 }
51 if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) {
52 if (record->event.pressed) {
53 starting_note--;
54 play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
55 midi_send_cc(&midi_device, 0, 0x7B, 0);
56 midi_send_cc(&midi_device, 1, 0x7B, 0);
57 midi_send_cc(&midi_device, 2, 0x7B, 0);
58 midi_send_cc(&midi_device, 3, 0x7B, 0);
59 midi_send_cc(&midi_device, 4, 0x7B, 0);
60 return;
61 } else {
62 stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
63 stop_all_notes();
64 return;
65 }
66 }
67
68 if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
69 offset++;
70 midi_send_cc(&midi_device, 0, 0x7B, 0);
71 midi_send_cc(&midi_device, 1, 0x7B, 0);
72 midi_send_cc(&midi_device, 2, 0x7B, 0);
73 midi_send_cc(&midi_device, 3, 0x7B, 0);
74 midi_send_cc(&midi_device, 4, 0x7B, 0);
75 stop_all_notes();
76 for (int i = 0; i <= 7; i++) {
77 play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
78 _delay_us(80000);
79 stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
80 _delay_us(8000);
81 }
82 return;
83 }
84 if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
85 offset--;
86 midi_send_cc(&midi_device, 0, 0x7B, 0);
87 midi_send_cc(&midi_device, 1, 0x7B, 0);
88 midi_send_cc(&midi_device, 2, 0x7B, 0);
89 midi_send_cc(&midi_device, 3, 0x7B, 0);
90 midi_send_cc(&midi_device, 4, 0x7B, 0);
91 stop_all_notes();
92 for (int i = 0; i <= 7; i++) {
93 play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
94 _delay_us(80000);
95 stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
96 _delay_us(8000);
97 }
98 return;
99 }
100
101 if (record->event.pressed) {
102 // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
103 midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
104 play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
105 } else {
106 // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
107 midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
108 stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
109 }
110} \ No newline at end of file
diff --git a/keyboard/preonic/keymap_midi.h b/keyboard/preonic/keymap_midi.h
deleted file mode 100644
index c5917f884..000000000
--- a/keyboard/preonic/keymap_midi.h
+++ /dev/null
@@ -1,220 +0,0 @@
1/*
2Copyright 2015 Jack Humbert <jack.humb@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef KEYMAP_MIDI_H
19#define KEYMAP_MIDI_H
20
21#define MIDI 0x6000
22#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000
23
24#define CHNL(note, channel) (note + (channel << 8))
25
26#define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \
27 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \
28 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \
29 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \
30 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), }
31
32#define N_CN1 (0x600C + (12 * -1) + 0 )
33#define N_CN1S (0x600C + (12 * -1) + 1 )
34#define N_DN1F (0x600C + (12 * -1) + 1 )
35#define N_DN1 (0x600C + (12 * -1) + 2 )
36#define N_DN1S (0x600C + (12 * -1) + 3 )
37#define N_EN1F (0x600C + (12 * -1) + 3 )
38#define N_EN1 (0x600C + (12 * -1) + 4 )
39#define N_FN1 (0x600C + (12 * -1) + 5 )
40#define N_FN1S (0x600C + (12 * -1) + 6 )
41#define N_GN1F (0x600C + (12 * -1) + 6 )
42#define N_GN1 (0x600C + (12 * -1) + 7 )
43#define N_GN1S (0x600C + (12 * -1) + 8 )
44#define N_AN1F (0x600C + (12 * -1) + 8 )
45#define N_AN1 (0x600C + (12 * -1) + 9 )
46#define N_AN1S (0x600C + (12 * -1) + 10)
47#define N_BN1F (0x600C + (12 * -1) + 10)
48#define N_BN1 (0x600C + (12 * -1) + 11)
49#define N_C0 (0x600C + (12 * 0) + 0 )
50#define N_C0S (0x600C + (12 * 0) + 1 )
51#define N_D0F (0x600C + (12 * 0) + 1 )
52#define N_D0 (0x600C + (12 * 0) + 2 )
53#define N_D0S (0x600C + (12 * 0) + 3 )
54#define N_E0F (0x600C + (12 * 0) + 3 )
55#define N_E0 (0x600C + (12 * 0) + 4 )
56#define N_F0 (0x600C + (12 * 0) + 5 )
57#define N_F0S (0x600C + (12 * 0) + 6 )
58#define N_G0F (0x600C + (12 * 0) + 6 )
59#define N_G0 (0x600C + (12 * 0) + 7 )
60#define N_G0S (0x600C + (12 * 0) + 8 )
61#define N_A0F (0x600C + (12 * 0) + 8 )
62#define N_A0 (0x600C + (12 * 0) + 9 )
63#define N_A0S (0x600C + (12 * 0) + 10)
64#define N_B0F (0x600C + (12 * 0) + 10)
65#define N_B0 (0x600C + (12 * 0) + 11)
66#define N_C1 (0x600C + (12 * 1) + 0 )
67#define N_C1S (0x600C + (12 * 1) + 1 )
68#define N_D1F (0x600C + (12 * 1) + 1 )
69#define N_D1 (0x600C + (12 * 1) + 2 )
70#define N_D1S (0x600C + (12 * 1) + 3 )
71#define N_E1F (0x600C + (12 * 1) + 3 )
72#define N_E1 (0x600C + (12 * 1) + 4 )
73#define N_F1 (0x600C + (12 * 1) + 5 )
74#define N_F1S (0x600C + (12 * 1) + 6 )
75#define N_G1F (0x600C + (12 * 1) + 6 )
76#define N_G1 (0x600C + (12 * 1) + 7 )
77#define N_G1S (0x600C + (12 * 1) + 8 )
78#define N_A1F (0x600C + (12 * 1) + 8 )
79#define N_A1 (0x600C + (12 * 1) + 9 )
80#define N_A1S (0x600C + (12 * 1) + 10)
81#define N_B1F (0x600C + (12 * 1) + 10)
82#define N_B1 (0x600C + (12 * 1) + 11)
83#define N_C2 (0x600C + (12 * 2) + 0 )
84#define N_C2S (0x600C + (12 * 2) + 1 )
85#define N_D2F (0x600C + (12 * 2) + 1 )
86#define N_D2 (0x600C + (12 * 2) + 2 )
87#define N_D2S (0x600C + (12 * 2) + 3 )
88#define N_E2F (0x600C + (12 * 2) + 3 )
89#define N_E2 (0x600C + (12 * 2) + 4 )
90#define N_F2 (0x600C + (12 * 2) + 5 )
91#define N_F2S (0x600C + (12 * 2) + 6 )
92#define N_G2F (0x600C + (12 * 2) + 6 )
93#define N_G2 (0x600C + (12 * 2) + 7 )
94#define N_G2S (0x600C + (12 * 2) + 8 )
95#define N_A2F (0x600C + (12 * 2) + 8 )
96#define N_A2 (0x600C + (12 * 2) + 9 )
97#define N_A2S (0x600C + (12 * 2) + 10)
98#define N_B2F (0x600C + (12 * 2) + 10)
99#define N_B2 (0x600C + (12 * 2) + 11)
100#define N_C3 (0x600C + (12 * 3) + 0 )
101#define N_C3S (0x600C + (12 * 3) + 1 )
102#define N_D3F (0x600C + (12 * 3) + 1 )
103#define N_D3 (0x600C + (12 * 3) + 2 )
104#define N_D3S (0x600C + (12 * 3) + 3 )
105#define N_E3F (0x600C + (12 * 3) + 3 )
106#define N_E3 (0x600C + (12 * 3) + 4 )
107#define N_F3 (0x600C + (12 * 3) + 5 )
108#define N_F3S (0x600C + (12 * 3) + 6 )
109#define N_G3F (0x600C + (12 * 3) + 6 )
110#define N_G3 (0x600C + (12 * 3) + 7 )
111#define N_G3S (0x600C + (12 * 3) + 8 )
112#define N_A3F (0x600C + (12 * 3) + 8 )
113#define N_A3 (0x600C + (12 * 3) + 9 )
114#define N_A3S (0x600C + (12 * 3) + 10)
115#define N_B3F (0x600C + (12 * 3) + 10)
116#define N_B3 (0x600C + (12 * 3) + 11)
117#define N_C4 (0x600C + (12 * 4) + 0 )
118#define N_C4S (0x600C + (12 * 4) + 1 )
119#define N_D4F (0x600C + (12 * 4) + 1 )
120#define N_D4 (0x600C + (12 * 4) + 2 )
121#define N_D4S (0x600C + (12 * 4) + 3 )
122#define N_E4F (0x600C + (12 * 4) + 3 )
123#define N_E4 (0x600C + (12 * 4) + 4 )
124#define N_F4 (0x600C + (12 * 4) + 5 )
125#define N_F4S (0x600C + (12 * 4) + 6 )
126#define N_G4F (0x600C + (12 * 4) + 6 )
127#define N_G4 (0x600C + (12 * 4) + 7 )
128#define N_G4S (0x600C + (12 * 4) + 8 )
129#define N_A4F (0x600C + (12 * 4) + 8 )
130#define N_A4 (0x600C + (12 * 4) + 9 )
131#define N_A4S (0x600C + (12 * 4) + 10)
132#define N_B4F (0x600C + (12 * 4) + 10)
133#define N_B4 (0x600C + (12 * 4) + 11)
134#define N_C5 (0x600C + (12 * 5) + 0 )
135#define N_C5S (0x600C + (12 * 5) + 1 )
136#define N_D5F (0x600C + (12 * 5) + 1 )
137#define N_D5 (0x600C + (12 * 5) + 2 )
138#define N_D5S (0x600C + (12 * 5) + 3 )
139#define N_E5F (0x600C + (12 * 5) + 3 )
140#define N_E5 (0x600C + (12 * 5) + 4 )
141#define N_F5 (0x600C + (12 * 5) + 5 )
142#define N_F5S (0x600C + (12 * 5) + 6 )
143#define N_G5F (0x600C + (12 * 5) + 6 )
144#define N_G5 (0x600C + (12 * 5) + 7 )
145#define N_G5S (0x600C + (12 * 5) + 8 )
146#define N_A5F (0x600C + (12 * 5) + 8 )
147#define N_A5 (0x600C + (12 * 5) + 9 )
148#define N_A5S (0x600C + (12 * 5) + 10)
149#define N_B5F (0x600C + (12 * 5) + 10)
150#define N_B5 (0x600C + (12 * 5) + 11)
151#define N_C6 (0x600C + (12 * 6) + 0 )
152#define N_C6S (0x600C + (12 * 6) + 1 )
153#define N_D6F (0x600C + (12 * 6) + 1 )
154#define N_D6 (0x600C + (12 * 6) + 2 )
155#define N_D6S (0x600C + (12 * 6) + 3 )
156#define N_E6F (0x600C + (12 * 6) + 3 )
157#define N_E6 (0x600C + (12 * 6) + 4 )
158#define N_F6 (0x600C + (12 * 6) + 5 )
159#define N_F6S (0x600C + (12 * 6) + 6 )
160#define N_G6F (0x600C + (12 * 6) + 6 )
161#define N_G6 (0x600C + (12 * 6) + 7 )
162#define N_G6S (0x600C + (12 * 6) + 8 )
163#define N_A6F (0x600C + (12 * 6) + 8 )
164#define N_A6 (0x600C + (12 * 6) + 9 )
165#define N_A6S (0x600C + (12 * 6) + 10)
166#define N_B6F (0x600C + (12 * 6) + 10)
167#define N_B6 (0x600C + (12 * 6) + 11)
168#define N_C7 (0x600C + (12 * 7) + 0 )
169#define N_C7S (0x600C + (12 * 7) + 1 )
170#define N_D7F (0x600C + (12 * 7) + 1 )
171#define N_D7 (0x600C + (12 * 7) + 2 )
172#define N_D7S (0x600C + (12 * 7) + 3 )
173#define N_E7F (0x600C + (12 * 7) + 3 )
174#define N_E7 (0x600C + (12 * 7) + 4 )
175#define N_F7 (0x600C + (12 * 7) + 5 )
176#define N_F7S (0x600C + (12 * 7) + 6 )
177#define N_G7F (0x600C + (12 * 7) + 6 )
178#define N_G7 (0x600C + (12 * 7) + 7 )
179#define N_G7S (0x600C + (12 * 7) + 8 )
180#define N_A7F (0x600C + (12 * 7) + 8 )
181#define N_A7 (0x600C + (12 * 7) + 9 )
182#define N_A7S (0x600C + (12 * 7) + 10)
183#define N_B7F (0x600C + (12 * 7) + 10)
184#define N_B7 (0x600C + (12 * 7) + 11)
185#define N_C8 (0x600C + (12 * 8) + 0 )
186#define N_C8S (0x600C + (12 * 8) + 1 )
187#define N_D8F (0x600C + (12 * 8) + 1 )
188#define N_D8 (0x600C + (12 * 8) + 2 )
189#define N_D8S (0x600C + (12 * 8) + 3 )
190#define N_E8F (0x600C + (12 * 8) + 3 )
191#define N_E8 (0x600C + (12 * 8) + 4 )
192#define N_F8 (0x600C + (12 * 8) + 5 )
193#define N_F8S (0x600C + (12 * 8) + 6 )
194#define N_G8F (0x600C + (12 * 8) + 6 )
195#define N_G8 (0x600C + (12 * 8) + 7 )
196#define N_G8S (0x600C + (12 * 8) + 8 )
197#define N_A8F (0x600C + (12 * 8) + 8 )
198#define N_A8 (0x600C + (12 * 8) + 9 )
199#define N_A8S (0x600C + (12 * 8) + 10)
200#define N_B8F (0x600C + (12 * 8) + 10)
201#define N_B8 (0x600C + (12 * 8) + 11)
202#define N_C8 (0x600C + (12 * 8) + 0 )
203#define N_C8S (0x600C + (12 * 8) + 1 )
204#define N_D8F (0x600C + (12 * 8) + 1 )
205#define N_D8 (0x600C + (12 * 8) + 2 )
206#define N_D8S (0x600C + (12 * 8) + 3 )
207#define N_E8F (0x600C + (12 * 8) + 3 )
208#define N_E8 (0x600C + (12 * 8) + 4 )
209#define N_F8 (0x600C + (12 * 8) + 5 )
210#define N_F8S (0x600C + (12 * 8) + 6 )
211#define N_G8F (0x600C + (12 * 8) + 6 )
212#define N_G8 (0x600C + (12 * 8) + 7 )
213#define N_G8S (0x600C + (12 * 8) + 8 )
214#define N_A8F (0x600C + (12 * 8) + 8 )
215#define N_A8 (0x600C + (12 * 8) + 9 )
216#define N_A8S (0x600C + (12 * 8) + 10)
217#define N_B8F (0x600C + (12 * 8) + 10)
218#define N_B8 (0x600C + (12 * 8) + 11)
219
220#endif \ No newline at end of file
diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md
new file mode 100644
index 000000000..d2f43bbdb
--- /dev/null
+++ b/keyboard/preonic/keymaps/default/README.md
@@ -0,0 +1,34 @@
1# The Default Planck Layout
2
3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [_QW] = { /* Qwerty */
5 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
6 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
7 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
8 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
9 },
10 [_CM] = { /* Colemak */
11 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
12 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
13 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
14 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
15 },
16 [_DV] = { /* Dvorak */
17 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
18 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
19 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
20 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
21 },
22 [_RS] = { /* RAISE */
23 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
24 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
25 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
26 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
27 },
28 [_LW] = { /* LOWER */
29 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
30 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
31 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
32 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
33 }
34 }; \ No newline at end of file
diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c
new file mode 100644
index 000000000..392197f1d
--- /dev/null
+++ b/keyboard/preonic/keymaps/default/keymap.c
@@ -0,0 +1,96 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "preonic.h"
5#ifdef BACKLIGHT_ENABLE
6 #include "backlight.h"
7#endif
8
9// Each layer gets a name for readability, which is then used in the keymap matrix below.
10// The underscores don't mean anything - you can have a layer called STUFF or any other name.
11// Layer names don't all need to be of the same length, obviously, and you can also skip them
12// entirely and just use numbers.
13#define _QW 0
14#define _CM 1
15#define _DV 2
16#define _LW 3
17#define _RS 4
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[_QW] = { /* Qwerty */
21 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
22 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
23 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
24 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
25 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
26},
27[_CM] = { /* Colemak */
28 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
29 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
30 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
31 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
32 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
33},
34[_DV] = { /* Dvorak */
35 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
36 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
37 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
38 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
39 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
40},
41[_RS] = { /* RAISE */
42 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
43 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
44 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
45 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
46 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
47},
48[_LW] = { /* LOWER */
49 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
50 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
51 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
52 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
53 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
54}
55};
56
57const uint16_t PROGMEM fn_actions[] = {
58
59};
60
61float start_up[][2] = {
62 {440.0*pow(2.0,(67)/12.0), 600},
63 {0, 50},
64 {440.0*pow(2.0,(64)/12.0), 400},
65 {0, 50},
66 {440.0*pow(2.0,(55)/12.0), 400},
67 {0, 50},
68 {440.0*pow(2.0,(60)/12.0), 400},
69 {0, 50},
70 {440.0*pow(2.0,(64)/12.0), 1000},
71};
72
73const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
74{
75 // MACRODOWN only works in this function
76 switch(id) {
77 case 0:
78 if (record->event.pressed) {
79 register_code(KC_RSFT);
80 #ifdef BACKLIGHT_ENABLE
81 backlight_step();
82 #endif
83 } else {
84 unregister_code(KC_RSFT);
85 }
86 break;
87 }
88 return MACRO_NONE;
89};
90
91void * matrix_init_user(void) {
92#ifdef AUDIO_ENABLE
93 init_notes();
94 play_notes(&start_up, 9, false);
95#endif
96}
diff --git a/keyboard/preonic/keymaps/lock/README.md b/keyboard/preonic/keymaps/lock/README.md
new file mode 100644
index 000000000..d21cb990b
--- /dev/null
+++ b/keyboard/preonic/keymaps/lock/README.md
@@ -0,0 +1,3 @@
1# Lock layout
2
3This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly! \ No newline at end of file
diff --git a/keyboard/preonic/keymaps/lock/keymap.c b/keyboard/preonic/keymaps/lock/keymap.c
new file mode 100644
index 000000000..e253f2581
--- /dev/null
+++ b/keyboard/preonic/keymaps/lock/keymap.c
@@ -0,0 +1,105 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "preonic.h"
5#ifdef BACKLIGHT_ENABLE
6 #include "backlight.h"
7#endif
8#include "action_layer.h"
9
10// Each layer gets a name for readability, which is then used in the keymap matrix below.
11// The underscores don't mean anything - you can have a layer called STUFF or any other name.
12// Layer names don't all need to be of the same length, obviously, and you can also skip them
13// entirely and just use numbers.
14#define _QW 0
15#define _CM 1
16#define _DV 2
17#define _LW 3
18#define _RS 4
19#define _MI 5
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22[_QW] = { /* Qwerty */
23 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
24 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
25 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
26 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
27 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
28},
29[_CM] = { /* Colemak */
30 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
31 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
32 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
33 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
34 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
35},
36[_DV] = { /* Dvorak */
37 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
38 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
39 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
40 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
41 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
42},
43[_RS] = { /* RAISE */
44 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
45 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
46 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
47 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
48 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
49},
50[_LW] = { /* LOWER */
51 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
52 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
53 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
54 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
55 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
56},
57[_MI] = { /* MIDI */
58 {MIDI12},
59 {MIDI12},
60 {MIDI12},
61 {MIDI12},
62 {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MIDI, MIDI, MIDI, MIDI}
63}
64};
65
66const uint16_t PROGMEM fn_actions[] = {
67
68};
69
70float start_up[][2] = {
71 {440.0*pow(2.0,(67)/12.0), 600},
72 {0, 50},
73 {440.0*pow(2.0,(64)/12.0), 400},
74 {0, 50},
75 {440.0*pow(2.0,(55)/12.0), 400},
76 {0, 50},
77 {440.0*pow(2.0,(60)/12.0), 400},
78 {0, 50},
79 {440.0*pow(2.0,(64)/12.0), 1000},
80};
81
82const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
83{
84 // MACRODOWN only works in this function
85 switch(id) {
86 case 0:
87 if (record->event.pressed) {
88 register_code(KC_RSFT);
89 #ifdef BACKLIGHT_ENABLE
90 backlight_step();
91 #endif
92 default_layer_state = 1<<5;
93 } else {
94 unregister_code(KC_RSFT);
95 default_layer_state = 1<<0;
96 }
97 break;
98 }
99 return MACRO_NONE;
100};
101
102void * matrix_init_user(void) {
103 init_notes();
104 play_notes(&start_up, 9, false);
105}
diff --git a/keyboard/preonic/led.c b/keyboard/preonic/led.c
deleted file mode 100644
index 2c0574660..000000000
--- a/keyboard/preonic/led.c
+++ /dev/null
@@ -1,38 +0,0 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include <avr/io.h>
19#include "stdint.h"
20#include "led.h"
21
22
23void led_set(uint8_t usb_led)
24{
25 // // Using PE6 Caps Lock LED
26 // if (usb_led & (1<<USB_LED_CAPS_LOCK))
27 // {
28 // // Output high.
29 // DDRE |= (1<<6);
30 // PORTE |= (1<<6);
31 // }
32 // else
33 // {
34 // // Output low.
35 // DDRE &= ~(1<<6);
36 // PORTE &= ~(1<<6);
37 // }
38}
diff --git a/keyboard/preonic/matrix.c b/keyboard/preonic/matrix.c
deleted file mode 100644
index 98ef55ed6..000000000
--- a/keyboard/preonic/matrix.c
+++ /dev/null
@@ -1,234 +0,0 @@
1/*
2Copyright 2012 Jun Wako
3Generated by planckkeyboard.com (2014 Jack Humbert)
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19/*
20 * scan matrix
21 */
22#include <stdint.h>
23#include <stdbool.h>
24#include <avr/io.h>
25#include <util/delay.h>
26#include "print.h"
27#include "debug.h"
28#include "util.h"
29#include "matrix.h"
30
31#ifndef DEBOUNCE
32# define DEBOUNCE 10
33#endif
34static uint8_t debouncing = DEBOUNCE;
35
36/* matrix state(1:on, 0:off) */
37static matrix_row_t matrix[MATRIX_ROWS];
38static matrix_row_t matrix_debouncing[MATRIX_ROWS];
39
40static matrix_row_t read_cols(void);
41static void init_cols(void);
42static void unselect_rows(void);
43static void select_row(uint8_t row);
44
45inline
46uint8_t matrix_rows(void)
47{
48 return MATRIX_ROWS;
49}
50
51inline
52uint8_t matrix_cols(void)
53{
54 return MATRIX_COLS;
55}
56
57void matrix_init(void)
58{
59 // To use PORTF disable JTAG with writing JTD bit twice within four cycles.
60 MCUCR |= (1<<JTD);
61 MCUCR |= (1<<JTD);
62
63 backlight_init_ports();
64
65 // Turn status LED on
66 DDRE |= (1<<6);
67 PORTE |= (1<<6);
68
69 // initialize row and col
70 unselect_rows();
71 init_cols();
72
73 // initialize matrix state: all keys off
74 for (uint8_t i=0; i < MATRIX_ROWS; i++) {
75 matrix[i] = 0;
76 matrix_debouncing[i] = 0;
77 }
78}
79
80
81uint8_t matrix_scan(void)
82{
83 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
84 select_row(i);
85 _delay_us(30); // without this wait read unstable value.
86 matrix_row_t cols = read_cols();
87 if (matrix_debouncing[i] != cols) {
88 matrix_debouncing[i] = cols;
89 if (debouncing) {
90 debug("bounce!: "); debug_hex(debouncing); debug("\n");
91 }
92 debouncing = DEBOUNCE;
93 }
94 unselect_rows();
95 }
96
97 if (debouncing) {
98 if (--debouncing) {
99 _delay_ms(1);
100 } else {
101 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
102 matrix[i] = matrix_debouncing[i];
103 }
104 }
105 }
106
107 return 1;
108}
109
110bool matrix_is_modified(void)
111{
112 if (debouncing) return false;
113 return true;
114}
115
116inline
117bool matrix_is_on(uint8_t row, uint8_t col)
118{
119 return (matrix[row] & ((matrix_row_t)1<col));
120}
121
122inline
123matrix_row_t matrix_get_row(uint8_t row)
124{
125 return matrix[row];
126}
127
128void matrix_print(void)
129{
130 print("\nr/c 0123456789ABCDEF\n");
131 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
132 phex(row); print(": ");
133 pbin_reverse16(matrix_get_row(row));
134 print("\n");
135 }
136}
137
138uint8_t matrix_key_count(void)
139{
140 uint8_t count = 0;
141 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
142 count += bitpop16(matrix[i]);
143 }
144 return count;
145}
146
147static void init_cols(void)
148{
149 int B = 0, C = 0, D = 0, E = 0, F = 0;
150 for(int x = 0; x < MATRIX_COLS; x++) {
151 int col = COLS[x];
152 if ((col & 0xF0) == 0x20) {
153 B |= (1<<(col & 0x0F));
154 } else if ((col & 0xF0) == 0x30) {
155 C |= (1<<(col & 0x0F));
156 } else if ((col & 0xF0) == 0x40) {
157 D |= (1<<(col & 0x0F));
158 } else if ((col & 0xF0) == 0x50) {
159 E |= (1<<(col & 0x0F));
160 } else if ((col & 0xF0) == 0x60) {
161 F |= (1<<(col & 0x0F));
162 }
163 }
164 DDRB &= ~(B); PORTB |= (B);
165 DDRC &= ~(C); PORTC |= (C);
166 DDRD &= ~(D); PORTD |= (D);
167 DDRE &= ~(E); PORTE |= (E);
168 DDRF &= ~(F); PORTF |= (F);
169}
170
171static matrix_row_t read_cols(void)
172{
173 matrix_row_t result = 0;
174 for(int x = 0; x < MATRIX_COLS; x++) {
175 int col = COLS[x];
176 if ((col & 0xF0) == 0x20) {
177 result |= (PINB&(1<<(col & 0x0F)) ? 0 : (1<<x));
178 } else if ((col & 0xF0) == 0x30) {
179 result |= (PINC&(1<<(col & 0x0F)) ? 0 : (1<<x));
180 } else if ((col & 0xF0) == 0x40) {
181 result |= (PIND&(1<<(col & 0x0F)) ? 0 : (1<<x));
182 } else if ((col & 0xF0) == 0x50) {
183 result |= (PINE&(1<<(col & 0x0F)) ? 0 : (1<<x));
184 } else if ((col & 0xF0) == 0x60) {
185 result |= (PINF&(1<<(col & 0x0F)) ? 0 : (1<<x));
186 }
187 }
188 return result;
189}
190
191static void unselect_rows(void)
192{
193 int B = 0, C = 0, D = 0, E = 0, F = 0;
194 for(int x = 0; x < MATRIX_ROWS; x++) {
195 int row = ROWS[x];
196 if ((row & 0xF0) == 0x20) {
197 B |= (1<<(row & 0x0F));
198 } else if ((row & 0xF0) == 0x30) {
199 C |= (1<<(row & 0x0F));
200 } else if ((row & 0xF0) == 0x40) {
201 D |= (1<<(row & 0x0F));
202 } else if ((row & 0xF0) == 0x50) {
203 E |= (1<<(row & 0x0F));
204 } else if ((row & 0xF0) == 0x60) {
205 F |= (1<<(row & 0x0F));
206 }
207 }
208 DDRB &= ~(B); PORTB |= (B);
209 DDRC &= ~(C); PORTC |= (C);
210 DDRD &= ~(D); PORTD |= (D);
211 DDRE &= ~(E); PORTE |= (E);
212 DDRF &= ~(F); PORTF |= (F);
213}
214
215static void select_row(uint8_t row)
216{
217 int row_pin = ROWS[row];
218 if ((row_pin & 0xF0) == 0x20) {
219 DDRB |= (1<<(row_pin & 0x0F));
220 PORTB &= ~(1<<(row_pin & 0x0F));
221 } else if ((row_pin & 0xF0) == 0x30) {
222 DDRC |= (1<<(row_pin & 0x0F));
223 PORTC &= ~(1<<(row_pin & 0x0F));
224 } else if ((row_pin & 0xF0) == 0x40) {
225 DDRD |= (1<<(row_pin & 0x0F));
226 PORTD &= ~(1<<(row_pin & 0x0F));
227 } else if ((row_pin & 0xF0) == 0x50) {
228 DDRE |= (1<<(row_pin & 0x0F));
229 PORTE &= ~(1<<(row_pin & 0x0F));
230 } else if ((row_pin & 0xF0) == 0x60) {
231 DDRF |= (1<<(row_pin & 0x0F));
232 PORTF &= ~(1<<(row_pin & 0x0F));
233 }
234} \ No newline at end of file
diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c
new file mode 100644
index 000000000..a678f7b09
--- /dev/null
+++ b/keyboard/preonic/preonic.c
@@ -0,0 +1,36 @@
1#include "preonic.h"
2
3__attribute__ ((weak))
4void * matrix_init_user(void) {
5
6};
7
8__attribute__ ((weak))
9void * matrix_scan_user(void) {
10
11};
12
13void * matrix_init_kb(void) {
14 #ifdef BACKLIGHT_ENABLE
15 backlight_init_ports();
16 #endif
17
18 #ifdef RGBLIGHT_ENABLE
19 rgblight_init();
20 #endif
21
22
23 // Turn status LED on
24 DDRE |= (1<<6);
25 PORTE |= (1<<6);
26
27 if (matrix_init_user) {
28 (*matrix_init_user)();
29 }
30};
31
32void * matrix_scan_kb(void) {
33 if (matrix_scan_user) {
34 (*matrix_scan_user)();
35 }
36};
diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h
new file mode 100644
index 000000000..42d212329
--- /dev/null
+++ b/keyboard/preonic/preonic.h
@@ -0,0 +1,50 @@
1#ifndef PREONIC_H
2#define PREONIC_H
3
4#include "matrix.h"
5#include "keymap_common.h"
6#ifdef BACKLIGHT_ENABLE
7 #include "backlight.h"
8#endif
9#ifdef RGBLIGHT_ENABLE
10 #include "rgblight.h"
11#endif
12#include <stddef.h>
13#ifdef MIDI_ENABLE
14 #include <keymap_midi.h>
15#endif
16
17#define PREONIC_MIT( \
18 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
19 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
20 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
21 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
22 k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \
29 { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \
30}
31
32#define PREONIC_GRID( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
37 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
38) \
39{ \
40 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
41 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
42 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
43 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \
44 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
45}
46
47void * matrix_init_user(void);
48void * matrix_scan_user(void);
49
50#endif
diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex
new file mode 100644
index 000000000..5bdc190e1
--- /dev/null
+++ b/keyboard/preonic/preonic_pcb.hex
@@ -0,0 +1,1702 @@
1:100000000C94D4020C9418030C9418030C94180349
2:100010000C9418030C9418030C9418030C941803F4
3:100020000C9418030C9418030C94E8160C94BA174B
4:100030000C946C290C9418030C9418030C9418035A
5:100040000C9418030C9418030C9418030C941803C4
6:100050000C9418030C94D9290C9418030C941803CD
7:100060000C9418030C9418030C9418030C941803A4
8:100070000C9418030C9418030C9418030C94180394
9:100080000C941C0E0C9418030C9418030C94180375
10:100090000C9418030C9418030C9418030C94180374
11:1000A0000C9418030C9418030C941803076342363D
12:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9
13:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD
14:1000D0000000803F08000000BE922449123EABAAF7
15:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52
16:1000F000AA3E00000000BF000000803F000000009A
17:1001000000084178D3BB4387D1133D190E3CC3BDD2
18:100110004282AD2B3E68EC8276BED98FE1A93E4C7F
19:1001200080EFFFBE01C4FF7F3F00000000003500EC
20:100130001E001F00200021002200230024002500B3
21:10014000260027002A002B0014001A0008001500C2
22:1001500017001C0018000C00120013002A002900D0
23:1001600004001600070009000A000B000D000E0035
24:100170000F0033003400E1001D001B0006001900D1
25:10018000050011001000360037003800280000304C
26:10019000E000E200E30003522C002C000452500067
27:1001A000510052004F0035001E001F0020002100AA
28:1001B0002200230024002500260027002A002B000F
29:1001C00014001A00090013000A000D000F001800A7
30:1001D0001C0033002A002900040015001600170037
31:1001E00007000B00110008000C0012003400E100B1
32:1001F0001D001B000600190005000E00100036004F
33:100200003700380028000030E000E200E30003522D
34:100210002C002C0004525000510052004F003500B9
35:100220001E001F00200021002200230024002500C2
36:10023000260027002A002B00340036003700130068
37:100240001C0009000A00060015000F002A00290002
38:1002500004001200080018000C0007000B00170033
39:10026000110016003800E100330014000D000E00EC
40:100270001B00050010001A0019001D0028000030A6
41:10028000E000E200E30003522C002C000452500076
42:10029000510052004F0035001E001F0020002100B9
43:1002A0002200230024002500260027002A00350212
44:1002B0001E021F0220022102220223022402250222
45:1002C000260227022A0001003A003B003C003D00C4
46:1002D0003E003F002D022E022F02300231020100AB
47:1002E00040004100420043004400450000530153D8
48:1002F0000253005001000100010001000100010053
49:10030000010001000100AB00AA00A900AE00350009
50:100310001E001F00200021002200230024002500D1
51:10032000260027002A0035001E001F0020002100A3
52:100330002200230024002500260027002A000100B7
53:100340003A003B003C003D003E003F002D002E00E7
54:100350002F00300031000100400041004200430006
55:1003600044004500005301530253005001000100B6
56:100370000100010001000100010001000100AB00CB
57:10038000AA00A900AE002A035400680065002000FE
58:100390005000720065006F006E006900630020006D
59:1003A0004B006500790062006F006100720064001C
60:1003B00000002C034F007200740068006F006C0096
61:1003C00069006E0065006100720020004B0065004E
62:1003D000790062006F006100720064007300000029
63:1003E000040309040902D000060100A0FA09040070
64:1003F000000103010100092111010001223F000752
65:1004000005810308000A0904010001030102000933
66:100410002111010001224D000705820308000A098D
67:10042000040200010300000009211101000122362D
68:10043000000705830308000A090403000203000003
69:10044000000921110100012220000705840320007A
70:100450000107050403200001090404000001010054
71:100460000009240100010900010509040500020139
72:1004700003000007240100014100062402010100DD
73:1004800006240202020009240301030102010009FB
74:1004900024030204010101000905060240000500D1
75:1004A0000005250101010905850240000500000540
76:1004B000250101031201100100000008EDFE61603A
77:1004C0000100010200010631FF0974A1010975153F
78:1004D0000025FF9520750881020976150025FF95F6
79:1004E0002075089102C005010980A101850216014D
80:1004F0000026B7001A01002AB70075109501810087
81:10050000C0050C0901A1018503160100269C021AF1
82:1005100001002A9C02751095018100C005010902A5
83:10052000A1010901A10005091901290515002501ED
84:100530009505750181029501750381010501093059
85:1005400009311581257F95027508810609381581C5
86:10055000257F950175088106050C0A38021581254D
87:100560007F950175088106C0C005010906A1010536
88:100570000719E029E7150025019508750181029505
89:100580000175088101050819012905950575019175
90:10059000029501750391010507190029FF15002532
91:1005A000FF950675088100C011241FBECFEFDAE069
92:1005B000DEBFCDBF04B603FE24C080910404909139
93:1005C0000504A0910604B09107048730904BA74022
94:1005D000B04BB9F410920404109205041092060472
95:1005E0001092070414BE84B7877F84BF88E10FB6DA
96:1005F000F89480936000109260000FBEE0E0F8E392
97:10060000099512E0A0E0B1E0EEE1F9E602C0059044
98:100610000D92A832B107D9F714E0A8E2B2E001C008
99:100620001D92A430B107E1F70E94A0130C948D3401
100:100630000C94000061110DC0FC018281882331F00F
101:1006400085EE0E94671E0E94683003C085EE0E94FE
102:100650002F1F80E090E008950E940F0E40E050E0D0
103:1006600069E070E080E091E00C94600F08950E94D2
104:1006700049036E9A769A8CE293E0892B11F00C94E0
105:100680002C03089586E393E0892B11F00C94360334
106:100690000895279A2F988FEF9FEF9093870080936C
107:1006A00086008AE08093800089E1809381000C9429
108:1006B000113081110BC080918000877F8093800072
109:1006C00010928D0010928C002F9808952F988330EF
110:1006D00041F4809180008860809380008FEF9FEFCD
111:1006E00012C09091800098609093800023E030E0E9
112:1006F000281B3109220F331F8FEF9FEF02C0969501
113:1007000087952A95E2F790938D0080938C00089549
114:100710008B3B910568F4883A910530F5853A91054F
115:10072000C0F48430910598F4019709F06FC071C04E
116:10073000803E910508F46AC0883E910540F09C0116
117:10074000205F31092031310508F060C05CC09C0198
118:10075000A1C0853A910509F45FC0863A910509F474
119:100760005EC023E830E496C0883A910509F45AC087
120:10077000893A910509F459C08A3A910509F458C09B
121:100780008B3A910509F457C08C3A910509F456C08B
122:100790008D3A910509F455C0803B910509F454C088
123:1007A0008E3A910509F453C08F3A910509F452C06D
124:1007B000813B910509F451C0823B910509F450C079
125:1007C000833B910509F44FC0843B910509F44EC069
126:1007D000853B910509F44DC0863B910509F44CC059
127:1007E000873B910509F44BC0883B910509F44AC049
128:1007F000893B910509F449C08A3B910509F048C03D
129:100800002AE236E447C09C01306544C020E030E075
130:1008100041C021E030E03EC021E830E43BC022E8A6
131:1008200030E438C022EE34E435C029EE34E432C07E
132:100830002AEE34E42FC025EB34E42CC026EB34E45C
133:1008400029C027EB34E426C02CEC34E423C02DEC83
134:1008500034E420C023E835E41DC02AE835E41AC09A
135:1008600022E935E417C024E935E414C021E236E476
136:1008700011C023E236E40EC024E236E40BC025E2C8
137:1008800036E408C026E236E405C027E236E402C0BA
138:1008900020E034E4C90108959CE0799FF00111241F
139:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71
140:1008B000FF1FE25DFE4F25913491C9010895880F15
141:1008C000991F82559040FC0125913491C9010895EA
142:1008D000880F991F825D9E4FFC0125913491C901BB
143:1008E00008950E944C049C019A9581159F4110F433
144:1008F000C9010895C90190528115904128F4C90198
145:100900009F700E9468040895C90190538115904119
146:1009100020F4C9019927906C0895C901905440971B
147:1009200028F4C9018F709927946D0895203180E4CF
148:10093000380719F480E091ED0895213190E43907EA
149:1009400019F480E090ED0895223140E4340719F461
150:1009500080E092ED0895233180E4380719F480E0B7
151:1009600093ED0895211590E5390799F40E945623D7
152:1009700040E065E088E491E00E94600F2FEF44E3DF
153:100980008CE0215040408040E1F700C000000C9412
154:10099000FE29213090E5390731F48091F002816021
155:1009A0008093F0020895C90190558115904108F097
156:1009B00062C0432F55274F70552741305105F9F438
157:1009C000C90174E0880F991F7A95E1F78827937021
158:1009D000B901E3E0660F771FEA95E1F760767727C4
159:1009E000862B972B9C682370332702C0440F551F1A
160:1009F0002A95E2F74F715527842B952B08954230A5
161:100A0000510529F4922F8827816F906A0895433009
162:100A10005105B9F4C90153E0880F991F5A95E1F7C0
163:100A2000807E97702370332741E050E002C0440F6E
164:100A3000551F2A95E2F74F715527842B952B9C68FB
165:100A400008954430510589F5C90143E0880F991F85
166:100A50004A95E1F7807E97702370332741E050E09C
167:100A600002C0440F551F2A95E2F74F715527842B7A
168:100A7000952B9A680895C90190568115904118F4F4
169:100A8000C901906F0895C90190578115904120F4D4
170:100A9000C9019F7090620895C901905881159041D5
171:100AA00020F4C9019F70906A0895203E3105E0F45A
172:100AB000203C310568F52133310509F475C048F44F
173:100AC0002932310509F46BC02A32310509F07BC0A7
174:100AD00075C02933310501F122383105E9F025339C
175:100AE000310509F070C051C0233E3105B1F140F429
176:100AF000203E3105D1F0223E310509F064C01CC012
177:100B0000263E310579F1273E310509F05CC038C039
178:100B1000C9010E945F0408958091010380FD02C015
179:100B200081FF51C080EE90E04FC08091010380FFB3
180:100B3000F9CF89E390E048C08091010382FF0AC0A9
181:100B40008091010384FF03C080E090E03DC083EE0C
182:100B500090E03AC082EE90E037C08091010382FFBE
183:100B6000EFCFF8CF8091010383FF07C0809101038D
184:100B700084FDEACF87EE90E027C086EE90E024C0A7
185:100B80008091010383FFF2CFF8CF8091010385FFAD
186:100B900003C089E290E018C085E390E015C0809121
187:100BA000010385FDF9CFF5CF8091010386FF03C0D6
188:100BB0008AE290E009C081E390E006C080910103E1
189:100BC00086FDF9CFF5CFC9010E94880308950895E5
190:100BD0005F926F927F928F929F92AF92BF92CF92CD
191:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6
192:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9
193:100C00002F5F3F4F4E018BE0880E911C60E070E03B
194:100C100000E010E0E12CF12CC12CD12CA12CB12C46
195:100C20008AE0782E622E532E41E050E0E3E9F1E0B5
196:100C3000A62DB52D872D01900D928A95E1F7F9012A
197:100C4000819191919F01FC01E07FFF27E032F10546
198:100C500059F48F709927FA0102C0EE0FFF1F8A9591
199:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E
200:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC
201:100C8000DF2A29C0E034F10559F48F709927FA0161
202:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063
203:100CA000E035F10559F48F709927FA0102C0EE0F73
204:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2
205:100CC00051F48F709927FA0102C0EE0FFF1F8A9529
206:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9
207:100CE0008A2D8095892384B985B18A2985B997B1E0
208:100CF0008C2D8095892387B988B18C2988B99AB1C0
209:100D00008E2D809589238AB98BB18E298BB99DB19F
210:100D1000802F809589238DB98EB1802B8EB990B3A9
211:100D2000862F8095892380BB81B3862B81BB2A9631
212:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC
213:100D40000F91FF90EF90DF90CF90BF90AF909F906A
214:100D50008F907F906F905F9008955F926F927F92D7
215:100D60008F929F92AF92BF92CF92DF92EF92FF92BB
216:100D70000F931F93CF93DF93CDB7DEB768970FB66E
217:100D8000F894DEBF0FBECDBF85B7806885BF85B73D
218:100D9000806885BF0E94E8059E012F5F3F4F4E018E
219:100DA00089E1880E911C60E070E000E010E0E12C29
220:100DB000F12CC12CD12CA12CB12C98E1792E622ED2
221:100DC000532E41E050E0EDE9F1E0A62DB52D872D41
222:100DD00001900D928A95E1F7F901819191919F011E
223:100DE000FC01E07FFF27E032F10559F48F7099276D
224:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62
225:100E000037C0E033F10559F48F709927FA0102C019
226:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1
227:100E2000F10559F48F709927FA0102C0EE0FFF1FE8
228:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446
229:100E40008F709927FA0102C0EE0FFF1F8A95E2F713
230:100E50000E2B1F2B0DC0E036F10551F48F70992732
231:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F
232:100E70002815390509F0A7CF94B18A2D80958923CB
233:100E800084B985B18A2985B997B18C2D809589233C
234:100E900087B988B18C2988B99AB18E2D809589231C
235:100EA0008AB98BB18E298BB99DB1802F809589230A
236:100EB0008DB98EB1802B8EB990B3862F8095892302
237:100EC00080BB81B3862B81BB10922902109228022D
238:100ED000109233021092320210922B0210922A02C8
239:100EE000109235021092340210922D0210922C02B0
240:100EF000109237021092360210922F0210922E0298
241:100F0000109239021092380210923102109230027F
242:100F100010923B0210923A0287E393E0892BB9F0DA
243:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC
244:100F30001F910F91FF90EF90DF90CF90BF90AF90F7
245:100F40009F908F907F906F905F900C94370368967E
246:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA
247:100F60000F91FF90EF90DF90CF90BF90AF909F9048
248:100F70008F907F906F905F9008955F926F927F92B5
249:100F80008F929F92AF92BF92CF92DF92EF92FF9299
250:100F90000F931F93CF93DF93CDB7DEB7A2970FB612
251:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17
252:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26
253:100FC0003AE0532E470101E010E048E1642E55E07D
254:100FD000752EE3E9F1E0D401852D01900D928A95FB
255:100FE000E1F7F701819191917F019C01207F3327E7
256:100FF0002032310589F424B18F709927A80102C0ED
257:10100000440F551F8A95E2F7CA01242B24B995B1E4
258:101010008095892385B94FC02033310589F427B1E4
259:101020008F709927F80102C0EE0FFF1F8A95E2F733
260:10103000CF012E2B27B998B18095892388B93BC061
261:101040002034310589F42AB18F709927A80102C094
262:10105000440F551F8A95E2F7CA01242B2AB99BB188
263:10106000809589238BB927C02035310589F42DB1AE
264:101070008F709927F80102C0EE0FFF1F8A95E2F7E3
265:10108000CF012E2B2DB99EB1809589238EB913C027
266:101090002036310581F420B38F709927A80102C052
267:1010A000440F551F8A95E2F7CA01242B20BB91B348
268:1010B0008095892381BB50EA5A95F1F7BE016F5F95
269:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC
270:1010D0001196462D01900D924A95E1F7FB01419141
271:1010E0005191BF01FA01E07FFF27E032F10511F4D1
272:1010F000E3B113C0E033F10511F4E6B10EC0E03402
273:10110000F10511F4E9B109C0E035F10511F4ECB1D4
274:1011100004C0E036F105B9F4EFB1F0E04F705527A7
275:1011200002C0F595E7954A95E2F7E0FD08C0A801F1
276:10113000022E02C0440F551F0A94E2F702C040E09D
277:1011400050E0842B952B2F5F3F4F2C30310509F059
278:10115000BCCFF601208131812817390721F0918316
279:101160008083709270010E94E805F2E0CF0ED11CDE
280:10117000EA14FB0409F02DCF809170018823A1F1BE
281:10118000815080937001882339F08FE99FE00197A7
282:10119000F1F700C0000028C0809132029091330224
283:1011A0009093290280932802809134029091350215
284:1011B00090932B0280932A028091360290913702FD
285:1011C00090932D0280932C028091380290913902E5
286:1011D00090932F0280932E0280913A0290913B02CD
287:1011E000909331028093300282E493E0892B11F0D6
288:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4
289:10120000CDBFDF91CF911F910F91FF90EF90DF90B5
290:10121000CF90BF90AF909F908F907F906F905F9096
291:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D
292:10123000918108950895CF92DF92EF92FF920F93DC
293:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601
294:10125000F894DEBF0FBECDBF8C01862F642F88238C
295:1012600079F0F80192812FE7482F992329F083E044
296:1012700093E00E94C41904C083E093E00E94D41953
297:10128000F80180818B3091F59181943009F0A8C2EA
298:101290009281809173019923B1F08F5F80937301E4
299:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207
300:1012B0009A95E1F7E0917101F0917201EE0FFF1F35
301:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03
302:1012D000BD4F01900D929A95E1F7E0917101F09167
303:1012E0007201EE0FFF1F21E332E093C08A3009F054
304:1012F000CBC0F8019181943009F072C29281809143
305:101300007301992309F473C081508093730196E4AB
306:10131000E5EBF1E0DE01A551BE4F01900D929A95EB
307:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA
308:1013300031E02C0F3D1FE20FF31F60817181680FB8
309:10134000711D882777FD8095982F0E94AC3120E091
310:1013500030E040E451E40E94113120E030E040E808
311:1013600050E40E94A9309B01AC0160E070E080E095
312:1013700090E40E94C33221E230ED42E053E40E9447
313:1013800060324CE050E00E94BB0F20E04BE760E091
314:1013900083E093E00E94B41920E04BE761E083E032
315:1013A00093E00E94B41920E04BE762E083E093E011
316:1013B0000E94B41920E04BE763E083E093E00E94D1
317:1013C000B41920E04BE764E083E093E0C454DD4FC0
318:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146
319:1013E0000F91FF90EF90DF90CF900C94B41996E49A
320:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501
321:10140000E1F7E0917101F0917201EE0FFF1F25EA03
322:1014100031E02C0F3D1FE20FF31F60817181680FD7
323:10142000711D882777FD8095982F0E94AC3120E0B0
324:1014300030E040E451E40E94113120E030E040E827
325:1014400050E40E94A9309B01AC0160E070E080E0B4
326:1014500090E40E94C33221E230ED42E053E40E9466
327:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F
328:101470000FBECDBFDF91CF911F910F91FF90EF90E5
329:10148000DF90CF900C94BE0C893009F0D3C0F801E6
330:101490009181943009F0A4C19281992309F4A0C1EB
331:1014A00080917101909172010196909372018093E5
332:1014B000710120E04BE760E083E093E00E94B41903
333:1014C00020E04BE761E083E093E00E94B41920E064
334:1014D0004BE762E083E093E00E94B41920E04BE721
335:1014E00063E083E093E00E94B41920E04BE764E0FE
336:1014F00083E093E00E94B4190E94BE0C00E010E06B
337:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5
338:10151000BE4F9F2D01900D929A95E1F7E0917101D8
339:10152000F0917201E00FF11FEE0FFF1F2FE531E088
340:101530002C0F3D1FE20FF31F60817181680F711D39
341:10154000882777FD8095982F0E94AC3120E030E00D
342:1015500040E451E40E94113120E030E040E850E4E2
343:101560000E94A9309B01AC0160E070E080E090E453
344:101570000E94C33221E230ED42E053E40E94603227
345:101580004CE050E00E94BB0F3FEF87EE93E03150FC
346:1015900080409040E1F700C0000080917301E5EBCE
347:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E
348:1015B000E1F7E0917101F0917201E00FF11FEE0F80
349:1015C000FF1F29E131E02C0F3D1FE20FF31F608167
350:1015D0007181680F711D882777FD8095982F0E9473
351:1015E000AC3120E030E040E451E40E94113120E0D1
352:1015F00030E040E850E40E94A9309B01AC0160E07B
353:1016000070E080E090E40E94C33221E230ED42E0DD
354:1016100053E40E9460320E94EB0C8FEF9CE701972D
355:10162000F1F700C000000F5F1F4F0830110509F0EF
356:1016300069CF94C1883009F0D3C0F801918194300A
357:1016400009F0CEC09281992309F4CAC0809171013A
358:10165000909172010197909372018093710120E043
359:101660004BE760E083E093E00E94B41920E04BE791
360:1016700061E083E093E00E94B41920E04BE762E070
361:1016800083E093E00E94B41920E04BE763E083E03D
362:1016900093E00E94B41920E04BE764E083E093E01C
363:1016A0000E94B4190E94BE0C00E010E056E4F52E32
364:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C
365:1016C00001900D929A95E1F7E0917101F09172010C
366:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39
367:1016E000E20FF31F60817181680F711D882777FDFC
368:1016F0008095982F0E94AC3120E030E040E451E426
369:101700000E94113120E030E040E850E40E94A9300E
370:101710009B01AC0160E070E080E090E40E94C33285
371:1017200021E230ED42E053E40E9460324CE050E0B0
372:101730000E94BB0F3FEF87EE93E031508040904016
373:10174000E1F700C0000080917301E5EBF1E0DE01FC
374:10175000A357BF4F9F2D01900D929A95E1F7E0910D
375:101760007101F0917201E00FF11FEE0FFF1F2DE8E4
376:1017700030E02C0F3D1FE20FF31F60817181680F75
377:10178000711D882777FD8095982F0E94AC3120E04D
378:1017900030E040E451E40E94113120E030E040E8C4
379:1017A00050E40E94A9309B01AC0160E070E080E051
380:1017B00090E40E94C33221E230ED42E053E40E9403
381:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD
382:1017D00000000F5F1F4F0830110509F069CFBEC030
383:1017E000F801228190917301222309F45DC026E45F
384:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568
385:10180000E1F7E0917101F0917201E80FF11DEE0F27
386:10181000FF1F27E430E02C0F3D1FE20FF31F608114
387:101820007181690F711D882777FD8095982F0E941F
388:10183000AC3120E030E040E451E40E9411316B0112
389:101840007C01F801818165E070E0681B71098827DF
390:1018500077FD8095982F0E94AC319B01AC01C701A8
391:10186000B6010E94A9309B01AC0160E070E080E00D
392:1018700090E40E94C33221E230ED42E053E40E9442
393:1018800060324FE050E0C454DD4F0FB6F894DEBF35
394:101890000FBECDBFDF91CF911F910F91FF90EF90C1
395:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176
396:1018B000119601900D922A95E1F7E0917101F09156
397:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39
398:1018D0003D1FE20FF31F60817181690F711D882721
399:1018E00077FD8095982F0E94AC3120E030E040E4F5
400:1018F00051E40E9411316B017C01F801818165E0A6
401:1019000070E0681B7109882777FD8095982F0E94E9
402:10191000AC319B01AC01C701B6010E94A9309B010B
403:10192000AC0160E070E080E090E40E94C33221E20C
404:1019300030ED42E053E40E946032C454DD4F0FB6F4
405:10194000F894DEBF0FBECDBFDF91CF911F910F91F5
406:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0
407:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0
408:101970000F91FF90EF90DF90CF9008951092870223
409:1019800010928602809171008D7F8093710080910A
410:1019900090008F7780939000109248021092470237
411:1019A00010928002109281021092820210928302A1
412:1019B00010927F0210927E02EEE5F2E0AEE4B2E019
413:1019C00011921192119211921D921D9282E0EE37A6
414:1019D000F807B1F708956F927F928F929F92AF921E
415:1019E000BF92CF92DF92EF92FF920F931F93CF930C
416:1019F000DF936B017C010EE712E04CE5A42E42E080
417:101A0000B42EC7E0D0E0A7019601F801929182912F
418:101A1000729162918F010E940D31882349F02197C4
419:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB
420:101A3000F8011082118212821382F5011182108244
421:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA
422:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5
423:101A600055816681778140835183628373831482B9
424:101A700015821682178212962D913C91139711961A
425:101A80003C932E9313961C921E92129734961296A4
426:101A90008730910519F7C3CF809186029091870214
427:101AA000019797FD05C0909387028093860204C03A
428:101AB0001092870210928602E0918602F0918702CE
429:101AC0003097C9F4809171008D7F8093710080916F
430:101AD00090008F7780939000109280021092810284
431:101AE000109282021092830210927F0210927E0264
432:101AF0001092470285C03197DF01AA0FBB1FAA0FC2
433:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23
434:101B1000FF1FE25BFD4FC081D18160908002709019
435:101B200081028090820290908302A7019601662D27
436:101B3000772D882D992D0E940D3187FF25C0262DE8
437:101B4000372D482D592DC701B6010E94A83020E03D
438:101B500030E04AEF54E40E9411315B018C012A2DE0
439:101B60003B2D402F512F662D772D882D992D0E94CA
440:101B7000A9303B014C01A7019601772D992D0E94B8
441:101B80000D31181664F72EC0A7019601662D772D2A
442:101B9000882D992D0E945C32181634F5A701960104
443:101BA000662D772D882D992D0E94A83020E030E0F9
444:101BB0004AEF54E40E9411315B018C012A2D3B2D28
445:101BC000402F512F662D772D882D992D0E94A830FA
446:101BD0003B014C01A7019601772D992D0E945C32A3
447:101BE00087FFECCF10924D02C0928002D09281020A
448:101BF000E0928202F0928302D0937F02C0937E0231
449:101C0000DF91CF911F910F91FF90EF90DF90CF90D8
450:101C1000BF90AF909F908F907F906F9008953E9A65
451:101C2000E1E7F0E080818D7F808382E08093900007
452:101C30008AE18093910008951F920F920FB60F9240
453:101C40001124CF92DF92EF92FF922F933F934F9305
454:101C50005F936F937F938F939F93AF93BF93CF9334
455:101C6000DF93EF93FF9380914702882309F479C0B3
456:101C700020E030E0A90160918002709181028091A2
457:101C80008202909183020E945C3218160CF069C0A7
458:101C900020E030E040E251E46091490270914A0254
459:101CA00080914B0290914C020E945C321816BCF459
460:101CB00080918402909185020196609186027091D4
461:101CC00087020E9448349093850280938402109288
462:101CD000490210924A0210924B0210924C02C0919B
463:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC
464:101CF000DD4F288139814A815B8160E074E284E7AD
465:101D00009BE40E9411310E94793170939700609397
466:101D10009600288139814A815B8160E074E284E722
467:101D20009BE40E9411310E947931759567957093FB
468:101D300099006093980020E030E040E85FE3609114
469:101D4000490270914A0280914B0290914C020E948C
470:101D5000A9306093490270934A0280934B0290939A
471:101D60004C0280914802882309F493C0C09043023A
472:101D7000D0904402E0904502F090460220E030E02E
473:101D8000A901C701B6010E945C321816F4F4A7013C
474:101D9000960160E074E284E79BE40E9411310E94A6
475:101DA00079317093970060939600A701960160E0E7
476:101DB00074E284E79BE40E9411310E9479317595A9
477:101DC0006795709399006093980060913D027091BF
478:101DD0003E026F5F7F4F70933E0260933D0280E052
479:101DE00090E00E94AA3120913F0230914002409140
480:101DF0004102509142020E945C3287FD4AC08091AC
481:101E00003C028F5F80933C029091F0038917A0F011
482:101E10008091F503882319F010923C020DC0809147
483:101E200071008D7F80937100809190008F778093F7
484:101E30009000109248022DC0E091F103F091F2035E
485:101E400080913C0298E0899FE00DF11D1124808172
486:101E50009181A281B3818093430290934402A09325
487:101E60004502B093460220E030E040E85EE3648142
488:101E70007581868197810E94603260933F027093E2
489:101E80004002809341029093420210923E021092CF
490:101E90003D02FF91EF91DF91CF91BF91AF919F9163
491:101EA0008F917F916F915F914F913F912F91FF9013
492:101EB000EF90DF90CF900F900FBE0F901F9018956E
493:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174
494:101ED00080914702882331F04A8369830E94BE0CB7
495:101EE00069814A8181E0809348021093F203009354
496:101EF000F1036093F0034093F503109249021092AE
497:101F00004A0210924B0210924C0210923C02F801CD
498:101F10004081518162817381409343025093440216
499:101F2000609345027093460220E030E040E85EE3B3
500:101F300064817581868197810E94603260933F023F
501:101F400070934002809341029093420210923E02AD
502:101F500010923D02809171008260809371008091A7
503:101F600090008068809390000F900F90DF91CF9148
504:101F70001F910F9108956F927F928F929F92AF92CF
505:101F8000BF92CF92DF92EF92FF920F931F93CF9366
506:101F9000DF936B017C01EA018091480281110E946C
507:101FA000BE0C81E08093470220E030E0A901C70128
508:101FB000B6010E945C3218160CF09AC06090800244
509:101FC00070908102809082029090830220E030E045
510:101FD000A901662D772D882D992D0E940D31811133
511:101FE00028C0C0928002D0928102E0928202F092D8
512:101FF0008302D0937F02C0937E02809186029091EB
513:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C
514:10201000C082D182E282F382FC01EE0FFF1FE25BFD
515:10202000FD4FD183C08301969093870280938602EF
516:102030005FC0A7019601662D772D882D992D0E94EE
517:102040000D3187FF25C0262D372D482D592DC7016D
518:10205000B6010E94A83020E030E04AEF54E40E942C
519:1020600011315B018C012A2D3B2D402F512F662D04
520:10207000772D882D992D0E94A9303B014C01A70195
521:102080009601772D992D0E940D31181664F7A9CF6E
522:10209000A7019601662D772D882D992D0E945C321F
523:1020A00018160CF09ECFA7019601662D772D882D6E
524:1020B000992D0E94A83020E030E04AEF54E40E94BD
525:1020C00011315B018C012A2D3B2D402F512F662DA4
526:1020D000772D882D992D0E94A8303B014C01A70136
527:1020E0009601772D992D0E945C3287FFECCF79CF36
528:1020F000809171008260809371008091900080686F
529:1021000080939000DF91CF911F910F91FF90EF90FE
530:10211000DF90CF90BF90AF909F908F907F906F9007
531:102120000895809191020895CF93DF9300D01F927C
532:10213000CDB7DEB72091FA03243021F523E02983BF
533:102140009B838A832093E9008FEF06C095ED9A95D3
534:10215000F1F70000882329F09091E800815095FF65
535:10216000F5CF8091E80085FF0DC040E050E063E0CE
536:1021700070E0CE0101960E947E148091E8008E7777
537:102180008093E8000F900F900F90DF91CF9108950A
538:10219000CF93DF9300D01F92CDB7DEB72091FA0323
539:1021A000243029F522E029839B838A8383E080936E
540:1021B000E9008FEF06C095ED9A95F1F700008823AE
541:1021C00029F09091E800815095FFF5CF8091E800CB
542:1021D00085FF0DC040E050E063E070E0CE01019665
543:1021E0000E947E148091E8008E778093E8000F9023
544:1021F0000F900F90DF91CF9108952091FA03243032
545:10220000F9F422E02093E9002FEF06C035ED3A956E
546:10221000F1F70000222329F03091E800215035FF2A
547:10222000F5CF2091E80025FF0BC040E050E065E0CD
548:1022300070E00E947E148091E8008E778093E80021
549:102240000895CF93DF93EC018091FA03843041F538
550:1022500081E08093E9008FEF06C095ED9A95F1F744
551:102260000000882329F09091E800815095FFF5CF78
552:102270008091E80085FF14C040E050E068E070E025
553:10228000CE010E947E148091E8008E778093E80052
554:1022900088E0FE01A9E8B2E001900D928A95E1F78D
555:1022A000DF91CF910895BF92CF92DF92EF92FF928C
556:1022B0000F931F93CF93DF937C01B62EE90100E0CB
557:1022C00010E0C42ED12C0BC04991202F2B0D2F775D
558:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5
559:1022E0001D0594F3DF91CF911F910F91FF90EF9017
560:1022F000DF90CF90BF90089570E06F5F7F4F6F7059
561:1023000077270C94B4190F931F93CF93C42F633086
562:10231000710509F04AC0842F807F803849F18039E7
563:1023200009F043C0622F6F7770E080E090E00E9478
564:10233000AC3120E030E040E451E40E9411319B01D7
565:10234000AC0160E070E080E090E40E94C3320F775F
566:1023500010E023E0159507952A95E1F72DEC3CEC6C
567:1023600042E053E40E946032A8010E94BB0F1DC0EE
568:10237000622F6F7770E080E090E00E94AC3120E047
569:1023800030E040E451E40E9411319B01AC0160E077
570:1023900070E080E090E40E94C3322DEC3CEC42E01F
571:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1
572:1023B0001F910F910C94BE0CCF911F910F91089516
573:1023C0000F931F93CF93DF93CDB7DEB727970FB649
574:1023D000F894DEBF0FBECDBF8C0114C08A810E946D
575:1023E0008E199A819D839B819E839C819F838111FD
576:1023F0001EC089818430B1F08730A1F08630A1F011
577:102400008530A1F0BE016F5F7F4F84E791E00E94AD
578:10241000FB1C8111E3CF84E791E00E94EC1C0E9439
579:1024200067190DC083E003C082E001C081E0AE0106
580:102430004B5F5F4F682FC8010E94211AE3CF279698
581:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5
582:102450000F910895EF92FF920F93CF93DF9300D0E7
583:1024600000D000D0CDB7DEB77B014A832B830C832D
584:10247000842F2E834D830E948E192E814D818111D0
585:102480001BC082E0E816F10479F083E0E816F1045D
586:1024900021F0EA94EF2821F50BC0073F11F487E003
587:1024A00001C084E089830BC0273FD9F786E0FACFCB
588:1024B000473FB9F785E0F6CF42954F704983BE019B
589:1024C0006F5F7F4F84E791E00E94B11C84E791E049
590:1024D0000E94CF1C84E791E00E94EC1C0E946719C7
591:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119
592:1024F0000F91FF90EF9008958091F903811109C029
593:102500000E946D160E94CA168091E200846080933A
594:10251000E20008951092F9030895089508950C9427
595:102520006129809192028F5F8093920262E30E9400
596:102530002834911135C01092920280919302882321
597:1025400079F18091FA03843049F58091E9008F7028
598:102550009091EC0090FF02C090E801C090E0982BB1
599:1025600084E08093E9008091EB0080FF14C08091AB
600:10257000EE0087FD03C00FC01092F1008091E800CB
601:1025800085FDFACF8091E80080FF05C08091E800CA
602:102590008E778093E8009F709093E90010929302E9
603:1025A000089542E061EC81E00E94E31542E061ECB5
604:1025B00082E00E94E31542E061EC83E00E94E315B3
605:1025C00042E261EC84E00E94E31542E361E885E0C9
606:1025D0000E94E31542E360E886E00C94E3158091E5
607:1025E000FC03833009F454C030F4813071F0823040
608:1025F00009F0A5C08CC08A3009F479C08B3009F489
609:102600005FC0893009F09BC020C08091FB03813AF4
610:1026100009F095C08091E800877F8093E800809161
611:10262000FF0390910004892B21F060E080E090E0AE
612:1026300003C068E089E892E070E00E941C15809178
613:10264000E8008B778093E80008958091FB03813246
614:1026500009F075C08091FF0390910004892B09F067
615:102660006EC08091E800877F8093E80005C080916C
616:10267000FA03882309F463C08091E80082FFF7CF52
617:102680008091F100809391028091E8008B7753C094
618:102690008091FB03813A09F052C08091FF03909131
619:1026A0000004892B09F04BC08091E800877F80935C
620:1026B000E8008091E80080FFFCCF80918A0136C05D
621:1026C0008091FB038132D9F58091FF039091000442
622:1026D000892BA9F58091E800877F8093E8000E940C
623:1026E0001A168091FD0380938A010C9456238091E1
624:1026F000FB03813221F58091E800877F8093E80019
625:102700000E941A168091FE0380938802089580919A
626:10271000FB03813AA1F48091E800877F8093E80071
627:102720008091E80080FFFCCF809188028093F100C7
628:102730008091E8008E778093E8000C941A16089533
629:1027400083E093E00E94F0196AE272E183E093E093
630:102750000E94461A60EE71E183E093E00E944A1AFB
631:1027600084B7877F84BF88E10FB6F89480936000B8
632:10277000109260000FBE90E080E80FB6F89480934E
633:102780006100909361000FBE0E94741D0E946D163F
634:102790000E94CA168091E20084608093E2007894DF
635:1027A00063E871E183E093E00E94EC196CE771E16A
636:1027B00083E093E00E94E41963E571E183E093E034
637:1027C0000E94E8190E940F0E0E9467190E94761D50
638:1027D00080E891E00E94201D0BC00E941E2980917C
639:1027E000F803882329F00E94492981110E94681466
640:1027F0008091FA03853089F383E093E00E94F91B0E
641:102800000E94801DF5CF292F332723303105B1F0E9
642:102810004CF42130310509F44DC02230310509F066
643:102820004EC007C02132310541F12232310591F10C
644:1028300046C0E0EDF0E084EE93E045C0992781309A
645:10284000910569F08230910589F0892B09F037C034
646:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0
647:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2
648:10287000E491F0E086E893E026C0643000F5E62FAE
649:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF
650:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1
651:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA
652:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085
653:1028C000F0E080E090E0DA018D939C93CF010895D1
654:1028D00080E189BD82E189BD09B400FEFDCF809110
655:1028E000D8008F7D8093D8008091E0008260809333
656:1028F000E0008091E00081FDFCCF0895BF92CF926F
657:10290000DF92EF92FF920F931F93CF93DF937C019F
658:102910008B01EA010E943B16B82E811133C020972B
659:1029200031F028813981021B130BE20EF31EC12CFA
660:10293000D12C23C08091E80085FD15C08091E8006E
661:102940008E778093E800209749F0888199818C0DDB
662:102950009D1D9983888325E0B22E14C00E943B16EA
663:10296000882359F00EC0F70181917F018093F10017
664:1029700001501109FFEFCF1ADF0A01151105D1F639
665:1029800001C0B82E8B2DDF91CF911F910F91FF9039
666:10299000EF90DF90CF90BF900895BF92CF92DF92DB
667:1029A000EF92FF920F931F93CF93DF937C018B01E4
668:1029B000EA010E943B16B82E811133C0209731F0F6
669:1029C00028813981021B130BE20EF31EC12CD12C7E
670:1029D00023C08091E80085FD15C08091E8008B77C9
671:1029E0008093E800209749F0888199818C0D9D1D86
672:1029F0009983888345E0B42E14C00E943B16882337
673:102A000059F00EC08091F100F70181937F010150D0
674:102A10001109FFEFCF1ADF0A01151105D1F601C028
675:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA
676:102A3000DF90CF90BF90089540910104509102041F
677:102A40004617570748F06115710539F44091E800C1
678:102A50004E774093E80001C0BA01FC0140E033C06A
679:102A60008091FA03882309F444C0853009F443C0F7
680:102A70008091E80083FD41C08091E80082FD33C071
681:102A80008091E80080FF1FC09091F3008091F200D8
682:102A9000392F20E0A901482BCA0106C0419140937B
683:102AA000F1006150710901966115710519F08830C6
684:102AB0009105A0F341E0089709F040E08091E8001B
685:102AC0008E778093E8006115710551F64111C8CFEA
686:102AD0000AC08091FA03882361F0853061F080910B
687:102AE000E80083FD0AC08091E80082FFF2CF80E019
688:102AF000089582E0089583E0089581E0089540916B
689:102B00000104509102044617570748F061157105FA
690:102B100039F44091E8004E774093E80001C0BA01D3
691:102B2000FC0140E034C08091FA03882309F445C0D9
692:102B3000853009F444C08091E80083FD42C0809153
693:102B4000E80082FD34C08091E80080FF20C09091B1
694:102B5000F3008091F200392F20E0A901482BCA012F
695:102B600007C044914093F10031966150710901967C
696:102B70006115710519F08830910598F341E00897C7
697:102B800009F040E08091E8008E778093E8006115BD
698:102B9000710549F64111C7CF0AC08091FA03882315
699:102BA00061F0853061F08091E80083FD0AC080917A
700:102BB000E80082FFF2CF80E0089582E0089583E08C
701:102BC000089581E00895982F2CC09093E9009817FC
702:102BD00039F07091EC002091ED005091F00003C0AD
703:102BE000242F762F50E021FD02C09F5F1AC0309144
704:102BF000EB003E7F3093EB003091ED003D7F309352
705:102C0000ED003091EB0031603093EB007093EC00FD
706:102C10002093ED005093F0002091EE0027FDE5CFCA
707:102C200007C0973090F28F708093E90081E008959B
708:102C300080E008958091FB0387FD05C08091E80046
709:102C400080FF0EC012C08091E80082FD05C0809117
710:102C5000FA038111F8CF08958091E8008B7708C0BE
711:102C60008091FA038111EACF08958091E8008E7770
712:102C70008093E80008958091E4009091E50045E696
713:102C80002091EC0020FD1FC023C02091FA032223D5
714:102C900091F0253091F02091EB0025FD10C020919E
715:102CA000E4003091E5002817390751F34150C9017C
716:102CB00039F784E0089582E0089583E0089581E083
717:102CC000089580E008952091E80020FFDECFF9CF3D
718:102CD0002091E80022FFD9CFF4CF0E94DB160E949A
719:102CE000E316E0EEF0E0808181608083E8EDF0E0C3
720:102CF00080818F77808319BCA7EDB0E08C918E7FA7
721:102D00008C9380818F7E80831092F90308950F93B6
722:102D10001F93CF93DF930E94DB160E94E316C8ED4A
723:102D2000D0E088818F7788838881806888838881D4
724:102D30008F7D888319BC1092FA031092F6031092CB
725:102D4000F8031092F70300EE10E0F80180818B7F0A
726:102D5000808388818160888342E060E080E00E9417
727:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B
728:102D7000808181608083808188608083F801808188
729:102D80008E7F8083888180618883DF91CF911F91BE
730:102D90000F910895E8EDF0E080818F7E8083E7ED6C
731:102DA000F0E080818160808384E082BF81E0809355
732:102DB000F9030C948716E8EDF0E080818E7F808324
733:102DC0001092E20008951092DA001092E100089546
734:102DD0001F920F920FB60F9211242F933F934F9390
735:102DE0005F936F937F938F939F93AF93BF93EF9373
736:102DF000FF938091E10082FF0BC08091E20082FF8F
737:102E000007C08091E1008B7F8093E1000E949112C6
738:102E10008091DA0080FF1FC08091D80080FF1BC026
739:102E20008091DA008E7F8093DA008091D90080FF54
740:102E30000DC080E189BD82E189BD09B400FEFDCFEE
741:102E400081E08093FA030E947C1205C019BC1092A5
742:102E5000FA030E948A128091E10080FF19C08091DC
743:102E6000E20080FF15C08091E2008E7F8093E20037
744:102E70008091E20080618093E2008091D8008062BE
745:102E80008093D80019BC85E08093FA030E948E12CB
746:102E90008091E10084FF30C08091E20084FF2CC06B
747:102EA00080E189BD82E189BD09B400FEFDCF80913A
748:102EB000D8008F7D8093D8008091E1008F7E809331
749:102EC000E1008091E2008F7E8093E2008091E20039
750:102ED00081608093E2008091F603882311F084E002
751:102EE00007C08091E30087FF02C083E001C081E05A
752:102EF0008093FA030E948F128091E10083FF29C022
753:102F00008091E20083FF25C08091E100877F80935C
754:102F1000E10082E08093FA031092F6038091E100D1
755:102F20008E7F8093E1008091E2008E7F8093E200AB
756:102F30008091E20080618093E20042E060E080E006
757:102F40000E94E3158091F00088608093F0000E9459
758:102F50008D12FF91EF91BF91AF919F918F917F91D2
759:102F60006F915F914F913F912F910F900FBE0F90F6
760:102F70001F9018951F920F920FB60F9211242F9346
761:102F80003F934F935F936F937F938F939F93AF93F1
762:102F9000BF93CF93EF93FF938091E9008F7090914F
763:102FA000EC0090FF02C090E801C090E0C92FC82B50
764:102FB0001092E9008091F000877F8093F000789470
765:102FC0000E94FE171092E9008091F00088608093C3
766:102FD000F000CF70C093E900FF91EF91CF91BF91C6
767:102FE000AF919F918F917F916F915F914F913F91A1
768:102FF0002F910F900FBE0F901F9018951F93CF9396
769:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37
770:10301000CDBFEBEFF3E08091F100819324E0E3304A
771:10302000F207C9F70E94EF128091E80083FF37C1D1
772:103030008091FB039091FC03953009F488C038F42B
773:103040009130B1F170F0933009F029C131C098305E
774:1030500009F4F8C0993009F404C1963009F01FC191
775:103060009DC0803821F0823809F019C108C08091D4
776:10307000F7039091F803992389F082600FC0809143
777:10308000FF03909100048F7099278093E90080914D
778:10309000EB0085FB882780F91092E9009091E80009
779:1030A000977F9093E8008093F1001092F100D5C0D3
780:1030B000882319F0823009F0F2C08F7121F082303C
781:1030C00009F0EDC00BC08091FD03813009F0E7C02D
782:1030D000933009F080E08093F8032FC08091FD03C6
783:1030E00081112BC08091FF03909100048F7099276C
784:1030F000009709F4D4C08093E9002091EB0020FFF1
785:103100001CC02091FC03233021F48091EB008062ED
786:1031100012C09091EB0090619093EB0021E030E0C1
787:1031200001C0220F8A95EAF72093EA001092EA0084
788:103130008091EB0088608093EB001092E900809111
789:10314000E800877F8093E8000E941A16A8C08111CA
790:10315000A6C08091FD039091FE038F779927182FC9
791:103160009091E3009078982B9093E3008091E80091
792:10317000877F8093E8000E941A168091E80080FF04
793:10318000FCCF8091E30080688093E300112311F06D
794:1031900083E001C082E08093FA0381C080588230CE
795:1031A00008F07DC08091FD039091FE038C3D23E0EB
796:1031B000920779F583E08A838AE289834FB7F8948E
797:1031C000DE01139620E03EE051E2E32FF0E0509361
798:1031D0005700E49120FF03C0E295EF703F5FEF706E
799:1031E0008E2F90E0EA3010F0C79601C0C0968D9304
800:1031F0009D932F5F243149F74FBF8091E800877F6F
801:103200008093E8006AE270E0CE0101960E941C15EE
802:1032100013C0AE01455D5F4F6091FF030E94031430
803:103220000097E9F12091E800277F2093E800BC0196
804:103230008BA59CA50E947F158091E8008B778093D9
805:10324000E8002DC0803859F58091E800877F809391
806:10325000E8008091F6038093F1008091E8008E777A
807:1032600071CF81111CC09091FD039230C0F4809108
808:10327000E800877F8093E8009093F6030E941A1677
809:103280008091F603811104C08091E30087FF02C0A2
810:1032900084E001C081E08093FA030E94D112809102
811:1032A000E80083FF0AC08091E800877F8093E800F0
812:1032B0008091EB0080628093EB00AC960FB6F8949F
813:1032C000DEBF0FBECDBFDF91CF911F910895CF9389
814:1032D0008091FA038823B1F08091E9008F7090917A
815:1032E000EC0090FF02C090E801C090E0C92FC82B0D
816:1032F0001092E9008091E80083FD0E94FE17CF70D4
817:10330000C093E900CF910895881F8827881F0895EA
818:1033100091E0883F08F490E0892F0895982F907FDE
819:10332000903B99F038F4903981F0903A71F09038F0
820:10333000C9F40BC0903DA1F018F4903C99F410C072
821:10334000903E19F0903F71F402C083E00895E82F99
822:10335000E15FEF3038F4F0E0E15FFD4F80810895E8
823:1033600082E0089580E008950F932F774F776F7074
824:10337000606BDC01ED91FC91022F242F462F63E05E
825:1033800070E009950F9108950F932F774F776F7025
826:103390006069DC01ED91FC91022F242F462F63E040
827:1033A00070E009950F9108950F932F774F776F7005
828:1033B0006068DC01ED91FC91022F242F462F63E021
829:1033C00070E009950F910895FC017383628308955D
830:1033D000FC01738F628F0895FC01758F648F0895CF
831:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A
832:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8
833:103400001D821C821F821E82198618861B861A86C0
834:103410001D861C861F861E86198A188A1B8A1A8A90
835:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60
836:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199
837:103440000895CF92DF92FF920F931F93CF93DF9354
838:103450001F92CDB7DEB7F62E6A018C0108511F4FBF
839:1034600008C0F60161916F01C80149830E94341CB4
840:1034700049818C2D841B8F15A0F30F90DF91CF9184
841:103480001F910F91FF90DF90CF900895FC01718301
842:1034900060830895FC0171A360A30895AF92BF9269
843:1034A000CF92DF92EF92FF920F931F93CF93DF9310
844:1034B00000D01F92CDB7DEB77C016B01142FB22E66
845:1034C000A02EDC0195968C9195978430F1F45A9654
846:1034D000ED91FC915B97309709F4D8C0CB0101972F
847:1034E00063E070E00E943434DB01AA0FBB1FA60F1B
848:1034F000B71F49832A830B834C2D4A1B9E012F5FE4
849:103500003F4FBD01C7010995B1C06230710509F493
850:1035100053C06330710529F06130710509F09CC01A
851:1035200083C0842F807F803A01F130F48038B9F075
852:10353000803909F0ABC00DC0803EE9F0803F09F151
853:10354000803B09F0A3C0D7011296ED91FC9113972F
854:1035500023C0D7011496ED91FC9115971DC0D7019A
855:103560001696ED91FC91179717C0D7011896ED911B
856:10357000FC91199711C0D7011A96ED91FC911B97F8
857:103580000BC0423F09F082C0D7011C96ED91FC911F
858:103590001D97309731F47AC0309709F477C0123F05
859:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C
860:1035B0004B2DC70109955AC0842F807F803D59F05B
861:1035C000803F79F0803C09F061C0D7011E96ED91F3
862:1035D000FC911F9719C0D7015096ED91FC9151971E
863:1035E00013C0433F31F4D7015296ED91FC915397AC
864:1035F00008C0413F09F04AC0D7015496ED91FC91B3
865:103600005597309741F442C0309709F43FC0133FBB
866:1036100011F0113F19F44B2D612F03C0612F6F7012
867:103620004B2DC701099522C0842F0E948819882339
868:1036300031F0D7015696ED91FC91579707C0163F90
869:1036400029F5D7015896ED91FC9159973097F1F0F3
870:10365000612FC70109950AC064307105A8F416C02E
871:103660000A2D2B2D412FB601C7010995D7015E9672
872:10367000ED91FC915F97309789F00A2D2B2D412F0A
873:10368000B601C70109950AC0C12CD12CD7015C969F
874:10369000ED91FC915D97309719F7E8CF0F900F905F
875:1036A0000F90DF91CF911F910F91FF90EF90DF90DE
876:1036B000CF90BF90AF900895EF92FF920F931F931A
877:1036C000CF93DF93EC01162F862F0E948819882351
878:1036D00069F0FDA081E08DA300E020E0412F61E0D2
879:1036E00070E0CE010E944E1AFDA27CC0812F0E9484
880:1036F00084194DA1882309F440C0443029F01AA34D
881:1037000021E030E03FA32EA3812F0E948E1981304B
882:1037100031F070F0823051F0833059F507C08DA33D
883:1037200000E020E0412F61E070E01EC08DA35AC090
884:10373000103F19F0173FE9F404C084E08DA31AA3E9
885:103740003FC02EA13FA1C90163E070E00E94343464
886:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8
887:103760006EA30CA12BA14AA1CE010E944E1A1DA24C
888:1037700039C01DA21FA21EA235C0442399F12EA15B
889:103780003FA1C90163E070E00E9434347C01FE0176
890:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC
891:1037A0008130910591F082E0E816F104D9F40CA182
892:1037B0002BA14AA1CE010E944E1A8DA1843091F016
893:1037C00081E090E09FA38EA30DC0423059F400E049
894:1037D0002BA14AA1CE010E944E1A8DA1843011F076
895:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A
896:1037F0000895CF92DF92EF92FF920F931F93CF9392
897:10380000DF93EC01E8A1F9A1309709F009958E0149
898:1038100008511F4FC8010E94661CE12CF12CC82ED4
899:10382000D12C0FC060E0C8010E947A1C682FCE0125
900:103830000E945C1B61E0C8010E948B1C8FEFE81A9C
901:10384000F80AEC14FD0470F3DF91CF911F910F91F2
902:10385000FF90EF90DF90CF900895FC014283748336
903:1038600063831182108208950F931F93CF93DF9388
904:10387000EC01062F0E94AC1C182F298130E0C901F1
905:1038800001966A8170E00E944834488150E08417B4
906:10389000950729F4812F0E94AF1C80E012C0EB81B4
907:1038A000FC81E20FF31F00832981822F90E00196B3
908:1038B0006A8170E00E9448348983812F0E94AF1C86
909:1038C00081E0DF91CF911F910F910895CF93DF9306
910:1038D000EC010E94AC1C29819881291710F0C22F9D
911:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E
912:1038F000CF910895FC012081862F90E0820F911DC9
913:10390000628170E00E9448340380F481E02DE80F6A
914:10391000F91F808108950F931F93CF93DF931F9218
915:10392000CDB7DEB78C0169830E94AC1C482FF8012B
916:1039300080816981262F30E0280F311D6281C90105
917:1039400070E00E9448348083842F0F90DF91CF91E4
918:103950001F910F910C94AF1C8FB7F89408958FBFEF
919:103960000895FC01CB012091FA032430B1F42181A8
920:103970002F702093E90040E050E064E070E00E9486
921:103980007E1481110BC09091E80095FD07C09091C5
922:10399000E8009E779093E800089582E008952091D2
923:1039A000FA032430A9F4FC0181818F708093E9002F
924:1039B0003091F3002091F200932F80E0822B892B2D
925:1039C00049F08091E8008E778093E8000C943B16D4
926:1039D00082E0089580E008952091FA03243051F4A4
927:1039E000FC0121812F702093E9002091E80020FD47
928:1039F0000C94CF1C0895FC01CB012091FA032430D4
929:103A000011F080E0089526812F702093E900209125
930:103A1000E80022FFF6CF2091E80025FFF2CF40E03A
931:103A200050E064E070E00E94CD148091E80085FDD4
932:103A300005C08091E8008B778093E80081E00895CD
933:103A400090939502809394020895E0919402F091EE
934:103A50009502309721F00190F081E02D099480E0EB
935:103A60000895E0919402F0919502309721F0028040
936:103A7000F381E02D09940895E0919402F09195026C
937:103A8000309721F00480F581E02D0994089520916C
938:103A90009602309197028217930771F090939702E4
939:103AA00080939602E0919402F0919502309721F074
940:103AB0000680F781E02D09940895209198023091B5
941:103AC00099028217930771F090939902809398025C
942:103AD000E0919402F0919502309721F00084F185F5
943:103AE000E02D0994089508950C94731D0E94952962
944:103AF0000E94AD060E94692A0C9411300C94E705CF
945:103B00005F926F927F928F929F92AF92BF92CF926D
946:103B1000DF92EF92FF920F931F93CF93DF93CDB776
947:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456
948:103B3000BD079AE9C92E92E0D92E00E010E0AA2430
949:103B4000A394B12C502E802F0E9411093C01F60144
950:103B5000E190F1906F01E826F926E114F10431F4C7
951:103B60000F5F1F4F0530110569F73AC08091F002D1
952:103B700081FD0E941A0920E030E04501022E02C0BA
953:103B8000880C991C0A94E2F7C4018E219F21892B8D
954:103B900009F12E835F826820792081E0672809F48B
955:103BA00080E088870E949E298160782F9A87898784
956:103BB0004E815F8168858A850E94391EF801EE0F6B
957:103BC000FF1FE656FD4F80819181882599259183BD
958:103BD000808316C02F5F3F4F2C30310571F6C0CF68
959:103BE0008FEF89838A831B820E949E298160782FB0
960:103BF0009D838C8349815A816B818D810E94391EFE
961:103C00000E94562D1091A4020E94251D1817D9F06C
962:103C10000E94251D8093A4022A960FB6F894DEBF59
963:103C20000FBECDBFDF91CF911F910F91FF90EF900D
964:103C3000DF90CF90BF90AF909F908F907F906F90CC
965:103C40005F900C947E1D2A960FB6F894DEBF0FBECF
966:103C5000CDBFDF91CF911F910F91FF90EF90DF903B
967:103C6000CF90BF90AF909F908F907F906F905F901C
968:103C70000895CF93DF93CDB7DEB72B970FB6F894A7
969:103C8000DEBF0FBECDBF4F83588769877A878B878A
970:103C9000DE01119686E0FD0111928A95E9F785E033
971:103CA000FE01379601900D928A95E1F749815A817C
972:103CB0006B817C818D819E810E9415262B960FB68B
973:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3
974:103CD000C82F882309F4C1C0823859F40E94251DD9
975:103CE00081FDBBC089E30E947C280E94F82889E3FB
976:103CF0000CC0833879F40E94251D80FDAEC083E599
977:103D00000E947C280E94F82883E50E949E28CF917B
978:103D10000C94F828843859F40E94251D82FD9DC01A
979:103D200087E40E947C280E94F82887E4EECF845024
980:103D3000813A48F48C2F0E94732F81118EC08C2FF2
981:103D40000E947C28E4CF8C2F805E883050F4C770AE
982:103D500081E090E001C0880FCA95EAF70E94BF2871
983:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD
984:103D700031F482E890E005C081E890E002C083E879
985:103D800090E0CF910C94471D8C2F885A833108F016
986:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B
987:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB
988:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B
989:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9
990:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF
991:103DE00092E038C082EE90E035C089EE90E032C0BB
992:103DF0008AEE90E02FC085EB90E02CC086EB90E03F
993:103E000029C087EB90E026C08CEC90E023C08DECBD
994:103E100090E020C083E891E01DC08AE891E01AC0DC
995:103E200082E991E017C084E991E014C081E292E058
996:103E300011C083E292E00EC084E292E00BC085E202
997:103E400092E008C086E292E005C087E292E002C0FC
998:103E500080E090E0CF910C945D1DCF910895882370
999:103E600009F44DC0823859F40E94251D81FF47C0D6
1000:103E700089E30E947C280E94F82889E30CC08338DB
1001:103E800071F40E94251D80FF3AC083E50E947C28C2
1002:103E90000E94F82883E50E949E280C94F828843814
1003:103EA00059F40E94251D82FF2AC087E40E947C28C5
1004:103EB0000E94F82887E4EFCF982F9450913A08F4A5
1005:103EC000EACF982F905E983058F4282F277081E021
1006:103ED00090E001C0880F2A95EAF70E94C528DDCF3F
1007:103EE000982F955A933020F480E090E00C94471D71
1008:103EF000885A833120F480E090E00C945D1D089591
1009:103F0000882321F00E94BF280C94F8280895882364
1010:103F100021F00E94C5280C94F8280895BF92CF92F2
1011:103F2000DF92EF92FF920F931F93CF93DF93CDB762
1012:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A
1013:103F400085E0F801DE01119601900D928A95E1F766
1014:103F5000F80130812181F280558152955F70838113
1015:103F60009481892B39F02F3F41F481E090E03F3F6D
1016:103F700031F003C081E090E002C080E090E080FD7D
1017:103F800073C339832A8389819A815E830E94392889
1018:103F9000B92E8F830E9438280E9460272B2D2295EE
1019:103FA0002F7030E05E816F812530310509F4E6C065
1020:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA
1021:103FC0008F70223031050CF045C017C02C30310500
1022:103FD0004CF42A3031050CF0E7C12830310509F0E6
1023:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6
1024:103FF0002F30310509F038C323C3182F411101C0F8
1025:1040000002C01295107FFF2059F0112309F46BC2F2
1026:10401000812F6F830E94CF280E94F8286F8163C28E
1027:10402000862F0E942F1F112309F41EC3812F0E9487
1028:10403000D52827960FB6F894DEBF0FBECDBFDF910F
1029:10404000CF911F910F91FF90EF90DF90CF90BF9095
1030:104050000C94F828403211F08295807F662319F085
1031:10406000613071F523C0FF20B1F0511101C032C0A1
1032:10407000513081F527960FB6F894DEBF0FBECDBF45
1033:10408000DF91CF911F910F91FF90EF90DF90CF9034
1034:10409000BF900C94DF28511101C003C0513009F4C6
1035:1040A000E3C28E830E94E2288E819AC1FF2021F014
1036:1040B000563008F0D9C20EC0553008F0D5C290C1B4
1037:1040C000FF20C9F0552331F0F801958190FF0BC214
1038:1040D0009F70958327960FB6F894DEBF0FBECDBFB5
1039:1040E000DF91CF911F910F91FF90EF90DF90CF90D4
1040:1040F000BF900C94801F552309F472C109C22B2D67
1041:1041000026952695237030E02115310529F02130C0
1042:10411000310509F0A9C219C0FF2021F0862F9B2D7F
1043:10412000937002C080E090E027960FB6F894DEBF4F
1044:104130000FBECDBFDF91CF911F910F91FF90EF90F8
1045:10414000DF90CF90BF900C94471DFF2021F0862F69
1046:104150009B2D937002C080E090E027960FB6F894F4
1047:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA
1048:10417000EF90DF90CF90BF900C945D1D862FFF20B5
1049:1041800019F00E945C2C02C00E94C42C27960FB626
1050:10419000F894DEBF0FBECDBFDF91CF911F910F917D
1051:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14
1052:1041B000837009F079C0F11057C2262F22952695F9
1053:1041C0002770220F220F862F8F70C82ED12CE12C42
1054:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A
1055:1041E000D2F764FF10C06FE070E080E090E004C0A0
1056:1041F000660F771F881F991F2A95D2F760957095D3
1057:104200008095909503C060E070E0CB012B2D269542
1058:1042100026952370422F50E042305105D9F04330AB
1059:10422000510569F16C297D298E299F29413051055D
1060:1042300051F127960FB6F894DEBF0FBECDBFDF91C8
1061:10424000CF911F910F91FF90EF90DF90CF90BF9093
1062:104250000C9475276C297D298E299F2927960FB6E6
1063:10426000F894DEBF0FBECDBFDF91CF911F910F91AC
1064:10427000FF90EF90DF90CF90BF900C9487270E9423
1065:104280007527C701B60127960FB6F894DEBF0FBE9B
1066:10429000CDBFDF91CF911F910F91FF90EF90DF90F5
1067:1042A000CF90BF900C946327FF2019F08B2D817065
1068:1042B00001C08695882309F4D7C1262F229526951B
1069:1042C0002770220F220F862F8F70C82ED12CE12C41
1070:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439
1071:1042E000D2F764FF10C06FE070E080E090E004C09F
1072:1042F000660F771F881F991F2A95D2F760957095D2
1073:104300008095909503C060E070E0CB012B2D269541
1074:1043100026952370422F50E042305105D9F04330AA
1075:10432000510569F16C297D298E299F29413051055C
1076:1043300051F127960FB6F894DEBF0FBECDBFDF91C7
1077:10434000CF911F910F91FF90EF90DF90CF90BF9092
1078:104350000C9414286C297D298E299F2927960FB645
1079:10436000F894DEBF0FBECDBFDF91CF911F910F91AB
1080:10437000FF90EF90DF90CF90BF900C9426280E9482
1081:104380001428C701B60127960FB6F894DEBF0FBEFA
1082:10439000CDBFDF91CF911F910F91FF90EF90DF90F4
1083:1043A000CF90BF900C940228603F59F120F4603EFA
1084:1043B00008F494C008C0623F09F467C0F0F1633F9D
1085:1043C00009F08CC065C0162F1F708B2D8F71FF20D8
1086:1043D00021F00E94AD27812F7DCE0E94C827812F1A
1087:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9
1088:1043F0001F910F91FF90EF90DF90CF90BF900C94A2
1089:10440000871FFF20B1F0553008F02EC18B2D8F7122
1090:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8
1091:104420001F910F91FF90EF90DF90CF90BF900C9471
1092:10443000E727563008F018C1E9CFFF2099F08B2DFF
1093:104440008F7127960FB6F894DEBF0FBECDBFDF91F8
1094:10445000CF911F910F91FF90EF90DF90CF90BF9081
1095:104460000C94AD278B2D8F7127960FB6F894DEBF75
1096:104470000FBECDBFDF91CF911F910F91FF90EF90B5
1097:10448000DF90CF90BF900C94C827F110EBCFD7CF1F
1098:10449000FF2099F08B2D8F7127960FB6F894DEBF11
1099:1044A0000FBECDBFDF91CF911F910F91FF90EF9085
1100:1044B000DF90CF90BF900C949E2727960FB6F8946C
1101:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047
1102:1044D000EF90DF90CF90BF900C949927FF20A9F028
1103:1044E000552309F4ACCF862F27960FB6F894DEBF7C
1104:1044F0000FBECDBFDF91CF911F910F91FF90EF9035
1105:10450000DF90CF90BF900C94671E552309F4AACF7B
1106:10451000862F27960FB6F894DEBF0FBECDBFDF9172
1107:10452000CF911F910F91FF90EF90DF90CF90BF90B0
1108:104530000C942F1F4B2D4F70C8010E941A03279611
1109:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4
1110:104550000F91FF90EF90DF90CF90BF900C94CB26FF
1111:10456000F11082C09B2D9F70492F50E042305105C1
1112:1045700099F144F44115510569F04130510509F0B4
1113:1045800073C019C043305105C1F14430510509F0E1
1114:104590006BC044C027960FB6F894DEBF0FBECDBFE8
1115:1045A000DF91CF911F910F91FF90EF90DF90CF900F
1116:1045B000BF900C94223027960FB6F894DEBF0FBE42
1117:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2
1118:1045D000CF90BF900C94393027960FB6F894DEBF79
1119:1045E0000FBECDBFDF91CF911F910F91FF90EF9044
1120:1045F000DF90CF90BF900C94553027960FB6F8946B
1121:10460000DEBF0FBECDBFDF91CF911F910F91FF9005
1122:10461000EF90DF90CF90BF900C946830862F279654
1123:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3
1124:104630000F91FF90EF90DF90CF90BF900C948C3053
1125:104640004B2D4F70C80127960FB6F894DEBF0FBEF2
1126:10465000CDBFDF91CF911F910F91FF90EF90DF9031
1127:10466000CF90BF900C941B0927960FB6F894DEBF2D
1128:104670000FBECDBFDF91CF911F910F91FF90EF90B3
1129:10468000DF90CF90BF9008950E94DC280E94B1284F
1130:104690000E94F8280E94F72D0E944B2D80E090E0A8
1131:1046A0000E94471D80E090E00C945D1D0E94CC2884
1132:1046B0000C9444230E943928292F22952F7030E032
1133:1046C0002C3031054CF42A3031056CF4225031097C
1134:1046D0002230310590F407C02C30310551F02F30D5
1135:1046E000310559F406C0803E10F0803F31F481E07E
1136:1046F000089593FB882780F9089580E00895CF936B
1137:10470000DF9300D000D01F92CDB7DEB70F900F908F
1138:104710000F900F900F90DF91CF910895CF93DF937B
1139:1047200000D000D000D0CDB7DEB726960FB6F894F3
1140:10473000DEBF0FBECDBFDF91CF9108951F93CF9302
1141:10474000DF93C091DB0216E012C0D0E01C9FF001A5
1142:104750001D9FF00D1124E555FD4F4081518162816F
1143:104760007381848195810E948E232196C7708091E8
1144:10477000DC02C813EACFDF91CF911F9108954091D9
1145:10478000A5025091A6026091A7027091A8028091A3
1146:10479000A9029091AA020C948E230F931F93CF939A
1147:1047A000DF938091AA0282958F7009F069C0809191
1148:1047B000A702882309F464C0A091DB02D091DC0237
1149:1047C000B091A502C091A6028091A8029091A90281
1150:1047D00021E030E0BF3F11F020E030E0122FBC01BB
1151:1047E0006095709506E04AC0009721F0CF3F29F40C
1152:1047F000212F05C021E030E002C020E030E020FDA4
1153:104800003BC04A2F50E0049FF001059FF00D11249A
1154:10481000E555FD4F2181C2132FC02081B2132CC05A
1155:104820002281211129C0238134812817390718F0EA
1156:10483000281B390B02C0260F371F283C3105E0F436
1157:104840008091AA028F7080618093AA0286E0849F83
1158:10485000F001859FF00D1124E055FD4F80818F7090
1159:104860008061808385EA92E00E948E1FDF91CF9164
1160:104870001F910F910C949E23AF5FA770AD13B4CF1F
1161:10488000DF91CF911F910F910895EF92FF920F93B7
1162:104890001F93CF93DF93CDB7DEB762970FB6F8942F
1163:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695
1164:1048B00001900D928A95E1F7D8014C9111965C9187
1165:1048C000119712966C9112971396ED90FC90149795
1166:1048D0007091A502E091A6028091A8029091A90290
1167:1048E000009739F0EF3F41F421E030E07F3F31F0B5
1168:1048F00003C021E030E002C020E030E020FD5CC1D8
1169:104900002091A702222309F4F1C0E816F90628F045
1170:104910009701281B390BC90104C0809590958E0D15
1171:104920009F1D883C910508F098C08091AA02982F9D
1172:10493000907F09F064C0E51314C0741312C06111B4
1173:1049400010C08F7080618093AA020E94BF2385EA05
1174:1049500092E00E948E1F8091AA02D80115968C9336
1175:1049600043C1EF2839F05F3F41F481E090E04F3FD1
1176:1049700031F003C081E090E002C080E090E080FD73
1177:1049800003C081E0862702C080E090E080FF2EC057
1178:104990008091DB022091DC0236E013C090E0389F6A
1179:1049A000F001399FF00D1124E555FD4F718157132A
1180:1049B00006C07081471303C07281671317C0019648
1181:1049C00087708213EBCF12C19F7059F0882309F4CE
1182:1049D0000BC107C09F7029F0F8019581907F09F401
1183:1049E00003C1805E883008F4FFC0D2C0662309F49A
1184:1049F000FBC08091AA0281608093AA02F5C0E513F2
1185:104A000008C0741306C0611104C0D80115968C93B8
1186:104A10009DC04D875E878D859E856A8B0E945A2337
1187:104A20006A89882309F4B4C0662309F4B1C02091CF
1188:104A3000AA02822F82958F7090E002970CF4C6C074
1189:104A40008091A5029091A60298878F831986FB8694
1190:104A5000EA862C87CE01079646C08091AA02982F3D
1191:104A6000907F59F47E2DF98AE88A89890E947F23F4
1192:104A700085EA92E00E948E1F95C0E51311C0741361
1193:104A80000FC061110DC0F8018583C8010E948E1FFF
1194:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F
1195:104AA0004D875E878D859E856A8B0E945A236A8911
1196:104AB000882309F46DC0662309F46AC02091AA0214
1197:104AC000822F82958F7090E002970CF47FC08091C6
1198:104AD000A5029091A6029A8389831B82FD82EC82B3
1199:104AE0002E83CE0101960E948E1F70C0E816F90633
1200:104AF00028F09701281B390BC90104C080959095B7
1201:104B00008E0D9F1D883C910508F046C0662309F470
1202:104B10003FC0E51330C074132EC02091AA0220FDBF
1203:104B200021C0322F32953F70832F90E00097D1F053
1204:104B3000D80115962C9315970F9741F0832F8F5F0F
1205:104B40008295807F2F70282B15962C93C8010E9488
1206:104B50008E1F86E0F801A5EAB2E001900D928A95D9
1207:104B6000E1F73EC086E0F801A5EAB2E001900D92BF
1208:104B70008A95E1F737C04D875E878D859E850E94B7
1209:104B80005A23811123C08091AA0281608093AA02D6
1210:104B9000C8010E948E1F26C07E2DF98AE88A898965
1211:104BA0000E947F23E5EAF2E086E0DF011D928A950C
1212:104BB000E9F70E94BF2318C0662351F34D875E8733
1213:104BC0008D859E850E945A23882311F386E0F80183
1214:104BD000A5EAB2E001900D928A95E1F70E94CD23FB
1215:104BE0000E94BF2381E014C080E012C04D875E8721
1216:104BF0008D859E850E943928292F22952F7030E0BF
1217:104C0000223031050CF4E0CE243031050CF6E2CE32
1218:104C100062960FB6F894DEBF0FBECDBFDF91CF9185
1219:104C20001F910F91FF90EF9008951F93CF93DF9303
1220:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51
1221:104C40004F83588769877A878B879C87CE01079621
1222:104C50000E9445248823D9F02F8138858A859B8539
1223:104C6000892B39F03F3F19F080E090E004C02F3FDE
1224:104C7000D9F781E090E0892B09F06DC04F8158850C
1225:104C800069857A858B859C850E948E2364C086E029
1226:104C9000FE013796DE01119601900D928A95E1F79B
1227:104CA000FF81E8854A855B854115510539F0EF3F65
1228:104CB00041F481E090E0FF3F31F003C081E090E0FB
1229:104CC00002C080E090E080FD46C02091DC0230E030
1230:104CD000C9010196877099276091DB0270E0861701
1231:104CE000970709F440C0F983EA835D834C8396E01B
1232:104CF000929FD001939FB00D1124A555BD4FFE0189
1233:104D0000319601900D929A95E1F78093DC020E9412
1234:104D10009E2321C0189FC001112485559D4F0E94DC
1235:104D20004524882371F1E091DB021E9FF0011124DC
1236:104D3000E555FD4F40815181628173818481958168
1237:104D40000E948E238091DB0290E001968770992764
1238:104D50008093DB0201C016E08091DB029091DC02BF
1239:104D60008913D8CF0EC00E9456231092DC021092F5
1240:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1
1241:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1
1242:104D9000CF911F910895DF92EF92FF920F931F938F
1243:104DA000CF93DF93EC01009709F46EC0D12CEE2471
1244:104DB000E394F12C8E010F5F1F4FFE018491843725
1245:104DC00048F4843008F04CC0813071F0823009F032
1246:104DD0005BC01EC0853709F43FC080F1982F9458FE
1247:104DE000903708F051C03FC02296F8018491982F67
1248:104DF000905E983050F48770FE2D01C0FF0F8A95A9
1249:104E0000EAF78F2F0E94CF2813C00E94671E2FC081
1250:104E10002296F8018491982F905E983060F4877004
1251:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B
1252:104E30000E94F8281CC00E942F1F19C02296F8015A
1253:104E4000049107C08FE99FE00197F1F700C00000CF
1254:104E500001500111F7CF0BC02296F801D49007C082
1255:104E60000E94671E03C08F770E942F1FE8018D2DBF
1256:104E700007C08150EFE9FFE03197F1F700C0000073
1257:104E8000882309F497CFF5CFDF91CF911F910F9130
1258:104E9000FF90EF90DF9008956093E1027093E2023B
1259:104EA0008093E3029093E4020C9444236093DD0228
1260:104EB0007093DE028093DF029093E0020C9444230F
1261:104EC00008950C944C270F931F930091E1021091C9
1262:104ED000E2022091E3023091E402602B712B822BDD
1263:104EE000932B1F910F910C944C270F931F930091BC
1264:104EF000E1021091E2022091E3023091E40260238A
1265:104F00007123822393231F910F910C944C270F93AD
1266:104F10001F930091E1021091E2022091E30230918F
1267:104F2000E40260277127822793271F910F910C9429
1268:104F30004C2760E070E0CB010C94562741E050E034
1269:104F400060E070E004C0440F551F661F771F8A950C
1270:104F5000D2F7CB01BA010C94562741E050E060E053
1271:104F600070E004C0440F551F661F771F8A95D2F763
1272:104F70008091DD029091DE02A091DF02B091E0020B
1273:104F8000482B592B6A2B7B2BCB01BA010C9456274B
1274:104F900041E050E060E070E004C0440F551F661F20
1275:104FA000771F8A95D2F740955095609570958091BE
1276:104FB000DD029091DE02A091DF02B091E002482371
1277:104FC00059236A237B23CB01BA010C94562741E075
1278:104FD00050E060E070E004C0440F551F661F771F6B
1279:104FE0008A95D2F78091DD029091DE02A091DF02D6
1280:104FF000B091E002482759276A277B27CB01BA01E5
1281:105000000C9456270F931F930091DD021091DE023E
1282:105010002091DF023091E002602B712B822B932BC9
1283:105020001F910F910C9456270F931F930091DD024F
1284:105030001091DE022091DF023091E00260237123A3
1285:10504000822393231F910F910C9456270F931F9344
1286:105050000091DD021091DE022091DF023091E0022A
1287:1050600060277127822793271F910F910C94562751
1288:105070000895CF92DF92EF92FF920F931F93CF93F9
1289:10508000DF93EC01C090E102D090E202E090E302F5
1290:10509000F090E4028091DD029091DE02A091DF02A7
1291:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF
1292:1050B000B701A601002E04C07695679557954795D0
1293:1050C0000A94D2F740FF08C0BE01802F0E947104ED
1294:1050D0008130910509F007C00150110948F7BE0160
1295:1050E00080E00E947104DF91CF911F910F91FF909A
1296:1050F000EF90DF90CF90089540918B0150918C01FB
1297:1051000020E030E09FEFFA01E20FF31F62816817A1
1298:10511000A1F09F3F19F4611101C0922F2F5F3F4F03
1299:105120002630310581F707C0FA01E90FF11D97FD1F
1300:10513000FA95828308959F3FB9F7089540918B01B6
1301:1051400050918C0120E030E0FA01E20FF31F9281D0
1302:10515000981301C012822F5F3F4F26303105A1F70F
1303:10516000089581E090E0E0918B01F0918C01E80FCF
1304:10517000F91F1082019688309105A9F70895909142
1305:10518000E502982B9093E502089580959091E502B1
1306:1051900098239093E50208951092E5020895909166
1307:1051A000E602982B9093E602089580959091E6028E
1308:1051B00098239093E60208951092E6020895809352
1309:1051C000E70208951092E702089540918B015091F3
1310:1051D0008C0120E030E080E0FA01E20FF31F9181C2
1311:1051E00091118F5F2F5F3F4F27303105A9F7089549
1312:1051F000E0918B01F0918C018091E5028083E09138
1313:105200008B01F0918C0180819091E602892B808343
1314:105210009091E702992361F0E0918B01F0918C016C
1315:105220008081892B80830E94E52881110E94E228D9
1316:1052300080918B0190918C010C94311D8091FA0327
1317:10524000843021F11092F10220E488E190E00FB661
1318:10525000F894A895809360000FBE2093600080E0D2
1319:105260000E94590383B7817F846083BF83B78160C5
1320:1052700083BF7894889583B78E7F83BF88E10FB60C
1321:10528000F89480936000109260000FBE0895089516
1322:105290000895CF9380E00E9459030E9447290E94FD
1323:1052A000BD070E944829C0E08C2F0E941109892B5C
1324:1052B00029F4CF5FC530C1F780E001C081E0CF9114
1325:1052C00008950E94562380E00E9459030E941130E5
1326:1052D0000E94251D0C94E7051F920F920FB60F92A6
1327:1052E00011248F939F93AF93BF938091F10281110B
1328:1052F00013C08091F2029091F302A091F402B09158
1329:10530000F5024196A11DB11D8093F2029093F30224
1330:10531000A093F402B093F502BF91AF919F918F914A
1331:105320000F900FBE0F901F90189582E084BD93E000
1332:1053300095BD9AEF97BD80936E0008958FB7F8944E
1333:105340004091F2025091F3026091F4027091F502E3
1334:105350008FBFCA010895CF92DF92EF92FF920F9311
1335:105360001F932FB7F8944091F2025091F30260918D
1336:10537000F4027091F5022FBF6A017B01EE24FF2435
1337:105380008C0120E030E0C016D106E206F30620F0E2
1338:105390009A01281B390B05C09C0120953095240FDC
1339:1053A000351FC9011F910F91FF90EF90DF90CF90B3
1340:1053B00008951F920F920FB60F9211248F939F930F
1341:1053C000AF93BF938091F2029091F302A091F40207
1342:1053D000B091F5020196A11DB11D8093F202909348
1343:1053E000F302A093F402B093F502BF91AF919F91A5
1344:1053F0008F910F900FBE0F901F9018950E946D1601
1345:10540000F8942FEF87EA91E6215080409040E1F731
1346:1054100000C0000087E090EBDC01809304049093CF
1347:105420000504A0930604B09307042CE088E190E003
1348:105430000FB6F894A895809360000FBE209360008B
1349:10544000FFCFCF92DF92EF92FF920F931F93CF93F4
1350:10545000DF93C82ED12C01E010E08D2D0E941109A0
1351:105460007C01C0E0D0E098010C2E02C0220F331F57
1352:105470000A94E2F72E213F21232B29F42196CC30E8
1353:10548000D10589F708C06C2F7D2D80E00E944C0467
1354:10549000C812F4CF06C0D39485E0D812DECF80E0E6
1355:1054A00001C081E0DF91CF911F910F91FF90EF90AC
1356:1054B000DF90CF900895CF93C82F8CE20E94212ACD
1357:1054C000882321F08C2FCF910C94212A80E0CF915A
1358:1054D0000895CF930E94AC2B811102C00E948D2BA6
1359:1054E000C5E608C00E94BD078FE39CE90197F1F76C
1360:1054F00000C00000C150B1F789E20E945B2A81110F
1361:105500000AC18AE20E945B2A81110E948D2B85E0EC
1362:105510000E945B2A81110E94FE290E94B72B809372
1363:10552000F00287E00E945B2A882399F18BE10E94B8
1364:105530005B2A882351F09091F00291FB882780F933
1365:1055400021E0822780FB91F922C08EE00E945B2A35
1366:10555000882351F09091F00292FB882780F921E096
1367:10556000822780FB92F913C080E10E945B2A909110
1368:10557000F002882341F093FB882780F921E08227FD
1369:1055800080FB93F904C0892F809580FB90F990935C
1370:10559000F0028091F0020E94BB2B0E94C92B8093E5
1371:1055A000010380EE0E945B2A882341F08091010371
1372:1055B000982F909590FB80F98093010389E30E94D6
1373:1055C0005B2A882359F09091010391FB882780F989
1374:1055D00021E0822780FB91F99093010382EE0E94E3
1375:1055E0005B2A882359F09091010392FB882780F968
1376:1055F00021E0822780FB92F99093010386EE0E94BE
1377:105600005B2A882359F09091010393FB882780F946
1378:1056100021E0822780FB93F99093010383EE0E949F
1379:105620005B2A882359F09091010394FB882780F925
1380:1056300021E0822780FB94F99093010385E30E9487
1381:105640005B2A882359F09091010395FB882780F904
1382:1056500021E0822780FB95F99093010381E30E946A
1383:105660005B2A882359F09091010396FB882780F9E3
1384:1056700021E0822780FB96F99093010381E10E944B
1385:105680005B2A882359F09091010397FB882780F9C2
1386:1056900021E0822780FB97F9909301038091010319
1387:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8
1388:1056B0005B2A8111C2608FE10E945B2A8111C46064
1389:1056C00080E20E945B2A8111C86081E20E945B2A0D
1390:1056D0008111C06182E20E945B2A8111C06283E273
1391:1056E0000E945B2A8111C06484E20E945B2A8823A5
1392:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B
1393:105700006C2F03C00E94C02B682F70E080E090E0F7
1394:10571000CF910C946127CF9108956DEE7EEF80E0DC
1395:1057200090E00E94783460E082E090E00E946A3469
1396:1057300060E083E090E00E946A3460E084E090E002
1397:105740000E946A3460E085E090E00E946A3460E084
1398:1057500086E090E00C946A3480E090E00E9464342B
1399:1057600021E08D3E9E4F09F020E0822F089582E0D7
1400:1057700090E00C945C34682F82E090E00C946A34E2
1401:1057800083E090E00C945C34682F83E090E00C940C
1402:105790006A3484E090E00C945C34682F84E090E0FC
1403:1057A0000C946A3486E090E00C945C34682F86E0B8
1404:1057B00090E00C946A348091FE0280FF0BC06091EF
1405:1057C000900185E0689FB0011124759567957595E6
1406:1057D00067952AC081FF09C06091900185E0689FAC
1407:1057E000B0011124759567951FC082FF07C06091B5
1408:1057F000900185E0689FB001112416C04091F80225
1409:105800004423C9F060918F01461788F720919001D9
1410:1058100085E0289F90011124429FC001439F900D75
1411:10582000112470E00E9448346038710540F461151D
1412:10583000710539F002C065E070E0862F08958FE7AA
1413:10584000089581E008958091FE0280FF08C0609174
1414:105850008E0170E0759567957595679521C081FFFC
1415:1058600006C060918E0170E07595679519C082FF42
1416:1058700004C060918E0170E010C08091F80288230E
1417:10588000C1F060918D018617A0F790918E01989FCD
1418:10589000C001112470E00E9448346038710528F47A
1419:1058A0006115710521F0862F08958FE7089581E035
1420:1058B000089561E070E0F4CF803F21F40E94DB2B7B
1421:1058C000819504C0813F29F40E94DB2B8093FB0269
1422:1058D0000895823F21F40E94DB2B819504C0833F11
1423:1058E00029F40E94DB2B8093FA020895893F19F472
1424:1058F0000E94232C05C08A3F31F40E94232C8195FD
1425:105900008093FC0208958B3F21F40E94232C819503
1426:1059100004C08C3F29F40E94232C8093FD0208953B
1427:10592000843F21F48091F902816017C0853F21F402
1428:105930008091F902826011C0863F21F48091F902C2
1429:1059400084600BC0873F21F48091F902886005C014
1430:10595000883F31F48091F90280618093F9020895C3
1431:105960008D3F21F48091FE0281600BC08E3F21F4B7
1432:105970008091FE02826005C08F3F29F48091FE0273
1433:1059800084608093FE020895803F29F48091FB0299
1434:1059900087FF6EC007C0813F41F48091FB0218165B
1435:1059A0000CF066C01092FB0263C09091FA02823F35
1436:1059B00019F497FF5DC005C0833F31F419160CF050
1437:1059C00057C01092FA0254C0893F31F48091FC0212
1438:1059D00018160CF04DC006C08A3F39F48091FC02C5
1439:1059E00087FF46C01092FC0243C08B3F29F4809190
1440:1059F000FD0287FF3DC006C08C3F39F48091FD0257
1441:105A00001816B4F51092FD0233C0843F21F4809142
1442:105A1000F9028E7F05C0853F31F48091F9028D7FB8
1443:105A20008093F90225C0863F21F48091F9028B7F93
1444:105A3000F7CF873F21F48091F902877FF1CF883F2C
1445:105A400021F48091F9028F7EEBCF8D3F21F480917C
1446:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F
1447:105A600005C08F3F29F48091FE028B7F8093FE0258
1448:105A70008091FA0281110EC08091FB0281110AC04F
1449:105A80008091FC02811106C08091FD02811102C04B
1450:105A90001092F802089589EF92E00E943C1D0E9446
1451:105AA0009E299093F7028093F6020895CF938091F8
1452:105AB000F6029091F7020E94AB294091F80244232C
1453:105AC00021F02091910130E006C0209192015AE02E
1454:105AD000259F900111248217930708F486C08091B6
1455:105AE000FA0281110DC09091FB02911109C09091B1
1456:105AF000FC02911105C09091FD02992309F475C033
1457:105B00004F3F19F04F5F4093F802181624F40E949B
1458:105B1000DB2B8093FA028091FA0287FF05C00E9476
1459:105B2000DB2B81958093FA028091FB02181624F4F6
1460:105B30000E94DB2B8093FB028091FB0287FF05C054
1461:105B40000E94DB2B81958093FB026091FA02662311
1462:105B500039F1C091FB02CC2319F1772767FD7095CD
1463:105B6000872F972F0E94AC3123E333E343E35FE3B6
1464:105B70000E9460320E9479316093FA026C2F77277D
1465:105B800067FD7095872F972F0E94AC3123E333E395
1466:105B900043E35FE30E9460320E9479316093FB022D
1467:105BA0008091FC02181624F40E94232C8093FC029E
1468:105BB0008091FC0287FF05C00E94232C8195809371
1469:105BC000FC028091FD02181624F40E94232C80937D
1470:105BD000FD028091FD0287FF05C00E94232C819564
1471:105BE0008093FD02CF910C944B2DCF910895E9EF56
1472:105BF000F2E085E0DF011D928A95E9F71092F80244
1473:105C00001092FE020895833089F130F4813061F002
1474:105C1000823009F06EC019C0853009F449C0B8F16E
1475:105C2000863009F066C055C020919201862F90E021
1476:105C3000820F911D8F3F910520F4620F60939201B6
1477:105C400008958FEF80939201089520919101862FFE
1478:105C500090E0820F911D8F3F910520F4620F6093B9
1479:105C6000910108958FEF8093910108952091900103
1480:105C7000862F90E0820F911D8F3F910520F4620FD7
1481:105C80006093900108958FEF809390010895209183
1482:105C90008F01862F90E0820F911D8F3F910520F498
1483:105CA000620F60938F0108958FEF80938F010895A5
1484:105CB00020918E01862F90E0820F911D8F3F9105DC
1485:105CC00020F4620F60938E0108958FEF80938E0110
1486:105CD000089520918D01862F90E0820F911D8F3FB6
1487:105CE000910520F4620F60938D0108958FEF8093EA
1488:105CF0008D010895833021F130F4813059F08230E4
1489:105D000009F049C012C0853089F128F1863009F0C8
1490:105D100042C037C080919201681720F4861B80939F
1491:105D2000920108951092920108958091910168174F
1492:105D300020F4861B8093910108951092910108959B
1493:105D400080919001681720F4861B8093900108953C
1494:105D500010929001089580918F01681720F4861B9E
1495:105D600080938F01089510928F01089580918E0184
1496:105D7000681720F4861B80938E01089510928E017F
1497:105D8000089580918D01681720F4861B80938D0102
1498:105D9000089510928D01089541E050E060E070E0B8
1499:105DA00004C0440F551F661F771F8A95D2F7CB0199
1500:105DB000BA010E9461270C945623873200F58E3178
1501:105DC00008F086C08E3009F466C060F4873009F4AC
1502:105DD0004DC018F4863049F531C0883041F18B3020
1503:105DE00021F57BC0863109F478C018F48031E9F4DC
1504:105DF0005CC0893109F471C08B31B9F442C0883379
1505:105E000009F46BC048F4893209F460C0853309F4A1
1506:105E10005DC0873251F45AC0833409F457C018F476
1507:105E20008A3318F057C0883499F080E008950E94B2
1508:105E3000B72B0E94C92B0E94D22B4FC08091F00239
1509:105E4000817F8E7F8093F00281E08093FF0208952E
1510:105E50000E9456232FEF83ED90E321508040904025
1511:105E6000E1F700C000000E94FE2937C08091F002D7
1512:105E700080FF03C0817F8E7F01C081608093F0022C
1513:105E80002CC09091F00291FB882780F921E08227B5
1514:105E900080FB91F913C09091F00292FB882780F962
1515:105EA00021E0822780FB92F909C09091F00293FBD8
1516:105EB000882780F921E0822780FB93F99093F002F4
1517:105EC000882359F091609093F00207C080E003C0EE
1518:105ED0008D5101C089530E94CC2E81E0089580E04D
1519:105EE000089580E00895CF93C82F8091FF028130FC
1520:105EF00071F020F0823009F089C037C0A0918B0189
1521:105F0000B0918C018C91823209F082C007C0A091BF
1522:105F10008B01B0918C018C91823249F48C2F0E94BC
1523:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64
1524:105F30000E94712F811115C0C43169F030F4CB304B
1525:105F400081F0C03109F068C009C0C93221F0C833FE
1526:105F500009F062C006C01092FF025EC082E080932A
1527:105F6000FF0281E090E081705AC0C932C9F060F44C
1528:105F7000C431B1F020F4C73009F04CC034C0CE5168
1529:105F8000C63008F047C017C0CE3439F120F4CB3406
1530:105F900009F040C01CC0C135C1F0C235D9F513C0ED
1531:105FA00080910003882319F01092000333C081E030
1532:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161
1533:105FC0008093000327C061E003C061E007C06AE07E
1534:105FD000809100030E94032E1DC06AE0809100039F
1535:105FE0000E947A2E17C08EE18093920182E3809303
1536:105FF00091018AE08093900184E180938F0188E091
1537:1060000080938E0188E280938D0104C01092FF027C
1538:1060100080E005C081E003C080E090E0A4CFCF9194
1539:1060200008950E94AC2B811102C00E948D2B0E940A
1540:10603000D22B8093030480FF02C0869501C080E0CC
1541:106040000C94590380910304982F9695292F30E0E2
1542:10605000233031054CF49F5F990F8170892B81604B
1543:10606000809303040E94D62B8091030486950C94A0
1544:10607000590380910304982F969591F09158990FA8
1545:106080008170892B809303048E7F91E009F490E066
1546:106090008091030490FB80F9809303040E94D62B27
1547:1060A0008091030486950C94590380910304982FE2
1548:1060B000909590FB80F9809303040E94D62B8091E9
1549:1060C000030480FF02C0869501C080E00C94590350
1550:1060D00030910304232F26952F5F2F77822F90E096
1551:1060E000317004972CF4220F232B2093030402C059
1552:1060F0003093030480910304282F2E7F91E009F44C
1553:1061000090E090FB80F9809303040E94D62B80914D
1554:10611000030486950C94590320910304922F9695BD
1555:106120009827990F822F8170892B809303048E7F8B
1556:1061300091E009F490E08091030490FB80F9809352
1557:1061400003040E94D62B8091030486950C94590376
1558:106150005058BB27AA270ED075C166D130F06BD13D
1559:1061600020F031F49F3F11F41EF45BC10EF4E09572
1560:10617000E7FB51C1E92F77D180F3BA1762077307A4
1561:106180008407950718F071F49EF58FC10EF4E09521
1562:106190000B2EBA2FA02D0B01B90190010C01CA01E1
1563:1061A000A0011124FF27591B99F0593F50F4503E8C
1564:1061B00068F11A16F040A22F232F342F4427585F7E
1565:1061C000F3CF469537952795A795F0405395C9F796
1566:1061D0007EF41F16BA0B620B730B840BBAF091504E
1567:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED
1568:1061F000BA0F621F731F841F48F4879577956795C0
1569:10620000B795F7959E3F08F0B3CF9395880F08F0A8
1570:106210009927EE0F979587950895D9D008F481E0D6
1571:1062200008950CD00FC107D140F0FED030F021F41A
1572:106230005F3F19F0F0C0511139C1F3C014D198F388
1573:106240009923C9F35523B1F3951B550BBB27AA27F7
1574:1062500062177307840738F09F5F5F4F220F331F69
1575:10626000441FAA1FA9F333D00E2E3AF0E0E830D035
1576:1062700091505040E695001CCAF729D0FE2F27D038
1577:10628000660F771F881FBB1F261737074807AB0706
1578:10629000B0E809F0BB0B802DBF01FF2793585F4F7B
1579:1062A0002AF09E3F510568F0B6C000C15F3FECF395
1580:1062B000983EDCF3869577956795B795F7959F5F40
1581:1062C000C9F7880F911D9695879597F90895E1E094
1582:1062D000660F771F881FBB1F621773078407BA07F3
1583:1062E00020F0621B730B840BBA0BEE1F88F7E0954E
1584:1062F000089504D06894B111D9C00895BCD088F035
1585:106300009F5790F0B92F9927B751A0F0D1F0660FA1
1586:10631000771F881F991F1AF0BA95C9F712C0B130BC
1587:1063200081F0C3D0B1E00895C0C0672F782F8827CF
1588:10633000B85F39F0B93FCCF3869577956795B395FB
1589:10634000D9F73EF490958095709561957F4F8F4F6A
1590:106350009F4F0895E89409C097FB3EF4909580956F
1591:10636000709561957F4F8F4F9F4F9923A9F0F92F1B
1592:1063700096E9BB279395F695879577956795B79599
1593:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F
1594:106390007F4F8F4F9F4F16C0882311F096E911C091
1595:1063A000772321F09EE8872F762F05C0662371F0B2
1596:1063B00096E8862F70E060E02AF09A95660F771FC6
1597:1063C000881FDAF7880F9695879597F90895990FA2
1598:1063D0000008550FAA0BE0E8FEEF16161706E807AF
1599:1063E000F907C0F012161306E407F50798F0621BD0
1600:1063F000730B840B950B39F40A2661F0232B242BA5
1601:10640000252B21F408950A2609F4A140A6958FEFC3
1602:10641000811D811D089597F99F6780E870E060E015
1603:1064200008959FEF80EC089500240A94161617062D
1604:1064300018060906089500240A9412161306140675
1605:1064400005060895092E0394000C11F4882352F0D8
1606:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90
1607:106460008F4F9F4F089557FD9058440F551F59F077
1608:106470005F3F71F04795880F97FB991F61F09F3F31
1609:1064800079F087950895121613061406551FF2CF5A
1610:106490004695F1DF08C0161617061806991FF1CFAA
1611:1064A00086957105610508940895E894BB276627D1
1612:1064B0007727CB0197F908958ADF08F48FEF0895C5
1613:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C
1614:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7
1615:1064E000950F50E0551F629FF001729FBB27F00D82
1616:1064F000B11D639FAA27F00DB11DAA1F649F6627D7
1617:10650000B00DA11D661F829F2227B00DA11D621F25
1618:10651000739FB00DA11D621F839FA00D611D221FDF
1619:10652000749F3327A00D611D231F849F600D211DC3
1620:10653000822F762F6A2F11249F5750408AF0E1F066
1621:1065400088234AF0EE0FFF1FBB1F661F771F881FAF
1622:1065500091505040A9F79E3F510570F05CCFA6CFF7
1623:106560005F3FECF3983EDCF3869577956795B7959A
1624:10657000F795E7959F5FC1F7FE2B880F911D9695C4
1625:10658000879597F90895FA01EE0FFF1F30962105C0
1626:10659000310599F16115710561F48038BFE39B07FE
1627:1065A00049F168949038810561F08038BFEF9B070E
1628:1065B00041F0992342F5FF3FE1053105210511F135
1629:1065C000E8940894E795D901AA2329F4AB2FBE2FAC
1630:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD
1631:1065E00050F019F0FF3A38F49F779F930CD00F903A
1632:1065F00007FC905808953EF014CF60E070E080E80A
1633:106600009FE308954FE79F775F934F933F932F93B7
1634:106610009ED02F913F914F915F9152DF05C019F4A9
1635:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784
1636:1066300007F80F92E8942BE33AEA48EB5FE74EDF66
1637:106640000F920F920F924DB75EB70F92C0D0ECEA47
1638:10665000F0E016D04F915F91EF91FF91E595EE1F1D
1639:10666000FF1F49F0FE57E0684427EE0F441FFA95DC
1640:10667000E1F74195550B32D00F9007FE26C00895E3
1641:10668000DF93CF931F930F93FF92EF92DF927B01E3
1642:106690008C01689405C0DA2EEF011EDFFE01E8943C
1643:1066A000A5912591359145915591AEF3EF0162DDAC
1644:1066B000FE019701A801DA9479F7DF90EF90FF903F
1645:1066C0000F911F91CF91DF9108959B01AC0160E084
1646:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1
1647:1066E0009923D9F3940F511DBBF39150504094F06E
1648:1066F00059F0882332F0660F771F881F9150504061
1649:10670000C1F79E3F510544F7880F911D96958795D7
1650:1067100097F908955F3FACF0983E9CF0BB278695B3
1651:1067200077956795B79508F4B1609395C1F7BB0F5E
1652:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87
1653:10674000E3CFB4CE0EF076C06CCE689464CE93DE08
1654:10675000C8F39923D1F3C6F3DF93CF931F930F931D
1655:10676000FF92C92FDD2788232AF02197660F771F14
1656:10677000881FDAF720E030E040E85FEB9FE38839DC
1657:1067800020F0803E30F021968F77E3DCE4EDF0E0FE
1658:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F
1659:1067A000FB2E6F5771097595771F880B990BD4DDF8
1660:1067B00028E132E741E35FE38FDEAF2D9801AE01C0
1661:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166
1662:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785
1663:1067E0003327442750781FC0B75188F4AB2F0024BB
1664:1067F000469537952795011CA395D2F3002069F0A3
1665:10680000220F331F441FB395DAF30DD0A1CC6130B2
1666:106810007105A0E88A07B94630F49B01AC016627F0
1667:10682000772788279078309621F020833183428320
1668:10683000538308959F3F31F0915020F487957795C9
1669:106840006795B795880F911D9695879597F9089547
1670:10685000991B79E004C0991F961708F0961B881FB2
1671:106860007A95C9F780950895AA1BBB1B51E107C013
1672:10687000AA1FBB1FA617B70710F0A61BB70B881FD0
1673:10688000991F5A95A9F780959095BC01CD0108955F
1674:1068900097FB072E16F4009407D077FD09D00E94CD
1675:1068A000343407FC05D03EF4909581959F4F0895B0
1676:1068B000709561957F4F0895F999FECF92BD81BD86
1677:1068C000F89A992780B50895A8E1B0E042E050E039
1678:1068D0000C947F34262FF999FECF1FBA92BD81BD4B
1679:1068E00020BD0FB6F894FA9AF99A0FBE0196089552
1680:1068F0000E946A34272F0C946B34DC01CB01FC011D
1681:10690000F999FECF06C0F2BDE1BDF89A319600B408
1682:0E6910000D9241505040B8F70895F894FFCF13
1683:10691E0055D0A44600001644000000000000484276
1684:10692E0061978A460000C8430000000000004842FC
1685:10693E0055D024460000C843000000000000484225
1686:10694E0000005C460000C843000000000000484202
1687:10695E0061978A4600007A4455D0A4460000C84389
1688:10696E00000000000000484200005C460000C843E2
1689:10697E00000000000000484255D024460000164496
1690:10698E000507000C058540000001064000000100CF
1691:10699E0091102111FD10C810941001E8022808145E
1692:1069AE000A321E42004500250026004300610060A9
1693:1069BE000020003700640065006600670044004652
1694:1069CE000024004700000002000400050007000933
1695:1069DE00000B000C000E0010001100130015001724
1696:1069EE000018001A001C001D001F002100230024A7
1697:1069FE00002600280029002B002D002F0030003229
1698:106A0E000034003500370039003B00F6030F042830
1699:106A1E0004410469051C05E604C6043F4D362002F8
1700:106A2E000302000001000101010101000101010248
1701:086A3E00030405060708090026
1702:00000001FF
diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex
new file mode 100644
index 000000000..cc59d3fe8
--- /dev/null
+++ b/keyboard/preonic/preonic_pcb_silent.hex
@@ -0,0 +1,1189 @@
1:100000000C9465020C94A9020C94A9020C94A90208
2:100010000C94A9020C94A9020C94A9020C94A902B4
3:100020000C94A9020C94A9020C94430D0C94150E87
4:100030000C942B1C0C94A9020C94A9020C94A902F8
5:100040000C94A9020C94A9020C94A9020C94A90284
6:100050000C94A9020C94981C0C94A9020C94A9026B
7:100060000C94A9020C94A9020C94A9020C94A90264
8:100070000C94A9020C94A9020C94A9020C94A90254
9:100080000C94A9020C94A9020C94A9020C94A90244
10:100090000C94A9020C94A9020C94A9020C94A90234
11:1000A0000C94A9020C94A9020C94A90235001E001C
12:1000B0001F0020002100220023002400250026002C
13:1000C00027002A002B0014001A0008001500170052
14:1000D0001C0018000C00120013002A002900040064
15:1000E0001600070009000A000B000D000E000F00AB
16:1000F00033003400E1001D001B000600190005005C
17:100100001100100036003700380028000030E000F1
18:10011000E200E30003522C002C0004525000510076
19:1001200052004F0035001E001F0020002100220059
20:10013000230024002500260027002A002B0014009D
21:100140001A00090013000A000D000F0018001C001F
22:1001500033002A00290004001500160017000700CC
23:100160000B00110008000C0012003400E1001D001B
24:100170001B000600190005000E00100036003700B5
25:10018000380028000030E000E200E30003522C00B9
26:100190002C0004525000510052004F0035001E0048
27:1001A0001F0020002100220023002400250026003B
28:1001B00027002A002B0034003600370013001C00F3
29:1001C00009000A00060015000F002A00290004009B
30:1001D0001200080018000C0007000B0017001100A7
31:1001E00016003800E100330014000D000E001B0063
32:1001F000050010001A0019001D0028000030E00062
33:10020000E200E30003522C002C0004525000510085
34:1002100052004F0035001E001F0020002100220068
35:10022000230024002500260027002A0035021E0294
36:100230001F0220022102220223022402250226029A
37:1002400027022A0001003A003B003C003D003E002E
38:100250003F002D022E022F02300231020100400029
39:100260004100420043004400450000530153025343
40:100270000050010001000100010001000100010027
41:1002800001000100AB00AA00A900AE0035001E006D
42:100290001F0020002100220023002400250026004A
43:1002A00027002A0035001E001F0020002100220028
44:1002B000230024002500260027002A0001003A0020
45:1002C0003B003C003D003E003F002D002E002F0073
46:1002D0003000310001004000410042004300440072
47:1002E000450000530153025300500100010001007A
48:1002F000010001000100010001000100AB00AA00A3
49:10030000A900AE002A0354006800650020005000D8
50:10031000720065006F006E006900630020004B00F2
51:100320006500790062006F006100720064000000E7
52:100330002C034F007200740068006F006C006900AD
53:100340006E0065006100720020004B0065007900BE
54:1003500062006F006100720064007300000004031B
55:10036000090409027400040100A0FA090400000154
56:1003700003010100092111010001223F000705814D
57:100380000308000A09040100010301020009211108
58:10039000010001224D000705820308000A0904023A
59:1003A00000010300000009211101000122360007AD
60:1003B00005830308000A0904030002030000000982
61:1003C00021110100012220000705840320000107FC
62:1003D0000504032000011201100100000008EDFED9
63:1003E00061600100010200010631FF0974A10109E9
64:1003F00075150025FF9520750881020976150025E1
65:10040000FF952075089102C005010980A1018502B0
66:1004100016010026B7001A01002AB70075109501D1
67:100420008100C0050C0901A1018503160100269C6D
68:10043000021A01002A9C02751095018100C0050175
69:100440000902A1010901A1000509190129051500E9
70:10045000250195057501810295017503810105014D
71:10046000093009311581257F950275088106093803
72:100470001581257F950175088106050C0A3802153E
73:1004800081257F950175088106C0C005010906A177
74:1004900001050719E029E715002501950875018177
75:1004A0000295017508810105081901290595057551
76:1004B0000191029501750391010507190029FF15A6
77:1004C0000025FF950675088100C011241FBECFEFDF
78:1004D000DAE0DEBFCDBF04B603FE24C08091F10197
79:1004E0009091F201A091F301B091F4018730904B0B
80:1004F000A740B04BB9F41092F1011092F2011092A2
81:10050000F3011092F40114BE84B7877F84BF88E1A1
82:100510000FB6F89480936000109260000FBEE0E088
83:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3
84:1005300005900D92A435B107D9F711E0A4E5B1E01B
85:1005400001C01D92A13FB107E1F70E94720A0C940D
86:10055000EE240C94000061110DC0FC0182818823FF
87:1005600031F085EE0E9426110E94272303C085EEFC
88:100570000E94EE1180E090E00895089508950E9491
89:10058000D1026E9A769A8DEB92E0892B11F00C9441
90:10059000BD0208958EEB92E0892B11F00C94BE02FF
91:1005A0000895279A2F988FEF9FEF9093870080935D
92:1005B00086008AE08093800089E1809381000C941A
93:1005C000D02281110BC080918000877F80938000B2
94:1005D00010928D0010928C002F9808952F988330E0
95:1005E00041F4809180008860809380008FEF9FEFBE
96:1005F00012C09091800098609093800023E030E0DA
97:10060000281B3109220F331F8FEF9FEF02C09695F1
98:1006100087952A95E2F790938D0080938C0008953A
99:100620008B3B910568F4883A910530F5853A910540
100:10063000C0F48430910598F4019709F06FC071C03F
101:10064000803E910508F46AC0883E910540F09C0107
102:10065000205F31092031310508F060C05CC09C0189
103:10066000A1C0853A910509F45FC0863A910509F465
104:100670005EC023E830E496C0883A910509F45AC078
105:10068000893A910509F459C08A3A910509F458C08C
106:100690008B3A910509F457C08C3A910509F456C07C
107:1006A0008D3A910509F455C0803B910509F454C079
108:1006B0008E3A910509F453C08F3A910509F452C05E
109:1006C000813B910509F451C0823B910509F450C06A
110:1006D000833B910509F44FC0843B910509F44EC05A
111:1006E000853B910509F44DC0863B910509F44CC04A
112:1006F000873B910509F44BC0883B910509F44AC03A
113:10070000893B910509F449C08A3B910509F048C02D
114:100710002AE236E447C09C01306544C020E030E066
115:1007200041C021E030E03EC021E830E43BC022E897
116:1007300030E438C022EE34E435C029EE34E432C06F
117:100740002AEE34E42FC025EB34E42CC026EB34E44D
118:1007500029C027EB34E426C02CEC34E423C02DEC74
119:1007600034E420C023E835E41DC02AE835E41AC08B
120:1007700022E935E417C024E935E414C021E236E467
121:1007800011C023E236E40EC024E236E40BC025E2B9
122:1007900036E408C026E236E405C027E236E402C0AB
123:1007A00020E034E4C901089508959CE0799FF001A8
124:1007B00011249CE3899FE00DF11D1124E60FF11D2A
125:1007C000EE0FFF1FE455FF4F25913491C9010895A5
126:1007D000880F991F845D9040FC0125913491C901D7
127:1007E0000895880F991F84559F4FFC0125913491DE
128:1007F000C90108950E94D5039C019A9581159F41D6
129:1008000010F4C9010895C90190528115904128F44E
130:10081000C9019F700E94F1030895C9019053811589
131:10082000904120F4C9019927906C0895C901905412
132:10083000409728F4C9018F709927946D089520314D
133:1008400080E4380719F480E091ED0895213190E4B7
134:10085000390719F480E090ED0895223140E434071F
135:1008600019F480E092ED0895233180E4380719F4FB
136:1008700080E093ED0895211590E5390769F40E9411
137:1008800015162FEF44E38CE0215040408040E1F703
138:1008900000C000000C94BD1C213090E5390731F4F4
139:1008A0008091D00181608093D0010895C901905555
140:1008B0008115904108F062C0432F55274F7055278E
141:1008C00041305105F9F4C90174E0880F991F7A95F8
142:1008D000E1F788279370B901E3E0660F771FEA9587
143:1008E000E1F760767727862B972B9C682370332758
144:1008F00002C0440F551F2A95E2F74F715527842BEC
145:10090000952B08954230510529F4922F8827816F45
146:10091000906A089543305105B9F4C90153E0880F36
147:10092000991F5A95E1F7807E97702370332741E035
148:1009300050E002C0440F551F2A95E2F74F7155272A
149:10094000842B952B9C6808954430510549F5C901C5
150:1009500043E0880F991F4A95E1F7807E97702370D6
151:10096000332741E050E002C0440F551F2A95E2F7BB
152:100970004F715527842B952B9A680895C90190577C
153:100980008115904120F4C9019F7090620895C901BA
154:1009900090588115904120F4C9019F70906A089584
155:1009A000203E3105E0F4203C310568F52133310566
156:1009B00009F475C048F42932310509F46BC02A32B4
157:1009C000310509F07BC075C02933310501F12238AA
158:1009D0003105E9F02533310509F070C051C0233EDF
159:1009E0003105B1F140F4203E3105D1F0223E310510
160:1009F00009F064C01CC0263E310579F1273E31055F
161:100A000009F05CC038C0C9010E94E80308958091D4
162:100A1000E10180FD02C081FF51C080EE90E04FC037
163:100A20008091E10180FFF9CF89E390E048C0809197
164:100A3000E10182FF0AC08091E10184FF03C080E0F0
165:100A400090E03DC083EE90E03AC082EE90E037C087
166:100A50008091E10182FFEFCFF8CF8091E10183FF28
167:100A600007C08091E10184FDEACF87EE90E027C0C6
168:100A700086EE90E024C08091E10183FFF2CFF8CFB1
169:100A80008091E10185FF03C089E290E018C085E311
170:100A900090E015C08091E10185FDF9CFF5CF8091FF
171:100AA000E10186FF03C08AE290E009C081E390E0A3
172:100AB00006C08091E10186FDF9CFF5CFC9010E9402
173:100AC0001003089508955F926F927F928F929F9284
174:100AD000AF92BF92CF92DF92EF92FF920F931F934C
175:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A
176:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92
177:100B0000911C60E070E000E010E0E12CF12CC12CC1
178:100B1000D12CA12CB12C8AE0782E622E532E41E0EC
179:100B200050E0E4E1F1E0A62DB52D872D01900D9266
180:100B30008A95E1F7F901819191919F01FC01E07F94
181:100B4000FF27E032F10559F48F709927FA0102C0AE
182:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7
183:100B6000F10559F48F709927FA0102C0EE0FFF1FAB
184:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C
185:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6
186:100B9000EE2AFF2A1BC0E035F10559F48F70992722
187:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2
188:100BB0000DC0E036F10551F48F709927FA0102C09B
189:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554
190:100BD00009F0A7CF94B18A2D8095892384B985B176
191:100BE0008A2985B997B18C2D8095892387B988B1D9
192:100BF0008C2988B99AB18E2D809589238AB98BB1B9
193:100C00008E298BB99DB1802F809589238DB98EB1A6
194:100C1000802B8EB990B3862F8095892380BB81B3BA
195:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0
196:100C3000DF91CF911F910F91FF90EF90DF90CF90B8
197:100C4000BF90AF909F908F907F906F905F9008952E
198:100C50005F926F927F928F929F92AF92BF92CF924C
199:100C6000DF92EF92FF920F931F93CF93DF93CDB755
200:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D
201:100C8000806885BF85B7806885BF0E9463059E0127
202:100C90002F5F3F4F4E0189E1880E911C60E070E0AC
203:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6
204:100CB00098E1792E622E532E41E050E0EEE1F1E012
205:100CC000A62DB52D872D01900D928A95E1F7F9019A
206:100CD000819191919F01FC01E07FFF27E032F105B6
207:100CE00059F48F709927FA0102C0EE0FFF1F8A9501
208:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E
209:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B
210:100D1000DF2A29C0E034F10559F48F709927FA01D0
211:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2
212:100D3000E035F10559F48F709927FA0102C0EE0FE2
213:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531
214:100D500051F48F709927FA0102C0EE0FFF1F8A9598
215:100D6000E2F76E2B7F2B2815390509F0A7CF94B138
216:100D70008A2D8095892384B985B18A2985B997B14F
217:100D80008C2D8095892387B988B18C2988B99AB12F
218:100D90008E2D809589238AB98BB18E298BB99DB10F
219:100DA000802F809589238DB98EB1802B8EB990B319
220:100DB000862F8095892380BB81B3862B81BB1092BF
221:100DC00055011092540110925F0110925E01109231
222:100DD0005701109256011092610110926001109219
223:100DE0005901109258011092630110926201109201
224:100DF0005B0110925A0110926501109264011092E9
225:100E00005D0110925C0110926701109266018FEBF8
226:100E100092E0892BB9F068960FB6F894DEBF0FBE4A
227:100E2000CDBFDF91CF911F910F91FF90EF90DF9099
228:100E3000CF90BF90AF909F908F907F906F905F907A
229:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC
230:100E5000DF91CF911F910F91FF90EF90DF90CF9096
231:100E6000BF90AF909F908F907F906F905F9008950C
232:100E70005F926F927F928F929F92AF92BF92CF922A
233:100E8000DF92EF92FF920F931F93CF93DF93CDB733
234:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE
235:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6
236:100EB00053E2A50EB11C3AE0532E470101E010E0C9
237:100EC00048E1642E55E0752EE4E1F1E0D401852D72
238:100ED00001900D928A95E1F7F701819191917F013F
239:100EE0009C01207F33272032310589F424B18F7093
240:100EF0009927A80102C0440F551F8A95E2F7CA013D
241:100F0000242B24B995B18095892385B94FC020330E
242:100F1000310589F427B18F709927F80102C0EE0FCF
243:100F2000FF1F8A95E2F7CF012E2B27B998B1809544
244:100F3000892388B93BC02034310589F42AB18F70E8
245:100F40009927A80102C0440F551F8A95E2F7CA01EC
246:100F5000242B2AB99BB1809589238BB927C02035D2
247:100F6000310589F42DB18F709927F80102C0EE0F79
248:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8
249:100F800089238EB913C02036310581F420B38F70C8
250:100F90009927A80102C0440F551F8A95E2F7CA019C
251:100FA000242B20BB91B38095892381BB50EA5A95AD
252:100FB000F1F7BE016F5F7F4F80E090E020E030E00E
253:100FC000EEE1F1E0DE011196462D01900D924A9579
254:100FD000E1F7FB0141915191BF01FA01E07FFF2749
255:100FE000E032F10511F4E3B113C0E033F10511F47F
256:100FF000E6B10EC0E034F10511F4E9B109C0E03505
257:10100000F10511F4ECB104C0E036F105B9F4EFB12B
258:10101000F0E04F70552702C0F595E7954A95E2F745
259:10102000E0FD08C0A801022E02C0440F551F0A941B
260:10103000E2F702C040E050E0842B952B2F5F3F4F3A
261:101040002C30310509F0BCCFF60120813181281701
262:10105000390721F091838083709200010E9463051B
263:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1
264:1010700000018823A1F1815080930001882339F079
265:101080008FE99FE00197F1F700C0000028C0809130
266:101090005E0190915F01909355018093540180917E
267:1010A0006001909161019093570180935601809166
268:1010B000620190916301909359018093580180914E
269:1010C00064019091650190935B0180935A01809136
270:1010D00066019091670190935D0180935C018AECB9
271:1010E00092E0892B11F00E94CA0281E0A2960FB60D
272:1010F000F894DEBF0FBECDBFDF91CF911F910F914E
273:10110000FF90EF90DF90CF90BF90AF909F908F9027
274:101110007F906F905F900895E82FF0E0EE0FFF1F33
275:10112000EC5AFE4F8081918108950895809171015C
276:101130000895CF93DF9300D01F92CDB7DEB72091F3
277:10114000E701243021F523E029839B838A832093C0
278:10115000E9008FEF06C095ED9A95F1F7000088231E
279:1011600029F09091E800815095FFF5CF8091E8003B
280:1011700085FF0DC040E050E063E070E0CE010196D5
281:101180000E94280B8091E8008E778093E8000F90F2
282:101190000F900F90DF91CF910895CF93DF9300D000
283:1011A0001F92CDB7DEB72091E701243029F522E068
284:1011B00029839B838A8383E08093E9008FEF06C0B5
285:1011C00095ED9A95F1F70000882329F09091E800B9
286:1011D000815095FFF5CF8091E80085FF0DC040E07C
287:1011E00050E063E070E0CE0101960E94280B8091F0
288:1011F000E8008E778093E8000F900F900F90DF91BA
289:10120000CF9108952091E7012430F9F422E0209352
290:10121000E9002FEF06C035ED3A95F1F700002223E3
291:1012200029F03091E800215035FFF5CF2091E800FA
292:1012300025FF0BC040E050E065E070E00E94280B05
293:101240008091E8008E778093E8000895CF93DF9334
294:10125000EC018091E701843041F581E08093E90061
295:101260008FEF06C095ED9A95F1F70000882329F0DD
296:101270009091E800815095FFF5CF8091E80085FFBF
297:1012800014C040E050E068E070E0CE010E94280BFE
298:101290008091E8008E778093E80088E0FE01A9E65F
299:1012A000B1E001900D928A95E1F7DF91CF91089519
300:1012B0008091E601811109C00E94C80C0E94250D91
301:1012C0008091E20084608093E20008951092E6012C
302:1012D0000895089508950C94201C809172018F5FE9
303:1012E0008093720162E30E948924911135C01092AB
304:1012F000720180917301882379F18091E701843034
305:1013000049F58091E9008F709091EC0090FF02C048
306:1013100090E801C090E0982B84E08093E9008091F0
307:10132000EB0080FF14C08091EE0087FD03C00FC06A
308:101330001092F1008091E80085FDFACF8091E800DD
309:1013400080FF05C08091E8008E778093E8009F7051
310:101350009093E90010927301089542E061EC81E0FE
311:101360000E943E0C42E061EC82E00E943E0C42E0B2
312:1013700061EC83E00E943E0C42E261EC84E00C945C
313:101380003E0C8091E901833009F454C030F481307F
314:1013900071F0823009F0A5C08CC08A3009F479C0A0
315:1013A0008B3009F45FC0893009F09BC020C0809168
316:1013B000E801813A09F095C08091E800877F809329
317:1013C000E8008091EC019091ED01892B21F060E023
318:1013D00080E090E003C068E089E691E070E00E9460
319:1013E000770B8091E8008B778093E80008958091D7
320:1013F000E801813209F075C08091EC019091ED0116
321:10140000892B09F06EC08091E800877F8093E80007
322:1014100005C08091E701882309F463C08091E8004A
323:1014200082FFF7CF8091F100809371018091E800F5
324:101430008B7753C08091E801813A09F052C08091C6
325:10144000EC019091ED01892B09F04BC08091E800EF
326:10145000877F8093E8008091E80080FFFCCF809137
327:101460000B0136C08091E8018132D9F58091EC0101
328:101470009091ED01892BA9F58091E800877F8093F9
329:10148000E8000E94750C8091EA0180930B010C9496
330:1014900015168091E801813221F58091E800877F5F
331:1014A0008093E8000E94750C8091EB0180936801A5
332:1014B00008958091E801813AA1F48091E800877F46
333:1014C0008093E8008091E80080FFFCCF8091680164
334:1014D0008093F1008091E8008E778093E8000C946F
335:1014E000750C089584B7877F84BF88E10FB6F894A0
336:1014F00080936000109260000FBE90E080E80FB60D
337:10150000F89480936100909361000FBE0E943310A5
338:101510000E94C80C0E94250D8091E2008460809397
339:10152000E20078940E94C20F0E94351081E091E0A1
340:101530000E94DF0F0BC00E94DD1B8091E501882314
341:1015400029F00E94081C81110E94120B8091E70172
342:10155000853089F30E943F10F9CF292F332723309C
343:101560003105B1F04CF42130310509F44DC0223081
344:10157000310509F04EC007C02132310541F1223258
345:10158000310591F146C0E4E7F0E082E693E045C022
346:1015900099278130910569F08230910589F0892B76
347:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A
348:1015B00034C0E0E3F3E0E491F0E080E393E02DC099
349:1015C000E4E0F3E0E491F0E084E093E026C06430EE
350:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182
351:1015E0009181E9E0F0E019C0643098F4E62FF0E072
352:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD
353:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A
354:1016100004C0E0E0F0E080E090E0DA018D939C937C
355:10162000CF01089580E189BD82E189BD09B400FE42
356:10163000FDCF8091D8008F7D8093D8008091E0000D
357:1016400082608093E0008091E00081FDFCCF0895EE
358:10165000BF92CF92DF92EF92FF920F931F93CF939F
359:10166000DF937C018B01EA010E94960CB82E811158
360:1016700033C0209731F028813981021B130BE20E11
361:10168000F31EC12CD12C23C08091E80085FD15C02C
362:101690008091E8008E778093E800209749F0888158
363:1016A00099818C0D9D1D9983888325E0B22E14C0ED
364:1016B0000E94960C882359F00EC0F70181917F019A
365:1016C0008093F10001501109FFEFCF1ADF0A0115D5
366:1016D0001105D1F601C0B82E8B2DDF91CF911F914E
367:1016E0000F91FF90EF90DF90CF90BF9008954091C1
368:1016F000EE015091EF014617570748F0611571054B
369:1017000039F44091E8004E774093E80001C0BA01F7
370:10171000FC0140E033C08091E701882309F444C014
371:10172000853009F443C08091E80083FD41C0809179
372:10173000E80082FD33C08091E80080FF1FC09091D7
373:10174000F3008091F200392F20E0A901482BCA0153
374:1017500006C041914093F1006150710901966115F5
375:10176000710519F088309105A0F341E0089709F060
376:1017700040E08091E8008E778093E8006115710564
377:1017800051F64111C8CF0AC08091E701882361F06A
378:10179000853061F08091E80083FD0AC08091E80007
379:1017A00082FFF2CF80E0089582E0089583E00895FB
380:1017B00081E008954091EE015091EF0146175707DF
381:1017C00048F06115710539F44091E8004E77409377
382:1017D000E80001C0BA01FC0140E034C08091E7019B
383:1017E000882309F445C0853009F444C08091E8009D
384:1017F00083FD42C08091E80082FD34C08091E80002
385:1018000080FF20C09091F3008091F200392F20E0FA
386:10181000A901482BCA0107C044914093F1003196B9
387:101820006150710901966115710519F088309105B3
388:1018300098F341E0089709F040E08091E8008E7746
389:101840008093E8006115710549F64111C7CF0AC0C0
390:101850008091E701882361F0853061F08091E80094
391:1018600083FD0AC08091E80082FFF2CF80E00895F6
392:1018700082E0089583E0089581E00895982F2CC0B8
393:101880009093E900981739F07091EC002091ED00E9
394:101890005091F00003C0242F762F50E021FD02C0AC
395:1018A0009F5F1AC03091EB003E7F3093EB00309188
396:1018B000ED003D7F3093ED003091EB0031603093CF
397:1018C000EB007093EC002093ED005093F00020911A
398:1018D000EE0027FDE5CF07C0973090F28F70809320
399:1018E000E90081E0089580E008958091E80187FD96
400:1018F00005C08091E80080FF0EC012C08091E80012
401:1019000082FD05C08091E7018111F8CF0895809193
402:10191000E8008B7708C08091E7018111EACF089534
403:101920008091E8008E778093E80008958091E4002C
404:101930009091E50045E62091EC0020FD1FC023C0FA
405:101940002091E701222391F0253091F02091EB00C6
406:1019500025FD10C02091E4003091E50028173907DB
407:1019600051F34150C90139F784E0089582E00895A8
408:1019700083E0089581E0089580E008952091E800D3
409:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E
410:101990000E94360D0E943E0DE0EEF0E080818160F5
411:1019A0008083E8EDF0E080818F77808319BCA7ED1C
412:1019B000B0E08C918E7F8C9380818F7E808310929B
413:1019C000E60108950F931F93CF93DF930E94360D86
414:1019D0000E943E0DC8EDD0E088818F778883888192
415:1019E0008068888388818F7D888319BC1092E70185
416:1019F0001092E3011092E5011092E40100EE10E074
417:101A0000F80180818B7F808388818160888342E0B8
418:101A100060E080E00E943E0CE1EEF0E080818E7F8D
419:101A20008083E2EEF0E08081816080838081886045
420:101A30008083F80180818E7F8083888180618883A4
421:101A4000DF91CF911F910F910895E8EDF0E0808133
422:101A50008F7E8083E7EDF0E080818160808384E089
423:101A600082BF81E08093E6010C94E20CE8EDF0E0A7
424:101A700080818E7F80831092E20008951092DA00B8
425:101A80001092E10008951F920F920FB60F92112449
426:101A90002F933F934F935F936F937F938F939F9376
427:101AA000AF93BF93EF93FF938091E10082FF0BC050
428:101AB0008091E20082FF07C08091E1008B7F8093DC
429:101AC000E1000E946D098091DA0080FF1FC08091C3
430:101AD000D80080FF1BC08091DA008E7F8093DA00EF
431:101AE0008091D90080FF0DC080E189BD82E189BD70
432:101AF00009B400FEFDCF81E08093E7010E94580900
433:101B000005C019BC1092E7010E9466098091E100AE
434:101B100080FF19C08091E20080FF15C08091E20033
435:101B20008E7F8093E2008091E20080618093E200EA
436:101B30008091D80080628093D80019BC85E08093A2
437:101B4000E7010E946A098091E10084FF30C0809122
438:101B5000E20084FF2CC080E189BD82E189BD09B427
439:101B600000FEFDCF8091D8008F7D8093D8008091BA
440:101B7000E1008F7E8093E1008091E2008F7E809370
441:101B8000E2008091E20081608093E2008091E301B5
442:101B9000882311F084E007C08091E30087FF02C032
443:101BA00083E001C081E08093E7010E946B0980918E
444:101BB000E10083FF29C08091E20083FF25C080916E
445:101BC000E100877F8093E10082E08093E70110923B
446:101BD000E3018091E1008E7F8093E1008091E2003B
447:101BE0008E7F8093E2008091E20080618093E2002A
448:101BF00042E060E080E00E943E0C8091F00088604E
449:101C00008093F0000E946909FF91EF91BF91AF911D
450:101C10009F918F917F916F915F914F913F912F9104
451:101C20000F900FBE0F901F9018951F920F920FB636
452:101C30000F9211242F933F934F935F936F937F9352
453:101C40008F939F93AF93BF93CF93EF93FF93809125
454:101C5000E9008F709091EC0090FF02C090E801C005
455:101C600090E0C92FC82B1092E9008091F000877F87
456:101C70008093F00078940E94590E1092E9008091B0
457:101C8000F00088608093F000CF70C093E900FF916E
458:101C9000EF91CF91BF91AF919F918F917F916F9174
459:101CA0005F914F913F912F910F900FBE0F901F901A
460:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0
461:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9
462:101CD000819321E0E03FF207C9F70E94C10980919A
463:101CE000E80083FF37C18091E8019091E9019530C8
464:101CF00009F488C038F49130B1F170F0933009F0F4
465:101D000029C131C0983009F4F8C0993009F404C1F0
466:101D1000963009F01FC19DC0803821F0823809F04B
467:101D200019C108C08091E4019091E501992389F0DF
468:101D300082600FC08091EC019091ED018F70992726
469:101D40008093E9008091EB0085FB882780F9109251
470:101D5000E9009091E800977F9093E8008093F1006C
471:101D60001092F100D5C0882319F0823009F0F2C03A
472:101D70008F7121F0823009F0EDC00BC08091EA0133
473:101D8000813009F0E7C0933009F080E08093E501ED
474:101D90002FC08091EA0181112BC08091EC019091BC
475:101DA000ED018F709927009709F4D4C08093E90062
476:101DB0002091EB0020FF1CC02091E901233021F489
477:101DC0008091EB00806212C09091EB009061909343
478:101DD000EB0021E030E001C0220F8A95EAF7209362
479:101DE000EA001092EA008091EB0088608093EB009B
480:101DF0001092E9008091E800877F8093E8000E94BC
481:101E0000750CA8C08111A6C08091EA019091EB01E8
482:101E10008F779927182F9091E3009078982B9093C3
483:101E2000E3008091E800877F8093E8000E94750CB2
484:101E30008091E80080FFFCCF8091E3008068809370
485:101E4000E300112311F083E001C082E08093E701F9
486:101E500081C08058823008F07DC08091EA01909165
487:101E6000EB018C3D23E0920779F583E08A838AE2D7
488:101E700089834FB7F894DE01139620E03EE051E2EB
489:101E8000E32FF0E050935700E49120FF03C0E29568
490:101E9000EF703F5FEF708E2F90E0EA3010F0C79642
491:101EA00001C0C0968D939D932F5F243149F74FBF9A
492:101EB0008091E800877F8093E8006AE270E0CE01BD
493:101EC00001960E94770B13C0AE01455D5F4F609194
494:101ED000EC010E94AD0A0097E9F12091E800277F0C
495:101EE0002093E800BC018BA59CA50E94DA0B809191
496:101EF000E8008B778093E8002DC0803859F58091F9
497:101F0000E800877F8093E8008091E3018093F100EF
498:101F10008091E8008E7771CF81111CC09091EA0109
499:101F20009230C0F48091E800877F8093E80090931E
500:101F3000E3010E94750C8091E301811104C080913E
501:101F4000E30087FF02C084E001C081E08093E701E5
502:101F50000E94AD098091E80083FF0AC08091E800EB
503:101F6000877F8093E8008091EB0080628093EB0094
504:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108
505:101F80001F910895CF938091E7018823B1F080914C
506:101F9000E9008F709091EC0090FF02C090E801C0C2
507:101FA00090E0C92FC82B1092E9008091E80083FDD2
508:101FB0000E94590ECF70C093E900CF91089590937D
509:101FC0007501809374010895E0917401F091750199
510:101FD000309721F00190F081E02D099480E0089580
511:101FE000E0917401F0917501309721F00280F38146
512:101FF000E02D09940895E0917401F09175013097F6
513:1020000021F00480F581E02D099408952091760156
514:10201000309177018217930771F090937701809345
515:102020007601E0917401F0917501309721F00680FE
516:10203000F781E02D0994089520917801309179017C
517:102040008217930771F09093790180937801E09162
518:102050007401F0917501309721F00084F185E02D35
519:102060000994089508950C9432100E94541C0E9403
520:1020700028060E94281D0C94D0220C9462055F92C1
521:102080006F927F928F929F92AF92BF92CF92DF9288
522:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED
523:1020A0002A970FB6F894DEBF0FBECDBF0E94380747
524:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B
525:1020C000B12C502E802F0E948C083C01F601E1902B
526:1020D000F1906F01E826F926E114F10431F40F5F65
527:1020E0001F4F0530110569F73AC08091D00181FD7D
528:1020F0000E94950820E030E04501022E02C0880CC5
529:10210000991C0A94E2F7C4018E219F21892B09F1C1
530:102110002E835F826820792081E0672809F480E0BF
531:1021200088870E945D1C8160782F9A8789874E81FD
532:102130005F8168858A850E94F810F801EE0FFF1F05
533:10214000E658FE4F8081918188259925918380836F
534:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87
535:1021600089838A831B820E945D1C8160782F9D83F6
536:102170008C8349815A816B818D810E94F8100E9465
537:102180001520109184010E94E40F1817D9F00E94C5
538:10219000E40F809384012A960FB6F894DEBF0FBE39
539:1021A000CDBFDF91CF911F910F91FF90EF90DF9006
540:1021B000CF90BF90AF909F908F907F906F905F90E7
541:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B
542:1021D000DF91CF911F910F91FF90EF90DF90CF9003
543:1021E000BF90AF909F908F907F906F905F90089579
544:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42
545:102200000FBECDBF4F83588769877A878B87DE01E2
546:10221000119686E0FD0111928A95E9F785E0FE01AD
547:10222000379601900D928A95E1F749815A816B8129
548:102230007C818D819E810E94D4182B960FB6F894D4
549:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2
550:10225000882309F4C1C0823859F40E94E40F81FD3B
551:10226000BBC089E30E943B1B0E94B71B89E30CC0E3
552:10227000833879F40E94E40F80FDAEC083E50E94AC
553:102280003B1B0E94B71B83E50E945D1BCF910C9402
554:10229000B71B843859F40E94E40F82FD9DC087E487
555:1022A0000E943B1B0E94B71B87E4EECF8450813A0B
556:1022B00048F48C2F0E94322281118EC08C2F0E94F4
557:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8
558:1022D00090E001C0880FCA95EAF70E947E1BD6CF16
559:1022E0008C2F855A833078F4C53A29F0C63A31F4F8
560:1022F00082E890E005C081E890E002C083E890E0C9
561:10230000CF910C9406108C2F885A833108F064C04A
562:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7
563:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145
564:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5
565:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133
566:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079
567:1023600038C082EE90E035C089EE90E032C08AEE4F
568:1023700090E02FC085EB90E02CC086EB90E029C068
569:1023800087EB90E026C08CEC90E023C08DEC90E0D1
570:1023900020C083E891E01DC08AE891E01AC082E97C
571:1023A00091E017C084E991E014C081E292E011C08D
572:1023B00083E292E00EC084E292E00BC085E292E0FC
573:1023C00008C086E292E005C087E292E002C080E0A9
574:1023D00090E0CF910C941C10CF910895882309F4BC
575:1023E0004DC0823859F40E94E40F81FF47C089E351
576:1023F0000E943B1B0E94B71B89E30CC0833871F419
577:102400000E94E40F80FF3AC083E50E943B1B0E94BC
578:10241000B71B83E50E945D1B0C94B71B843859F4ED
579:102420000E94E40F82FF2AC087E40E943B1B0E94A7
580:10243000B71B87E4EFCF982F9450913A08F4EACF76
581:10244000982F905E983058F4282F277081E090E004
582:1024500001C0880F2A95EAF70E94841BDDCF982FD0
583:10246000955A933020F480E090E00C940610885A3E
584:10247000833120F480E090E00C941C1008958823B0
585:1024800021F00E947E1B0C94B71B0895882321F035
586:102490000E94841B0C94B71B0895BF92CF92DF92C9
587:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9
588:1024B00027970FB6F894DEBF0FBECDBF8C0185E025
589:1024C000F801DE01119601900D928A95E1F7F8016D
590:1024D00030812181F280558152955F708381948192
591:1024E000892B39F02F3F41F481E090E03F3F31F0FC
592:1024F00003C081E090E002C080E090E080FD73C303
593:1025000039832A8389819A815E830E94F81AB92EC1
594:102510008F830E94F71A0E941F1A2B2D22952F706D
595:1025200030E05E816F812530310509F4E6C06CF43E
596:10253000243031050CF0A2C04B2D407F8B2D8F70C5
597:10254000223031050CF045C017C02C3031054CF459
598:102550002A3031050CF0E7C12830310509F043C3BA
599:10256000E5C02D30310509F4BAC20CF4A2C22F30F7
600:10257000310509F038C323C3182F411101C002C02F
601:102580001295107FFF2059F0112309F46BC2812F9F
602:102590006F830E948E1B0E94B71B6F8163C2862FC0
603:1025A0000E94EE11112309F41EC3812F0E94941B77
604:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147
605:1025C0001F910F91FF90EF90DF90CF90BF900C94F0
606:1025D000B71B403211F08295807F662319F061307D
607:1025E00071F523C0FF20B1F0511101C032C051304C
608:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1
609:10260000CF911F910F91FF90EF90DF90CF90BF90EF
610:102610000C949E1B511101C003C0513009F4E3C258
611:102620008E830E94A11B8E819AC1FF2021F056301B
612:1026300008F0D9C20EC0553008F0D5C290C1FF20B5
613:10264000C9F0552331F0F801958190FF0BC29F70BE
614:10265000958327960FB6F894DEBF0FBECDBFDF91EE
615:10266000CF911F910F91FF90EF90DF90CF90BF908F
616:102670000C943F12552309F472C109C22B2D2695E3
617:102680002695237030E02115310529F021303105E0
618:1026900009F0A9C219C0FF2021F0862F9B2D93704D
619:1026A00002C080E090E027960FB6F894DEBF0FBE20
620:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1
621:1026C000CF90BF900C940610FF2021F0862F9B2DF9
622:1026D000937002C080E090E027960FB6F894DEBFBA
623:1026E0000FBECDBFDF91CF911F910F91FF90EF9063
624:1026F000DF90CF90BF900C941C10862FFF2019F014
625:102700000E941B1F02C00E94831F27960FB6F894D9
626:10271000DEBF0FBECDBFDF91CF911F910F91FF9014
627:10272000EF90DF90CF90BF900C940A208B2D837098
628:1027300009F079C0F11057C2262F229526952770EF
629:10274000220F220F862F8F70C82ED12CE12CF12C56
630:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728
631:1027600064FF10C06FE070E080E090E004C0660F8E
632:10277000771F881F991F2A95D2F7609570958095CD
633:10278000909503C060E070E0CB012B2D2695269537
634:102790002370422F50E042305105D9F043305105AB
635:1027A00069F16C297D298E299F294130510551F10C
636:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145
637:1027C0001F910F91FF90EF90DF90CF90BF900C94EE
638:1027D000341A6C297D298E299F2927960FB6F894E3
639:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044
640:1027F000EF90DF90CF90BF900C94461A0E94341A4D
641:10280000C701B60127960FB6F894DEBF0FBECDBF45
642:10281000DF91CF911F910F91FF90EF90DF90CF90BC
643:10282000BF900C94221AFF2019F08B2D817001C0EB
644:102830008695882309F4D7C1262F229526952770DF
645:10284000220F220F862F8F70C82ED12CE12CF12C55
646:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727
647:1028600064FF10C06FE070E080E090E004C0660F8D
648:10287000771F881F991F2A95D2F7609570958095CC
649:10288000909503C060E070E0CB012B2D2695269536
650:102890002370422F50E042305105D9F043305105AA
651:1028A00069F16C297D298E299F294130510551F10B
652:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144
653:1028C0001F910F91FF90EF90DF90CF90BF900C94ED
654:1028D000D31A6C297D298E299F2927960FB6F89443
655:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043
656:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E
657:10290000C701B60127960FB6F894DEBF0FBECDBF44
658:10291000DF91CF911F910F91FF90EF90DF90CF90BB
659:10292000BF900C94C11A603F59F120F4603E08F446
660:1029300094C008C0623F09F467C0F0F1633F09F03A
661:102940008CC065C0162F1F708B2D8F71FF2021F05A
662:102950000E946C1A812F7DCE0E94871A812F2796A4
663:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0
664:102970000F91FF90EF90DF90CF90BF900C94461294
665:10298000FF20B1F0553008F02EC18B2D8F712796A6
666:102990000FB6F894DEBF0FBECDBFDF91CF911F9170
667:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC
668:1029B000563008F018C1E9CFFF2099F08B2D8F71A8
669:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133
670:1029D0001F910F91FF90EF90DF90CF90BF900C94DC
671:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31
672:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE
673:102A0000CF90BF900C94871AF110EBCFD7CFFF2057
674:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD
675:102A2000CDBFDF91CF911F910F91FF90EF90DF907D
676:102A3000CF90BF900C945D1A27960FB6F894DEBF26
677:102A40000FBECDBFDF91CF911F910F91FF90EF90FF
678:102A5000DF90CF90BF900C94581AFF20A9F0552317
679:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1
680:102A7000CDBFDF91CF911F910F91FF90EF90DF902D
681:102A8000CF90BF900C942611552309F4AACF862F1E
682:102A900027960FB6F894DEBF0FBECDBFDF91CF9162
683:102AA0001F910F91FF90EF90DF90CF90BF900C940B
684:102AB000EE114B2D4F70C8010E94AB0227960FB646
685:102AC000F894DEBF0FBECDBFDF91CF911F910F9164
686:102AD000FF90EF90DF90CF90BF900C948A19F11087
687:102AE00082C09B2D9F70492F50E04230510599F1D3
688:102AF00044F44115510569F04130510509F073C0A6
689:102B000019C043305105C1F14430510509F06BC083
690:102B100044C027960FB6F894DEBF0FBECDBFDF913D
691:102B2000CF911F910F91FF90EF90DF90CF90BF90CA
692:102B30000C94E12227960FB6F894DEBF0FBECDBFEE
693:102B4000DF91CF911F910F91FF90EF90DF90CF9089
694:102B5000BF900C94F82227960FB6F894DEBF0FBEF4
695:102B6000CDBFDF91CF911F910F91FF90EF90DF903C
696:102B7000CF90BF900C94142327960FB6F894DEBF25
697:102B80000FBECDBFDF91CF911F910F91FF90EF90BE
698:102B9000DF90CF90BF900C942723862F27960FB6F7
699:102BA000F894DEBF0FBECDBFDF91CF911F910F9183
700:102BB000FF90EF90DF90CF90BF900C944B234B2D64
701:102BC0004F70C80127960FB6F894DEBF0FBECDBF79
702:102BD000DF91CF911F910F91FF90EF90DF90CF90F9
703:102BE000BF900C94D40327960FB6F894DEBF0FBEA7
704:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC
705:102C0000CF90BF9008950E949B1B0E94701B0E9452
706:102C1000B71B0E94B6200E940A2080E090E00E942C
707:102C2000061080E090E00C941C100E948B1B0C940A
708:102C300003160E94F81A292F22952F7030E02C30AD
709:102C400031054CF42A3031056CF422503109223020
710:102C5000310590F407C02C30310551F02F3031058B
711:102C600059F406C0803E10F0803F31F481E00895B1
712:102C700093FB882780F9089580E00895CF93DF9330
713:102C800000D000D01F92CDB7DEB70F900F900F90FD
714:102C90000F900F90DF91CF910895CF93DF9300D0E5
715:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1
716:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8
717:102CC000C091BB0116E012C0D0E01C9FF0011D9F17
718:102CD000F00D1124E557FE4F4081518162817381CF
719:102CE000848195810E944D162196C7708091BC0108
720:102CF000C813EACFDF91CF911F91089540918501CC
721:102D000050918601609187017091880180918901BD
722:102D100090918A010C944D160F931F93CF93DF93DC
723:102D200080918A0182958F7009F069C08091870136
724:102D3000882309F464C0A091BB01D091BC01B0917B
725:102D40008501C0918601809188019091890121E0DF
726:102D500030E0BF3F11F020E030E0122FBC01609561
727:102D6000709506E04AC0009721F0CF3F29F4212F4B
728:102D700005C021E030E002C020E030E020FD3BC093
729:102D80004A2F50E0049FF001059FF00D1124E557F4
730:102D9000FE4F2181C2132FC02081B2132CC022818B
731:102DA000211129C0238134812817390718F0281BE5
732:102DB000390B02C0260F371F283C3105E0F4809103
733:102DC0008A018F70806180938A0186E0849FF00180
734:102DD000859FF00D1124E057FE4F80818F70806138
735:102DE000808385E891E00E944D12DF91CF911F9181
736:102DF0000F910C945D16AF5FA770AD13B4CFDF9148
737:102E0000CF911F910F910895EF92FF920F931F930F
738:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE
739:102E20000FBECDBF8C0185E0F801DE011D9601903B
740:102E30000D928A95E1F7D8014C9111965C9111970A
741:102E400012966C9112971396ED90FC9014977091D6
742:102E50008501E09186018091880190918901009718
743:102E600039F0EF3F41F421E030E07F3F31F003C023
744:102E700021E030E002C020E030E020FD5CC1209184
745:102E80008701222309F4F1C0E816F90628F097011A
746:102E9000281B390BC90104C0809590958E0D9F1D8C
747:102EA000883C910508F098C080918A01982F907F06
748:102EB00009F064C0E51314C0741312C0611110C08E
749:102EC0008F70806180938A010E947E1685E891E070
750:102ED0000E944D1280918A01D80115968C9343C1AE
751:102EE000EF2839F05F3F41F481E090E04F3F31F04F
752:102EF00003C081E090E002C080E090E080FD03C06C
753:102F000081E0862702C080E090E080FF2EC08091A3
754:102F1000BB012091BC0136E013C090E0389FF00166
755:102F2000399FF00D1124E557FE4F7181571306C0EC
756:102F30007081471303C07281671317C001968770B1
757:102F40008213EBCF12C19F7059F0882309F40BC193
758:102F500007C09F7029F0F8019581907F09F403C1A3
759:102F6000805E883008F4FFC0D2C0662309F4FBC03D
760:102F700080918A01816080938A01F5C0E51308C0C1
761:102F8000741306C0611104C0D80115968C939DC0BE
762:102F90004D875E878D859E856A8B0E9419166A898A
763:102FA000882309F4B4C0662309F4B1C020918A01D2
764:102FB000822F82958F7090E002970CF4C6C08091AA
765:102FC00085019091860198878F831986FB86EA8612
766:102FD0002C87CE01079646C080918A01982F907F5A
767:102FE00059F47E2DF98AE88A89890E943E1685E87F
768:102FF00091E00E944D1295C0E51311C074130FC0EB
769:1030000061110DC0F8018583C8010E944D12E5E8E9
770:10301000F1E086E0DF011D928A95E9F7A2C04D87B5
771:103020005E878D859E856A8B0E9419166A89882322
772:1030300009F46DC0662309F46AC020918A01822FC9
773:1030400082958F7090E002970CF47FC0809185018B
774:10305000909186019A8389831B82FD82EC822E8364
775:10306000CE0101960E944D1270C0E816F90628F0B4
776:103070009701281B390BC90104C0809590958E0DCE
777:103080009F1D883C910508F046C0662309F43FC0A7
778:10309000E51330C074132EC020918A0120FD21C099
779:1030A000322F32953F70832F90E00097D1F0D801F6
780:1030B00015962C9315970F9741F0832F8F5F82956C
781:1030C000807F2F70282B15962C93C8010E944D12DB
782:1030D00086E0F801A5E8B1E001900D928A95E1F74C
783:1030E0003EC086E0F801A5E8B1E001900D928A9516
784:1030F000E1F737C04D875E878D859E850E94191642
785:10310000811123C080918A01816080938A01C80166
786:103110000E944D1226C07E2DF98AE88A89890E9474
787:103120003E16E5E8F1E086E0DF011D928A95E9F7B9
788:103130000E947E1618C0662351F34D875E878D85E9
789:103140009E850E941916882311F386E0F801A5E8F0
790:10315000B1E001900D928A95E1F70E948C160E94D1
791:103160007E1681E014C080E012C04D875E878D8599
792:103170009E850E94F81A292F22952F7030E0223068
793:1031800031050CF4E0CE243031050CF6E2CE629627
794:103190000FB6F894DEBF0FBECDBFDF91CF911F9168
795:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA
796:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E
797:1031C000588769877A878B879C87CE0107960E94EC
798:1031D00004178823D9F02F8138858A859B85892B10
799:1031E00039F03F3F19F080E090E004C02F3FD9F75D
800:1031F00081E090E0892B09F06DC04F815885698589
801:103200007A858B859C850E944D1664C086E0FE0100
802:103210003796DE01119601900D928A95E1F7FF81B4
803:10322000E8854A855B854115510539F0EF3F41F44A
804:1032300081E090E0FF3F31F003C081E090E002C008
805:1032400080E090E080FD46C02091BC0130E0C901E3
806:103250000196877099276091BB0170E086179707E8
807:1032600009F440C0F983EA835D834C8396E0929F22
808:10327000D001939FB00D1124A557BE4FFE0131968A
809:1032800001900D929A95E1F78093BC010E945D1622
810:1032900021C0189FC001112485579E4F0E9404171A
811:1032A000882371F1E091BB011E9FF0011124E557C5
812:1032B000FE4F4081518162817381848195810E949A
813:1032C0004D168091BB0190E00196877099278093FD
814:1032D000BB0101C016E08091BB019091BC01891334
815:1032E000D8CF0EC00E9415161092BC011092BB01DF
816:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83
817:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4
818:103310001F910895DF92EF92FF920F931F93CF9327
819:10332000DF93EC01009709F46EC0D12CEE24E394F6
820:10333000F12C8E010F5F1F4FFE018491843748F4FA
821:10334000843008F04CC0813071F0823009F05BC0ED
822:103350001EC0853709F43FC080F1982F94589037EC
823:1033600008F051C03FC02296F8018491982F905EDA
824:10337000983050F48770FE2D01C0FF0F8A95EAF750
825:103380008F2F0E948E1B13C00E9426112FC02296E1
826:10339000F8018491982F905E983060F48770FE2D2C
827:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D
828:1033B000B71B1CC00E94EE1119C02296F80104919F
829:1033C00007C08FE99FE00197F1F700C000000150AE
830:1033D0000111F7CF0BC02296F801D49007C00E94CC
831:1033E000261103C08F770E94EE11E8018D2D07C0D2
832:1033F0008150EFE9FFE03197F1F700C0000088232A
833:1034000009F497CFF5CFDF91CF911F910F91FF90E6
834:10341000EF90DF9008956093C1017093C201809393
835:10342000C3019093C4010C9403166093BD01709383
836:10343000BE018093BF019093C0010C9403160895C0
837:103440000C940B1A0F931F930091C1011091C201AC
838:103450002091C3013091C401602B712B822B932BDF
839:103460001F910F910C940B1A0F931F930091C101A0
840:103470001091C2012091C3013091C40160237123D6
841:10348000822393231F910F910C940B1A0F931F9378
842:103490000091C1011091C2012091C3013091C4017A
843:1034A00060277127822793271F910F910C940B1A85
844:1034B00060E070E0CB010C94151A41E050E060E050
845:1034C00070E004C0440F551F661F771F8A95D2F71E
846:1034D000CB01BA010C94151A41E050E060E070E0B5
847:1034E00004C0440F551F661F771F8A95D2F780913D
848:1034F000BD019091BE01A091BF01B091C001482BC8
849:10350000592B6A2B7B2BCB01BA010C94151A41E085
850:1035100050E060E070E004C0440F551F661F771F45
851:103520008A95D2F740955095609570958091BD0130
852:103530009091BE01A091BF01B091C00148235923D1
853:103540006A237B23CB01BA010C94151A41E050E0A9
854:1035500060E070E004C0440F551F661F771F8A9516
855:10356000D2F78091BD019091BE01A091BF01B091B1
856:10357000C001482759276A277B27CB01BA010C9441
857:10358000151A0F931F930091BD011091BE01209158
858:10359000BF013091C001602B712B822B932B1F91A7
859:1035A0000F910C94151A0F931F930091BD01109168
860:1035B000BE012091BF013091C0016023712382239D
861:1035C00093231F910F910C94151A0F931F93009141
862:1035D000BD011091BE012091BF013091C001602753
863:1035E0007127822793271F910F910C94151A089524
864:1035F000CF92DF92EF92FF920F931F93CF93DF93BF
865:10360000EC01C090C101D090C201E090C301F090E4
866:10361000C4018091BD019091BE01A091BF01B09104
867:10362000C001C82AD92AEA2AFB2A0FE110E0B70113
868:10363000A601002E04C076956795579547950A9484
869:10364000D2F740FF08C0BE01802F0E94FA038130EC
870:10365000910509F007C00150110948F7BE0180E04B
871:103660000E94FA03DF91CF911F910F91FF90EF908D
872:10367000DF90CF90089540910C0150910D0120E012
873:1036800030E09FEFFA01E20FF31F62816817A1F0AB
874:103690009F3F19F4611101C0922F2F5F3F4F2630D9
875:1036A000310581F707C0FA01E90FF11D97FDFA9581
876:1036B000828308959F3FB9F7089540910C0150917E
877:1036C0000D0120E030E0FA01E20FF31F9281981320
878:1036D00001C012822F5F3F4F26303105A1F70895B8
879:1036E00081E090E0E0910C01F0910D01E80FF91FED
880:1036F0001082019688309105A9F708959091C5012F
881:10370000982B9093C501089580959091C5019823B9
882:103710009093C50108951092C50108959091C60136
883:10372000982B9093C601089580959091C601982397
884:103730009093C60108951092C60108958093C70121
885:1037400008951092C701089540910C0150910D0108
886:1037500020E030E080E0FA01E20FF31F9181911147
887:103760008F5F2F5F3F4F27303105A9F70895E09114
888:103770000C01F0910D018091C5018083E0910C0155
889:10378000F0910D0180819091C601892B80839091E9
890:10379000C701992361F0E0910C01F0910D01808146
891:1037A000892B80830E94A41B81110E94A11B809100
892:1037B0000C0190910D010C94F00F8091E701843081
893:1037C00021F11092D10120E488E190E00FB6F89445
894:1037D000A895809360000FBE2093600080E00E9457
895:1037E000E10283B7817F846083BF83B7816083BF39
896:1037F0007894889583B78E7F83BF88E10FB6F8945D
897:1038000080936000109260000FBE0895089508959F
898:10381000CF9380E00E94E1020E94061C0E943807BC
899:103820000E94071CC0E08C2F0E948C08892B29F471
900:10383000CF5FC530C1F780E001C081E0CF9108952E
901:103840000E94151680E00E94E1020E94D0220E9490
902:10385000E40F0C9462051F920F920FB60F92112481
903:103860008F939F93AF93BF938091D101811113C028
904:103870008091D2019091D301A091D401B091D50152
905:103880004196A11DB11D8093D2019093D301A093C5
906:10389000D401B093D501BF91AF919F918F910F90BB
907:1038A0000FBE0F901F90189582E084BD93E095BDE8
908:1038B0009AEF97BD80936E0008958FB7F89440916A
909:1038C000D2015091D3016091D4017091D5018FBF85
910:1038D000CA010895CF92DF92EF92FF920F931F9348
911:1038E0002FB7F8944091D2015091D3016091D40147
912:1038F0007091D5012FBF6A017B01EE24FF248C015A
913:1039000020E030E0C016D106E206F30620F09A016E
914:10391000281B390B05C09C0120953095240F351FBD
915:10392000C9011F910F91FF90EF90DF90CF90089504
916:103930001F920F920FB60F9211248F939F93AF9304
917:10394000BF938091D2019091D301A091D401B09105
918:10395000D5010196A11DB11D8093D2019093D30191
919:10396000A093D401B093D501BF91AF919F918F9156
920:103970000F900FBE0F901F9018950E94C80CF894DE
921:103980002FEF87EA91E6215080409040E1F700C098
922:10399000000087E090EBDC018093F1019093F2014D
923:1039A000A093F301B093F4012CE088E190E00FB60E
924:1039B000F894A895809360000FBE20936000FFCF1D
925:1039C000CF92DF92EF92FF920F931F93CF93DF93EB
926:1039D000C82ED12C01E010E08D2D0E948C087C01B6
927:1039E000C0E0D0E098010C2E02C0220F331F0A94D1
928:1039F000E2F72E213F21232B29F42196CC30D1054B
929:103A000089F708C06C2F7D2D80E00E94D503C81275
930:103A1000F4CF06C0D39485E0D812DECF80E001C099
931:103A200081E0DF91CF911F910F91FF90EF90DF9098
932:103A3000CF900895CF93C82F8CE20E94E01C88237A
933:103A400021F08C2FCF910C94E01C80E0CF91089551
934:103A5000CF930E946B1E811102C00E944C1EC5E6CE
935:103A600008C00E9438078FE39CE90197F1F700C076
936:103A70000000C150B1F789E20E941A1D81110AC1EC
937:103A80008AE20E941A1D81110E944C1E85E00E944C
938:103A90001A1D81110E94BD1C0E94761E8093D001C8
939:103AA00087E00E941A1D882399F18BE10E941A1D5C
940:103AB000882351F09091D00191FB882780F921E073
941:103AC000822780FB91F922C08EE00E941A1D882374
942:103AD00051F09091D00192FB882780F921E0822754
943:103AE00080FB92F913C080E10E941A1D9091D001D1
944:103AF000882341F093FB882780F921E0822780FB0F
945:103B000093F904C0892F809580FB90F99093D001A0
946:103B10008091D0010E947A1E0E94881E8093E1014C
947:103B200080EE0E941A1D882341F08091E101982FB8
948:103B3000909590FB80F98093E10189E30E941A1D22
949:103B4000882359F09091E10191FB882780F921E0C9
950:103B5000822780FB91F99093E10182EE0E941A1D69
951:103B6000882359F09091E10192FB882780F921E0A8
952:103B7000822780FB92F99093E10186EE0E941A1D44
953:103B8000882359F09091E10193FB882780F921E087
954:103B9000822780FB93F99093E10183EE0E941A1D26
955:103BA000882359F09091E10194FB882780F921E066
956:103BB000822780FB94F99093E10185E30E941A1D0E
957:103BC000882359F09091E10195FB882780F921E045
958:103BD000822780FB95F99093E10181E30E941A1DF1
959:103BE000882359F09091E10196FB882780F921E024
960:103BF000822780FB96F99093E10181E10E941A1DD2
961:103C0000882359F09091E10197FB882780F921E002
962:103C1000822780FB97F99093E1018091E1010E9456
963:103C20008C1E87E20E941A1DC82F8EE10E941A1D69
964:103C30008111C2608FE10E941A1D8111C46080E26F
965:103C40000E941A1D8111C86081E20E941A1D811113
966:103C5000C06182E20E941A1D8111C06283E20E944B
967:103C60001A1D8111C06484E20E941A1D882311F07C
968:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9
969:103C800003C00E947F1E682F70E080E090E0CF911B
970:103C90000C94201ACF9108956DEE7EEF80E090E0B5
971:103CA0000E94D92460E082E090E00E94CB2460E092
972:103CB00083E090E00E94CB2460E084E090E00E94EA
973:103CC000CB2460E085E090E00E94CB2460E086E0B9
974:103CD00090E00C94CB2480E090E00E94C52421E089
975:103CE0008D3E9E4F09F020E0822F089582E090E003
976:103CF0000C94BD24682F82E090E00C94CB2483E0E8
977:103D000090E00C94BD24682F83E090E00C94CB24C9
978:103D100084E090E00C94BD24682F84E090E00C9443
979:103D2000CB2486E090E00C94BD24682F86E090E0E0
980:103D30000C94CB248091DE0180FF0BC060911101B7
981:103D400085E0689FB0011124759567957595679515
982:103D50002AC081FF09C06091110185E0689FB00110
983:103D60001124759567951FC082FF07C060911101EE
984:103D700085E0689FB001112416C04091D80144230A
985:103D8000C9F060911001461788F72091110185E074
986:103D9000289F90011124429FC001439F900D112440
987:103DA00070E00E9495246038710540F4611571053A
988:103DB00039F002C065E070E0862F08958FE708951E
989:103DC00081E008958091DE0180FF08C060910F01BD
990:103DD00070E0759567957595679521C081FF06C060
991:103DE00060910F0170E07595679519C082FF04C05E
992:103DF00060910F0170E010C08091D8018823C1F05C
993:103E000060910E018617A0F790910F01989FC00155
994:103E1000112470E00E9495246038710528F4611522
995:103E2000710521F0862F08958FE7089581E00895A8
996:103E300061E070E0F4CF803F21F40E949A1E8195EA
997:103E400004C0813F29F40E949A1E8093DB010895EB
998:103E5000823F21F40E949A1E819504C0833F29F479
999:103E60000E949A1E8093DA010895893F19F40E94F6
1000:103E7000E21E05C08A3F31F40E94E21E81958093C4
1001:103E8000DC0108958B3F21F40E94E21E819504C05D
1002:103E90008C3F29F40E94E21E8093DD010895843F47
1003:103EA00021F48091D901816017C0853F21F4809170
1004:103EB000D901826011C0863F21F48091D9018460CC
1005:103EC0000BC0873F21F48091D901886005C0883FED
1006:103ED00031F48091D90180618093D90108958D3F9B
1007:103EE00021F48091DE0181600BC08E3F21F480912E
1008:103EF000DE01826005C08F3F29F48091DE0184607D
1009:103F00008093DE010895803F29F48091DB0187FFD3
1010:103F10006EC007C0813F41F48091DB0118160CF0A0
1011:103F200066C01092DB0163C09091DA01823F19F400
1012:103F300097FF5DC005C0833F31F419160CF057C0E0
1013:103F40001092DA0154C0893F31F48091DC011816D7
1014:103F50000CF04DC006C08A3F39F48091DC0187FF28
1015:103F600046C01092DC0143C08B3F29F48091DD01F3
1016:103F700087FF3DC006C08C3F39F48091DD011816E3
1017:103F8000B4F51092DD0133C0843F21F48091D90152
1018:103F90008E7F05C0853F31F48091D9018D7F80935C
1019:103FA000D90125C0863F21F48091D9018B7FF7CFBD
1020:103FB000873F21F48091D901877FF1CF883F21F499
1021:103FC0008091D9018F7EEBCF8D3F21F48091DE016E
1022:103FD0008E7F0BC08E3F21F48091DE018D7F05C066
1023:103FE0008F3F29F48091DE018B7F8093DE018091E9
1024:103FF000DA0181110EC08091DB0181110AC080912C
1025:10400000DC01811106C08091DD01811102C0109296
1026:10401000D801089589ED91E00E94FB0F0E945D1C7C
1027:104020009093D7018093D6010895CF938091D601C4
1028:104030009091D7010E946A1C4091D801442321F03D
1029:104040002091120130E006C0209113015AE0259F13
1030:10405000900111248217930708F486C08091DA0139
1031:1040600081110DC09091DB01911109C09091DC018B
1032:10407000911105C09091DD01992309F475C04F3F5E
1033:1040800019F04F5F4093D801181624F40E949A1E2D
1034:104090008093DA018091DA0187FF05C00E949A1EA1
1035:1040A00081958093DA018091DB01181624F40E9437
1036:1040B0009A1E8093DB018091DB0187FF05C00E947F
1037:1040C0009A1E81958093DB016091DA01662339F1B4
1038:1040D000C091DB01CC2319F1772767FD7095872FFD
1039:1040E000972F0E949A2323E333E343E35FE30E9485
1040:1040F000FE230E9467236093DA016C2F772767FD08
1041:104100007095872F972F0E949A2323E333E343E38D
1042:104110005FE30E94FE230E9467236093DB0180918E
1043:10412000DC01181624F40E94E21E8093DC018091C9
1044:10413000DC0187FF05C00E94E21E81958093DC01AF
1045:104140008091DD01181624F40E94E21E8093DD01A7
1046:104150008091DD0187FF05C00E94E21E819580935A
1047:10416000DD01CF910C940A20CF910895E9EDF1E0A3
1048:1041700085E0DF011D928A95E9F71092D80110922F
1049:10418000DE010895833089F130F4813061F08230AE
1050:1041900009F06EC019C0853009F449C0B8F1863005
1051:1041A00009F066C055C020911301862F90E0820F60
1052:1041B000911D8F3F910520F4620F609313010895C4
1053:1041C0008FEF80931301089520911201862F90E0C4
1054:1041D000820F911D8F3F910520F4620F60931201B1
1055:1041E00008958FEF80931201089520911101862F79
1056:1041F00090E0820F911D8F3F910520F4620F609334
1057:10420000110108958FEF80931101089520911001FD
1058:10421000862F90E0820F911D8F3F910520F4620F51
1059:104220006093100108958FEF8093100108952091FD
1060:104230000F01862F90E0820F911D8F3F910520F492
1061:10424000620F60930F0108958FEF80930F0108951F
1062:1042500020910E01862F90E0820F911D8F3F9105D6
1063:1042600020F4620F60930E0108958FEF80930E018A
1064:104270000895833021F130F4813059F0823009F013
1065:1042800049C012C0853089F128F1863009F042C05A
1066:1042900037C080911301681720F4861B80931301A7
1067:1042A000089510921301089580911201681720F467
1068:1042B000861B809312010895109212010895809137
1069:1042C0001101681720F4861B809311010895109244
1070:1042D0001101089580911001681720F4861B8093C6
1071:1042E0001001089510921001089580910F01681730
1072:1042F00020F4861B80930F01089510920F010895FA
1073:1043000080910E01681720F4861B80930E0108959A
1074:1043100010920E01089541E050E060E070E004C0AA
1075:10432000440F551F661F771F8A95D2F7CB01BA013C
1076:104330000E94201A0C941516873200F58E3108F071
1077:1043400086C08E3009F466C060F4873009F44DC031
1078:1043500018F4863049F531C0883041F18B3021F5B1
1079:104360007BC0863109F478C018F48031E9F45CC070
1080:10437000893109F471C08B31B9F442C0883309F432
1081:104380006BC048F4893209F460C0853309F45DC01C
1082:10439000873251F45AC0833409F457C018F48A3371
1083:1043A00018F057C0883499F080E008950E94761E76
1084:1043B0000E94881E0E94911E4FC08091D001817F73
1085:1043C0008E7F8093D00181E08093DF0108950E9469
1086:1043D00015162FEF83ED90E3215080409040E1F7D8
1087:1043E00000C000000E94BD1C37C08091D00180FF3A
1088:1043F00003C0817F8E7F01C081608093D0012CC07B
1089:104400009091D00191FB882780F921E0822780FBE1
1090:1044100091F913C09091D00192FB882780F921E097
1091:10442000822780FB92F909C09091D00193FB8827E5
1092:1044300080F921E0822780FB93F99093D0018823B3
1093:1044400059F091609093D00107C080E003C08D5176
1094:1044500001C089530E948B2181E0089580E0089576
1095:1044600080E00895CF93C82F8091DF01813071F0F3
1096:1044700020F0823009F089C037C0A0910C01B091C2
1097:104480000D018C91823209F082C007C0A0910C010D
1098:10449000B0910D018C91823249F48C2F0E942E2212
1099:1044A00081111EC08C2F0E949C211CC08C2F0E9449
1100:1044B0003022811115C0C43169F030F4CB3081F065
1101:1044C000C03109F068C009C0C93221F0C83309F011
1102:1044D00062C006C01092DF015EC082E08093DF01FF
1103:1044E00081E090E081705AC0C932C9F060F4C431F3
1104:1044F000B1F020F4C73009F04CC034C0CE51C63002
1105:1045000008F047C017C0CE3439F120F4CB3409F09D
1106:1045100040C01CC0C135C1F0C235D9F513C080916F
1107:10452000E001882319F01092E00133C081E080930C
1108:10453000DF0134C0EC2FF0E0E65BFE4F808180931A
1109:10454000E00127C061E003C061E007C06AE080913C
1110:10455000E0010E94C2201DC06AE08091E0010E943B
1111:10456000392117C08EE18093130182E380931201F9
1112:104570008AE08093110184E18093100188E08093A8
1113:104580000F0188E280930E0104C01092DF0180E0E9
1114:1045900005C081E003C080E090E0A4CFCF910895F2
1115:1045A0000E946B1E811102C00E944C1E0E94911E2F
1116:1045B0008093F00180FF02C0869501C080E00C94DA
1117:1045C000E1028091F001982F9695292F30E0233059
1118:1045D00031054CF49F5F990F8170892B8160809326
1119:1045E000F0010E94951E8091F00186950C94E102E5
1120:1045F0008091F001982F969591F09158990F8170C4
1121:10460000892B8093F0018E7F91E009F490E08091F6
1122:10461000F00190FB80F98093F0010E94951E80913B
1123:10462000F00186950C94E1028091F001982F90950D
1124:1046300090FB80F98093F0010E94951E8091F0011B
1125:1046400080FF02C0869501C080E00C94E1023091A9
1126:10465000F001232F26952F5F2F77822F90E0317066
1127:1046600004972CF4220F232B2093F00102C03093E7
1128:10467000F0018091F001282F2E7F91E009F490E065
1129:1046800090FB80F98093F0010E94951E8091F001CB
1130:1046900086950C94E1022091F001922F969598272F
1131:1046A000990F822F8170892B8093F0018E7F91E08A
1132:1046B00009F490E08091F00190FB80F98093F00183
1133:1046C0000E94951E8091F00186950C94E10204D021
1134:1046D0006894B1118DC0089570D088F09F5790F004
1135:1046E000B92F9927B751A0F0D1F0660F771F881F17
1136:1046F000991F1AF0BA95C9F712C0B13081F077D07E
1137:10470000B1E0089574C0672F782F8827B85F39F01B
1138:10471000B93FCCF3869577956795B395D9F73EF475
1139:1047200090958095709561957F4F8F4F9F4F08951D
1140:10473000E89409C097FB3EF490958095709561953B
1141:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1
1142:104750009395F695879577956795B795F111F8CF6D
1143:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8
1144:104770009F4F16C0882311F096E911C0772321F0CE
1145:104780009EE8872F762F05C0662371F096E8862F66
1146:1047900070E060E02AF09A95660F771F881FDAF7BD
1147:1047A000880F9695879597F9089557FD9058440F6F
1148:1047B000551F59F05F3F71F04795880F97FB991F80
1149:1047C00061F09F3F79F0879508951216130614063D
1150:1047D000551FF2CF4695F1DF08C0161617061806CA
1151:1047E000991FF1CF86957105610508940895E894A5
1152:1047F000BB2766277727CB0197F908950BD078C0A0
1153:1048000069D028F06ED018F0952309F05AC05FC027
1154:104810001124EECFCADFA0F3959FD1F3950F50E09E
1155:10482000551F629FF001729FBB27F00DB11D639F62
1156:10483000AA27F00DB11DAA1F649F6627B00DA11D08
1157:10484000661F829F2227B00DA11D621F739FB00DAE
1158:10485000A11D621F839FA00D611D221F749F33271E
1159:10486000A00D611D231F849F600D211D822F762FB7
1160:104870006A2F11249F5750408AF0E1F088234AF0B4
1161:10488000EE0FFF1FBB1F661F771F881F9150504000
1162:10489000A9F79E3F510570F014C0AACF5F3FECF31B
1163:1048A000983EDCF3869577956795B795F795E795EC
1164:1048B0009F5FC1F7FE2B880F911D9695879597F9FD
1165:1048C000089597F99F6780E870E060E008959FEF92
1166:1048D00080EC089500240A94161617061806090697
1167:1048E000089500240A941216130614060506089566
1168:1048F000092E0394000C11F4882352F0BB0F40F4EE
1169:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D
1170:104910000895991B79E004C0991F961708F0961B1B
1171:10492000881F7A95C9F78095089597FB072E16F48E
1172:10493000009407D077FD09D00E94A92407FC05D078
1173:104940003EF4909581959F4F0895709561957F4FA6
1174:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6
1175:10496000B70710F0A61BB70B881F991F5A95A9F718
1176:1049700080959095BC01CD010895F999FECF92BD27
1177:1049800081BDF89A992780B50895A8E1B0E042E08A
1178:1049900050E00C94E024262FF999FECF1FBA92BD67
1179:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610
1180:1049B00008950E94CB24272F0C94CC24DC01CB013A
1181:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F
1182:1049D00000B40D9241505040B8F70895F894FFCFBD
1183:1049E00005960826090209CD08990801C80128087A
1184:1049F000140A321E420045002500260043006100D3
1185:104A00006000200037006400650066006700440015
1186:104A100046002400470074038D03A603BF038B04E4
1187:104A20003E040804E8033F4D362001020304050656
1188:044A3000070809006A
1189:00000001FF
diff --git a/quantum/keymap_midi.c b/quantum/keymap_midi.c
index e37ea3103..ac45d2589 100644
--- a/quantum/keymap_midi.c
+++ b/quantum/keymap_midi.c
@@ -99,11 +99,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
99 99
100 if (record->event.pressed) { 100 if (record->event.pressed) {
101 // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); 101 // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
102 midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); 102 // midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
103 play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); 103 play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
104 } else { 104 } else {
105 // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); 105 // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
106 midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); 106 // midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
107 stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); 107 stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
108 } 108 }
109} \ No newline at end of file 109} \ No newline at end of file
diff --git a/quantum/template/README.md b/quantum/template/README.md
index dc163a2f4..39f9f59d1 100644
--- a/quantum/template/README.md
+++ b/quantum/template/README.md
@@ -15,7 +15,7 @@ Depending on which keymap you would like to use, you will have to compile slight
15To build with the default keymap, simply run `make`. 15To build with the default keymap, simply run `make`.
16 16
17### Other Keymaps 17### Other Keymaps
18Several 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. 18Several 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.
19 19
20To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: 20To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
21``` 21```