From ce463ef424c5bd26b84ead7de5f31eab366f98eb Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 17 Apr 2016 18:14:42 -0400 Subject: audio fixes --- keyboard/preonic/keymaps/default/keymap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 48bc72dab7..2591af9f02 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -224,6 +224,7 @@ float tone_music[][2] = { {440.0*pow(2.0,(23)/12.0), 8}, {440.0*pow(2.0,(24)/12.0), 8} }; +float ode_to_joy[][2] = SONG(ODE_TO_JOY); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -312,7 +313,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + init_notes(); + set_tempo(150); + PLAY_NOTE_ARRAY(ode_to_joy, false, .25); layer_on(_MUSIC); #endif } @@ -339,6 +342,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, false, 0); + PLAY_NOTE_ARRAY(start_up, false, 0); #endif } -- cgit v1.2.3 From e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 18 Apr 2016 21:01:48 -0400 Subject: note sliding - on right now --- keyboard/preonic/keymaps/default/keymap.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 2591af9f02..2546d8f6c5 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -14,8 +14,9 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 5 -#define _MUSIC 6 +#define _ADJUST 6 +#define _MUSIC 7 +#define _STOPPER 5 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -172,7 +173,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Stopper + * + */ +[_STOPPER] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } + }; const uint16_t PROGMEM fn_actions[] = { @@ -225,6 +238,7 @@ float tone_music[][2] = { {440.0*pow(2.0,(24)/12.0), 8} }; float ode_to_joy[][2] = SONG(ODE_TO_JOY); +float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -306,6 +320,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE layer_off(_MUSIC); + layer_off(_STOPPER); stop_all_notes(); #endif } @@ -317,6 +332,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) set_tempo(150); PLAY_NOTE_ARRAY(ode_to_joy, false, .25); layer_on(_MUSIC); + layer_on(_STOPPER); #endif } break; @@ -345,3 +361,9 @@ void matrix_init_user(void) { PLAY_NOTE_ARRAY(start_up, false, 0); #endif } + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(2000); +} \ No newline at end of file -- cgit v1.2.3 From a2f31c886ff13c5e7adeccccfe672698c1c7efb9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 12:58:13 -0400 Subject: getting ready for getters and setters --- keyboard/preonic/keymaps/default/keymap.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 2546d8f6c5..144e9c3086 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -14,9 +14,8 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 +#define _MUSIC 5 #define _ADJUST 6 -#define _MUSIC 7 -#define _STOPPER 5 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -159,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -168,22 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ [_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Stopper - * - */ -[_STOPPER] = { {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } }; @@ -237,7 +225,7 @@ float tone_music[][2] = { {440.0*pow(2.0,(23)/12.0), 8}, {440.0*pow(2.0,(24)/12.0), 8} }; -float ode_to_joy[][2] = SONG(ODE_TO_JOY); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -320,7 +308,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE layer_off(_MUSIC); - layer_off(_STOPPER); stop_all_notes(); #endif } @@ -329,10 +316,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE init_notes(); - set_tempo(150); - PLAY_NOTE_ARRAY(ode_to_joy, false, .25); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); - layer_on(_STOPPER); #endif } break; @@ -358,6 +343,7 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); + _delay_ms(10); PLAY_NOTE_ARRAY(start_up, false, 0); #endif } @@ -365,5 +351,5 @@ void matrix_init_user(void) { void play_goodbye_tone() { PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(2000); + _delay_ms(150); } \ No newline at end of file -- cgit v1.2.3 From 462601f5e8de3476963c6fef44a88653e19fc3fd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 21:25:48 -0400 Subject: breaking changes - restructuring audio.c a little --- keyboard/preonic/keymaps/default/keymap.c | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 144e9c3086..ecf3400f8d 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -15,7 +15,7 @@ #define _LOWER 3 #define _RAISE 4 #define _MUSIC 5 -#define _ADJUST 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -142,6 +142,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -161,19 +172,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } + }; const uint16_t PROGMEM fn_actions[] = { @@ -315,7 +316,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif @@ -341,11 +341,12 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - _delay_ms(10); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif + play_startup_tone(); +} + +void play_startup_tone() +{ + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() -- cgit v1.2.3 From de4690593cec908b19f97509f45c78534fd5440f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 01:08:17 -0400 Subject: fixed startup audio with a 500ms delay --- keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 43 +++++-------------------------- 2 files changed, 7 insertions(+), 38 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e27201..c2648d2294 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) +CONSOLE_ENABLE = on # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index ecf3400f8d..9ee803b063 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,6 +3,7 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" + #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -189,43 +190,10 @@ float start_up[][2] = { {440.0*pow(2.0,(26)/12.0), 8} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; - -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -341,12 +309,13 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { + // audio_init(); play_startup_tone(); } void play_startup_tone() { - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); } void play_goodbye_tone() -- cgit v1.2.3 From b0635e58eb33b0ed4f6b4a3846660feae15681ad Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:39:36 -0400 Subject: delay isn't the problem here --- keyboard/preonic/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 9ee803b063..16f8a8bf18 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -315,7 +315,7 @@ void matrix_init_user(void) { void play_startup_tone() { - PLAY_NOTE_ARRAY(music_scale, false, 0); + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() -- cgit v1.2.3 From 0fd093b4007229fc0e8bbb440b6febaaea109fb1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:41:10 -0400 Subject: there is no on --- keyboard/preonic/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index c2648d2294..3504e27201 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = on # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -- cgit v1.2.3 From 157ddccc2c0b865582fb488ea5346e2996b05468 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 20:11:05 -0400 Subject: start-up sound working, removes tick with some devices --- keyboard/preonic/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 16f8a8bf18..267bfab3d7 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -309,7 +309,7 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - // audio_init(); + _delay_ms(10); // gets rid of tick play_startup_tone(); } -- cgit v1.2.3 From 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 21 Apr 2016 18:14:25 -0400 Subject: adds multiple voices and the ability to iterate/deiterate between them --- keyboard/preonic/keymaps/default/keymap.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 267bfab3d7..f0d5ed6030 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,7 +3,6 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" - #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -31,6 +30,8 @@ #endif #define MUS_OFF M(8) #define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) // Fillers to make layering more clear #define _______ KC_TRNS @@ -171,7 +172,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -289,6 +290,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif } break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; } return MACRO_NONE; }; -- cgit v1.2.3 From 620ac4b260fa663d12b11a0b15ac50379523c125 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Thu, 21 Apr 2016 19:35:18 -0700 Subject: Update functions used to write to EEPROM --- keyboard/preonic/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index f0d5ed6030..3a6dfa31a7 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -200,7 +200,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } -- cgit v1.2.3 From 9fb1e5441fd59496a55d1d171dc7dba5f2ea1c22 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 00:22:35 -0400 Subject: updates preonic default keymap --- keyboard/preonic/keymaps/default/keymap.c | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 3a6dfa31a7..95b9718762 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -24,10 +24,8 @@ #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#define AUD_OFF M(6) +#define AUD_ON M(7) #define MUS_OFF M(8) #define MUS_ON M(9) #define VC_IN M(10) @@ -163,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |Musoff|Mus on| | | | | | | | + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -310,6 +308,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE + uint8_t starting_note = 0x0C; int offset = 7; @@ -325,18 +333,10 @@ void process_action_user(keyrecord_t *record) { } -void matrix_init_user(void) { - _delay_ms(10); // gets rid of tick - play_startup_tone(); -} - -void play_startup_tone() -{ - PLAY_NOTE_ARRAY(start_up, false, 0); -} - void play_goodbye_tone() { PLAY_NOTE_ARRAY(goodbye, false, 0); _delay_ms(150); -} \ No newline at end of file +} + +#endif \ No newline at end of file -- cgit v1.2.3 From 0889cc0d9adc1a69136acd28e880089c05a75778 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 01:00:34 -0400 Subject: removes old .hex files --- keyboard/preonic/preonic_music.hex | 1713 ------------------------------- keyboard/preonic/preonic_pcb.hex | 1702 ------------------------------ keyboard/preonic/preonic_pcb_silent.hex | 1189 --------------------- 3 files changed, 4604 deletions(-) delete mode 100644 keyboard/preonic/preonic_music.hex delete mode 100644 keyboard/preonic/preonic_pcb.hex delete mode 100644 keyboard/preonic/preonic_pcb_silent.hex (limited to 'keyboard/preonic') diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex deleted file mode 100644 index 603693bffb..0000000000 --- a/keyboard/preonic/preonic_music.hex +++ /dev/null @@ -1,1713 +0,0 @@ -:100000000C9410030C9454030C9454030C94540358 -:100010000C9454030C9454030C9454030C94540304 -:100020000C9454030C9454030C9410170C94E21782 -:100030000C94BD290C9454030C9454030C94540355 -:100040000C9454030C9454030C9454030C945403D4 -:100050000C9454030C942A2A0C9454030C945403C7 -:100060000C9454030C9454030C9454030C945403B4 -:100070000C9454030C9454030C9454030C945403A4 -:100080000C94440E0C9454030C9454030C94540399 -:100090000C9454030C9454030C9454030C94540384 -:1000A0000C9454030C9454030C9454030763423689 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE00006000600060006000608C -:10039000006000600060006000600060006000605D -:1003A000006000600060006000600060006000604D -:1003B000006000600060006000600060006000603D -:1003C000006000600060006000600060006000602D -:1003D000006000600060006000600060006000601D -:1003E00000600060006000300100010001000100B9 -:1003F00001000100010000600060006000602A034D -:1004000054006800650020005000720065006F0015 -:100410006E006900630020004B00650079006200F7 -:100420006F0061007200640000002C034F00720036 -:10043000740068006F006C0069006E006500610068 -:10044000720020004B006500790062006F006100BF -:100450007200640073000000040309040902D00064 -:10046000060100A0FA0904000001030101000921AE -:1004700011010001223F000705810308000A090459 -:1004800001000103010200092111010001224D00B8 -:100490000705820308000A090402000103000000A6 -:1004A0000921110100012236000705830308000A13 -:1004B00009040300020300000009211101000122C8 -:1004C0002000070584032000010705040320000124 -:1004D00009040400000101000009240100010900D1 -:1004E00001050904050002010300000724010001C1 -:1004F0004100062402010100062402020200092430 -:1005000003010301020100092403020401010100A7 -:100510000905060240000500000525010101090545 -:1005200085024000050000052501010312011001AC -:1005300000000008EDFE61600100010200010631CB -:10054000FF0974A1010975150025FF952075088123 -:10055000020976150025FF952075089102C0050156 -:100560000980A101850216010026B7001A01002AA0 -:10057000B700751095018100C0050C0901A1018526 -:1005800003160100269C021A01002A9C0275109590 -:10059000018100C005010902A1010901A1000509AD -:1005A000190129051500250195057501810295019F -:1005B000750381010501093009311581257F9502F7 -:1005C0007508810609381581257F95017508810612 -:1005D000050C0A38021581257F950175088106C032 -:1005E000C005010906A101050719E029E715002545 -:1005F00001950875018102950175088101050819A9 -:100600000129059505750191029501750391010573 -:1006100007190029FF150025FF950675088100C000 -:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C -:1006300024C08091050490910604A0910704B09114 -:1006400008048730904BA740B04BB9F410920504D2 -:1006500010920604109207041092080414BE84B786 -:10066000877F84BF88E10FB6F89480936000109272 -:1006700060000FBEE0E0F8E3099512E0A0E0B1E011 -:10068000E6ECF9E602C005900D92A832B107D9F761 -:1006900014E0A8E2B2E001C01D92A530B107E1F775 -:1006A0000E94C8130C94E1340C94000061111DC029 -:1006B000FC018281882351F085EE0E94901E0E94E9 -:1006C000BC3080E290E0A0E0B0E007C085EE0E9480 -:1006D000581F81E090E0A0E0B0E08093E1029093A9 -:1006E000E202A093E302B093E40280E090E0089578 -:1006F0000E94370E40E050E069E070E080E091E059 -:100700000C94880F08950E948B036E9A769A0C942D -:1007100078030C948203279A2F988FEF9FEF909382 -:100720008700809386008AE08093800089E180932F -:1007300081000C94653081110BC080918000877F0F -:100740008093800010928D0010928C002F98089555 -:100750002F98833041F480918000886080938000DE -:100760008FEF9FEF12C0909180009860909380006F -:1007700023E030E0281B3109220F331F8FEF9FEF5A -:1007800002C0969587952A95E2F790938D00809305 -:100790008C0008958B3B910568F4883A910530F5FB -:1007A000853A9105C0F48430910598F4019709F0D9 -:1007B0006FC071C0803E910508F46AC0883E910503 -:1007C00040F09C01205F31092031310508F060C004 -:1007D0005CC09C01A1C0853A910509F45FC0863ACE -:1007E000910509F45EC023E830E496C0883A91058B -:1007F00009F45AC0893A910509F459C08A3A910519 -:1008000009F458C08B3A910509F457C08C3A910508 -:1008100009F456C08D3A910509F455C0803B910505 -:1008200009F454C08E3A910509F453C08F3A9105EA -:1008300009F452C0813B910509F451C0823B9105F6 -:1008400009F450C0833B910509F44FC0843B9105E6 -:1008500009F44EC0853B910509F44DC0863B9105D6 -:1008600009F44CC0873B910509F44BC0883B9105C6 -:1008700009F44AC0893B910509F449C08A3B9105B6 -:1008800009F048C02AE236E447C09C01306544C004 -:1008900020E030E041C021E030E03EC021E830E41B -:1008A0003BC022E830E438C022EE34E435C029EE03 -:1008B00034E432C02AEE34E42FC025EB34E42CC0FB -:1008C00026EB34E429C027EB34E426C02CEC34E4D6 -:1008D00023C02DEC34E420C023E835E41DC02AE811 -:1008E00035E41AC022E935E417C024E935E414C020 -:1008F00021E236E411C023E236E40EC024E236E4FD -:100900000BC025E236E408C026E236E405C027E243 -:1009100036E402C020E034E4C90108959CE0799FE8 -:10092000F00111249CE3899FE00DF11D1124E60FD5 -:10093000F11DEE0FFF1FE25DFE4F25913491C901BD -:100940000895880F991F82559040FC01259134919C -:10095000C9010895880F991F825D9E4FFC01259162 -:100960003491C90108950E948E049C019A958115C5 -:100970009F4110F4C9010895C90190528115904119 -:1009800028F4C9019F700E94AA040895C9019053D8 -:100990008115904120F4C9019927906C0895C901EF -:1009A0009054409728F4C9018F709927946D089549 -:1009B000203180E4380719F480E091ED0895213169 -:1009C00090E4390719F480E090ED0895223140E475 -:1009D000340719F480E092ED0895233180E438075C -:1009E00019F480E093ED0895211590E53907A1F4FD -:1009F0000E948B2340E065E088E491E00E94880F2C -:100A00002FEF44E38CE0215040408040E1F700C0EC -:100A100000000E944F2A1EC1213090E5390731F4B1 -:100A20008091F10281608093F10214C1C901905557 -:100A30008115904108F062C0432F55274F7055270C -:100A400041305105F9F4C90174E0880F991F7A9576 -:100A5000E1F788279370B901E3E0660F771FEA9505 -:100A6000E1F760767727862B972B9C6823703327D6 -:100A700002C0440F551F2A95E2F74F715527842B6A -:100A8000952B08954230510529F4922F8827816FC4 -:100A9000906A089543305105B9F4C90153E0880FB5 -:100AA000991F5A95E1F7807E97702370332741E0B4 -:100AB00050E002C0440F551F2A95E2F74F715527A9 -:100AC000842B952B9C6808954430510589F5C90104 -:100AD00043E0880F991F4A95E1F7807E9770237055 -:100AE000332741E050E002C0440F551F2A95E2F73A -:100AF0004F715527842B952B9A680895C9019056FC -:100B00008115904118F4C901906F0895C90190575B -:100B10008115904120F4C9019F7090620895C90128 -:100B200090588115904120F4C9019F70906A0895F2 -:100B3000203E3105E0F4203C310568F521333105D4 -:100B400009F475C048F42932310509F46BC02A3222 -:100B5000310509F07BC075C02933310501F1223818 -:100B60003105E9F02533310509F070C051C0233E4D -:100B70003105B1F140F4203E3105D1F0223E31057E -:100B800009F064C01CC0263E310579F1273E3105CD -:100B900009F05CC038C0C9010E94A1040895809189 -:100BA000020380FD02C081FF51C080EE90E04FC083 -:100BB0008091020380FFF9CF89E390E048C08091E3 -:100BC000020382FF0AC08091020384FF03C080E019 -:100BD00090E03DC083EE90E03AC082EE90E037C0F6 -:100BE0008091020382FFEFCFF8CF8091020383FF51 -:100BF00007C08091020384FDEACF87EE90E027C012 -:100C000086EE90E024C08091020383FFF2CFF8CFFC -:100C10008091020385FF03C089E290E018C085E35C -:100C200090E015C08091020385FDF9CFF5CF80914A -:100C3000020386FF03C08AE290E009C081E390E0EE -:100C400006C08091020386FDF9CFF5CFC9010E944D -:100C5000CA030895089508950C942B065F926F922D -:100C60007F928F929F92AF92BF92CF92DF92EF923C -:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1 -:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62 -:100C90004E018BE0880E911C60E070E000E010E0F7 -:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76 -:100CB000622E532E41E050E0E3E9F1E0A62DB52D80 -:100CC000872D01900D928A95E1F7F901819191911B -:100CD0009F01FC01E07FFF27E032F10559F48F709E -:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C -:100CF000BF2A37C0E033F10559F48F709927FA0104 -:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024 -:100D1000E034F10559F48F709927FA0102C0EE0F03 -:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586 -:100D300059F48F709927FA0102C0EE0FFF1F8A95B0 -:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A -:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A -:100D60007F2B2815390509F0A7CF94B18A2D8095DE -:100D7000892384B985B18A2985B997B18C2D80954D -:100D8000892387B988B18C2988B99AB18E2D80952D -:100D900089238AB98BB18E298BB99DB1802F80951B -:100DA00089238DB98EB1802B8EB990B3862F809513 -:100DB000892380BB81B3862B81BB2A960FB6F8941A -:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E -:100DD000EF90DF90CF90BF90AF909F908F907F90DB -:100DE0006F905F9008955F926F927F928F929F9223 -:100DF000AF92BF92CF92DF92EF92FF920F931F9329 -:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08 -:100E10000FBECDBF85B7806885BF85B7806885BFA9 -:100E20000E942E069E012F5F3F4F4E0189E1880EE2 -:100E3000911C60E070E000E010E0E12CF12CC12C8E -:100E4000D12CA12CB12C98E1792E622E532E41E0A9 -:100E500050E0EDE9F1E0A62DB52D872D01900D9222 -:100E60008A95E1F7F901819191919F01FC01E07F61 -:100E7000FF27E032F10559F48F709927FA0102C07B -:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384 -:100E9000F10559F48F709927FA0102C0EE0FFF1F78 -:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409 -:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3 -:100EC000EE2AFF2A1BC0E035F10559F48F709927EF -:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF -:100EE0000DC0E036F10551F48F709927FA0102C068 -:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521 -:100F000009F0A7CF94B18A2D8095892384B985B142 -:100F10008A2985B997B18C2D8095892387B988B1A5 -:100F20008C2988B99AB18E2D809589238AB98BB185 -:100F30008E298BB99DB1802F809589238DB98EB173 -:100F4000802B8EB990B3862F8095892380BB81B387 -:100F5000862B81BB10922902109228021092330234 -:100F60001092320210922B0210922A021092350235 -:100F70001092340210922D0210922C02109237021D -:100F80001092360210922F0210922E021092390205 -:100F900010923802109231021092300210923B02ED -:100FA00010923A0268960FB6F894DEBF0FBECDBF1E -:100FB000DF91CF911F910F91FF90EF90DF90CF9035 -:100FC000BF90AF909F908F907F906F905F900C94A8 -:100FD00083035F926F927F928F929F92AF92BF92A4 -:100FE000CF92DF92EF92FF920F931F93CF93DF93F5 -:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58 -:101000007E0149E1E40EF11C22E3C22E22E0D22E41 -:101010005E0153E2A50EB11C3AE0532E470101E0F8 -:1010200010E048E1642E55E0752EE3E9F1E0D401CB -:10103000852D01900D928A95E1F7F70181919191AB -:101040007F019C01207F33272032310589F424B1B0 -:101050008F709927A80102C0440F551F8A95E2F7A7 -:10106000CA01242B24B995B18095892385B94FC035 -:101070002033310589F427B18F709927F80102C018 -:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB -:101090008095892388B93BC02034310589F42AB171 -:1010A0008F709927A80102C0440F551F8A95E2F757 -:1010B000CA01242B2AB99BB1809589238BB927C0FB -:1010C0002035310589F42DB18F709927F80102C0C0 -:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F -:1010E000809589238EB913C02036310581F420B351 -:1010F0008F709927A80102C0440F551F8A95E2F707 -:10110000CA01242B20BB91B38095892381BB50EA6F -:101110005A95F1F7BE016F5F7F4F80E090E020E0CD -:1011200030E0EDE9F1E0DE011196462D01900D92DF -:101130004A95E1F7FB0141915191BF01FA01E07F2E -:10114000FF27E032F10511F4E3B113C0E033F105FC -:1011500011F4E6B10EC0E034F10511F4E9B109C0B3 -:10116000E035F10511F4ECB104C0E036F105B9F455 -:10117000EFB1F0E04F70552702C0F595E7954A951D -:10118000E2F7E0FD08C0A801022E02C0440F551F7F -:101190000A94E2F702C040E050E0842B952B2F5FC9 -:1011A0003F4F2C30310509F0BCCFF6012081318151 -:1011B0002817390721F091838083709270010E9473 -:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D -:1011D000809170018823A1F1815080937001882350 -:1011E00039F08FE99FE00197F1F700C0000028C0B7 -:1011F00080913202909133029093290280932802C9 -:10120000809134029091350290932B0280932A02B0 -:10121000809136029091370290932D0280932C0298 -:10122000809138029091390290932F0280932E0280 -:1012300080913A0290913B02909331028093300268 -:101240000E94890381E0A2960FB6F894DEBF0FBE1C -:10125000CDBFDF91CF911F910F91FF90EF90DF9065 -:10126000CF90BF90AF909F908F907F906F905F9046 -:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D -:10128000918108950895CF92DF92EF92FF920F938C -:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1 -:1012A000F894DEBF0FBECDBF8C01862F642F88233C -:1012B00079F0F80192812FE7482F992329F084E0F3 -:1012C00093E00E94EC1904C084E093E00E94FC19B2 -:1012D000F80180818B3091F59181943009F0A8C29A -:1012E0009281809173019923B1F08F5F8093730194 -:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7 -:101300009A95E1F7E0917101F0917201EE0FFF1FE4 -:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2 -:10132000BD4F01900D929A95E1F7E0917101F09116 -:101330007201EE0FFF1F21E332E093C08A3009F003 -:10134000CBC0F8019181943009F072C292818091F2 -:101350007301992309F473C081508093730196E45B -:10136000E5EBF1E0DE01A551BE4F01900D929A959B -:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A -:1013800031E02C0F3D1FE20FF31F60817181680F68 -:10139000711D882777FD8095982F0E94003220E0EC -:1013A00030E040E451E40E94653120E030E040E864 -:1013B00050E40E94FD309B01AC0160E070E080E0F1 -:1013C00090E40E94173321E230ED42E053E40E94A2 -:1013D000B4324CE050E00E94E30F20E04BE760E0C5 -:1013E00084E093E00E94DC1920E04BE761E084E0B8 -:1013F00093E00E94DC1920E04BE762E084E093E098 -:101400000E94DC1920E04BE763E084E093E00E9457 -:10141000DC1920E04BE764E084E093E0C454DD4F46 -:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5 -:101430000F91FF90EF90DF90CF900C94DC1996E421 -:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0 -:10145000E1F7E0917101F0917201EE0FFF1F25EAB3 -:1014600031E02C0F3D1FE20FF31F60817181680F87 -:10147000711D882777FD8095982F0E94003220E00B -:1014800030E040E451E40E94653120E030E040E883 -:1014900050E40E94FD309B01AC0160E070E080E010 -:1014A00090E40E94173321E230ED42E053E40E94C1 -:1014B000B4320E94130DC454DD4F0FB6F894DEBF52 -:1014C0000FBECDBFDF91CF911F910F91FF90EF9095 -:1014D000DF90CF900C94E60C893009F0D3C0F8016E -:1014E0009181943009F0A4C19281992309F4A0C19B -:1014F0008091710190917201019690937201809395 -:10150000710120E04BE760E084E093E00E94DC1989 -:1015100020E04BE761E084E093E00E94DC1920E0EA -:101520004BE762E084E093E00E94DC1920E04BE7A7 -:1015300063E084E093E00E94DC1920E04BE764E084 -:1015400084E093E00E94DC190E94E60C00E010E0C9 -:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95 -:10156000BE4F9F2D01900D929A95E1F7E091710188 -:10157000F0917201E00FF11FEE0FFF1F2FE531E038 -:101580002C0F3D1FE20FF31F60817181680F711DE9 -:10159000882777FD8095982F0E94003220E030E068 -:1015A00040E451E40E94653120E030E040E850E43E -:1015B0000E94FD309B01AC0160E070E080E090E4AF -:1015C0000E94173321E230ED42E053E40E94B4322E -:1015D0004CE050E00E94E30F3FEF87EE93E0315084 -:1015E00080409040E1F700C0000080917301E5EB7E -:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE -:10160000E1F7E0917101F0917201E00FF11FEE0F2F -:10161000FF1F29E131E02C0F3D1FE20FF31F608116 -:101620007181680F711D882777FD8095982F0E9422 -:10163000003220E030E040E451E40E94653120E0D7 -:1016400030E040E850E40E94FD309B01AC0160E0D6 -:1016500070E080E090E40E94173321E230ED42E038 -:1016600053E40E94B4320E94130D8FEF9CE7019760 -:10167000F1F700C000000F5F1F4F0830110509F09F -:1016800069CF94C1883009F0D3C0F80191819430BA -:1016900009F0CEC09281992309F4CAC080917101EA -:1016A000909172010197909372018093710120E0F3 -:1016B0004BE760E084E093E00E94DC1920E04BE718 -:1016C00061E084E093E00E94DC1920E04BE762E0F7 -:1016D00084E093E00E94DC1920E04BE763E084E0C3 -:1016E00093E00E94DC1920E04BE764E084E093E0A3 -:1016F0000E94DC190E94E60C00E010E056E4F52E92 -:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB -:1017100001900D929A95E1F7E0917101F0917201BB -:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8 -:10173000E20FF31F60817181680F711D882777FDAB -:101740008095982F0E94003220E030E040E451E480 -:101750000E94653120E030E040E850E40E94FD3016 -:101760009B01AC0160E070E080E090E40E941733E0 -:1017700021E230ED42E053E40E94B4324CE050E00C -:101780000E94E30F3FEF87EE93E03150804090409E -:10179000E1F700C0000080917301E5EBF1E0DE01AC -:1017A000A357BF4F9F2D01900D929A95E1F7E091BD -:1017B0007101F0917201E00FF11FEE0FFF1F2DE894 -:1017C00030E02C0F3D1FE20FF31F60817181680F25 -:1017D000711D882777FD8095982F0E94003220E0A8 -:1017E00030E040E451E40E94653120E030E040E820 -:1017F00050E40E94FD309B01AC0160E070E080E0AD -:1018000090E40E94173321E230ED42E053E40E945D -:10181000B4320E94130D8FEF9CE70197F1F700C0DF -:1018200000000F5F1F4F0830110509F069CFBEC0DF -:10183000F801228190917301222309F45DC026E40E -:10184000E5EBF1E0DE01A95BBF4F01900D922A9517 -:10185000E1F7E0917101F0917201E80FF11DEE0FD7 -:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4 -:101870007181690F711D882777FD8095982F0E94CF -:10188000003220E030E040E451E40E9465316B0119 -:101890007C01F801818165E070E0681B710988278F -:1018A00077FD8095982F0E9400329B01AC01C70103 -:1018B000B6010E94FD309B01AC0160E070E080E069 -:1018C00090E40E94173321E230ED42E053E40E949D -:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91 -:1018E0000FBECDBFDF91CF911F910F91FF90EF9071 -:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE -:10190000119601900D922A95E1F7E0917101F09105 -:101910007201E80FF11DEE0FFF1F21E030E02C0FE8 -:101920003D1FE20FF31F60817181690F711D8827D0 -:1019300077FD8095982F0E94003220E030E040E44F -:1019400051E40E9465316B017C01F801818165E001 -:1019500070E0681B7109882777FD8095982F0E9499 -:1019600000329B01AC01C701B6010E94FD309B0112 -:10197000AC0160E070E080E090E40E94173321E267 -:1019800030ED42E053E40E94B432C454DD4F0FB650 -:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 -:1019A000FF90EF90DF90CF900C94130DC454DD4F57 -:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160 -:1019C0000F91FF90EF90DF90CF90089510928702D3 -:1019D00010928602809171008D7F809371008091BA -:1019E00090008F77809390001092480210924702E7 -:1019F0001092800210928102109282021092830251 -:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8 -:101A100011921192119211921D921D9282E0EE3755 -:101A2000F807B1F708956F927F928F929F92AF92CD -:101A3000BF92CF92DF92EF92FF920F931F93CF93BB -:101A4000DF936B017C010EE712E04CE5A42E42E02F -:101A5000B42EC7E0D0E0A7019601F80192918291DF -:101A6000729162918F010E946131882349F0219720 -:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B -:101A8000F8011082118212821382F50111821082F4 -:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA -:101AA000AA0FBB1FA25BBD4FCE011AC00196448195 -:101AB0005581668177814083518362837383148269 -:101AC00015821682178212962D913C9113971196CA -:101AD0003C932E9313961C921E9212973496129654 -:101AE0008730910519F7C3CF8091860290918702C4 -:101AF000019797FD05C0909387028093860204C0EA -:101B00001092870210928602E0918602F09187027D -:101B10003097C9F4809171008D7F8093710080911E -:101B200090008F7780939000109280021092810233 -:101B3000109282021092830210927F0210927E0213 -:101B40001092470285C03197DF01AA0FBB1FAA0F71 -:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3 -:101B6000FF1FE25BFD4FC081D181609080027090C9 -:101B700081028090820290908302A7019601662DD7 -:101B8000772D882D992D0E94613187FF25C0262D44 -:101B9000372D482D592DC701B6010E94FC3020E099 -:101BA00030E04AEF54E40E9465315B018C012A2D3C -:101BB0003B2D402F512F662D772D882D992D0E947A -:101BC000FD303B014C01A7019601772D992D0E9414 -:101BD0006131181664F72EC0A7019601662D772D86 -:101BE000882D992D0E94B032181634F5A701960160 -:101BF000662D772D882D992D0E94FC3020E030E055 -:101C00004AEF54E40E9465315B018C012A2D3B2D83 -:101C1000402F512F662D772D882D992D0E94FC3055 -:101C20003B014C01A7019601772D992D0E94B032FE -:101C300087FFECCF10924D02C0928002D0928102B9 -:101C4000E0928202F0928302D0937F02C0937E02E0 -:101C5000DF91CF911F910F91FF90EF90DF90CF9088 -:101C6000BF90AF909F908F907F906F9008953E9A15 -:101C7000E1E7F0E080818D7F808382E080939000B7 -:101C80008AE18093910008951F920F920FB60F92F0 -:101C90001124CF92DF92EF92FF922F933F934F93B5 -:101CA0005F936F937F938F939F93AF93BF93CF93E4 -:101CB000DF93EF93FF9380914702882309F479C063 -:101CC00020E030E0A9016091800270918102809152 -:101CD0008202909183020E94B03218160CF069C003 -:101CE00020E030E040E251E46091490270914A0204 -:101CF00080914B0290914C020E94B0321816BCF4B5 -:101D00008091840290918502019660918602709183 -:101D100087020E949C3490938502809384021092E3 -:101D2000490210924A0210924B0210924C02C0914A -:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B -:101D4000DD4F288139814A815B8160E074E284E75C -:101D50009BE40E9465310E94CD317093970060939F -:101D60009600288139814A815B8160E074E284E7D2 -:101D70009BE40E9465310E94CD3175956795709303 -:101D800099006093980020E030E040E85FE36091C4 -:101D9000490270914A0280914B0290914C020E943C -:101DA000FD306093490270934A0280934B029093F6 -:101DB0004C0280914802882309F493C0C0904302EA -:101DC000D0904402E0904502F090460220E030E0DE -:101DD000A901C701B6010E94B0321816F4F4A70198 -:101DE000960160E074E284E79BE40E9465310E9402 -:101DF000CD317093970060939600A701960160E043 -:101E000074E284E79BE40E9465310E94CD317595B0 -:101E10006795709399006093980060913D0270916E -:101E20003E026F5F7F4F70933E0260933D0280E001 -:101E300090E00E94FE3120913F023091400240919B -:101E40004102509142020E94B03287FD4AC0809107 -:101E50003C028F5F80933C029091F1038917A0F0C0 -:101E60008091F603882319F010923C020DC08091F6 -:101E700071008D7F80937100809190008F778093A7 -:101E80009000109248022DC0E091F203F091F3030C -:101E900080913C0298E0899FE00DF11D1124808122 -:101EA0009181A281B3818093430290934402A093D5 -:101EB0004502B093460220E030E040E85EE36481F2 -:101EC0007581868197810E94B43260933F0270933E -:101ED0004002809341029093420210923E0210927F -:101EE0003D02FF91EF91DF91CF91BF91AF919F9113 -:101EF0008F917F916F915F914F913F912F91FF90C3 -:101F0000EF90DF90CF900F900FBE0F901F9018951D -:101F10000F931F93CF93DF9300D0CDB7DEB78C0123 -:101F200080914702882331F04A8369830E94E60C3E -:101F300069814A8181E0809348021093F303009302 -:101F4000F2036093F1034093F6031092490210925A -:101F50004A0210924B0210924C0210923C02F8017D -:101F600040815181628173814093430250934402C6 -:101F7000609345027093460220E030E040E85EE363 -:101F800064817581868197810E94B43260933F029B -:101F900070934002809341029093420210923E025D -:101FA00010923D0280917100826080937100809157 -:101FB00090008068809390000F900F90DF91CF91F8 -:101FC0001F910F9108956F927F928F929F92AF927F -:101FD000BF92CF92DF92EF92FF920F931F93CF9316 -:101FE000DF936B017C01EA018091480281110E941C -:101FF000E60C81E08093470220E030E0A901C701B0 -:10200000B6010E94B03218160CF09AC0609080029F -:1020100070908102809082029090830220E030E0F4 -:10202000A901662D772D882D992D0E94613181118E -:1020300028C0C0928002D0928102E0928202F09287 -:102040008302D0937F02C0937E028091860290919A -:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C -:10206000C082D182E282F382FC01EE0FFF1FE25BAD -:10207000FD4FD183C083019690938702809386029F -:102080005FC0A7019601662D772D882D992D0E949E -:10209000613187FF25C0262D372D482D592DC701C9 -:1020A000B6010E94FC3020E030E04AEF54E40E9488 -:1020B00065315B018C012A2D3B2D402F512F662D60 -:1020C000772D882D992D0E94FD303B014C01A701F1 -:1020D0009601772D992D0E946131181664F7A9CFCA -:1020E000A7019601662D772D882D992D0E94B0327B -:1020F00018160CF09ECFA7019601662D772D882D1E -:10210000992D0E94FC3020E030E04AEF54E40E9418 -:1021100065315B018C012A2D3B2D402F512F662DFF -:10212000772D882D992D0E94FC303B014C01A70191 -:102130009601772D992D0E94B03287FFECCF79CF91 -:10214000809171008260809371008091900080681E -:1021500080939000DF91CF911F910F91FF90EF90AE -:10216000DF90CF90BF90AF909F908F907F906F90B7 -:102170000895809191020895CF93DF9300D01F922C -:10218000CDB7DEB72091FB03243021F523E029836E -:102190009B838A832093E9008FEF06C095ED9A9583 -:1021A000F1F70000882329F09091E800815095FF15 -:1021B000F5CF8091E80085FF0DC040E050E063E07E -:1021C00070E0CE0101960E94A6148091E8008E77FF -:1021D0008093E8000F900F900F90DF91CF910895BA -:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2 -:1021F000243029F522E029839B838A8383E080931E -:10220000E9008FEF06C095ED9A95F1F7000088235D -:1022100029F09091E800815095FFF5CF8091E8007A -:1022200085FF0DC040E050E063E070E0CE01019614 -:102230000E94A6148091E8008E778093E8000F90AA -:102240000F900F90DF91CF9108952091FB032430E0 -:10225000F9F422E02093E9002FEF06C035ED3A951E -:10226000F1F70000222329F03091E800215035FFDA -:10227000F5CF2091E80025FF0BC040E050E065E07D -:1022800070E00E94A6148091E8008E778093E800A9 -:102290000895CF93DF93EC018091FB03843041F5E7 -:1022A00081E08093E9008FEF06C095ED9A95F1F7F4 -:1022B0000000882329F09091E800815095FFF5CF28 -:1022C0008091E80085FF14C040E050E068E070E0D5 -:1022D000CE010E94A6148091E8008E778093E800DA -:1022E00088E0FE01A9E8B2E001900D928A95E1F73D -:1022F000DF91CF910895BF92CF92DF92EF92FF923C -:102300000F931F93CF93DF937C01B62EE90100E07A -:1023100010E0C42ED12C0BC04991202F2B0D2F770C -:102320004F776FE0C7010E94DC190F5F1F4F0C153C -:102330001D0594F3DF91CF911F910F91FF90EF90C6 -:10234000DF90CF90BF90089570E06F5F7F4F6F7008 -:1023500077270C94DC190F931F93CF93C42F63300E -:10236000710509F04AC0842F807F803849F1803997 -:1023700009F043C0622F6F7770E080E090E00E9428 -:10238000003220E030E040E451E40E9465319B01DE -:10239000AC0160E070E080E090E40E9417330F77BA -:1023A00010E023E0159507952A95E1F72DEC3CEC1C -:1023B00042E053E40E94B432A8010E94E30F1DC022 -:1023C000622F6F7770E080E090E00E94003220E0A2 -:1023D00030E040E451E40E9465319B01AC0160E0D3 -:1023E00070E080E090E40E9417332DEC3CEC42E07A -:1023F00053E40E94B4320E94130DCC3F29F4CF91D4 -:102400001F910F910C94E60CCF911F910F9108959D -:102410000F931F93CF93DF93CDB7DEB727970FB6F8 -:10242000F894DEBF0FBECDBF8C0114C08A810E941C -:10243000B6199A819D839B819E839C819F83811184 -:102440001EC089818430B1F08730A1F08630A1F0C0 -:102450008530A1F0BE016F5F7F4F84E791E00E945D -:10246000231D8111E3CF84E791E00E94141D0E9497 -:102470008F190DC083E003C082E001C081E0AE018E -:102480004B5F5F4F682FC8010E94491AE3CF279620 -:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 -:1024A0000F910895EF92FF920F93CF93DF9300D097 -:1024B00000D000D0CDB7DEB77B014A832B830C83DD -:1024C000842F2E834D830E94B6192E814D81811158 -:1024D0001BC082E0E816F10479F083E0E816F1040D -:1024E00021F0EA94EF2821F50BC0073F11F487E0B3 -:1024F00001C084E089830BC0273FD9F786E0FACF7B -:10250000473FB9F785E0F6CF42954F704983BE014A -:102510006F5F7F4F84E791E00E94D91C84E791E0D0 -:102520000E94F71C84E791E00E94141D0E948F19FD -:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8 -:102540000F91FF90EF9008958091FA03811109C0D7 -:102550000E9495160E94F2168091E200846080939A -:10256000E20008951092FA030895089508950C94D6 -:10257000B229809192028F5F8093920262E30E945F -:102580007C34911135C0109292028091930288237D -:1025900079F18091FB03843049F58091E9008F70D7 -:1025A0009091EC0090FF02C090E801C090E0982B61 -:1025B00084E08093E9008091EB0080FF14C080915B -:1025C000EE0087FD03C00FC01092F1008091E8007B -:1025D00085FDFACF8091E80080FF05C08091E8007A -:1025E0008E778093E8009F709093E9001092930299 -:1025F000089542E061EC81E00E940B1642E061EC3C -:1026000082E00E940B1642E061EC83E00E940B1610 -:1026100042E261EC84E00E940B1642E361E885E04F -:102620000E940B1642E360E886E00C940B16809142 -:10263000FD03833009F454C030F4813071F08230EE -:1026400009F0A5C08CC08A3009F479C08B3009F438 -:102650005FC0893009F09BC020C08091FC03813AA3 -:1026600009F095C08091E800877F8093E800809111 -:10267000000490910104892B21F060E080E090E05B -:1026800003C068E089E892E070E00E944415809100 -:10269000E8008B778093E80008958091FC038132F5 -:1026A00009F075C08091000490910104892B09F014 -:1026B0006EC08091E800877F8093E80005C080911C -:1026C000FB03882309F463C08091E80082FFF7CF01 -:1026D0008091F100809391028091E8008B7753C044 -:1026E0008091FC03813A09F052C0809100049091DE -:1026F0000104892B09F04BC08091E800877F80930B -:10270000E8008091E80080FFFCCF80918A0136C00C -:102710008091FC038132D9F58091000490910104ED -:10272000892BA9F58091E800877F8093E8000E94BB -:1027300042168091FE0380938A010C948B23809132 -:10274000FC03813221F58091E800877F8093E800C7 -:102750000E9442168091FF03809388020895809121 -:10276000FC03813AA1F48091E800877F8093E80020 -:102770008091E80080FFFCCF809188028093F10077 -:102780008091E8008E778093E8000C9442160895BB -:1027900084E093E00E94181A62E572E184E093E01D -:1027A0000E946E1A68E072E184E093E00E94721A5F -:1027B00084B7877F84BF88E10FB6F8948093600068 -:1027C000109260000FBE90E080E80FB6F8948093FE -:1027D0006100909361000FBE0E949C1D0E9495169F -:1027E0000E94F2168091E20084608093E200789467 -:1027F0006BEA71E184E093E00E94141A64EA71E1EB -:1028000084E093E00E940C1A6BE771E184E093E0AE -:102810000E94101A0E94370E0E948F190E949E1D5E -:1028200080E891E00E94481D0BC00E946C298091B5 -:10283000F903882329F00E949A2981110E9490149B -:102840008091FB03853089F384E093E00E94211C92 -:102850000E94A81DF5CF292F332723303105B1F071 -:102860004CF42130310509F44DC02230310509F016 -:102870004EC007C02132310541F12232310591F1BC -:1028800046C0E0EDF0E08CE594E045C0992781304A -:10289000910569F08230910589F0892B09F037C0E4 -:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1 -:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082 -:1028C000E491F0E08EEF93E026C0643000F5E62F4F -:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF -:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1 -:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA -:10290000F0E009C0E2E1F0E08CE295E004C0E0E034 -:10291000F0E080E090E0DA018D939C93CF01089580 -:1029200080E189BD82E189BD09B400FEFDCF8091BF -:10293000D8008F7D8093D8008091E00082608093E2 -:10294000E0008091E00081FDFCCF0895BF92CF921E -:10295000DF92EF92FF920F931F93CF93DF937C014F -:102960008B01EA010E946316B82E811133C02097B3 -:1029700031F028813981021B130BE20EF31EC12CAA -:10298000D12C23C08091E80085FD15C08091E8001E -:102990008E778093E800209749F0888199818C0D8B -:1029A0009D1D9983888325E0B22E14C00E94631672 -:1029B000882359F00EC0F70181917F018093F100C7 -:1029C00001501109FFEFCF1ADF0A01151105D1F6E9 -:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9 -:1029E000EF90DF90CF90BF900895BF92CF92DF928B -:1029F000EF92FF920F931F93CF93DF937C018B0194 -:102A0000EA010E946316B82E811133C0209731F07D -:102A100028813981021B130BE20EF31EC12CD12C2D -:102A200023C08091E80085FD15C08091E8008B7778 -:102A30008093E800209749F0888199818C0D9D1D35 -:102A40009983888345E0B42E14C00E9463168823BE -:102A500059F00EC08091F100F70181937F01015080 -:102A60001109FFEFCF1ADF0A01151105D1F601C0D8 -:102A7000B82E8B2DDF91CF911F910F91FF90EF908A -:102A8000DF90CF90BF9008954091020450910304CD -:102A90004617570748F06115710539F44091E80071 -:102AA0004E774093E80001C0BA01FC0140E033C01A -:102AB0008091FB03882309F444C0853009F443C0A6 -:102AC0008091E80083FD41C08091E80082FD33C021 -:102AD0008091E80080FF1FC09091F3008091F20088 -:102AE000392F20E0A901482BCA0106C0419140932B -:102AF000F1006150710901966115710519F0883076 -:102B00009105A0F341E0089709F040E08091E800CA -:102B10008E778093E8006115710551F64111C8CF99 -:102B20000AC08091FB03882361F0853061F08091B9 -:102B3000E80083FD0AC08091E80082FFF2CF80E0C8 -:102B4000089582E0089583E0089581E0089540911A -:102B50000204509103044617570748F061157105A8 -:102B600039F44091E8004E774093E80001C0BA0183 -:102B7000FC0140E034C08091FB03882309F445C088 -:102B8000853009F444C08091E80083FD42C0809103 -:102B9000E80082FD34C08091E80080FF20C0909161 -:102BA000F3008091F200392F20E0A901482BCA01DF -:102BB00007C044914093F10031966150710901962C -:102BC0006115710519F08830910598F341E0089777 -:102BD00009F040E08091E8008E778093E80061156D -:102BE000710549F64111C7CF0AC08091FB038823C4 -:102BF00061F0853061F08091E80083FD0AC080912A -:102C0000E80082FFF2CF80E0089582E0089583E03B -:102C1000089581E00895982F2CC09093E9009817AB -:102C200039F07091EC002091ED005091F00003C05C -:102C3000242F762F50E021FD02C09F5F1AC03091F3 -:102C4000EB003E7F3093EB003091ED003D7F309301 -:102C5000ED003091EB0031603093EB007093EC00AD -:102C60002093ED005093F0002091EE0027FDE5CF7A -:102C700007C0973090F28F708093E90081E008954B -:102C800080E008958091FC0387FD05C08091E800F5 -:102C900080FF0EC012C08091E80082FD05C08091C7 -:102CA000FB038111F8CF08958091E8008B7708C06D -:102CB0008091FB038111EACF08958091E8008E771F -:102CC0008093E80008958091E4009091E50045E646 -:102CD0002091EC0020FD1FC023C02091FB03222384 -:102CE00091F0253091F02091EB0025FD10C020914E -:102CF000E4003091E5002817390751F34150C9012C -:102D000039F784E0089582E0089583E0089581E032 -:102D1000089580E008952091E80020FFDECFF9CFEC -:102D20002091E80022FFD9CFF4CF0E9403170E9420 -:102D30000B17E0EEF0E0808181608083E8EDF0E049 -:102D400080818F77808319BCA7EDB0E08C918E7F56 -:102D50008C9380818F7E80831092FA0308950F9365 -:102D60001F93CF93DF930E9403170E940B17C8EDA8 -:102D7000D0E088818F778883888180688883888184 -:102D80008F7D888319BC1092FB031092F703109279 -:102D9000F9031092F80300EE10E0F80180818B7FB8 -:102DA000808388818160888342E060E080E00E94C7 -:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2 -:102DC000808181608083808188608083F801808138 -:102DD0008E7F8083888180618883DF91CF911F916E -:102DE0000F910895E8EDF0E080818F7E8083E7ED1C -:102DF000F0E080818160808384E082BF81E0809305 -:102E0000FA030C94AF16E8EDF0E080818E7F8083AA -:102E10001092E20008951092DA001092E1000895F5 -:102E20001F920F920FB60F9211242F933F934F933F -:102E30005F936F937F938F939F93AF93BF93EF9322 -:102E4000FF938091E10082FF0BC08091E20082FF3E -:102E500007C08091E1008B7F8093E1000E94B9124E -:102E60008091DA0080FF1FC08091D80080FF1BC0D6 -:102E70008091DA008E7F8093DA008091D90080FF04 -:102E80000DC080E189BD82E189BD09B400FEFDCF9E -:102E900081E08093FB030E94A41205C019BC10922C -:102EA000FB030E94B2128091E10080FF19C0809163 -:102EB000E20080FF15C08091E2008E7F8093E200E7 -:102EC0008091E20080618093E2008091D80080626E -:102ED0008093D80019BC85E08093FB030E94B61252 -:102EE0008091E10084FF30C08091E20084FF2CC01B -:102EF00080E189BD82E189BD09B400FEFDCF8091EA -:102F0000D8008F7D8093D8008091E1008F7E8093E0 -:102F1000E1008091E2008F7E8093E2008091E200E8 -:102F200081608093E2008091F703882311F084E0B0 -:102F300007C08091E30087FF02C083E001C081E009 -:102F40008093FB030E94B7128091E10083FF29C0A8 -:102F50008091E20083FF25C08091E100877F80930C -:102F6000E10082E08093FB031092F7038091E1007F -:102F70008E7F8093E1008091E2008E7F8093E2005B -:102F80008091E20080618093E20042E060E080E0B6 -:102F90000E940B168091F00088608093F0000E94E0 -:102FA000B512FF91EF91BF91AF919F918F917F915A -:102FB0006F915F914F913F912F910F900FBE0F90A6 -:102FC0001F9018951F920F920FB60F9211242F93F6 -:102FD0003F934F935F936F937F938F939F93AF93A1 -:102FE000BF93CF93EF93FF938091E9008F709091FF -:102FF000EC0090FF02C090E801C090E0C92FC82B00 -:103000001092E9008091F000877F8093F00078941F -:103010000E9426181092E9008091F0008860809349 -:10302000F000CF70C093E900FF91EF91CF91BF9175 -:10303000AF919F918F917F916F915F914F913F9150 -:103040002F910F900FBE0F901F9018951F93CF9345 -:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7 -:10306000CDBFECEFF3E08091F100819324E0E430F8 -:10307000F207C9F70E9417138091E80083FF37C158 -:103080008091FC039091FD03953009F488C038F4D9 -:103090009130B1F170F0933009F029C131C098300E -:1030A00009F4F8C0993009F404C1963009F01FC141 -:1030B0009DC0803821F0823809F019C108C0809184 -:1030C000F8039091F903992389F082600FC08091F1 -:1030D0000004909101048F7099278093E9008091FA -:1030E000EB0085FB882780F91092E9009091E800B9 -:1030F000977F9093E8008093F1001092F100D5C083 -:10310000882319F0823009F0F2C08F7121F08230EB -:1031100009F0EDC00BC08091FE03813009F0E7C0DB -:10312000933009F080E08093F9032FC08091FE0373 -:1031300081112BC080910004909101048F70992718 -:10314000009709F4D4C08093E9002091EB0020FFA0 -:103150001CC02091FD03233021F48091EB0080629C -:1031600012C09091EB0090619093EB0021E030E071 -:1031700001C0220F8A95EAF72093EA001092EA0034 -:103180008091EB0088608093EB001092E9008091C1 -:10319000E800877F8093E8000E944216A8C0811152 -:1031A000A6C08091FE039091FF038F779927182F77 -:1031B0009091E3009078982B9093E3008091E80041 -:1031C000877F8093E8000E9442168091E80080FF8C -:1031D000FCCF8091E30080688093E300112311F01D -:1031E00083E001C082E08093FB0381C0805882307D -:1031F00008F07DC08091FE039091FF038C3D23E099 -:10320000920779F583E08A838AE289834FB7F8943D -:10321000DE01139620E03EE051E2E32FF0E0509310 -:103220005700E49120FF03C0E295EF703F5FEF701D -:103230008E2F90E0EA3010F0C79601C0C0968D93B3 -:103240009D932F5F243149F74FBF8091E800877F1E -:103250008093E8006AE270E0CE0101960E94441576 -:1032600013C0AE01455D5F4F609100040E942B14B6 -:103270000097E9F12091E800277F2093E800BC0146 -:103280008BA59CA50E94A7158091E8008B77809361 -:10329000E8002DC0803859F58091E800877F809341 -:1032A000E8008091F7038093F1008091E8008E7729 -:1032B00071CF81111CC09091FE039230C0F48091B7 -:1032C000E800877F8093E8009093F7030E944216FE -:1032D0008091F703811104C08091E30087FF02C051 -:1032E00084E001C081E08093FB030E94F912809189 -:1032F000E80083FF0AC08091E800877F8093E800A0 -:103300008091EB0080628093EB00AC960FB6F8944E -:10331000DEBF0FBECDBFDF91CF911F910895CF9338 -:103320008091FB038823B1F08091E9008F70909128 -:10333000EC0090FF02C090E801C090E0C92FC82BBC -:103340001092E9008091E80083FD0E942618CF705A -:10335000C093E900CF910895881F8827881F08959A -:1033600091E0883F08F490E0892F0895982F907F8E -:10337000903B99F038F4903981F0903A71F09038A0 -:10338000C9F40BC0903DA1F018F4903C99F410C022 -:10339000903E19F0903F71F402C083E00895E82F49 -:1033A000E15FEF3038F4F0E0E15FFD4F8081089598 -:1033B00082E0089580E008950F932F774F776F7024 -:1033C000606BDC01ED91FC91022F242F462F63E00E -:1033D00070E009950F9108950F932F774F776F70D5 -:1033E0006069DC01ED91FC91022F242F462F63E0F0 -:1033F00070E009950F9108950F932F774F776F70B5 -:103400006068DC01ED91FC91022F242F462F63E0D0 -:1034100070E009950F910895FC017383628308950C -:10342000FC01738F628F0895FC01758F648F08957E -:10343000CF93DF93EC011DA21FA21EA2BC01685D09 -:103440007F4F40EC88519F4F0E94551C1B821A826F -:103450001D821C821F821E82198618861B861A8670 -:103460001D861C861F861E86198A188A1B8A1A8A40 -:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10 -:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149 -:103490000895CF92DF92FF920F931F93CF93DF9304 -:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F -:1034B00008C0F60161916F01C80149830E945C1C3C -:1034C00049818C2D841B8F15A0F30F90DF91CF9134 -:1034D0001F910F91FF90DF90CF900895FC017183B1 -:1034E00060830895FC0171A360A30895AF92BF9219 -:1034F000CF92DF92EF92FF920F931F93CF93DF93C0 -:1035000000D01F92CDB7DEB77C016B01142FB22E15 -:10351000A02EDC0195968C9195978430F1F45A9603 -:10352000ED91FC915B97309709F4D8C0CB010197DE -:1035300063E070E00E948834DB01AA0FBB1FA60F76 -:10354000B71F49832A830B834C2D4A1B9E012F5F93 -:103550003F4FBD01C7010995B1C06230710509F443 -:1035600053C06330710529F06130710509F09CC0CA -:1035700083C0842F807F803A01F130F48038B9F025 -:10358000803909F0ABC00DC0803EE9F0803F09F101 -:10359000803B09F0A3C0D7011296ED91FC911397DF -:1035A00023C0D7011496ED91FC9115971DC0D7014A -:1035B0001696ED91FC91179717C0D7011896ED91CB -:1035C000FC91199711C0D7011A96ED91FC911B97A8 -:1035D0000BC0423F09F082C0D7011C96ED91FC91CF -:1035E0001D97309731F47AC0309709F477C0123FB5 -:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C -:103600004B2DC70109955AC0842F807F803D59F00A -:10361000803F79F0803C09F061C0D7011E96ED91A2 -:10362000FC911F9719C0D7015096ED91FC915197CD -:1036300013C0433F31F4D7015296ED91FC9153975B -:1036400008C0413F09F04AC0D7015496ED91FC9162 -:103650005597309741F442C0309709F43FC0133F6B -:1036600011F0113F19F44B2D612F03C0612F6F70C2 -:103670004B2DC701099522C0842F0E94B0198823C1 -:1036800031F0D7015696ED91FC91579707C0163F40 -:1036900029F5D7015896ED91FC9159973097F1F0A3 -:1036A000612FC70109950AC064307105A8F416C0DE -:1036B0000