Vous n'êtes pas identifié(e).
Alors, j’ai écouté les conseils et ai symétrisé les deux touches contrôles ainsi que rapproché le K.
J’ai également commencé à réfléchir à une version (qui prend encore plus compte les conseils) avec le W et le K tout à gauche, et du coup d’avoir une/deux touche(s) alphanumérique en plus, dont ma touche Tiret et une qui reste à définir, pour être symétrique au niveau des touches alphanumérique. J’ai rapproché ma touche copier/couper. Le seul truc que je n’ai pas pris en compte est de déplacer les flèches et le pavé numérique d’un cran à droite.
J’ai essayé d’avoir un T inversé pour les flèches sur la couche de base mais c’est obligatoirement au détriment d’une lettre et du coup c’est assez dangereux.
Pour la touche INT3 (la touche ¥ des claviers JIS), pourquoi pas le tréma en accès direct, mais je l’ai mise en main gauche donc pas plus pratique que AltGr+I.
J’ai pas encore modifié le keymap.c depuis le dernier que j’ai posté.
Flavien,
Toujours en attente de son clavier.
bépoète depuis mars 2015
Hors ligne
Ça y est je l’ai reçu et tout ne marche pas exactement comme prévu, les touches copier/coller ne fonctionnent pas avec les KC_COPY/KC_PASTE, j’ai dû passer par LCTL(BP_C)/LCTL(BP_V) mais adieux la compatibilité Mac.
Le taper pour copier et tenir pour couper ne fonctionne pas non plus, ça coupait à chaque fois.
J’ai un problème avec la diode Kana, elle ne se met à jour qu’après avoir appuyé sur Caps Lock ou Verr num.
Pareil pour le changement de couche ça me faisait clignoter les RGB donc pour l’instant je l’ai affecté à une diode normale, et ça fonctionne sans problème.
Le changement de couleur suivant si le pavé numérique est activé ou non fonctionne sans problème, mais beaucoup moins utile si je suis obligé d’allumer les diodes à la main.
Enfin voilà quelques trucs à revoir mais ça s’annonce bien.
bépoète depuis mars 2015
Hors ligne
Bon voilà, à part pour les touches doubles fonctions copier/couper et le Roya/Ç tout fonctionne comme je le voulais.
J’ai dû jouer des tours pour faire fonctionner la diode Kana (en gros j’ai fait une macro qui appuis sur Kana puis 2×CapsLock), pour que les diodes arrêtent de clignoter j’ai dû passer par une variable et une fonction if else pour que le toggle ne s’active qu’une fois.
J’ai viré la touche power, on appuis trop facilement dessus sans faire exprès, j’ai mis le gestionnaire des tâches à la place, et du coup retrouvé tab sur ma deuxième couche, car en fait c’est utile.
J’ai pour l’instant un truc qui me convient (très proche de l’image du dessus), même si il faudrait revoir des petites choses.
bépoète depuis mars 2015
Hors ligne
Bonjour ! À mon tour d’intervenir ici, après tout, c’est le sujet que j’ai lu plusieurs fois et qui m’a décidé à acheter un Ergodox EZ !
Depuis que je le possède, j’ai changé plusieurs fois de configuration, notamment pour les touches non alphanumériques, et voici l’actuelle :
Le code source C :
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include "keymap_bepo.h"
#include "keymap_french.h"
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // can always be here
EPRM,
VRSN,
RGB_SLD,
RGB_0000FF,
RGB_008000,
RGB_FFA500,
RGB_800080,
RGB_FF0000
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
KC_ESCAPE, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_DOLLAR,
BP_W, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_TAB,
BP_CCED, BP_A, BP_U, BP_I, BP_E, BP_COMMA,
KC_LCTL, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_ENTER,
KC_KANA, KC_APP, KC_LALT, KC_LGUI, KC_RALT,
KC_UP, KC_DOWN, TT(2), KC_SPACE, KC_LSHIFT, TT(1),
BP_PERCENT, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL,
KC_DELETE, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_BSPACE, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RCTRL,
KC_RALT, KC_RGUI, KC_LALT, KC_HENK, KC_MHEN,
KC_LEFT, KC_RIGHT, TT(2), TT(1), KC_RSHIFT, KC_ENTER
),
[1] = KEYMAP(
KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_FN13, KC_FN12, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRANSPARENT,
KC_FN11, KC_FN10, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDOWN,
KC_TRANSPARENT, KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRANSPARENT,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, TT(3), KC_TRANSPARENT, KC_TRANSPARENT, TO(0),
KC_NO, KC_KP_EQUAL, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_INSERT,
KC_TRANSPARENT, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_EQUAL, KC_SLCK,
KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_DOT, KC_PSCREEN,
KC_TRANSPARENT, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0, KC_TRANSPARENT,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, TT(3), TO(0), KC_TRANSPARENT, KC_TRANSPARENT
),
[2] = KEYMAP(
KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
KC_PAUSE, KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_TRANSPARENT,
KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO,
KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_NO, KC_NO, KC_TRANSPARENT,
KC_NO, KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2,
KC_NO, KC_NO, TO(0), KC_NO, KC_NO, TT(3),
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_F12,
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_MEDIA_PLAY_PAUSE,
KC_NO, KC_MEDIA_EJECT, KC_MEDIA_STOP, KC_MEDIA_PLAY_PAUSE,KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, TO(0), TT(3), KC_NO, KC_NO
),
[3] = KEYMAP(
KC_TRANSPARENT, RGB_0000FF, RGB_008000, RGB_FFA500, RGB_800080, RGB_FF0000, RGB_TOG,
RGB_MOD, RGB_VAI, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO,
RGB_SLD, RGB_VAD, RGB_HUD, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, TO(0), KC_NO, KC_NO, TO(0),
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SYSTEM_POWER,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SYSTEM_SLEEP,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, TO(0), TO(0), KC_NO, KC_NO
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(1),
[5] = ACTION_MODS_KEY(MOD_LCTL, BP_X),
[6] = ACTION_MODS_KEY(MOD_LCTL, BP_C),
[7] = ACTION_MODS_KEY(MOD_LCTL, BP_V),
[8] = ACTION_MODS_KEY(MOD_LCTL, BP_Z),
[9] = ACTION_MODS_KEY(MOD_LCTL, BP_Y),
[10] = ACTION_MODS_KEY(MOD_LCTL, BP_A),
[11] = ACTION_MODS_KEY(MOD_LCTL, BP_S),
[12] = ACTION_MODS_KEY(MOD_LCTL, BP_F),
[13] = ACTION_MODS_KEY(MOD_LCTL, BP_R),
};
// leaving this in place for compatibilty with old keymaps cloned and re-compiled.
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
case 0:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
break;
}
return MACRO_NONE;
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
break;
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
break;
case RGB_SLD:
if (record->event.pressed) {
rgblight_mode(1);
}
return false;
break;
case RGB_0000FF:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0x00,0x00,0xff);
#endif
}
return false;
break;
case RGB_008000:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0x00,0x80,0x00);
#endif
}
return false;
break;
case RGB_FFA500:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0xff,0xa5,0x00);
#endif
}
return false;
break;
case RGB_800080:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0x80,0x00,0x80);
#endif
}
return false;
break;
case RGB_FF0000:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0xff,0x00,0x00);
#endif
}
return false;
break;
}
return true;
}
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_3_on();
break;
case 4:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
break;
case 5:
ergodox_right_led_1_on();
ergodox_right_led_3_on();
break;
case 6:
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
case 7:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
default:
break;
}
};
Le fichier Hex :
:100000000C943E040C9485040C9485040C94850493
:100010000C9485040C9485040C9485040C9485043C
:100020000C9485040C9485040C94E6280C94B9294E
:100030000C9463210C9485040C9485040C94850421
:100040000C9485040C9485040C9485040C9485040C
:100050000C9485040C94CB210C9485040C94850499
:100060000C9485040C9485040C9485040C948504EC
:100070000C9485040C9485040C9485040C948504DC
:100080000C9485040C9485040C9485040C948504CC
:100090000C9485040C9485040C9485040C948504BC
:1000A0000C9485040C9485040C9485046572676F28
:1000B000646F782F6265706F204020302E352E39A6
:1000C000302D38332D676464333830332D646972D2
:1000D0007479006572676F646F782F6265706F2046
:1000E0004020302E352E39302D38332D676464335F
:1000F0003830332D6469727479000000F0A100007B
:100100000000000006010B0118012F011B01040172
:100110000E0138010F01290030003100E000880095
:1001200000001E00140004001D00650001581F009F
:100130001A0016001B00E200E10020000800070082
:100140000600E3002C002100150009001900E6005C
:100150000258220017000A00050000005200350076
:100160002B0000002800000051002E004C00000071
:100170002A000000500023001C000B0011000000AA
:100180004F00240018000D001000E6000258250062
:100190000C000E003600E7002800260012000F00B9
:1001A0003700E200E50027001300330038008A0022
:1001B00001582D002F003400E4008B0000000100E6
:1001C000CD00CB000100000000000000CC00CA0000
:1001D000C5000000105000004A005000C60000009A
:1001E0000100000052005100C700000001000000A3
:1001F0004D004F00C8000000035800004B004E00A7
:10020000C900000000000000010000000100000023
:100210000000000001000000010000000000670075
:100220000000000000000000000057005F005C00BC
:10023000590000000358560060005D005A0000009D
:100240000100540061005E005B00000001005500E9
:10025000670063006200000010504900470046003C
:100260000100000000000100480000000000000044
:1002700000003A0000000000A800000003583B0006
:100280000000F200AA00000000003C00F000F100B5
:10029000A900F40000003D000000F3000000F5009C
:1002A00010503E00000000000000000000000000B0
:1002B000010000000100000000000000000000003C
:1002C0000000000000003F0000000000B00000003F
:1002D0000000400000005000AD0000001050410040
:1002E00052005100AE0000000000420000004F002C
:1002F000AC0000000000430000000000AB00000064
:10030000035844004500AE0000000000000001005A
:10031000C15CD15C000000000000D25CC65CC75C20
:10032000000000001050D35CC25CC35C0000000001
:100330000000D45C00000000000000000000D55C5C
:1003400000000000000000001050D65C000000001B
:10035000000000000000C05C000000000000000081
:10036000000000000000000000000000000000008D
:10037000000000000000000000000000000000007D
:10038000000000001050000000000000000000000D
:10039000000000000000000000000000000000005D
:1003A00000000000000000001050005CA500A60046
:1003B00000000000000000000000000000002A2BE8
:1003C0002800000000000000000000000000000005
:1003D0000029000000002C1E34202122243426276E
:1003E000252E362D3738271E1F202122232425268F
:1003F0003333362E37381F0405060708090A0B0C5D
:100400000D0E0F101112131415161718191A1B1CA4
:100410001D2F3130232D350405060708090A0B0C62
:100420000D0E0F101112131415161718191A1B1C84
:100430001D2F3130354C000000000000000000008E
:1004400000000000000000000000000000000000AC
:100450000000000000000001010101010100010194
:10046000010100000000000000000000000000008A
:10047000010001000101010101010101010101016E
:10048000010101010101010101010101010101015C
:100490000100000001010000000000000000000059
:1004A000000000000000000000000000000000004C
:1004B0000001010101006801F000B40078005A0059
:1004C000643214643214783C1E1E140A05000000C5
:1004D000000101010202030405050607090A0B0CCD
:1004E0000E0F1112141517191B1D1F212325282A61
:1004F0002C2F313436393B3E414346494C4F5255FF
:10050000585A5D6164676A6D707376797C7F838603
:10051000898C8F9295989B9EA2A5A7AAADB0B3B6E1
:10052000B9BCBEC1C4C6C9CBCED0D3D5D7DADCDE08
:10053000E0E2E4E6E8EAEBEDEEF0F1F3F4F5F6F8EC
:10054000F9FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFD9
:10055000FFFEFEFEFDFDFCFBFAFAF9F8F6F5F4F3FA
:10056000F1F0EEEDEBEAE8E6E4E2E0DEDCDAD7D546
:10057000D3D0CECBC9C6C4C1BEBCB9B6B3B0ADAA88
:10058000A7A5A29E9B9895928F8C898683807C7963
:100590007673706D6A6764615D5A5855524F4C4965
:1005A0004643413E3B393634312F2C2A282523211E
:1005B0001F1D1B1917151412110F0E0C0B0A09071A
:1005C000060505040302020101010000000000000D
:1005D0000000010101010101010101020202020208
:1005E00002020202030303030303030304040404DB
:1005F00004040505050505060606060607070707A0
:10060000080808080909090A0A0A0A0B0B0B0C0C4E
:100610000C0D0D0D0E0E0F0F0F10101111111212E7
:1006200013131414151516161717181819191A1A62
:100630001B1C1C1D1D1E1F1F2020212222232425C0
:100640002526272728292A2B2B2C2D2E2F2F3031FA
:100650003233343536363738393A3B3C3D3E3F400D
:1006600041424344464748494A4B4C4D4F505152F2
:1006700053555657585A5B5C5E5F606263646667A9
:10068000696A6C6D6E707173747678797B7C7E802C
:1006900081838486888A8B8D8F91929496989A9B79
:1006A0009D9FA1A3A5A7A9ABADAFB1B3B5B7B9BB8A
:1006B000BDBFC1C4C6C8CACCCFD1D3D6D8DADCDF5F
:1006C000E1E4E6E8EBEDF0F2F5F7FAFCFF1603459E
:1006D00000720067006F0044006F00780020004542
:1006E000005A00000016034500720067006F0044C6
:1006F000006F007800200045005A00000004030944
:100700000409026D00040100A0FA090400000103BD
:1007100001010009211101000122400007058103A8
:1007200008000A0904010001030102000921110166
:100730000001224D000705820308000A0904020097
:100740000103000000092111010001223600070504
:10075000830308000A0904030001030000000921C3
:100760001101000122390007058403200001120154
:10077000100100000008EDFE071301000102000156
:1007800005010906A101050719E029E71500250162
:10079000950875018102050819012905950575015E
:1007A00091029501750391010507190029F71500BC
:1007B000250195F875018102C005010980A1018517
:1007C000021601002603001A81002A830075109585
:1007D000018100C0050C0901A10185031601002655
:1007E0009C021A01002A9C02751095018100C00527
:1007F000010902A1010901A1000509190129051535
:10080000002501950575018102950175038101059A
:1008100001093009311581257F9502750881060986
:10082000381581257F950175088106050C0A380267
:100830001581257F950175088106C0C0050109064F
:10084000A101050719E029E71500250195087501A3
:100850008102950175088101050819012905950591
:10086000750191029501750391010507190029FF92
:10087000150026FF00950675088100C011241FBED3
:10088000CFEFDAE0DEBFCDBF04B603FE27C0809114
:10089000AB039091AC03A091AD03B091AE03873050
:1008A000904BA740B04BD1F41092AB031092AC0325
:1008B0001092AD031092AE0314BE84B7877F84BF3D
:1008C0000FB6F894A89580916000886180936000CD
:1008D000109260000FBEE0E0FFE3099511E0A0E098
:1008E000B1E0ECE2FAE502C005900D92A03DB1073F
:1008F000D9F723E0A0EDB1E001C01D92AB3AB207F9
:10090000E1F70E941B260C94142D0C940000109209
:10091000B9008AE08093B800089594EA9093BC00EF
:100920009091BC0097FFFCCF9091B900987F9830D0
:1009300021F0903111F081E008958093BB0084E8AC
:100940008093BC008091BC0087FFFCCF8091B900F0
:10095000887F883111F0803471F780E0089584E950
:100960008093BC008091BC0084FDFCCF08958093EF
:10097000BB0084E88093BC008091BC0087FFFCCF63
:100980009091B900987F81E0983209F480E0089551
:1009900084E88093BC008091BC0087FFFCCF8091ED
:1009A000BB00089580B38C7080BB81B3836F81BB23
:1009B000089580910001811115C080E40E948D048A
:1009C0008093000181110CC082E10E94B7048093E2
:1009D0000001811105C08FEF0E94B70480930001D0
:1009E0000E94AF0484B1807F84B985B1807F85B9CE
:1009F0008AB1837F8AB98BB1837F8BB93E98469841
:100A0000089508950C94BB060E94720C8093000117
:100A10000E94D9040E94D204E5E2F2E081ED91E067
:100A20001192DC0126E01D922150E9F7069622E0A2
:100A3000E333F207A9F70C941B090E94720C809310
:100A400000010E94D9040E94D204E5E2F2E0119272
:100A500082E0E333F807D9F7089596E0899FF00123
:100A60001124EF52FE4F30E020E080E041E050E002
:100A70009191992351F0DF01119791509C932F5F31
:100A80003F4F26303105A1F70895BA01022E01C06B
:100A9000660F0A94EAF7862BF2CF96E0699FB001C1
:100AA000112430E020E090E04FE0FC01022E02C073
:100AB000F595E7950A94E2F7E0FF06C0F901E60F25
:100AC000F71FEF52FE4F40832F5F3F4F2630310517
:100AD00061F70895BF92CF92DF92EF92FF920F934A
:100AE0001F93CF93DF9380910001882379F0809149
:100AF000D0018F5F8093D001811108C00E94720CD9
:100B000080930001811102C00E941C0C85E2E82E36
:100B100082E0F82E10E000E0CC24C394D12CD02F3A
:100B2000073008F06CC08091000181111BC080E487
:100B30000E948D0480930001811112C082E10E9405
:100B4000B7048093000181110BC0C601002E01C0C3
:100B5000880F0A94EAF780950E94B70480930001F9
:100B60000E94AF0480EA8A95F1F78D2F0E942D052F
:100B7000B82ED73008F063C0C0910001C11181C008
:100B800080E40E948D0480930001811112C083E1F2
:100B90000E94B7048093000181110BC081E40E9480
:100BA0008D0480930001811104C00E94C804C82FE5
:100BB000C0950E94AF04F70181917F019B2D909514
:100BC0009823CB21C92B6D2F8C270E944D05F7014F
:100BD0003197C0830E94D9040F5F1F4F0E3011055B
:100BE00009F09DCF0E941D0981E0DF91CF911F91F7
:100BF0000F91FF90EF90DF90CF90BF9008950A3053
:100C0000B1F038F4083069F0093071F0209A289872
:100C1000A9CF0C3091F070F00D30C1F73E9A469894
:100C2000A1CF219A29989ECF229A2A989BCF239AC6
:100C30002B9898CF529A5B9895CF539AFCCFCFB10F
:100C4000C095C170799B13C080E0C82B7C9B11C0FC
:100C500080E0C82B7D9B0FC080E0C82B7E9B0DC021
:100C600080E0C82B7F9B0BC080E0C82BA4CF82E024
:100C7000ECCF84E0EECF88E0F0CF80E1F2CF80E2ED
:100C8000F4CFC0E098CFE82FF0E0EB5DFD4F80811E
:100C900008950895611108C0FC018281882321F024
:100CA00083ED90E00E94180990E080E008958F5C49
:100CB0009C458830910508F05CC0FC01EB59F94F68
:100CC000DB0112968C910C94C62C6D0674067C0682
:100CD00082068F069906A406AF06882309F44AC047
:100CE0000E94642080E00895882309F443C08CEAC0
:100CF00090E00E941809F6CF8823E1F181E00E947C
:100D0000D110F0CF8823B1F10E94561181E00E94EA
:100D1000D1104FEF60E080E00E943E0FE3CF8823C8
:100D200049F10E94561181E00E94D11040E060E834
:100D3000F2CF8823F9F00E94561181E00E94D11071
:100D400040E065EA8FEFE8CF8823A1F00E945611BA
:100D500081E00E94D11040E860E080E8DDCF882388
:100D600049F00E94561181E00E94D11040E060E0FD
:100D7000E9CF81E00895CF936091F5027091F6027A
:100D80008091F7029091F8020E941720C82F0E94CC
:100D9000FA0B0E94FD0B0E94000C0E94030CC15034
:100DA000C730F8F4EC2FF0E0E852F94F0C94C62C61
:100DB000DF06E406E906E206E706EE06EC06CF915A
:100DC0000C94F10B0E94F10BCF910C94F40B0E9448
:100DD000F10BCF910C94F70B0E94F10B0E94F40BD6
:100DE000F8CFCF91089581E008950C9457060E94A2
:100DF000BB192FEF84E39CE0215080409040E1F745
:100E000000C000000C94F121FF920F931F93CF9329
:100E1000DF938C01FC01C081D1818091840281111A
:100E200050C08281882309F447C0CE010E94F41E7D
:100E3000F82E682FCE010E94981EBE018F2D0E94B1
:100E40003109EC01B8010E94F506882309F498C025
:100E5000B801CE010E94A20B882309F491C0B80109
:100E6000CE010E94C10C882309F48AC0C33CFCE572
:100E7000DF0709F4A4C008F054C0C5319CE5D907C8
:100E800028F5C230ECE5DE0708F0B9C0C115FCE575
:100E9000DF0709F470C0C130DC4509F478C081E097
:100EA0008093370280933802C801DF91CF911F9160
:100EB0000F91FF900C94F306CE010E94C81EF82EED
:100EC000BCCFCE010E94F41EBE01B9CFC03C9CE550
:100ED000D90709F466C0B0F4C531DC4501F7F80163
:100EE0008281CBE6DFE1882311F0C4E6DFE10E94D6
:100EF000DB1F8A7A09F063C189E2FE0109950E942D
:100F0000A81FCDCFC13C8CE5D80709F451C0C23C25
:100F1000DC4529F6F8018281882391F10E94461070
:100F20002FC0C73CECE5DE0709F45AC070F4F801A5
:100F30008281C53CFCE5DF0709F44DC008F446C0DA
:100F40008823F1F00E94A1101BC0C93CECE5DE072C
:100F500009F409C108F4D7C0CC3C8CE5D80709F4E2
:100F600046C0CD3CDC4509F09ACFF8018281882348
:100F700039F082E041C0F801828181110E94F706B8
:100F800080E0DF91CF911F910F91FF900895F801BC
:100F900082818823A9F380912203816080932203B8
:100FA000EFCFF8018281882359F30E946E11E8CFB8
:100FB000F8018281882321F30E944C11E1CFF801CE
:100FC00082818823E9F20E945E10DACF8823C1F281
:100FD0000E947D10D5CF882399F20E948F10D0CF28
:100FE000F8018281882361F20E94B910C9CFF8010B
:100FF0008281882329F280E00E94AE26C1CFF801C9
:101000008281882309F450CF0E948520811102C07B
:101010000E9464200E94982090E090939D0380930A
:101020009C03FE01E350FC4580919C038160E2310A
:10103000F105C8F4E25EF74F0C94C62C30083C086A
:101040004008440848084C085008540858085C08F0
:101050006008640868086C087008740878087C08E0
:1010600080919C03826080939C0380919C030E94EA
:101070009C200E94BB1984CF80919C038460F3CF95
:1010800080919C038860EFCF80919C038061EBCFBF
:1010900080919C038062E7CF80919C038064E3CFC2
:1010A00080919C038068DFCF80919C038460EACFAD
:1010B00080919C038E7FD7CF80919C038D7FD3CF6F
:1010C00080919C038B7FCFCF80919C03877FCBCF78
:1010D00080919C038F7EC7CF80919C038F7DC3CF6F
:1010E00080919C038F7BBFCF80919C038F77BBCF78
:1010F00080919C038B7FEACF90919C03892F97FB73
:1011000087F98058B0CFF8018281882361F010926E
:1011100037020E949521909334028093330282E03B
:101120000E94BC162DCF0E94DB1F85FF05C081E009
:1011300080933702809338028091370281110FC06B
:1011400080913302909134020E94A121883C910544
:1011500030F486E20E94911586E20E946D1682E0CC
:101160000E94C3160DCFF8018281882351F010929E
:1011700038020E949521909336028093350280E2D6
:10118000CFCF0E94DB1F81FF05C081E08093370233
:10119000809338028091380281110FC0809135020E
:1011A000909136020E94A121883C910530F487E29B
:1011B0000E94911587E20E946D1680E2D1CF85E3EF
:1011C0009CCE0F931F93CF93DF938C01D62FF80102
:1011D0002491222341F130E0F901EA54FC4FC491FB
:1011E0002A5C3B4FF90124912223C1F081EE0E9439
:1011F00091158C2F0E9491158C2F0E946D1681EEF7
:101200000E946D160F5F1F4F8D2F815000F3EFE985
:10121000FFE03197F1F700C00000F7CF8C2F0E945C
:1012200091158C2FEDCFDF91CF911F910F910895E4
:1012300060E00C94E1080C945C0C0C94020588238B
:1012400039F090E08A3010F44D960895069708958D
:1012500087E290E0089508950C942B090C942C09D2
:101260000895972F70E026E0929F600D711D112464
:10127000FB0194E5899FE00DF11D1124EE0FFF1F86
:10128000EA5EFE4F859194910895FC01EE0FFF1FD9
:10129000E650FF4F859194910895CF93DF93972F58
:1012A00070E026E0929F600D711D1124FB0194E512
:1012B000899FE00DF11D1124EE0FFF1FEA5EFE4F26
:1012C000859194910E94F40AEC01811520E4920723
:1012D00008F091C0C11580E3D80708F002C1C03EF4
:1012E000D10508F071C0C03CD10508F0E6C0C83A8D
:1012F000D10580F4C53AD10508F0E6C0C130D1056A
:1013000009F46EC020F0C430D10508F069C0D0E007
:10131000C0E066C0CD3BD105D0F7C83AD10509F48D
:1013200024C1C93AD10509F423C1CA3AD10509F447
:1013300022C1CB3AD10509F421C1CC3AD10509F437
:1013400020C1CB3BD10509F41FC1CC3BD10509F429
:101350001EC1CD3AD10509F41DC1C03BD10509F428
:101360001CC1CE3AD10509F41BC1CF3AD10509F40D
:101370001AC1C13BD10509F419C1C23BD10509F419
:1013800018C1C33BD10509F417C1C43BD10509F409
:1013900016C1C53BD10509F415C1C63BD10509F4F9
:1013A00014C1C73BD10509F413C1C83BD10509F4E9
:1013B00012C1C93BD10509F411C1CA3BD10509F0DD
:1013C00010C1CAE2D6E40CC0CF3FD10509F060F4E9
:1013D000C03FD10508F083C0C83ED10508F097CFC3
:1013E000CE01DF91CF910895C11590E2D907C0F3E6
:1013F000CE019F7065C081159445A0F5C11583E5A8
:10140000D80708F08FC0C11591E5D90708F5C115B7
:1014100020E5D20708F46FC09E0154E03695279569
:101420005A95E1F723703C2F337081E090E002C0C1
:10143000880F991F3A95E2F79C68922BC695C6953E
:10144000C37020E2C29FE0011124C82BD92BC8CF62
:10145000C11582E5D80708F051C0DC2FCC27C16F39
:10146000D06ABECFC11596E5D90758F49C2F8827BE
:10147000C115D54508F46AC0EC01CC27DF71D062F4
:10148000AFCFC11588E5D80708F441CFC11599E55C
:10149000D90708F45FC0CE0190568115904208F03C
:1014A00036CF8D2F8F710E94740B90E0982F882774
:1014B00088279F71DD27D062C8CFCE01805C91095B
:1014C0000E944509EC018CCFC53AD10509F447C00B
:1014D000C63AD10509F446C0C3E8D0E481CFD0654F
:1014E0007FCFCE019927D3FF03C0EC01D86C78CF12
:1014F000EC01D06C75CFDF70D06A72CF9E01237083
:10150000332781E090E002C0880F991F2A95E2F707
:10151000C695C69520E2C29FE0011124C82BD92BA5
:10152000DC685ECF9E012370332781E090E002C02B
:10153000880F991F2A95E2F7C695C69520E2C29FAB
:10154000E0011124C82BD92BDA684ACFEC01C46F13
:10155000D06A46CFDC2FCC27C06FD06A41CFC1E81C
:10156000D0E43ECFC2E8D0E43BCFC2EED4E438CFE3
:10157000C9EED4E435CFCAEED4E432CFC5EBD4E41F
:101580002FCFC6EBD4E42CCFC3EBD4E429CFC4EBEC
:10159000D4E426CFC7EBD4E423CFCCECD4E420CFE3
:1015A000CDECD4E41DCFC3E8D5E41ACFCAE8D5E426
:1015B00017CFC2E9D5E414CFC4E9D5E411CFC1E215
:1015C000D6E40ECFC3E2D6E40BCFC4E2D6E408CF14
:1015D000C5E2D6E405CFC6E2D6E402CFC7E2D6E440
:1015E000FFCEC0E0D4E4FCCE8238910549F1B0F4DE
:1015F0008133910509F45CC048F48932910509F4FE
:1016000052C08A32910509F458C008958533910576
:1016100009F444C08933910599F00895833E9105FA
:1016200031F138F4803E910591F0823E9105B1F0A0
:101630000895863E910511F1873E910541F1089587
:1016400020919C032370C9F080EE90E008952091D2
:101650009C0320FF12C089E390E0089520919C0331
:1016600022FF0BC024FF2EC090E080E0089520915F
:101670009C0322FD2AC024FDF7CF089520919C03EE
:1016800023FFFBCF24FDF0CF87EE90E0089520915B
:101690009C0323FFF0CF86EE90E0089520919C03F9
:1016A00025FD16C0089520919C0325FD14C00895C2
:1016B00020919C0326FD12C0089520919C0326FDD5
:1016C00010C0089583EE90E0089582EE90E00895B2
:1016D00089E290E0089585E390E008958AE290E041
:1016E000089581E390E0C9CFCF93C82F0E9498203E
:1016F000282F30E030939D0320939C0382FF06C087
:101700009C2F9871983079F4C77FC46083FF06C01E
:101710009C2F9871983171F4C77EC46184FDC77E97
:101720008C2FCF9108959C2F9471943079F7CB7FB3
:10173000C860ECCF9C2F9471943181F7CB7EC86147
:10174000EDCF08950F931F93CF938C01FB018281FE
:10175000811106C0C1E08C2FCF911F910F91089588
:10176000C0914602C11125C006311C4599F70E945F
:10177000A10B81E0809346020E949521909345023F
:10178000809344021092390210923B0210923A0266
:1017900010923D0210923C0210923F0210923E02C3
:1017A00010924102109240021092430210924202A3
:1017B000D2CF80914402909145020E94A121883CA1
:1017C000910540F680913902E82FF0E0EE0FFF1FFF
:1017D000E65CFD4F118300838F5F80933902C0E088
:1017E000BACF259A2D9A0895269A2E9A0895279A67
:1017F0002F9A089556985E98089525982D980895E3
:1018000026982E98089527982F9808950E94FA0BED
:101810000E94FD0B0E94000C0C94030C90E090932E
:1018200089008093880090938B0080938A00909326
:101830008D0080938C0008950E94060C8FEF0E940B
:101840000E0C0E94F10B2FEF80E792E021508040B8
:101850009040E1F700C000000E94F40B2FEF80E7FA
:1018600092E0215080409040E1F700C000000E94CB
:10187000F70B2FEF80E792E0215080409040E1F796
:1018800000C000000E94FD0B2FEF80E792E0215086
:1018900080409040E1F700C000000E94000C2FEF54
:1018A00080E792E0215080409040E1F700C00000C6
:1018B0000E94030C0C94060C89EA8093800089E056
:1018C0008093810024982C983F988AB18F7C8AB9A4
:1018D0006E98479A8BB180638BB9769A0E941C0CE4
:1018E0000C94010580E280930001809147028111F0
:1018F0000EC00E94870481E0809347022FEF83EDA2
:1019000090E3215080409040E1F700C0000080E467
:101910000E948D048093000181112EC00E94B704A3
:1019200080930001811128C00E94B70480930001B8
:10193000811122C08FE30E94B704809300018111BE
:101940001BC00E94AF0480E40E948D0480930001BC
:10195000811112C08CE00E94B704809300018111B4
:101960000BC00E94B70480930001811105C08FE372
:101970000E94B704809300010E94AF04809100018F
:101980000895CF93DF93EC01C13080E8D807C8F009
:10199000FB0182818823A9F080914802811109C04E
:1019A0008CE090E00E94CC2C0E94E50C81E08093BA
:1019B00048020E94EC0CCE019F770E94AB0D0E9462
:1019C000630D81E0DF91CF91089580934902682FE4
:1019D0008CE090E00C94E02CE0910201F091030186
:1019E00080818093510381FF03C081EE0E946D16B8
:1019F0008091510385FF03C085EE0E946D16809192
:101A0000510380FF03C080EE0E946D168091510348
:101A100084FF03C084EE0E946D168091510382FF03
:101A200003C082EE0E946D168091510386FF03C0B1
:101A300086EE0E946D168091510383FF03C083EEF2
:101A40000E946D168091510387FF03C087EE0E94AC
:101A50006D1680914902813081F058F0823001F199
:101A6000843031F18FE39CE90197F1F700C0000069
:101A7000089582EE0E949115F5CF80EE0E94911597
:101A800081EE0E94911588E10E94911588E10E94E3
:101A90006D1681EE0E946D1680EE0E946D16E2CFEB
:101AA00082EE0E94911587E50E94911587E5F5CF9A
:101AB00086EE0E94911586EE0E946D1688E10E94C6
:101AC000911588E1EACF809149028130F1F110F05F
:101AD000823019F482EE0E946D168091510381FFCD
:101AE00003C081EE0E9491158091510385FF03C0D0
:101AF00085EE0E9491158091510380FF03C080EE16
:101B00000E9491158091510384FF03C084EE0E94CE
:101B100091158091510382FF03C082EE0E949115BE
:101B20008091510386FF03C086EE0E94911580913B
:101B3000510383FF03C083EE0E94911580915103EE
:101B400087FF08C087EE0C9491158CE20E949115D6
:101B50008CE2C1CF0895EF92FF921F93CF93DF9352
:101B60007C01CCE0D0E0C7010C2E02C09695879591
:101B70000A94E2F7182F1F70812F0E941F090E94FC
:101B80009115812F0E941F090E946D162497CC3F4A
:101B90008FEFD80741F7DF91CF911F91FF90EF9022
:101BA00008958823B9F05198599A5098589A95E019
:101BB0009A95F1F70000509A589895E09A95F1F7A8
:101BC0000000882311F0519A599885E08A95F1F721
:101BD00000000895519A5998E8CF8BB18C7F8BB94A
:101BE0005098589A5198599A85E08A95F1F70000D3
:101BF00008958AB18C7F8AB985E08A95F1F7000053
:101C0000519A599885E08A95F1F70000509A5898B2
:101C100085E08A95F1F7000008955098589A85E07C
:101C20008A95F1F700005198599A85E08A95F1F765
:101C300000000895CF93DF93D82FC8E08D2F8078D0
:101C40000E94D10DDD0FC150C9F780E00E94D10D77
:101C500085E08A95F1F7000085E08A95F1F70000AC
:101C600080E0DF91CF9108953BB1242F209523236D
:101C70003BB1432B3FB7F894FC01680F791FE6177F
:101C8000F70711F43FBF0895819198E04BB9000028
:101C900000C087FF2BB9880F000000C000C000C043
:101CA0002BB900C09A9591F7EACFAF92BF92CF922D
:101CB000DF92EF92FF920F931F93CF93DF938C01EC
:101CC000EB01CFB6D090BC00F8948091BC008B7F24
:101CD0008093BC000E94ED0D0E94F90D84E80E94E3
:101CE0001A0ECC0FDD1FCC0FDD1F78015E01A00E98
:101CF000B11EEA14FB04A9F40E940D0ECFBED092CF
:101D0000BC00579A40E8BE01C801DF91CF911F91F6
:101D10000F91FF90EF90DF90CF90BF90AF900C9419
:101D2000340EF70181917F010E941A0EE2CFCF920B
:101D3000DF92EF92FF920F931F93CF93DF93E9010E
:101D4000662309F466C0E42EF12CEFEFF0E0E61B09
:101D5000F109EE9D8001EF9D100DFE9D100D1124E7
:101D6000212FE12FFF27EE1AFF0A5CE3C52ED12CAD
:101D7000B6010E949E2CFB01BC01E69EC001E79EBD
:101D8000900DF69E900D1124B6010E949E2CE2301B
:101D9000F10589F168F4812F262F210F309781F00A
:101DA000242F461B319761F080E020E040E008C01E
:101DB000E430F10551F128F1842F861B3597A1F706
:101DC000E42FF0E0E353FA4F4491E22FF0E0E353C5
:101DD000FA4F9491E82FF0E0E353FA4FE4914983EE
:101DE0009883EA83DF91CF911F910F91FF90EF903D
:101DF000DF90CF900895862F810FE42F412F2E2F53
:101E0000DFCFE42FE61B842FF9CF842F462F410F1D
:101E1000D7CF842F242FD4CF88E090E00C94D42CFB
:101E2000AB01BC0188E090E00C94F22CE2E5F3E019
:101E300083E08083109253038FEF828383836091CA
:101E400052037091530380915403909155030C9465
:101E5000100F80915203EAE5F3E080FF06C06FE0C7
:101E600070E08AE593E00C94550E11821082128284
:101E7000349683E0E639F807C1F7F1CFEAE5F3E0FD
:101E8000818360834283349693E0E639F907C1F792
:101E90000C94290FEF92FF920F931F93CF93DF9330
:101EA00000D000D0CDB7DEB7182FE92EF62E042FC4
:101EB0008091520390915303A0915403B091550324
:101EC0008093560390935703A0935803B0935903FC
:101ED0008091520380FF1FC09E012F5F3F4F812FD3
:101EE0009E2D0E94970E8091560310FB87F98093D8
:101EF00056031695809157038078812BE0FA87F975
:101F000080935703F0925803009359034B816981E2
:101F10008A810E943E0F0F900F900F900F90DF91DB
:101F2000CF911F910F91FF90EF9008956F927F9244
:101F30008F929F92AF92BF92CF92DF92EF92FF92D9
:101F40000F931F93CF93DF93EC01662E742E809135
:101F5000520380FF8CC0982F9E77923079F5CE0186
:101F60000E944A0F809152039C2FC0FB87F98093F7
:101F700052039695809153038078892BD0FB87F983
:101F800080935303609254037092550360915203FF
:101F9000709153038091540390915503DF91CF9139
:101FA0001F910F91FF90EF90DF90CF90BF90AF9077
:101FB0009F908F907F906F900C94100FE82FE69574
:101FC000EF739EE39E0F9F73943018F47090550347
:101FD000C9CF9AE39E0F9F73993070F4881F8827AA
:101FE000881F90915303292F220FC22FC82B97FBD4
:101FF000992790F9D92FB6CF87E28E0F8F738A3049
:1020000008F0B0CFE951FF0B2FEFE0FF21E0EE7FAA
:10201000EA54FB4F859194916FE070E00E949E2CF2
:1020200026035001279FB00C11247E0188E9E81A8D
:102030008EEFF80A0AE513E086E9C82E83E0D82E71
:1020400098E6892E99249394C701B4010E949E2C8E
:102050009801472D662D0E94970EEA0CFB1C0C5F21
:102060001F4FC016D10681F70E94290F7BCFDF9149
:10207000CF911F910F91FF90EF90DF90CF90BF9085
:10208000AF909F908F907F906F900895E2E5F3E07E
:102090002081221F2227221F30915303432F440FF8
:1020A000842F822B37FB992790F90C9668E671E014
:1020B0000E94B22C438162810C94960F20915203AE
:1020C000221F2227221F30915303432F440F842FB6
:1020D000822B37FB992790F98C30910540F4845A74
:1020E0009E4F40915503609154030C94960F0C97AA
:1020F00068E671E00E94B22CF4CFE2E5F3E0808163
:10210000881F8827881F90915303292F220F97FB40
:10211000992790F943816FEF822B0C94960FE2E59B
:10212000F3E08081881F8827881F90915303292F0F
:10213000220F97FB992790F9438160E0822B0C9442
:10214000960F40915503443F90F4445F80915203B1
:10215000881F8827881F90915303292F220F97FBF0
:10216000992790F960915403822B0C94960F4FEFAE
:10217000EDCF409155034C3090F04C50809152037C
:10218000881F8827881F90915303292F220F97FBC0
:10219000992790F960915403822B0C94960F40E09C
:1021A000EDCF9091520390FF42C09178811126C0EB
:1021B0009260909352036091520370915303809107
:1021C0005403909155030E94100F80915203982F51
:1021D0009E779230D9F410925F02881F8827881F5B
:1021E00090915303292F220F97FB992790F9409143
:1021F000550360915403822B0C94960F833210F098
:102200009464D7CF8F73880F982BD3CF982F969540
:102210009F732EE3290F2F73273120F491E09093C1
:102220005F02DBCF995D9F739A30B8F6D4CF0895E3
:102230008091220381608093220381E08093600279
:102240000E948520811104C00E9464200E94160F04
:102250000E940C0F609352037093530380935403B6
:10226000909355036E7761F40E94160F0E940C0F35
:1022700060935203709353038093540390935503D8
:1022800081E080935F028091520380FF04C08695B5
:102290008F730C94D11008958091520386958F739B
:1022A0008F5F833208F081E00C94D110CF93DF93DD
:1022B000C2E5D3E088818160888360915203709188
:1022C000530380915403909155030E94100F88810D
:1022D00086958F73DF91CF910C94D110909152031A
:1022E000892F8E7F90FF816080935203609152030B
:1022F0007091530380915403909155030E94100FE5
:102300008091520380FF04C086958F730C94D11086
:1023100010925F022FEF80E792E0215080409040C2
:10232000E1F700C000000C94290FCF93C82F8091D3
:102330005D0290915E020E94A121EC2FF0E0E75334
:10234000FB4FE491E817190609F010F50E9495215A
:1023500090935E0280935D02E0915C02F0E0E353B3
:10236000FB4F449180915203881F8827881F9091CA
:102370005303292F220F97FB992790F9609154035B
:10238000822B0E944A0F80915C028F5F80935C02D7
:10239000CF910895CF93C82F80915A0290915B02FC
:1023A0000E94A121EC2FF0E0EA53FB4FE491E817E3
:1023B000190609F0E8F40E94952190935B0280933E
:1023C0005A024091550360915403809158029091B4
:1023D00059020E944A0F8091580290915902019629
:1023E00068E671E00E949E2C9093590280935802F7
:1023F000CF910895CF92DF92FF920F931F93CF93C7
:10240000DF93F82E80915602909157020E94A121ED
:10241000EF2DE695F0E0EA53FB4FE491E81719063B
:1024200009F0A8F50E9495219093570280935602D7
:102430000AE513E0D0E0C0E088E6C82EDD24D3949E
:1024400080915402909155028C0F9D1FB6010E94FD
:102450009E2C980140915503609154030E94970E61
:1024600068960C5F1F4FC83681E0D80749F70E9475
:10247000290F8091540290915502F0FE10C00196F0
:10248000BE010E949E2C9093550280935402DF91CE
:10249000CF911F910F91FF90DF90CF9008950197FA
:1024A000F2CFAF92BF92CF92DF92EF92FF920F9353
:1024B0001F93CF93DF93C82FFF24FA9480FD02C0AF
:1024C000FF24F39480915202909153020E94A12123
:1024D000C695EC2FF0E0ED53FB4FE491E817190699
:1024E00011F008F053C00E949521909353028093FD
:1024F0005202CAE5D3E010E000E097E0C92ED12CEB
:10250000198218821A8287E0A82EB12CE12C8091C2
:1025100051028E0D87FD815F082E000C990B081764
:102520001907E9F4209155032A9DC0012B9D900DB8
:102530001124B6010E94B22C462F80915203881FAD
:102540008827881F90915303592F550F97FB992780
:1025500090F99E0160915403852B0E94970EEF0C19
:1025600081E0A81AB10899F60F5F1F4F24960F302B
:10257000110531F60E94290F8091510291E0F91264
:1025800012C081110EC08EE080935102DF91CF9175
:102590001F910F91FF90EF90DF90CF90BF90AF9081
:1025A00008958150F1CF90E00196B8010E94B22CBD
:1025B000EBCFBF92CF92DF92EF92FF920F931F93D8
:1025C000CF93DF93CDB7DEB7EC970FB6F894DEBFAD
:1025D0000FBECDBF182F80914F02909150020E94E4
:1025E000A121E12FF0E0E054FB4FE491E817190638
:1025F00011F008F07AC00E949521909350028093C8
:102600004F028E010F5F1F4FF12CE12C6801D801A2
:1026100011961C9211971C9212961C92B12C9091BB
:10262000010180914E02B99E800D11248F300CF073
:102630008EE087FD80E0082E000C990BE816F90665
:10264000A1F480915203881F8827881F909153031B
:10265000592F550F97FB992790F9980140915503F1
:1026600060915403852B0E94970EB394B7E0BB1280
:10267000D6CFEFEFEE1AFE0A0C5F1F4FFFE0EF160A
:10268000F10429F62AE533E009E010E09FE0E92EA5
:10269000F12CC801B7010E94B22CFC01EE0FFF1F04
:1026A000EE0FFF1FEC0DFD1D8181D90111968C935A
:1026B000119780818C93828112968C930F5F1F4FAC
:1026C0002C5F3F4F0831110521F70E94290F90918F
:1026D000010180914E029130E1F48A3FB4F489EF18
:1026E00080934E028FEF80930101EC960FB6F89421
:1026F000DEBF0FBECDBFDF91CF911F910F91FF9035
:10270000EF90DF90CF90BF900895815080934E025C
:10271000ECCF86312CF085E180934E0281E0E3CF4F
:102720008F5FF4CFEF92FF920F931F93CF93DF93BE
:1027300080914C0290914D020E94A121883E9340CD
:10274000C8F10E94952190934D0280934C02C09154
:102750004A02D0914B022196C170DD27D0934B02E3
:10276000C0934A028AE5E82E83E0F82E10E008E7DD
:10277000812F86958C0F9D2F911D81709927970130
:102780004091550360915403FC010E9FC0010F9FBF
:10279000900D11240E94970E1F5FF4E0EF0EF11CC4
:1027A0001F3031F7DF91CF911F910F91FF90EF9084
:1027B0000C94290FDF91CF911F910F91FF90EF9013
:1027C000089580915F02882391F190915203892F9F
:1027D00086958F732EE3280F2F73243018F48250C0
:1027E0000C9495112AE3280F2F73233018F4865088
:1027F0000C94CA1127E3280F2F73263018F4895040
:102800000C94FA1121E3280F2F73263018F48F50FF
:102810000C9451122BE2280F2F73233018F485519A
:102820000C94D9129E77903311F40C94921308955E
:1028300090936602809365020895E0916502F0919D
:102840006602309721F00190F081E02D099480E03C
:102850000895E0916502F0916602309721F00280C0
:10286000F381E02D09940895E0916502F0916602EC
:10287000309721F00480F581E02D0994089520918E
:102880006302309164022817390771F09093640253
:1028900080936302E0916502F0916602309721F027
:1028A0000680F781E02D099408952091610230910E
:1028B00062022817390771F09093620280936102D7
:1028C000E0916502F0916602309721F00084F18575
:1028D000E02D0994089508950C946B140E948C21A6
:1028E0000E9404050E9413220C941811BF92CF92EB
:1028F000DF92EF92FF920F931F93CF93DF93CDB7A9
:10290000DEB72A970FB6F894DEBF0FBECDBF0E9488
:102910006A0588E6C82E82E0D82E10E000E0B02ECE
:10292000802F0E944306E82EF601F1906F01F81601
:1029300009F45AC08091220381FD0E94490690E06B
:1029400080E0FE242F2D30E0482FB901082E02C070
:10295000759567950A94E2F760FF41C08E83BF8248
:1029600081E090E06C0102C0CC0CDD1C4A95E2F7DE
:102970002E2D30E02C213D21232B09F480E0888787
:102980000E9495218160782F9A8789874E815F8187
:1029900068858A850E945315F801E859FD4F8081AA
:1029A0008C2580830E94A6230E941D1490916702AB
:1029B000891789F10E941D14809367022A960FB629
:1029C000F894DEBF0FBECDBFDF91CF911F910F9165
:1029D000FF90EF90DF90CF90BF900C942E0901965E
:1029E0008630910509F0B0CF0F5F1F4F0E301105F3
:1029F00009F095CF8FEF89838A831B820E949521EE
:102A00008160782F9D838C8349815A816B818D8170
:102A10000E945315C7CF2A960FB6F894DEBF0FBE9B
:102A2000CDBFDF91CF911F910F91FF90EF90DF907D
:102A3000CF90BF900895CF93DF93DC018C91682FE6
:102A400070E021E030E001C0220F8A95EAF711968C
:102A50004C91119750E0EA01CA58DD4F98811296C7
:102A60008C9112978823C9F0809185028823C1F048
:102A700086E0849FF001859FF00D1124E60FF71F7B
:102A8000EE0FFF1FEC5EFE4F408151814D935C9332
:102A9000292B2883DF91CF910895892F8223E6CFB8
:102AA00020952923F6CFCF93DF93CDB7DEB72B97B1
:102AB0000FB6F894DEBF0FBECDBF942F4F83252FE6
:102AC000588769877A878B874A855B8581E0452BA4
:102AD00031F02F3F19F481E09F3F09F080E080FD45
:102AE00004C0CE0107960E941B151E821D8285E040
:102AF000FE013796DE01119601900D928A95E1F75D
:102B000049815A816B817C818D819E810E946D1CDF
:102B10002B960FB6F894DEBF0FBECDBFDF91CF91DD
:102B20000895882309F4D8C0823871F40E941D14D6
:102B300081FDD2C089E30E94641F0E94A81F89E31F
:102B40000E946B1F0C94A81F833859F40E941D1417
:102B500080FDC2C083E50E94641F0E94A81F83E518
:102B6000EFCF843859F40E941D1482FDB5C087E46C
:102B70000E94641F0E94A81F87E4E2CF9CEF980F79
:102B8000913A18F40E94641FDDCF90E2980F9830BC
:102B900050F4877091E001C0990F8A95EAF7892F68
:102BA0000E94DE1FCFCF9BE5980F933070F4853ADB
:102BB00031F0863A39F083E890E00C943F1481E8D4
:102BC00090E0FBCF82E890E0F8CF98E5980F953140
:102BD00008F082C0883A09F440C0893A09F440C03C
:102BE0008A3A09F440C08B3A09F440C08C3A09F49F
:102BF00040C08B3B09F440C08C3B09F440C08D3A87
:102C000009F440C0803B09F440C08E3A09F440C04A
:102C10008F3A09F440C0813B09F440C0823B09F47B
:102C200040C0833B09F440C0843B09F440C0853B6D
:102C300009F440C0863B09F440C0873B09F440C01A
:102C4000883B09F440C0893B09F440C08A3B09F441
:102C500040C090E080E00C94551482EE90E0FBCFF1
:102C600089EE90E0F8CF8AEE90E0F5CF85EB90E02A
:102C7000F2CF86EB90E0EFCF83EB90E0ECCF84EBEC
:102C800090E0E9CF87EB90E0E6CF8CEC90E0E3CFEB
:102C90008DEC90E0E0CF83E891E0DDCF8AE891E031
:102CA000DACF82E991E0D7CF84E991E0D4CF81E215
:102CB00092E0D1CF83E292E0CECF84E292E0CBCF1C
:102CC00085E292E0C8CF86E292E0C5CF87E292E04B
:102CD000C2CF8AE292E0BFCF0895882309F44BC0A7
:102CE000823871F40E941D1481FF45C089E30E945F
:102CF000641F0E94A81F89E30E946B1F0C94A81FE9
:102D0000833859F40E941D1480FF35C083E50E946A
:102D1000641F0E94A81F83E5EFCF843859F40E94F6
:102D20001D1482FF28C087E40E94641F0E94A81F10
:102D300087E4E2CF9CEF980F913AF0F290E2980F7F
:102D4000983050F4877091E001C0990F8A95EAF7A6
:102D5000892F0E94E41FD2CF9BE5980F933020F477
:102D600090E080E00C943F14885A853120F490E084
:102D700080E00C9455140895882321F00E94DE1FF2
:102D80000C94A81F0895882321F00E94E41F0C943E
:102D9000A81F08958F929F92AF92BF92DF92EF92F9
:102DA000FF920F931F93CF93DF937C01D62FC72FF2
:102DB000FC01058102950F70128111110E94FD1F07
:102DC0000E94A11FD82E882371F0112331F180E2D7
:102DD0008D0F883010F182E00E948B1F0E94A11F8E
:102DE00091E0D82ED926BC2EB2949FE0B922EB2DCB
:102DF000F0E0E350F94E0C94C62C0F170F175F1735
:102E00005F179A17C2173119A1170418A1179F1835
:102E10009F182819A117A1175119D12CE4CF0C2FF5
:102E20000F70C07F11F00295007F1123A9F00023DD
:102E300059F080E28D0F883010F0D11109C0802F39
:102E40000E94DE1F0E94A81F8D2F0E94911514C0A2
:102E5000802F0E94EF1FF6CF8D2F0E946D1600234A
:102E600059F080E28D0F883010F0D11124C0802FEE
:102E70000E94E41F0E94A81FDD2009F42BC20E94BB
:102E80007E1F80FD27C2F70112820E94781F0E94D8
:102E9000FC1DC7010E9476190E94781FDF91CF9117
:102EA0001F910F91FF90EF90DF90BF90AF909F9098
:102EB0008F900C941D1E802F0E94F51FDBCFFC2FDE
:102EC000FF70BF2EC07FC03219F0B29480EFB822DD
:102ED000DD2339F0D130F9F0112331F1002329F04D
:102EE000B3CF112361F0011104C08B2D0E94BC16D9
:102EF000C3CF8B2D0130D1F70E941120BDCF01111E
:102F000006C00E9414208B2D0E94C316B5CF01303D
:102F100009F4B2CFF6CF112321F0023008F0ACCF84
:102F2000E4CF0111A9CFEFCF002369F38D2F0E94C9
:102F30006D16A2CF8C2F86958695837079F081309F
:102F4000B9F0E8E0BE1609F49BC0BE1608F494CFB1
:102F500086EF8B0D823008F493C08ECF8D2F9C2F7F
:102F60009370111102C090E080E00E943F1484CF62
:102F70008D2F9C2F9370111102C090E080E00E9471
:102F800055147ACF112309F1D53F99F0D63FB9F006
:102F9000D43F49F480919603909197038160909378
:102FA0009703809396038D2F0E94AF220E949B234C
:102FB00063CF80919603909197038260F0CF8091C8
:102FC0009603909197038460EACFD53F89F0D63F6E
:102FD000A9F0D43F49F480919603909197038E7F96
:102FE00090939703809396038D2F0E941723DECF33
:102FF00080919603909197038D7FF2CF80919603F5
:10300000909197038B7FECCF8C2F837009F04BC08E
:10301000111136C02D2F229526952770220F220FD1
:103020006D2F6F70862E912CB12CA12C022E04C016
:10303000880C991CAA1CBB1C0A94D2F760E070E0B3
:10304000CB01D4FF0FC06FE070E080E090E004C0DF
:10305000660F771F881F991F2A95D2F76095709584
:1030600080959095C695C695C370C23071F0A0F456
:10307000682979298A299B29C13091F00E94B01DC5
:103080000E941D140E942E09F7CE682979298A29E9
:103090009B290E94C21DF4CF0E94B01DC501B4013E
:1030A0000E949E1DEDCF8695112311F08C2F81700B
:1030B000882331F32D2F229526952770220F220F7A
:1030C0006D2F6F70862E912CB12CA12C022E04C076
:1030D000880C991CAA1CBB1C0A94D2F760E070E013
:1030E000CB01D4FF0FC06FE070E080E090E004C03F
:1030F000660F771F881F991F2A95D2F760957095E4
:1031000080959095C695C695C370C23051F080F4F5
:10311000682979298A299B29C13071F00E94731E80
:10312000AFCF682979298A299B290E94851EA8CFBB
:103130000E94731EC501B4010E94611EA1CFE0E28E
:10314000ED0FE53108F065C0F0E0E755F74E0C945F
:10315000C62CBE18BE18BE18BE18BE18BE18BE18A3
:10316000BE18BE18BE18BE18BE18BE18BE18BE18AF
:10317000BE18CF18DC18E318EA18F418DF708C2F8B
:103180008F71112331F00E94FC1D8D2F0E94BC16FF
:10319000D8CE0E941D1E8D2F0E94C316D2CE1123A1
:1031A00039F00111CECE8C2F8F710E94401EC9CEF6
:1031B000023008F0C6CEF7CF8C2F8F71112339F073
:1031C0000E94FC1DBECE8C2F8F711123C9F30E946B
:1031D0001D1EB7CE112329F08C2F8F710E94E71D81
:1031E000B0CE0E94E21DADCE112349F0CF718C2FDD
:1031F0000E94FC1D63E08C2F0E94821FA2CE81E002
:103200000E948B1F023008F49CCE82E00E948B1F2C
:1032100098CE112349F0002321F08D2F0E949115A3
:1032200090CE8C2F8F71CCCF002379F0D93349F415
:103230002FEF87EE93E0215080409040E1F700C0EF
:1032400000008D2F0E946D167CCE8C2F8F71BFCF0A
:103250004C2F4F706D2FC7010E944A060E94161D09
:103260000BCED23F39F160F4D03F99F0D13F51F10C
:10327000002301F18D2F112351F10E94911511C0EE
:10328000D43FD9F0A8F0D53F99F711110AC081E0D9
:1032900006C0112331F08091850291E08927809347
:1032A00085024C2F4F706D2FC7010E94300949CE07
:1032B00081E0182710938502F4CF1111F2CF1092FC
:1032C0008502EFCF0023B1F31111EBCFE4CF0E94C1
:1032D0006D16E7CFDF91CF911F910F91FF90EF9087
:1032E000DF90BF90AF909F908F9008950F931F93A2
:1032F000CF93DF93EC01988189812B813C81232B33
:1033000039F08F3F19F481E09F3F19F080E001C050
:1033100081E080FD17C0CE010E940407882391F050
:10332000688179818A810E94401F8C010E94971ECA
:103330000E949B1DB801CE01DF91CF911F910F918B
:103340000C94CA16DF91CF911F910F9108950E949E
:10335000FD1F0E940E200E94721F0E94A81F0E9443
:1033600048240E949B2390E080E00E943F1490E05C
:1033700080E00C9455140E94EC1F0C94A7190E9435
:10338000361FE92FE295EF70E250EE30E0F4F0E006
:10339000E453F64E0C94C62CDA19DA19E319E31942
:1033A000E519E319E319E319DA19DA19EA19E31946
:1033B000E319EA19803F19F020F4803E20F481E0FF
:1033C0000895843FE1F380E00895803EC0F3813F9B
:1033D000D1F7F5CF93FB882780F90895CF93DF933A
:1033E00000D000D01F92CDB7DEB70F900F900F9096
:1033F0000F900F90DF91CF910895CF93DF9300D07E
:1034000000D000D0CDB7DEB726960FB6F894DEBF59
:103410000FBECDBFDF91CF9108951F93CF93DF9360
:10342000C091860216E0809187028C1304C0DF9160
:10343000CF911F910895D0E01C9FF0011D9FF00DCA
:103440001124E857FD4F408151816281738184814D
:1034500095810E94FD192196C770E5CF4091B80271
:103460005091B9026091BA027091BB028091BC0286
:103470009091BD020C94FD191F93CF93DF9380911F
:10348000BD02807FD1F48091BA028823B1F080918F
:103490008602D0918702B091B802C091B9024091E2
:1034A000BB025091BC02A1E0BF3F09F0A0E0BA010D
:1034B0006095709516E0D81304C0DF91CF911F91ED
:1034C000089521E04115510521F02A2FCF3F09F041
:1034D00020E090E020FD38C0189FF001199FF00D0A
:1034E0001124E857FD4F21812C132EC020812B136E
:1034F0002BC02281211128C0238134812417350754
:1035000000F1241B350B283C3105F0F42091BD025D
:103510002F7020612093BD0226E0289FF001299F93
:10352000F00D1124E357FD4F80818F7080618083FF
:1035300088EB92E00E947619DF91CF911F910C9455
:103540000D1A260F371FDFCF01968770B4CFAF92C9
:10355000BF92CF92DF92EF92FF920F931F93CF9380
:10356000DF93CDB7DEB761970FB6F894DEBF0FBE1D
:10357000CDBF8C0185E0F801DE011D9601900D9212
:103580008A95E1F7D8014C9111965C9111971296AA
:10359000EC903091B8026091B9028091BB02909199
:1035A000BC0221E0009731F06F3F19F421E03F3F6A
:1035B00009F020E0B22FB170BB2E20FD80C1F801D0
:1035C000C380D480A090BA02AA2009F427C1C816EB
:1035D000D906D0F1D601A81BB90BCD01FF24F39475
:1035E000883C910508F0F12C8091BD02982F907FC6
:1035F000FF2009F4CAC0911187C0FE2C651329C0B1
:10360000341327C0E11025C08F7080618093BD0204
:103610000E942E1A88EB92E00E9476198091BD02DA
:10362000F80185838F2D61960FB6F894DEBF0FBE2B
:10363000CDBFDF91CF911F910F91FF90EF90DF9061
:10364000CF90BF90AF900895809590958C0D9D1D63
:10365000C5CF81E0CD2831F05F3F19F481E04F3FC5
:1036600009F080E080FD24C081E08E25F82FF17004
:10367000DF2E80FF3FC0809186022091870236E0D6
:10368000821318C04D875E878D859E850E94361FE8
:10369000292F22952F70223008F1243030F59F70A9
:1036A00009F1D80115969C91907FE1F4FB2CBACFDB
:1036B00080E0DCCF90E0389FF001399FF00D1124BD
:1036C000E857FD4F6181561306C06081461303C061
:1036D00062816E110FC001968770D2CF9F7011F07A
:1036E000882321F3805E883008F3C8010E94761990
:1036F000BD2CDCCFEE2009F495CF8091BD02816016
:103700008093BD02F12C8ECF651312C0341310C00C
:10371000E1100EC0F8018583C8010E94761986E089
:10372000F801A8EBB2E001900D928A95E1F741C053
:103730004D875E878D859E850E94BF19882309F479
:10374000C8C0EE2009F4C5C08091BD02803270F07F
:103750002091B8023091B90238872F831986DB8611
:10376000CA868C87CE0107960E94761986E0F801FA
:10377000A8EBB2E001900D928A95E1F70E943C1A05
:103780000E942E1AFF24F3944DCF911115C07C2D69
:10379000D98AC88A6E2D89890E94EE1988EB92E039
:1037A0000E94761986E0E8EBF2E0DF011D928A952F
:1037B000E9F70E942E1A36CF651312C0341310C0D9
:1037C000E1100EC0F8018583C8010E947619E8EB6C
:1037D000F2E086E0DF011D928A95E9F7FA2C22CF0C
:1037E0004D875E878D859E850E94BF19882309F4C9
:1037F00070C0EE2009F46DC08091BD02803208F4E3
:10380000B5CF2091B8023091B9023A8329831B8247
:10381000DD82CC828E83CE010196A6CFC816D90652
:1038200038F1F601E81BF90BCF01F12C883C91052A
:1038300008F03DC0FE2CEE2009F44BC0651326C0F5
:10384000341324C08091BD0280FD17C0982F907F53
:10385000A1F0D80115968C931597903F09F45CCF91
:10386000982F907F905F8F70892B15968C9354CFF3
:10387000809590958C0D9D1DD8CF86E0F801A8EB22
:10388000B2E001900D928A95E1F7CCCE4D875E872C
:103890008D859E850E94BF19811168CF8091BD02E0
:1038A00081608093BD02C8010E947619BBCE7C2D39
:1038B000D98AC88A6E2D89890E94EE1973CFEE20AD
:1038C00041F04D875E878D859E850E94BF198111CD
:1038D0004DCFC8010E94761955CF1F93CF93DF9328
:1038E000CDB7DEB72C970FB6F894DEBF0FBECDBFB5
:1038F0004F83588769877A878B879C87CE01079685
:103900000E94A71A882309F442C09F8188852A85CE
:103910003B85232B39F08F3F19F481E09F3F19F04D
:1039200080E001C081E080FD08C04F815885698535
:103930007A858B859C850E94FD1916E08091860210
:1039400090918702891709F467C0819FC0011124F3
:1039500088579D4F0E94A71A882309F45DC0E09103
:1039600086021E9FF0011124E857FD4F40815181CE
:1039700062817381848195810E94FD198091860204
:1039800090E001968770992780938602D7CF86E0D2
:10399000FE013796DE01119601900D928A95E1F7AE
:1039A0009F8188852A853B85232B39F08F3F19F429
:1039B00081E09F3F19F080E001C081E080FDBDCF34
:1039C0002091870230E0C9010196877099274091C4
:1039D00086024817190699F096E0929FD001939FAE
:1039E000B00D1124A857BD4FFE01319601900D92E4
:1039F0009A95E1F7809387020E940D1A9ECF0E944C
:103A0000BB19109287021092860286E0E8EBF2E082
:103A1000DF011D928A95E9F72C960FB6F894DEBF68
:103A20000FBECDBFDF91CF911F910895EF92FF920E
:103A30000F931F93CF93DF938C01892B81F0F12C8F
:103A4000EE24E394E8012196F8018491843770F420
:103A5000843008F05FC08130B1F08230A1F1DF9195
:103A6000CF911F910F91FF90EF900895853709F442
:103A70004CC008F43DC09CE7980F903780F78F77D3
:103A80000E946D1649C00E5F1F4FFE01849190E2A7
:103A9000980F983060F48770FE2D01C0FF0F8A9553
:103AA000EAF78F2F0E9400200E94A81F02C00E94E8
:103AB00091158F2D815030F2EFE9FFE03197F1F74A
:103AC00000C00000F7CF0E5F1F4FFE01849190E20F
:103AD000980F983050F48770FE2D01C0FF0F8A9523
:103AE000EAF78F2F0E940620DFCF0E946D16E1CFEC
:103AF0000E5F1F4FFE01C491C150D8F28FE99FE0C5
:103B00000197F1F700C00000F7CF0E5F1F4FFE01D5
:103B1000F490CFCF0E9491158E01CBCF08950E94D3
:103B20008E1D6093F9027093FA028093FB029093CA
:103B3000FC020C94A71908950C948F1D0F931F93EA
:103B40000091F9021091FA022091FB023091FC02DF
:103B5000602B712B822B932B1F910F910C948F1D37
:103B60000F931F930091F9021091FA022091FB022A
:103B70003091FC0260237123822393231F910F91C4
:103B80000C948F1D0F931F930091F9021091FA026C
:103B90002091FB023091FC02602771278227932736
:103BA0001F910F910C948F1D0C948E1D0E94D41D9B
:103BB0006093F5027093F6028093F7029093F802F7
:103BC0000C94A71960E070E0CB010C94D61D0F9304
:103BD0001F9341E050E060E070E08A019B0104C067
:103BE000000F111F221F331F8A95D2F7C901B80198
:103BF0001F910F910C94D61D0F931F9341E050E03D
:103C000060E070E004C0440F551F661F771F8A955F
:103C1000D2F78091F5029091F602A091F702B0914F
:103C2000F8028A019B01082B192B2A2B3B2BC90177
:103C3000B8011F910F910C94D61D0F931F9341E073
:103C400050E060E070E004C0440F551F661F771F0E
:103C50008A95D2F7CB01BA016095709580959095C1
:103C60000091F5021091F6022091F7023091F802CE
:103C700060237123822393231F910F910C94D61DEF
:103C80000F931F9341E050E060E070E004C0440FE8
:103C9000551F661F771F8A95D2F78091F502909184
:103CA000F602A091F702B091F8028A019B01082761
:103CB00019272A273B27C901B8011F910F910C949E
:103CC000D61D0F931F930091F5021091F6022091DB
:103CD000F7023091F802602B712B822B932B1F91EE
:103CE0000F910C94D61D0F931F930091F502109124
:103CF000F6022091F7023091F802602371238223AB
:103D000093231F910F910C94D61D0F931F93009135
:103D1000F5021091F6022091F7023091F802602727
:103D20007127822793271F910F910C94D61D089518
:103D3000292F220F920F990F890F982F977071E0FA
:103D400001C0770F9A95EAF786958695869525E0C6
:103D5000829FC001112450E040E0A62FB0E0FC019A
:103D6000E40FF51FE254FD4F60819D01042E02C057
:103D7000369527950A94E2F7217021952627272367
:103D8000262720834F5F5F4F4530510541F7089547
:103D9000292F220F290F220F820F982F97708695B7
:103DA0008695869545E0849F9001112470E060E03F
:103DB00080E0F901E60FF71FE254FD4F408150E02B
:103DC000092E02C0569547950A94E2F7417055278F
:103DD000062E01C0440F0A94EAF7842B6F5F7F4FD1
:103DE0006530710531F70895BF92CF92DF92EF925F
:103DF000FF920F931F93CF93DF938C01C090F50236
:103E0000D090F602E090F702F090F8028091F9026B
:103E10009091FA02A091FB02B091FC02C82AD92A23
:103E2000EA2AFB2ACFE1D0E0BC2ED701C6010C2E36
:103E300004C0B695A795979587950A94D2F780FD0B
:103E40000EC0219788F7B12C8B2DDF91CF911F9158
:103E50000F91FF90EF90DF90CF90BF900895B80141
:103E60008C2F0E944D09019761F3EECFCF93DF9322
:103E7000EC010E94F41EBE01DF91CF910C944D091C
:103E80001F93CF93DF93EB0190918402992331F03C
:103E9000CB01DF91CF911F910C94361F882379F0CD
:103EA000CB010E94F41E182F682FCE010E94981E8D
:103EB000BE01812FDF91CF911F910C944D09CB0151
:103EC0000E94C81E182FF4CF682F80910201909194
:103ED00003010C94FE20682F809102019091030150
:103EE0000C94092180910201909103010C941421FA
:103EF0008091FD0285958595859508958091FD02B7
:103F00008770089598E0899F90011124622B609337
:103F1000FD020C94FC1D9091FD02809589238093F5
:103F2000FD02282F277061F4282F082E000C330B78
:103F30009217130629F08595859585950C941D1E7D
:103F400008959091FD02977081E009F480E0089552
:103F5000E0910201F0910301809121038083E091BF
:103F60000201F0910301808190912003892B8083CD
:103F7000E0910201F0910301808190911F03892B50
:103F800080839091FE02992381F0E0910201F091EB
:103F900003018081892B808380910201909103012C
:103FA0000E94A12081111092FE0280910201909145
:103FB00003010C9429148091210308959091210309
:103FC000892B809321030895982F90958091210348
:103FD00089238093210308951092210308959091DD
:103FE0002003892B809320030895982F909580912A
:103FF00020038923809320030895109220030895BD
:1040000090911F03892B80931F030895982F9095FB
:1040100080911F03892380931F03089510921F032B
:1040200008958093FE0208951092FE020895CF92A3
:10403000DF92EF92FF926C01EE24FF2420E0C11486
:10404000D104E104F10419F0C701B60120E1C72E43
:10405000D82EE92EFF24C114D104E104F10419F093
:10406000285FC701B6016B017C0154E0F694E79428
:10407000D794C7945A95D1F7C114D104E104F1043F
:1040800019F02C5FC701B6016B017C0142E0F69488
:10409000E794D794C7944A95D1F7C114D104E104A9
:1040A000F10419F02E5FC701B601969587957795B3
:1040B0006795672B682B692B09F02F5F822FFF9084
:1040C000EF90DF90CF9008956DEE7EEF90E080E06E
:1040D0000E94FE2C60E082E090E00E94E02C60E014
:1040E00083E090E00E94E02C60E084E090E00E9499
:1040F000E02C60E085E090E00E94E02C40E050E0A1
:10410000BA0188E090E00C94F22C90E080E00E94EC
:10411000DA2C21E08D3E9E4F09F020E0822F089599
:1041200082E090E00C94CC2C83E090E00C94CC2CBA
:1041300084E090E00C94CC2C682F84E090E00C9408
:10414000E02CFC0131969C01205E3F4F80E0919174
:1041500091118F5FE217F307D1F708959C01FC01DD
:1041600032969FEF80E04191461751F09F3F19F43E
:10417000411101C0982F8F5F8E31A9F79F3F09F43D
:104180000895290F311D97FD3A95F901628308952D
:10419000FC01329680962191261303C0DF0111970E
:1041A0001C92E817F907B9F70895E62FE695E6950A
:1041B000E695EF3169F0E80FF92FF11D677021E006
:1041C00030E001C0220F6A95EAF78181822B81835A
:1041D0000895E62FE695E695E695EF3171F0E80F44
:1041E000F92FF11D677021E030E001C0220F6A95C0
:1041F000EAF72095818128232183089520911301D6
:10420000222329F020919C0327FD0C94D5200C94A7
:10421000AE2020911301222329F020919C0327FD39
:104220000C94E9200C94C820FC01319680961192E0
:10423000E817F907E1F708958091A203843039F176
:104240001092230388E190E020E40FB6F894A8953B
:10425000809360000FBE2093600080E00E942E09D2
:1042600083B7817F846083BF83B7816083BF789485
:10427000889583B78E7F83BF0FB6F894A8958091F9
:104280006000886180936000109260000FBE089506
:104290000895CF930E941D050E946A050E9448213F
:1042A000C0E08C2F0E944306811105C0CF5FCE3045
:1042B000C1F7CF91089581E0FCCF0E94BB190E9405
:1042C0001D140C942E091F920F920FB60F921124F9
:1042D0008F939F93AF93BF9380912303811113C05A
:1042E0008091980390919903A0919A03B0919B03B8
:1042F0004196A11DB11D8093980390939903A093BB
:104300009A03B0939B03BF91AF919F918F910F90B0
:104310000FBE0F901F90189582E084BD93E095BD6D
:104320009AEF97BD80936E0008952FB7F89480910F
:10433000980390919903A0919A03B0919B032FBF8A
:104340000895CF92DF92EF92FF920F931F932FB7B2
:10435000F894409198035091990360919A03709159
:104360009B032FBF6A017B01EE24FF248C0130E008
:1043700020E0C016D106E206F30650F0481B590BA8
:10438000CA011F910F91FF90EF90DF90CF90089599
:1043900041505109F3CF78941F920F920FB60F92AC
:1043A00011248F939F93AF93BF9380919803909123
:1043B0009903A0919A03B0919B030196A11DB11D91
:1043C0008093980390939903A0939A03B0939B03CF
:1043D000BF91AF919F918F910F900FBE0F901F9043
:1043E00018950E946B28F8942FEF87EA91E62150E8
:1043F00080409040E1F700C0000087E090EBDC01D6
:104400008093AB039093AC03A093AD03B093AE0342
:1044100088E19CE00FB6F894A895809360000FBEE9
:1044200090936000FFCF0E948520811102C00E94FE
:1044300064200E949020809322030E94982090E0A4
:1044400090939D0380939C030E949420682F70E0BA
:1044500090E080E00C949C1D8091270380FF12C0A7
:104460006091070185E0689FB001112475956795FB
:104470007595679560387105A8F561157105A1F10D
:10448000862F089581FF09C06091070185E0689F2C
:10449000B001112475956795EDCF82FF07C060913B
:1044A000070185E0689FB0011124E4CF2091280323
:1044B0002223A9F0909106016091070185E0689F91
:1044C000B00111242917B0F6269FA001279F500D97
:1044D0001124692F70E0CA010E94B22CCBCF65E095
:1044E00070E0CECF8FE7089581E008958091270393
:1044F00080FF0CC06091050170E07595679575951A
:1045000067956115710549F1862F089581FF06C0F1
:104510006091050170E075956795F3CF6091050195
:1045200082FD0BC0909128039923A1F060910401B2
:1045300080910501961738F0682F70E0603871059A
:1045400000F38FE70895899FC001112470E00E9455
:10455000B22CF4CF61E070E0D7CF81E00895803FC6
:1045600031F40E942C22819580932B030895813F82
:1045700019F40E942C22F8CF823F31F40E942C22A1
:10458000819580932A030895833F19F40E942C2279
:10459000F8CF893F29F40E94762280932C03089556
:1045A0008A3F21F40E9476228195F7CF8B3F31F428
:1045B0000E947622819580932D0308958C3F19F4F3
:1045C0000E947622F8CF843F31F4809129038160E4
:1045D000809329030895853F21F480912903826007
:1045E000F7CF863F21F4809129038460F1CF873F84
:1045F00021F4809129038860EBCF883F21F48091DA
:1046000029038061E5CF8D3F31F4809127038160DC
:104610008093270308958E3F21F4809127038260C1
:10462000F7CF8F3FB9F7809127038460F1CF803FA8
:10463000C1F480912B0387FD10922B0380912A03F4
:1046400081110EC080912B0381110AC080912C032F
:10465000811106C080912D03811102C010922803A0
:104660000895813F29F480912B0318162CF3E6CF8F
:1046700090912A03823F29F497FFE0CF10922A03FA
:10468000DDCF833F19F41916CCF3D8CF893F39F425
:1046900080912C03181694F610922C03CFCF8A3FEA
:1046A00029F480912C0387FFC9CFF6CF8B3F39F4D3
:1046B00080912D0387FFC2CF10922D03BFCF8C3F77
:1046C00029F480912D031816BCF3B8CF843F31F440
:1046D000809129038E7F80932903B0CF853F21F4F9
:1046E000809129038D7FF7CF863F21F480912903A4
:1046F0008B7FF1CF873F21F480912903877FEBCF18
:10470000883F21F4809129038F7EE5CF8D3F31F4DE
:10471000809127038E7F8093270390CF8E3F21F4D3
:10472000809127038D7FF7CF8F3F09F087CF80914E
:1047300027038B7FF0CF89E293E00E9434140E941C
:104740009521909325038093240308951F93CF937D
:10475000DF9380912403909125030E94A121AC0155
:10476000909128032091080130E0911106C020911A
:1047700026038AE0289F900111244217530780F0F6
:1047800080912A03C0912B0310912C03D0912D030B
:1047900081110AC0C11178C0111176C0D11174C045
:1047A000DF91CF911F9108959F3F19F09F5F9093E4
:1047B0002803181624F40E942C2280932A03809147
:1047C0002A0387FF05C00E942C22819580932A032B
:1047D0001C1624F40E942C2280932B0380912B031F
:1047E00087FF05C00E942C22819580932B03609146
:1047F0002A03662331F1C0912B03CC2311F1062E3D
:10480000000C770B880B990B0E94A52B23E333E355
:1048100043E35FE30E94092C0E946D2B60932A03FF
:104820006C2FCC0F770B880B990B0E94A52B23E3E1
:1048300033E343E35FE30E94092C0E946D2B6093F6
:104840002B03111624F40E94762280932C0380916E
:104850002C0387FF05C00E947622819580932C034C
:104860001D1624F40E94762280932D0380912D033F
:1048700087FF05C00E947622819580932D03DF91EA
:10488000CF911F910C949B239F3F09F08FCFA0CF16
:1048900085E0E9E2F3E0DF011D928A95E9F71092E5
:1048A000280310922703089580914E0308950F93D3
:1048B0001F93CF93DF9300D01F92CDB7DEB78C014B
:1048C0000E94BE26823011F0843019F583E089837E
:1048D0001B830A838093E9008FEF9091E800815059
:1048E00095FD06C095ED9A95F1F700008111F5CF81
:1048F0008091E80085FF0DC050E040E063E070E08B
:10490000CE0101960E94DB268091E8008E7780938D
:10491000E8000F900F900F90DF91CF911F910F91B2
:104920000895CF93DF9300D01F92CDB7DEB72091CB
:10493000A203243031F522E02983805891099B831A
:104940008A8383E08093E9008FEF9091E8008150A3
:1049500095FD06C095ED9A95F1F700008111F5CF10
:104960008091E80085FF0DC050E040E063E070E01A
:10497000CE0101960E94DB268091E8008E7780931D
:10498000E8000F900F900F90DF91CF910895CF9393
:10499000DF93EC010E94BE26823011F08430F9F4DE
:1049A00082E08093E9008FEF9091E800815095FDBF
:1049B00006C095ED9A95F1F700008111F5CF809131
:1049C000E80085FF0CC050E040E065E070E0CE01FB
:1049D0000E94DB268091E8008E778093E800DF91CB
:1049E000CF910895CF93DF93EC010E94BE268230D1
:1049F00011F08430F9F4809113018823F1F0809153
:104A00009C0387FF1AC084E08093E9008FEF9091A8
:104A1000E800815095FD06C095E19A95F1F70000F8
:104A20008111F5CF8091E80050E040E060E270E055
:104A300085FD1AC0DF91CF91089581E08093E90050
:104A40008FEF9091E800815095FD06C095ED9A9505
:104A5000F1F700008111F5CF8091E80085FFEACFE2
:104A600050E040E068E070E0CE010E94DB268091DB
:104A7000E8008E778093E80080E2FE01AEE2B3E0CA
:104A800001900D928A95E1F7D5CF8091A103811114
:104A900009C00E946B280E94C8288091E2008460AF
:104AA0008093E20008951092A10308950895089557
:104AB0000C945D2142E061EC81E00E94E92742E034
:104AC00061EC82E00E94E92742E061EC83E00E9411
:104AD000E92742E261EC84E00C94E9278091A40389
:104AE000833009F455C030F4813071F1823009F41B
:104AF00091C008958A3009F47DC08B3009F463C0F9
:104B0000893009F044C08091A303813209F03FC08D
:104B10008091A7039091A803009711F00397B9F52E
:104B20008091E800877F8093E8008091E80082FF11
:104B30002AC08091F10080934E038091E8008B772A
:104B40008093E8000C941D288091A303813AF9F426
:104B50008091E800877F8093E8008091A70390917F
:104B6000A803892B61F460E28EE293E070E00E947A
:104B70002A278091E8008B778093E800089560E011
:104B800090E080E0F3CF8091A2038111CECF089511
:104B90008091A303813AD9F78091A7039091A8034C
:104BA000892BA9F78091E800877F8093E8008091A6
:104BB000E80080FFFCCF809113018093F100809189
:104BC000E8008E77BDCF8091A303813201F78091F9
:104BD000A7039091A803892BD1F68091E800877FE5
:104BE0008093E8000E941D288091A5038093130103
:104BF0000C94BB198091A303813249F68091E8009F
:104C0000877F8093E8000E941D288091A6038093EF
:104C10004F0308958091A303813A09F0B8CF8091A2
:104C2000E800877F8093E8008091E80080FFFCCF58
:104C300080914F03C2CF84B7877F84BF0FB6F894AB
:104C4000A895809160008861809360001092600058
:104C50000FBE80E880936100109261000E946C1486
:104C60000E946B280E94C8288091E2008460809393
:104C7000E20078940E94512B0E946E1489E091E02A
:104C80000E9418148091A203853029F00E947614A6
:104C90000E94E113F7CF0E941C218091A00388237A
:104CA00089F30E944921882369F30E94C526EACF2F
:104CB000292F33272330310579F158F4213031057C
:104CC000F1F02230310519F190E080E030E020E091
:104CD0001AC02132310599F122323105A9F7643029
:104CE000710590F7FB01EE0FFF1FE054FE4F20818E
:104CF000318164547E4FFB01808190E004C082E1E9
:104D000090E02EE637E0FA013183208308958DE6A6
:104D100090E021E037E0F7CF99278130910561F0ED
:104D200028F0029789F6EDECF6E002C0EDEFF6E030
:104D3000849190E09F01E7CFE5EEF6E0F9CF643093
:104D4000710508F0C1CF660F771FFB01E853FE4FD6
:104D50002081318189E090E0D6CF0895CF93C82F8C
:104D60000E94AD26C0935003CF9108958091A20375
:104D7000843011F081E0089582E00895809150031D
:104D8000811102C00C94B626089580E189BD82E1AC
:104D900089BD09B400FEFDCF8091D8008F7D80933E
:104DA000D8008091E00082608093E0008091E00074
:104DB00081FDFCCF0895AF92BF92CF92DF92FF9218
:104DC0000F931F93CF93DF936C01EB018A010E9435
:104DD0003C28F82E811123C00115110539F0F80186
:104DE00080819181C81BD90BC80ED91EB12CA12C72
:104DF0002097A9F08091E80085FD22C08091E8000D
:104E00008E778093E80001151105A1F0F8018081EB
:104E10009181A80EB91EB182A08285E0F82E8F2D57
:104E2000DF91CF911F910F91FF90DF90CF90BF90B6
:104E3000AF9008950E943C288823D1F2F82EEFCF3E
:104E4000F60181916F018093F1002197FFEFAF1A76
:104E5000BF0ACECFFC018091A9039091AA038617C7
:104E60009707A0F06115710529F49091E8009E77ED
:104E70009093E80090E06115710551F4911108C01C
:104E80008091E80082FF35C080E00895BC01F2CF38
:104E90008091A2038823C9F18530C9F18091E8008F
:104EA00083FD31C08091E80082FDEACF8091E80067
:104EB00080FFE1CF2091F3008091F200322F282F64
:104EC0006115710519F02830310558F091E028304E
:104ED000310509F090E02091E8002E772093E8005A
:104EE000CACF81918093F100615071092F5F3F4FCC
:104EF000E7CF8091A203882341F0853041F0809173
:104F0000E80083FFBDCF81E0089582E0089583E04B
:104F10000895FC018091A9039091AA038617970731
:104F2000A0F06115710529F48091E8008E778093D7
:104F3000E80090E06115710551F4911108C080916D
:104F4000E80082FF36C080E00895BC01F2CF809176
:104F5000A2038823D1F18530D1F18091E80083FD4F
:104F600032C08091E80082FDEACF8091E80080FFA6
:104F7000E1CF2091F3008091F200322F282F6115AC
:104F8000710519F02830310558F091E028303105CD
:104F900009F090E08091E8008E778093E800CACF16
:104FA00084918093F1003196615071092F5F3F4FDA
:104FB000E6CF8091A203882341F0853041F08091B3
:104FC000E80083FFBCCF81E0089582E0089583E08C
:104FD0000895982F973028F08F708093E90081E032
:104FE00008959093E900242F762F50E0981731F020
:104FF0007091EC002091ED005091F00021FD02C075
:105000009F5FE8CF3091EB003E7F3093EB00309113
:10501000ED003D7F3093ED003091EB003160309337
:10502000EB007093EC002093ED005093F000209182
:10503000EE0027FDE5CF80E008958091A30387FF70
:1050400013C08091E80082FF06C08091E8008B7752
:105050008093E80004C08091A2038111F2CF0895EB
:105060008091A2038823D9F38091E80080FFF8CFD4
:105070008091E8008E77ECCF2091E4003091E5003C
:1050800085E69091EC0090FF06C09091E80090FFBB
:1050900006C080E008959091E80092FDFACF9091CB
:1050A000A203992391F0953091F09091EB0095FD3A
:1050B00010C04091E4005091E5002417350709F332
:1050C00081509A01F1F684E0089582E0089583E02A
:1050D000089581E008950E94D9280E94E128E0EE19
:1050E000F0E0808181608083E8EDF0E080818F775F
:1050F000808319BCA7EDB0E08C918E7F8C9380816A
:105100008F7E80831092A10308950F931F93CF93F6
:10511000DF930E94D9280E94E128C8EDD0E0888161
:105120008F77888388818068888388818F7D888352
:1051300019BC1092A20310929E031092A003109229
:105140009F0300EE10E0F80180818B7F80838881CF
:105150008160888342E060E080E00E94E927E1EE20
:10516000F0E080818E7F8083E2EEF0E080818160DC
:105170008083808188608083F80180818E7F808336
:10518000888180618883DF91CF911F910F9108956D
:10519000E8EDF0E080818F7E8083E7EDF0E08081B4
:1051A0008160808384E082BF81E08093A1030C94BE
:1051B0008528E8EDF0E080818E7F80831092E20008
:1051C00008951092DA001092E10008951F920F9254
:1051D0000FB60F9211242F933F934F935F936F93CA
:1051E0007F938F939F93AF93BF93EF93FF938091A0
:1051F000E10082FF0BC08091E20082FF07C0809136
:10520000E1008B7F8093E1000E94502B8091DA00B7
:1052100080FF19C08091D80080FF15C08091DA000E
:105220008E7F8093DA008091D90080FF94C080E166
:1052300089BD82E189BD09B400FEFDCF81E0809384
:10524000A2030E9445258091E10080FF19C0809152
:10525000E20080FF15C08091E2008E7F8093E20023
:105260008091E20080618093E2008091D8008062AA
:105270008093D80019BC85E08093A2030E94572533
:105280008091E10084FF29C08091E20084FF25C065
:1052900080E189BD82E189BD09B400FEFDCF809126
:1052A000D8008F7D8093D8008091E1008F7E80931D
:1052B000E1008091E2008F7E8093E2008091E20025
:1052C00081608093E20080919E03882309F449C0A5
:1052D00084E08093A2030E9458258091E10083FF1F
:1052E00029C08091E20083FF25C08091E100877F83
:1052F0008093E10082E08093A20310929E0380914C
:10530000E1008E7F8093E1008091E2008E7F8093A8
:10531000E2008091E20080618093E20042E060E080
:1053200080E00E94E9278091F00088608093F0007F
:105330000E945625FF91EF91BF91AF919F918F9160
:105340007F916F915F914F913F912F910F900FBE81
:105350000F901F90189519BC1092A2030E9453251C
:1053600072CF8091E30087FD02C081E0B2CF83E07D
:10537000B0CF1F920F920FB60F9211242F933F932D
:105380004F935F936F937F938F939F93AF93BF934D
:10539000CF93EF93FF93C091E900CF708091EC0021
:1053A0001092E9008091F000877F8093F00078945C
:1053B0000E94F5291092E9008091F00088608093A6
:1053C000F000C093E900FF91EF91CF91BF91AF91B1
:1053D0009F918F917F916F915F914F913F912F910D
:1053E0000F900FBE0F901F9018951F93CF93DF93D0
:1053F000CDB7DEB7AA970FB6F894DEBF0FBECDBF0C
:10540000E3EAF3E08091F100819323E0EB3AF207C5
:10541000C9F70E946E258091E80083FF44C0809107
:10542000A3039091A4039A3008F03DC0E92FF0E067
:10543000E45EF54D0C94C62C262A4C2A532A4C2A9D
:10544000532AAA2ACC2A532A232B302B803889F0BE
:10545000823849F58091A7038F70873020F58093BB
:10546000E9008091EB0085FB882780F91092E90024
:1054700006C080919F039091A0039111826090914A
:10548000E800977F9093E8008093F1001092F1007C
:105490008091E8008E772DC0282F2D7F21F488235E
:1054A000D1F0823059F18091E80083FF0AC08091E9
:1054B000E800877F8093E8008091EB008062809312
:1054C000EB00AA960FB6F894DEBF0FBECDBFDF91FA
:1054D000CF911F9108958091A503813021F79330DA
:1054E00009F080E08093A0031092E9008091E80029
:1054F000877F8093E8000E941D28D5CF8091A50367
:105500008111F2CF8091A7038F702FEF280F2630E3
:1055100050F68093E9002091EB0020FFE5CF933017
:1055200031F48091EB0080628093EB00DDCF9091AD
:10553000EB0090619093EB0021E030E001C0220F7E
:105540008A95EAF72093EA001092EA008091EB0036
:105550008860EACF8111A7CF1091A5031F778091B2
:10556000E3008078812B8093E3008091E800877FBF
:105570008093E8000E941D288091E80080FFFCCF06
:105580008091E30080688093E30083E0111101C003
:1055900082E08093A20387CF8058823008F083CFC7
:1055A0008091A5039091A6038C3D23E09207A1F57D
:1055B00083E08A838AE289834FB7F894DE011396E9
:1055C00020E03EE051E2E32FF0E050935700E491F9
:1055D00020FF03C0E295EF703F5FEF708E2F90E0E9
:1055E000EA30C0F0C7968D939D932F5F243159F711
:1055F0004FBF8091E800877F8093E8006AE270E007
:10560000CE0101960E942A278091E8008B77809333
:10561000E80049CFC096E7CF6091A7037091A80337
:10562000AE014F5F5F4F0E945826BC01892B09F4E1
:105630003ACF9091E800977F9093E80089819A8112
:105640000E948927E1CF803809F02DCF8091E800B2
:10565000877F8093E80080919E038093F10018CFAC
:10566000811121CF9091A503923008F01CCF809139
:10567000E800877F8093E80090939E030E941D2896
:1056800080919E03882331F084E08093A2030E94DE
:105690005A2509CF8091E30087FDF6CF81E0F5CF51
:1056A0000895CF938091A203882399F0C091E900D7
:1056B000CF708091EC0080FD0EC080E0C82B10926E
:1056C000E9008091E80083FD0E94F529CF70C09326
:1056D000E900CF91089580E8F1CF0E94742B68947F
:1056E000B1110C94032C08950E94E82B88F09F5769
:1056F00098F0B92F9927B751B0F0E1F0660F771FF6
:10570000881F991F1AF0BA95C9F714C0B13091F0EB
:105710000E94022CB1E008950C94022C672F782F80
:105720008827B85F39F0B93FCCF3869577956795B0
:10573000B395D9F73EF490958095709561957F4F1C
:105740008F4F9F4F0895E89409C097FB3EF49095C2
:105750008095709561957F4F8F4F9F4F9923A9F04A
:10576000F92F96E9BB279395F695879577956795D9
:10577000B795F111F8CFFAF4BB0F11F460FF1BC01D
:105780006F5F7F4F8F4F9F4F16C0882311F096E9B0
:1057900011C0772321F09EE8872F762F05C066235E
:1057A00071F096E8862F70E060E02AF09A95660F17
:1057B000771F881FDAF7880F9695879597F90895D0
:1057C00057FD9058440F551F59F05F3F71F04795B2
:1057D000880F97FB991F61F09F3F79F08795089597
:1057E000121613061406551FF2CF4695F1DF08C0B6
:1057F000161617061806991FF1CF869571056105D3
:1058000008940895E894BB2766277727CB0197F97A
:1058100008950E941C2C0C948D2C0E947F2C38F033
:105820000E94862C20F0952311F00C94762C0C9479
:105830007C2C11240C94032C0E94E02B70F3959F78
:10584000C1F3950F50E0551F629FF001729FBB2777
:10585000F00DB11D639FAA27F00DB11DAA1F649F13
:105860006627B00DA11D661F829F2227B00DA11DC6
:10587000621F739FB00DA11D621F839FA00D611D4C
:10588000221F749F3327A00D611D231F849F600D6D
:10589000211D822F762F6A2F11249F5750409AF096
:1058A000F1F088234AF0EE0FFF1FBB1F661F771F22
:1058B000881F91505040A9F79E3F510580F00C94ED
:1058C000762C0C94032C5F3FE4F3983ED4F386953A
:1058D00077956795B795F795E7959F5FC1F7FE2B8D
:1058E000880F911D9695879597F9089597F99F6769
:1058F00080E870E060E008959FEF80EC0895002458
:105900000A941616170618060906089500240A9424
:1059100012161306140605060895092E0394000CAA
:1059200011F4882352F0BB0F40F4BF2B11F460FF39
:1059300004C06F5F7F4F8F4F9F4F0895AA1BBB1B03
:1059400051E107C0AA1FBB1FA617B70710F0A61B7F
:10595000B70B881F991F5A95A9F780959095BC01A0
:10596000CD01089597FB072E16F4009407D077FD1C
:1059700009D00E949E2C07FC05D03EF4909581959D
:105980009F4F0895709561957F4F0895EE0FFF1F0B
:105990000590F491E02D0994F999FECF92BD81BD57
:1059A000F89A992780B50895A6E1B0E044E050E068
:1059B0000C94062DA8E1B0E042E050E00C94062DD6
:1059C000262FF999FECF92BD81BDF89A019700B4B8
:1059D000021639F01FBA20BD0FB6F894FA9AF99A58
:1059E0000FBE08950396272F0E94E12C0E94E02C01
:1059F000252F0E94E12C242F0C94E12C0196272FB7
:105A00000E94E12C0C94E02CDC01CB01FC01F99903
:105A1000FECF06C0F2BDE1BDF89A319600B40D92FA
:0C5A200041505040B8F70895F894FFCFB3
:105A2C0020FFFF0228083C07145424F224C72491B9
:105A3C0024572401000D010D020D030D040D050D5D
:105A4C00000C010C020C030C040C050C000B010BDC
:105A5C00020B030B040B050B000A010A020A030AD2
:105A6C00040A050A000901090209030904090509C8
:105A7C0000080108020803080408050800070107CC
:105A8C0002070307040705070006010602060306C2
:105A9C0004060506000501050205030504050505B8
:105AAC0000040104020403040404050400030103BC
:105ABC0002030303040305030002010202020302B2
:105ACC0004020502000101010201030104010501A8
:105ADC00000001000200030004000500404D3639AF
:105AEC003C08EF07B907800713072C0745075E072B
:00000001FF
Plusieurs points ont mené à cette configuration :
– les touches de lettre/ponctuation sont symétriquement équilibrées (Ç et W à gauche) ;
– les touches modificatrices de composition (en bleu) sont placées en double sous les pouces pour laisser les quatre autres doigts libres ;
– les touches modificatrices de commande (en jaune) sont placées l’une sous l’auriculaire et l’autre sous le pouce pour laisser un maximum de liberté aux autres doigts, notamment en cas d’usage combiné ;
– le niveau 1 comprend les pavés directionnel et numérique ainsi que les raccourcis généraux courants, accessibles par une touche modificatrice verrou sous le pouce ;
– le niveau 2, un peu moins accessible, comprend les douze fonctions classiques, un pavé directionnel auxiliaire (sous la main droite, pour une utilisation vidéoludique sans la souris, contrairement au pavé principal), ainsi que les contrôles de la souris (dont je n’ai pas vraiment encore l’utilité) ;
– le niveau 3, peu accessible (seulement par une alternance des touches des niveaux 1 et 2), sert uniquement à reprogrammer le clavier et à gérer les diodes placées dessous.
Quelques remarques sur des éléments moins stabilisés :
– les quatre touches linguistiques (en violet), dont une qui surdéfinit la touche de menu par le système d’exploitation, peuvent avoir d’autres usages en dehors du japonais…
– les quatre touches directionnelles du bas ont été ajoutées récemment parce que j’avais ces places libres, j’ai tendance à les utiliser avec l’index après une petite rotation du poignet pour des tâches rapides sur un axe unique (sinon j’utilise le pavé complet au niveau 1), avec l’axe vertical à gauche près de la touche entrée supérieure pour la navigation dans l’historique du terminal, et l’axe horizontal près des touches de correction pour faciliter son positionnement ;
– la touche d’espace est à gauche uniquement parce que je crois que je ne l’utilise qu’avec le pouce gauche (sûrement à cause de l’usage vidéoludique combinant main gauche sur clavier et main droite sur souris) ; je ne sais pas si placer l’espace en double symétriquement sous les deux pouces (laissant ainsi uniquement l’entrée supérieure) peut valoir le coup…
– évidemment, il est toujours possible de permuter certaines touches modificatrices/linguistiques/de niveau…
Je demande donc vos avis, notamment sur ce qui pourrait être améliorable, sachant que je programme régulièrement (en Python, principalement, et souvent en français ; j’utilise d’ailleurs rarement la touche W), que j’écris souvent (la plupart du temps en français, parfois en anglais ou en japonais) et qu’il me faut un accès facile à des caractères spéciaux, notamment l’API (à configurer ultérieurement).
Voilà !
Dernière modification par Anyndel (3/10/2017 18:14:40)
Hors ligne
Bonjour et bienvenue à toi (je n’ai pas eu l’occasion de te le dire dans ton topic dédié) !
Intéressant,
Perso ce qui me dérange le plus c’est le Ç à gauche, car souvent utilisé avec A et là ils sont sur le même doigt.
J’aime bien ta méthode pour passer en fn3 sans pour autant utiliser un espace supplémentaire.
Je remarque que tu utilises une version 1.1 légèrement modifié (déplacement du rayé sur J), j’ai du mal à me faire au ß comme terminateur pour le latin étendu, mais bon ça a été voté.
Comment fais-tu la bascule linguistique avec la touche app ? Quand je mets l’ordi (le Windows 7 du boulot, pas encore testé sur le 10 de mon ordi perso) en japonnais (pas IME, le full jap) ça reste bloqué en qwerty US, même pas le qwerty imprimé sur les claviers japs, impossible de taper des kanas, mais pas de soucis en passant par l’IME, sauf que c’était pas le but de mon test, ayant comme toi mappé une partie des touches des claviers JIS (mais sur lesquels j’ai quelque chose sur ma variante BÉPO/BÓPO).
bépoète depuis mars 2015
Hors ligne
Pour le Ç, c’est bien vrai, il faudrait voir avec quelle lettre de l’autre extrême je pourrais la permuter (W, Z ou M)…
Pour la légère modification, ce n’en est pas une, en fait, je me suis trompé d’une colonne en recopiant la disposition du site (car je me sers de cette image comme d’un aide-mémoire), au temps pour moi ! Comment peut-on modifier ses précédents messages ?
Pour la bascule, je ne peux pas répondre à tes questions parce que je suis sur Linux : j’utilise ibus avec anthy, ce qui me permet de saisir du japonais (avec tous les modes de saisie) en bépo en pouvant utiliser les quatre touches (finement configurables), lesquelles me servent par exemple actuellement à changer de langue, à changer de mode de saisie, à naviguer dans la liste des candidats du dictionnaire et à convertir cycliquement la sélection entre tous les types de caractère…
Hors ligne
Ah, OK.
Sous macOS je n’ai pas le problème, mais je n’ai pas encore testé avec les touches linguistiques.
C’est donc un problème Windows de plus.
Pour pouvoir éditer un message il faut en avoir posté au minimum 5, c’est une mesure anti-spam. J’ai changé ton status et tu peux maintenant profiter pleinement du forum (modifier tes messages et mettre des liens).
bépoète depuis mars 2015
Hors ligne
Bonjour,
Je suis utilisateur depuis plusieurs années d'un Ergodox.
J'ai mis dessus un firmware QMK que je trouve vraiment parfait et très complet.
Je me repenche sur la question Bépo et je suis un peu perplexe.
En effet. J'ai grandement customisé le layout de mon clavier mais c'est surtout pour les placements des touches de contrôle (Shift/Ctrl/Alt/AltGr/Espace/...).
La grande partie de la customisation se situe au niveau de mon Layer1 qui me permet tous les déplacements en tous sens, sélections de texte, Alt-tab facile, copy/cut/paste, F1-F12, Pavé Numérique, le tout sur un seul layer.
Si cela intéresse quelqu'un, je pourrais décrire cela (et donner le moyen d'y arriver) dans un fil séparé (vu qu'il n'est pas vraiment lié au Bépo).
Ce n'est pas vraiment le but de ce forum mais d'un autre coté, vous cherchez à rendre votre utilisation ergonomique et pouvoir faire un max (pas seulement écrire) sans trop bouger les mains rentre dans le débat.
Pour ce qui est des touches de "caractère", je suis, à peu de chose près, resté dans la disposition de base du clavier (sur le layer0).
Actuellement, mon PC Win10 est dans ses "regional settings" sur AZERTY.
Pour arriver aux dispositions documentées dans ce fil, travaillez-vous uniquement sur la partie soft de l'OS ou bien travaillez-vous au niveau du firmware du clavier?
Si vous travaillez au niveau du firmware du clavier, cela veut dire que quand vous vous retrouvez soudain sur une machine ayant comme regional settings AZERTY ou QWERTY (par exemple en faisant un Remote Desktop), vous êtes tout perdu, non?
Pouvez-vous éclairer ma lanterne?
Hors ligne
Bonjour,
La personnalisation du clavier se fait uniquement coté firmware, si c'est du coté des pilotes on affiche ça comme un dérivé du Bépo.
Si on change les options linguistique du PC (Bépo => Azerty) on est nullement perdu, seulement ce sont les glyphes qui sont réarrangé (lettres, chiffres et autre caractère imprimable) et les touches mortes évidemment.
En ce qui concerne les accès a distance cela dépend fortement du logiciel. Par exemple avec Putty/OpenSSH il transfert les caractères et non les code de touches, par contre pour le logiciel de RDP par défaut sous Win il transmet les code touches, donc le caractère affiché dépend des options linguistique du système cible.
Ton agencement de clavier m'intéresse pour comprendre comment tu arrive a avoir autant de possibilité sur une seule couche.
Hors ligne
J'ai bossé dans des putty/ssh pendant 13 ans... Que du bonheur.
Hélas, mon boulot actuel me force en grande majorité de me connecter sur des machines Windows et les moyens sont divers (RDP, TeamViewer, RAdmin, VNC, ...).
Actuellement:
- Les Regional Settings de mon Win10 sont "Français(Belgique)".
- Mon Ergodox a un layout "QWERTY".
Donc... Pour taper un "q", je presse la touche sous l'auriculaire gauche.
Mon Ergodox envoie le scancode KC_A.
Win10 interprète cela et
- inscrit un "q" dans ce formulaire.
- ou transmet le caractère "q" par Putty sur le host distant.
- les choses se corsent avec les connections distante vers host windows:
-- Parfois (TeamViewer), le host distant reçoit un "q".
-- Parfois (RDP), le host distant reste fidèles à ses regional settings (dans mon cas, presque toujours QWERTY) et interpête cela comme un "a".
-- Parfois, très bizarre, je me retrouve avec un mix QWERTY pour les caractères et AZERTY pour les symboles (je n'ai jamais bien compris ce cas).
Je pense que je vais:
- Repasser les regional settings de mon Win10 en QWERTY. Cela enlèvera déjà un niveau de "traduction" lors des connection remote "windows".
- Implémenter le Bépo (ou Béop ou autre) directement dans le clavier (en gardant précieusement mon layer0 actuel en backup).
En pressant l'auriculaire gauche, l'Ergodox enverra donc un KC_A qui sera traduit en "a" par Win10.
La difficulté vient que les différences ne se limitent pas à des déplacements des touches qwerty pour faire un bépo.
Si nous prenons le cas du "+" (en Majuscule en haut tout à droite, près du backspace), comment faire pour que l'Ergodox envoie le scan de la touche "=" (du querty) mais avec le shift pour donc communiquer un "+" en querty ?
J'ai quelques idées mais voudrais laisser venir vos idées.
Le challenge étant que, par exemple, on ne peut pas aveuglément envoyer "Shift-down"-"="-"Shift-up" car je pourrais avoir déjà la touche shift enfoncée et qu'il faudrait donc ne pas faire le "shift-up".
Je suppose que ce que je viens de dire est incompréhensible ;-)
Je pense que je m'en vais de ce pas fouiller le forum pour trouver des exemples de keymap.c d'autres utilisateurs pour voir comment vous avez procédé.
Je promets de documenter mes deux layouts. J'ai mis des années à les mettre en place et je suis maintenant très satisfait.
Je dois les paufiner un peu pour mon futur probable passage vers un clavier Dactyl. Le changement majeur étant la perte des 6 touches verticales (et donc le déménagement des fonctions) mais en même temps une bien meilleure dispositions des touches pour le pouce et de la rangée du bas. Le bilan s'avère positif.
Hors ligne
Bonjour,
Nos claviers sont également codés en QWERTY et ce sont les préférences linguisitques qui traduisent en BÉPO, aucun soucis quand on passe en QWERTY ou AZERTY, les rares lettres qui on étés déplacés correspondent à des caractères spéciaux sur ces deux layouts donc rarement utilisés.
Pour coder le BÉPO en dur dans le claviers en gardant le PC en QWERTY je ne pense pas que ce soit possible, ne serait-ce que pour les caractères accentués (avant même d’atteidre l’exemple que tu as mentionné).
Voici mon Keymap.c actuel qui corresponds à peu de choses près à l’image tout en haute de cette page.
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include "keymap_german.h"
#include "keymap_nordic.h"
#define M_COPY M(1)
#define M_EUR M(2)
#define M_AHK M(3)
#define M_USD M(4)
#define M_CCED M(5)
#define M_KANA M(6)
#define AH_ABNT KC_INT1
#define AH_ISO KC_NUBS
#define AH_BOPO KC_KANA
#define AH_ROYA KC_INT4
#define AH_TREMA KC_INT3
#define AH_AHK KC_INT5
bool rgbstatus = false;
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // can always be here
EPRM,
VRSN,
RGB_SLD,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(KC_GRAVE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_MINUS,
KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_RALT,
KC_HOME,KC_A,KC_S,KC_D,KC_F,KC_G,
KC_END,AH_ISO,KC_Z,KC_X,KC_C,KC_V,KC_LSHIFT,
KC_LCTL,KC_LGUI,KC_UP,KC_DOWN,KC_B,
KC_LALT,KC_ESCAPE,
LCTL(KC_H),
KC_SPACE,KC_DELETE,TT(1),
KC_EQUAL,KC_6,KC_7,KC_8,KC_9,KC_0,KC_RBRACKET,
KC_RALT,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRACKET,
KC_H,KC_J,KC_K,KC_L,KC_SCOLON,KC_QUOTE,
KC_RSHIFT,KC_N,KC_M,KC_COMMA,KC_DOT,KC_SLASH,KC_BSLASH,
AH_ABNT,KC_LEFT,KC_RIGHT,KC_RGUI,KC_RCTRL,
KC_AUDIO_VOL_UP,KC_AUDIO_MUTE,
KC_AUDIO_VOL_DOWN,
TT(1),KC_BSPACE,KC_ENTER),
[1] = KEYMAP(LCTL(LSFT(KC_ESCAPE)),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_NO,
KC_TAB,M_COPY,KC_UP,LCTL(KC_U),KC_NO,KC_NO,KC_CAPSLOCK,
KC_PGUP,KC_LEFT,KC_DOWN,KC_RIGHT,KC_APPLICATION,KC_NO,
KC_PGDOWN,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_LSHIFT,
KC_LCTL,KC_PSCREEN,KC_NO,KC_NO,KC_NO,
KC_LALT,TO(0),
LCTL(KC_U),
KC_INSERT,KC_DELETE,TO(0),
KC_F11,KC_KP_EQUAL,KC_KP_PLUS,KC_KP_MINUS,KC_KP_SLASH,KC_NO,KC_EJCT,
KC_F12,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,RALT(KC_F),KC_NO,
KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_COMMA,KC_INT5,RGB_TOG,
KC_RSHIFT,KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_ENTER,KC_GRAVE,M_KANA,
KC_KP_0,KC_KP_DOT,KC_KP_ENTER,KC_RGUI,KC_RCTL,
RGB_VAI,KC_NUMLOCK,
RGB_VAD,
TO(0),KC_BSPACE,KC_ENTER),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(1)
};
// leaving this in place for compatibilty with old keymaps cloned and re-compiled.
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
case 0:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
case 1: {
if (record->event.pressed) {
return MACRO( D(LCTL), T(H), U(LCTL), END );
} else {
return MACRO( D(LCTL), T(X), U(LCTL), END );
}
}
case 2:
//SEND_STRING("€");
unicode_input_start(); register_hex(0x20AC); unicode_input_finish();
return false;
case 3:
//SEND_STRING("₢");
unicode_input_start(); register_hex(0x20A2); unicode_input_finish();
return false;
case 4:
//SEND_STRING("$");
unicode_input_start(); register_hex(0x0024); unicode_input_finish();
return false;
case 5: {
if (record->event.pressed) {
return MACRO( T(INT4), END );
} else {
return MACRO( T(BSLASH), END );
}
}
case 6: {
if (record->event.pressed) {
return MACRO( T(KANA), T(CAPSLOCK), T(CAPSLOCK), END );
}
}
break;
}
return MACRO_NONE;
};
bool process_record_user(uint16_t keycodem, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
break;
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
break;
case RGB_SLD:
if (record->event.pressed) {
rgblight_mode(1);
}
return false;
break;
}
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
//#ifdef RGBLIGHT_ENABLE
rgblight_setrgb(00,00,255);
//#endif
} else {
// #ifdef RGBLIGHT_ENABLE
rgblight_setrgb(255,00,00);
// #endif // RGBLIGHT_ENABLE
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
ergodox_right_led_1_on();
} else {
ergodox_right_led_1_off();
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
ergodox_right_led_2_on();
} else {
ergodox_right_led_2_off();
}
}
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
switch (layer) {
case 0:
ergodox_right_led_3_off();
if(rgbstatus) {
rgblight_toggle();
rgbstatus = false; }
//BL_OFF;
break;
case 1:
ergodox_right_led_3_on();
if(rgbstatus) {} else {
rgblight_toggle();
register_code(KC_CAPSLOCK);
unregister_code(KC_CAPSLOCK);
register_code(KC_CAPSLOCK);
unregister_code(KC_CAPSLOCK);
rgbstatus = true; }
//rgblight_toggle();
//BL_ON;
break;
case 2:
//rgblight_on();
break;
case 3:
//rgblight_on();
break;
default:
break;
}
};
bépoète depuis mars 2015
Hors ligne
Comme je te disais, certains clavier peuvent passer d'une disposition «classique» vers le Dvorak car ce n'est que le déplacement des touches dans leur globalité. En ce qui concerne le Bépo cela est surement possible, mais je pense qu'il faut aller beaucoup plus loin que seulement modifier le keymap.c. De plus suivant ta modification sera fortement lié à la configuration de l'OS, si tu le fait pour le qwerty pour l'azerty tu auras des soucis. De plus certain caractère te seront impossible du fait que le drivers qw/azerty ne les connaissent pas.
Bref pas de solution simple a mon avis.
Hors ligne
Bonjour,
Serait il possible d'avoir les sources et le .hex de la disposition d'Anyndel, svp ?
Hors ligne
Salut, j’étais en voyage pendant un mois et je n’avais pas vu ton message !
J’ai modifié mon dernier message pour ajouter les deux fichiers que te demandais (ce sont ceux que j’utilise actuellement et je ne pense pas les avoir beaucoup modifiés depuis ledit message).
Hors ligne
Merci !!
Hors ligne
Bonjours tout le monde,
Pour mon premier post ici, je vous présente mon essai de keymap Bépo compatible pour l'Ergodox. Je me suis inspiré un peu de tout ce que j'ai vu ici, mais j'ai essayé de la garder aussi près que possible du TypeMatrix (vu que j'alterne entre les deux claviers), tout en corrigeant ses défauts les plus ennuyeux (touches flèches trop éloignées, etc.). Pour ça j'ai essayé (et immédiatement adopté) quelques fonctionnalité avancés de QMK comme avoir l'espace et alt gr sur la même touche (qui est l'une des plus accessibles), vu le gros usage que Bépo fait de ces touches.
Bref, voici la disposition si jamais quelqu'un veut l'essayer :
Disponible sur github là : github.com/mkende/qmk_firmware/tree/mas … o_tm_style.
Hors ligne
Bienvenue et merci pour ta contribution
Hors ligne
Bonjour !
Je ne vais pas tarder à franchir le pas de l'ergodox d'une part et du bépo d'autre part. Ce sujet est une vraie mine d'or !
Je viens tout juste de m'inscrire sur le forum, et je souhaiterais joindre Fabien, au sujet de son petit programme qui fait apparaitre un aide-mémoire. Je ne trouve pas comment envoyer des MP. Un p'tit coup de main svp ?
Hors ligne
Je viens tout juste de m'inscrire sur le forum, et je souhaiterais joindre Fabien, au sujet de son petit programme qui fait apparaitre un aide-mémoire. Je ne trouve pas comment envoyer des MP. Un p'tit coup de main svp ?
Souci résolu, normalement
Message tapé en Bépo avec un TypeMatrix 2030 USB vierge avec peau vierge
They see me trollin', they hatin'
Hors ligne
Ça y est, j'ai construit mon Ergodox !
Pour une première expérience en bépo mais aussi avec un clavier ortho, je me suis beaucoup inspiré du bépo vanilla, mais aussi de toutes les bonnes idées présentées sur ce topic (merci à tous !). J'ai également essayé de tirer partie des possibilités du firmware QMK, via le configurateur d'ergodox-ez.com.
Voilà la disposition sur laquelle je me suis arrêté :
Voilà quelques principes directeurs de cette disposition :
- J'essaye de tirer partie au mieux des 4 grosses touches de pouce.
- Les modificatrices qui n'ont aucune action lors d'un appui simple (donc shift, alt, alt gr, ctrl) sont placées en seconde fonction d'une autre touche, afin d'exploiter au maximum les meilleurs emplacements.
- J'essaye de respecter la philosophie du bépo (alternance des mains, des doigts), mais sans m'interdire de la modifier lorsque je pense qu'elle n'est pas adaptée au mieux aux claviers orthogonaux en général et à l'ergodox en particulier.
Plus spécifiquement :
- L'espace est sur la meilleure touche du pouce droit, le E sous la meilleure touche du pouce gauche (merci Fabien). Ces 2 touches deviennent shift quand on les maintient enfoncées.
- Les 2 autres touches 2u des pavés de pouce servent pour la virgule et le point. Enfoncées, elles donnent accès à la 2e couche (que je n'ai pas encore finalisée). Sur celle-ci, j'ai un pavé numérique sous la main droite et un pavé de navigation sous la main gauche.
- J'ai mis une autre touche espace sur le pavé gauche, lorsque j'ai la main à la souris. Son emplacement n'est pas définitif.
- Sur la rangée du bas, j'ai mis home/end et annuler/rétablir, en symétrique.
- Vu la multitude de raccourcis clavier utilisant Ctrl, j'en ai mis une de chaque côté. L'accès à ces touches est facile, un simple décalage du pouce suffit.
- J'ai mis Z et M à leur place nominale dans la disposition bépo. J'ai mis le Ç en dessous car l'emplacement respecte l'esprit du bépo. De plus, ça le laisse à droite ce qui est une bonne chose pour l'alternance des mains.
- J'ai mis Alt Gr au bout de la rangée de repos main droite, un accès facile vu que les caractères que j'emploie avec Alt Gr sont tous à gauche.
- J'ai mis Alt en dessous, je me sers peu de cette touche (alt F4 et ctrl alt suppr principalement).
- J'ai profité de la place que j'ai libéré à gauche en déplaçant E, point et virgule pour réorganiser les lettres de la main gauche. J'ai essayé de mettre les lettres les plus utilisées aux emplacement les plus accessibles.
- Le W profite de la place pour s'intégrer à gauche, ce qui tombe bien vu qu'il est souvent employé en anglais suivi d'une consonne.
- J'en ai également profité pour réintroduire Ê.
- Pour un accès facile, Tab est à sa place usuelle, Enter au bout de la rangée de repos main gauche.
- La touche d'en dessous est facilement accessible également, elle bascule sur la 2e couche lorsqu'on appuie dessus ou qu'on la laisse enfoncée.
- J'ai placé les touches backspace et suppr dans le prolongement des touches principales de pouce, c'est très facile d'y accéder avec les pouces d'une simple rotation du poignet.
- J'ai complété les lignes du bas avec des flèches en accès direct et les raccourcis Ctrl + X/C/V.
- Les touches windows sont assez accessibles, je m'en sers beaucoup pour redimensionner et déplacer mes fenêtres.
- J'ai prévu une touche d'aide, dans la perspective de me faire un aide-mémoire à la manière de Fabien. Je pense faire ça avec un script AutoHotKey. Je dupliquerais peut-être la touche sur l'autre main, son emplacement n'est pas définitif.
J'espère que je ne vous ai pas noyé avec mon pavé. J'ai bien conscience que ma disposition n'est pas conventionnelle, j'espère que je pourrais l'améliorer grâce à vos remarques !
Dernière modification par Kawamashi (2/12/2018 16:17:47)
Hors ligne
Je continue mon apprentissage de l'ergobépo, et je le fais évoluer au fur et à mesure. Voilà ce sur quoi je me suis arrêté :
Par rapport à ma disposition précédente, voilà les principaux changements :
- Je me suis penché sur le BÉOP de Laurent. Ses choix de conception dus aux roulements m'ont particulièrement intéressé. Ça m'a amené à inverser le O et le U.
- J'ai redisposé D, L, J, V en fonction de leur fréquence et de mes duels d'accessibilité.
- De la même manière, j'ai redisposé K, W, Y, X et les flèches directionnelles. Je trouve tout l'ensemble plus facilement accessible.
- Je trouvais que «ça» était compliqué à taper. J'ai donc permuté Ç, X et Z. Je tape «ça» d'un simple roulement pouce-index, c'est beaucoup plus simple.
- J'ai remplacé Ê par le tiret, que j'emploie bien plus souvent.
- J'ai changé l'emplacement de l'espace de gauche pour qu'il soit plus accessible.
Dernière modification par Kawamashi (21/12/2018 17:00:20)
Hors ligne
Bonjour à tous,
J’ai un TypeMatrix 2030 marqué BÉPO au boulot et j’ai reçu hier mon Ergodox.
Donc je me suis naturellement tourné vers la disposition de Mathias. Surtout qu’elle est directement disponible dans les dépôts.
Ça m’a bien aidé à franchir le cap du clavier à touches vierges…
Cependant, je suis entièrement d’accord avec Mimoza, ces deux claviers sont différents, autant en profiter.
Du coup j’ai rapidement compilé cette dispo et commence déjà à m’y faire.
Comme j’ai encore besoin de repères visuels, voilà mon antisèche :
Je travaille actuellement à rajouter un layer AZERTY pour pouvoir jouer sans redéfinir les touches dans les options.
Hors ligne
Bonjour à tous,
Je vais bientôt recevoir mon Ergodox-EZ et je travaille donc à la conception de mon adaptation. Pour l’instant je n’ai qu’une approche théorique puisque je n’ai pas pu essayer pour de vrai. Voici la configuration (incomplète) à laquelle j’ai aboutie pour l’instant :
(Je n’ai pas les droits pour mettre un lien vers l’éditeur ou vers Gist)
Voici les différentes réflexions qui m’ont poussé vers ce choix :
J’aimerais que la disposition des lettres soit un maximum semblable à un Bépo sur clavier standard, histoire de ne pas m’emmêler les doigts à chaque fois que je change de clavier (car je change pas mal). D’où le W et Ç du côté droit.
Les flèches suivent la disposition de VIM afin de toujours faire les mêmes gestes (presque) à l’intérieur et à l’extérieur de l’outil. Et «début», «fin», PageUp, PageDown, sont placés de manière logique par rapport à ces flèches de base.
MAJ et ALT-GR sont sur les deux pouces, pour parer à toutes les éventualités, et faciliter les mouvements combinatoires. J’ai aussi remplacé leur marquage par des petits dessins qui me parlent plus, car ils représentent tout simplement la position du caractère sur la touche.
Copier/coller/couper sont sur la même touche pour plus de facilité mémotechnique.
Un CTRL de chaque côté pour les petits doigts, car ces réflexes sont bien ancrés.
Les touches SUPER et ALT à peu près au même endroit que sur un clavier standard.
Un pavé numérique sur la droite.
Les touches de suppression sont au milieu car je n’utilise jamais ces touches en combinatoires avec une lettre, donc déplacer les doigts vers elles n’est pas un problème.
Espace à droite car c’est mon pouce droigt qui a l’habitude d’appuyer sur la barre d’espace. Et pas de «spaceFn» car je ne veux pas d’espaces ratés car appuis trop rapprochés.
Voilà ! Il reste encore des touches dont je ne sais pas quoi faire.
Si vous avez des conseils ils sont les bienvenus ! Après je sais que tout ça est très personnel.
Bépoète depuis automne 2018
Hors ligne
Bon je n'ai pas les droits pour éditer alors je fais une petite réponse à moi-même
Désolé d'avoir mis cette configuration pas mal absurde, en codant dans QMK je me suis rendu compte de choses qui n'étaient pas possibles, et j'ai mieux compris la différence entre les layers et les modificateurs.
Ainsi donc j'ai du retoucher quelques trucs, ce qui donne la configuration suivante:
Maintenant, il faut essayer !
Bépoète depuis automne 2018
Hors ligne
Tu es membre, désormais.
Message tapé en Bépo avec un TypeMatrix 2030 USB vierge avec peau vierge
They see me trollin', they hatin'
Hors ligne