summaryrefslogtreecommitdiffstats
path: root/keyboards/clueboard2
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/clueboard2')
-rw-r--r--keyboards/clueboard2/Makefile6
-rw-r--r--keyboards/clueboard2/backlight.c41
-rw-r--r--keyboards/clueboard2/clueboard2.c79
-rw-r--r--keyboards/clueboard2/clueboard2.h7
-rw-r--r--keyboards/clueboard2/keymaps/default/compiled.hex1246
-rw-r--r--keyboards/clueboard2/keymaps/default/keymap.c4
-rw-r--r--keyboards/clueboard2/keymaps/max/compiled.hex1536
-rw-r--r--keyboards/clueboard2/keymaps/max/keymap.c4
-rw-r--r--keyboards/clueboard2/keymaps/skully/compiled.hex1246
-rw-r--r--keyboards/clueboard2/led.c36
10 files changed, 52 insertions, 4153 deletions
diff --git a/keyboards/clueboard2/Makefile b/keyboards/clueboard2/Makefile
index 7204daef75..e9367a90d0 100644
--- a/keyboards/clueboard2/Makefile
+++ b/keyboards/clueboard2/Makefile
@@ -1,7 +1,5 @@
-SRC = led.c
-
# MCU name
#MCU = at90usb1287
MCU = atmega32u4
@@ -68,10 +66,6 @@ AUDIO_ENABLE ?= no
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-#ifdef BACKLIGHT_ENABLE
- SRC := backlight.c $(SRC)
-#endif
-
ifndef QUANTUM_DIR
include ../../Makefile
endif
diff --git a/keyboards/clueboard2/backlight.c b/keyboards/clueboard2/backlight.c
deleted file mode 100644
index 5dfa4ba0ae..0000000000
--- a/keyboards/clueboard2/backlight.c
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#include <avr/io.h>
-#include "backlight.h"
-#include "print.h"
-
-/* Clueboard 2.0 LED locations:
- *
- * Capslock: B4, pull high to turn on
- * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH
- * Page Up: B7, pull high to turn on
- * Escape: D6, pull high to turn on
- * Arrows: D4, pull high to turn on
- */
-
-void init_backlight_pin(void) {
- print("init_backlight_pin()\n");
- // Set our LED pins as output
- DDRD |= (1<<6); // Esc
- DDRB |= (1<<7); // Page Up
- DDRD |= (1<<4); // Arrows
-
- // Set our LED pins low
- PORTD &= ~(1<<6); // Esc
- PORTB &= ~(1<<7); // Page Up
- PORTD &= ~(1<<4); // Arrows
-}
-
-void backlight_set(uint8_t level) {
- if ( level == 0 ) {
- // Turn off light
- PORTD |= (1<<6); // Esc
- PORTB |= (1<<7); // Page Up
- PORTD |= (1<<4); // Arrows
- } else {
- // Turn on light
- PORTD &= ~(1<<6); // Esc
- PORTB &= ~(1<<7); // Page Up
- PORTD &= ~(1<<4); // Arrows
- }
-}
-
diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c
index 8493c564c8..d78ffed9ba 100644
--- a/keyboards/clueboard2/clueboard2.c
+++ b/keyboards/clueboard2/clueboard2.c
@@ -1,40 +1,63 @@
#include "clueboard2.h"
-#ifdef BACKLIGHT_ENABLE
-#include "backlight.h"
-#endif
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
- // leave these blank
-};
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
- // leave these blank
-};
-
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
- if (matrix_init_user) {
- (*matrix_init_user)();
- }
+ matrix_init_user();
led_init_ports();
- #ifdef BACKLIGHT_ENABLE
- init_backlight_pin();
- #endif
-
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
};
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
- if (matrix_scan_user) {
- (*matrix_scan_user)();
- }
-};
+void led_init_ports() {
+ // * Set our LED pins as output
+ DDRB |= (1<<4);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // Turn capslock on
+ PORTB |= (1<<4);
+ } else {
+ // Turn capslock off
+ PORTB &= ~(1<<4);
+ }
+}
+
+/* Clueboard 2.0 LED locations:
+ *
+ * Capslock: B4, pull high to turn on
+ * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH
+ * Page Up: B7, pull high to turn on
+ * Escape: D6, pull high to turn on
+ * Arrows: D4, pull high to turn on
+ */
+
+void backlight_init_ports(void) {
+ print("init_backlight_pin()\n");
+ // Set our LED pins as output
+ DDRD |= (1<<6); // Esc
+ DDRB |= (1<<7); // Page Up
+ DDRD |= (1<<4); // Arrows
+
+ // Set our LED pins low
+ PORTD &= ~(1<<6); // Esc
+ PORTB &= ~(1<<7); // Page Up
+ PORTD &= ~(1<<4); // Arrows
+}
+
+void backlight_set(uint8_t level) {
+ if ( level == 0 ) {
+ // Turn off light
+ PORTD |= (1<<6); // Esc
+ PORTB |= (1<<7); // Page Up
+ PORTD |= (1<<4); // Arrows
+ } else {
+ // Turn on light
+ PORTD &= ~(1<<6); // Esc
+ PORTB &= ~(1<<7); // Page Up
+ PORTD &= ~(1<<4); // Arrows
+ }
+}
diff --git a/keyboards/clueboard2/clueboard2.h b/keyboards/clueboard2/clueboard2.h
index 97042f73f7..e474b31019 100644
--- a/keyboards/clueboard2/clueboard2.h
+++ b/keyboards/clueboard2/clueboard2.h
@@ -1,9 +1,7 @@
#ifndef CLUEBOARD2_H
#define CLUEBOARD2_H
-#include "matrix.h"
-#include "keymap.h"
-#include <stddef.h>
+#include "quantum.h"
/* Clueboard matrix layout
@@ -51,7 +49,4 @@
{ k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
}
-void matrix_init_user(void);
-void matrix_scan_user(void);
-
#endif
diff --git a/keyboards/clueboard2/keymaps/default/compiled.hex b/keyboards/clueboard2/keymaps/default/compiled.hex
deleted file mode 100644
index c737eb3c67..0000000000
--- a/keyboards/clueboard2/keymaps/default/compiled.hex
+++ /dev/null
@@ -1,1246 +0,0 @@
-:100000000C94E5050C9429060C9429060C942906F9
-:100010000C9429060C9429060C9429060C942906A4
-:100020000C9429060C9429060C9449110C941B126B
-:100030000C94FD1F0C9429060C9429060C94290697
-:100040000C9429060C9429060C9429060C94290674
-:100050000C9429060C9465200C9429060C9429060E
-:100060000C9429060C9429060C9429060C94290654
-:100070000C9429060C9429060C9429060C94290644
-:100080000C9429060C9429060C9429060C94290634
-:100090000C9429060C9429060C9429060C94290624
-:1000A0000C9429060C9429060C9429068812AA128D
-:1000B0009813AA129813EF121213981367137A1356
-:1000C00099169916C816C81607177218721872185A
-:1000D00027177218D717D7173E18471872186C18B9
-:1000E000E417E417E417E417E417E417E417E41738
-:1000F000E417E417E417E417E417E417E417E41728
-:10010000F4170218091810181A18696E69745F62DA
-:1001100061636B6C696768745F70696E28290A0097
-:1001200000F000201E001F002000210022002300FC
-:1001300024002B0014001A000800150017001C00F2
-:100140001800390004001600070009000A000B001F
-:100150000D00E10064001D001B00060019000500F1
-:100160001100E000E300E2008B0000002C002C00F6
-:1001700000002500260027002D002E0035002A0053
-:100180004B000C00120013002F0030003100000063
-:100190004E000E000F003300340032002800000033
-:1001A000000010003600370038008700E5005200DC
-:1001B00000008A000000E600E400015250005100F7
-:1001C0004F0035003A003B003C003D003E003F0040
-:1001D00040000100010001000100010001000100D8
-:1001E00001000100010002520100010001000100B4
-:1001F00001000100010001000100010001000100F7
-:1002000001000100010001000100000001000100E7
-:1002100000004100420043004400450001004C0042
-:100220008350460047004800010001000100000023
-:1002300001000100010001000100010001000000B7
-:1002400000000100010001000100010001004B005D
-:100250000000010000000100010001524A004E00B0
-:100260004D0001000100010001000100010001003A
-:100270000100010001000100010000500100010027
-:100280000100010001000252010001000100010013
-:100290000100010001000100010001000100010056
-:1002A0000100010001000100010000000100010047
-:1002B0000000010001000100010001000100010037
-:1002C0000100010001000100010001000100000027
-:1002D0000100010001000100010001000100000017
-:1002E0000000010001000100010001000100010007
-:1002F00000000100000001000100015201000100A6
-:1003000001000A44454255473A20656E61626C65BA
-:10031000642E0A005374617465206F6620726F77D3
-:100320002025583A2025303136620A0048756D6123
-:100330006E2D7265616461626C65206D61747269B5
-:10034000782073746174653A0D0A004465626F75B4
-:100350006E63696E672064656C61792072656D619A
-:10036000696E696E673A2025580A005B735D004B21
-:100370006579626F6172642073746172742E0A0011
-:100380005B575D005B535D005B525D005B445D004D
-:100390005B435D00420343006C0075006500620032
-:1003A0006F00610072006400200077006900740033
-:1003B00068002000520047004200200055006E00F7
-:1003C0006400650072006C006900670068007400DA
-:1003D00069006E0067000000140343006C007500A4
-:1003E000650062006F006100720064000000040399
-:1003F000090409027400040100A0FA0904000001C4
-:1004000003010100092111010001223F00070581BC
-:100410000308000A0904010001030000000921117A
-:100420000100012236000705820308000A090402C0
-:100430000002030000000921110100012220000731
-:1004400005830320000107050303200001090403BD
-:1004500000010300000009211101000122390007F9
-:100460000584031000011201100100000008EDC115
-:10047000202301000102000105010906A101050771
-:1004800019E029E715002501950875018102050885
-:1004900019012905950575019102950175039101D1
-:1004A0000507190029771500250195787501810246
-:1004B000C00631FF0974A1010975150025FF9520BB
-:1004C000750881020976150025FF952075089102AF
-:1004D000C005010980A101850216010026B7001A96
-:1004E00001002AB700751095018100C0050C0901B3
-:1004F000A1018503160100269C021A01002A9C0214
-:10050000751095018100C005010906A101050719B3
-:10051000E029E7150025019508750181029501750F
-:1005200008810105081901290595057501910295B4
-:1005300001750391010507190029FF150025FF9595
-:100540000675088100C00A002530325820006B650E
-:1005500079626F6172645F7265706F72743A2000C5
-:100560004B6579626F617264204C454473207374EB
-:100570006174653A2025780A0064656C5F6B657963
-:100580005F6269743A2063616E27742064656C3A17
-:1005900020253032580A006164645F6B65795F62C0
-:1005A00069743A2063616E2774206164643A20257F
-:1005B0003032580A00646F6E652E0A00626F6F67F2
-:1005C0006D61676963207363616E3A202E2E2E2061
-:1005D000003F00433E20004C25640A0074696D65AD
-:1005E000725F636F756E743A202530346C580A0060
-:1005F0006B6579626F6172645F6E6B726F3A202512
-:10060000580A006B6579626F6172645F69646C653A
-:100610003A2025580A006B6579626F6172645F70D9
-:10062000726F746F636F6C3A2025580A00686F739D
-:10063000745F6B6579626F6172645F6C6564732867
-:10064000293A2025580A000A092D2053746174752F
-:1006500073202D0A004743433A20342E392E32208E
-:100660004156522D4C4942433A20312E382E3120EA
-:100670004156525F415243483A20617672350A0032
-:100680004F5054494F4E533A204C55464120424F0B
-:100690004F544D414749432045585452414B4559C9
-:1006A00020434F4E534F4C4520434F4D4D414E44F8
-:1006B000204E4B524F20343039360A004255494CB7
-:1006C000443A20313637313865662D646972747961
-:1006D000202832333A31303A3036204A756E2020A5
-:1006E000392032303136290A005649443A203078D0
-:1006F0004331454428436C7565626F6172642920FB
-:100700005049443A2030783233323028436C756592
-:10071000626F617264207769746820524742205585
-:100720006E6465726C69676874696E6729205645E6
-:10073000523A203078303030310A00444553433A41
-:1007400020514D4B206B6579626F61726420666940
-:10075000726D7761726520666F7220436C75656299
-:100760006F6172640A000A092D2056657273696F01
-:100770006E202D0A000A092D20436F6E736F6C6581
-:10078000202D0A4553432F713A09717569740A0087
-:100790000A092D204D61676963202D0A443A0944F6
-:1007A00065627567204D65737361676520546F6777
-:1007B000676C650A583A094D61747269782044651E
-:1007C000627567204D6F646520546F67676C6520A4
-:1007D0002D2053686F77206B657970726573736530
-:1007E0007320696E206D6174726978206772696424
-:1007F0000A4B3A094B6579626F6172642044656205
-:10080000756720546F67676C65202D2053686F777C
-:10081000206B65797072657373207265706F727486
-:100820000A4D3A094465627567204D6F75736520FE
-:10083000546F67676C650A563A0956657273696F3B
-:100840006E0A533A095374617475730A433A094145
-:100850006374697661746520436F6E736F6C652095
-:100860004D6F64650A46312D4631303A0953776938
-:1008700074636820746F204C6179657220302D3963
-:100880002028463130203D204C30290A302D393A7D
-:100890000953776974636820746F204C61796572BD
-:1008A00020302D390A4553433A09537769746368F8
-:1008B00020746F204C6179657220302028616C743F
-:1008C00065726E617465206B65792031290A475223
-:1008D0004156453A0953776974636820746F204C18
-:1008E0006179657220302028616C7465726E617464
-:1008F00065206B65792032290A50415553453A09E4
-:100900004A756D7020746F20426F6F746C6F6164F4
-:10091000657220285265736574290A453A09507238
-:10092000696E7420454550524F4D2053657474696B
-:100930006E67730A4E3A094E4B524F20546F6767E9
-:100940006C650A000A002575002E6C6576656C3AA8
-:1009500020000A002575002E656E61626C653A20E4
-:10096000000A0025303258006261636B6C69676869
-:10097000745F636F6E6669672E7261773A20000A52
-:10098000002575002E6E6B726F3A20000A002575E7
-:10099000002E737761705F6261636B736C61736863
-:1009A0005F6261636B73706163653A20000A0025C2
-:1009B00075002E737761705F67726176655F65732E
-:1009C000633A20000A002575002E6E6F5F67756917
-:1009D0003A20000A002575002E737761705F7261FE
-:1009E0006C745F726775693A20000A002575002EE5
-:1009F000737761705F6C616C745F6C6775693A20C6
-:100A0000000A002575002E636170736C6F636B5F65
-:100A1000746F5F636F6E74726F6C3A20000A00250A
-:100A200075002E737761705F636F6E74726F6C5FA9
-:100A3000636170736C6F636B3A20000A002530327B
-:100A400058006B65796D61705F636F6E6669672EC4
-:100A50007261773A20000A002575002E6D6F75735C
-:100A6000653A20000A002575002E6B6579626F617A
-:100A700072643A20000A002575002E6D6174726957
-:100A8000783A20000A002575002E656E61626C655B
-:100A90003A20000A00253032580064656275675FAD
-:100AA000636F6E6669672E7261773A20000A0025CF
-:100AB000750064656661756C745F6C617965723A26
-:100AC00020003F004E4B524F3A206F66660A004EA0
-:100AD0004B524F3A206F6E0A000A6D6F7573653A7C
-:100AE000206F66660A000A6D6F7573653A206F6E37
-:100AF0000A000A6B6579626F6172643A206F6666FC
-:100B00000A000A6B6579626F6172643A206F6E0A3F
-:100B1000000A6D61747269783A206F66660A000A8D
-:100B20006D61747269783A206F6E0A000A646562BA
-:100B300075673A206F66660A000A64656275673AEF
-:100B4000206F6E0A000A0A4A756D70696E6720741C
-:100B50006F20626F6F746C6F616465722E2E2E2031
-:100B600000433E20006565636F6E6669673A0A0060
-:100B70006261636B6C6967687420737465703A2096
-:100B800025750A006261636B6C6967687420746F15
-:100B900067676C653A2025750A006261636B6C6952
-:100BA0006768742064656372656173653A202575B2
-:100BB0000A006261636B6C6967687420696E6372B6
-:100BC000656173653A2025750A0011241FBECFEFB9
-:100BD000DAE0DEBFCDBF04B603FE24C08091EA0197
-:100BE0009091EB01A091EC01B091ED018730904B19
-:100BF000A740B04BB9F41092EA011092EB011092A9
-:100C0000EC011092ED0114BE84B7877F84BF88E1A8
-:100C10000FB6F89480936000109260000FBEE0E081
-:100C2000F8E3099511E0A0E0B1E0E4E8FDE402C0DA
-:100C300005900D92A633B107D9F711E0A6E3B1E014
-:100C400001C01D92AA3EB107E1F70E94830E0C94E9
-:100C5000C0260C940000FF93EF93E0913601F091D1
-:100C60003701309709F00995EF91FF910895FC0144
-:100C70008591803011F0EFDFFBCF0895FF27E0E290
-:100C800030E247FF0CC0419597FF09C0EDE2609547
-:100C9000709580959095611D711D811D911D27FF97
-:100CA00002C0219530E350E2AA27660F771F881F04
-:100CB000991FAA1FA41710F0A41B63955A95A9F7B2
-:100CC000AA3008F0A95FA05DAF93F3956115710597
-:100CD0008105910541F7ED3211F4EF93F395F21789
-:100CE00018F43F93F395FBCF8F91B5DFFA95E1F7B9
-:100CF0000895E991F9918591803021F0853219F0BC
-:100D0000AADFF9CF089520E0E89455915532C1F358
-:100D1000503311F4689455915A3348F4505390F37A
-:100D2000220F022E220F220F200D250FF4CF0EF4DA
-:100D3000219589919991533619F3533729F15335F8
-:100D400059F1BC0188279927E8945C3621F48991F0
-:100D5000999168945591543639F446EF7EF077FFB7
-:100D60000DC08FEF9FEF0AC055374AE039F0583574
-:100D700040E121F0523642E009F00895FF93EF93ED
-:100D80007DDFEF91FF91B7CFFF93EF93FC0181914E
-:100D90008030B9F360DFFBCFFF93EF9368DFF1CFD3
-:100DA000DF93CF93CDB7DEB72596A3DFCF91DF9149
-:100DB00008958AE091E00E943706569A279A549A3D
-:100DC0005E982F985C980895811104C05E9A2F9ABE
-:100DD0005C9A08955E982F985C980895249A0895D7
-:100DE00081FF02C02C9A08952C98089508950895C3
-:100DF00086EF96E0892B11F00E94F6060E94EE061F
-:100E00000E94D90685B7806885BF85B7806885BF91
-:100E1000089587EF96E0892B11F00C94F70608955A
-:100E2000CF93DF93611120C0EC010E94F91E827202
-:100E3000809338019A81992351F0882319F085E332
-:100E400090E002C089E290E00E94511E09C0882310
-:100E500019F085E390E002C089E290E00E94A41EB0
-:100E6000DF91CF910C94431FDF91CF91089581E0E2
-:100E7000089581E008950C94390708950F931F9306
-:100E8000CF93DF938C01FC01C081D181CE010E9400
-:100E9000D21DBE010E94ED07EC01B8010E943B0784
-:100EA000882309F48DC0F8018281882309F44AC09F
-:100EB0008091440181111FC0C431F0E5DF0709F0C2
-:100EC00051C00E943D0781E0809344010E942F2081
-:100ED000909343018093420110923B0110923D0197
-:100EE00010923C0110923F0110923E01109241017C
-:100EF0001092400165C080914201909143010E948F
-:100F00003B20883C910570F480913B01E82FF0E094
-:100F1000EE0FFF1FE45CFE4FD183C0838F5F809391
-:100F20003B014EC0C43880E5D80721F0C538D04514
-:100F300001F13AC0F8018281882341F01092390111
-:100F400082E01EC0C438E0E5DE0759F58091390122
-:100F5000811106C086E20E943D1586E20E940516B8
-:100F600082E01CC0C438F0E5DF0741F3C538D04546
-:100F7000D9F4F8018281882331F010923A0180E29D
-:100F80000E9454161DC080913A01811106C087E26B
-:100F90000E943D1587E20E94051680E20E945B16C2
-:100FA0000FC0C538D04529F381E080933901809383
-:100FB0003A01C801DF91CF911F910F910C9437072F
-:100FC00080E0DF91CF911F910F9108950C94F80666
-:100FD0000C94090780E090E00895E72FF0E09AE094
-:100FE000899FE00DF11D112483E0EE0FFF1F8A950C
-:100FF000E1F7E60FF11DEE0FFF1FEE5DFE4F85914D
-:1010000094910895880F991FFC01E056F040859156
-:1010100094910895880F991FFC01E05EFE4F859121
-:10102000949108950F931F93CF93DF93EC01811553
-:1010300021E39207A0F5C11580E3D80708F0D7C0D7
-:10104000C83ED105D8F4C03ED10508F007C2C83A61
-:10105000D10578F4C53AD10508F06AC0C130D10590
-:1010600009F463C008F4F7C1C430D10508F0F6C133
-:10107000F2C1CB3BD10508F466C0EDC1C11590E2C9
-:10108000D90708F0AFC0C11521E0D20708F0E6C1CA
-:10109000C03FD10508F4DFC18E0110651FC2C03802
-:1010A00080E5D80700F5C03790E5D90708F0A3C060
-:1010B000C11520E5D20709F4ACC050F4CE0190541C
-:1010C00080319F4008F0C7C1DF708E01106A06C2F0
-:1010D000C13080E5D80709F4AAC0C43190E5D9072A
-:1010E00008F4AFC0B8C1C33820E5D20709F48EC0F8
-:1010F00050F4C13890E5D90709F482C008F083C0E4
-:1011000000E011EDEBC1C03181E5D80708F4A3C1BF
-:10111000C11597E5D90708F436C1CE01905781155E
-:10112000904108F098C1DF7093C101E010E0D6C192
-:10113000C53AD10509F494C1C63AD10509F093C165
-:1011400002E810E4CBC1C83AD10509F48FC1C93A0D
-:10115000D10509F48EC1CA3AD10509F48DC1CB3A43
-:10116000D10509F48CC1CC3AD10509F48BC1CD3A33
-:10117000D10509F48AC1C03BD10509F489C1CE3A31
-:10118000D10509F488C1CF3AD10509F487C1C13B23
-:10119000D10509F486C1C23BD10509F485C1C33B21
-:1011A000D10509F484C1C43BD10509F483C1C53B11
-:1011B000D10509F482C1C63BD10509F481C1C73B01
-:1011C000D10509F480C1C83BD10509F47FC1C93BF1
-:1011D000D10509F47EC1CA3BD10509F47DC100E007
-:1011E00014E47CC1CE019F700E940A0878C1DD27FB
-:1011F0008E01106C73C1CF70DD278E01146D6EC12E
-:1012000000E010ED6BC100E012ED68C100E013EDED
-:1012100065C10E94D9188FEF94E32CE08150904073
-:101220002040E1F700C000000E948A2057C182E000
-:1012300093E00E9437068091D40181608093D401AD
-:101240004DC10E943C22811102C00E941D220E94B9
-:10125000592290E09093E9018093E801C23080E543
-:10126000D80721F48091E801816086C0C43090E500
-:10127000D90721F48091E80182607EC0C63020E564
-:10128000D20721F48091E801846076C0C83080E5FF
-:10129000D80719F48091E80127C0CA3090E5D90732
-:1012A00021F48091E801806167C0CC3020E5D2074D
-:1012B00021F48091E80180625FC0CE3080E5D807DC
-:1012C00021F48091E801806457C0C03190E5D907CE
-:1012D00021F48091E80180684FC0C23120E5D20737
-:1012E00029F48091E8018460886046C0C33080E5BD
-:1012F000D80721F48091E8018E7F3EC0C53090E58B
-:10130000D90721F48091E8018D7F36C0C73020E5F0
-:10131000D20721F48091E8018B7F2EC0C93080E58F
-:10132000D80719F48091E80126C0CB3090E5D907A1
-:1013300021F48091E8018F7E1FC0CD3020E5D207D7
-:1013400021F48091E8018F7D17C0CF3080E5D80768
-:1013500021F48091E8018F7B0FC0C13190E5D9075E
-:1013600021F48091E8018F7707C0C331D04531F473
-:101370008091E8018B7F877F8093E8018091E8016D
-:101380000E945D22ABC08D2F99278F7099278130E5
-:101390009105D9F49E012370332702C0880F991F4D
-:1013A0002A95E2F79C688E0144E0000F111F4A95D0
-:1013B000E1F700271370802B912B53E0CC0FDD1F3A
-:1013C0005A95E1F7C076DD272FC08230910531F4C0
-:1013D000DC2FCC278E01016F106A80C0833091050D
-:1013E00069F4CE018370992701E010E002C0000F7C
-:1013F000111F8A95E2F7C8019C680FC084309105DF
-:10140000B9F4CE018370992701E010E002C0000F0B
-:10141000111F8A95E2F7C8019A6823E0CC0FDD1FFF
-:101420002A95E1F7C07ED7708C010C2B1D2B56C07E
-:101430008530910531F4DC2FCC278E01046F106AC2
-:101440004DC0069709F04AC0CF71DD27DC2FCC27AD
-:101450008E01106243C000E010E040C08E013EC02B
-:1014600001E810E43BC003E810E438C002EE14E4E5
-:1014700035C009EE14E432C00AEE14E42FC005EBC7
-:1014800014E42CC006EB14E429C007EB14E426C0D6
-:101490000CEC14E423C00DEC14E420C003E815E4C4
-:1014A0001DC00AE815E41AC002E915E417C004E9F2
-:1014B00015E414C001E216E411C003E216E40EC004
-:1014C00004E216E40BC005E216E408C006E216E4E6
-:1014D00005C007E216E402C00AE216E4C801DF9183
-:1014E000CF911F910F910895E72FF0E09AE0899F27
-:1014F000E00DF11D112483E0EE0FFF1F8A95E1F747
-:10150000E60FF11DEE0FFF1FEE5DFE4F85919491EA
-:10151000803E9105E0F4803C910558F581339105BA
-:1015200009F46FC048F48932910509F463C08A3226
-:10153000910509F46DC072C089339105E9F08238D4
-:101540009105D1F08533910509F44DC067C0833E04
-:10155000910581F138F4803E9105B9F0823E910504
-:10156000D9F05CC0863E910561F1873E9105A1F1FD
-:1015700055C00E94020808952091E80120FD02C094
-:1015800021FF4CC080EE90E049C08091E80180FFCF
-:10159000F9CF89E390E042C08091E80182FF0EC05C
-:1015A0008091E80184FF03C080E090E037C083EEC3
-:1015B00090E034C08091E80182FFF2CF82EE90E0AB
-:1015C0002DC08091E80183FF0BC08091E80184FD6C
-:1015D000EBCF87EE90E022C08091E80183FFF5CF4A
-:1015E00086EE90E01BC08091E80185FF07C089E28C
-:1015F00090E014C08091E80185FFF9CF85E390E089
-:101600000DC08091E80186FF07C08AE290E006C025
-:101610008091E80186FFF9CF81E390E00E941208F3
-:1016200008950C94F006E82FF0E0E95EFE4F80810B
-:10163000E82FEF70F0E082958F7021E030E0A90193
-:1016400002C0440F551F8A95E2F740A308950F93F7
-:101650001F93CF93DF9385B7806885BF85B7806878
-:1016600085BFC9E0D0E001E010E0FE01E95EFE4F79
-:101670008081E82FEF70F0E021A182958F70A801A2
-:1016800002C0440F551F8A95E2F7CA01822B81A33D
-:101690008C2F0E94130B219740F787E090E061E0C8
-:1016A00070E0FC01E15FFE4F2081E22FEF70F0E07F
-:1016B00042A122952F70DB0102C0AA0FBB1F2A9501
-:1016C000E2F79D01242B22A3019758F7DF91CF91D8
-:1016D0001F910F910C94E607EF92FF920F931F93C7
-:1016E000CF93DF930FE411E0C9E0EE24E394F12CF3
-:1016F000D5E08C2F0E94130B87E090E040E0FC01C6
-:10170000E15FFE4F5081E52FEF70F0E020A130E067
-:1017100052955F7002C0359527955A95E2F720FDE6
-:1017200007C09701082E01C0220F0A94EAF7422B46
-:10173000019728F7F80182918F01841719F04083EF
-:10174000D09300018C2F0E94130BC15090F6809112
-:10175000000187FD32C09091D40190FF10C0282F66
-:10176000332727FD30953F938F938BE493E09F932E
-:101770008F930E94D0060F900F900F900F90809142
-:10178000000181508093000187FD07C08FE99FE031
-:101790000197F1F700C0000010C080E090E0FC016C
-:1017A000E15BFE4FDC01AB5BBE4F19962C912187AC
-:1017B0000197863FEFEF9E0791F70E94E80781E0CF
-:1017C000DF91CF911F910F91FF90EF900895E82F37
-:1017D000F0E0E15BFE4F808108950F931F93CF935C
-:1017E000DF938091D40180FF04C08CE293E00E94DB
-:1017F0003706C0E0D0E004E113E08091D40180FF1F
-:1018000015C0FE01E15BFE4F808190E00E94991FB0
-:101810009F938F93DF93CF931F930F930E94D006D4
-:101820000F900F900F900F900F900F902196CA304D
-:10183000D10519F7DF91CF911F910F9108950F9363
-:101840001F93CF9309E511E0C0E0F80182918F0169
-:1018500090E00E94771FC80FF1E00F341F07A9F72F
-:101860008C2FCF911F910F91089580916C01089555
-:1018700008959FB7F89410925B019FBF9091DF018C
-:10188000943009F057C09091E9009F703091EC00BE
-:10189000232F217030FD20E8922B23E02093E900D4
-:1018A0002091EB0020FF43C02091EE0027FF3FC0B6
-:1018B00020915901222321F02091E80025FF37C013
-:1018C0001092590126E03091E80035FD15C03091A5
-:1018D000DF01343061F53091EB0035FD28C0215037
-:1018E00021F481E08093590122C0EFE9FFE03197B4
-:1018F000F1F700C00000E7CF8093F1008091E8008D
-:1019000085FD0AC08091E80080FFFCCF8091E8004F
-:101910008E778093E80006C08FB7F89421E020937B
-:101920005B018FBF9F709093E90080E008959F70E6
-:101930009093E9008FEF0895CF93DF9300D01F922B
-:10194000CDB7DEB72091DF01243021F523E02983D4
-:101950009B838A8382E08093E9008FEF9091E80077
-:10196000815095FD06C095ED9A95F1F70000811123
-:10197000F5CF8091E80085FF0DC040E050E063E0C6
-:1019800070E0CE0101960E94390F8091E8008E77B9
-:101990008093E8000F900F900F90DF91CF91089502
-:1019A000CF93DF9300D01F92CDB7DEB79C0180911B
-:1019B000DF01843019F592E099833B832A83909369
-:1019C000E9008FEF9091E800815095FD06C095EDFC
-:1019D0009A95F1F700008111F5CF8091E80085FF1D
-:1019E0000DC040E050E063E070E0CE0101960E943F
-:1019F000390F8091E8008E778093E8000F900F9068
-:101A00000F90DF91CF910895CF93DF93EC019091E8
-:101A1000DF01943009F046C080910B018823D9F092
-:101A200080910C018823B9F09093E9008FEF909199
-:101A3000E800815095FD06C095E19A95F1F7000008
-:101A40008111F5CF8091E80085FF2CC040E050E087
-:101A500060E170E017C081E08093E9008FEF909122
-:101A6000E800815095FD06C095ED9A95F1F70000CC
-:101A70008111F5CF8091E80085FF14C040E050E06F
-:101A800068E070E0CE010E94390F8091E8008E7707
-:101A90008093E80080E1FE01ACE5B1E001900D9299
-:101AA0008A95E1F7DF91CF91089580E993E00E9454
-:101AB00037068091DE01811109C00E94CE100E947C
-:101AC0002B118091E20084608093E20008958CE8FD
-:101AD00093E00E9437061092DE01089588E893E0B3
-:101AE0000C94370684E893E00C94370680E893E082
-:101AF0000E9437060C94F21F20915A012F5F822F0B
-:101B000062E30E947826992319F020935A010895E0
-:101B100010925A0180915B01882371F18091DF015D
-:101B2000843041F58091E9008F702091EC00922F74
-:101B3000917020FD90E8892B93E09093E9009091BB
-:101B4000EB0090FF14C09091EE0097FF10C09091B1
-:101B5000E80095FF03C01092F100F9CF9091E800E2
-:101B600090FF05C09091E8009E779093E8008F70F9
-:101B70008093E90010925B01089542E061EC81E0FE
-:101B80000E94481042E061EC82E00E94481042E26C
-:101B900061EC83E00E94481042E161EC84E00C9427
-:101BA00048108091E101833009F455C030F4813050
-:101BB00071F0823009F48EC008958A3009F47AC039
-:101BC0008B3009F460C0893009F09CC020C080913E
-:101BD000E001813A09F096C08091E800877F809308
-:101BE000E8008091E4019091E501892B21F460E106
-:101BF0008CE591E003C060E080E090E070E00E943E
-:101C0000840F8091E8008B778093E800089580919D
-:101C1000E001813209F076C08091E4019091E50104
-:101C2000009719F0039709F06DC08091E800877F55
-:101C30008093E8008091E80082FD05C08091DF017B
-:101C40008111F8CF5FC08091F10080936C01809189
-:101C5000E8008B7753C08091E001813A09F052C0CF
-:101C60008091E4019091E501892B09F04BC08091AE
-:101C7000E800877F8093E8008091E80080FFFCCF38
-:101C800080910B0136C08091E0018132D9F58091BD
-:101C9000E4019091E501892BA9F58091E800877F07
-:101CA0008093E8000E947D108091E20180930B01F7
-:101CB0000C94D9188091E001813221F58091E800DF
-:101CC000877F8093E8000E947D108091E3018093DC
-:101CD0006D0108958091E001813AA1F48091E800BE
-:101CE000877F8093E8008091E80080FFFCCF80919F
-:101CF0006D018093F1008091E8008E778093E80079
-:101D00000C947D10089584B7877F84BF88E10FB657
-:101D1000F89480936000109260000FBE90E080E81D
-:101D20000FB6F89480936100909361000FBE0E94FB
-:101D300052140E94CE100E942B118091E200846008
-:101D40008093E20089E39CE00E94721F78940E94D5
-:101D5000B0130E94541481E091E00E94CB138FE6EF
-:101D600093E00E9437068091DF01853089F48BE68D
-:101D700093E00E9437060E94B31F8091DD01882303
-:101D800091F30E94E11F882371F30E94230FEBCF90
-:101D90000E947A14E8CF292F332723303105C9F068
-:101DA00064F42130310581F02230310509F043C05F
-:101DB00084E790E022EF33E042C021323105F1F0B8
-:101DC0002232310541F137C082E190E026E634E06D
-:101DD00036C099278130910541F08230910541F05C
-:101DE000892B49F5EEEEF3E005C0E8EDF3E002C023
-:101DF000E4E9F3E0849190E09F0121C06430D8F4DD
-:101E0000E62FF0E0EE0FFF1FE35DFE4F20813181F2
-:101E100089E090E014C0643070F470E0FB01EE0FD4
-:101E2000FF1FEB5DFE4F20813181FB01EF5DFE4F17
-:101E3000808190E004C080E090E020E030E0FA0192
-:101E400031832083089580E189BD82E189BD09B491
-:101E500000FEFDCF8091D8008F7D8093D8008091C7
-:101E6000E00082608093E0008091E00081FDFCCF83
-:101E70000895CF92DF92EF92FF920F931F93CF932B
-:101E8000DF93EC018B016A010E949C10811133C029
-:101E9000C114D10439F0F60180819181081B190B1E
-:101EA000C80FD91FE12CF12C0115110519F18091F2
-:101EB000E80085FD16C08091E8008E778093E800E9
-:101EC000C114D10449F0F60180819181E80EF91E18
-:101ED000F182E08285E00FC00E949C10882321F3EC
-:101EE0000AC089918093F10001501109FFEFEF1AA8
-:101EF000FF0ADACF80E0DF91CF911F910F91FF9021
-:101F0000EF90DF90CF9008952091E6013091E701A6
-:101F10002617370748F06115710539F42091E8005C
-:101F20002E772093E80001C0B90140E061157105EA
-:101F3000A9F12091DF01222309F443C0253009F4DF
-:101F400042C02091E80023FD40C02091E80022FD1E
-:101F500032C02091E80020FFE9CF4091F3002091AA
-:101F6000F20030E0342BFC01CF016115710559F00E
-:101F70002830310540F481918093F100615071095E
-:101F80002F5F3F4FF1CF41E02830310509F040E0AD
-:101F90002091E8002E772093E800C8CF4111C9CFE7
-:101FA0000AC08091DF01882361F0853061F0809163
-:101FB000E80083FD0AC08091E80082FFF2CF80E054
-:101FC000089582E0089583E0089581E008952091C6
-:101FD000E6013091E7012617370748F061157105D2
-:101FE00039F42091E8002E772093E80001C0B90170
-:101FF000FC0120E06115710591F18091DF018823DA
-:1020000009F440C0853009F43FC08091E80083FDA9
-:102010003DC08091E80082FD2FC08091E80080FFE4
-:10202000E9CF2091F3008091F20090E0922B6115AE
-:10203000710559F08830910540F424912093F10006
-:102040003196615071090196F2CF21E0089709F0AD
-:1020500020E08091E8008E778093E800CBCF2111BB
-:10206000CCCF0AC08091DF01882361F0853061F018
-:102070008091E80083FD0AC08091E80082FFF2CFE2
-:1020800080E0089582E0089583E0089581E0089556
-:10209000982F973058F59093E900981739F0709180
-:1020A000EC002091ED005091F00003C0242F762F1A
-:1020B00050E021FF19C03091EB003E7F3093EB00E0
-:1020C0003091ED003D7F3093ED003091EB003160B9
-:1020D0003093EB007093EC002093ED005093F000F0
-:1020E0002091EE0027FF07C09F5FD3CF8F708093B2
-:1020F000E90081E0089580E008958091E00187FF84
-:1021000011C08091E80082FD05C08091DF0181113E
-:10211000F8CF11C08091E8008B770BC08091DF0170
-:10212000882349F08091E80080FFF8CF8091E80093
-:102130008E778093E80008952091E4003091E500C7
-:1021400095E64091EC00842F817040FF22C0809181
-:10215000E80080FD1CC08091DF01882391F085306C
-:1021600091F08091EB0085FD10C04091E40050910A
-:10217000E5004217530729F39A01915011F784E0C3
-:10218000089582E0089583E0089581E0089580E055
-:1021900008954091E80042FFDECF08950E943C116F
-:1021A0000E944411E0EEF0E0808181608083E8EDE0
-:1021B000F0E080818F77808319BCA7EDB0E08C912F
-:1021C0008E7F8C9380818F7E80831092DE010895B4
-:1021D0000F931F93CF93DF930E943C110E944411F1
-:1021E000C8EDD0E088818F77888388818068888374
-:1021F00088818F7D888319BC1092DF011092DB01EA
-:102200001092DD011092DC0100EE10E0F8018081F7
-:102210008B7F808388818160888342E060E080E0FA
-:102220000E944810E1EEF0E080818E7F8083E2EE34
-:10223000F0E0808181608083808188608083F80104
-:1022400080818E7F8083888180618883DF91CF91B8
-:102250001F910F910895E8EDF0E080818F7E8083DB
-:10226000E7EDF0E080818160808384E082BF81E0DF
-:102270008093DE010C94E810E8EDF0E080818E7F21
-:1022800080831092E20008951092DA001092E1002B
-:1022900008951F920F920FB60F9211242F933F9320
-:1022A0004F935F936F937F938F939F93AF93BF935E
-:1022B000EF93FF938091E10082FF0BC08091E200D9
-:1022C00082FF07C08091E1008B7F8093E1000E9434
-:1022D0007C0D8091DA0080FF1FC08091D80080FFC4
-:1022E0001BC08091DA008E7F8093DA008091D90044
-:1022F00080FF0DC080E189BD82E189BD09B400FE87
-:10230000FDCF81E08093DF010E94550D05C019BC0F
-:102310001092DF010E94670D8091E10080FF19C0DB
-:102320008091E20080FF15C08091E2008E7F809353
-:10233000E2008091E20080618093E2008091D80009
-:1023400080628093D80019BC85E08093DF010E94F1
-:10235000720D8091E10084FF30C08091E20084FF23
-:102360002CC080E189BD82E189BD09B400FEFDCFAA
-:102370008091D8008F7D8093D8008091E1008F7E7E
-:102380008093E1008091E2008F7E8093E200809153
-:10239000E20081608093E2008091DB01882311F0EC
-:1023A00084E007C08091E30087FD02C081E001C0A6
-:1023B00083E08093DF010E94760D8091E10083FF2E
-:1023C00029C08091E20083FF25C08091E100877FD2
-:1023D0008093E10082E08093DF011092DB01809125
-:1023E000E1008E7F8093E1008091E2008E7F8093F8
-:1023F000E2008091E20080618093E20042E060E0D0
-:1024000080E00E9448108091F00088608093F00086
-:102410000E946E0DFF91EF91BF91AF919F918F91AF
-:102420007F916F915F914F913F912F910F900FBED0
-:102430000F901F9018951F920F920FB60F921124B4
-:102440002F933F934F935F936F937F938F939F93BC
-:10245000AF93BF93CF93DF93EF93FF93C091E900C6
-:10246000CF708091EC00D82FD17080FDD0E8109211
-:10247000E9008091F000877F8093F00078940E94BB
-:102480005F121092E9008091F00088608093F00064
-:10249000CD2BCF70C093E900FF91EF91DF91CF91E9
-:1024A000BF91AF919F918F917F916F915F914F916C
-:1024B0003F912F910F900FBE0F901F9018951F9373
-:1024C000CF93DF93CDB7DEB7AA970FB6F894DEBFF0
-:1024D0000FBECDBFE0EEF1E088E08E0F9091F100ED
-:1024E00091938E13FBCF0E94D10D8091E80083FF62
-:1024F0001FC18091E0019091E101492F50E04A30E5
-:10250000510508F015C1FA01EA5AFF4F0C948426D0
-:10251000803881F0823809F00BC18091E4018F701E
-:102520008093E9008091EB0085FB882780F9109269
-:10253000E90006C08091DC019091DD01911182607B
-:102540009091E800977F9093E8008093F1001092BB
-:10255000F100C8C0282F2D7F09F0EAC0882319F0A8
-:10256000823061F0E5C08091E201813009F0E0C085
-:10257000933009F080E08093DD012BC08091E2016F
-:10258000811127C08091E4018F7009F4D1C080933C
-:10259000E9002091EB0020FF1CC0933021F48091D2
-:1025A000EB00806214C09091EB0090619093EB007F
-:1025B00021E030E0A90102C0440F551F8A95E2F7DF
-:1025C0004093EA001092EA008091EB0088608093CB
-:1025D000EB001092E9008091E800877F86C08111AE
-:1025E000A7C01091E2011F778091E3008078812BD2
-:1025F0008093E3008091E800877F8093E8000E9449
-:102600007D108091E80080FFFCCF8091E30080681E
-:102610008093E300111102C082E001C083E0809347
-:10262000DF0186C08058823008F082C08091E201CC
-:102630009091E3018C3D53E0950779F583E08A831F
-:102640008AE289834FB7F894DE01139620E03EE0DA
-:1026500051E2E32FF0E050935700E49120FF03C0D4
-:10266000E295EF703F5FEF708E2F90E0EA3010F050
-:10267000C79601C0C0968D939D932F5F243149F773
-:102680004FBF8091E800877F8093E8006AE270E0A6
-:10269000CE0101960E94840F14C0AE014F5F5F4FC0
-:1026A0006091E4010E94CB0EBC01009709F440C088
-:1026B0009091E800977F9093E80089819A810E9429
-:1026C000E70F8091E8008B778093E80031C0803875
-:1026D00079F58091E800877F8093E8008091DB01A5
-:1026E0008093F1008091E8008E778093E8000E944B
-:1026F0007D101EC081111CC09091E2019230C0F487
-:102700008091E800877F8093E8009093DB010E942E
-:102710007D108091DB01811106C08091E30087FD6F
-:1027200002C081E001C084E08093DF010E94BD0D02
-:102730008091E80083FF0AC08091E800877F809342
-:10274000E8008091EB0080628093EB00AA960FB6C0
-:10275000F894DEBF0FBECDBFDF91CF911F910895DA
-:10276000CF938091DF018823A1F0C091E900CF7061
-:102770009091EC00892F817090FD80E8C82B109219
-:10278000E9008091E80083FD0E945F12CF70C09342
-:10279000E900CF9108959093730180937201089599
-:1027A000E0917201F0917301309721F00190F08176
-:1027B000E02D099480E00895EF92FF920F931F930C
-:1027C000CF93DF93E0917201F09173013097B1F1F3
-:1027D0008C010280F381E02D09958091D40182FF64
-:1027E0002DC080FF04C08EE495E00E943706E8010A
-:1027F00010E188E4E82E85E0F82E8091D40180FF76
-:102800000BC088811F928F93FF92EF920E94D00697
-:102810000F900F900F900F90115021961111EDCF46
-:102820008091D40180FF0AC086E495E0DF91CF91CA
-:102830001F910F91FF90EF900C943706DF91CF918D
-:102840001F910F91FF90EF900895209170013091AA
-:1028500071018217930771F0909371018093700159
-:10286000E0917201F0917301309721F00680F781B9
-:10287000E02D0994089520916E0130916F01821727
-:10288000930771F090936F0180936E01E091720154
-:10289000F0917301309721F00084F185E02D0994C7
-:1028A000089508950C9451140E9426200E94270B2D
-:1028B0000E94E8200C949B25CF93DF931F92CDB705
-:1028C000DEB79091D40192FF10C090FF0EC01F920E
-:1028D0008F9320E635E03F932F9389830E94D006A3
-:1028E0000F900F900F900F9089810F90DF91CF91F3
-:1028F0000C94110B9F92AF92BF92CF92DF92EF9206
-:10290000FF920F931F93CF93DF9300D000D000D09E
-:10291000CDB7DEB70E946C0B09E010E0AA24A394A7
-:10292000B12C902E802F0E94E70B98012B583E4F20
-:102930006901F901F080F826A1F40150110988F726
-:102940008FEF89838A831B820E942F208160782FDA
-:102950009D838C8349815A816B818D810E940F15E3
-:102960002FC09091D40191FF04C08E830E94ED0B83
-:102970008E8127E030E0A501022E01C0440F0A94A9
-:10298000EAF7E42E4F21C1F029839A828E2191E04B
-:1029900009F490E09B830E942F208160782F9D8313
-:1029A0008C8349815A816B818D810E940F15F601BC
-:1029B0008081E826E08204C021503109E0F6BDCFD5
-:1029C000109174010E94D0131817B9F00E94D0130F
-:1029D0008093740126960FB6F894DEBF0FBECDBF6C
-:1029E000DF91CF911F910F91FF90EF90DF90CF90EB
-:1029F000BF90AF909F900C945C1426960FB6F894FD
-:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021
-:102A1000EF90DF90CF90BF90AF909F900895CF93AD
-:102A2000DF93CDB7DEB72B970FB6F894DEBF0FBE9E
-:102A3000CDBF4F83588769877A878B87DE011196D0
-:102A400086E0FD0111928A95E9F785E0FE0137964F
-:102A500001900D928A95E1F749815A816B817C81C1
-:102A60008D819E810E94771B2B960FB6F894DEBF56
-:102A70000FBECDBFDF91CF910895CF93882309F486
-:102A8000C2C0C82F823859F40E94D01381FDBBC048