Added C# developer keymap

pull/141/head
Maxime Millet 9 years ago
parent 8aeaa6df81
commit 8c051f2d05

@ -0,0 +1,1161 @@
:100000000C94E9020C942D030C942D030C942D03F5
:100010000C942D030C942D030C942D030C942D03A0
:100020000C942D030C942D030C94720D0C94360D2E
:100030000C94911B0C942D030C942D030C942D0304
:100040000C942D030C942D030C942D030C942D0370
:100050000C942D030C94171C0C942D030C942D035D
:100060000C942D030C942D030C942D030C942D0350
:100070000C942D030C942D030C942D030C942D0340
:100080000C942D030C942D030C942D030C942D0330
:100090000C942D030C942D030C942D030C942D0320
:1000A0000C942D030C942D030C942D03260227028F
:1000B0002F0230022B7100001E00140004001D747A
:1000C000360219011F001A0016001B0037022C7897
:1000D00020000800070006003102287221001500E8
:1000E0000900190024020601220017000A00050079
:1000F0000000378134022A000000380000003682F8
:1001000016014C000000330000004A8223001C004E
:100110000B00110000004D81240018000D0010009C
:100120002E00520025000C000E0034002E02287212
:10013000260012000F001E022D002C78270013004D
:100140002D023802250251002F0030001C011D0134
:100150000154000035002B002900E100E000000000
:100160001E00140004001D00E30001001F001A001F
:1001700016001B00E2000100200008000700060036
:10018000E600010021001500090019002900010006
:10019000220017000A000500000001002D000100E8
:1001A00000002B0000001B012E00010000002900B0
:1001B0000000010023001C000B00110000000100E2
:1001C000240018000D0010004B00010025000C0059
:1001D0000E0001004E004F00260012000F003700F5
:1001E000490050002700130033003800460001008A
:1001F0000100010034006400010000000100010062
:1002000001000100010000003A000A300B3001003B
:10021000E20001003B000C300D3001000100010044
:100220003C0010300F300E30010001003D00113055
:1002300012301330010001003E001430153016302A
:1002400000000100010001000000010000000100A9
:10025000B200010000000100000001003F00173063
:1002600018301930000001004000010001000100B9
:100270000100010041000100010001000100010036
:1002800042000100010001000100010043000100E3
:1002900001000100010001004400450001000100CF
:1002A000010000000000F0A201E101260226012762
:1002B000022702E101330233000111021101080299
:1002C00008011A021A012C022C00013802380138E8
:1002D000023801E101170217011202120107020799
:1002E0000112021202E1012C022C0001050205019B
:1002F0001502150108020801040204010E020E0194
:10030000330233000111021101180218010F020F0C
:10031000010F020F00011502150108020801170262
:100320001701180218011502150111021100010927
:100330000209010F020F0112021201040204011747
:100340000217012C022C00010C020C0111021101F8
:10035000170217012C022C000105020501120212DE
:1003600001120212010F020F012C022C00011602D1
:10037000160117021701150215010C020C011102DA
:1003800011010A020A012C022C00011902190104B0
:10039000020401150215012C022C00011902190199
:1003A000120212010C020C01070207012C022C00A0
:1003B00001060206011202120111021101160216B3
:1003C00001170217012C022C000116021601170258
:1003D000170104020401170217010C020C010602A6
:1003E00006012C022C000113021301150215010C49
:1003F000020C011902190104020401170217010875
:100400000208012C022C000113021301180218012A
:10041000050205010F020F010C020C010602060184
:100420002C022C0005010906A101050719E029E7A6
:100430001500250195087501810295017508810156
:1004400005081901290595057501910295017503A6
:1004500091010507190029FF150025FF950675086C
:100460008100C005010902A1010901A100050919C6
:100470000129051500250195057501810295017574
:100480000381010501093009311581257F95027528
:1004900008810609381581257F95017508810605B3
:1004A0000C0A38021581257F950175088106C0C0A8
:1004B00005010980A101850216010026B7001A0175
:1004C000002AB700751095018100C0050C0901A133
:1004D000018503160100269C021A01002A9C027560
:1004E0001095018100C005010906A101050719E069
:1004F00029E71500250195087501810205081901F4
:10050000290595057501910295017503910105076E
:100510001900297715002501957875018102C0120F
:1005200001100100000008EDFE07130100010200A8
:100530000109026D00040100A0FA09040000010392
:10054000010100092111010001223F00070581037B
:1005500008000A0904010001030102000921110138
:100560000001224D000705820308000A0904020069
:1005700001030000000921110100012236000705D6
:10058000830308000A090403000103000000092195
:100590001101000122390007058403100001040342
:1005A000090416034500720067006F0044006F00E5
:1005B0007800200045005A00000016034500720034
:1005C00067006F0044006F007800200045005A006B
:1005D000000011241FBECFEFDAE0DEBFCDBF04B6AE
:1005E00003FE24C08091CE019091CF01A091D00153
:1005F000B091D1018750904BA740B04BB9F4109205
:10060000CE011092CF011092D0011092D10114BEF0
:1006100084B7877F84BF88E10FB6F8948093600029
:10062000109260000FBEE0E0FFE3099511E0A0E04A
:10063000B1E0E2E5F8E402C005900D92A631B10701
:10064000D9F711E0A6E1B1E001C01D92AE3CB107BF
:10065000E1F70E945F090C9427240C940000FC0130
:10066000613109F464C06231A8F46D3009F441C00D
:100670006E3040F46B3079F16C30A0F56A3009F0DF
:1006800084C022C06F3009F441C08281603108F01B
:1006900043C036C0653109F45AC0663140F4633155
:1006A00009F43FC08281643108F04CC046C0673114
:1006B00009F459C0673108F450C0683109F459C0D1
:1006C000693109F062C05BC08281882309F45DC092
:1006D00027E034E05CC08281882309F456C026EE0E
:1006E00033E055C08281882309F44FC029EC33E000
:1006F0004EC08281882309F448C020EB33E047C014
:10070000882309F442C02BE933E041C08281882369
:10071000E1F12AE833E03BC08823B9F12DE633E06C
:1007200036C08281882389F128E533E030C0828198
:10073000882359F127E433E02AC0882331F12EE2DF
:1007400033E025C0882309F125E133E020C0828110
:10075000882319F024E033E01AC082818823A9F0AD
:100760002BEE32E014C08281882379F02AEC32E04B
:100770000EC08281882349F029EB32E008C08281D3
:10078000882319F028EA32E002C020E030E0C901F5
:100790000895089560919701709198018091990151
:1007A00090919A010E94201B56985E9825982D984A
:1007B00026982E9827982F98813019F0823031F49E
:1007C00003C0259A2D9A0895269A2E9A08958AECA8
:1007D00093E0009711F0FC01099580E090E0089506
:1007E00056985E9825982D9826982E9827982F9899
:1007F0008FEF90E0909389008093880090938B0016
:1008000080938A0090938D0080938C00259A2D9A76
:1008100084EF91E020E931E0F9013197F1F7019798
:10082000D9F7269A2E9A84EF91E020E931E0F90178
:100830003197F1F70197D9F7279A2F9A84EF91E032
:1008400020E931E0F9013197F1F70197D9F72598BF
:100850002D9884EF91E020E931E0F9013197F1F72B
:100860000197D9F726982E9884EF91E020E931E09E
:10087000F9013197F1F70197D9F727982F985698F2
:100880005E9825982D9826982E9827982F98089549
:1008900089EA8093800089E08093810024982C98D5
:1008A0003F988AB18F748AB96E98479A8BB1806BE2
:1008B0008BB9769A0E94F00389EC93E0009711F0CF
:1008C000FC01099580E090E0089580E280930001AA
:1008D00080911601882371F40E94B40481E0809312
:1008E000160180E197E220E931E0F9013197F1F753
:1008F0000197D9F780E40E94BA048093000188230D
:1009000071F50E94E80480930001882341F50E945C
:10091000E80480930001882311F58FE30E94E80426
:10092000809300018823D9F40E94E00480E40E94AF
:10093000BA0480930001882391F48CE00E94E804BB
:1009400080930001882359F40E94E80480930001F9
:10095000882329F48FE30E94E804809300010E9419
:10096000E0048091000108951092B9008AE080931C
:10097000B8000895982F84EA8093BC008091BC0051
:1009800087FFFCCF8091B900887F883021F08031CB
:1009900011F081E008959093BB0084E88093BC003F
:1009A0008091BC0087FFFCCF9091B900987F98316F
:1009B00011F480E0089580E0903409F081E008951A
:1009C00084E98093BC008091BC0084FDFCCF089535
:1009D0008093BB0084E88093BC008091BC0087FFBB
:1009E000FCCF8091B90090E0887F883209F091E0D7
:1009F000892F089584E88093BC008091BC0087FF14
:100A0000FCCF8091BB000895E7E1F1E0E80FF11D14
:100A1000808108950895809100018823A9F480E4DD
:100A20000E94BA0480930001882361F482E10E944D
:100A3000E80480930001882329F48FEF0E94E804E2
:100A4000809300010E94E00484B1807F84B985B165
:100A5000807F85B98AB1837F8AB98BB1837F8BB957
:100A60003E98469808950E946504809300010E9474
:100A70000B0580B38C7080BB81B3836F81BB80E03A
:100A800090E0FC01E95EFE4F1082FC01EB5DFE4F41
:100A9000108201968E309105A1F788E494E00097CA
:100AA00011F0FC0109950895BF92CF92DF92EF9269
:100AB000FF920F931F93CF93DF93809100018823C0
:100AC00079F0809133018F5F80933301882341F463
:100AD0000E94650480930001882311F40E94F003B2
:100AE00025E2E22E21E0F22EC0E0D0E090EAB92E1D
:100AF00081E0C82ED12C02E0C73010F580910001B2
:100B0000882309F045C080E40E94BA048093000164
:100B1000882399F482E10E94E804809300018823ED
:100B200061F4C6010C2E02C0880F991F0A94E2F7E7
:100B300080950E94E804809300010E94E00428C090
:100B4000CA30D9F0CB3040F4C83089F0C93090F4C5
:100B5000C73009F0A0C008C0CC30A1F0CC3080F084
:100B6000CD3009F098C011C0209A289894C0219ADD
:100B7000299891C0229A2A988EC0239A2B988BC0CC
:100B8000529A01C0539A5B9886C03E9A469883C099
:100B900080910001882311F010E03EC080E40E94A3
:100BA000BA0480930001882399F483E10E94E80449
:100BB00080930001882361F481E40E94BA04809349
:100BC0000001882329F40E94FA04182F109501C00F
:100BD00010E00E94E00420C042E07C9902C034E0B2
:100BE00001C030E07D9902C028E001C020E07E997C
:100BF00002C090E101C090E08FB18095881F8827E6
:100C0000881F8295880F807E152F1C251170142B4C
:100C1000132B122B192B182BF7018081811719F038
:100C20001083009301010E940B0521960894E11C9A
:100C3000F11CCE30D10509F05FCF809101018823EE
:100C4000C9F0815080930101882329F080EA9FE058
:100C50000197F1F70FC020E030E0F901E95EFE4FA7
:100C6000D901AB5DBE4F8C9180832F5F3F4F2E30FB
:100C7000310599F787EE93E0009711F0FC01099593
:100C800081E0DF91CF911F910F91FF90EF90DF9066
:100C9000CF90BF9008958B2D8A95F1F75FB1799B26
:100CA0009BCF40E09ACF08959C018B3B910578F44F
:100CB000883A910548F5853A9105B8F48430910554
:100CC00008F09FC08130910509F099C095C0803E21
:100CD000910508F494C0883E910508F492C0805FA5
:100CE0009040409708F08BC085C0853A910519F473
:100CF00081E890E47DC0863A910519F083E890E49C
:100D000077C082E890E474C0883A910519F482EEC5
:100D100094E46EC0893A910519F489EE94E468C0B0
:100D20008A3A910519F48AEE94E462C08B3A9105EF
:100D300019F485EB94E45CC08C3A910519F486EBC8
:100D400094E456C08D3A910519F487EB94E450C0B1
:100D5000803B910519F48CEC94E44AC08E3A9105DD
:100D600019F48DEC94E444C08F3A910519F483E8AA
:100D700095E43EC0813B910519F48AE895E438C0BA
:100D8000823B910519F482E995E432C0833B9105D9
:100D900019F484E995E42CC0843B910519F481E2AF
:100DA00096E426C0853B910519F483E296E420C0C1
:100DB000863B910519F484E296E41AC0873B9105BD
:100DC00019F485E296E414C0883B910519F486E293
:100DD00096E40EC0893B910519F487E296E408C0B9
:100DE0008A3B910519F080E094E402C08AE296E41F
:100DF0009C0107C0306505C021E030E002C020E062
:100E000030E0C9010895E62FF0E0EE0FFF1F9CE0EF
:100E1000799F90011124E20FF31F98EA899FC00186
:100E20001124E80FF91FE455FF4F25913491C901B2
:100E30000895FC01EE0FFF1FEC5DFE4F25913491EC
:100E4000C9010895FC01EE0FFF1FEC55FD4F2591E0
:100E50003491C90108950E940307AC01805091406C
:100E600080509F4118F4CA019F710895CA018050B3
:100E700090428050904128F4CA019F700E9422073E
:100E80000895CA01805090438050904120F4CA01D7
:100E90009070906C089580E54030580771F40E947E
:100EA000261184EC99E020E931E0F9013197F1F75E
:100EB0000197D9F70E943C1C0EC120E54130520732
:100EC00031F48091AE0181608093AE0104C1CA010A
:100ED000805090458050904108F056C0652F77278C
:100EE0006F70707061307105F9F49A01A4E0220FFF
:100EF000331FAA95E1F720703370CA01F3E0880F21
:100F0000991FFA95E1F780769070282B392B3C6871
:100F10004370507002C0660F771F4A95E2F76F71F9
:100F20007070262B372B2EC06230710529F4942F58
:100F30008827816F906A08956330710551F49A0192
:100F400073E0220F331F7A95E1F7207E37703C68FB
:100F50000CC06430710561F59A0163E0220F331F04
:100F60006A95E1F7207E37703A684370507081E0EF
:100F700090E002C0880F991F4A95E2F78F71907038
:100F8000282B392BC9010895CA0180509047805001
:100F9000904120F4CA019F7090620895CA01805068
:100FA00090488050904120F4CA019F70906A089543
:100FB000403E5105F0F4403C510588F54133510560
:100FC00009F476C04233510548F44932510509F419
:100FD00065C04A32510509F07AC06FC049335105E6
:100FE00011F142385105F9F04533510509F06FC050
:100FF00050C0433E510569F1443E510540F4403E26
:101000005105C1F0423E510509F061C01DC0463E88
:10101000510559F1473E510509F059C02BC0CA018D
:101020000E94190708958091BF0180FD0AC081FDCB
:1010300008C04DC08091BF0180FF03C089E390E0EC
:1010400047C080EE90E044C08091BF0182FD08C09F
:1010500004C08091BF0182FF03C082EE90E038C0DF
:1010600084FD11C083EE90E033C08091BF0183FD09
:1010700008C004C08091BF0183FF03C086EE90E0EA
:1010800027C084FF03C080E090E022C087EE90E09C
:101090001FC08091BF0185FF05C007C08091BF01BF
:1010A00085FF03C085E390E013C089E290E010C0A3
:1010B0008091BF0186FF05C007C08091BF0186FFF8
:1010C00003C081E390E004C08AE290E001C0CA015D
:1010D0000E9454060895089508951092C401089539
:1010E00008950895809135010895DF93CF9300D03E
:1010F0000F92CDB7DEB7AC018091C501843029F5E0
:1011000083E08093E9002FEF95ED05C0892F8A9544
:10111000F1F7222329F08091E800215085FFF6CFD6
:101120008091E80085FF11C05B834A8383E0898357
:10113000CE01019663E070E040E050E00E94D80BE1
:101140008091E8008E778093E8000F900F900F90C9
:10115000CF91DF910895DF93CF9300D00F92CDB759
:10116000DEB7AC018091C501843029F583E080931E
:10117000E9002FEF95ED05C0892F8A95F1F722231D
:1011800029F08091E800215085FFF6CF8091E8009A
:1011900085FF11C05B834A8382E08983CE0101967B
:1011A00063E070E040E050E00E94D80B8091E800DE
:1011B0008E778093E8000F900F900F90CF91DF9182
:1011C0000895AC018091C501843001F582E08093DF
:1011D000E9002FEF95ED05C0892F8A95F1F72223BD
:1011E00029F08091E800215085FFF6CF8091E8003A
:1011F00085FF0CC0CA0165E070E040E050E00E944D
:10120000D80B8091E8008E778093E80008950F93C3
:101210001F93182F092F9091C501943009F04CC0ED
:10122000809102018823E1F080910D018823C1F0B3
:101230009093E9009FEF25E105C0822F8A95F1F791
:10124000992329F08091E800915085FFF6CF809195
:10125000E80085FF31C0812F902F60E170E018C059
:1012600081E08093E9009FEF25ED05C0822F8A95EC
:10127000F1F7992329F08091E800915085FFF6CF8E
:101280008091E80085FF18C0812F902F68E070E002
:1012900040E050E00E94D80B8091E8008E77809368
:1012A000E800A6E3B1E0212F302FC901FC0180E165
:1012B00001900D928150E1F71F910F91089584B72D
:1012C000877F84BF88E10FB6F89480936000109206
:1012D00060000FBE80E090E020E80FB6F894209305
:1012E0006100809361000FBE0E9424100E94B60C22
:1012F0000E94170D8091E20084608093E200789450
:101300000E94B50F0E94C01083E091E00E94CB0FB5
:101310000CC00E94691B8091C301882331F00E9498
:10132000C11B882311F00E94ED0A8091C501853010
:1013300081F30E942A10F9CF8091C401882349F4D7
:101340000E94B60C0E94170D8091E2008460809389
:10135000E20008958091C701833009F457C08430BA
:1013600030F4813071F0823009F0B1C098C08A3019
:1013700009F485C08B3009F46AC0893009F0A7C030
:1013800020C08091C601813A09F0A1C08091E80097
:10139000877F8093E8008091CA019091CB01892BCF
:1013A00021F486E391E060E103C080E090E060E03A
:1013B00070E00E94030B8091E8008B778093E80037
:1013C00008958091C601813209F081C08091CA01DF
:1013D0009091CB01009719F0039709F078C08091A4
:1013E000E800877F8093E80005C08091C5018823CD
:1013F00009F46DC08091E80082FFF7CF8091F10081
:10140000809335018091E8008B771CC08091C601E4
:10141000813A09F05CC08091CA019091CB01892B7F
:1014200009F055C08091E800877F8093E8008091A3
:10143000E80080FFFCCF809102018093F100809151
:10144000E8008E778093E8000E94630C08958091F5
:10145000C6018132E1F58091CA019091CB01892BBF
:10146000B1F58091E800877F8093E8000E94630CCB
:101470008091C801809302010E94261108958091F5
:10148000C601813221F58091E800877F8093E800D2
:101490000E94630C8091C90180933401089580916A
:1014A000C601813AA1F48091E800877F8093E8002B
:1014B0008091E80080FFFCCF809134018093F1009F
:1014C0008091E8008E778093E8000E94630C089575
:1014D00081E061EC42E00E942B0C82E061EC42E092
:1014E0000E942B0C83E061EC42E00E942B0C84E014
:1014F00061EC42E10E942B0C08950E94BA1B0895F2
:10150000DA019330C1F0943030F4913051F09230E0
:1015100009F05BC00BC0913221F1923209F055C045
:1015200037C0EFE1F5E022E130E053C0E1E3F5E060
:101530002DE630E04EC0813051F0813020F0823015
:1015400009F043C008C0EEE9F5E0849107C0E2EA83
:10155000F5E0849103C0EAEBF5E08491282F30E0B8
:1015600038C0613051F0613028F0623059F063309A
:1015700061F50BC0E3E4F5E002C0ECE5F5E029E03D
:1015800030E027C0E5E7F5E0FACFEEE8F5E0F7CF89
:10159000613061F0613028F0623069F06330A9F4A5
:1015A0000FC0E4E2F4E02FE330E013C0E3E6F4E040
:1015B0002DE430E00EC0E0EBF4E026E330E009C0BB
:1015C000E6EEF4E029E330E004C0E0E0F0E020E003
:1015D00030E0ED93FC93C901089580E189BD82E17B
:1015E00089BD09B400FEFDCF8091D8008F7D809326
:1015F000D8008091E00082608093E0008091E0005C
:1016000081FDFCCF08959C014091CC015091CD010A
:101610004617570718F4F90190E043C061157105AA
:1016200011F0AB01F8CF8091E8008E778093E8004D
:1016300040E050E0F0CF8091C501882309F447C015
:10164000853009F446C08091E80083FD44C0809154
:10165000E80082FD36C08091E80080FF22C08091C2
:10166000F3009091F200782F60E0292F30E0262BD4
:10167000372B07C081918093F100415050402F5F7C
:101680003F4F4115510519F02830310598F390E08E
:101690002830310509F491E08091E8008E7780933D
:1016A000E8004115510539F6992329F60AC08091C1
:1016B000C501882361F0853061F08091E80083FDE9
:1016C0000AC08091E80082FFF2CF80E0089582E0B6
:1016D000089583E0089581E008959C014091CC0134
:1016E0005091CD014617570718F4F90190E044C016
:1016F0006115710511F0AB01F8CF8091E8008E778C
:101700008093E80040E050E0F0CF8091C50188234D
:1017100009F448C0853009F447C08091E80083FD92
:1017200045C08091E80082FD37C08091E80080FFCD
:1017300023C08091F3009091F200782F60E0292F70
:1017400030E0262B372B08C084918093F10031962E
:10175000415050402F5F3F4F4115510519F028303F
:10176000310590F390E02830310509F491E0809143
:10177000E8008E778093E8004115510531F69923F2
:1017800021F60AC08091C501882361F0853061F09F
:101790008091E80083FD0AC08091E80082FFF2CFCB
:1017A00080E0089582E0089583E0089581E008953F
:1017B000BF92CF92DF92EF92FF920F931F93CF933E
:1017C000DF93182F092F7B016A010E94840CB82E29
:1017D0008823B1F5812F902F9C01E901C114D10418
:1017E00039F0F60180819181E81AF90AC80FD91FF2
:1017F00000E010E022C08091E80085FD16C08091D5
:10180000E8008E778093E800C114D10449F0F60116
:1018100080819181800F911F9183808385E011C029
:101820000E94840C882349F00CC089918093F100B8
:101830000894E108F1080F5F1F4FE114F104D9F695
:101840008B2DDF91CF911F910F91FF90EF90DF9043
:10185000CF90BF900895382F282F2EC0822F8F70E1
:101860008093E900231721F4762F942F50E006C0CF
:101870007091EC009091ED005091F00091FF1BC031
:101880008091EB008E7F8093EB008091ED008D7F47
:101890008093ED008091EB0081608093EB0070936A
:1018A000EC009093ED005093F0008091EE0087FDE6
:1018B00002C080E008952F5F273080F23F703093A0
:1018C000E90081E008958091C60188239CF404C05A
:1018D0008091C5018823B9F08091E80082FFF8CF9C
:1018E0008091E8008B778093E80008958091C5018E
:1018F000882349F08091E80080FFF8CF8091E800CC
:101900008E778093E80008954091E4005091E500BF
:1019100024E68091EC0080FF24C08091E80080FDE7
:101920001EC08091C501882311F482E0089585309E
:1019300011F483E008958091EB0085FF02C081E0FF
:1019400008958091E4009091E5008417950709F3CC
:10195000222311F484E008952150AC01DACF80E015
:1019600008958091E80082FFDCCFF9CF0E94290D15
:101970000E94310DE0EEF0E0808181608083A8ED6F
:10198000B0E08C918F778C9319BCE7EDF0E080810B
:101990008E7F80838C918F7E8C931092C4010895EA
:1019A000EF92FF920F931F930E94290D0E94310D19
:1019B00008ED10E0F80180818F7780838081806856
:1019C000808380818F7D808319BC1092C501109225
:1019D000C1011092C3011092C20180EEE82EF12CD9
:1019E000F70180818B7F8083F80180818160808313
:1019F00080E060E042E00E942B0CE1EEF0E08081AC
:101A00008E7F8083E2EEF0E0808181608083808140
:101A100088608083F70180818E7F8083F8018081D8
:101A2000806180831F910F91FF90EF900895E8ED02
:101A3000F0E080818F7E8083E7EDF0E0808181603F
:101A4000808384E082BF81E08093C4010E94D00C37
:101A50000895E8EDF0E080818E7F80831092E200AF
:101A600008951092DA001092E10008951F920F92EB
:101A70000FB60F9211241F932F933F934F935F93B1
:101A80006F937F938F939F93AF93BF93EF93FF9346
:101A90001091E9008091EC001092E9008091F00033
:101AA000877F8093F00078940E94440E1092E900A2
:101AB0008091F00088608093F0001F701093E9001F
:101AC000FF91EF91BF91AF919F918F917F916F9116
:101AD0005F914F913F912F911F910F900FBE0F90EB
:101AE0001F9018951F920F920FB60F9211242F93EB
:101AF0003F934F935F936F937F938F939F93AF9396
:101B0000BF93EF93FF938091E10082FF0BC0809120
:101B1000E20082FF07C08091E1008B7F8093E100AB
:101B20000E94B40F8091DA0080FF1FC08091D8001E
:101B300080FF1BC08091DA008E7F8093DA00809155
:101B4000D90080FF0DC080E189BD82E189BD09B463
:101B500000FEFDCF81E08093C5010E949C0905C075
:101B600019BC1092C5010E946D088091E10080FFB0
:101B700019C08091E20080FF15C08091E2008E7F45
:101B80008093E2008091E20080618093E200809186
:101B9000D80080628093D80019BC85E08093C5018D
:101BA0000E9471088091E10084FF30C08091E200C2
:101BB00084FF2CC080E189BD82E189BD09B400FEAB
:101BC000FDCF8091D8008F7D8093D8008091E10077
:101BD0008F7E8093E1008091E2008F7E8093E2000F
:101BE0008091E20081608093E2008091C1018823AE
:101BF00011F084E007C08091E30087FD02C081E01E
:101C000001C083E08093C5010E947D0A8091E100BC
:101C100083FF29C08091E20083FF25C08091E1000D
:101C2000877F8093E10082E08093C5011092C1011B
:101C30008091E1008E7F8093E1008091E2008E7FB1
:101C40008093E2008091E20080618093E20080E076
:101C500060E042E00E942B0C8091F000886080934D
:101C6000F0000E947008FF91EF91BF91AF919F919A
:101C70008F917F916F915F914F913F912F910F9035
:101C80000FBE0F901F9018951F93DF93CF93CDB782
:101C9000DEB7AC970FB6F894DEBF0FBECDBFE6EC53
:101CA000F1E08091F100819321E0EE3CF207C9F769
:101CB0000E94AA098091E80083FF3EC18091C6017D
:101CC0003091C701353009F487C0363040F43130E7
:101CD000C9F1313070F0333009F02EC133C03830E3
:101CE00009F4F9C0393009F409C1363009F024C1CA
:101CF00097C0803821F0823809F01EC108C0909149
:101D0000C2018091C301882399F0926011C0809133
:101D1000CA018F708093E9008091EB0090E025E08C
:101D2000969587952A95E1F7982F91701092E90082
:101D30008091E800877F8093E8009093F1001092F3
:101D4000F100D4C0882319F0823009F0F5C090E08A
:101D50008F719070009721F0029709F0EDC00CC0D0
:101D60008091C801813009F0E7C01092C30133307F
:101D700069F58093C3012AC08091C801882331F599
:101D80002091CA012F7009F4D7C02093E9008091F7
:101D9000EB0080FF1BC0333021F48091EB008062A8
:101DA00013C08091EB0080618093EB0081E090E0B4
:101DB00002C0880F991F2A95E2F78093EA001092DB
:101DC000EA008091EB0088608093EB001092E900BC
:101DD0008091E800877F8DC0882309F0ADC0109105
:101DE000C8011F778091E3008078812B8093E30006
:101DF0008091E800877F8093E8000E94630C8091C7
:101E0000E80080FFFCCF8091E30080688093E300CE
:101E1000112311F482E001C083E08093C5018CC0DE
:101E20008058823008F088C08091C8019091C90123
:101E300023E08C3D920709F034C083E08C838AE272
:101E40008B837FB7F894DE0115966EE040E050E09A
:101E500011E2E62FF0E010935700849140FF03C099
:101E600082958F706F5F8F70282F30E08A3018F066
:101E7000C901C79602C0C901C0968D939D934F5F5B
:101E80005F4F4431510529F77FBF8091E800877F7C
:101E90008093E800CE0103966AE270E00E94030B93
:101EA00014C06091CA01AE014F5F5F4F0E94800A6B
:101EB000BC01009709F440C08091E800877F8093BF
:101EC000E80089819A810E946D0B8091E8008B77F0
:101ED0008093E80031C0803879F58091E800877FF1
:101EE0008093E8008091C1018093F1008091E80027
:101EF0008E778093E8000E94630C1EC08823E1F473
:101F00009091C8019230C0F48091E800877F80935F
:101F1000E8009093C1010E94630C8091C101882365
:101F200031F48091E30087FD02C081E001C084E0CC
:101F30008093C5010E94680A8091E80083FF0AC06F
:101F40008091E800877F8093E8008091EB008062B9
:101F50008093EB00AC960FB6F894DEBF0FBECDBFFA
:101F6000CF91DF911F91089508951F938091C5012E
:101F7000882379F01091E9008091EC001092E9003B
:101F80008091E80083FF02C00E94440E1F701093EE
:101F9000E9001F91089590934B0180934A010895A1
:101FA000E0914A01F0914B01309711F480E00895DF
:101FB0000190F081E02D09950895E0914A01F0919A
:101FC0004B01309721F00280F381E02D09950895AF
:101FD000E0914A01F0914B01309721F00480F581A6
:101FE000E02D099508959C01809148019091490147
:101FF0002817390779F03093490120934801E0917F
:102000004A01F0914B01309729F00680F781E02DCD
:10201000C901099508959C0180914601909147015D
:102020002817390779F03093470120934601E09152
:102030004A01F0914B01309729F00084F185E02DA1
:10204000C9010995089508950E94231008950E94DA
:102050006C080895BF92CF92DF92EF92FF920F9398
:102060001F93DF93CF93CDB7DEB72A970FB6F894BF
:10207000DEBF0FBECDBF0E945405EE24FF24BE2C50
:102080008E2D0E940405C82EF701E35BFE4FD08021
:10209000D82609F43FC08091AE0181FF02C00E94A2
:1020A0000A0500E010E0ED2DF0E0CF01002E02C0A7
:1020B000959587950A94E2F780FF27C00E94DF1B61
:1020C0000983BA826C2D70E0002E02C07595679569
:1020D0000A94E2F7617070706B8381609D838C83DA
:1020E000402F5B2D782F8D810E949514F701E35BC3
:1020F000FE4F81E090E0002E02C0880F991F0A94E5
:10210000E2F72081282720831DC00F5F1F4F063074
:10211000110559F60894E11CF11C8EE0E816F10453
:1021200009F0ADCF0E94DF1B2FEF2E832F8318867F
:102130008160782F9A8789874FEF5FEF60E08A850B
:102140000E9495140E94B41F10914C010E94D00F60
:10215000181731F00E94D00F80934C010E94271075
:102160002A960FB6F894DEBF0FBECDBFCF91DF9198
:102170001F910F91FF90EF90DF90CF90BF90089547
:102180000E94D61B0E9433050E949C1C0895DF9379
:10219000CF9300D000D00F92CDB7DEB70F900F9045
:1021A0000F900F900F90CF91DF910895DF93CF9311
:1021B00000D000D000D0CDB7DEB726960FB6F89489
:1021C000DEBF0FBECDBFCF91DF9108950E940C19E5
:1021D000482F892F82958F70282F30E02C303105C1
:1021E0004CF42A3031056CF4225030402230310555
:1021F000C0F407C02C30310551F02F30310589F47F
:1022000006C0403E10F0403F61F481E008959F70A9
:10221000892F90E023E0969587952A95E1F78170C4
:10222000089580E008950E94E01A0E94B51A0E9465
:10223000F81A0E949D1F0E94A91F80E090E00E9452
:10224000F30F80E090E00E940B1008950E94D01AD6
:102250000E9413110895882321F00E94C91A0E9438
:10226000F81A0895882321F00E94C31A0E94F81AD0
:102270000895282F882309F44EC0823859F40E940B
:10228000D00F81FF48C089E30E94431A0E94F81AC8
:1022900089E30CC0833869F40E94D00F80FF3BC0F3
:1022A00083E50E94431A0E94F81A83E50E94811A6E
:1022B0001FC0843859F40E94D00F82FF2CC087E4DD
:1022C0000E94431A0E94F81A87E4F0CF8450813AA2
:1022D00010F4822FEBCF822F805E883060F427705D
:1022E00081E090E001C0880F2A95EAF70E94C91AA0
:1022F0000E94F81A0895822F855A833028F480E0CE
:1023000090E00E94F30F0895285A233120F480E0D2
:1023100090E00E940B1008951F93182F882309F452
:10232000D0C0823859F40E94D00F81FDCAC089E321
:102330000E94431A0E94F81A89E30CC0833879F48A
:102340000E94D00F80FDBDC083E50E94431A0E9409
:10235000F81A83E50E94811A0E94F81AB2C08438E4
:1023600059F40E94D00F82FDACC087E40E94431A4A
:102370000E94F81A87E4EECF8450813A50F4812FFE
:102380000E94DE21882309F09CC0812F0E94431AFD
:10239000E3CF812F805E883050F4177081E090E0A9
:1023A00001C0880F1A95EAF70E94C31AD5CF812F72
:1023B000855A8330A0F4153A19F481E890E00CC0F6
:1023C000163A19F482E890E007C0173A19F080E055
:1023D00090E002C083E890E00E94F30F72C0812F6A
:1023E000885A833108F06DC0183A19F482EE90E0F3
:1023F00066C0193A19F489EE90E061C01A3A19F4EE
:102400008AEE90E05CC01B3A19F485EB90E057C06F
:102410001C3A19F486EB90E052C01B3B19F483EB95
:1024200090E04DC01C3B19F484EB90E048C01D3A8D
:1024300019F487EB90E043C0103B19F48CEC90E06A
:102440003EC01E3A19F48DEC90E039C01F3A19F4E1
:1024500083E891E034C0113B19F48AE891E02FC081
:10246000123B19F482E991E02AC0133B19F484E984
:1024700091E025C0143B19F481E292E020C0153BA5
:1024800019F483E292E01BC0163B19F484E292E057
:1024900016C0173B19F485E292E011C0183B19F4FD
:1024A00086E292E00CC0193B19F487E292E007C083
:1024B0001A3B19F080E090E002C08AE292E00E94AC
:1024C0000B101F910895AF92BF92CF92DF92EF92BF
:1024D000FF920F931F93DF93CF93CDB7DEB72A9769
:1024E0000FB6F894DEBF0FBECDBF5C01DE011196C2
:1024F000FC0185E001900D928150E1F70B81F5011F
:10250000F580F2944FE0F422DE011696FE0131963A
:1025100085E001900D928150E1F73E812F81898500
:102520009A85892B09F4F0C12F3F09F0C0C13F3FC4
:1025300009F0BDC1E9C18D2D8F70222311F4182F30
:1025400003C0182F1295107F002349F0112309F4BE
:1025500088C1812F0E94D31A0E94F81A82C18C2D43
:102560000E943911112309F4CFC1812F0E94D91A79
:102570000E94F81AC9C18D2D8F70203211F4182FC6
:1025800003C0182F1295107FCC2021F0F1E0CF1658
:1025900011F516C0002359F0FF2009F431C121E0E4
:1025A000F21609F02DC1812F0E94E31AADC1FF2060
:1025B00021F081E0F81609F4A7C10E94E61A26C1AD
:1025C000002329F0E1E0EF1508F49EC119C1FF20B6
:1025D00009F09AC11BC1002321F0FF2009F410C1AA
:1025E00040C1FF2009F412C147C18D2D8695869503
:1025F000837090E0009721F0019709F085C10AC02F
:10260000002319F0C601937002C080E090E00E94A0
:10261000F30F7AC1002319F0C601937002C080E065
:1026200090E00E940B1070C1002321F08C2D0E94BD
:10263000AB1E03C08C2D0E94151F0E94A91F64C1F0
:102640008D2D837009F05EC0002309F05DC12C2D33
:10265000229526952770220F220F8C2D8F70E82E41
:10266000FF2400E010E0022E04C0EE0CFF1C001F4F
:10267000111F0A94D2F7C4FC05C060E070E080E04E
:1026800090E00FC06FE070E080E090E004C0660F63
:10269000771F881F991F2A95D2F7609570958095AE
:1026A0009095D694D694F3E0DF224D2D50E0413042
:1026B0005105A9F0423051051CF4452B49F024C1C5
:1026C0004230510589F04330510509F01DC113C056
:1026D0006E297F29802B912B0E941E1A15C16E290D
:1026E0007F29802B912B0BC06E297F29802B912B6A
:1026F0000E940D1A09C10E941E1AC801B7010E944A
:102700002F1A02C190E0002311F4969587958170ED
:1027100009F4FAC02C2D229526952770220F220F3E
:102720008C2D8F70E82EFF2400E010E0022E04C0F4
:10273000EE0CFF1C001F111F0A94D2F7C4FC05C049
:1027400060E070E080E090E00FC06FE070E080E05B
:1027500090E004C0660F771F881F991F2A95D2F753
:102760006095709580959095D694D69423E0D2226A
:102770004D2D50E041305105A9F0423051051CF477
:10278000452B49F0C1C04230510589F04330510515
:1027900009F0BAC013C06E297F29802B912B0E94AB
:1027A0007119B2C06E297F29802B912B0BC06E2925
:1027B0007F29802B912B0E946019A6C00E9471195D
:1027C000C801B7010E9482199FC080EFC81611F19D
:1027D0008C1528F0E0EECE1608F43FC009C0F2EFE9
:1027E000CF1661F1CF1628F123EFC216B1F52BC039
:1027F0001C2D1F708D2D8F71002331F00E94CF1979
:10280000812F0E94321180C00E94AF19812F0E9437
:102810002B117AC0002321F0FF2009F075C004C0FD
:1028200081E08F1508F470C08D2D8F710E9493196F
:102830006BC08D2D8F71002329F119C08D2D8F71E3
:102840000023A9F01FC0002329F08D2D8F710E9455
:10285000EB195AC00E94FB1957C0002359F0FF2002
:1028600021F08C2D0E948C114FC08D2D8F710E94F4
:10287000CF194AC0FF2021F08C2D0E94391144C08D
:102880008D2D8F710E94AF193FC0EFE0DE22C50190
:102890006C2D4D2D0E942F030E94911835C0FFE032
:1028A000DF22C5016C2D4D2D0E9453062DC089815C
:1028B0009A810E940C196C010E940B190E940A193E
:1028C0008D2D82958F7090E08530910509F4ACCE06
:1028D0008630910554F4843091050CF086CE2D2D70
:1028E000207F02970CF047CE26CE8C3091053CF429
:1028F0008A3091050CF069CF089731F4A1CE8C3065
:10290000910519F20F9759F22A960FB6F894DEBF87
:102910000FBECDBFCF91DF911F910F91FF90EF9030
:10292000DF90CF90BF90AF900895DF93CF93CDB756
:10293000DEB72B970FB6F894DEBF0FBECDBF342F96
:102940004F83252F588769877A878B87472F582F82
:10295000FE01319686E0DF011D928A95E9F76B83CF
:1029600039832A834C835D83432F522F8D819E812F
:102970000E94D2172B960FB6F894DEBF0FBECDBFC4
:10298000CF91DF9108950F931F930091620115C0BD
:1029900010E0F801EE0FFF1FE00FF11FEE0FFF1F19
:1029A000ED59FE4F4081518162817381848195810F
:1029B0000E94D6100F5F1F4F0770809161010817AA
:1029C00039F71F910F91089540915B0150915C017F
:1029D00060915D0170915E0180915F019091600155
:1029E0000E94D61008950F931F93CF93DF93809189
:1029F000600182958F7009F06DC080915D01882320
:102A000009F468C0609162010091610140915E012A
:102A100050915F0110915C0170915B01EA01C095DA
:102A2000D09555C04115510509F44FC01F3F49F4D9
:102A300080E090E07F3F11F481E090E0882309F08E
:102A400044C0262F30E0F901EE0FFF1FE20FF31F05
:102A5000DF01AA0FBB1FAD59BE4F11968C91119784
:102A6000181799F58C91781781F5EE0FFF1FEB5928
:102A7000FE4F8081882349F513968D919C91149780
:102A80008417950718F0841B950B02C08C0F9D1FAF
:102A9000883C9105D0F4809160018F7080618093B3
:102AA0006001F901EE0FFF1FE20FF31FEE0FFF1F92
:102AB000E859FE4F80818F70806180838BE591E0C3
:102AC0000E9463120E94C31405C06F5F6770601795
:102AD00009F0A8CFDF91CF911F910F910895DF9258
:102AE000EF92FF920F931F93DF93CF93CDB7DEB793
:102AF0006B970FB6F894DEBF0FBECDBF8C01DC0123
:102B00001296DC9012974C9111965C911197139646
:102B1000ED90FC90149720915E0130915F016091DF
:102B20005C0170915B012115310509F4DBC16F3F38
:102B300009F003C27F3F09F000C2D4C1E216F306D8
:102B400040F0C701821B930B883C910508F0EEC052
:102B500008C0209530952E0D3F1D283C310508F00A
:102B6000E5C080916001807F09F095C06F3F09F05A
:102B7000EAC17F3F09F0E7C115C0741799F4DD2061
:102B800089F4809160018F708061809360010E9460
:102B9000E4148BE591E00E94631280916001F801DA
:102BA0008583BCC1FD82EC825A834983DB82DE01CE
:102BB0001696FE01319685E001900D928150E1F765
:102BC0006885DE011B96FE01369685E001900D9228
:102BD0008150E1F72C853B858E859F85892B09F4F3
:102BE00051C02F3F09F0B3C13F3F09F0B0C14AC007
:102BF000FD82EC825A834983DB82DE011B96FE0153
:102C0000319685E001900D928150E1F7FC847B853F
:102C10006D8580916201909161011FC0282F30E085
:102C2000F901EE0FFF1FE20FF31FDF01AA0FBB1F19
:102C3000AD59BE4F11968C911197F81651F48C91A5
:102C4000781739F4EE0FFF1FEB59FE4F808168179C
:102C5000C9F42F5F3F4F822F87708917F9F68DC116
:102C60009F7059F0442349F459C19F7031F0D80145
:102C700015968C91807F09F451C1405E483008F46C
:102C80004DC148C1DD2009F449C1809160018160D6
:102C90008093600143C16F3F09F05DC17F3F09F040
:102CA0005AC114C0741791F4DD2081F48091600141
:102CB000F8018583C8010E946312ABE5B1E0F80119
:102CC00086E001900D928150E1F720C15A8349833B
:102CD00089819A810E94E610882309F41BC1DD20B6
:102CE00009F418C130916001832F82958F7090E0B4
:102CF00002979CF090915C0120915B01FE0170961F
:102D000086E0DF011D928A95E9F7998B288BFC8A72
:102D1000EB8A3D8BCF010E946312ABE5B1E0F80175
:102D200086E001900D928150E1F7EEC08091600144
:102D3000807FA9F47E2DFD82EC825A834983DB8259
:102D40006D2D8D810E94C7100BE511E0C8010E9416
:102D5000631286E0F80111928A95E9F7C0C06F3FCF
:102D600009F0FDC07F3F09F0FAC014C0741791F458
:102D7000DD2081F480916001D80115968C93C80103
:102D80000E946312EBE5F1E086E0DF011D928A9577
:102D9000E9F7BEC05A83498389819A810E94E6106F
:102DA000882309F4B7C0DD2009F4B4C03091600174
:102DB000832F82958F7090E002979CF090915C0138
:102DC00020915B01FE01769686E0DF011D928A95D7
:102DD000E9F79F8B2E8BFA8EE98E3B8FCF010E94F5
:102DE0006312ABE5B1E0F80186E001900D928150ED
:102DF000E1F78AC06F3F09F0B6C07F3F09F0B3C06A
:102E000071C0E216F30640F0C701821B930B883CA9
:102E1000910508F053C008C0209530952E0D3F1D38
:102E2000283C310508F04AC0DD2009F473C06F3F2B
:102E300009F09FC07F3F09F09CC029C0741739F585
:102E40009091600190FD1AC0892F82958F70B1F02A
:102E5000F80195838F3031F08F5F8295807F9F706E
:102E6000982B9583C8010E946312ABE5B1E0F8018D
:102E700086E001900D928150E1F748C0ABE5B1E0EA
:102E8000F80186E001900D928150E1F741C05A832C
:102E9000498389819A810E94E610882349F0ABE535
:102EA000B1E0F80186E001900D928150E1F72CC06D
:102EB000809160018160809360012CC07E2DFD8235
:102EC000EC825A834983DB826D2D8D810E94C7106D
:102ED000EBE5F1E086E0DF011D928A95E9F70E94BB
:102EE000E4141CC0DD20B1F05A83498389819A81A2
:102EF0000E94E610882371F0ABE5B1E0F80186E0AE
:102F000001900D928150E1F70E94F3140E94E414A5
:102F100081E005C0C8010E946312FACF80E06B9681
:102F20000FB6F894DEBF0FBECDBFCF91DF911F91DA
:102F30000F91FF90EF90DF90089580915D018823BD
:102F400009F458CFFBCD651709F02CCE16CE6130B1
:102F500009F498CE4DCE651709F0B8CEA3CE65170B
:102F600009F018CF03CF80915D01882309F0BACF13
:102F700048CF651709F08BCF61CF5A834983898188
:102F80009A810E940C19482F892F82958F70282FC3
:102F900030E0223031050CF463CE243031050CF0E2
:102FA000B9CF63CE0F931F93DF93CF93CDB7DEB727
:102FB0002C970FB6F894DEBF0FBECDBF4F83588756
:102FC00069877A878B879C878E01095F1F4FC801AD
:102FD0000E946F158823D9F028853F818A859B85BB
:102FE000892B09F46BC02F3F49F480E090E03F3F0C
:102FF00011F481E090E0882309F060C04F8158858A
:1030000069857A858B859C850E94D61057C0DE0124
:103010001196F80186E001900D928150E1F7F98157
:10302000EA814C815D814115510509F447C0EF3FAC
:1030300009F04CC0FF3F09F049C040C0F983EA8362
:103040005D834C83F901EE0FFF1FE20FF31FEE0FBC
:10305000FF1FED59FE4FDE01119686E00D900192A3
:103060008150E1F7609361010E94C31427C0919FD2
:10307000C00111248D599E4F0E946F15882309F4B9
:1030800045C08091620190E0FC01EE0FFF1FE80F48
:10309000F91FEE0FFF1FED59FE4F408151816281F4
:1030A0007381848195810E94D6108091620190E0A5
:1030B0000196877090708093620101C016E0909134
:1030C000620180916101981791F620C080916101A1
:1030D000282F30E02F5F3F4FB9016770707021508B
:1030E00030408091620190E06817790709F0A6CF1F
:1030F0000E9426111092610110926201EBE5F1E04D
:1031000086E0DF011D928A95E9F7D8CF2C960FB69D
:10311000F894DEBF0FBECDBFCF91DF911F910F910D
:103120000895CF92DF92EF92FF921F93CF93DF9398
:10313000EC01009709F466C010E090EAC92E9FE008
:10314000D92E81E0E82EF12CFE012196949194373E
:1031500048F4943008F044C0913079F0923009F08E
:1031600051C01BC0953709F437C0953750F1892FEE
:103170008458803708F046C037C0FE0121969491EC
:10318000892F805E883060F597708E2D01C0880F82
:103190009A95EAF70E94D31A0FC0FE0121969491E6
:1031A000892F805E883058F497708E2D01C0880F6B
:1031B0009A95EAF70E94D91A0E94F81A19C0892F25
:1031C00015C0FE01249104C0C6010197F1F72150FA
:1031D0002223D1F721960CC0FE012196149108C03C
:1031E000892F0E948C1104C0892F8F770E9439117A
:1031F000212F04C0C6010197F1F72150222309F4C1
:10320000A3CFF8CFDF91CF911F91FF90EF90DF9088
:10321000CF90089508950895CF92DF92EF92FF9294
:103220000F931F93CF93DF936C01E0909301F09085
:1032300094010091950110919601809197019091D0
:103240009801A0919901B0919A01E82AF92A0A2BD4
:103250001B2BCFE1D0E0D801C7010C2E04C0B695DE
:10326000A795979587950A94D2F781709070892BCE
:1032700041F08C2FB6010E942B079C0181309105F3
:1032800051F421978FEFCF3FD80729F780E0B6019F
:103290000E942B079C01822FDF91CF911F910F91EC
:1032A000FF90EF90DF90CF90089560939701709317
:1032B00098018093990190939A010E9413110895A7
:1032C0009B01AC01609197017091980180919901E7
:1032D00090919A0162277327842795270E94551998
:1032E00008959B01AC0160919701709198018091C4
:1032F000990190919A0162237323842395230E945C
:10330000551908959B01AC01609197017091980146
:103310008091990190919A01622B732B842B952BAC
:103320000E945519089521E030E040E050E004C0CB
:10333000220F331F441F551F8A95D2F780919701A2
:1033400090919801A0919901B0919A01282739276D
:103350004A275B27CA01B9010E945519089521E047
:1033600030E040E050E004C0220F331F441F551FDF
:103370008A95D2F720953095409550958091970188
:1033800090919801A0919901B0919A012823392335
:103390004A235B23CA01B9010E945519089521E00F
:1033A00030E040E050E004C0220F331F441F551F9F
:1033B0008A95D2F78091970190919801A0919901F7
:1033C000B0919A01282B392B4A2B5B2BCA01B901EA
:1033D0000E945519089521E030E040E050E004C01B
:1033E000220F331F441F551F8A95D2F7CA01B90116
:1033F0000E945519089560E070E080E090E00E941E
:1034000055190895609393017093940180939501E9
:10341000909396010E94131108959B01AC01609155
:10342000930170919401809195019091960162278A
:103430007327842795270E94021A08959B01AC01E7
:103440006091930170919401809195019091960102
:1034500062237323842395230E94021A08959B01FB
:10346000AC016091930170919401809195019091CC
:103470009601622B732B842B952B0E94021A0895C0
:103480000E94021A0895382F809102018823E1F0EA
:1034900080910D018823C1F0832F869586958695AE
:1034A0008F3070F5E0910E01F0910F01E80FF11DE2
:1034B000377081E090E002C0880F991F3A95E2F7DB
:1034C0002181282B21830895A0910E01B0910F0135
:1034D000FD0120E08FEF9281931791F08F3F19F457
:1034E000992309F4822F2F5F31962E30A1F78F3F59
:1034F00039F0992787FD9095A80FB91F12963C9334
:103500000895482F809102018823E9F080910D01F0
:103510008823C9F0842F8695869586958F3020F56F
:10352000E0910E01F0910F01E80FF11D477081E06D
:1035300090E002C0880F991F4A95E2F7809521819B
:1035400082238183089520E030E0E0910E01F09124
:103550000F01E20FF31F8281841709F412822F5F9B
:103560003F4F2E30310589F7089581E090E0E091DA
:103570000E01F0910F01E80FF91F108201968031C2
:103580009105A9F708959091AB01982B9093AB0109
:10359000089580959091AB0198239093AB01089585
:1035A0001092AB0108959091AD01982B9093AD01CD
:1035B000089580959091AD0198239093AD01089561
:1035C0001092AD0108958093AC0108951092AC0162
:1035D0000895E0910E01F0910F0120E091E08181CA
:1035E00081112F5F9F5F31969031C9F7822F089527
:1035F000E0910E01F0910F018091AB018083E09189
:103600000E01F0910F0180819091AD01892B808393
:103610009091AC01992369F0E0910E01F0910F01B6
:103620008081892B80830E94E91A882311F00E94EF
:10363000E61A80910E0190910F010E94DD0F08950E
:103640009B01AC01AA27BB270097A105B10521F476
:10365000DA01C90160E001C060E1292F3A2F4B2F48
:103660005527211531054105510519F49C01AD017E
:1036700001C0685FDA01C90174E0B695A795979516
:1036800087957A95D1F70097A105B10519F4DA016C
:10369000C90101C06C5F9C01AD01F2E056954795F0
:1036A00037952795FA95D1F7211531054105510533
:1036B00019F49C01AD0101C06E5F56954795379591
:1036C0002795211531054105510509F06F5F862FBA
:1036D00008958091C501843009F11092AF0120E472
:1036E00088E190E00FB6F894A895809360000FBE33
:1036F0002093600083B7817F846083BF83B781603C
:1037000083BF7894889583B78E7F83BF88E10FB697
:10371000F89480936000109260000FBE08950895A1
:1037200008951F920F920FB60F9211248F939F93BB
:10373000AF93BF938091AF01882399F48091B0013A
:103740009091B101A091B201B091B3014196A11D38
:10375000B11D8093B0019093B101A093B201B093D9
:10376000B301BF91AF919F918F910F900FBE0F90BA
:103770001F9018950E9426110E94D00F0E946C087D
:1037800008951F930E948F1B0E9454050E94901B56
:1037900010E0812F0E940405882311F081E004C00D
:1037A0001F5F1E30B1F780E01F91089582E084BD55
:1037B00093E095BD9AEF97BD80936E0008958FB703
:1037C000F8942091B0013091B1014091B201509133
:1037D000B3018FBFC9010895EF92FF920F931F931A
:1037E000BC018FB7F894E090B001F090B101009166
:1037F000B2011091B3018FBFA801970140705070C2
:10380000CB01A0E0B0E0281739074A075B0720F09A
:103810009701261B370B05C09B01209530952E0D77
:103820003F1DC9011F910F91FF90EF9008951F92C6
:103830000F920FB60F9211248F939F93AF93BF9364
:103840008091B0019091B101A091B201B091B3010A
:103850000196A11DB11D8093B0019093B101A09379
:10386000B201B093B301BF91AF919F918F910F902F
:103870000FBE0F901F9018950E94B60CF89480E22E
:103880009EE420E931E0F9013197F1F70197D9F78A
:1038900087E090EBA7E0B0EB8093CE019093CF014F
:1038A000A093D001B093D1012CE088E190E00FB655
:1038B000F894A895809360000FBE20936000FFCF1E
:1038C000EF92FF920F931F93CF93DF93082F10E097
:1038D000812F0E940405C0E0D0E0E82EFF24C7013C
:1038E0000C2E02C0959587950A94E2F780FF09C0D7
:1038F00080E06C2F712F0E940307081711F481E0FC
:1039000008C02196C630D10551F71F5F1E3001F760
:1039100080E0DF91CF911F910F91FF90EF9008957C
:103920001F93182F8CE20E94601C882319F0812FAE
:103930000E94601C1F9108951F93CF93DF930E94F4
:103940000A1E882311F40E94151E14E6C0E4DCE967
:1039500005C00E945405CE010197F1F71150C8F738
:1039600089E20E94901C882309F02FC18AE20E94FC
:10397000901C882311F00E94151E85E00E94901C67
:10398000882311F00E943C1C0E94051E8093AE010A
:1039900087E00E94901C8823B9F18BE10E94901C63
:1039A000882349F09091AE01892F8695809581708A
:1039B000880F9D7F26C08EE00E94901C882359F0BE
:1039C0009091AE01892F8695869580958170880F9C
:1039D000880F9B7F16C080E10E94901C9091AE01E1
:1039E000882359F0892F86958695869580958170D4
:1039F000880F880F880F977F04C0892F809581706A
:103A00009E7F982B9093AE018091AE010E94F51D90
:103A10000E94FB1D8093BF0180EE0E94901C8823B2
:103A200049F08091BF01982F909591708E7F892BDE
:103A30008093BF0189E30E94901C882359F09091E4
:103A4000BF01892F869580958170880F9D7F982B67
:103A50009093BF0182EE0E94901C882369F09091A0
:103A6000BF01892F8695869580958170880F880F74
:103A70009B7F982B9093BF0186EE0E94901C882319
:103A800079F09091BF01892F8695869586958095CE
:103A90008170880F880F880F977F982B9093BF01B4
:103AA00083EE0E94901C882369F09091BF01892FBA
:103AB00082958F70809581708295807F9F7E982BF4
:103AC0009093BF0185E30E94901C882379F0909128
:103AD000BF01892F82958695877080958170829528
:103AE000880F807E9F7D982B9093BF0181E30E9479
:103AF000901C882389F09091BF01892F829586952B
:103B000086958370809581708295880F880F807C60
:103B10009F7B982B9093BF0181E10E94901C88238A
:103B200079F08091BF01982F991F9927991F21E063
:103B300092279795992797958F77892B8093BF0127
:103B40008091BF010E94E91D8091BF01881F8827D5
:103B5000881F80930D0187E20E94901C182F8EE130
:103B60000E94901C811112608FE10E94901C8111B3
:103B7000146080E20E94901C8111186081E20E9412
:103B8000901C8111106182E20E94901C81111062D0
:103B900083E20E94901C8111106484E20E94901CB8
:103BA00081111068112341F0812F0E94EF1D612FB8
:103BB00070E080E090E007C00E94001E90E0A0E06E
:103BC000B0E0BC01CD010E94401ADF91CF911F915E
:103BD0000895682F84E090E00E9404240895682FDF
:103BE00083E090E00E9404240895682F82E090E032
:103BF0000E940424089584E090E00E94F623089532
:103C000083E090E00E94F623089582E090E00E9415
:103C1000F623089580E090E00E94FE2320E08D5E70
:103C20009E4F09F421E0822F089580E090E06DEE30
:103C30007EEF0E94122482E090E060E00E94042463
:103C400083E090E060E00E94042484E090E060E083
:103C50000E94042485E090E060E00E94042408951E
:103C60008091BA0180FF0BC09091120185E0989F6E
:103C7000C0011124959587959595879530C081FF52
:103C800009C09091120185E0989FC001112495957B
:103C9000879525C082FF03C0909112010DC08091CD
:103CA000B901882319F485E090E00895609113012B
:103CB00090911201861728F085E0989FC001112489
:103CC0000EC0899F90011124C901880F991F880F88
:103CD000991F820F931F70E00E94CF23CB01803881
:103CE000910510F08FE70895009709F481E0089599
:103CF0008091BA0180FF05C0809114018695869558
:103D000018C081FF04C080911401869512C082FF03
:103D100003C0809114010DC02091B901222319F430
:103D200081E090E0089560911501809114012617BB
:103D300010F090E007C0289FC001112470E00E949D
:103D4000CF23CB018038910510F08FE708950097BD
:103D500009F481E00895803F21F40E94301E81958E
:103D600004C0813F29F40E94301E8093B60108955B
:103D7000823F21F40E94301E819504C0833F29F4C4
:103D80000E94301E8093B5010895893F19F40E9466
:103D9000781E05C08A3F31F40E94781E8195809379
:103DA000B70108958B3F21F40E94781E819504C0CD
:103DB0008C3F29F40E94781E8093B8010895843FB7
:103DC00021F48091B401816017C0853F21F4809176
:103DD000B401826011C0863F21F48091B4018460F7
:103DE0000BC0873F21F48091B401886005C0883FF3
:103DF00031F48091B40180618093B40108958D3FC6
:103E000021F48091BA01816005C08E3F31F4809128
:103E1000BA0182608093BA0108958F3F29F480919E
:103E2000BA0184608093BA010895803F29F480919B
:103E3000B60187FF6FC007C0813F41F48091B60192
:103E400018160CF067C01092B60164C0823F29F4C6
:103E50008091B50187FF5EC007C0833F41F4809128
:103E6000B50118160CF056C01092B50153C0893F29
:103E700029F48091B70118163CF04CC08A3F39F400
:103E80008091B70187FF46C01092B70143C08B3FB6
:103E900029F48091B80187FF3DC006C08C3F39F4FA
:103EA0008091B8011816B4F51092B80133C0843F60
:103EB00021F48091B4018E7F05C0853F31F480915B
:103EC000B4018D7F8093B40125C0863F21F4809199
:103ED000B4018B7FF7CF873F21F48091B401877FB6
:103EE000F1CF883F21F48091B4018F7EEBCF8D3FDD
:103EF00021F48091BA018E7F0BC08E3F21F4809116
:103F0000BA018D7F05C08F3F29F48091BA018B7F64
:103F10008093BA018091B501882371F48091B60134
:103F2000882351F48091B701882331F48091B8013E
:103F3000882311F41092B9010895E4EBF1E085E0D3
:103F4000DF011D928A95E9F71092B9011092BA012A
:103F5000089584EB91E00E94E80F0E94DF1B90938C
:103F6000BC018093BB0108951F938091BB01909188
:103F7000BC010E94EC1BAC012091B901222321F06D
:103F80008091110190E006C0909110018AE0989F05
:103F9000C00111244817590708F485C09091B50154
:103FA000992369F48091B601882349F48091B7017F
:103FB000882329F48091B801882309F474C02F3F25
:103FC00019F02F5F2093B901191624F40E94301EB6
:103FD0008093B5018091B50187FF05C00E94301E16
:103FE00081958093B5018091B601181624F40E9442
:103FF000301E8093B6018091B60187FF05C00E94F4
:10400000301E81958093B6016091B501662339F128
:104010001091B601112319F1772767FD7095872F4D
:10402000972F0E94E02223E333E343E35FE30E9400
:1040300044230E94AD226093B501612F772767FD6D
:104040007095872F972F0E94E02223E333E343E309
:104050005FE30E9444230E94AD226093B6018091E9
:10406000B701181624F40E94781E8093B70180913E
:10407000B70187FF05C00E94781E81958093B70124
:104080008091B801181624F40E94781E8093B8011C
:104090008091B80187FF05C00E94781E81958093AA
:1040A000B8010E94A91F1F91089580E0089580E043
:1040B0000895833099F1843030F4813069F0823092
:1040C00009F06FC01AC0853009F44AC08530B8F1D4
:1040D000863009F066C055C020911001822F90E013
:1040E000860F911D8F3F910520F4260F209310011C
:1040F00008958FEF80931001089520911101822F70
:1041000090E0860F911D8F3F910520F4260F20939C
:10411000110108958FEF80931101089520911201EC
:10412000822F90E0860F911D8F3F910520F4260F7E
:104130002093120108958FEF80931201089520912A
:104140001301822F90E0860F911D8F3F910520F47F
:10415000260F2093130108958FEF80931301089584
:1041600020911401822F90E0860F911D8F3F9105C1
:1041700020F4260F2093140108958FEF80931401EB
:10418000089520911501822F90E0860F911D8F3F99
:10419000910520F4260F2093150108958FEF809349
:1041A00015010895833031F1843030F4813061F0AD
:1041B000823009F04AC013C0853091F1853028F172
:1041C000863009F042C037C080911001681720F492
:1041D000861B80931001089510921001089580911C
:1041E0001101681720F4861B809311010895109225
:1041F0001101089580911201681720F4861B8093A5
:104200001201089510921201089580911301681708
:1042100020F4861B809313010895109213010895D2
:1042200080911401681720F4861B8093140108956F
:1042300010921401089580911501681720F4861BCF
:1042400080931501089510921501089521E030E042
:1042500040E050E004C0220F331F441F551F8A95D1
:10426000D2F7CA01B9010E94401A0E94261108958E
:104270008B3109F463C08C3100F58E3009F468C0CD
:104280008F3068F4873009F453C0883018F48630D2
:1042900089F537C0883081F18B3061F58DC081316F
:1042A00009F478C0823118F4803121F55DC086317F
:1042B00009F482C08931F1F47FC0853309F473C0F9
:1042C000863358F4873209F46EC0883218F48E3180
:1042D00088F06BC0893271F466C0833430F48A335D
:1042E00008F065C0883331F467C0833409F45BC0DB
:1042F000883481F080E008950E94051E0E94FB1D15
:1043000059C08091AE01807F8093AE0181E080939F
:10431000BD0108950E94261180E197E220E931E075
:10432000F9013197F1F70197D9F70E943C1C42C07F
:104330008091AE0180FF2AC0807F29C08091AE01AC
:10434000982F969590959170292F220F8D7F19C0E7
:104350008091AE01982F9695969590959170292F02
:10436000220F220F8B7F0DC08091AE01982F969562
:104370009695969590959170292F220F220F220FD6
:10438000877F822B8093AE019923B1F08160809367
:10439000AE0110C00E94261180910D0191E0892785
:1043A00080930D0107C080E003C08D5101C0895387
:1043B0000E94262181E0089581E008951F93182F1F
:1043C0008091BD01813089F0813020F0823009F088
:1043D000BFC03BC0E0910E01F0910F01E081E131DF
:1043E00069F0E23209F0B6C009C0E0910E01F09127
:1043F0000F01E081E13111F0E23249F4812F0E9496
:1044000055208823F9F4812F0E943821A4C0812FE0
:104410000E9457208823B1F4143161F0153128F43B
:104420001B3081F0103141F40AC0193219F01833F1
:1044300019F408C01092BD0180E090E08CC082E0C9
:104440008093BD0181E090E086C0193201F11A32FB
:1044500070F41431E1F0153120F4173009F064C024
:1044600065C0812F8E51863008F05EC01BC01E349F
:1044700009F455C01F3420F41B3409F055C049C05D
:10448000113509F442C0123509F04EC03AC080918E
:10449000BE01882319F01092BE0146C081E08093CE
:1044A000BD0159C01232F9F0133260F41F3199F096
:1044B000103218F41E3109F510C0103281F011329B
:1044C000E1F40FC0143299F0143278F0153289F00B
:1044D000163299F410C082E011C081E00FC083E071
:1044E0000DC084E00BC085E009C086E007C087E00E
:1044F00005C088E003C089E001C080E08093BE0170
:1045000013C08091BE0161E007C08091BE0161E0EF
:1045100009C08091BE016AE00E94592005C08091C7
:10452000BE016AE00E94D22081E015C09AE090931B
:10453000100184E18093110183E080931201909334
:10454000130188E08093140188E280931501ECCF79
:104550001092BD0180E01F91089504D06894B111BC
:104560008DC0089570D088F09F5790F0B92F99278B
:10457000B751A0F0D1F0660F771F881F991F1AF06E
:10458000BA95C9F712C0B13081F077D0B1E0089583
:1045900074C0672F782F8827B85F39F0B93FCCF304
:1045A000869577956795B395D9F73EF49095809564
:1045B000709561957F4F8F4F9F4F0895E89409C084
:1045C00097FB3EF490958095709561957F4F8F4F46
:1045D0009F4F9923A9F0F92F96E9BB279395F6955C
:1045E000879577956795B795F111F8CFFAF4BB0FDA
:1045F00011F460FF1BC06F5F7F4F8F4F9F4F16C03E
:10460000882311F096E911C0772321F09EE8872FC7
:10461000762F05C0662371F096E8862F70E060E083
:104620002AF09A95660F771F881FDAF7880F9695FC
:10463000879597F9089557FD9058440F551F59F0E5
:104640005F3F71F04795880F97FB991F61F09F3F7F
:1046500079F087950895121613061406551FF2CFA8
:104660004695F1DF08C0161617061806991FF1CFF8
:1046700086957105610508940895E894BB2766271F
:104680007727CB0197F908950BD078C069D028F02F
:104690006ED018F0952309F05AC05FC01124EECFF8
:1046A000CADFA0F3959FD1F3950F50E0551F629F8D
:1046B000F001729FBB27F00DB11D639FAA27F00D7B
:1046C000B11DAA1F649F6627B00DA11D661F829FA2
:1046D0002227B00DA11D621F739FB00DA11D621F87
:1046E000839FA00D611D221F749F3327A00D611DA4
:1046F000231F849F600D211D822F762F6A2F112486
:104700009F5750408AF0E1F088234AF0EE0FFF1FD8
:10471000BB1F661F771F881F91505040A9F79E3F0F
:10472000510570F014C0AACF5F3FECF3983EDCF364
:10473000869577956795B795F795E7959F5FC1F74C
:10474000FE2B880F911D9695879597F9089597F9F7
:104750009F6780E870E060E008959FEF80EC089527
:1047600000240A9416161706180609060895002450
:104770000A9412161306140605060895092E0394CA
:10478000000C11F4882352F0BB0F40F4BF2B11F43E
:1047900060FF04C06F5F7F4F8F4F9F4F089597FB5F
:1047A000092E07260AD077FD04D00CD006D00020B1
:1047B0001AF4709561957F4F0895F6F7909581955D
:1047C0009F4F0895AA1BBB1B51E107C0AA1FBB1F27
:1047D000A617B70710F0A61BB70B881F991F5A958D
:1047E000A9F780959095BC01CD010895F999FECF68
:1047F00092BD81BDF89A992780B50895A8E1B0E0EF
:1048000042E050E00C941924262FF999FECF1FBAEC
:1048100092BD81BD20BD0FB6F894FA9AF99A0FBEE9
:10482000019608950E940424272F0C940524DC018E
:10483000CB01FC01F999FECF06C0F2BDE1BDF89AAB
:10484000319600B40D9241505040B8F70895F89455
:02485000FFCF98
:1048520020020172080709E108AB087508019B01F3
:064862000A14030A0828F5
:00000001FF

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

@ -0,0 +1,282 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#define BASE 0 // default layer
#define QWERTY 1 // qwerty keys
#define FKEYS 2 // F keys + macros
#define MACRO_PUBLIC 10
#define MACRO_PRIVATE 11
#define MACRO_STATIC 12
#define MACRO_CONST 13
#define MACRO_VOID 14
#define MACRO_VAR 15
#define MACRO_STRING 16
#define MACRO_INT 17
#define MACRO_FLOAT 18
#define MACRO_BOOL 19
#define MACRO_RETURN 20
#define MACRO_NULL 21
#define MACRO_BREAK 22
#define MACRO_TODO 23
#define MACRO_NEW 24
#define MACRO_PARENTHESE 25
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo |
* |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------|
* | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Tab~CL| < | > | | | & | | = | + | - | * | L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* |. ~L1 | , ~L2| |Home~L1| End~L2|
* ,------|------|------| |------+--------+------.
* | | | Copy | | UP | | |
* | Enter| Space|------| |------| Space |Enter |
* | ~LSFT| ~WIN | Past | | DOWN | ~WIN | ~LSFT|
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE),
KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE,
KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH,
CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR,
LT(1,KC_DOT), LT(2,KC_COMM),
LCTL(KC_C),
SFT_T(KC_ENTER),GUI_T(KC_SPACE),LCTL(KC_V),
// right hand
LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET,
KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET,
KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y),
KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z),
KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1),
LT(2,KC_HOME), LT(1,KC_END),
KC_UP,
KC_DOWN,GUI_T(KC_SPACE), SFT_T(KC_ENTER)
),
/* Keymap 1: QWERTY layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| Tab | | Esc |------+------+------+------+------+--------|
* | LSHFT | Z | X | C | V | B | | | | N | M | , | . | / | \ |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | CTRL | WIN | ALT |ALT GR| Esc | | PgUp | PgDw | Ins | PtSc | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | Cut | | | |
* ,------|------|------| |------+--------+------.
* | | | | | | | |
* | | |------| |------| Left | Right|
* | | | | | | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[QWERTY] = KEYMAP( // layer 2 : QWERTY
// left hand
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_TRNS,
KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB,
KC_LCTRL, KC_LGUI,KC_LALT, KC_RALT, KC_ESCAPE,
KC_TRNS, LCTL(KC_X),
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_EQUAL , KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE,
KC_ESCAPE,KC_N, KC_M, KC_TRNS,KC_DOT , KC_SLASH, KC_NONUS_BSLASH,
KC_PGUP , KC_PGDOWN,KC_INSERT ,KC_PSCREEN, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS,KC_LEFT, KC_RIGHT
),
/* Keymap 2: F keys + macros
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | Calc | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | |Public|Static|string|int |return| | | |//TODO| | | | | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |Privat|Const |var |float |null |------| |------|new | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | |void |bool |break;| | | |(); | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | Alt | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | Cut | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// FKEYS + MACROS
[FKEYS] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS,
KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL),
KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_TRNS,
KC_TRNS,KC_LALT,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(QWERTY) // FN1 - Momentary Layer 1
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case MACRO_PUBLIC:
if (record->event.pressed) {
return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END);
}
break;
case MACRO_PRIVATE:
if (record->event.pressed) {
return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END);
}
break;
case MACRO_STATIC:
if (record->event.pressed) {
return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END);
}
break;
case MACRO_CONST:
if (record->event.pressed) {
return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END);
}
break;
case MACRO_VOID:
if (record->event.pressed) {
return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END);
}
break;
case MACRO_VAR:
if (record->event.pressed) {
return MACRO( T(V), T(A), T(R), T(SPACE), END);
}
break;
case MACRO_STRING:
if (record->event.pressed) {
return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END);
}
break;
case MACRO_BOOL:
if (record->event.pressed) {
return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END);
}
break;
case MACRO_INT:
if (record->event.pressed) {
return MACRO( T(I), T(N), T(T), T(SPACE), END);
}
break;
case MACRO_FLOAT:
if (record->event.pressed) {
return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END);
}
break;
case MACRO_RETURN:
if (record->event.pressed) {
return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END);
}
break;
case MACRO_NULL:
if (record->event.pressed) {
return MACRO( T(N), T(U), T(L), T(L), END);
}
case MACRO_BREAK:
if (record->event.pressed) {
return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END);
}
break;
case MACRO_TODO:
if (record->event.pressed) {
return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END);
}
break;
case MACRO_NEW:
if (record->event.pressed) {
return MACRO( T(N), T(E), T(W), T(SPACE), END);
}
break;
case MACRO_PARENTHESE:
if (record->event.pressed) {
return MACRO( D(LSHIFT),T(LPRN), T(RPRN),U(LSHIFT), T(SCOLON), END);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void * matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
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) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,46 @@
# ErgoDox EZ C# Developer configuration
## Changelog
* Feb 12, 2016 (V1):
* First version commit
## About
This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions.
I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years.
There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case.
The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press.
Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design.
![CSharpDev](csharp_dev_legend.png)
## Layout design principles
-No key combination required for the most common input characters ( (),[],{},<> ... )
-No key combination required for the most common actions (copy/paste/undo/save)
-Regroup characters by usage ( + - * = ...)
-Easy access to the most commonly used characters: ; / " . ,
-Preregistered macro for the most common C# langage instructions: public / private / string / int / float ...
## Why is it specific to C#
I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking.
For example there is no direct access to ~ or $ keys which can be very common in some languages.
Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os
## In usage
It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time.
Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; )
## Improvements
This layout was shared after a bunch of iterations and only once I was happy with it.
Still there are many way to improve or iterate on this:
-Make it language agnostic
-Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various )
-QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur
-Layout 1 is mainly here for safety, most of its unique keys could be transfered to Layout 2 and it could then be removed
## Issues
One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold )
Loading…
Cancel
Save