From 498455403e6b891f7ecbce98163ba2b3def25dbb Mon Sep 17 00:00:00 2001 From: Christopher Browne Date: Mon, 13 Jun 2016 19:06:32 -0400 Subject: Renaming planck/cbbrowne in keeping with recent naming conventions (#405) * More documentation * Saving crontab for user on host * Restructuring in keeping with recent changes to conventions * Simplify submitting my fave cbbrowne keystroke by using SEND_STRING() * Local change, not apropos to have in this repo * Simplify logic; no need to return so much --- keyboard/planck/keymaps/README.md | 3 +- keyboard/planck/keymaps/cbbrowne/.gitignore | 1 + keyboard/planck/keymaps/cbbrowne/README.md | 16 - keyboard/planck/keymaps/cbbrowne/compiled.hex | 1463 ------------------------ keyboard/planck/keymaps/cbbrowne/config_user.h | 7 + keyboard/planck/keymaps/cbbrowne/keymap.c | 37 +- keyboard/planck/keymaps/cbbrowne/readme.md | 63 + 7 files changed, 89 insertions(+), 1501 deletions(-) create mode 100644 keyboard/planck/keymaps/cbbrowne/.gitignore delete mode 100644 keyboard/planck/keymaps/cbbrowne/README.md delete mode 100644 keyboard/planck/keymaps/cbbrowne/compiled.hex create mode 100644 keyboard/planck/keymaps/cbbrowne/config_user.h create mode 100644 keyboard/planck/keymaps/cbbrowne/readme.md (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/README.md b/keyboard/planck/keymaps/README.md index 9152353017..c1711aed80 100644 --- a/keyboard/planck/keymaps/README.md +++ b/keyboard/planck/keymaps/README.md @@ -19,4 +19,5 @@ When adding your keymap to this list, keep it organised alphabetically (select l # List of Planck keymaps -* **default** default Planck layout \ No newline at end of file +* **default** default Planck layout +* **cbbrowne** cbbrowne's Planck layout \ No newline at end of file diff --git a/keyboard/planck/keymaps/cbbrowne/.gitignore b/keyboard/planck/keymaps/cbbrowne/.gitignore new file mode 100644 index 0000000000..0cf0c6cc56 --- /dev/null +++ b/keyboard/planck/keymaps/cbbrowne/.gitignore @@ -0,0 +1 @@ +compiled.hex diff --git a/keyboard/planck/keymaps/cbbrowne/README.md b/keyboard/planck/keymaps/cbbrowne/README.md deleted file mode 100644 index 323e9a8596..0000000000 --- a/keyboard/planck/keymaps/cbbrowne/README.md +++ /dev/null @@ -1,16 +0,0 @@ -cbbrowne custom keyboard -============================== - -Due to cbbrowne@acm.org -Christopher Browne - -This was originally based on the default keyboard map, but I have been -doing sundry experimentation: - - * To figure things out about the toolset - * I'm an Emacs guy, so will be needing a fair bit of tuning - * It made sense to mess around some with keyboard maps. - - I added Workman alongside Dvorak and Colemak - - Boy, oh boy, these don't help - - I have done 30 years of learning of Emacs key mappings, and these alternative keyboards massively mess me up - - I added a keypad, originally based on keymaps/numpad.c, but mighty substantially revised, as that one seems to be rotated 90 degrees from usual conventions for number pads \ No newline at end of file diff --git a/keyboard/planck/keymaps/cbbrowne/compiled.hex b/keyboard/planck/keymaps/cbbrowne/compiled.hex deleted file mode 100644 index f5a208372a..0000000000 --- a/keyboard/planck/keymaps/cbbrowne/compiled.hex +++ /dev/null @@ -1,1463 +0,0 @@ -:100000000C94A2020C94E6020C94E6020C94E60214 -:100010000C94E6020C94E6020C94E6020C94E602C0 -:100020000C94E6020C94E6020C94E7140C94B915B7 -:100030000C941B230C94E6020C94E6020C94E6024A -:100040000C94E6020C9448030C94E6020C94E6022D -:100050000C94E6020C9483230C94E6020C94E602C2 -:100060000C94E6020C94E6020C94E6020C94E60270 -:100070000C94E6020C94E6020C94E6020C94E60260 -:100080000C945C0B0C94E6020C94E6020C94E602D1 -:100090000C94E6020C94E6020C94E6020C94E60240 -:1000A0000C94E6020C94E6020C94E602261648161E -:1000B0003617481636178D16B01636170517181747 -:1000C000021A021A311A311A701A901AE61BE61B2C -:1000D0009B1AE61B4B1B4B1BB21BBB1BE61BE01BFF -:1000E000581B581B581B581B581B581B581B581B78 -:1000F000581B581B581B581B581B581B581B581B68 -:10010000681B761B7D1B841B8E1B07634236B79BC7 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000075010106AF -:1001D00002060105020501050205011502150112BD -:1001E0000212011A021A0111021101080208290063 -:1001F00014001A000800150017001C0018000C005D -:10020000120013002A00E000040016000700090095 -:100210000A000B000D000E000F0033002800E10063 -:100220001D001B000600190005001100100036001B -:100230003700380034002B000030E200E3000152A8 -:100240002C002C0002525000510052004F00350289 -:100250001E021F0220022102220223022402250282 -:10026000260227022A0001003A003B003C003D0024 -:100270003E003F002D022E022F023002310201000B -:100280004000410042004300440045000053035336 -:10029000035300500100010003530100010001005D -:1002A000010001000100AB00AA00A900AE0035006A -:1002B0001E001F0020002100220023002400250032 -:1002C000260027002A0001003A003B003C003D00C8 -:1002D0003E003F002D002E002F00300031000100B5 -:1002E00040004100420043004400450000530353D6 -:1002F0000353005001000100010001000100010052 -:10030000010001000100AB00AA00A900AE00290015 -:1003100001301A000800150017001C005800570093 -:10032000570058002A00E0000230160007000900BC -:100330000A000B0056002400250026002800E100DA -:1003400003301B00060019000500110057002100B2 -:1003500022002300370083500030E200E300000059 -:100360002C002C0000531E001F0020002700280333 -:10037000540068006500200050006C0061006E00B1 -:1003800063006B0020004B006500790062006F0085 -:1003900061007200640000002C034F0072007400C2 -:1003A00068006F006C0069006E00650061007200FB -:1003B00020004B006500790062006F006100720050 -:1003C0006400730000000403090409026D000401C5 -:1003D00000A0FA0904000001030101000921110134 -:1003E0000001223F000705810308000A09040100FB -:1003F0000103010200092111010001224D0007053E -:10040000820308000A090402000103000000092118 -:10041000110100012236000705830308000A0904C0 -:10042000030001030000000921110100012239002D -:10043000070584031000011201100100000008EDFF -:10044000FE606001000102000105010906A101052D -:100450000719E029E71500250195087501810205B6 -:1004600008190129059505750191029501750391FA -:100470000105071900297715002501957875018177 -:1004800002C005010980A101850216010026B700FE -:100490001A01002AB700751095018100C0050C09EA -:1004A00001A1018503160100269C021A01002A9C65 -:1004B00002751095018100C005010902A101090121 -:1004C000A1000509190129051500250195057501EA -:1004D00081029501750381010501093009311581FA -:1004E000257F95027508810609381581257F9501BC -:1004F00075088106050C0A38021581257F9501755E -:10050000088106C0C005010906A101050719E029F7 -:10051000E71500250195087501810295017508818F -:1005200001050819012905950575019102950175C7 -:100530000391010507190029FF150025FF95067590 -:10054000088100C011241FBECFEFDAE0DEBFCDBFAF -:1005500004B603FE24C08091200390912103A09152 -:100560002203B09123038730904BA740B04BB9F4DE -:100570001092200310922103109222031092230361 -:1005800014BE84B7877F84BF88E10FB6F894809348 -:100590006000109260000FBEE0E0F8E3099511E002 -:1005A000A0E0B1E0E0E9FAE502C005900D92A23CBE -:1005B000B107D9F713E0A2ECB1E001C01D92A0325F -:1005C000B107E1F70E942D120C94462D0C94000007 -:1005D0000895089581E0089508950C94E9020C941B -:1005E000EA020C94EC020E94102923E030E0281B60 -:1005F0003109220F2093C6010895282F2F9880914A -:100600008000211108C0877F8093800010928D00A8 -:1006100010928C001BC0886080938000233019F4F6 -:100620008FEF9FEF0FC083E090E0821B9109880F4E -:10063000991F2FEF3FEFA90102C0569547958A9564 -:10064000E2F7CA0190938D0080938C000C94F30222 -:100650000E94F30284E08093C5011092C2010895C4 -:10066000279A2F988FEF9FEF9093870080938600B3 -:100670008AE08093800089E1809381000E9479283C -:100680000C9428030E9430036E9A769A0C94E80228 -:100690001F920F920FB60F9211242F933F938F93B7 -:1006A0009F93EF93FF93E091C301F091C401CF01B9 -:1006B00001969093C4018093C3010090C50102C0CC -:1006C000F695E7950A94E2F7EF738091C2018230C4 -:1006D00019F4E03251F404C0813039F4EF3329F4D5 -:1006E00080916F008D7F80936F00F0E0E457FE4FA4 -:1006F000E49121E031E0E29FC001E39F900D1124DD -:100700000090C60102C0969587950A94E2F79093EF -:100710008D0080938C00FF91EF919F918F913F917D -:100720002F910F900FBE0F901F901895CF9320918F -:10073000840030918500FC01613089F028F062303E -:1007400091F06330B9F133C08281882331F085EEB6 -:100750000E94A6180E94D0282AC085EE26C0828159 -:10076000811146C024C0409100015091010165EB08 -:10077000649FC001659F900D112487589A4D67EAC8 -:1007800070E00E94E22C909301018093000142816D -:10079000442369F082276AE070E00E94E22CCEE1F7 -:1007A000C80F8C2F0E94A6188C2F0E946E1980E013 -:1007B00090E020C0409100015091010165EB649FE1 -:1007C000C001659F900D112487589A4D67EA70E02B -:1007D0000E94E22C90930101809300014281442306 -:1007E00031F382276AE170E00E94E22CC4E0D8CFA6 -:1007F0008CEC91E0CF91089581E008950C94FC0376 -:1008000008950C94420380911702882309F448C08C -:100810008091D3019091D401009779F40E944D23E7 -:100820009093D4018093D3018091D50190E00097FB -:1008300071F48091D60190E00AC00E945923209162 -:100840000201309103012817390740F329C00197AD -:10085000880F991F880F991FFC01E952FE4F608194 -:100860007181828193810E94C20AE091D50184E066 -:10087000E89FF0011124E952FE4F6081718182816D -:1008800093814FE050E00E947A0E8091D50190E074 -:1008900001966091D60170E00E94F62C8093D501FC -:1008A0000C94ED02109219020C948F0A0895089589 -:1008B00081E0809319020C945704089508958F9253 -:1008C0009F92AF92BF92EF92FF920F931F93CF939D -:1008D000DF93CDB7DEB7A3970FB6F894DEBF0FBE98 -:1008E000CDBF7C01FC0100811181C8010E944A2119 -:1008F000B8010E9461068C01B7010E94FE038823A3 -:1009000009F4CCC10032F0E51F0741F4F701828100 -:10091000882309F458C00E94DE0EC0C10132F0E500 -:100920001F0741F4F7018281882309F44CC00E941B -:10093000E70EB4C10232F0E51F0751F4F7018281DE -:10094000882309F440C00E94DA0E8111F0CFE3CF72 -:100950000332F0E51F0739F4F7018281882399F10A -:100960000E9458049BC10432F0E51F0739F4F701D7 -:100970008281882341F10E94520490C10532F0E542 -:100980001F0749F4F70182818823E9F08091190259 -:100990008111F1CFE5CF0632F0E51F0739F4F701F9 -:1009A0008281882381F00E94EE0E0AC00732F0E5B2 -:1009B0001F0749F4F7018281882329F00E94F90E6C -:1009C0000E945E046BC180911902811105C0F7017C -:1009D00082818111CFC018C1003E110579F4F70161 -:1009E0008281882309F44DC00E948F0A81E08093A0 -:1009F0001802109217021092D60150C1023E110542 -:100A000059F4F70182818823E1F10E948F0A109244 -:100A100018021092170242C1033E110591F4F7012A -:100A20008281882371F10E948F0A1092180281E05E -:100A3000809317021092D5011092D4011092D30125 -:100A40002DC10235110559F4F7018281882309F47B -:100A500025C180910201909103010A970DC00135D3 -:100A6000110579F4F7018281882309F417C1809177 -:100A70000201909103010A96909303018093020171 -:100A80000DC14091060183E2E1E2F1E0DE01119641 -:100A900001900D928A95E1F7F701808121E030E025 -:100AA0002C0F3D1F280F311DC901209104013091E9 -:100AB0000501FC01E20FF31F6081772767FD709548 -:100AC000640F711D882777FD8095982F0E94182A42 -:100AD00020E030E040E451E40E947D294B015C01BC -:100AE000F701218184E090E0821B9109BC018827F5 -:100AF00077FD8095982F0E94182A9B01AC01C501B3 -:100B0000B4010E9415299B01AC0160E070E080E017 -:100B100090E40E948B2B20E030E04CED50E40E94EA -:100B2000282B4B015C01F70182818823D1F04FE033 -:100B300050E0C501B4010E947A0E8091180288230A -:100B4000A1F08091D60124E0829FF0011124E952A6 -:100B5000FE4F80829182A282B3828F5F8093D60102 -:100B600004C0C501B4010E94C20A0F3F110508F07C -:100B70002ECF94C08091D20181111FC0043130E585 -:100B8000130709F051C00E94000481E08093D20154 -:100B90000E944D239093D1018093D0011092C901FE -:100BA0001092CB011092CA011092CD011092CC018B -:100BB0001092CF011092CE0171C08091D00190911E -:100BC000D1010E945923883C910570F48091C9019C -:100BD000E82FF0E0EE0FFF1FE653FE4F1183008376 -:100BE0008F5F8093C9015AC0043880E5180721F04F -:100BF0000538104501F13AC0F7018281882341F0A0 -:100C00001092C70182E01EC0043830E5130759F581 -:100C10008091C701811106C086E20E94A61886E273 -:100C20000E946E1982E01CC00438F0E51F0741F3F2 -:100C300005381045D9F4F7018281882331F01092EC -:100C4000C80180E20E94BD1929C08091C8018111AC -:100C500006C087E20E94A61887E20E946E1980E211 -:100C60000E94C4191BC00538104529F381E0809308 -:100C7000C7018093C801C701A3960FB6F894DEBFE1 -:100C80000FBECDBFDF91CF911F910F91FF90EF90DD -:100C9000BF90AF909F908F900C94EF0280E0A3964E -:100CA0000FB6F894DEBF0FBECDBFDF91CF911F917D -:100CB0000F91FF90EF90BF90AF909F908F9008950D -:100CC00008959CE0799FF001112490E3899FE00D45 -:100CD000F11D1124E60FF11DEE0FFF1FE251FE4F33 -:100CE000859194910895880F991FFC01E259FF4F57 -:100CF000859194910895880F991FFC01E251FE4F50 -:100D00008591949108950F931F93CF93DF93EC01F6 -:100D1000811521E39207A0F5C11580E3D80708F0FB -:100D2000D7C0C83ED105D8F4C03ED10508F007C2EF -:100D3000C83AD10578F4C53AD10508F06AC0C13087 -:100D4000D10509F463C008F4F7C1C430D10508F037 -:100D5000F6C1F2C1CB3BD10508F466C0EDC1C115A7 -:100D600090E2D90708F0AFC0C11521E0D20708F022 -:100D7000E6C1C03FD10508F4DFC18E0110651FC276 -:100D8000C03880E5D80700F5C03790E5D90708F0EE -:100D9000A3C0C11520E5D20709F4ACC050F4CE01C0 -:100DA000905480319F4008F0C7C1DF708E01106AF7 -:100DB00006C2C13080E5D80709F4AEC0C43190E561 -:100DC000D90708F4AFC0B8C1C33820E5D20709F489 -:100DD0008EC050F4C13890E5D90709F482C008F0FC -:100DE00083C000E011EDEBC1C03181E5D80708F404 -:100DF000A3C1C11597E5D90708F436C1CE019057B4 -:100E00008115904108F098C1DF7093C101E010E0B6 -:100E1000D6C1C53AD10509F494C1C63AD10509F045 -:100E200093C102E810E4CBC1C83AD10509F48FC1DF -:100E3000C93AD10509F48EC1CA3AD10509F48DC168 -:100E4000CB3AD10509F48CC1CC3AD10509F48BC158 -:100E5000CD3AD10509F48AC1C03BD10509F489C155 -:100E6000CE3AD10509F488C1CF3AD10509F487C13A -:100E7000C13BD10509F486C1C23BD10509F485C146 -:100E8000C33BD10509F484C1C43BD10509F483C136 -:100E9000C53BD10509F482C1C63BD10509F481C126 -:100EA000C73BD10509F480C1C83BD10509F47FC116 -:100EB000C93BD10509F47EC1CA3BD10509F47DC106 -:100EC00000E014E47CC1CE019F700E947B0678C1D3 -:100ED000DD278E01106C73C1CF70DD278E01146D7C -:100EE0006EC100E010ED6BC100E012ED68C100E0E2 -:100EF00013ED65C10E94511C0E948F0A0E94560486 -:100F00008FEF94E32CE0815090402040E1F700C047 -:100F100000000E94A82353C18091F4028160809355 -:100F2000F4024DC10E940924811102C00E94E523F0 -:100F30000E941C2490E090931F0380931E03C230F4 -:100F400080E5D80721F480911E03816086C0C430FB -:100F500090E5D90721F480911E0382607EC0C630DF -:100F600020E5D20721F480911E03846076C0C8304A -:100F700080E5D80719F480911E0327C0CA3090E598 -:100F8000D90721F480911E03806167C0CC3020E531 -:100F9000D20721F480911E0380625FC0CE3080E5CD -:100FA000D80721F480911E03806457C0C03190E5BA -:100FB000D90721F480911E0380684FC0C23120E51B -:100FC000D20729F480911E038460886046C0C33034 -:100FD00080E5D80721F480911E038E7F3EC0C53086 -:100FE00090E5D90721F480911E038D7F36C0C7306C -:100FF00020E5D20721F480911E038B7F2EC0C930DB -:1010000080E5D80719F480911E0326C0CB3090E507 -:10101000D90721F480911E038F7E1FC0CD3020E5BB -:10102000D20721F480911E038F7D17C0CF3080E559 -:10103000D80721F480911E038F7B0FC0C13190E54A -:10104000D90721F480911E038F7707C0C331D045A3 -:1010500031F480911E038B7F877F80931E038091E4 -:101060001E030E942024ABC08D2F99278F709927D3 -:1010700081309105D9F49E012370332702C0880F77 -:10108000991F2A95E2F79C688E0144E0000F111F1A -:101090004A95E1F700271370802B912B53E0CC0F7A -:1010A000DD1F5A95E1F7C076DD272FC0823091050C -:1010B00031F4DC2FCC278E01016F106A80C08330A1 -:1010C000910569F4CE018370992701E010E002C018 -:1010D000000F111F8A95E2F7C8019C680FC0843089 -:1010E0009105B9F4CE018370992701E010E002C0A8 -:1010F000000F111F8A95E2F7C8019A6823E0CC0F10 -:10110000DD1F2A95E1F7C07ED7708C010C2B1D2BBB -:1011100056C08530910531F4DC2FCC278E01046F49 -:10112000106A4DC0069709F04AC0CF71DD27DC2F49 -:10113000CC278E01106243C000E010E040C08E0159 -:101140003EC001E810E43BC003E810E438C002EE02 -:1011500014E435C009EE14E432C00AEE14E42FC0E2 -:1011600005EB14E42CC006EB14E429C007EB14E4EF -:1011700026C00CEC14E423C00DEC14E420C003E8FA -:1011800015E41DC00AE815E41AC002E915E417C009 -:1011900004E915E414C001E216E411C003E216E408 -:1011A0000EC004E216E40BC005E216E408C006E235 -:1011B00016E405C007E216E402C00AE216E4C8011C -:1011C000DF91CF911F910F9108959CE0799FF001DD -:1011D000112490E3899FE00DF11D1124E60FF11D0C -:1011E000EE0FFF1FE251FE4F85919491803E9105D5 -:1011F000E0F4803C910558F58133910509F46FC006 -:1012000048F48932910509F463C08A32910509F4E2 -:101210006DC072C089339105E9F082389105D1F033 -:101220008533910509F44DC067C0833E910581F176 -:1012300038F4803E9105B9F0823E9105D9F05CC04A -:10124000863E910561F1873E9105A1F155C00E944E -:101250007306089520911E0320FD02C021FF4CC09B -:1012600080EE90E049C080911E0380FFF9CF89E3B2 -:1012700090E042C080911E0382FF0EC080911E0349 -:1012800084FF03C080E090E037C083EE90E034C07C -:1012900080911E0382FFF2CF82EE90E02DC08091FC -:1012A0001E0383FF0BC080911E0384FDEBCF87EEEE -:1012B00090E022C080911E0383FFF5CF86EE90E080 -:1012C0001BC080911E0385FF07C089E290E014C017 -:1012D00080911E0385FFF9CF85E390E00DC08091DA -:1012E0001E0386FF07C08AE290E006C080911E03BD -:1012F00086FFF9CF81E390E00E94830608950C9465 -:10130000F102E82FF0E0E05BFE4F8081E82FEF7004 -:10131000F0E082958F7021E030E0A90102C0440F17 -:10132000551F8A95E2F740A308950F931F93CF931B -:10133000DF9385B7806885BF85B7806885BFC3E0C8 -:10134000D0E001E010E0FE01E05BFE4F8081E82F7D -:10135000EF70F0E021A182958F70A80102C0440FC8 -:10136000551F8A95E2F7CA01822B81A38C2F0E9418 -:101370008109219740F78BE090E061E070E0FC018B -:10138000EC5BFE4F2081E22FEF70F0E042A122954E -:101390002F70DB0102C0AA0FBB1F2A95E2F79D0147 -:1013A000242B22A3019758F7DF91CF911F910F9122 -:1013B0000C940104EF92FF920F931F93CF93DF934E -:1013C00002E212E0C3E0EE24E394F12CD5E08C2F8E -:1013D0000E9481098BE090E040E050E0FC01EC5B72 -:1013E000FE4F6081E62FEF70F0E020A130E06295C3 -:1013F0006F7002C0359527956A95E2F720FD09C008 -:101400009701082E02C0220F331F0A94E2F7422BE5 -:10141000532B019718F7F801929182918F0184174D -:10142000950721F051834083D09307018C2F0E94B0 -:101430008109C15060F68091070187FD2CC0815061 -:10144000809307018F3F39F08FE99FE00197F1F713 -:1014500000C0000020C08091200290912102909352 -:1014600029028093280280911E0290911F0290937E -:1014700027028093260280911C0290911D02909376 -:1014800025028093240280911A0290911B0290936E -:101490002302809322020E94030481E0DF91CF9116 -:1014A0001F910F91FF90EF900895E82FF0E0EE0F5D -:1014B000FF1FEE5DFD4F80819181089508950F9388 -:1014C0001F93CF930AE212E0C0E0F801929182915B -:1014D0008F010E94C522C80FF2E002321F07A9F750 -:1014E0008C2FCF911F910F9108950E940924811193 -:1014F00002C00E94E5230E942E24809309033E9A95 -:10150000809171008D7F8093710082E080939000C4 -:101510008AE18093910081E080932C02089580916C -:101520002C02811102C00E94750A10927C02109256 -:101530007B02809171008D7F80937100809190007B -:101540008F738093900010923E0210923D02109291 -:101550007502109276021092770210927802109221 -:10156000740210927302E3E5F2E0A3E4B2E0119298 -:101570001192119211921D921D9282E0E337F807A9 -:10158000B1F70895CF92DF92EF92FF920F931F93DE -:10159000CF93DF9320913D02222309F484C06B0195 -:1015A0007C0180912C02811102C00E94750A03E720 -:1015B00012E0C7E0D0E0A7019601F8019291829174 -:1015C000729162918F010E947929811131C0FE01CF -:1015D000EE0FFF1FEE0FFF1FED5AFD4F108211821D -:1015E00012821382DE01AA0FBB1FAD5BBD4F1196A5 -:1015F0001C921E92C730D105E9F021964481558195 -:10160000668177814083518362837383148215825C -:101610001682178212968D919C91139711969C9326 -:101620008E9313961C921E92129734961296E2CFC6 -:10163000219708F680917B0290917C02019797FD9B -:1016400005C090937C0280937B0204C010927C02C0 -:1016500010927B0280917B0290917C022091790212 -:1016600030917A022817390724F010927A021092EA -:101670007902892BC1F4809171008D7F8093710074 -:10168000809190008F738093900010927502109259 -:1016900076021092770210927802109274021092E1 -:1016A000730210923D02DF91CF911F910F91FF9035 -:1016B000EF90DF90CF9008951F920F920FB60F9288 -:1016C00011244F925F926F927F928F929F92AF926E -:1016D000BF92CF92DF92EF92FF922F933F934F935F -:1016E0005F936F937F938F939F93AF93BF93CF93AA -:1016F000DF93EF93FF9380913D02882309F49BC110 -:10170000C0917B02D0917C021C161D060CF093C187 -:1017100040902D0250902E0260902F027090300267 -:1017200020E030E0A901C301B2010E94242B181669 -:101730000CF065C0C130D10509F452C08091790226 -:1017400090917A02BE010E94F62C7C0190937A025D -:101750008093790280903F0290904002A0904102D5 -:10176000B090420220E030E040E85FE3C501B40100 -:101770000E94152960933F027093400280934102BA -:1017800090934202F701EE0FFF1FEE0FFF1FED5A7D -:10179000FD4FA301920160817181828193810E943A -:1017A0007D2920E030E040E05EE30E94282B9B0191 -:1017B000AC01C501B4010E94242B18168CF4C7019A -:1017C0000196BE010E94F62C90937A0280937902D2 -:1017D00010923F0210924002109241021092420277 -:1017E000E0917902F0917A02EE0FFF1FEE0FFF1FDA -:1017F000ED5AFD4F6081718182819381D0C0C0908C -:101800007502D0907602E0907702F090780220E0A6 -:1018100030E0A901C701B6010E94792921978823E8 -:1018200009F4A2C0FE01EE0FFF1FEE0FFF1FED5ADD -:10183000FD4F80809180A280B380A5019401C701F3 -:10184000B6010E94792987FF31C0A501940160E0AB -:1018500070E08CED93EC0E947D2920E030E040E4C4 -:1018600051E40E947D2920E030E040E05FE30E94E7 -:10187000282B9B01AC0160E070E080E090E40E94C6 -:101880008B2B9B01AC01C501B4010E94282B9B014D -:10189000AC01C701B6010E94792987FF07C0A701E3 -:1018A000960160E070E08CED93E439C0A5019401ED -:1018B000C701B6010E94242B18160CF055C0A501D3 -:1018C000940160E070E08CED93E40E947D2920E0BB -:1018D00030E040E451E40E947D2920E030E040E027 -:1018E0005FE30E94282B9B01AC0160E070E080E088 -:1018F00090E40E948B2B9B01AC01C501B4010E94B6 -:10190000282B9B01AC01C701B6010E94242B18169D -:101910005CF5A701960160E070E08CED93EC0E940D -:101920007D2920E030E040E451E40E947D2920E060 -:1019300030E040E05FE30E94282B9B01AC0160E0B7 -:1019400070E080E090E40E948B2B9B01AC01C7010A -:10195000B6010E94282B60937502709376028093E3 -:1019600077029093780213C0FE01EE0FFF1FEE0F77 -:10197000FF1FED5AFD4F80819181A281B381809339 -:10198000750290937602A0937702B09378026091EB -:101990007502709176028091770290917802209181 -:1019A0002A0230912B022F3F4FEF340731F02F5F87 -:1019B0003F4F30932B0220932A020E94040F6B01A9 -:1019C0007C0120E034E244EF51E40E94792987FF52 -:1019D00008C086EFC82E88E2D82E84EFE82E81E476 -:1019E000F82E20E030E040E051E4C701B6010E944B -:1019F000282B9B01AC0160E074E284E79BE40E9429 -:101A00007D296B017C010E94EA2970939700609305 -:101A10009600209108013091090140910A015091EE -:101A20000B01C701B6010E94282B0E94EA2970937E -:101A300099006093980080913E02882309F433C195 -:101A4000C0903902D0903A02E0903B02F0903C0204 -:101A500020E030E0A901C701B6010E94242B18162E -:101A6000D4F580912A0290912B028F3F2FEF92079D -:101A700029F0019690932B0280932A02C701B601A8 -:101A80000E94040F20E030E040E051E40E94282B47 -:101A90009B01AC0160E074E284E79BE40E947D2935 -:101AA0006B017C010E94EA29709397006093960075 -:101AB000209108013091090140910A0150910B01D8 -:101AC000C701B6010E94282B0E94EA297093990051 -:101AD0006093980008C010929700109296001092A0 -:101AE00099001092980060913302709134026F5FF8 -:101AF0007F4F7093340260933302209196003091AF -:101B0000970080E090E0232BF1F0C0919600D091F7 -:101B100097000E94162A6B017C01BE0180E090E0D4 -:101B20000E94162A9B01AC01609135027091360229 -:101B300080913702909138020E947D2920E03FEF8A -:101B40004FE757E410C00E94162A6B017C0120E089 -:101B500030EE4FEF54E4609135027091360280917F -:101B60003702909138020E94282B9B01AC01C701DB -:101B7000B6010E94242B87FD96C0809131028F5FB1 -:101B80008093310290E02091050330910603821783 -:101B90009307A0F080911003882319F0109231026E -:101BA0000DC0809171008D7F8093710080919000B5 -:101BB0008F738093900010923E027DC0809132021C -:101BC000C0913102811128C0C0900A03D0900B034C -:101BD000E0900C03F0900D0320E030E0A901C70174 -:101BE000B6010E94242B1816BCF481E080933202C7 -:101BF0001092390210923A0210923B0210923C026B -:101C0000C0923502D0923602E0923702F09238024A -:101C1000C150C093310243C01092320210922B0285 -:101C200010922A02E0910703F091080348E0C49F54 -:101C3000E00DF11D112480819181A281B3818093F7 -:101C4000390290933A02A0933B02B0933C0220E009 -:101C500030E040E85EE364817581868197810E946F -:101C6000282B6B017C0180910C01682F70E080E0D3 -:101C700090E00E94162A20E030E048EC52E40E94F6 -:101C80007D299B01AC01C701B6010E94282B6093FE -:101C90003502709336028093370290933802109287 -:101CA0003402109233028091090380FD04C0109227 -:101CB0003E0210923D02FF91EF91DF91CF91BF91D3 -:101CC000AF919F918F917F916F915F914F913F91D4 -:101CD0002F91FF90EF90DF90CF90BF90AF909F90AB -:101CE0008F907F906F905F904F900F900FBE0F90EE -:101CF0001F901895CF92DF92EF92FF92CF93DF93D0 -:101D00006B017C01EA0180912C02811102C00E94CA -:101D1000750A8091090380FF46C080917B029091F3 -:101D20007C0208970CF03FC0809171008D7F8093FA -:101D3000710080913E0281110E948F0A81E08093A0 -:101D40003D0210922B0210922A0220E030E0A901FD -:101D5000C701B6010E94242B1816DCF480917B0287 -:101D600090917C02FC01EE0FFF1FEE0FFF1FED5A5A -:101D7000FD4FC082D182E282F382FC01EE0FFF1F91 -:101D8000ED5BFD4FD183C083019690937C028093DD -:101D90007B0280917100826080937100809190003D -:101DA000806880939000DF91CF91FF90EF90DF905B -:101DB000CF9008958091090381700895809109035F -:101DC0008160809309030E9432240C945D04809109 -:101DD00009038E7F809309030C94322480917D0245 -:101DE00090E0019666E070E00E94F62C80937D0200 -:101DF000089580917D0290E0019766E070E00E9476 -:101E0000F62C80937D0208958F929F92AF92BF929D -:101E1000CF92DF92EF92FF920F931F93CF93DF93B6 -:101E20006B017C01C0912A02D0912B02BE0180E09F -:101E300090E00E94162A4B015C01A701960160E028 -:101E400070E08CE594E40E947D299B01AC01C50102 -:101E5000B4010E94282B0E94EA2920917D022330A0 -:101E600009F473C028F4222351F02130E9F02CC189 -:101E7000243009F4A0C0253009F4E0C025C180E079 -:101E800090E0A0E0BFE38093080190930901A09344 -:101E90000A01B0930B0110922D0210922E021092A3 -:101EA0002F021092300210C110922D0210922E02B9 -:101EB00010922F02109230026431710540F46A30A2 -:101EC000710560F520E030E040E85EE32BC0693C3E -:101ED000710508F0AAC080E090E00E94162A20E078 -:101EE00030E040EA51E40E94142920E030E044E36D -:101EF00053E40E947D299B01AC010E94282B20E025 -:101F000030E040E05EE30E94282B9B01AC0160E0E2 -:101F100070E080E09EE30E94142944C020E030E09D -:101F200040E05FE3C701B6010E94282B6B017C01F2 -:101F300080E090E0A0E0BEE3809308019093090167 -:101F4000A0930A01B0930B01BFC010922D02109212 -:101F50002E0210922F02109230024AE0469F90010A -:101F6000479F300D1124C90168EB7BE00E94E22CF1 -:101F7000BC016C5D754077FF03C071956195710977 -:101F8000882777FD8095982F0E94182A2EE333EC3E -:101F90004EE259E30E94282B20E030E040EC5EE363 -:101FA0000E941529609308017093090180930A012A -:101FB00090930B0189C010922D0210922E02109264 -:101FC0002F0210923002CE0183709927892BE1F005 -:101FD000BE016170772780E090E00E94162A20E021 -:101FE00030E040E05EE30E94282B20E030E040E457 -:101FF0005FE30E94152960930801709309018093A3 -:102000000A0190930B010CC080E090E0A0E0BFE3D8 -:102010008093080190930901A0930A01B0930B01EA -:10202000C770DD27CD2B09F04FC010920801109228 -:10203000090110920A0110920B0146C010922D0264 -:1020400010922E0210922F021092300200E010E047 -:1020500020E03FE3009308011093090120930A0157 -:1020600030930B016739710578F180E090E00E94B0 -:10207000162A20E030E047E153E40E94142920E0D2 -:1020800030E04AE754E40E947D2920E030E048E453 -:1020900052E40E94282B20E030E040EA51E40E9404 -:1020A0005A2A0E94E529660F771F660F771FFB01EA -:1020B000EC5AFE4F2081318142815381C701B60124 -:1020C0000E94282B6B017C01C701B601DF91CF91E3 -:1020D0001F910F91FF90EF90DF90CF90BF90AF9046 -:1020E0009F908F90089580918E020895CF93DF93F3 -:1020F00000D01F92CDB7DEB79C01809115038430CC -:1021000019F593E099833B832A839093E9008FEF3D -:102110009091E800815095FD06C095ED9A95F1F7F4 -:1021200000008111F5CF8091E80085FF0DC040E0EF -:1021300050E063E070E0CE0101960E94D7128091DA -:10214000E8008E778093E8000F900F900F90DF915A -:10215000CF910895CF93DF9300D01F92CDB7DEB714 -:1021600020911503243021F522E029839B838A8363 -:1021700083E08093E9008FEF9091E800815095FD16 -:1021800006C095ED9A95F1F700008111F5CF809189 -:10219000E80085FF0DC040E050E063E070E0CE0154 -:1021A00001960E94D7128091E8008E778093E80014 -:1021B0000F900F900F90DF91CF910895209115030C -:1021C0002430F1F422E02093E9002FEF3091E80071 -:1021D000215035FD06C035ED3A95F1F7000021118B -:1021E000F5CF2091E80025FF0BC040E050E065E00E -:1021F00070E00E94D7128091E8008E778093E8000B -:102200000895CF93DF93EC0190911503943009F07A -:1022100046C0809117018823D9F080911801882346 -:10222000B9F09093E9008FEF9091E800815095FD0F -:1022300006C095E19A95F1F700008111F5CF8091E4 -:10224000E80085FF2CC040E050E060E170E017C07E -:1022500081E08093E9008FEF9091E800815095FD37 -:1022600006C095ED9A95F1F700008111F5CF8091A8 -:10227000E80085FF14C040E050E068E070E0CE0167 -:102280000E94D7128091E8008E778093E80080E169 -:10229000FE01AEE7B2E001900D928A95E1F7DF9181 -:1022A000CF91089580911403811109C00E946C148C -:1022B0000E94C9148091E20084608093E200089536 -:1022C000109214030895089508950C94102342E089 -:1022D00061EC81E00E94E61342E061EC82E00E9442 -:1022E000E61342E061EC83E00E94E61342E161EC18 -:1022F00084E00C94E61380911703833009F455C0F1 -:1023000030F4813071F0823009F48EC008958A3043 -:1023100009F47AC08B3009F460C0893009F09CC0A0 -:1023200020C080911603813A09F096C08091E800A0 -:10233000877F8093E80080911A0390911B03892B7B -:1023400021F460E18EE792E003C060E080E090E07D -:1023500070E00E9422138091E8008B778093E80060 -:10236000089580911603813209F076C080911A0396 -:1023700090911B03009719F0039709F06DC08091AD -:10238000E800877F8093E8008091E80082FD05C027 -:10239000809115038111F8CF5FC08091F100809387 -:1023A0008E028091E8008B7753C080911603813AAA -:1023B00009F052C080911A0390911B03892B09F0F8 -:1023C0004BC08091E800877F8093E8008091E8000F -:1023D00080FFFCCF8091170136C0809116038132B7 -:1023E000D9F580911A0390911B03892BA9F580914F -:1023F000E800877F8093E8000E941B1480911803F7 -:10240000809317010C94511C80911603813221F5A1 -:102410008091E800877F8093E8000E941B148091E0 -:10242000190380938F02089580911603813AA1F4D5 -:102430008091E800877F8093E8008091E80080FF2A -:10244000FCCF80918F028093F1008091E8008E771D -:102450008093E8000C941B14089584B7877F84BF91 -:1024600088E10FB6F89480936000109260000FBE70 -:1024700090E080E80FB6F89480936100909361003B -:102480000FBE0E94BE170E946C140E94C914809156 -:10249000E20084608093E20078940E944F170E94CB -:1024A000C0178DE091E00E946A1780911503853076 -:1024B00069F40E94D122809113038823B1F30E9412 -:1024C000FF22882391F30E94C112EFCF0E94C81708 -:1024D000ECCF292F332723303105C9F064F42130A4 -:1024E000310581F02230310509F043C08DE690E0DE -:1024F0002AEC33E042C021323105F1F022323105BD -:1025000041F137C082E190E027E334E036C09927FB -:102510008130910541F08230910541F0892B49F5D8 -:10252000E6ECF3E005C0E8E9F3E002C0EEE6F3E034 -:10253000849190E09F0121C06430D8F4E62FF0E050 -:10254000EE0FFF1FE055FE4F2081318189E090E0C2 -:1025500014C0643070F470E0FB01EE0FFF1FE8550B -:10256000FE4F20813181FB01EC55FE4F808190E0D0 -:1025700004C080E090E020E030E0FA013183208365 -:10258000089580E189BD82E189BD09B400FEFDCFD7 -:102590008091D8008F7D8093D8008091E000826088 -:1025A0008093E0008091E00081FDFCCF0895CF9200 -:1025B000DF92EF92FF920F931F93CF93DF93EC0183 -:1025C0008B016A010E943A14811133C0C114D104F5 -:1025D00039F0F60180819181081B190BC80FD91FB2 -:1025E000E12CF12C0115110519F18091E80085FD10 -:1025F00016C08091E8008E778093E800C114D10462 -:1026000049F0F60180819181E80EF91EF182E082A5 -:1026100085E00FC00E943A14882321F30AC08991F3 -:102620008093F10001501109FFEFEF1AFF0ADACF92 -:1026300080E0DF91CF911F910F91FF90EF90DF909D -:10264000CF90089520911C0330911D032617370762 -:1026500048F06115710539F42091E8002E77209338 -:10266000E80001C0B90140E061157105A9F12091B0 -:102670001503222309F443C0253009F442C02091F8 -:10268000E80023FD40C02091E80022FD32C02091E7 -:10269000E80020FFE9CF4091F3002091F20030E004 -:1026A000342BFC01CF016115710559F0283031053B -:1026B00040F481918093F100615071092F5F3F4F89 -:1026C000F1CF41E02830310509F040E02091E800E9 -:1026D0002E772093E800C8CF4111C9CF0AC080915E -:1026E0001503882361F0853061F08091E80083FD57 -:1026F0000AC08091E80082FFF2CF80E0089582E076 -:10270000089583E0089581E0089520911C0330919D -:102710001D032617370748F06115710539F420911C -:10272000E8002E772093E80001C0B901FC0120E009 -:102730006115710591F180911503882309F440C05A -:10274000853009F43FC08091E80083FD3DC0809151 -:10275000E80082FD2FC08091E80080FFE9CF209142 -:10276000F3008091F20090E0922B6115710559F011 -:102770008830910540F424912093F1003196615006 -:1027800071090196F2CF21E0089709F020E08091CD -:10279000E8008E778093E800CBCF2111CCCF0AC020 -:1027A00080911503882361F0853061F08091E80005 -:1027B00083FD0AC08091E80082FFF2CF80E0089597 -:1027C00082E0089583E0089581E00895982F97307E -:1027D00058F59093E900981739F07091EC0020912A -:1027E000ED005091F00003C0242F762F50E021FF20 -:1027F00019C03091EB003E7F3093EB003091ED003B -:102800003D7F3093ED003091EB0031603093EB0071 -:102810007093EC002093ED005093F0002091EE00B7 -:1028200027FF07C09F5FD3CF8F708093E90081E0BF -:10283000089580E008958091160387FF11C080916C -:10284000E80082FD05C0809115038111F8CF11C009 -:102850008091E8008B770BC080911503882349F0A5 -:102860008091E80080FFF8CF8091E8008E77809318 -:10287000E80008952091E4003091E50095E640914C -:10288000EC00842F817040FF22C08091E80080FD21 -:102890001CC080911503882391F0853091F08091C0 -:1028A000EB0085FD10C04091E4005091E500421717 -:1028B000530729F39A01915011F784E0089582E0BB -:1028C000089583E0089581E0089580E0089540919F -:1028D000E80042FFDECF08950E94DA140E94E2145D -:1028E000E0EEF0E0808181608083E8EDF0E08081BF -:1028F0008F77808319BCA7EDB0E08C918E7F8C938D -:1029000080818F7E80831092140308950F931F930C -:10291000CF93DF930E94DA140E94E214C8EDD0E056 -:1029200088818F77888388818068888388818F7D7C -:10293000888319BC1092150310921103109213038F -:102940001092120300EE10E0F80180818B7F8083EB -:1029500088818160888342E060E080E00E94E61325 -:10296000E1EEF0E080818E7F8083E2EEF0E0808116 -:1029700081608083808188608083F80180818E7F80 -:102980008083888180618883DF91CF911F910F912F -:102990000895E8EDF0E080818F7E8083E7EDF0E040 -:1029A00080818160808384E082BF81E08093140312 -:1029B0000C948614E8EDF0E080818E7F8083109285 -:1029C000E20008951092DA001092E10008951F923B -:1029D0000F920FB60F9211242F933F934F935F9353 -:1029E0006F937F938F939F93AF93BF93EF93FF93D7 -:1029F0008091E10082FF0BC08091E20082FF07C05E -:102A00008091E1008B7F8093E1000E944E178091BE -:102A1000DA0080FF1FC08091D80080FF1BC080912A -:102A2000DA008E7F8093DA008091D90080FF0DC09C -:102A300080E189BD82E189BD09B400FEFDCF81E05E -:102A4000809315030E94521105C019BC1092150302 -:102A50000E9460118091E10080FF19C08091E20026 -:102A600080FF15C08091E2008E7F8093E20080910C -:102A7000E20080618093E2008091D80080628093C0 -:102A8000D80019BC85E0809315030E9464118091E1 -:102A9000E10084FF30C08091E20084FF2CC080E11F -:102AA00089BD82E189BD09B400FEFDCF8091D800C7 -:102AB0008F7D8093D8008091E1008F7E8093E1002C -:102AC0008091E2008F7E8093E2008091E20081603D -:102AD0008093E20080911103882311F084E007C005 -:102AE0008091E30087FD02C081E001C083E0809314 -:102AF00015030E9465118091E10083FF29C0809138 -:102B0000E20083FF25C08091E100877F8093E10090 -:102B100082E080931503109211038091E1008E7F73 -:102B20008093E1008091E2008E7F8093E2008091AB -:102B3000E20080618093E20042E060E080E00E9479 -:102B4000E6138091F00088608093F0000E9463118A -:102B5000FF91EF91BF91AF919F918F917F916F9175 -:102B60005F914F913F912F910F900FBE0F901F904B -:102B700018951F920F920FB60F9211242F933F9327 -:102B80004F935F936F937F938F939F93AF93BF9375 -:102B9000CF93DF93EF93FF93C091E900CF708091C3 -:102BA000EC00D82FD17080FDD0E81092E900809120 -:102BB000F000877F8093F00078940E94FD151092BA -:102BC000E9008091F00088608093F000CD2BCF70F9 -:102BD000C093E900FF91EF91DF91CF91BF91AF9149 -:102BE0009F918F917F916F915F914F913F912F9125 -:102BF0000F900FBE0F901F9018951F93CF93DF93E8 -:102C0000CDB7DEB7AA970FB6F894DEBF0FBECDBF23 -:102C1000E6E1F3E088E08E0F9091F10091938E133E -:102C2000FBCF0E947B118091E80083FF1FC1809140 -:102C3000160390911703492F50E04A30510508F0D0 -:102C400015C1FA01EA5AFF4F0C940A2D803881F021 -:102C5000823809F00BC180911A038F708093E900CC -:102C60008091EB0085FB882780F91092E90006C06F -:102C70008091120390911303911182609091E8006A -:102C8000977F9093E8008093F1001092F100C8C004 -:102C9000282F2D7F09F0EAC0882319F0823061F0D7 -:102CA000E5C080911803813009F0E0C0933009F04D -:102CB00080E0809313032BC080911803811127C0FB -:102CC00080911A038F7009F4D1C08093E90020919C -:102CD000EB0020FF1CC0933021F48091EB00806258 -:102CE00014C09091EB0090619093EB0021E030E0F4 -:102CF000A90102C0440F551F8A95E2F74093EA00EC -:102D00001092EA008091EB0088608093EB001092B3 -:102D1000E9008091E800877F86C08111A7C01091EB -:102D200018031F778091E3008078812B8093E30064 -:102D30008091E800877F8093E8000E941B148091B7 -:102D4000E80080FFFCCF8091E30080688093E3007F -:102D5000111102C082E001C083E08093150386C098 -:102D60008058823008F082C0809118039091190336 -:102D70008C3D53E0950779F583E08A838AE2898365 -:102D80004FB7F894DE01139620E03EE051E2E32FC6 -:102D9000F0E050935700E49120FF03C0E295EF70FC -:102DA0003F5FEF708E2F90E0EA3010F0C79601C0C1 -:102DB000C0968D939D932F5F243149F74FBF80912B -:102DC000E800877F8093E8006AE270E0CE01019618 -:102DD0000E94221314C0AE014F5F5F4F60911A032F -:102DE0000E946912BC01009709F440C09091E8006C -:102DF000977F9093E80089819A810E948513809142 -:102E0000E8008B778093E80031C0803879F58091B5 -:102E1000E800877F8093E800809111038093F100A0 -:102E20008091E8008E778093E8000E941B141EC0FA -:102E300081111CC0909118039230C0F48091E80079 -:102E4000877F8093E800909311030E941B14809168 -:102E50001103811106C08091E30087FD02C081E06B -:102E600001C084E0809315030E9467118091E800FF -:102E700083FF0AC08091E800877F8093E8008091FB -:102E8000EB0080628093EB00AA960FB6F894DEBF49 -:102E90000FBECDBFDF91CF911F9108950895CF93BD -:102EA000809115038823A1F0C091E900CF70909123 -:102EB000EC00892F817090FD80E8C82B1092E9000A -:102EC0008091E80083FD0E94FD15CF70C093E9005A -:102ED000CF91089590939502809394020895E09184 -:102EE0009402F0919502309721F00190F081E02D4D -:102EF000099480E00895E0919402F0919502309752 -:102F000021F00280F381E02D09940895E09194026C -:102F1000F0919502309721F00480F581E02D09941D -:102F2000089520919202309193028217930771F0D5 -:102F30009093930280939202E0919402F091950213 -:102F4000309721F00680F781E02D099408952091B3 -:102F50009002309191028217930771F09093910241 -:102F600080939002E0919402F0919502309721F0C5 -:102F70000084F185E02D0994089508950C94BD17FF -:102F80000E9444230E9495090E94CA230C94792828 -:102F90005F926F927F928F929F92AF92BF92CF92E9 -:102FA000DF92EF92FF920F931F93CF93DF9300D0A6 -:102FB00000D01F92CDB7DEB70E94DA099FE9C92E73 -:102FC00092E0D92E03E010E0AA24A394B12C502E55 -:102FD000802F0E94550A4C01F601729062906F0199 -:102FE0006826792661147104A1F40150110978F75B -:102FF0008FEF89838A831B820E944D238160782F03 -:103000009D838C8349815A816B818D810E947818C0 -:1030100038C08091F40281FD0E945E0A2BE030E00E -:103020007501022E02C0EE0CFF1C0A94E2F7C701E4 -:1030300086219721892B09F129835A828E209F208E -:1030400091E0892809F490E09B830E944D238160E0 -:10305000782F9D838C8349815A816B818D810E9459 -:103060007818000F111FF801E956FD4F80819181FA -:10307000E826F926F182E08204C02150310980F669 -:10308000B4CF0E94B125109196020E946F171817B5 -:10309000D1F00E946F17809396020F900F900F90BF -:1030A0000F900F90DF91CF911F910F91FF90EF90B4 -:1030B000DF90CF90BF90AF909F908F907F906F9058 -:1030C0005F900C947F090F900F900F900F900F90CE -:1030D000DF91CF911F910F91FF90EF90DF90CF90F4 -:1030E000BF90AF909F908F907F906F905F9008956A -:1030F000CF93DF93CDB7DEB72B970FB6F894DEBF33 -:103100000FBECDBF4F83588769877A878B87DE01D3 -:10311000119686E0FD0111928A95E9F785E0FE019E -:10312000379601900D928A95E1F749815A816B811A -:103130007C818D819E810E94EF1E2B960FB6F894A4 -:10314000DEBF0FBECDBFDF91CF910895CF9388230F -:1031500009F4C2C0C82F823859F40E946F1781FD4C -:10316000BBC089E30E94C9210E94962289E30CC05A -:10317000833879F40E946F1780FDAEC083E50E940A -:10318000C9210E94962283E50E940B22CF910C94C4 -:103190009622843859F40E946F1782FD9DC087E4FF -:1031A0000E94C9210E94962287E4EECF8CEF8C0FFB -:1031B000813A48F48C2F0E94E12781118DC08C2F19 -:1031C0000E94C921E3CF80E28C0F883048F4C77099 -:1031D00081E001C0880FCA95EAF70E944F22D6CF3E -:1031E0008BE58C0F833078F4C53A29F0C63A31F07C -:1031F00083E890E005C081E890E002C082E890E0BA -:10320000CF910C94911788E58C0F833108F064C03E -:10321000C83A39F1C93A41F1CA3A49F1CB3A51F1C8 -:10322000CC3A59F1CD3A61F1C03B69F1CE3A71F136 -:10323000CF3A79F1C13B81F1C23B89F1C33B91F1B6 -:10324000C43B99F1C53BA1F1C63BA9F1C73BB1F124 -:10325000C83BB9F1C93BC1F1CA3BC9F180E090E07C -:1032600038C082EE90E035C089EE90E032C08AEE40 -:1032700090E02FC085EB90E02CC086EB90E029C059 -:1032800087EB90E026C08CEC90E023C08DEC90E0C2 -:1032900020C083E891E01DC08AE891E01AC082E96D -:1032A00091E017C084E991E014C081E292E011C07E -:1032B00083E292E00EC084E292E00BC085E292E0ED -:1032C00008C086E292E005C087E292E002C08AE28E -:1032D00092E0CF910C94A717CF910895882309F419 -:1032E0004BC0823859F40E946F1781FF45C089E3B3 -:1032F0000E94C9210E94962289E30CC0833871F490 -:103300000E946F1780FF38C083E50E94C9210E9488 -:10331000962283E50E940B220C949622843859F45D -:103320000E946F1782FF28C087E40E94C9210E9473 -:10333000962287E4EFCF9CEF980F913A58F390E2F2 -:10334000980F983050F4877091E001C0990F8A95DA -:10335000EAF7892F0E945522DFCF9BE5980F933023 -:1033600020F480E090E00C949117885A833120F487 -:1033700080E090E00C94A7170895882321F00E9424 -:103380004F220C9496220895882321F00E94552202 -:103390000C94962208957F928F929F92AF92BF9243 -:1033A000CF92DF92EF92FF920F931F93CF93DF9311 -:1033B0001F92CDB7DEB77C01C62E772EFC010581AA -:1033C00002950F70128111110E946C220E94C2217D -:1033D000882379F0112369F080E28C0D883048F061 -:1033E00082E00E94AB210E94C22191E0D82ED92612 -:1033F00001C0D12CE72DE295EF70F0E0E05AFF4FCD -:103400000C940A2D872D807F072D0F70882311F0D3 -:103410000295007F112389F0002309F499C180E20D -:103420008C0D883020F4802F0E944F2203C0802F03 -:103430000E945F220E9496228BC18C2D0E946E19E1 -:10344000002309F4C3C180E28C0D883020F4802F62 -:103450000E94552203C0802F0E9465220E9496225E -:10346000B5C1872D807F972D9F70803211F4892FF1 -:1034700003C0892F8295807FCC2021F0F1E0CF1608 -:10348000A1F01DC0112339F0002319F1013009F515 -:103490000E947F229BC1002319F0013009F496C1DC -:1034A00089830E948222898110C1112321F0063074 -:1034B00008F08CC10EC0053008F088C106C1112388 -:1034C00059F0002331F0F701958190FF41C19F70C1 -:1034D00095830E94BD197AC1002309F4F6C03EC14C -:1034E000872D86958695837090E0009719F0019757 -:1034F00061F06CC1112321F08C2D972D937002C0C7 -:1035000080E090E00E94911761C1112321F08C2D81 -:10351000972D937002C080E090E00E94A71756C1DB -:103520008C2D112319F00E94B92402C00E9421257C -:103530000E94A6254BC1872D837009F052C011113E -:1035400045C18C2D829586958770880F880F9C2D9C -:103550009F70892E912CA12CB12C082E04C0880CB0 -:10356000991CAA1CBB1C0A94D2F7C4FE14C00FE01D -:1035700010E020E030E0B901A80104C0440F551F5D -:10358000661F771F8A95D2F7CB01BA0160957095B7 -:103590008095909503C060E070E0CB01272D2695C3 -:1035A0002695237030E02230310569F02330310553 -:1035B00089F0682979298A299B292130310571F000 -:1035C0000E94372003C1682979298A299B290E94F2 -:1035D0005320FCC00E943720C501B4010E941B206B -:1035E000F5C0112319F0872D817001C086958823BD -:1035F00009F4ECC08C2D829586958770880F880F12 -:103600009C2D9F70892E912CA12CB12C082E04C0CA -:10361000880C991CAA1CBB1C0A94D2F7C4FE14C0C7 -:103620000FE010E020E030E0B901A80104C0440F31 -:10363000551F661F771F8A95D2F7CB01BA01609597 -:1036400070958095909503C060E070E0CB01272DC8 -:10365000269526952370422F50E04230510569F09F -:103660004330510589F0682979298A299B294130FD -:10367000510571F00E941121A9C0682979298A2970 -:103680009B290E942D21A2C00E941121C501B401D5 -:103690000E94F5209BC08C2D90E0FC01E05EF109BA -:1036A000E531F10508F050C0E059FF4F0C940A2DA8 -:1036B0000C2D0F70872D8F71112321F00E948E2009 -:1036C000802F07CF0E94AF20802F0E94C4197EC098 -:1036D000112341F0053008F079C0872D8F710E94C9 -:1036E000D42074C0063008F071C0F7CF112339F030 -:1036F000872D8F710E948E2069C01123C9F3872DF9 -:103700008F710E94AF2062C0112329F0872D8F7125 -:103710000E9479205BC00E946F2058C0112351F095 -:10372000172D1F71812F0E948E2063E0812F0E9430 -:10373000A2214CC081E00E94AB21023008F446C0B7 -:1037400082E00E94AB2142C0112331F0002381F2BC -:103750008C2D0E94A6183AC0002389F28C2D0E945D -:103760006E1934C0472D4F706C2DC7010E9496030F -:103770000E94931F2BC0111129C0472D4F7050E09C -:1037800042305105B9F04CF44115510581F04130FA -:103790005105E1F40E94A12819C04330510569F098 -:1037A0004430510599F48C2D0E94F3280FC00E94DB -:1037B0008A280CC00E94BD2809C00E94D02806C0DB -:1037C000472D4F706C2DC7010E946006DD20F9F077 -:1037D0000E949E2180FD1BC0F70112820E94982149 -:1037E0000E948E20C7010E94161C0E9498210F90F3 -:1037F000DF91CF911F910F91FF90EF90DF90CF90CD -:10380000BF90AF909F908F907F900C94AF200F90BF -:10381000DF91CF911F910F91FF90EF90DF90CF90AC -:10382000BF90AF909F908F907F9008950F931F93BC -:10383000CF93DF93EC01888199812B813C81232BED -:10384000B9F09F3F11F48F3F99F0CE010E945F04C1 -:10385000882371F0688179818A810E9494218C018A -:103860000E9449210E941020B801CE010E94CB196C -:10387000DF91CF911F910F9108950E946C220E94B9 -:103880007C220E9441220E9496220E9457260E947A -:10389000A62580E090E00E94911780E090E00C94D3 -:1038A000A7170E945C220C943D1C0E948921292F9D -:1038B00022952F7030E02C3031054CF42A30310540 -:1038C0006CF42250310922303105A8F407C02C30A5 -:1038D000310569F02F30310551F00DC0803F69F09E -:1038E00018F4803E40F409C0843F29F406C093FBDD -:1038F000882780F9089580E0089581E00895CF93A6 -:10390000DF9300D000D01F92CDB7DEB70F900F909D -:103910000F900F900F90DF91CF910895CF93DF9389 -:1039200000D000D000D0CDB7DEB726960FB6F89401 -:10393000DEBF0FBECDBFDF91CF9108951F93CF9310 -:10394000DF93C0919F0216E08091A002C81799F002 -:10395000D0E01C9FF0011D9FF00D1124EF55FD4F8D -:103960004081518162817381848195810E948E1C86 -:103970002196C770E9CFDF91CF911F9108954091B3 -:10398000D1025091D2026091D3027091D402809101 -:10399000D5029091D6020C948E1C8091D60282950D -:1039A0008F7009F054C08091D302882309F44FC06E -:1039B00080919F02A091A0026091D1027091D202E9 -:1039C0004091D4025091D502B6E08A1709F43FC065 -:1039D00090E041155105C1F17F3F11F46F3FA1F116 -:1039E000B89FF001B99FF00D1124EF55FD4F2181D3 -:1039F00072132AC02081621327C02281211124C0A2 -:103A0000238134812417350710F421503109241BF8 -:103A1000350B283C3105C0F42091D6022F7020616F -:103A20002093D60226E0289FF001299FF00D112453 -:103A3000EA55FD4F80818F708061808381ED92E037 -:103A40000E94161C0C949E1C01968770BECF089590 -:103A5000CF92DF92EF92FF920F931F93CF93DF935A -:103A6000CDB7DEB762970FB6F894DEBF0FBECDBFFD -:103A70008C0185E0F801DE011D9601900D928A957A -:103A8000E1F7D8014C9111965C91119712966C91C7 -:103A900012971396CD90DC9014973091D1027091CB -:103AA000D2028091D4029091D502009709F46BC1A3 -:103AB0007F3F19F43F3F09F466C1E090D302EE2046 -:103AC00009F4C0C02091D602C816D90628F0F60124 -:103AD000E81BF90BCF0104C0809590958C0D9D1DBE -:103AE000FF24F394883C910578F0F12C207F09F0B5 -:103AF000C6C07C2DD98AC88A89890E947F1C81ED25 -:103B000092E00E94161CB1C0822F807F09F046C04F -:103B1000751314C0341312C0611110C02F702061CE -:103B20002093D6020E94BF1C81ED92E00E94161CD9 -:103B30008091D602D80115968C932EC0CD2819F10C -:103B40005F3F11F44F3FF9F0F62E61111CC08091D8 -:103B50009F022091A00236E0821709F45AC090E03B -:103B6000389FF001399FF00D1124EF55FD4F718101 -:103B7000571306C07081471303C07281711103C0CF -:103B800001968770E9CFF62E662309F418C180915B -:103B9000D60281608093D602F12C11C1751308C042 -:103BA000341306C0611104C08091D602D801C3C08D -:103BB0004D875E878D859E856A8B0E94551C6A891C -:103BC0008823E1F16623D1F12091D602822F8295DC -:103BD0008F7090E0029774F08091D1029091D202A0 -:103BE00098878F831986DB86CA862C87CE01079635 -:103BF0000E94161C86E0F801A1EDB2E001900D9242 -:103C00008A95E1F70E94CD1C0E94BF1CFF24F3940B -:103C1000D6C04D875E878D859E850E948921292F7C -:103C200022952F7030E0223031050CF0BCC09F701F -:103C300009F0B6C0805E883008F4C1C0C8010E9497 -:103C4000161CE4CFC816D90608F453C0F601E81BC9 -:103C5000F90BCF01883C910508F450C0F12C7C2D64 -:103C6000D98AC88A89890E947F1CE1EDF2E086E04A -:103C7000DF011D928A95E9F70E94BF1CA0C0751351 -:103C800014C0341312C0611110C08091D602F80123 -:103C90008583C8010E94161C86E0E1EDF2E0DF0199 -:103CA0001D928A95E9F7FE2C8AC04D875E878D8527 -:103CB0009E856A8B0E94551C6A89882309F4BECFB1 -:103CC000662309F4BBCF2091D602822F82958F7094 -:103CD00090E002970CF48ECF8091D1029091D202A5 -:103CE0009A8389831B82DD82CC822E83CE0101964A -:103CF0007FCF809590958C0D9D1DACCFF62E6623C1 -:103D000009F49CCF75132EC034132CC02091D60219 -:103D100020FD1FC0822F82958F70D9F0D801159693 -:103D20002C9315978F3049F08F5F982F9295907F45 -:103D3000822F8F70892B15968C93C8010E94161CB8 -:103D400086E0F801A1EDB2E001900D928A95E1F7CD -:103D500093CF86E0F801A1EDB2E001900D928A9533 -:103D6000E1F72DC04D875E878D859E850E94551C8D -:103D7000811140CF8091D60281608093D602C80124 -:103D80000E94161C1CC0662309F458CF4D875E871D -:103D90008D859E850E94551C882309F44FCF2ACF1C -:103DA000811148CF0CC0243031050CF047CF9F70F3 -:103DB00009F440CFF8019581907F09F03BCF8F2D1A -:103DC00062960FB6F894DEBF0FBECDBFDF91CF91E4 -:103DD0001F910F91FF90EF90DF90CF9008951F9368 -:103DE000CF93DF93CDB7DEB72C970FB6F894DEBF35 -:103DF0000FBECDBF4F83588769877A878B879C8793 -:103E0000CE0107960E94281D882369F08F8198852E -:103E10002A853B85232BF1F19F3F09F063C08F3F3B -:103E200009F060C037C086E0FE013796DE011196CA -:103E300001900D928A95E1F76F817885EA85FB857F -:103E4000309741F17F3F11F46F3F21F12091A002A3 -:103E500030E0C90101968770992740919F0250E098 -:103E60008417950709F447C069837A83FD83EC833F -:103E700096E0929FD001939FB00D1124AF55BD4F96 -:103E8000FE01319601900D929A95E1F78093A00280 -:103E90000E949E1C16E080919F029091A0028917BB -:103EA000C1F1189FC00111248F559D4F0E94281DFC -:103EB000882379F1E0919F021E9FF0011124EF55B4 -:103EC000FD4F4081518162817381848195810E947F -:103ED0008E1C80919F0290E00196877099278093B5 -:103EE0009F02D9CF4F81588569857A858B859C85BE -:103EF0000E948E1CCFCF0E94511C1092A0021092E3 -:103F00009F02E1EDF2E086E0DF011D928A95E9F77C -:103F1000C1CF2C960FB6F894DEBF0FBECDBFDF9198 -:103F2000CF911F910895EF92FF920F931F93CF931C -:103F3000DF938C01009709F46CC0F12CEE24E3941C -:103F4000E8012196F8018491843740F4843008F028 -:103F500051C0813081F0823019F15BC0853709F49E -:103F600044C0A8F19CE7980F903708F052C08F77B3 -:103F70000E946E1941C00E5F1F4FFE01C49180E286 -:103F80008C0F883048F4C7708E2D01C0880FCA95F9 -:103F9000EAF70E946F2214C08C2F0E94A6182DC031 -:103FA0000E5F1F4FFE01C49180E28C0F883058F4E1 -:103FB000C7708E2D01C0880FCA95EAF70E9475223E -:103FC0000E9496221AC08C2F0E946E1916C00E5F96 -:103FD0001F4FFE01C491CC2381F08FE99FE0019730 -:103FE000F1F700C00000C150F6CF0E5F1F4FFE0179 -:103FF000F49003C00E94A6188E018F2D882309F427 -:104000009FCFEFE9FFE03197F1F700C0000081504A -:10401000F5CFDF91CF911F910F91FF90EF90089511 -:1040200008956093DB027093DC028093DD0290932D -:10403000DE020C943D1C0F931F930091DB02109144 -:10404000DC022091DD023091DE02DC01CB01802B0D -:10405000912BA22BB32B8093DB029093DC02A093D5 -:10406000DD02B093DE021F910F910C943D1C0F9363 -:104070001F930091DB021091DC022091DD02309150 -:10408000DE02DC01CB0180239123A223B3238093A2 -:10409000DB029093DC02A093DD02B093DE021F915D -:1040A0000F910C943D1C0F931F930091DB02109114 -:1040B000DC022091DD023091DE02DC01CB018027A1 -:1040C0009127A227B3278093DB029093DC02A09371 -:1040D000DD02B093DE021F910F910C943D1C1092F3 -:1040E000D7021092D8021092D9021092DA020C94E0 -:1040F0003D1C41E050E060E070E004C0440F551FFB -:10410000661F771F8A95D2F74093D7025093D80243 -:104110006093D9027093DA020C943D1C41E050E0A8 -:1041200060E070E004C0440F551F661F771F8A953A -:10413000D2F78091D7029091D802A091D902B09184 -:10414000DA02482B592B6A2B7B2B4093D7025093D2 -:10415000D8026093D9027093DA020C943D1C41E0BE -:1041600050E060E070E004C0440F551F661F771FE9 -:104170008A95D2F740955095609570958091D702B9 -:104180009091D802A091D902B091DA024823592324 -:104190006A237B234093D7025093D8026093D902BD -:1041A0007093DA020C943D1C41E050E060E070E056 -:1041B00004C0440F551F661F771F8A95D2F7809160 -:1041C000D7029091D802A091D902B091DA02482783 -:1041D00059276A277B274093D7025093D8026093D0 -:1041E000D9027093DA020C943D1C0F931F93009137 -:1041F000D7021091D8022091D9023091DA02DC0165 -:10420000CB01802B912BA22BB32B8093D7029093C1 -:10421000D802A093D902B093DA021F910F910C94A7 -:104220003D1C0F931F930091D7021091D80220914B -:10423000D9023091DA02DC01CB0180239123A22341 -:10424000B3238093D7029093D802A093D902B0935E -:10425000DA021F910F910C943D1C0F931F93009154 -:10426000D7021091D8022091D9023091DA02DC01F4 -:10427000CB0180279127A227B3278093D702909361 -:10428000D802A093D902B093DA021F910F910C9437 -:104290003D1C0895CF92DF92EF92FF920F931F93F0 -:1042A000CF93DF938C01C090DB02D090DC02E090D2 -:1042B000DD02F090DE028091D7029091D802A091A9 -:1042C000D902B091DA02C82AD92AEA2AFB2ACFE118 -:1042D000D0E0D701C6010C2E04C0B695A7959795DE -:1042E00087950A94D2F780FF06C0B8018C2F0E94F0 -:1042F000E508019721F4219760F780E001C08C2F39 -:10430000DF91CF911F910F91FF90EF90DF90CF90B1 -:104310000895CF93DF93EC010E944A21BE010E94D1 -:10432000E508DF91CF910895CB010E94892108957E -:104330008091DF0285958595859508958091DF02AE -:104340008770089598E0899F90011124262B20936F -:10435000DF020C948E202091DF02809582238093CF -:10436000DF02982F977069F430E0482F552747FDFA -:1043700050952417350729F08595859585950C94DA -:10438000AF2008959091DF02977081E009F480E0FA -:10439000089590911701992321F09091180191119E -:1043A00009C02091190130911A01F90132969FEF4D -:1043B00040E01FC0982F9695969596959F3050F5A2 -:1043C000E0911901F0911A01E90FF11D877021E0C8 -:1043D00030E0A90102C0440F551F8A95E2F7CA01D7 -:1043E0009181892B818308959F3F39F04F5F4E3033 -:1043F00041F051915813F8CF0DC05111F7CF942FC0 -:10440000F5CF9F3F39F0F901E90FF11D97FDFA95BE -:1044100082830895089590911701992321F0909136 -:104420001801911109C02091190130911A01F90167 -:104430003296205F3F4F1FC0982F96959695969580 -:104440009F30F0F4E0911901F0911A01E90FF11D8C -:10445000877021E030E0A90102C0440F551F8A9502 -:10446000E2F7CA018095918189238183089531966D -:10447000E217F30729F090819813F9CF1082F7CF54 -:10448000089581E090E0E0911901F0911A01E80FA0 -:10449000F91F1082019680319105A9F70895909136 -:1044A000F302892B8093F302089580959091F30293 -:1044B00089238093F30208951092F3020895909156 -:1044C000F202892B8093F202089580959091F20276 -:1044D00089238093F20208951092F2020895909138 -:1044E000F102892B8093F102089580959091F10259 -:1044F00089238093F10208951092F1020895809328 -:10450000E00208951092E0020895809119019091BF -:104510001A01FC0131969C01205F3F4F80E0919190 -:1045200091118F5FE217F307D1F70895E091190118 -:10453000F0911A018091F3028083E0911901F091CA -:104540001A0190818091F202892B8083E0911901F8 -:10455000F0911A0190818091F102892B80838091E2 -:10456000E002882361F0E0911901F0911A01908135 -:10457000892B80830E94852281111092E002809114 -:10458000190190911A010C947B1720E0009739F0E3 -:10459000AC0141505109842395232F5FF7CF822F1F -:1045A000089580911503843039F11092F50220E4CA -:1045B00088E190E00FB6F894A895809360000FBE54 -:1045C0002093600080E00E94FD0280E00E947F094D -:1045D00083B7817F846083BF83B7816083BF789412 -:1045E000889583B78E7F83BF88E10FB6F894809358 -:1045F0006000109260000FBE08950895089580E055 -:104600000E94FD020E94FD220E94DA090E94FE2201 -:104610000E945F0A91E0811101C090E0892F089506 -:104620000E94511C80E00E94FD020E9479280E9495 -:104630006F170C947F091F920F920FB60F921124DF -:104640008F939F93AF93BF938091F502811113C015 -:104650008091F6029091F702A091F802B091F902D0 -:104660004196A11DB11D8093F6029093F702A0938D -:10467000F802B093F902BF91AF919F918F910F9083 -:104680000FBE0F901F90189582E084BD93E095BDFA -:104690009AEF97BD80936E0008952FB7F89480919C -:1046A000F6029091F702A091F802B091F9022FBFA3 -:1046B0000895CF92DF92EF92FF920F931F932FB73F -:1046C000F8944091F6025091F7026091F8027091CF -:1046D000F9022FBF6A017B01EE24FF248C0120E048 -:1046E00030E0C016D106E206F30610F4415051093D -:1046F0009A01281B390BC9011F910F91FF90EF9070 -:10470000DF90CF9008951F920F920FB60F92112451 -:104710008F939F93AF93BF938091F6029091F7028E -:10472000A091F802B091F9020196A11DB11D8093EC -:10473000F6029093F702A093F802B093F902BF91AA -:10474000AF919F918F910F900FBE0F901F90189572 -:104750000E946C14F8942FEF87EA91E62150804074 -:104760009040E1F700C0000087E090EBDC0180930F -:10477000200390932103A0932203B09323039CE092 -:1047800088E10FB6F894A895809360000FBE9093CF -:104790006000FFCF0E940924811102C00E94E5231E -:1047A0000E9414248093F4020E941C2480931E0310 -:1047B00087FB882780F9809318010E941824682FAE -:1047C00070E080E090E00C9411206DEE7EEF80E0D0 -:1047D00090E00E94302D60E082E090E00E941E2D6B -:1047E00060E083E090E00E941E2D60E084E090E0B5 -:1047F0000E941E2D60E085E090E00E941E2D60E08A -:1048000086E090E00E941E2D6FEF87E090E00C9410 -:104810001E2D80E090E00E94182D21E08D3E9E4FDD -:1048200009F020E0822F089582E090E00C94102D92 -:1048300083E090E00C94102D84E090E00C94102D17 -:10484000682F84E090E00C941E2D86E090E00C949C -:10485000102D682F86E090E00C941E2D87E090E0EC -:104860000C94102D682F87E090E00C941E2D809101 -:10487000FC0280FF0BC060911E0185E0689FB001C3 -:10488000112475956795759567952BC081FF09C0B3 -:1048900060911E0185E0689FB001112475956795B0 -:1048A00020C082FF07C060911E0185E0689FB001B3 -:1048B000112417C09091FD029923D1F060911D0140 -:1048C000961788F720911E0185E0289F90011124FA -:1048D000929FA001939F500D112470E0CA010E9485 -:1048E000F62C6038710540F46115710539F002C08D -:1048F00065E070E0862F08958FE7089581E00895C0 -:104900008091FC0280FF08C060911C0170E07595E9 -:1049100067957595679521C081FF06C060911C0160 -:1049200070E07595679519C082FF04C060911C0105 -:1049300070E010C09091FD029923C1F060911B01BD -:104940009617A0F780911C01899FC001112470E087 -:104950000E94F62C6038710528F46115710521F06C -:10496000862F08958FE7089581E0089561E070E053 -:10497000F4CF803F21F40E943724819504C0813F09 -:1049800029F40E943724809300030895823F21F484 -:104990000E943724819504C0833F29F40E94372464 -:1049A0008093FF020895893F19F40E94802405C076 -:1049B0008A3F31F40E9480248195809301030895F9 -:1049C0008B3F21F40E948024819504C08C3F29F400 -:1049D0000E948024809302030895843F21F48091F3 -:1049E000FE02816017C0853F21F48091FE02826043 -:1049F00011C0863F21F48091FE0284600BC0873F86 -:104A000021F48091FE02886005C0883F31F48091D6 -:104A1000FE0280618093FE0208958D3F21F4809113 -:104A2000FC0281600BC08E3F21F48091FC02826009 -:104A300005C08F3F29F48091FC0284608093FC02C2 -:104A40000895803F39F48091000387FF6CC0109275 -:104A5000000369C0813F29F4809100031816BCF35C -:104A600062C09091FF02823F29F497FF5CC01092D0 -:104A7000FF0259C0833F19F41916CCF354C0893F83 -:104A800041F48091010318160CF04DC010920103FF -:104A90004AC08A3F29F48091010387FF44C0F6CFC2 -:104AA0008B3F39F48091020387FF3DC010920203CF -:104AB0003AC08C3F29F4809102031816BCF333C02E -:104AC000843F21F48091FE028E7F17C0853F21F440 -:104AD0008091FE028D7F11C0863F21F48091FE02FD -:104AE0008B7F0BC0873F21F48091FE02877F05C03A -:104AF000883F31F48091FE028F7E8093FE0213C0C6 -:104B00008D3F21F48091FC028E7F0BC08E3F21F4FB -:104B10008091FC028D7F05C08F3F29F48091FC02BB -:104B20008B7F8093FC028091FF0281110EC08091E7 -:104B3000000381110AC080910103811106C0809198 -:104B40000203811102C01092FD0208958EEF92E0DF -:104B50000E9486170E944D239093FB028093FA02D5 -:104B600008951F93CF93DF938091FA029091FB02F7 -:104B70000E945923AC019091FD02992321F02091CC -:104B80001F0130E006C0209120018AE0289F90019B -:104B900011244217530708F486C08091FF02C09188 -:104BA0000003D091010310910203811107C0C111CC -:104BB00076C0D11174C0111172C075C09F3F19F039 -:104BC0009F5F9093FD02181624F40E94372480936F -:104BD000FF028091FF0287FF05C00E943724819564 -:104BE0008093FF021C1624F40E9437248093000354 -:104BF0008091000387FF05C00E9437248195809330 -:104C000000036091FF02662339F1C0910003CC23B9 -:104C100019F1772767FD7095872F972F0E94182A23 -:104C200023E333E343E35FE30E94282B0E94E5295B -:104C30006093FF026C2F772767FD7095872F972F62 -:104C40000E94182A23E333E343E35FE30E94282B07 -:104C50000E94E529609300031D1624F40E9480241D -:104C6000809301038091010387FF05C00E94802487 -:104C7000819580930103111624F40E94802480936F -:104C800002038091020387FF05C00E948024819562 -:104C900080930203DF91CF911F910C94A6259F3F33 -:104CA00009F08ECF96CFDF91CF911F910895EEEF4F -:104CB000F2E085E0DF011D928A95E9F71092FD028E -:104CC0001092FC020895833081F128F4813059F06C -:104CD0008230D1F00895853009F449C0B8F18630AA -:104CE00009F456C0089580912001262F30E0280F46 -:104CF000311D2F3F310524F4680F60932001089582 -:104D00008FEF80932001089580911F01262F30E0BE -:104D1000280F311D2F3F310524F4680F60931F01C8 -:104D200008958FEF80931F01089580911E01262F13 -:104D300030E0280F311D2F3F310524F4680F6093B8 -:104D40001E0108958FEF80931E01089580911D012B -:104D5000262F30E0280F311D2F3F310524F4680F36 -:104D600060931D0108958FEF80931D010895809138 -:104D70001C01262F30E0280F311D2F3F310524F470 -:104D8000680F60931C0108958FEF80931C010895B4 -:104D900080911B01262F30E0280F311D2F3F310558 -:104DA00024F4680F60931B0108958FEF80931B011B -:104DB0000895833011F128F4813049F0823091F068 -:104DC0000895853081F120F18630C1F108958091F8 -:104DD0002001681720F4861B80932001089510920B -:104DE0002001089580911F01681720F4861B80938D -:104DF0001F01089510921F01089580911E016817E8 -:104E000020F4861B80931E01089510921E010895C0 -:104E100080911D01681720F4861B80931D01089561 -:104E200010921D01089580911C01681720F4861BC3 -:104E300080931C01089510921C01089580911B011C -:104E4000681720F4861B80931B01089510921B01A4 -:104E500008950F931F93873208F048C08E3108F0F1 -:104E60008DC0803109F477C008F5873009F461C03E -:104E700068F4863009F09DC08091F402817F8E7FB6 -:104E80008093F40281E08093040394C08B3009F492 -:104E900089C08E3009F08DC08091F40282FB2227F8 -:104EA00020F991E0922790FB82F95EC0863109F4E7 -:104EB00079C060F4813109F07CC00E94511C90914E -:104EC000180181E08927809318016CC0893109F4A9 -:104ED00069C08B3109F06DC08091F40281FB2227FB -:104EE00020F991E0922790FB81F93EC0883309F4C4 -:104EF00059C050F4893209F457C0853309F454C0BD -:104F0000873209F451C055C0833409F44DC028F4E8 -:104F10008A3308F44EC0895332C0883409F049C03E -:104F20000E94511C0E948F0A0E9456040E94A823CE -:104F300039C09091F402892F8095817080FB90F99F -:104F400029F0966098609093F40234C0997F977F1F -:104F50009093F40227C08091F40283FB222720F96A -:104F600091E0922790FB83F98093F4029923D1F08A -:104F70008091F40281608093F40214C08D5141E06D -:104F800050E060E070E08A019B0104C0000F111F37 -:104F9000221F331F8A95D2F7C901B8010E94112040 -:104FA0000E94511C81E006C061E070E080E090E06A -:104FB000F5CF80E01F910F91089580E0089580E083 -:104FC0000895CF93C82F80910403813069F018F0C1 -:104FD0008230C9F184C0E0911901F0911A018081F9 -:104FE000823209F07EC007C0E0911901F0911A01E8 -:104FF0008081823261F48C2F0E94DD27811104C0F0 -:105000008C2F0E9429271DC081E090E01AC08C2FB0 -:105010000E94DF27811114C0C43179F048F4CB30ED -:1050200079F0C03109F061C082E08093040308C0C8 -:10503000C93219F0C83321F058C01092040355C08A -:1050400081E0817054C0C93291F120F5C43179F109 -:10505000B0F4C73009F047C08EE18093200182E3AD -:1050600080931F018AE080931E0184E180931D01DB -:1050700088E080931C0188E280931B0134C0CE51EC -:10508000C63088F5EC2FF0E0E854FE4F8081809325 -:10509000030329C0CE34E9F020F4CB3421F56AE0D3 -:1050A00013C0C13579F0C235F1F461E00DC08091D3 -:1050B0000303882319F01092030315C081E0809345 -:1050C000040315C061E006C0809103030E946326BB -:1050D0000AC06AE0809103030E94D92604C010929E -:1050E000040380E004C081E002C080E0AACFCF9139 -:1050F00008950E940924811102C00E94E5230E94A4 -:10510000252480931F0380FF02C0869501C080E0A4 -:105110000C94FD0280911F03982F9695292F30E063 -:10512000233031054CF49F5F990F8170892B81608A -:1051300080931F030E94292480911F0386950C945D -:10514000FD0280911F03982F969591F09158990F29 -:105150008170892B80931F038E7F91E009F490E08A -:1051600080911F0390FB80F980931F030E942924E4 -:1051700080911F0386950C94FD0280911F03982F48 -:10518000909590FB80F980931F030E9429248091C1 -:105190001F0380FF02C0869501C080E00C94FD02D1 -:1051A00090911F03892F86958F5F8F779170843040 -:1051B00028F4880F892B80931F0302C090931F034C -:1051C00080911F038E7F91E009F490E080911F038E -:1051D00090FB80F980931F030E94292480911F0374 -:1051E00086950C94FD0220911F03922F9695892796 -:1051F000982F990F822F8170892B80931F038E7FA8 -:1052000091E009F490E080911F0390FB80F9809376 -:105210001F030E94292480911F0386950C94FD0290 -:1052200080911F03869508955058BB27AA270ED05A -:10523000D1C1C2D130F0C7D120F031F49F3F11F479 -:105240001EF4B7C10EF4E095E7FB9FC1E92FD3D15F -:1052500080F3BA17620773078407950718F071F493 -:105260009EF5EBC10EF4E0950B2EBA2FA02D0B018D -:10527000B90190010C01CA01A0011124FF27591B9B -:1052800099F0593F50F4503E68F11A16F040A22FA1 -:10529000232F342F4427585FF3CF46953795279512 -:1052A000A795F0405395C9F77EF41F16BA0B620B11 -:1052B000730B840BBAF09150A1F0FF0FBB1F661F58 -:1052C000771F881FC2F70EC0BA0F621F731F841F9B -:1052D00048F4879577956795B795F7959E3F08F0C1 -:1052E000B3CF9395880F08F09927EE0F9795879580 -:1052F000089527D108F481E008950CD06BC163D1E3 -:1053000040F05AD130F021F45F3F19F03EC1511105 -:1053100095C14FC170D198F39923C9F35523B1F3C7 -:10532000951B550BBB27AA2762177307840738F014 -:105330009F5F5F4F220F331F441FAA1FA9F333D073 -:105340000E2E3AF0E0E830D091505040E695001C27 -:10535000CAF729D0FE2F27D0660F771F881FBB1FE3 -:10536000261737074807AB07B0E809F0BB0B802DBD -:10537000BF01FF2793585F4F2AF09E3F510568F009 -:1053800004C15CC15F3FECF3983EDCF386957795F2 -:105390006795B795F7959F5FC9F7880F911D96950B -:1053A000879597F90895E1E0660F771F881FBB1F67 -:1053B000621773078407BA0720F0621B730B840B14 -:1053C000BA0BEE1F88F7E095089504D06894B111E8 -:1053D00035C1089518D188F09F5790F0B92F9927BB -:1053E000B751A0F0D1F0660F771F881F991F1AF0F0 -:1053F000BA95C9F712C0B13081F01FD1B1E008955C -:105400001CC1672F782F8827B85F39F0B93FCCF3DC -:10541000869577956795B395D9F73EF490958095E5 -:10542000709561957F4F8F4F9F4F0895E89409C005 -:1054300097FB3EF490958095709561957F4F8F4FC7 -:105440009F4F9923A9F0F92F96E9BB279395F695DD -:10545000879577956795B795F111F8CFFAF4BB0F5B -:1054600011F460FF1BC06F5F7F4F8F4F9F4F16C0BF -:10547000882311F096E911C0772321F09EE8872F49 -:10548000762F05C0662371F096E8862F70E060E005 -:105490002AF09A95660F771F881FDAF7880F96957E -:1054A000879597F9089588D018F011F08CD038F4CA -:1054B00080C0C4C0E92F9FD0B0F35523C9F3E7FBE8 -:1054C0006217730784079507A8F199F3E92FFF275F -:1054D00088232AF03197660F771F881FDAF7952FF8 -:1054E0005527442332F091505040220F331F441F60 -:1054F000D2F7BB27E91BF50B621B730B840BB109B9 -:10550000C1F222F4620F731F841FB11D31972AF07C -:10551000660F771F881FBB1FEFCF915050405AF086 -:1055200041F0882332F0660F771F881F915050405A -:10553000C1F7939530C08695779567959F5FD9F7AA -:10554000F8CF990F0008550FAA0BE0E8FEEF1616EA -:105550001706E807F907C0F012161306E407F50767 -:1055600098F0621B730B840B950B39F40A2661F0DB -:10557000232B242B252B21F408950A2609F4A1407E -:10558000A6958FEF811D811D089597F99F6780E88B -:1055900070E060E008959F3F31F0915020F48795CE -:1055A00077956795B795880F911D9695879597F98B -:1055B00008959FEF80EC089500240A9416161706AC -:1055C00018060906089500240A94121613061406F4 -:1055D00005060895092E0394000C11F4882352F057 -:1055E000BB0F40F4BF2B11F460FF04C06F5F7F4F0F -:1055F0008F4F9F4F089557FD9058440F551F59F0F6 -:105600005F3F71F04795880F97FB991F61F09F3FAF -:1056100079F087950895121613061406551FF2CFD8 -:105620004695F1DF08C0161617061806991FF1CF28 -:1056300086957105610508940895E894BB2766274F -:105640007727CB0197F908957CDF08F48FEF089551 -:105650000BD0C0CFB1DF28F0B6DF18F0952309F0EA -:1056600094CFA7CF1124EACFC6DFA0F3959FD1F343 -:10567000950F50E0551F629FF001729FBB27F00D00 -:10568000B11D639FAA27F00DB11DAA1F649F662755 -:10569000B00DA11D661F829F2227B00DA11D621FA4 -:1056A000739FB00DA11D621F839FA00D611D221F5E -:1056B000749F3327A00D611D231F849F600D211D42 -:1056C000822F762F6A2F11249F5750408AF0E1F0E5 -:1056D00088234AF0EE0FFF1FBB1F661F771F881F2E -:1056E00091505040A9F79E3F510570F04ECFA6CF84 -:1056F0005F3FECF3983EDCF3869577956795B79519 -:10570000F795E7959F5FC1F7FE2B880F911D969542 -:10571000879597F90895FA01EE0FFF1F309621053E -:10572000310599F16115710561F48038BFE39B077C -:1057300049F168949038810561F08038BFEF9B078C -:1057400041F0992342F5FF3FE1053105210511F1B3 -:10575000E8940894E795D901AA2329F4AB2FBE2F2A -:10576000F85FD0F310C0FF5F70F4A695E0F7F7394B -:1057700050F019F0FF3A38F49F779F930CD00F90B8 -:1057800007FC905808953EF014CF60E070E080E888 -:105790009FE308954FE79F775F934F933F932F9336 -:1057A0009ED02F913F914F915F9152DF05C019F428 -:1057B0000EF0EBCE42CFFDCE26DFC8F39638C0F711 -:1057C00007F80F92E8942BE33AEA48EB5FE74EDFE5 -:1057D0000F920F920F924DB75EB70F92C0D0EAE0D2 -:1057E000F1E016D04F915F91EF91FF91E595EE1F9B -:1057F000FF1F49F0FE57E0684427EE0F441FFA955B -:10580000E1F74195550B32D00F9007FE26C0089561 -:10581000DF93CF931F930F93FF92EF92DF927B0161 -:105820008C01689405C0DA2EEF011EDFFE01E894BA -:10583000A5912591359145915591AEF3EF0106DD86 -:10584000FE019701A801DA9479F7DF90EF90FF90BD -:105850000F911F91CF91DF9108959B01AC0160E002 -:1058600070E080E89FE349CD90CE95CECCDEE8F3A2 -:105870009923D9F3940F511DBBF39150504094F0EC -:1058800059F0882332F0660F771F881F91505040DF -:10589000C1F79E3F510544F7880F911D9695879556 -:1058A00097F908955F3FACF0983E9CF0BB27869532 -:1058B00077956795B79508F4B1609395C1F7BB0FDD -:1058C00058F711F460FFE8CF6F5F7F4F8F4F9F4F06 -:1058D000E3CFB4CE0EF05FCE6CCE689456CE93DE9E -:1058E000C8F39923D1F3C6F3DF93CF931F930F939C -:1058F000FF92C92FDD2788232AF02197660F771F93 -:10590000881FDAF720E030E040E85FEB9FE388395A -:1059100020F0803E30F021968F7787DCE2E3F1E0E3 -:1059200003C083DCEFE5F1E073DF8B01BE01EC0126 -:10593000FB2E6F5771097595771F880B990B78DDD2 -:1059400028E132E741E35FE38FDEAF2D9801AE013E -:10595000FF900F911F91CF91DF9178DC3BCEFA0140 -:10596000DC01AA0FBB1F9B01AC01BF5728F4222703 -:105970003327442750781FC0B75188F4AB2F002439 -:10598000469537952795011CA395D2F3002069F021 -:10599000220F331F441FB395DAF30DD045CC61308D -:1059A0007105A0E88A07B94630F49B01AC0166276F -:1059B000772788279078309621F02083318342839F -:1059C00053830895AA1BBB1B51E107C0AA1FBB1F2D -:1059D000A617B70710F0A61BB70B881F991F5A957B -:1059E000A9F780959095BC01CD01089597FB072EEE -:1059F00016F4009407D077FD09D00E94E22C07FC32 -:105A000005D03EF4909581959F4F089570956195CE -:105A10007F4F0895EE0FFF1F0590F491E02D09943C -:105A2000F999FECF92BD81BDF89A992780B5089566 -:105A3000A8E1B0E042E050E00C94382D262FF9990F -:105A4000FECF92BD81BDF89A019700B4021639F0DD -:105A50001FBA20BD0FB6F894FA9AF99A0FBE0895AE -:105A60000196272F0E941F2D0C941E2DDC01CB01C7 -:105A7000FC01F999FECF06C0F2BDE1BDF89A31965E -:105A800000B40D9241505040B8F70895F894FFCFFC -:105A90009D00640007000CFF0000003F64731001CC -:105AA00011DE10AA1076100101E1022808140A3252 -:105AB0001E0002040507090B0C0E10111315171810 -:105AC0001A1C1D1F2123242628292B2D2F30323468 -:105AD0003537393B1F0F03764F5F6F7F4969437935 -:105AE000095953633149803F5D8B803FF8BF803F48 -:105AF000CAE1803F73ED803FCAE1803FF8BF803F3D -:105B00005D8B803F3149803F0000803FF16D7F3FDA -:105B100075EA7E3F4C827E3F833F7E3F84287E3FF6 -:105B2000833F7E3F4C827E3F75EA7E3FF16D7F3F33 -:105B30000000803F3F4D36390505B8048204490412 -:105B4000DC03F5030E04270401020304050607081D -:025B500009004A -:00000001FF diff --git a/keyboard/planck/keymaps/cbbrowne/config_user.h b/keyboard/planck/keymaps/cbbrowne/config_user.h new file mode 100644 index 0000000000..de46ec6aaa --- /dev/null +++ b/keyboard/planck/keymaps/cbbrowne/config_user.h @@ -0,0 +1,7 @@ +/* cbbrowne user configuration */ + +#define randadd 53 +#define randmul 181 +#define randmod 167 + + diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c index 250d412ced..482cf63e11 100644 --- a/keyboard/planck/keymaps/cbbrowne/keymap.c +++ b/keyboard/planck/keymaps/cbbrowne/keymap.c @@ -2,6 +2,8 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#include "config_user.h" +#include "quantum.h" /* Each layer is given a name to aid in readability, which is then used in the keymap matrix below. The underscores do not denote @@ -19,26 +21,25 @@ /* Things I did not like about the default mapping - - I find control too hard to get to. I think I'll want it on a - left finger. Gonna need to lose something to do that... - - Almost certainly, KC_LCTL should be on [2][1] - - having dash on [lower-j] is a bit nonintuitive, but may be OK + - I found control too hard to get to. I use it more than Tab, so + switched it there. + - Having dash on [lower-j] is a bit nonintuitive, but may be OK - I'll bet I should switch ESC/TAB - I'm suspicious that I want to shift M(0) from [4][1] to [4][2], and shift ESC off the first column so KC_LCTL and KC_LALT can be on the first column. - - I think I wanna swap ' and ENTER + - I needed to swap ' and ENTER - All of the above are done :-) - - I'm keeping Colemak and Dvorak around for reference, and added - Workman just for fun. They're useless to me, though. + - Dropped out support for Dvorak and friends. They aren't + improvements to me */ /* Some interesting things implemented - - There is a macro that writes out "cbbrowne" just because I could + - There is a macro that writes out "cbbrowne" to show that I could - There is a (somewhat cruddy) linear congruential random number generator. - I would like to be seeding it with clock info to make it look @@ -50,16 +51,15 @@ of the random number generator - in both, note the use of register_code()/unregister_code() to indicate the desired key + - I do indeed want a sweet number pad! */ /* Other things to do... - Need to think about what zsh and readline actions I use lots - - Wanna figure out macros, so I can put in a "cbbrowne" macro - Ought to ensure that Control-Alt-Delete is convenient enough - How about Alt-F1 thru Alt-F8? - What's the keystroke to get from X to console these days? - - I do indeed want a sweet number pad! - A layer for doing console switching would not be a bad idea */ @@ -99,10 +99,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_KP] = { /* Key Pad */ - {KC_ESC, M(M_USERNAME), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_BSPC}, - {KC_LCTL, M(M_RANDDIGIT), KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_MINUS, KC_7, KC_8, KC_9, KC_ENT}, - {KC_LSFT, M(M_RANDLETTER), KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_PLUS, KC_4, KC_5, KC_6, KC_DOT}, - {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_1, KC_2, KC_3, KC_0} + {KC_ESC, M(M_USERNAME), KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_LCTL, M(M_RANDDIGIT), KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_LSFT, M(M_RANDLETTER), KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER}, + {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT} } }; @@ -110,11 +110,8 @@ const uint16_t PROGMEM fn_actions[] = { }; /* This bit of logic seeds a wee linear congruential random number generator */ - +/* lots of prime numbers everywhere... */ static uint16_t random_value = 157; -#define randadd 53 -#define randmul 181 -#define randmod 167 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -135,9 +132,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case M_USERNAME: if (record->event.pressed) { - return MACRO( I(1), T(C), T(B), T(B), T(R), T(O), T(W), T(N), T(E)); - } else { - return MACRO_NONE ; + SEND_STRING("cbbrowne"); } break; case M_RANDDIGIT: diff --git a/keyboard/planck/keymaps/cbbrowne/readme.md b/keyboard/planck/keymaps/cbbrowne/readme.md new file mode 100644 index 0000000000..edb33f483d --- /dev/null +++ b/keyboard/planck/keymaps/cbbrowne/readme.md @@ -0,0 +1,63 @@ +cbbrowne custom keyboard +============================== + +Due to cbbrowne@acm.org +Christopher Browne + +This was originally based on the default keyboard map, but I have been +doing sundry experimentation: + +1. Experiments +---------------------------------------- + + * To figure things out about the toolset + * I'm an Emacs guy, so will be needing a fair bit of tuning + * It made sense to mess around some with keyboard maps. + - I tried added Workman alongside Dvorak and Colemak + - Boy, oh boy, these don't help!!! + - I have done 30 years of learning of Emacs key mappings, and + these alternative keyboards massively mess me up + - I added a keypad, originally based on keymaps/numpad.c, but + mighty substantially revised, as that one seems to be rotated 90 + degrees from usual conventions for number pads + * The keypad layer also includes some sample "hacks" of cool things, + all using actions attached in using the function action_get_macro() + - Key [1][2] aka "q" types out my name, cbbrowne, as a fun example + of a key generating a bunch of keystrokes. The keystroke is + sufficiently inconvenient that it isn't terribly practical for me + to use it, but hey, it shows how others might use this facility + in a more useful context. + - Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random + - Key [3][2] aka "z" uses a random number generator to select a letter a-z at random + +2. Some code structure ideas +--------------------------------------------------- + + Each layer is given a name to aid in readability, which is then + used in the keymap matrix below. The underscores do not denote + anything - you can have a layer called STUFF or any other name. + + Layer names don't all need to be of the same length, obviously, and + you could also skip them entirely and just use numbers, though that + means needing to manage the numbers. + + It is preferable to keep the symbols short so that a line worth of + key mappings fits compactly onto a line of code. It might be an + interesting idea to express the maps rotated 90%, so that you + only need to fit 4 symbols onto each line, rather than 12. + + I used enums to manage layer IDs and macro IDs so that I don't need + to care (beyond "start at 0", and arguably that's not needed) about + their values. + +3. Things I did not like about the default mapping +--------------------------------------------------------- + + * I found control too hard to get to. I use it more than Tab, so + switched it there. + * Having dash on [lower-j] is a bit nonintuitive, but may be OK + * I switched ESC/TAB/M(0) around + * I'm suspicious that I want to shift M(0) from [4][1] to [4][2], + and shift ESC off the first column so KC_LCTL and KC_LALT can + be on the first column. + * I needed to swap ' and ENTER -- cgit v1.2.1