diff options
author | Erez Zukerman <bulk@ezuk.org> | 2016-02-08 08:01:54 -0500 |
---|---|---|
committer | Erez Zukerman <bulk@ezuk.org> | 2016-02-08 08:01:54 -0500 |
commit | 67f14d938b1cc9fd6713d91a0995d51ee6818a80 (patch) | |
tree | 4e133ab1380dc12f36a36d3f72db51f57010ce66 | |
parent | ac84fa47fc0fd6342d861784e1c96a1311107fd5 (diff) | |
parent | b5b9885df7d3a8aae404e005a81d8ceaa76d005d (diff) |
Merge pull request #130 from jacobono/jacobono
Jacobono
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/README.md | 34 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png | bin | 0 -> 70434 bytes | |||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png | bin | 0 -> 46225 bytes | |||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png | bin | 0 -> 49615 bytes | |||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex | 1142 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/jacobono/keymap.c | 273 |
7 files changed, 1450 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 49eb2d5587..1e19ce9a87 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ tags build/ *.bak .vagrant/ +.DS_STORE
\ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/jacobono/README.md b/keyboard/ergodox_ez/keymaps/jacobono/README.md new file mode 100644 index 0000000000..48de0509fc --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/README.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png Binary files differnew file mode 100644 index 0000000000..06f63c4968 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png Binary files differnew file mode 100644 index 0000000000..4dd7182785 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png Binary files differnew file mode 100644 index 0000000000..ee224cf0c1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png diff --git a/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex b/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex new file mode 100644 index 0000000000..cf68f854fd --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex @@ -0,0 +1,1142 @@ +:100000000C940D030C9451030C9451030C94510364
+:100010000C9451030C9451030C9451030C94510310
+:100020000C9451030C9451030C946A0C0C943C0DE9
+:100030000C9451030C9451030C9451030C945103F0
+:100040000C9451030C94C1210C9451030C94510352
+:100050000C9451030C94521B0C9451030C945103B7
+:100060000C9451030C9451030C9451030C945103C0
+:100070000C9451030C9451030C9451030C945103B0
+:100080000C9451030C9451030C9451030C945103A0
+:100090000C9451030C9451030C9451030C94510390
+:1000A0000C9451030C9451030C945103A90DCB0DE6
+:1000B000B90ECB0DB90E100E330EB90E880E9B0E75
+:1000C0007D117D11AC11AC11EF112D1246144614A7
+:1000D00046124614471347131A1446144614311493
+:1000E0000000F0A201002B002A00E10001540000F2
+:1000F0001E00140004001D71010003521F001A00AD
+:1001000015001B0001002800200009001600060051
+:1001100052002C00210013001700190002522C0A73
+:1001200022000A00070005000000E3005000010063
+:1001300000000100000065004F00010000002B08D6
+:100140000000297123000D000B000E000000E200EA
+:1001500024000F001100100002522C0A2500180084
+:100160000800360051002C0026001C000C0037004F
+:10017000010028002700330012003871E600035206
+:100180004C002B004C00E500E70000002A002B008B
+:10019000E000E100010000001E00140004001D71D9
+:1001A00034004D001F001A0016001B00E104E3009C
+:1001B000200008000700060050002C002100150058
+:1001C0000900190002524A00220017000A00050027
+:1001D00000002B00500001000000E20000004C0075
+:1001E0004F0001000000E6000000E20023001C00B8
+:1001F0000B00110000002971240018000D001000F0
+:1002000002524B0025000C000E0036005100280061
+:10021000260012000F0037002F00E7002700130010
+:100220003384387130004E004C003100E400E500AA
+:10023000C1000000010001000100010001000000F8
+:100240003A00010031020100010001003B001F02E1
+:100250001E022202010001003C0025022E022302A0
+:10026000010001003D002E002D00210201000100CF
+:100270003E002D02340224020000010001000100B2
+:100280000000010000000100010001000000010069
+:10029000000001003F00350234023300000001007D
+:1002A00040002F0226022F00010001004100300211
+:1002B000270230000100010042002002340031001A
+:1002C0000100010043003302350038000100010045
+:1002D0004400450001000100010000000100010090
+:1002E0000100010001000000010001000100010007
+:1002F00001000100010001005000010001000100A7
+:100300000100520051000100010001000100010044
+:100310004F00010001000100010001000100010087
+:1003200000000100010001000000010000000100C8
+:100330000100010000000100000001000100210295
+:100340002E002402000001000100240021001E00F4
+:10035000360001000100250022001F0027000100D7
+:1003600001002600230020003700010001002E02BA
+:100370002D002502380001000100010001000100EC
+:100380000100000001000100010001000100000067
+:100390000100010001000100010001000100010055
+:1003A000F2000100010001000100F000F100010075
+:1003B000F400010001000100F3000100F50001005C
+:1003C0000100010001000100000001000100010026
+:1003D0000000010000000100010001000000010018
+:1003E0000000010001000100010001000000010007
+:1003F0000100010001000100A9000100010001004D
+:100400000100AC00AA00B600010001000100AB0031
+:10041000A80001000100010001000100010001002D
+:1004200001000100AE0001000100000016034500BC
+:10043000720067006F0044006F00780020004500E4
+:100440005A00000016034500720067006F00440068
+:100450006F007800200045005A00000004030904E2
+:1004600009026D00040100A0FA0904000001030163
+:100470000100092111010001223F00070581030845
+:10048000000A090401000103010200092111010011
+:1004900001224D000705820308000A090402000139
+:1004A0000300000009211101000122360007058325
+:1004B0000308000A090403000103000000092111D8
+:1004C0000100012239000705840310000112011008
+:1004D0000100000008EDFE07130100010200010504
+:1004E000010906A101050719E029E7150025019575
+:1004F0000875018102050819012905950575019105
+:10050000029501750391010507190029771500254A
+:1005100001957875018102C005010980A10185025C
+:1005200016010026B7001A01002AB70075109501C0
+:100530008100C0050C0901A1018503160100269C5C
+:10054000021A01002A9C02751095018100C0050164
+:100550000902A1010901A1000509190129051500D8
+:10056000250195057501810295017503810105013C
+:10057000093009311581257F9502750881060938F2
+:100580001581257F950175088106050C0A3802152D
+:1005900081257F950175088106C0C005010906A166
+:1005A00001050719E029E715002501950875018166
+:1005B0000295017508810105081901290595057540
+:1005C0000191029501750391010507190029FF1595
+:1005D0000025FF950675088100C00000000000009E
+:1005E0000000000000010204060A0F17202C3A4AFE
+:1005F0005D71879DB3C7DAE9F5FCFFFCF5E9DAC761
+:10060000B39D87715D4A3A2C20170F0A0604020138
+:100610000000000000000000000011241FBECFEF0A
+:10062000DAE0DEBFCDBF04B603FE24C08091EE0148
+:100630009091EF01A091F001B091F1018730904BC2
+:10064000A740B04BB9F41092EE011092EF01109256
+:10065000F0011092F10114BE84B7877F84BF88E156
+:100660000FB6F89480936000109260000FBEE0E037
+:10067000FFE3099511E0A0E0B1E0E6E0F7E402C095
+:1006800005900D92A433B107D9F711E0A4E3B1E0CE
+:1006900001C01D92AE3EB107E1F70E94AE090C9475
+:1006A00081230C94000061110BC0FC01828188231E
+:1006B00021F085EE0E941A1003C085EE0E94E21020
+:1006C00080E090E0089508956091B1017091B201C9
+:1006D0008091B3019091B4010E94811A56985E985E
+:1006E00025982D9826982E9827982F98813019F0C4
+:1006F000823021F00895259A2D9A0895269A2E9AEF
+:10070000089584E693E0892B11F00E94640380E051
+:1007100090E0089556985E9825982D9826982E98E2
+:1007200027982F988FEF90E090938900809388000E
+:1007300090938B0080938A0090938D0080938C001F
+:10074000259A2D9A2FEF80E792E02150804090402B
+:10075000E1F700C00000269A2E9A2FEF80E792E082
+:10076000215080409040E1F700C00000279A2F9A66
+:100770002FEF80E792E0215080409040E1F700C0E9
+:10078000000025982D982FEF80E792E021508040BF
+:100790009040E1F700C0000026982E982FEF80E7E8
+:1007A00092E0215080409040E1F700C0000027987F
+:1007B0002F9856985E9825982D9826982E982798C9
+:1007C0002F98089589EA8093800089E080938100C2
+:1007D00024982C983F988AB18F748AB96E98479A5A
+:1007E0008BB1806B8BB9769A0E948A0383E693E083
+:1007F000892B11F00E94630380E090E0089580E26D
+:10080000809300018091340181110EC00E944E043A
+:1008100081E0809334012FEF83ED90E321508040FD
+:100820009040E1F700C0000080E40E9454048093EF
+:10083000000181112EC00E947E048093000181116D
+:1008400028C00E947E0480930001811122C08FE3A2
+:100850000E947E048093000181111BC00E947604D7
+:1008600080E40E94540480930001811112C08CE046
+:100870000E947E048093000181110BC00E947E04BF
+:1008800080930001811105C08FE30E947E04809354
+:1008900000010E9476048091000108951092B90031
+:1008A0008AE08093B800089594EA9093BC009091F8
+:1008B000BC0097FFFCCF9091B900987F983021F051
+:1008C000903111F081E008958093BB0084E880931B
+:1008D000BC008091BC0087FFFCCF8091B900887F6D
+:1008E000883111F0803471F780E0089584E98093B5
+:1008F000BC008091BC0084FDFCCF08958093BB00B8
+:1009000084E88093BC008091BC0087FFFCCF90916D
+:10091000B900987F81E0983209F480E0089584E876
+:100920008093BC008091BC0087FFFCCF8091BB000E
+:10093000089580910001811115C080E40E94540443
+:100940008093000181110CC082E10E947E0480939B
+:100950000001811105C08FEF0E947E048093000189
+:100960000E94760484B1807F84B985B1807F85B987
+:100970008AB1837F8AB98BB1837F8BB93E984698C1
+:1009800008950E94FF03809300010E94990480B3A0
+:100990008C7080BB81B3836F81BBA6E3B1E0E4E4DC
+:1009A000F1E08EE08E0F11921D928E13FCCF82EE3D
+:1009B00093E0892B11F00C94E2030895BF92CF923B
+:1009C000DF92EF92FF920F931F93CF93DF9380916B
+:1009D0000001882379F0809135018F5F8093350184
+:1009E000811108C00E94FF0380930001811102C0A1
+:1009F0000E948A0306E311E0C0E0D0E0DD24D39436
+:100A000082E0C82EEE24E394F12CC730D10500F526
+:100A100080910001811164C080E40E94540480939D
+:100A20000001811112C082E10E947E0480930001C6
+:100A300081110BC0C7010C2E01C0880F0A94EAF780
+:100A400080950E947E04809300010E94760448C035
+:100A5000CA30A1F028F4C83059F0C93061F005C09F
+:100A6000CC3089F070F0CD3089F0209A289810C0F1
+:100A7000219A29980DC0229A2A980AC0239A2B9865
+:100A800007C0529A01C0539A5B9802C03E9A46989A
+:100A900090EA9A95F1F79FB1799902C082E001C07E
+:100AA00080E091709D25982B7C9902C084E001C064
+:100AB00080E0892B7D9902C038E001C030E0832BB3
+:100AC0007E9902C020E101C020E0822B9FB1909569
+:100AD000991F9927991F9295990F907E892B0FC086
+:100AE0008091000181114FC080E40E9454048093E2
+:100AF00000018823A9F1B12C0E9476048B2DF80106
+:100B00009081981719F08083C09201010E94990486
+:100B100021960F5F1F4FCE30D10509F076CF80911F
+:100B200001018823B1F0815080930101882339F0BD
+:100B30008FE99FE00197F1F700C000000AC0A4E42C
+:100B4000B1E0E6E3F1E0CF01825F91919D938E13D6
+:100B5000FCCF81E893E0892BC1F00E94810315C08E
+:100B600083E10E947E04809300018111C4CF81E45F
+:100B70000E945404809300018111BDCF0E948F0414
+:100B8000B82EB094B9CF80E0BACF81E0DF91CF9199
+:100B90001F910F91FF90EF90DF90CF90BF9008953D
+:100BA000E82FF0E0EC5BFE4F8081089508958B3BC9
+:100BB000910578F4883A910540F5853A9105D0F48D
+:100BC0008430910508F0B1C08130910509F4ADC0C1
+:100BD0006BC0803E910508F467C0883E910508F41B
+:100BE000A4C09C01205F31092031310508F05CC0B0
+:100BF00090650895853A910509F459C0863A9105A2
+:100C000009F058C082E890E40895883A910509F403
+:100C100054C0893A910509F453C08A3A910509F400
+:100C200052C08B3A910509F451C08C3A910509F4F0
+:100C300050C08D3A910509F44FC0803B910509F4ED
+:100C40004EC08E3A910509F44DC08F3A910509F4D2
+:100C50004CC0813B910509F44BC0823B910509F4DE
+:100C60004AC0833B910509F449C0843B910509F4CE
+:100C700048C0853B910509F447C0863B910509F4BE
+:100C800046C0873B910509F445C0883B910509F4AE
+:100C900044C0893B910509F443C08A3B910509F49E
+:100CA00042C080E094E4089580E090E0089581E8F7
+:100CB00090E4089583E890E4089582EE94E4089522
+:100CC00089EE94E408958AEE94E4089585EB94E423
+:100CD000089586EB94E4089587EB94E408958CECF2
+:100CE00094E408958DEC94E4089583E895E40895E0
+:100CF0008AE895E4089582E995E4089584E995E405
+:100D0000089581E296E4089583E296E4089584E2EA
+:100D100096E4089585E296E4089586E296E40895BF
+:100D200087E296E408958AE296E40895089596E0AD
+:100D3000799FF001112494E5899FE00DF11D1124A4
+:100D4000E60FF11DEE0FFF1FEC51FF4F85919491BF
+:100D50000895880F991FFC01E05AF0408591949105
+:100D60000895880F991FFC01E052FF4F85919491DF
+:100D7000089526E0729FF001112444E5849FE00D60
+:100D8000F11D1124E60FF11DEE0FFF1FEC51FF4F77
+:100D9000859194919C013A9521154FE1340708F40F
+:100DA0001AC13F512115304120F49F700E94B106B5
+:100DB00008959C0130532115304118F49927906C07
+:100DC0000895811520E5920769F40E9468144FEF99
+:100DD00084E39CE0415080409040E1F700C0000077
+:100DE0000C94771B813020E5920731F48091CC017F
+:100DF00081608093CC0108959C01305521153041CC
+:100E000008F051C0292F33272F70332721303105A7
+:100E1000D9F4AC014370552702C0220F331F4A9505
+:100E2000E2F73C68AC0164E0440F551F6A95E1F7B6
+:100E300044275370242B352B73E0880F991F7A9524
+:100E4000E1F7807699271DC02230310529F4982FCB
+:100E50008827816F906A089523303105A9F4AC0189
+:100E60004370552721E030E002C0220F331F4A951E
+:100E7000E2F73C6843E0880F991F4A95E1F7807ECE
+:100E80009770822B932B089524303105E1F4AC0147
+:100E90004370552721E030E002C0220F331F4A95EE
+:100EA000E2F73A68E7CF9C0130572115304118F43A
+:100EB0009F70906208959C0130582115304118F4BC
+:100EC0009F70906A0895803E9105E0F4803C910502
+:100ED00058F58133910509F46FC048F489329105C2
+:100EE00009F463C08A32910509F46DC072C0893378
+:100EF0009105E9F082389105D1F08533910509F427
+:100F00004DC067C0833E910581F138F4803E910564
+:100F1000B9F0823E9105D9F05CC0863E910561F141
+:100F2000873E9105A1F155C00E94A9060895209120
+:100F3000DF0120FD02C021FF4CC080EE90E049C0DF
+:100F40008091DF0180FFF9CF89E390E042C080917A
+:100F5000DF0182FF0EC08091DF0184FF03C080E0CB
+:100F600090E037C083EE90E034C08091DF0182FFD3
+:100F7000F2CF82EE90E02DC08091DF0183FF0BC0A5
+:100F80008091DF0184FDEBCF87EE90E022C080915D
+:100F9000DF0183FFF5CF86EE90E01BC08091DF017B
+:100FA00085FF07C089E290E014C08091DF0185FFD2
+:100FB000F9CF85E390E00DC08091DF0186FF07C087
+:100FC0008AE290E006C08091DF0186FFF9CF81E3DD
+:100FD00090E00E94D70508950895809162010895D8
+:100FE000CF93DF9300D01F92CDB7DEB79C018091E5
+:100FF000E501843019F593E099833B832A8390932C
+:10100000E9008FEF9091E800815095FD06C095EDC5
+:101010009A95F1F700008111F5CF8091E80085FFE6
+:101020000DC040E050E063E070E0CE0101960E9408
+:101030005A0A8091E8008E778093E8000F900F9015
+:101040000F90DF91CF910895CF93DF9300D01F923F
+:10105000CDB7DEB72091E501243021F522E02983C8
+:101060009B838A8383E08093E9008FEF9091E8006F
+:10107000815095FD06C095ED9A95F1F7000081111C
+:10108000F5CF8091E80085FF0DC040E050E063E0BF
+:1010900070E0CE0101960E945A0A8091E8008E7796
+:1010A0008093E8000F900F900F90DF91CF910895FB
+:1010B0002091E5012430F1F422E02093E9002FEFA4
+:1010C0003091E800215035FD06C035ED3A95F1F735
+:1010D00000002111F5CF2091E80025FF0BC040E072
+:1010E00050E065E070E00E945A0A8091E8008E7737
+:1010F0008093E8000895CF93DF93EC019091E50190
+:10110000943009F046C080910C018823D9F0809179
+:101110000D018823B9F09093E9008FEF9091E800DA
+:10112000815095FD06C095E19A95F1F70000811177
+:10113000F5CF8091E80085FF2CC040E050E060E1F1
+:1011400070E017C081E08093E9008FEF9091E80094
+:10115000815095FD06C095ED9A95F1F7000081113B
+:10116000F5CF8091E80085FF14C040E050E068E0D2
+:1011700070E0CE010E945A0A8091E8008E77809339
+:10118000E80080E1FE01A2E5B1E001900D928A95B0
+:10119000E1F7DF91CF9108958091E401811109C0B9
+:1011A0000E94EF0B0E944C0C8091E20084608093BF
+:1011B000E20008951092E401089508950C94AE2180
+:1011C0000E940D1B0E94B4210E94F20E0C94EC07A9
+:1011D00042E061EC81E00E94690B42E061EC82E058
+:1011E0000E94690B42E061EC83E00E94690B42E1DE
+:1011F00061EC84E00C94690B8091E701833009F481
+:1012000055C030F4813071F0823009F48EC00895F9
+:101210008A3009F47AC08B3009F460C0893009F053
+:101220009CC020C08091E601813A09F096C080916F
+:10123000E800877F8093E8008091EA019091EB01BC
+:10124000892B21F460E182E591E003C060E080E059
+:1012500090E070E00E94A50A8091E8008B7780936F
+:10126000E80008958091E601813209F076C080910E
+:10127000EA019091EB01009719F0039709F06DC016
+:101280008091E800877F8093E8008091E80082FDEC
+:1012900005C08091E5018111F8CF5FC08091F10018
+:1012A000809362018091E8008B7753C08091E601C2
+:1012B000813A09F052C08091EA019091EB01892BAB
+:1012C00009F04BC08091E800877F8093E80080910F
+:1012D000E80080FFFCCF80910C0136C08091E601D0
+:1012E0008132D9F58091EA019091EB01892BA9F522
+:1012F0008091E800877F8093E8000E949E0B809198
+:10130000E80180930C010C9468148091E60181320D
+:1013100021F58091E800877F8093E8000E949E0B72
+:101320008091E9018093630108958091E601813AFB
+:10133000A1F48091E800877F8093E8008091E80025
+:1013400080FFFCCF809163018093F1008091E800E1
+:101350008E778093E8000C949E0B089584B7877F66
+:1013600084BF88E10FB6F89480936000109260000B
+:101370000FBE90E080E80FB6F894809361009093E0
+:1013800061000FBE0E94410F0E94EF0B0E944C0CA7
+:101390008091E20084608093E20078940E94D20EF3
+:1013A0000E94430F82E091E00E94ED0E0E949C217A
+:1013B0008091E501853069F40E94D11A8091E301A2
+:1013C0008823B1F30E94F91A882391F30E94440AFA
+:1013D000EFCF0E94490FECCF292F3327233031055F
+:1013E000C9F064F42130310581F02230310509F073
+:1013F00043C08DE690E020E634E042C02132310562
+:10140000F1F02232310541F137C082E190E02DEC5C
+:1014100034E036C099278130910541F08230910542
+:1014200041F0892B49F5ECE5F4E005C0E4E4F4E093
+:1014300002C0ECE2F4E0849190E09F0121C06430AE
+:10144000D8F4E62FF0E0EE0FFF1FEE5DFE4F208197
+:10145000318189E090E014C0643070F470E0FB01E9
+:10146000EE0FFF1FE65EFE4F20813181FB01EA5E39
+:10147000FE4F808190E004C080E090E020E030E00A
+:10148000FA0131832083089580E189BD82E189BD1D
+:1014900009B400FEFDCF8091D8008F7D8093D800E5
+:1014A0008091E00082608093E0008091E00081FD07
+:1014B000FCCF0895CF92DF92EF92FF920F931F938C
+:1014C000CF93DF93EC018B016A010E94BD0B811168
+:1014D00033C0C114D10439F0F60180819181081B19
+:1014E000190BC80FD91FE12CF12C0115110519F1A9
+:1014F0008091E80085FD16C08091E8008E7780938A
+:10150000E800C114D10449F0F60180819181E80E10
+:10151000F91EF182E08285E00FC00E94BD0B882396
+:1015200021F30AC089918093F10001501109FFEF66
+:10153000EF1AFF0ADACF80E0DF91CF911F910F9170
+:10154000FF90EF90DF90CF9008952091EC013091C3
+:10155000ED012617370748F06115710539F4209120
+:10156000E8002E772093E80001C0B90140E0611542
+:101570007105A9F12091E501222309F443C025302A
+:1015800009F442C02091E80023FD40C02091E8000A
+:1015900022FD32C02091E80020FFE9CF4091F30006
+:1015A0002091F20030E0342BFC01CF016115710570
+:1015B00059F02830310540F481918093F100615059
+:1015C00071092F5F3F4FF1CF41E02830310509F01D
+:1015D00040E02091E8002E772093E800C8CF411129
+:1015E000C9CF0AC08091E501882361F0853061F0A0
+:1015F0008091E80083FD0AC08091E80082FFF2CF6D
+:1016000080E0089582E0089583E0089581E00895E0
+:101610002091EC013091ED012617370748F0611554
+:10162000710539F42091E8002E772093E80001C07D
+:10163000B901FC0120E06115710591F18091E5018E
+:10164000882309F440C0853009F43FC08091E80048
+:1016500083FD3DC08091E80082FD2FC08091E800AD
+:1016600080FFE9CF2091F3008091F20090E0922B6F
+:101670006115710559F08830910540F4249120934B
+:10168000F1003196615071090196F2CF21E008977F
+:1016900009F020E08091E8008E778093E800CBCFBE
+:1016A0002111CCCF0AC08091E501882361F08530FB
+:1016B00061F08091E80083FD0AC08091E80082FF1C
+:1016C000F2CF80E0089582E0089583E0089581E0FC
+:1016D0000895982F973058F59093E900981739F0AE
+:1016E0007091EC002091ED005091F00003C0242F88
+:1016F000762F50E021FF19C03091EB003E7F3093F0
+:10170000EB003091ED003D7F3093ED003091EB0028
+:1017100031603093EB007093EC002093ED00509318
+:10172000F0002091EE0027FF07C09F5FD3CF8F709E
+:101730008093E90081E0089580E008958091E601BA
+:1017400087FF11C08091E80082FD05C08091E5010E
+:101750008111F8CF11C08091E8008B770BC0809188
+:10176000E501882349F08091E80080FFF8CF80915F
+:10177000E8008E778093E80008952091E40030918E
+:10178000E50095E64091EC00842F817040FF22C077
+:101790008091E80080FD1CC08091E501882391F0D4
+:1017A000853091F08091EB0085FD10C04091E40000
+:1017B0005091E5004217530729F39A01915011F710
+:1017C00084E0089582E0089583E0089581E008951B
+:1017D00080E008954091E80042FFDECF08950E9426
+:1017E0005D0C0E94650CE0EEF0E0808181608083FA
+:1017F000E8EDF0E080818F77808319BCA7EDB0E041
+:101800008C918E7F8C9380818F7E80831092E401F7
+:1018100008950F931F93CF93DF930E945D0C0E9456
+:10182000650CC8EDD0E088818F77888388818068D7
+:10183000888388818F7D888319BC1092E50110927E
+:10184000E1011092E3011092E20100EE10E0F801D4
+:1018500080818B7F808388818160888342E060E023
+:1018600080E00E94690BE1EEF0E080818E7F808352
+:10187000E2EEF0E0808181608083808188608083F7
+:10188000F80180818E7F8083888180618883DF91E9
+:10189000CF911F910F910895E8EDF0E080818F7E48
+:1018A0008083E7EDF0E080818160808384E082BF07
+:1018B00081E08093E4010C94090CE8EDF0E0808174
+:1018C0008E7F80831092E20008951092DA001092C9
+:1018D000E10008951F920F920FB60F9211242F93DB
+:1018E0003F934F935F936F937F938F939F93AF93A8
+:1018F000BF93EF93FF938091E10082FF0BC0809133
+:10190000E20082FF07C08091E1008B7F8093E100BD
+:101910000E94D10E8091DA0080FF1FC08091D80014
+:1019200080FF1BC08091DA008E7F8093DA00809167
+:10193000D90080FF0DC080E189BD82E189BD09B475
+:1019400000FEFDCF81E08093E5010E94CC0805C038
+:1019500019BC1092E5010E94DA088091E10080FF35
+:1019600019C08091E20080FF15C08091E2008E7F57
+:101970008093E2008091E20080618093E200809198
+:10198000D80080628093D80019BC85E08093E5017F
+:101990000E94DE088091E10084FF30C08091E20067
+:1019A00084FF2CC080E189BD82E189BD09B400FEBD
+:1019B000FDCF8091D8008F7D8093D8008091E10089
+:1019C0008F7E8093E1008091E2008F7E8093E20021
+:1019D0008091E20081608093E2008091E1018823A0
+:1019E00011F084E007C08091E30087FD02C081E030
+:1019F00001C083E08093E5010E94E0088091E1004E
+:101A000083FF29C08091E20083FF25C08091E1001F
+:101A1000877F8093E10082E08093E5011092E101ED
+:101A20008091E1008E7F8093E1008091E2008E7FC3
+:101A30008093E2008091E20080618093E20042E0C6
+:101A400060E080E00E94690B8091F00088608093E4
+:101A5000F0000E94DD08FF91EF91BF91AF919F913F
+:101A60008F917F916F915F914F913F912F910F9047
+:101A70000FBE0F901F9018951F920F920FB60F92E6
+:101A800011242F933F934F935F936F937F938F9383
+:101A90009F93AF93BF93CF93DF93EF93FF93C09147
+:101AA000E900CF708091EC00D82FD17080FDD0E894
+:101AB0001092E9008091F000877F8093F000789485
+:101AC0000E94800D1092E9008091F0008860809360
+:101AD000F000CD2BCF70C093E900FF91EF91DF9123
+:101AE000CF91BF91AF919F918F917F916F915F91B6
+:101AF0004F913F912F910F900FBE0F901F9018950F
+:101B00001F93CF93DF93CDB7DEB7AA970FB6F894A4
+:101B1000DEBF0FBECDBFE6EEF1E088E08E0F909104
+:101B2000F10091938E13FBCF0E94FC088091E80096
+:101B300083FF1FC18091E6019091E701492F50E09A
+:101B40004A30510508F015C1FA01EA5AFF4F0C94CA
+:101B50003623803881F0823809F00BC18091EA0188
+:101B60008F708093E9008091EB0085FB882780F9D6
+:101B70001092E90006C08091E2019091E301911179
+:101B800082609091E800977F9093E8008093F10045
+:101B90001092F100C8C0282F2D7F09F0EAC08823D9
+:101BA00019F0823061F0E5C08091E801813009F0E0
+:101BB000E0C0933009F080E08093E3012BC0809176
+:101BC000E801811127C08091EA018F7009F4D1C02A
+:101BD0008093E9002091EB0020FF1CC0933021F49A
+:101BE0008091EB00806214C09091EB009061909323
+:101BF000EB0021E030E0A90102C0440F551F8A9597
+:101C0000E2F74093EA001092EA008091EB008860CE
+:101C10008093EB001092E9008091E800877F86C0F6
+:101C20008111A7C01091E8011F778091E3008078AF
+:101C3000812B8093E3008091E800877F8093E80008
+:101C40000E949E0B8091E80080FFFCCF8091E30012
+:101C500080688093E300111102C082E001C083E03C
+:101C60008093E50186C08058823008F082C0809160
+:101C7000E8019091E9018C3D53E0950779F583E007
+:101C80008A838AE289834FB7F894DE01139620E0B5
+:101C90003EE051E2E32FF0E050935700E49120FF43
+:101CA00003C0E295EF703F5FEF708E2F90E0EA3057
+:101CB00010F0C79601C0C0968D939D932F5F24317D
+:101CC00049F74FBF8091E800877F8093E8006AE280
+:101CD00070E0CE0101960E94A50A14C0AE014F5FCC
+:101CE0005F4F6091EA010E94EC09BC01892B09F465
+:101CF00040C09091E800977F9093E80089819A8195
+:101D00000E94080B8091E8008B778093E80031C037
+:101D1000803879F58091E800877F8093E800809192
+:101D2000E1018093F1008091E8008E778093E800D4
+:101D30000E949E0B1EC081111CC09091E801923040
+:101D4000C0F48091E800877F8093E8009093E101E0
+:101D50000E949E0B8091E101811106C08091E300F9
+:101D600087FD02C081E001C084E08093E5010E940C
+:101D7000E8088091E80083FF0AC08091E800877F2F
+:101D80008093E8008091EB0080628093EB00AA963C
+:101D90000FB6F894DEBF0FBECDBFDF91CF911F917C
+:101DA00008950895CF938091E5018823A1F0C09113
+:101DB000E900CF709091EC00892F817090FD80E850
+:101DC000C82B1092E9008091E80083FD0E94800DED
+:101DD000CF70C093E900CF910895909369018093EB
+:101DE00068010895E0916801F0916901309721F050
+:101DF0000190F081E02D099480E00895E091680160
+:101E0000F0916901309721F00280F381E02D09946F
+:101E10000895E0916801F0916901309721F0048004
+:101E2000F581E02D099408952091660130916701B4
+:101E30008217930771F09093670180936601E09198
+:101E40006801F0916901309721F00680F781E02D5B
+:101E500009940895209164013091650182179307D8
+:101E600071F09093650180936401E0916801F091B5
+:101E70006901309721F00084F185E02D09940895DF
+:101E800008950C94400F0E94131B0E94C1040C94EF
+:101E9000D91BCF92DF92EF92FF920F931F93CF93B4
+:101EA000DF93CDB7DEB72B970FB6F894DEBF0FBE2A
+:101EB000CDBF0E94DE048BE6C82E81E0D82E00E064
+:101EC00010E0E02E802F0E94D005F60141916F01B5
+:101ED000F42EF826B1F40F5F1F4F0E30110589F76D
+:101EE0008FEF89838A831B820E941C1B8160782F5D
+:101EF0009D838C8349815A816B818D810E94EC0F77
+:101F000040C09091CC0191FF04C08B870E94D60500
+:101F10008B8520E030E04F2D50E0922FBA01022E49
+:101F200002C0759567950A94E2F760FF24C02E837E
+:101F3000EF8221E030E0690102C0CC0CDD1C9A95F3
+:101F4000E2F790E08C219D21892B09F420E028877D
+:101F50000E941C1B8160782F9A8789874E815F8140
+:101F600068858A850E94EC0FF801E559FE4F808153
+:101F7000C826C08206C02F5F3F4F2630310569F664
+:101F8000AACF0E94C01E10916A010E94F20E18177B
+:101F9000A1F00E94F20E80936A012B960FB6F8947E
+:101FA000DEBF0FBECDBFDF91CF911F910F91FF908C
+:101FB000EF90DF90CF900C94EC072B960FB6F8942F
+:101FC000DEBF0FBECDBFDF91CF911F910F91FF906C
+:101FD000EF90DF90CF900895CF93DF93CDB7DEB72A
+:101FE0002B970FB6F894DEBF0FBECDBF4F83588737
+:101FF00069877A878B87DE01119686E0FD01119251
+:102000008A95E9F785E0FE01379601900D928A9551
+:10201000E1F749815A816B817C818D819E810E948B
+:1020200002172B960FB6F894DEBF0FBECDBFDF911F
+:10203000CF910895CF93882309F4C2C0C82F823866
+:1020400059F40E94F20E81FDBBC089E30E949E19E3
+:102050000E945B1A89E30CC0833879F40E94F20E67
+:1020600080FDAEC083E50E949E190E945B1A83E545
+:102070000E94E019CF910C945B1A843859F40E94A5
+:10208000F20E82FD9DC087E40E949E190E945B1A99
+:1020900087E4EECF8CEF8C0F813A48F48C2F0E94AE
+:1020A000012181118DC08C2F0E949E19E3CF80E207
+:1020B0008C0F883048F4C77081E001C0880FCA9542
+:1020C000EAF70E94241AD6CF8BE58C0F833078F480
+:1020D000C53A29F0C63A31F083E890E005C081E8BE
+:1020E00090E002C082E890E0CF910C94140F88E554
+:1020F0008C0F833108F064C0C83A39F1C93A41F114
+:10210000CA3A49F1CB3A51F1CC3A59F1CD3A61F1A1
+:10211000C03B69F1CE3A71F1CF3A79F1C13B81F11F
+:10212000C23B89F1C33B91F1C43B99F1C53BA1F19D
+:10213000C63BA9F1C73BB1F1C83BB9F1C93BC1F1FD
+:10214000CA3BC9F180E090E038C082EE90E035C033
+:1021500089EE90E032C08AEE90E02FC085EB90E0EF
+:102160002CC086EB90E029C087EB90E026C08CEC79
+:1021700090E023C08DEC90E020C083E891E01DC08A
+:102180008AE891E01AC082E991E017C084E991E001
+:1021900014C081E292E011C083E292E00EC084E2BA
+:1021A00092E00BC085E292E008C086E292E005C0B2
+:1021B00087E292E002C08AE292E0CF910C942A0F6B
+:1021C000CF910895882309F44BC0823859F40E94B6
+:1021D000F20E81FF45C089E30E949E190E945B1A9E
+:1021E00089E30CC0833871F40E94F20E80FF38C07E
+:1021F00083E50E949E190E945B1A83E50E94E01904
+:102200000C945B1A843859F40E94F20E82FF28C0A5
+:1022100087E40E949E190E945B1A87E4EFCF9CEF2F
+:10222000980F913A58F390E2980F983050F48770D5
+:1022300091E001C0990F8A95EAF7892F0E942A1A26
+:10224000DFCF9BE5980F933020F480E090E00C9472
+:10225000140F885A833120F480E090E00C942A0F08
+:102260000895882321F00E94241A0C945B1A089583
+:10227000882321F00E942A1A0C945B1A0895BF92B9
+:10228000CF92DF92EF92FF920F931F93CF93DF9342
+:1022900000D000D000D0CDB7DEB725E0FC01DE01D4
+:1022A000119601900D922A95E1F7FC014081318150
+:1022B0000281258122952F7063817481672B09F437
+:1022C000E5C23F3F19F44F3F09F4E0C27C01498366
+:1022D0003A8389819A812E830E945D19182FB92E25
+:1022E0000E945C190E942318EB2DE295EF70F0E03C
+:1022F000E05AFF4F2E810C9436238B2D807F9B2D2F
+:102300009F70F92E882319F0F29480EFF8220023B1
+:1023100049F0FF2009F467C28F2D0E94341A0E94F1
+:102320005B1A61C2812F0E94E210FF2009F4AEC245
+:102330008F2D0E943A1A26960FB6F894DEBF0FBE74
+:10234000CDBFDF91CF911F910F91FF90EF90DF9064
+:10235000CF90BF900C945B1A3B2D307F8B2D8F70EC
+:10236000303211F08295807F112319F0113021F164
+:102370002CC00023B9F0222309F4A0C1213009F0B8
+:102380009DC126960FB6F894DEBF0FBECDBFDF917C
+:10239000CF911F910F91FF90EF90DF90CF90BF9062
+:1023A0000C94441A222319F0213009F46FC28E8351
+:1023B0000E94471A8E8196C1002321F0223008F036
+:1023C00065C27CC1211162C28DC1002321F022238C
+:1023D00009F474C108C2222309F484C119C22B2D47
+:1023E00026952695237030E02115310521F0213006
+:1023F0003105D1F04BC2002321F0812F9B2D93702A
+:1024000002C080E090E026960FB6F894DEBF0FBEC3
+:10241000CDBFDF91CF911F910F91FF90EF90DF9093
+:10242000CF90BF900C94140F002321F0812F9B2D8F
+:10243000937002C080E090E026960FB6F894DEBF5D
+:102440000FBECDBFDF91CF911F910F91FF90EF9005
+:10245000DF90CF90BF900C942A0F812F002319F0AA
+:102460000E94C81D02C00E94301E26960FB6F89426
+:10247000DEBF0FBECDBFDF91CF911F910F91FF90B7
+:10248000EF90DF90CF90BF900C94B51E8B2D837092
+:1024900009F07BC00111FAC1812F82958695877062
+:1024A000880F880F912F9F70C92ED12CE12CF12C11
+:1024B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C5
+:1024C00014FF12C04FE050E060E070E004C0440F21
+:1024D000551F661F771F8A95D2F7CB01BA01609509
+:1024E00070958095909503C060E070E0CB012B2D36
+:1024F000269526952370422F50E042305105D9F0A1
+:102500004330510569F16C297D298E299F2941307D
+:10251000510551F126960FB6F894DEBF0FBECDBF20
+:10252000DF91CF911F910F91FF90EF90DF90CF90AF
+:10253000BF900C944A186C297D298E299F292696D4
+:102540000FB6F894DEBF0FBECDBFDF91CF911F91C4
+:102550000F91FF90EF90DF90CF90BF900C94661892
+:102560000E944A18C701B60126960FB6F894DEBF3E
+:102570000FBECDBFDF91CF911F910F91FF90EF90D4
+:10258000DF90CF90BF900C942E18002319F08B2D64
+:10259000817001C08695882309F478C1812F8295C6
+:1025A00086958770880F880F912F9F70C92ED12C28
+:1025B000E12CF12C082E04C0CC0CDD1CEE1CFF1C01
+:1025C0000A94D2F714FF12C04FE050E060E070E0D0
+:1025D00004C0440F551F661F771F8A95D2F7CB01A1
+:1025E000BA01609570958095909503C060E070E0A9
+:1025F000CB012B2D269526952370422F50E042309B
+:102600005105D9F04330510569F16C297D298E2996
+:102610009F294130510551F126960FB6F894DEBF3F
+:102620000FBECDBFDF91CF911F910F91FF90EF9023
+:10263000DF90CF90BF900C9424196C297D298E29AE
+:102640009F2926960FB6F894DEBF0FBECDBFDF914F
+:10265000CF911F910F91FF90EF90DF90CF90BF909F
+:102660000C9440190E942419C701B60126960FB692
+:10267000F894DEBF0FBECDBFDF91CF911F910F91B8
+:10268000FF90EF90DF90CF90BF900C940819103F0F
+:10269000D1F118F4103E50F4A1C0123F09F463C008
+:1026A00008F44CC0133F09F473C098C01F708B2D01
+:1026B0008F710023A1F00E94A118812F26960FB6DA
+:1026C000F894DEBF0FBECDBFDF91CF911F910F9168
+:1026D000FF90EF90DF90CF90BF900C9431110E944B
+:1026E000C218812F26960FB6F894DEBF0FBECDBF5D
+:1026F000DF91CF911F910F91FF90EF90DF90CF90DE
+:10270000BF900C9438110023A9F02111BFC08B2D6C
+:102710008F7126960FB6F894DEBF0FBECDBFDF9146
+:10272000CF911F910F91FF90EF90DF90CF90BF90CE
+:102730000C94E718223008F0A9C0E9CF0023A9F0D3
+:102740008B2D8F7126960FB6F894DEBF0FBECDBFCE
+:10275000DF91CF911F910F91FF90EF90DF90CF907D
+:10276000BF900C94A118002359F38B2D8F712696DE
+:102770000FB6F894DEBF0FBECDBFDF91CF911F9192
+:102780000F91FF90EF90DF90CF90BF900C94C21804
+:10279000002399F08B2D8F7126960FB6F894DEBF2B
+:1027A0000FBECDBFDF91CF911F910F91FF90EF90A2
+:1027B000DF90CF90BF900C948C1826960FB6F894AB
+:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064
+:1027D000EF90DF90CF90BF900C9482180023A9F067
+:1027E000222309F4ADCF812F26960FB6F894DEBFD1
+:1027F0000FBECDBFDF91CF911F910F91FF90EF9052
+:10280000DF90CF90BF900C941A10222309F4ADCF23
+:10281000812F26960FB6F894DEBF0FBECDBFDF9195
+:10282000CF911F910F91FF90EF90DF90CF90BF90CD
+:102830000C94E2104B2D4F70612FC7010E9453037F
+:1028400026960FB6F894DEBF0FBECDBFDF91CF91B5
+:102850001F910F91FF90EF90DF90CF90BF900C945D
+:10286000A6174B2D4F70612FC70126960FB6F8940F
+:10287000DEBF0FBECDBFDF91CF911F910F91FF90B3
+:10288000EF90DF90CF90BF900C94960626960FB6EF
+:10289000F894DEBF0FBECDBFDF91CF911F910F9196
+:1028A000FF90EF90DF90CF90BF9008950E94411A63
+:1028B0000E94161A0E945B1A0E94661F0E94B51E93
+:1028C00080E090E00E94140F80E090E00C942A0FCA
+:1028D0000E94311A0C9456140E945D19292F2295DA
+:1028E0002F7030E02C3031054CF42A3031056CF477
+:1028F000225031092230310588F407C02C303105CF
+:1029000049F02F30310531F009C0803E48F0803F5A
+:1029100029F406C093FB882780F9089580E0089584
+:1029200081E00895CF93DF9300D000D01F92CDB700
+:10293000DEB70F900F900F900F900F90DF91CF9117
+:102940000895CF93DF9300D000D000D0CDB7DEB78D
+:1029500026960FB6F894DEBF0FBECDBFDF91CF91A4
+:1029600008951F93CF93DF93C091790116E0809172
+:102970007A01C81799F0D0E01C9FF0011D9FF00D5F
+:102980001124E558FE4F4081518162817381848119
+:1029900095810E94A1142196C770E9CFDF91CF9154
+:1029A0001F9108954091AB015091AC016091AD0130
+:1029B0007091AE018091AF019091B0010C94A1147F
+:1029C0008091B00182958F7009F054C08091AD0163
+:1029D000882309F44FC080917901A0917A01609118
+:1029E000AB017091AC014091AE015091AF01B6E0E6
+:1029F0008A1709F43FC090E041155105C1F17F3FAE
+:102A000011F46F3FA1F1B89FF001B99FF00D1124AF
+:102A1000E558FE4F218172132AC02081621327C01E
+:102A20002281211124C0238134812417350710F419
+:102A300021503109241B350B283C3105C0F420916D
+:102A4000B0012F7020612093B00126E0289FF00193
+:102A5000299FF00D1124E058FE4F80818F70806116
+:102A600080838BEA91E00E943F110C94B11401968F
+:102A70008770BECF0895CF92DF92EF92FF920F93AF
+:102A80001F93CF93DF93CDB7DEB762970FB6F8945D
+:102A9000DEBF0FBECDBF8C0185E0F801DE011D96C3
+:102AA00001900D928A95E1F7D8014C9111965C91B5
+:102AB000119712966C9112971396CD90DC90149703
+:102AC0003091AB017091AC018091AE019091AF015A
+:102AD000009709F46BC17F3F19F43F3F09F466C1C9
+:102AE000E090AD01EE2009F4C0C02091B001C816FD
+:102AF000D90628F0F601E81BF90BCF0104C0809538
+:102B000090958C0D9D1DFF24F394883C910578F0E1
+:102B1000F12C207F09F0C6C07C2DD98AC88A89890A
+:102B20000E9492148BEA91E00E943F11B1C0822F63
+:102B3000807F09F046C0751314C0341312C06111B0
+:102B400010C02F7020612093B0010E94D2148BEA34
+:102B500091E00E943F118091B001D80115968C93AD
+:102B60002EC0CD2819F15F3F11F44F3FF9F0F62E3A
+:102B700061111CC08091790120917A0136E08217A1
+:102B800009F45AC090E0389FF001399FF00D1124EC
+:102B9000E558FE4F7181571306C07081471303C07B
+:102BA0007281711103C001968770E9CFF62E6623FA
+:102BB00009F418C18091B00181608093B001F12CBB
+:102BC00011C1751308C0341306C0611104C080918F
+:102BD000B001D801C3C04D875E878D859E856A8B05
+:102BE0000E946C146A898823E1F16623D1F1209157
+:102BF000B001822F82958F7090E0029774F08091DF
+:102C0000AB019091AC0198878F831986DB86CA86C9
+:102C10002C87CE0107960E943F1186E0F801ABEAAF
+:102C2000B1E001900D928A95E1F70E94E0140E94B4
+:102C3000D214FF24F394D6C04D875E878D859E8580
+:102C40000E945D19292F22952F7030E02230310526
+:102C50000CF0BCC09F7009F0B6C0805E883008F4EC
+:102C6000C1C0C8010E943F11E4CFC816D90608F4BC
+:102C700053C0F601E81BF90BCF01883C910508F41D
+:102C800050C0F12C7C2DD98AC88A89890E9492145F
+:102C9000EBEAF1E086E0DF011D928A95E9F70E94F8
+:102CA000D214A0C0751314C0341312C0611110C027
+:102CB0008091B001F8018583C8010E943F1186E030
+:102CC000EBEAF1E0DF011D928A95E9F7FE2C8AC05C
+:102CD0004D875E878D859E856A8B0E946C146A89FC
+:102CE000882309F4BECF662309F4BBCF2091B0013D
+:102CF000822F82958F7090E002970CF48ECF809196
+:102D0000AB019091AC019A8389831B82DD82CC82D6
+:102D10002E83CE0101967FCF809590958C0D9D1DC1
+:102D2000ACCFF62E662309F49CCF75132EC0341356
+:102D30002CC02091B00120FD1FC0822F82958F7082
+:102D4000D9F0D80115962C9315978F3049F08F5FE5
+:102D5000982F9295907F822F8F70892B15968C9348
+:102D6000C8010E943F1186E0F801ABEAB1E0019092
+:102D70000D928A95E1F793CF86E0F801ABEAB1E0D6
+:102D800001900D928A95E1F72DC04D875E878D8564
+:102D90009E850E946C14811140CF8091B0018160AA
+:102DA0008093B001C8010E943F111CC0662309F442
+:102DB00058CF4D875E878D859E850E946C14882331
+:102DC00009F44FCF2ACF811148CF0CC024303105F0
+:102DD0000CF047CF9F7009F440CFF8019581907FA8
+:102DE00009F03BCF8F2D62960FB6F894DEBF0FBE71
+:102DF000CDBFDF91CF911F910F91FF90EF90DF90AA
+:102E0000CF9008951F93CF93DF93CDB7DEB72C9764
+:102E10000FB6F894DEBF0FBECDBF4F8358876987CA
+:102E20007A878B879C87CE0107960E943B15882363
+:102E300069F08F8198852A853B85232BF1F19F3F8F
+:102E400009F063C08F3F09F060C037C086E0FE0123
+:102E50003796DE01119601900D928A95E1F76F8108
+:102E60007885EA85FB85309741F17F3F11F46F3F0C
+:102E700021F120917A0130E0C901019687709927EC
+:102E80004091790150E08417950709F447C06983A0
+:102E90007A83FD83EC8396E0929FD001939FB00DDF
+:102EA0001124A558BE4FFE01319601900D929A95BE
+:102EB000E1F780937A010E94B11416E080917901C4
+:102EC00090917A018917C1F1189FC001112485588A
+:102ED0009E4F0E943B15882379F1E09179011E9F56
+:102EE000F0011124E558FE4F4081518162817381C8
+:102EF000848195810E94A1148091790190E00196CE
+:102F00008770992780937901D9CF4F81588569853A
+:102F10007A858B859C850E94A114CFCF0E9468146E
+:102F200010927A0110927901EBEAF1E086E0DF017C
+:102F30001D928A95E9F7C1CF2C960FB6F894DEBFA3
+:102F40000FBECDBFDF91CF911F910895EF92FF92F9
+:102F50000F931F93CF93DF938C01892B09F46CC0DF
+:102F6000F12CEE24E394E8012196F8018491843752
+:102F700040F4843008F051C0813081F0823019F182
+:102F80005BC0853709F444C0A8F19CE7980F9037DF
+:102F900008F052C08F770E94E21041C00E5F1F4FB1
+:102FA000FE01C49180E28C0F883048F4C7708E2DEA
+:102FB00001C0880FCA95EAF70E94341A14C08C2FFA
+:102FC0000E941A102DC00E5F1F4FFE01C49180E2B7
+:102FD0008C0F883058F4C7708E2D01C0880FCA95A9
+:102FE000EAF70E943A1A0E945B1A1AC08C2F0E94BC
+:102FF000E21016C00E5F1F4FFE01C491CC2381F07A
+:103000008FE99FE00197F1F700C00000C150F6CFB3
+:103010000E5F1F4FFE01F49003C00E941A108E0134
+:103020008F2D882309F49FCFEFE9FFE03197F1F767
+:1030300000C000008150F5CFDF91CF911F910F911B
+:10304000FF90EF90089508956093B5017093B601D5
+:103050008093B7019093B8010C9456140F931F936B
+:103060000091B5011091B6012091B7013091B801DE
+:10307000DC01CB01802B912BA22BB32B8093B501CC
+:103080009093B601A093B701B093B8011F910F912F
+:103090000C9456140F931F930091B5011091B60133
+:1030A0002091B7013091B801DC01CB01802391233D
+:1030B000A223B3238093B5019093B601A093B701E7
+:1030C000B093B8011F910F910C9456140F931F9356
+:1030D0000091B5011091B6012091B7013091B8016E
+:1030E000DC01CB0180279127A227B3278093B5016C
+:1030F0009093B601A093B701B093B8011F910F91BF
+:103100000C9456141092B1011092B2011092B301B6
+:103110001092B4010C94561441E050E060E070E06D
+:1031200004C0440F551F661F771F8A95D2F740933E
+:10313000B1015093B2016093B3017093B4010C9448
+:10314000561441E050E060E070E004C0440F551FA9
+:10315000661F771F8A95D2F78091B1019091B201D5
+:10316000A091B301B091B401482B592B6A2B7B2B52
+:103170004093B1015093B2016093B3017093B401D5
+:103180000C94561441E050E060E070E004C0440F3D
+:10319000551F661F771F8A95D2F740955095609509
+:1031A00070958091B1019091B201A091B301B0915D
+:1031B000B401482359236A237B234093B1015093E0
+:1031C000B2016093B3017093B4010C94561441E0C2
+:1031D00050E060E070E004C0440F551F661F771F89
+:1031E0008A95D2F78091B1019091B201A091B3017B
+:1031F000B091B401482759276A277B274093B10132
+:103200005093B2016093B3017093B4010C945614BF
+:103210000F931F930091B1011091B2012091B3015E
+:103220003091B401DC01CB01802B912BA22BB32B6D
+:103230008093B1019093B201A093B301B093B40114
+:103240001F910F910C9456140F931F930091B1018D
+:103250001091B2012091B3013091B401DC01CB0196
+:1032600080239123A223B3238093B1019093B201D1
+:10327000A093B301B093B4011F910F910C94561415
+:103280000F931F930091B1011091B2012091B301EE
+:103290003091B401DC01CB0180279127A227B3270D
+:1032A0008093B1019093B201A093B301B093B401A4
+:1032B0001F910F910C9456140895CF92DF92EF92C4
+:1032C000FF920F931F93CF93DF938C01C090B501B2
+:1032D000D090B601E090B701F090B8014091B101F3
+:1032E0005091B2016091B3017091B401C42AD52A02
+:1032F000E62AF72ACFE1D0E0D701C6010C2E04C0A0
+:10330000B695A795979587950A94D2F780FF07C041
+:10331000B8018C2F0E94B9068130910531F42197B4
+:1033200058F7B80180E00E94B906DF91CF911F9154
+:103330000F91FF90EF90DF90CF90089590910C0146
+:10334000992321F090910D01911109C020910E0156
+:1033500030910F01F90132969FEF40E01FC0982F86
+:103360009695969596959F3050F5E0910E01F091C7
+:103370000F01E90FF11D877021E030E0A90102C0C3
+:10338000440F551F8A95E2F7CA019181892B8183E9
+:1033900008959F3F39F04F5F4E3041F051915813DF
+:1033A000F8CF0DC05111F7CF942FF5CF9F3F39F0D3
+:1033B000F901E90FF11D97FDFA95828308950895AB
+:1033C00090910C01992321F090910D01911109C068
+:1033D00020910E0130910F01F9013296205F3F4F8D
+:1033E0001FC0982F9695969596959F30F0F4E09192
+:1033F0000E01F0910F01E90FF11D877021E030E01F
+:10340000A90102C0440F551F8A95E2F7CA018095B1
+:1034100091818923818308953196E217F30729F07A
+:1034200090819813F9CF1082F7CF089581E090E052
+:10343000E0910E01F0910F01E80FF91F1082019643
+:1034400080319105A9F708959091CB01892B809344
+:10345000CB01089580959091CB0189238093CB0176
+:1034600008951092CB0108959091CA01892B809301
+:10347000CA01089580959091CA0189238093CA0159
+:1034800008951092CA0108958093B9010895109289
+:10349000B901089580910E0190910F01FC013196C0
+:1034A0009C01205F3F4F80E0919191118F5FE21767
+:1034B000F307D1F70895E0910E01F0910F0180918B
+:1034C000CB018083E0910E01F0910F0190818091FA
+:1034D000CA01892B80838091B901882361F0E09132
+:1034E0000E01F0910F019081892B80830E944A1A6E
+:1034F00081111092B90180910E0190910F010C94ED
+:10350000FE0ECF92DF92EF92FF926C01EE24FF2429
+:10351000C114D104E104F10421F0C701B60120E196
+:1035200001C020E0C72ED82EE92EFF24C114D104FB
+:10353000E104F10419F0285FC701B6016B017C01B9
+:1035400054E0F694E794D794C7945A95D1F7C114F0
+:10355000D104E104F10419F02C5FC701B6016B013D
+:103560007C0142E0F694E794D794C7944A95D1F74A
+:10357000C114D104E104F10419F02E5FC701B601B2
+:10358000DC01CB01B695A79597958795892B8A2B5A
+:103590008B2B09F02F5F822FFF90EF90DF90CF9061
+:1035A00008958091E501843009F11092CD0120E465
+:1035B00088E190E00FB6F894A895809360000FBE64
+:1035C0002093600083B7817F846083BF83B781606D
+:1035D00083BF7894889583B78E7F83BF88E10FB6C9
+:1035E000F89480936000109260000FBE08950895D3
+:1035F0000895CF930E94F71A0E94DE040E94F81AE1
+:10360000C0E08C2F0E94D005811104C0CF5FCE3066
+:10361000C1F701C081E0CF9108950E9468140E9413
+:10362000F20E0C94EC0782E084BD93E095BD9AEF16
+:1036300097BD80936E0008952FB7F8948091CE01C6
+:103640009091CF01A091D001B091D1012FBF0895E9
+:10365000CF92DF92EF92FF920F931F932FB7F894C0
+:103660004091CE015091CF016091D0017091D10174
+:103670002FBF6A017B01EE24FF248C0120E030E0A3
+:10368000C016D106E206F30610F4415051099A0122
+:10369000281B390BC9011F910F91FF90EF90DF900C
+:1036A000CF9008951F920F920FB60F9211248F930F
+:1036B0009F93AF93BF938091CE019091CF01A09142
+:1036C000D001B091D1010196A11DB11D8093CE0111
+:1036D0009093CF01A093D001B093D101BF91AF914E
+:1036E0009F918F910F900FBE0F901F9018950E9481
+:1036F000EF0BF8942FEF87EA91E62150804090403D
+:10370000E1F700C0000087E090EBDC018093EE0160
+:103710009093EF01A093F001B093F1019CE088E158
+:103720000FB6F894A895809360000FBE9093600048
+:10373000FFCFEF92FF920F931F93CF93DF93D82F7A
+:10374000C0E08C2F0E94D00500E010E0E82EF12CA4
+:10375000C701002E02C0959587950A94E2F780FD77
+:1037600006C00F5F1F4F0630110591F709C0602F8B
+:103770007C2F80E00E949706D813F3CF81E004C02D
+:10378000CF5FCE30F1F680E0DF91CF911F910F91A6
+:10379000FF90EF900895CF93C82F8CE20E94991B61
+:1037A000882321F08C2FCF910C94991B80E0CF912E
+:1037B0000895CF930E94201D811102C00E94061D12
+:1037C000C5E6C15049F00E94DE048FE39CE90197F1
+:1037D000F1F700C00000F5CF89E20E94CB1B8111F8
+:1037E00013C18AE20E94CB1B81110E94061D85E055
+:1037F0000E94CB1B81110E94771B0E942B1D80937E
+:10380000CC0187E00E94CB1B8823A9F18BE10E94A9
+:10381000CB1B882351F08091CC0181FB222720F91A
+:1038200091E0922790FB81F90EC08EE00E94CB1BA5
+:10383000882361F08091CC0182FB222720F991E05E
+:10384000922790FB82F98093CC0115C080E10E9401
+:10385000CB1B9091CC01882341F093FB222720F9C8
+:1038600081E0822780FB93F904C0892F809580FB3B
+:1038700090F99093CC018091CC010E942F1D0E9461
+:103880003D1D8093DF0180EE0E94CB1B882341F019
+:103890008091DF01982F909590FB80F98093DF0154
+:1038A00089E30E94CB1B882359F08091DF0181FBC3
+:1038B000222720F991E0922790FB81F98093DF0184
+:1038C00082EE0E94CB1B882359F08091DF0182FB9E
+:1038D000222720F991E0922790FB82F98093DF0163
+:1038E00086EE0E94CB1B882359F08091DF0183FB79
+:1038F000222720F991E0922790FB83F98093DF0142
+:1039000083EE0E94CB1B882359F08091DF0184FB5A
+:10391000222720F991E0922790FB84F98093DF0120
+:1039200085E30E94CB1B882359F08091DF0185FB42
+:10393000222720F991E0922790FB85F98093DF01FF
+:1039400081E30E94CB1B882359F08091DF0186FB25
+:10395000222720F991E0922790FB86F98093DF01DE
+:1039600081E10E94CB1B882359F08091DF0187FB06
+:10397000222720F991E0922790FB87F98093DF01BD
+:103980008091DF010E94411D8091DF0187FB882724
+:1039900080F980930D0187E20E94CB1BC82F8EE136
+:1039A0000E94CB1B8111C2608FE10E94CB1B811151
+:1039B000C46080E20E94CB1B8111C86081E20E943A
+:1039C000CB1B8111C06182E20E94CB1B8111C062BE
+:1039D00083E20E94CB1B8111C06484E20E94CB1B56
+:1039E000882311F0C06802C0CC2329F08C2F0E94DC
+:1039F000381D6C2F03C00E94341D682F70E080E0DA
+:103A000090E0CF910C942418CF9108956DEE7EEF45
+:103A100080E090E00E946C2360E082E090E00E94F1
+:103A20005E2360E083E090E00E945E2360E084E03B
+:103A300090E00E945E2360E085E090E00C945E23BD
+:103A400080E090E00E94582321E08D3E9E4F09F0D7
+:103A500020E0822F089582E090E00C945023682F9C
+:103A600082E090E00C945E2383E090E00C9450237D
+:103A7000682F83E090E00C945E2384E090E00C9447
+:103A80005023682F84E090E00C945E238091D40151
+:103A900080FF0BC06091130185E0689FB001112485
+:103AA00075956795759567952BC081FF09C06091E5
+:103AB000130185E0689FB00111247595679520C0BA
+:103AC00082FF07C06091130185E0689FB001112457
+:103AD00017C09091D5019923D1F0609112019617EA
+:103AE00088F72091130185E0289F90011124929F6F
+:103AF000A001939F500D112470E0CA010E9422235F
+:103B00006038710540F46115710539F002C065E057
+:103B100070E0862F08958FE7089581E008958091E1
+:103B2000D40180FF08C06091110170E07595679520
+:103B30007595679521C081FF06C06091110170E005
+:103B40007595679519C082FF04C06091110170E0FE
+:103B500010C09091D5019923C1F060911001961782
+:103B6000A0F780911101899FC001112470E00E948B
+:103B700022236038710528F46115710521F0862F24
+:103B800008958FE7089581E0089561E070E0F4CF33
+:103B9000803F21F40E94461D819504C0813F29F495
+:103BA0000E94461D8093D8010895823F21F40E940F
+:103BB000461D819504C0833F29F40E94461D8093D1
+:103BC000D7010895893F19F40E948F1D05C08A3FCF
+:103BD00031F40E948F1D81958093D90108958B3F08
+:103BE00021F40E948F1D819504C08C3F29F40E940E
+:103BF0008F1D8093DA010895843F21F48091D601CE
+:103C0000816017C0853F21F48091D601826011C088
+:103C1000863F21F48091D60184600BC0873F21F458
+:103C20008091D601886005C0883F31F48091D6012B
+:103C300080618093D60108958D3F21F48091D40155
+:103C400081600BC08E3F21F48091D401826005C059
+:103C50008F3F29F48091D40184608093D40108952A
+:103C6000803F39F48091D80187FF6CC01092D80151
+:103C700069C0813F29F48091D8011816BCF362C055
+:103C80009091D701823F29F497FF5CC01092D70131
+:103C900059C0833F19F41916CCF354C0893F41F43D
+:103CA0008091D90118160CF04DC01092D9014AC06C
+:103CB0008A3F29F48091D90187FF44C0F6CF8B3F1A
+:103CC00039F48091DA0187FF3DC01092DA013AC0E1
+:103CD0008C3F29F48091DA011816BCF333C0843F7D
+:103CE00021F48091D6018E7F17C0853F21F4809109
+:103CF000D6018D7F11C0863F21F48091D6018B7F44
+:103D00000BC0873F21F48091D601877F05C0883F93
+:103D100031F48091D6018F7E8093D60113C08D3F00
+:103D200021F48091D4018E7F0BC08E3F21F48091CD
+:103D3000D4018D7F05C08F3F29F48091D4018B7F02
+:103D40008093D4018091D70181110EC08091D80158
+:103D500081110AC08091D901811106C08091DA01D8
+:103D6000811102C01092D501089586ED91E00E9464
+:103D7000090F0E941C1B9093D3018093D2010895D8
+:103D80001F93CF93DF938091D2019091D3010E9432
+:103D9000281BAC019091D501992321F020911401A9
+:103DA00030E006C0209115018AE0289F900111247F
+:103DB0004217530708F486C08091D701C091D801FB
+:103DC000D091D9011091DA01811107C0C11176C0DB
+:103DD000D11174C0111172C075C09F3F19F09F5F5F
+:103DE0009093D501181624F40E94461D8093D701A4
+:103DF0008091D70187FF05C00E94461D8195809361
+:103E0000D7011C1624F40E94461D8093D80180918E
+:103E1000D80187FF05C00E94461D81958093D80177
+:103E20006091D701662339F1C091D801CC2319F1F3
+:103E3000772767FD7095872F972F0E94332223E302
+:103E400033E343E35FE30E9497220E9400226093E2
+:103E5000D7016C2F772767FD7095872F972F0E94CA
+:103E6000332223E333E343E35FE30E9497220E947C
+:103E700000226093D8011D1624F40E948F1D8093A8
+:103E8000D9018091D90187FF05C00E948F1D8195BE
+:103E90008093D901111624F40E948F1D8093DA01BA
+:103EA0008091DA0187FF05C00E948F1D8195809364
+:103EB000DA01DF91CF911F910C94B51E9F3F09F05D
+:103EC0008ECF96CFDF91CF911F910895E6EDF1E06F
+:103ED00085E0DF011D928A95E9F71092D5011092D5
+:103EE000D4010895833081F128F4813059F0823073
+:103EF000D1F00895853009F449C0B8F1863009F44D
+:103F000056C0089580911501262F30E0280F311DED
+:103F10002F3F310524F4680F6093150108958FEF4A
+:103F200080931501089580911401262F30E0280F09
+:103F3000311D2F3F310524F4680F6093140108955B
+:103F40008FEF80931401089580911301262F30E0A4
+:103F5000280F311D2F3F310524F4680F60931301A2
+:103F600008958FEF80931301089580911201262FF9
+:103F700030E0280F311D2F3F310524F4680F609386
+:103F8000120108958FEF809312010895809111011D
+:103F9000262F30E0280F311D2F3F310524F4680F04
+:103FA0006093110108958FEF80931101089580911E
+:103FB0001001262F30E0280F311D2F3F310524F44A
+:103FC000680F6093100108958FEF8093100108959A
+:103FD000833011F128F4813049F0823091F0089556
+:103FE000853081F120F18630C1F10895809115016D
+:103FF000681720F4861B809315010895109215010F
+:10400000089580911401681720F4861B8093140191
+:10401000089510921401089580911301681720F4F7
+:10402000861B8093130108951092130108958091C7
+:104030001201681720F4861B8093120108951092D4
+:104040001201089580911101681720F4861B809356
+:1040500011010895109211010895809110016817BF
+:1040600020F4861B8093100108951092100108958A
+:104070000F931F938D3109F46BC008F03FC08E3051
+:1040800009F47DC0C0F4873009F46EC068F486304E
+:1040900009F0AFC08091CC01817F8E7F8093CC01ED
+:1040A00081E08093DC01A6C0883009F458C08B30D1
+:1040B00009F49BC09EC0863109F497C078F4803122
+:1040C00009F470C0813109F094C00E946814909185
+:1040D0000D0181E0892780930D0187C0893109F4A2
+:1040E00084C08B3109F085C08091CC0181FB2227EF
+:1040F00020F991E0922790FB81F94AC0853309F4B9
+:104100005BC048F4873209F457C008F45AC08932BA
+:1041100009F452C06EC0833438F48A3308F067C0A3
+:10412000883309F462C065C0833409F445C088341B
+:1041300009F05FC00E9468140FEF13ED20E30150F7
+:1041400010402040E1F700C000000E94771B4DC0E6
+:104150000E94BA210E94F20E0E94EC0746C00E9403
+:104160002B1D0E943D1D41C09091CC01892F817073
+:1041700090FF12C0917F9E7F9093CC013BC08091B5
+:10418000CC0182FB222720F991E0922790FB82F953
+:104190008093CC01992349F18091CC018160809377
+:1041A000CC0123C08091CC0183FB222720F991E030
+:1041B000922790FB83F9ECCF61E070E080E090E023
+:1041C00010C08D5141E050E060E070E08A019B0139
+:1041D00004C0000F111F221F331F8A95D2F7C90197
+:1041E000B8010E9424180E94681481E003C089531A
+:1041F000E9CF80E01F910F91089580E0089580E05D
+:104200000895CF93C82F8091DC01813079F018F0A8
+:104210008230E9F187C0E0910E01F0910F018081B9
+:10422000813169F0823209F07FC009C0E0910E014E
+:10423000F0910F018081813111F0823261F48C2F75
+:104240000E94FD20811104C08C2F0E9438201DC0C7
+:1042500081E090E01AC08C2F0E94FF20811114C0D1
+:10426000C43179F048F4CB3079F0C03109F060C046
+:1042700082E08093DC0108C0C93219F0C83321F014
+:1042800057C01092DC0154C081E0817053C0C93224
+:1042900089F118F5C43171F1A8F4C73009F046C0AE
+:1042A0008AE08093150194E19093140193E0909338
+:1042B00013018093120188E08093110188E28093BA
+:1042C000100134C0CE51C63088F5EC2FF0E0E65D29
+:1042D000FE4F80818093DB0129C0CE34E9F020F4C9
+:1042E000CB3421F56AE013C0C13579F0C235F1F461
+:1042F00061E00DC08091DB01882319F01092DB0191
+:1043000015C081E08093DC0115C061E006C080919A
+:10431000DB010E94721F0AC06AE08091DB010E94EB
+:10432000E81F04C01092DC0180E004C081E002C0FC
+:1043300080E0ABCFCF910895E1E8F0E08081886024
+:1043400080838081816080838FB7F89493E090931D
+:10435000890090ED909388008FBF0895EFE6F0E01C
+:104360008081826080830895EFE6F0E080818D7F18
+:1043700080830895EFE6F0E0908182E089278083D2
+:1043800008951F920F920FB60F9211242F933F930F
+:104390004F935F936F937F938F939F93AF93BF934D
+:1043A000EF93FF938091DD019091DE010196909350
+:1043B000DE018093DD01811103C082E00E94EC07E1
+:1043C000E091DE01E695E695F0E0E652FA4FE491E1
+:1043D0008091DD018E1303C080E00E94EC07FF9105
+:1043E000EF91BF91AF919F918F917F916F915F916D
+:1043F0004F913F912F910F900FBE0F901F901895E6
+:1044000004D06894B1118DC0089570D088F09F5782
+:1044100090F0B92F9927B751A0F0D1F0660F771F10
+:10442000881F991F1AF0BA95C9F712C0B13081F0F0
+:1044300077D0B1E0089574C0672F782F8827B85FD0
+:1044400039F0B93FCCF3869577956795B395D9F751
+:104450003EF490958095709561957F4F8F4F9F4F5B
+:104460000895E89409C097FB3EF490958095709567
+:1044700061957F4F8F4F9F4F9923A9F0F92F96E9B0
+:10448000BB279395F695879577956795B795F11125
+:10449000F8CFFAF4BB0F11F460FF1BC06F5F7F4FC2
+:1044A0008F4F9F4F16C0882311F096E911C07723D4
+:1044B00021F09EE8872F762F05C0662371F096E8DD
+:1044C000862F70E060E02AF09A95660F771F881FAC
+:1044D000DAF7880F9695879597F9089557FD9058C4
+:1044E000440F551F59F05F3F71F04795880F97FBB8
+:1044F000991F61F09F3F79F0879508951216130672
+:104500001406551FF2CF4695F1DF08C016161706A0
+:104510001806991FF1CF86957105610508940895D5
+:10452000E894BB2766277727CB0197F908950BD02E
+:1045300078C069D028F06ED018F0952309F05AC0E1
+:104540005FC01124EECFCADFA0F3959FD1F3950F82
+:1045500050E0551F629FF001729FBB27F00DB11D07
+:10456000639FAA27F00DB11DAA1F649F6627B00D97
+:10457000A11D661F829F2227B00DA11D621F739F80
+:10458000B00DA11D621F839FA00D611D221F749F8E
+:104590003327A00D611D231F849F600D211D822FD5
+:1045A000762F6A2F11249F5750408AF0E1F088231C
+:1045B0004AF0EE0FFF1FBB1F661F771F881F915029
+:1045C0005040A9F79E3F510570F014C0AACF5F3F3D
+:1045D000ECF3983EDCF3869577956795B795F7955C
+:1045E000E7959F5FC1F7FE2B880F911D96958795E4
+:1045F00097F9089597F99F6780E870E060E0089563
+:104600009FEF80EC089500240A94161617061806EA
+:104610000906089500240A941216130614060506C6
+:104620000895092E0394000C11F4882352F0BB0F57
+:1046300040F4BF2B11F460FF04C06F5F7F4F8F4FBA
+:104640009F4F089597FB072E16F4009407D077FD2F
+:1046500009D00E943C2307FC05D03EF4909581953B
+:104660009F4F0895709561957F4F0895EE0FFF1F3E
+:104670000590F491E02D0994AA1BBB1B51E107C0E2
+:10468000AA1FBB1FA617B70710F0A61BB70B881FE2
+:10469000991F5A95A9F780959095BC01CD01089571
+:1046A000F999FECF92BD81BDF89A992780B50895FA
+:1046B000A8E1B0E042E050E00C947323262FF99972
+:1046C000FECF1FBA92BD81BD20BD0FB6F894FA9AF5
+:1046D000F99A0FBE019608950E945E23272F0C942D
+:1046E0005F23DC01CB01FC01F999FECF06C0F2BDCE
+:1046F000E1BDF89A319600B40D9241505040B8F7A0
+:064700000895F894FFCFBC
+:104706002002ED077B0858082408F0070101BA01CA
+:1047160028080A03140A3F4D36399B054E0518052D
+:10472600DF0472048B04A404BD040102030405061D
+:044736000708090067
+:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/jacobono/keymap.c b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c new file mode 100644 index 0000000000..ed8dfc731b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c @@ -0,0 +1,273 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define COLEMAK 0 // new colemak layout +#define QWERTY 1 // default layer +#define SYMB 2 // symbols +#define NUMPAD 3 // number pad +#define MDIA 4 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Basic COLEMAK layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | + * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | + * `----------------------------------' `------------------------------------' + * ,-------------. ,---------------. + * | LGUI | App | |Ctrl/Esc| Alt | + * ,------|------|------| |--------+--------+------. + * | | |QUKSL | | QUKSL | | | + * |Space |ENTER |------| |--------| ENTER |Space | + * | | |MO(L3)| | MO(L3) | | | + * `--------------------' `------------------------' + */ + + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer + // left hand + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), + KC_LGUI, KC_APP, + LGUI(S(KC_SPC)), + KC_SPC,KC_ENT,MO(NUMPAD), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, + LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, + CTL_T(KC_ESC), KC_LALT, + LGUI(S(KC_SPC)), + MO(NUMPAD), KC_ENT, KC_SPC), + + /* Keymap 1: Basic QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | + * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Tab | BkSp | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| LGUI |------| |------| RGUI |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [QWERTY] = KEYMAP( // layer 1 + // left hand + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), + KC_TAB, KC_DELT, + KC_HOME, + KC_SPC, KC_LGUI, KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_RCTRL, + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_RGUI, KC_ENT), + + + /* Keymap 2: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // SYMBOL + [SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), + KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, + S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, + KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 3: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | * | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | , | 0 | . | / | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // Numpad + [NUMPAD] = KEYMAP( + // left hand + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RIGHT,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, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, + KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, + KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 4: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // MEDIA AND MOUSE + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + 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; + } + +}; |