diff --git a/keyboards/planck/keymaps/ab/Makefile b/keyboards/planck/keymaps/ab/Makefile new file mode 100644 index 000000000..44a030ba3 --- /dev/null +++ b/keyboards/planck/keymaps/ab/Makefile @@ -0,0 +1,63 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/ab/README.md b/keyboards/planck/keymaps/ab/README.md new file mode 100644 index 000000000..d6280f074 --- /dev/null +++ b/keyboards/planck/keymaps/ab/README.md @@ -0,0 +1,18 @@ +# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard +A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. + +![Layout](keyboard-layout.png "Practical Keymap") +![Photo](keyboard-photo.jpg "Planck Keyboard") + +* Online keyboard layout editor: http://goo.gl/mlLAFZ + +# Programming Instructions: +Enter into programming mode and run the following command. +``` +$ sudo KEYMAP=ab make dfu +``` +# Notes +* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here. +* RAISE and LOWER also acts as PgUp and PgDn when tapped. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Bracket keys are placed in the center of the keyboard for programmer's convenience. diff --git a/keyboards/planck/keymaps/ab/compiled.hex b/keyboards/planck/keymaps/ab/compiled.hex new file mode 100644 index 000000000..1723c4612 --- /dev/null +++ b/keyboards/planck/keymaps/ab/compiled.hex @@ -0,0 +1,1139 @@ +:100000000C948E020C94D5020C94D5020C94D5025B +:100010000C94D5020C94D5020C94D5020C94D50204 +:100020000C94D5020C94D5020C949A0D0C946C0E81 +:100030000C94D01B0C94D5020C94D5020C94D502D0 +:100040000C94D5020C9437030C94D5020C94D50271 +:100050000C94D5020C94381C0C94D5020C94D50247 +:100060000C94D5020C94D5020C94D5020C94D502B4 +:100070000C94D5020C94D5020C94D5020C94D502A4 +:100080000C94D5020C94D5020C94D5020C94D50294 +:100090000C94D5020C94D5020C94D5020C94D50284 +:1000A0000C94D5020C94D5020C94D5029D03A703A1 +:1000B000AF03E303C003CE03D503DC03D90EFB0E6D +:1000C000E90FFB0EE90F400F630FE90FB80FCB0FDD +:1000D000B512B512E412E4122313431399149914C0 +:1000E0004E139914FE13FE1365146E149914931491 +:1000F0000B140B140B140B140B140B140B140B1408 +:100100000B140B140B140B140B140B140B140B14F7 +:100110001B1429143014371441140000000000008F +:100120000000000000010204060A0F17202C3A4AC2 +:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725 +:10014000B39D87715D4A3A2C20170F0A06040201FD +:1001500000000000000000000000010F020F011667 +:100160000216012C022C012D022D010F020F012875 +:100170000228000108020801100210010402040113 +:1001800006020601160216012C022C00011E021E98 +:10019000011F021F01200220012D022D011E021E3F +:1001A000011F021F01200220012D022D011E021E2F +:1001B000011F021F0120022001210221004BA14E3C +:1001C000A2392128322B0014001A0008001500174C +:1001D000001C0018000C00120013002A00E00004AC +:1001E000001600070009000A000B000D000E000FAA +:1001F0000033002800E1001D001B00060019000567 +:1002000000110010003600370038000320E00029FC +:1002100000E300E20001302C002C000230500052BC +:100220000051004F001E001F00200021002200236B +:100230000024002500260027002D002E00010001CB +:100240000001000100260227022F023002010001F6 +:10025000000100010001000100010001002F003039 +:1002600000340034020100010001000100043001EB +:10027000000100010001004B004B000100010001E2 +:1002800000010001003A003B003C003D003E003F01 +:1002900000400041004200430044004500010001CD +:1002A000000100010001000100010001002F022FE8 +:1002B000023100010001000100010001003500359C +:1002C00002310031022F002F0001000100007001F7 +:1002D000000100010001004E004E0001000100AAD3 +:1002E00000A900A8000100010001000100010001B7 +:1002F00000010001000100010001000100010001F6 +:1003000000010001000100010001000100010001E5 +:1003100000010001000100010001000100053001A1 +:10032000000630073001000100010001000100015A +:1003300000010001000100010001000100010001B5 +:1003400000010001002803540068006500200050EF +:10035000006C0061006E0063006B0020004B0065C4 +:1003600000790062006F0061007200640000002CE0 +:10037000034F007200740068006F006C0069006E2B +:100380000065006100720020004B0065007900628A +:10039000006F006100720064007300000004030934 +:1003A0000409026D00040100A0FA09040000010321 +:1003B000010100092111010001224000070581030C +:1003C00008000A09040100010301020009211101CA +:1003D0000001224D000705820308000A09040200FB +:1003E0000103000000092111010001223600070568 +:1003F000830308000A090403000103000000092127 +:1004000011010001223900070584031000011201C7 +:10041000100100000008EDFE606001000102000113 +:1004200005010906A101050719E029E715002501C5 +:1004300095087501810205081901290595057501C1 +:10044000910295017503910105071900297715009F +:100450002501957875018102C005010980A10185FA +:100460000216010026B7001A01002AB70075109580 +:10047000018100C0050C0901A101850316010026B8 +:100480009C021A01002A9C02751095018100C0058A +:10049000010902A1010901A1000509190129051598 +:1004A00000250195057501810295017503810105FE +:1004B00001093009311581257F95027508810609EA +:1004C000381581257F950175088106050C0A3802CB +:1004D0001581257F950175088106C0C005010906B3 +:1004E000A101050719E029E7150025019508750107 +:1004F00081029501750881010508190129059505F5 +:10050000750191029501750391010507190029FFF5 +:10051000150026FF00950675088100C011241FBE36 +:10052000CFEFDAE0DEBFCDBF04B603FE27C0809177 +:10053000000290910102A0910202B0910302873063 +:10054000904BA740B04BD1F41092000210920102E0 +:10055000109202021092030214BE84B7877F84BFF8 +:100560000FB6F894A8958091600088618093600030 +:10057000109260000FBEE0E0F8E3099511E0A0E002 +:10058000B1E0E0EDF6E402C005900D92A434B107AD +:10059000D9F722E0A4E4B1E001C01D92A030B20777 +:1005A000E1F70E94E10A0C9466230C940000089580 +:1005B000089581E0089508950C94D8020C94D9020E +:1005C0000C94DB020E94CD2123E030E0281B31098E +:1005D000220F209348010895282F2F9880918000A2 +:1005E000211108C0877F8093800010928D001092A7 +:1005F0008C001BC0886080938000233019F48FEF3B +:100600009FEF0FC083E090E0821B9109880F991F34 +:100610002FEF3FEFA90102C0569547958A95E2F763 +:10062000CA0190938D0080938C000C94E2020E948A +:10063000E20284E080934701109244010895279AD2 +:100640002F988FEF9FEF90938700809386008AE02A +:100650008093800089E1809381000E9436210C9470 +:1006600017030E941F036E9A769A0C94D7021F926A +:100670000F920FB60F9211242F933F938F939F9356 +:10068000EF93FF93E0914501F0914601CF01019670 +:1006900090934601809345010090470102C0F69572 +:1006A000E7950A94E2F7EF7380914401823019F4E0 +:1006B000E03251F404C0813039F4EF3329F48091F1 +:1006C0006F008D7F80936F00F0E0E65EFE4FE49157 +:1006D00021E031E0E29FC001E39F900D11240090E2 +:1006E000480102C0969587950A94E2F790938D0091 +:1006F00080938C00FF91EF919F918F913F912F916B +:100700000F900FBE0F901F901895CF93DF93EC01C1 +:100710000E94CF1CBE0180E090E0DF91CF910C944D +:10072000C418462F50E04830510508F04CC0DC0199 +:10073000FA01EA5AFF4F0C94162312968C918823E3 +:1007400009F441C081E090E00E9485033CC012960C +:100750008C91882311F081E007C081E00EC01296D1 +:100760008C91882349F082E00E94411943E061E0C6 +:1007700082E00E947E0527C082E00E946219F6CFC7 +:1007800012968C91882331F085EE0E9459110E94B7 +:100790008D2119C085EE0E94211215C012968C91F0 +:1007A000882389F08CE891E0089512968C91882333 +:1007B00051F083E791E0089512968C91882319F007 +:1007C0008AE591E0089580E090E0089581E0089541 +:1007D0000C94E60308950F931F93CF93DF938C013E +:1007E000FC01C081D181CE010E94FD19BE010E9491 +:1007F0006407EC01B8010E94E803882309F478C17A +:10080000F8018281882309F463C080915801811125 +:1008100027C0C431F0E7DF0709F012C10E94EA03E4 +:1008200081E0809358010E94021C909357018093AD +:10083000560110924B0110924D0110924C011092F2 +:100840004F0110924E0110925101109250011092DE +:10085000530110925201109255011092540148C157 +:1008600080915601909157010E940E1C883C910581 +:1008700070F480914B01E82FF0E0EE0FFF1FE45B76 +:10088000FE4FD183C0838F5F80934B0131C1C43150 +:1008900020E7D20708F024C1C23080E7D80710F55E +:1008A000C11590E7D90709F0DAC0F80182818823E1 +:1008B00009F4BFC00E940415FFEF24E38CE0F1505F +:1008C00020408040E1F700C000000E945D1C10C184 +:1008D000C431F0E7DF0708F0CFC0C23020E7D2070D +:1008E00008F49BC0F8018281882309F4A2C00E9409 +:1008F000BC1C811102C00E949D1C0E94D41C90E06F +:100900009093F1018093F001C230F0E7DF0721F40A +:100910008091F00181607AC0C33020E7D20721F4D2 +:100920008091F001826072C0C43080E7D80721F462 +:100930008091F00184606AC0C53090E7D90719F44E +:100940008091F00127C0C630E0E7DE0721F48091F6 +:10095000F00180615BC0C730F0E7DF0721F48091D0 +:10096000F001806253C0C83020E7D20721F48091A3 +:10097000F00180644BC0C93080E7D80721F4809132 +:10098000F001806843C0CA3090E7D90729F480910C +:10099000F001846088603AC0CB30E0E7DE0721F4E4 +:1009A0008091F0018E7F32C0CC30F0E7DF0721F478 +:1009B0008091F0018D7F2AC0CD3020E7D20721F44D +:1009C0008091F0018B7F22C0CE3080E7D80719F4E8 +:1009D0008091F0011AC08091F001CF3090E7D907E3 +:1009E00011F48F7E13C0C031E0E7DE0711F48F7D74 +:1009F0000DC0C131F0E7DF0711F48F7B07C0C231B2 +:100A0000D04711F48F7702C08B7F877F8093F001EE +:100A10008091F0010E94D81C6BC0C11580E7D807F7 +:100A200041F0C130D047F1F081E0809349018093DB +:100A30004A01C801DF91CF911F910F910C94DE0202 +:100A4000C43120E7D20708F04BC0C23080E7D80796 +:100A500008F048CFC11590E7D90709F42BCFC13072 +:100A6000D04711F7F8018281882319F38091DF01C3 +:100A700081608093DF013CC0C333E0E7DE07A1F46F +:100A8000F8018281882321F01092490182E017C089 +:100A900080914901811106C086E20E94591186E2C7 +:100AA0000E94211282E019C0C433D04709F0BCCFA4 +:100AB000F8018281882331F010924A0180E20E947D +:100AC000701216C080914A01811106C087E20E940F +:100AD000591187E20E94211280E20E94771208C019 +:100AE000C333F0E7DF0761F2C433D04709F39CCF8B +:100AF00080E0DF91CF911F910F910895CF92DF9207 +:100B0000EF92FF920F931F9301E010E020E030E09E +:100B10006801790104C0CC0CDD1CEE1CFF1C8A9519 +:100B2000D2F704C0000F111F221F331F6A95D2F79E +:100B30000C291D292E293F29C090C201D090C30144 +:100B4000E090C401F090C501C022D122E222F3223C +:100B5000842FC016D106E206F30641F41F910F91CF +:100B6000FF90EF90DF90CF900C9441191F910F915F +:100B7000FF90EF90DF90CF900C9462190C943103AA +:100B80000C94DC022CE0729FF001112430E3839F6F +:100B9000E00DF11D1124E60FF11DEE0FFF1FEB53C9 +:100BA000FE4F859194910E947607811540E5940748 +:100BB00008F047C0811520E4920708F013C1883E71 +:100BC000910520F5803E910508F07CC1883A910599 +:100BD00078F4853A910508F0A5C08130910509F4B3 +:100BE00071C108F42EC18430910508F06BC129C190 +:100BF0008B3B910508F4A1C0803C910508F421C10C +:100C0000FC01EE0FFF1FE35CFF4FE6C0811530E2F1 +:100C1000930758F4811541E0940708F053C1803FD1 +:100C2000910508F40EC190650895811520E392079F +:100C300008F0D5C0FC01FF70EE0FFF1FE354FE4F1C +:100C4000CBC0811535E5930708F043C0811544E515 +:100C5000940708F0DEC0811522E5920708F581159A +:100C600031E5930708F0C1C0482F437021E030E020 +:100C700002C0220F331F4A95E2F73C68AC0164E0E2 +:100C8000569547956A95E1F74370342B8F7086959A +:100C9000869540E2849FC0011124822B932B0895F6 +:100CA000282F26952695AC0143705527811593452D +:100CB00008F0A0C080E2289F9001112481E090E01C +:100CC00002C0880F991F4A95E2F7822B932B9C68EC +:100CD00008958F3240E7940790F48F3120E7920710 +:100CE00008F0A2C0811536E5930708F497C09C016F +:100CF00030562115304108F0A4C09F7093C0803356 +:100D000020E7920709F497C008F492C0813340E7C6 +:100D1000940709F493C08233904709F092C080E0B1 +:100D200093ED0895853A910509F48EC0863A9105B0 +:100D300009F08DC082E890E40895883A910509F49D +:100D400089C0893A910509F488C08A3A910509F465 +:100D500087C08B3A910509F486C08C3A910509F455 +:100D600085C08D3A910509F484C0803B910509F452 +:100D700083C08E3A910509F482C08F3A910509F437 +:100D800081C0813B910509F480C0823B910509F443 +:100D90007FC0833B910509F47EC0843B910509F433 +:100DA0007DC0853B910509F47CC0863B910509F423 +:100DB0007BC0873B910509F47AC0883B910509F413 +:100DC00079C0893B910509F478C08A3B910509F403 +:100DD00077C080E094E408958591949108959927CF +:100DE000906C08959F70906A0895982F8827816F5E +:100DF000906A089590E2299F9001112481E090E08B +:100E000002C0880F991F4A95E2F7822B932B9A68AC +:100E10000895982F8827846F906A08958F71992775 +:100E2000982F8827906208958F519047946D089568 +:100E300080E091ED089580E090ED089580E092EDDE +:100E4000089580E090E0089581E890E4089583E8B3 +:100E500090E4089582EE94E4089589EE94E4089570 +:100E60008AEE94E4089585EB94E4089586EB94E487 +:100E7000089587EB94E408958CEC94E408958DEC48 +:100E800094E4089583E895E408958AE895E4089544 +:100E900082E995E4089584E995E4089581E296E471 +:100EA000089583E296E4089584E296E4089585E245 +:100EB00096E4089586E296E4089587E296E408951C +:100EC0008AE296E4089508959CE0799FF001112448 +:100ED00090E3899FE00DF11D1124E60FF11DEE0F47 +:100EE000FF1FEB53FE4F8591949108958238910531 +:100EF00049F1B0F48133910509F458C048F48932BE +:100F0000910509F44EC08A32910509F454C0089540 +:100F10008533910509F440C08933910599F008950E +:100F2000833E910529F138F4803E910591F0823E8F +:100F30009105A1F00895863E9105F9F0873E91054F +:100F400031F108952091F00120FD3AC021FD38C013 +:100F500008958091F00180FD35C032C08091F0018C +:100F600082FF32C08091F00184FD30C083EE39C031 +:100F70008091F00182FD28C0F5CF8091F00183FFC0 +:100F800027C08091F00184FD21C087EE2AC08091A6 +:100F9000F00183FD1DC0F5CF8091F00185FD1AC0E1 +:100FA0001BC08091F00185FD17C014C08091F00135 +:100FB00086FD14C015C08091F00186FD11C00EC0E1 +:100FC00080EE0FC089E30DC082EE0BC080E009C047 +:100FD00086EE07C089E205C085E303C08AE201C04E +:100FE00081E390E008950C94E002E82FF0E0EF5DDB +:100FF000FE4F8081E82FEF70F0E082958F7021E046 +:1010000030E0A90102C0440F551F8A95E2F740A3C2 +:1010100008950F931F93CF93DF93C3E0D0E001E0D7 +:1010200010E0FE01EF5DFE4F8081E82FEF70F0E0F1 +:1010300021A182958F70A80102C0440F551F8A9587 +:10104000E2F7CA01822B81A38C2F0E94F50721971A +:1010500040F78BE090E061E070E0FC01EB5EFE4F5A +:101060002081E22FEF70F0E042A122952F70DB018A +:1010700002C0AA0FBB1F2A95E2F79D01242B22A3D1 +:10108000019758F7DF91CF911F910F9108950F931A +:101090001F93CF93DF9385B7806885BF85B780683E +:1010A00085BFC3E0D0E001E010E0FE01EF5DFE4F40 +:1010B0008081E82FEF70F0E021A182958F70A80168 +:1010C00002C0440F551F8A95E2F7CA01822B81A303 +:1010D0008C2F0E94F507219740F78BE090E061E0AC +:1010E00070E0FC01EB5EFE4F2081E22FEF70F0E03C +:1010F00042A122952F70DB0102C0AA0FBB1F2A95C7 +:10110000E2F79D01242B22A3019758F7DF91CF919D +:101110001F910F910C94BE05EF92FF920F931F93B6 +:10112000CF93DF9301E611E0C3E0EE24E394F12CCA +:10113000D5E08C2F0E94F5078BE090E040E050E076 +:10114000FC01EB5EFE4F6081E62FEF70F0E020A126 +:1011500030E062956F7002C0359527956A95E2F789 +:1011600020FD09C09701082E02C0220F331F0A94E8 +:10117000E2F7422B532B019718F7F80192918291D5 +:101180008F018417950721F051834083D09300018C +:101190008C2F0E94F507C15060F68091000187FDF9 +:1011A0002CC08150809300018F3F39F08FE99FE080 +:1011B0000197F1F700C0000020C080915F0190917D +:1011C0006001909368018093670180915D01909127 +:1011D0005E01909366018093650180915B0190911F +:1011E0005C01909364018093630180915901909117 +:1011F0005A0190936201809361010E94C00581E0D1 +:10120000DF91CF911F910F91FF90EF900895E82FFC +:10121000F0E0EE0FFF1FEF59FE4F8081918108959E +:1012200008950F931F93CF9309E611E0C0E0F801F2 +:10123000929182918F010E94781BC80FF1E00136D4 +:101240001F07A9F78C2FCF911F910F9108958091BF +:1012500079010895CF93DF9300D01F92CDB7DEB709 +:101260009C018091F601843019F593E099833B83CA +:101270002A839093E9008FEF9091E800815095FDCB +:1012800006C095ED9A95F1F700008111F5CF809198 +:10129000E80085FF0DC040E050E063E070E0CE0163 +:1012A00001960E948A0B8091E8008E778093E80077 +:1012B0000F900F900F90DF91CF910895CF93DF9310 +:1012C00000D01F92CDB7DEB72091F601243021F572 +:1012D00022E029839B838A8383E08093E9008FEF58 +:1012E0009091E800815095FD06C095ED9A95F1F733 +:1012F00000008111F5CF8091E80085FF0DC040E02E +:1013000050E063E070E0CE0101960E948A0B80916C +:10131000E8008E778093E8000F900F900F90DF9198 +:10132000CF9108952091F6012430F1F422E020932A +:10133000E9002FEF3091E800215035FD06C035ED72 +:101340003A95F1F700002111F5CF2091E80025FF33 +:101350000BC040E050E065E070E00E948A0B809195 +:10136000E8008E778093E8000895CF93DF93EC0137 +:101370009091F601943009F046C080910B018823CA +:10138000D9F080910C018823B9F09093E9008FEF98 +:101390009091E800815095FD06C095E19A95F1F78E +:1013A00000008111F5CF8091E80085FF2CC040E05E +:1013B00050E060E170E017C081E08093E9008FEFBA +:1013C0009091E800815095FD06C095ED9A95F1F752 +:1013D00000008111F5CF8091E80085FF14C040E046 +:1013E00050E068E070E0CE010E948A0B8091E80036 +:1013F0008E778093E80080E1FE01A9E6B1E00190DC +:101400000D928A95E1F7DF91CF9108958091F501D2 +:10141000811109C00E941F0D0E947C0D8091E20085 +:1014200084608093E20008951092F5010895089574 +:1014300008950C94C51B42E061EC81E00E94990C78 +:1014400042E061EC82E00E94990C42E061EC83E0B2 +:101450000E94990C42E161EC84E00C94990C80911B +:10146000F801833009F455C030F4813071F08230D6 +:1014700009F48EC008958A3009F47AC08B3009F4DB +:1014800060C0893009F09CC020C08091F701813A8A +:1014900009F096C08091E800877F8093E8008091F2 +:1014A000FB019091FC01892B21F460E189E691E038 +:1014B00003C060E080E090E070E00E94D50B809176 +:1014C000E8008B778093E80008958091F7018132DE +:1014D00009F076C08091FB019091FC01009719F012 +:1014E000039709F06DC08091E800877F8093E80042 +:1014F0008091E80082FD05C08091F6018111F8CF4E +:101500005FC08091F100809379018091E8008B7732 +:1015100053C08091F701813A09F052C08091FB01DC +:101520009091FC01892B09F04BC08091E800877FE6 +:101530008093E8008091E80080FFFCCF80910B0150 +:1015400036C08091F7018132D9F58091FB019091ED +:10155000FC01892BA9F58091E800877F8093E80042 +:101560000E94CE0C8091F90180930B010C9404151C +:101570008091F701813221F58091E800877F809387 +:10158000E8000E94CE0C8091FA0180937A010895C0 +:101590008091F701813AA1F48091E800877F8093E0 +:1015A000E8008091E80080FFFCCF80917A01809371 +:1015B000F1008091E8008E778093E8000C94CE0CC7 +:1015C000089584B7877F84BF0FB6F894A89580915B +:1015D0006000886180936000109260000FBE80E818 +:1015E00080936100109261000E9471100E941F0D93 +:1015F0000E947C0D8091E20084608093E2007894E8 +:101600000E9402100E94731081E091E00E941D1060 +:101610008091F601853069F40E94841B8091F40169 +:101620008823B1F30E94B41B882391F30E94740BAA +:10163000EFCF0E947B10ECCF292F332723303105C9 +:10164000C9F064F42130310581F02230310509F010 +:1016500043C08DE690E021EA33E042C021323105FB +:10166000F1F02232310541F137C082E190E02EE005 +:1016700034E036C099278130910541F082309105E0 +:1016800041F0892B49F5EDE9F3E005C0EFE6F3E021 +:1016900002C0E5E4F3E0849190E09F0121C0643052 +:1016A000D8F4E62FF0E0EE0FFF1FEF5CFE4F208135 +:1016B000318189E090E014C0643070F470E0FB0187 +:1016C000EE0FFF1FE75DFE4F20813181FB01EB5DD7 +:1016D000FE4F808190E004C080E090E020E030E0A8 +:1016E000FA0131832083089580E189BD82E189BDBB +:1016F00009B400FEFDCF8091D8008F7D8093D80083 +:101700008091E00082608093E0008091E00081FDA4 +:10171000FCCF0895CF92DF92EF92FF920F931F9329 +:10172000CF93DF93EC018B016A010E94ED0C8111D4 +:1017300033C0C114D10439F0F60180819181081BB6 +:10174000190BC80FD91FE12CF12C0115110519F146 +:101750008091E80085FD16C08091E8008E77809327 +:10176000E800C114D10449F0F60180819181E80EAE +:10177000F91EF182E08285E00FC00E94ED0C882303 +:1017800021F30AC089918093F10001501109FFEF04 +:10179000EF1AFF0ADACF80E0DF91CF911F910F910E +:1017A000FF90EF90DF90CF9008952091FD01309150 +:1017B000FE012617370748F06115710539F42091AD +:1017C000E8002E772093E80001C0B90140E06115E0 +:1017D0007105A9F12091F601222309F443C02530B7 +:1017E00009F442C02091E80023FD40C02091E800A8 +:1017F00022FD32C02091E80020FFE9CF4091F300A4 +:101800002091F20030E0342BFC01CF01611571050D +:1018100059F02830310540F481918093F1006150F6 +:1018200071092F5F3F4FF1CF41E02830310509F0BA +:1018300040E02091E8002E772093E800C8CF4111C6 +:10184000C9CF0AC08091F601882361F0853061F02C +:101850008091E80083FD0AC08091E80082FFF2CF0A +:1018600080E0089582E0089583E0089581E008957E +:101870002091FD013091FE012617370748F06115D0 +:10188000710539F42091E8002E772093E80001C01B +:10189000B901FC0120E06115710591F18091F6011B +:1018A000882309F440C0853009F43FC08091E800E6 +:1018B00083FD3DC08091E80082FD2FC08091E8004B +:1018C00080FFE9CF2091F3008091F20090E0922B0D +:1018D0006115710559F08830910540F424912093E9 +:1018E000F1003196615071090196F2CF21E008971D +:1018F00009F020E08091E8008E778093E800CBCF5C +:101900002111CCCF0AC08091F601882361F0853087 +:1019100061F08091E80083FD0AC08091E80082FFB9 +:10192000F2CF80E0089582E0089583E0089581E099 +:101930000895982F973058F59093E900981739F04B +:101940007091EC002091ED005091F00003C0242F25 +:10195000762F50E021FF19C03091EB003E7F30938D +:10196000EB003091ED003D7F3093ED003091EB00C6 +:1019700031603093EB007093EC002093ED005093B6 +:10198000F0002091EE0027FF07C09F5FD3CF8F703C +:101990008093E90081E0089580E008958091F70147 +:1019A00087FF11C08091E80082FD05C08091F6019B +:1019B0008111F8CF11C08091E8008B770BC0809126 +:1019C000F601882349F08091E80080FFF8CF8091EC +:1019D000E8008E778093E80008952091E40030912C +:1019E000E50095E64091EC00842F817040FF22C015 +:1019F0008091E80080FD1CC08091F601882391F061 +:101A0000853091F08091EB0085FD10C04091E4009D +:101A10005091E5004217530729F39A01915011F7AD +:101A200084E0089582E0089583E0089581E00895B8 +:101A300080E008954091E80042FFDECF08950E94C3 +:101A40008D0D0E94950DE0EEF0E080818160808335 +:101A5000E8EDF0E080818F77808319BCA7EDB0E0DE +:101A60008C918E7F8C9380818F7E80831092F50184 +:101A700008950F931F93CF93DF930E948D0D0E94C3 +:101A8000950DC8EDD0E088818F7788838881806844 +:101A9000888388818F7D888319BC1092F60110920B +:101AA000F2011092F4011092F30100EE10E0F8013F +:101AB00080818B7F808388818160888342E060E0C1 +:101AC00080E00E94990CE1EEF0E080818E7F8083BF +:101AD000E2EEF0E080818160808380818860808395 +:101AE000F80180818E7F8083888180618883DF9187 +:101AF000CF911F910F910895E8EDF0E080818F7EE6 +:101B00008083E7EDF0E080818160808384E082BFA4 +:101B100081E08093F5010C94390DE8EDF0E08081CF +:101B20008E7F80831092E20008951092DA00109266 +:101B3000E10008951F920F920FB60F9211242F9378 +:101B40003F934F935F936F937F938F939F93AF9345 +:101B5000BF93EF93FF938091E10082FF0BC08091D0 +:101B6000E20082FF07C08091E1008B7F8093E1005B +:101B70000E9401108091DA0080FF1FC08091D80080 +:101B800080FF1BC08091DA008E7F8093DA00809105 +:101B9000D90080FF0DC080E189BD82E189BD09B413 +:101BA00000FEFDCF81E08093F6010E94060A05C089 +:101BB00019BC1092F6010E94140A8091E10080FF86 +:101BC00019C08091E20080FF15C08091E2008E7FF5 +:101BD0008093E2008091E20080618093E200809136 +:101BE000D80080628093D80019BC85E08093F6010C +:101BF0000E94180A8091E10084FF30C08091E200C9 +:101C000084FF2CC080E189BD82E189BD09B400FE5A +:101C1000FDCF8091D8008F7D8093D8008091E10026 +:101C20008F7E8093E1008091E2008F7E8093E200BE +:101C30008091E20081608093E2008091F20188232C +:101C400011F084E007C08091E30087FD02C081E0CD +:101C500001C083E08093F6010E94190A8091E1009F +:101C600083FF29C08091E20083FF25C08091E100BD +:101C7000877F8093E10082E08093F6011092F20169 +:101C80008091E1008E7F8093E1008091E2008E7F61 +:101C90008093E2008091E20080618093E20042E064 +:101CA00060E080E00E94990C8091F0008860809351 +:101CB000F0000E94170AFF91EF91BF91AF919F91A1 +:101CC0008F917F916F915F914F913F912F910F90E5 +:101CD0000FBE0F901F9018951F920F920FB60F9284 +:101CE00011242F933F934F935F936F937F938F9321 +:101CF0009F93AF93BF93CF93DF93EF93FF93C091E5 +:101D0000E900CF708091EC00D82FD17080FDD0E831 +:101D10001092E9008091F000877F8093F000789422 +:101D20000E94B00E1092E9008091F00088608093CC +:101D3000F000CD2BCF70C093E900FF91EF91DF91C0 +:101D4000CF91BF91AF919F918F917F916F915F9153 +:101D50004F913F912F910F900FBE0F901F901895AC +:101D60001F93CF93DF93CDB7DEB7AA970FB6F89442 +:101D7000DEBF0FBECDBFE7EFF1E088E08E0F9091A0 +:101D8000F10091938E13FBCF0E942F0A8091E800FF +:101D900083FF1FC18091F7019091F801492F50E016 +:101DA0004A30510508F015C1FA01E25AFF4F0C9470 +:101DB0001623803881F0823809F00BC18091FB0135 +:101DC0008F708093E9008091EB0085FB882780F974 +:101DD0001092E90006C08091F3019091F4019111F5 +:101DE00082609091E800977F9093E8008093F100E3 +:101DF0001092F100C8C0282F2D7F09F0EAC0882377 +:101E000019F0823061F0E5C08091F901813009F06C +:101E1000E0C0933009F080E08093F4012BC0809102 +:101E2000F901811127C08091FB018F7009F4D1C0A5 +:101E30008093E9002091EB0020FF1CC0933021F437 +:101E40008091EB00806214C09091EB0090619093C0 +:101E5000EB0021E030E0A90102C0440F551F8A9534 +:101E6000E2F74093EA001092EA008091EB0088606C +:101E70008093EB001092E9008091E800877F86C094 +:101E80008111A7C01091F9011F778091E30080783C +:101E9000812B8093E3008091E800877F8093E800A6 +:101EA0000E94CE0C8091E80080FFFCCF8091E3007F +:101EB00080688093E300111102C082E001C083E0DA +:101EC0008093F60186C08058823008F082C08091ED +:101ED000F9019091FA018C3D53E0950779F583E083 +:101EE0008A838AE289834FB7F894DE01139620E053 +:101EF0003EE051E2E32FF0E050935700E49120FFE1 +:101F000003C0E295EF703F5FEF708E2F90E0EA30F4 +:101F100010F0C79601C0C0968D939D932F5F24311A +:101F200049F74FBF8091E800877F8093E8006AE21D +:101F300070E0CE0101960E94D50B14C0AE014F5F38 +:101F40005F4F6091FB010E941C0BBC01892B09F4BF +:101F500040C09091E800977F9093E80089819A8132 +:101F60000E94380C8091E8008B778093E80031C0A4 +:101F7000803879F58091E800877F8093E800809130 +:101F8000F2018093F1008091E8008E778093E80061 +:101F90000E94CE0C1EC081111CC09091F90192309C +:101FA000C0F48091E800877F8093E8009093F2016D +:101FB0000E94CE0C8091F201811106C08091E30055 +:101FC00087FD02C081E001C084E08093F6010E9499 +:101FD0001B0A8091E80083FF0AC08091E800877F98 +:101FE0008093E8008091EB0080628093EB00AA96DA +:101FF0000FB6F894DEBF0FBECDBFDF91CF911F911A +:1020000008950895CF938091F6018823A1F0C0919F +:10201000E900CF709091EC00892F817090FD80E8ED +:10202000C82B1092E9008091E80083FD0E94B00E59 +:10203000CF70C093E900CF91089590938001809371 +:102040007F010895E0917F01F0918001309721F0A8 +:102050000190F081E02D099480E00895E0917F01E6 +:10206000F0918001309721F00280F381E02D0994F6 +:102070000895E0917F01F0918001309721F0048074 +:10208000F581E02D0994089520917D0130917E0124 +:102090008217930771F090937E0180937D01E09108 +:1020A0007F01F0918001309721F00680F781E02DCB +:1020B0000994089520917B0130917C018217930748 +:1020C00071F090937C0180937B01E0917F01F0910E +:1020D0008001309721F00084F185E02D0994089566 +:1020E00008950C9470100E94F91B0E9447080E94EA +:1020F0007F1C0C9436215F926F927F928F929F92F9 +:10210000AF92BF92CF92DF92EF92FF920F931F9305 +:10211000CF93DF9300D000D01F92CDB7DEB70E94DF +:102120008C089AE8C92E91E0D92E03E010E0AA2489 +:10213000A394B12C502E802F0E9407094C01F60168 +:10214000729062906F016826792661147104A1F47F +:102150000150110978F78FEF89838A831B820E94CF +:10216000021C8160782F9D838C8349815A816B8109 +:102170008D810E942B1138C08091DF0181FD0E946A +:1021800010092BE030E07501022E02C0EE0CFF1C9E +:102190000A94E2F7C70186219721892B09F1298347 +:1021A0005A828E209F2091E0892809F490E09B8339 +:1021B0000E94021C8160782F9D838C8349815A8103 +:1021C0006B818D810E942B11000F111FF801EE57BA +:1021D000FE4F80819181E826F926F182E08204C0D9 +:1021E0002150310980F6B4CF0E94601E1091810108 +:1021F0000E9422101817D1F00E94221080938101B2 +:102200000F900F900F900F900F90DF91CF911F9133 +:102210000F91FF90EF90DF90CF90BF90AF909F9085 +:102220008F907F906F905F900C94F3070F900F90BA +:102230000F900F900F90DF91CF911F910F91FF9012 +:10224000EF90DF90CF90BF90AF909F908F907F9056 +:102250006F905F900895CF93DF93CDB7DEB72B9744 +:102260000FB6F894DEBF0FBECDBF4F835887698786 +:102270007A878B87DE01119686E0FD0111928A959F +:10228000E9F785E0FE01379601900D928A95E1F716 +:1022900049815A816B817C818D819E810E94A21728 +:1022A0002B960FB6F894DEBF0FBECDBFDF91CF9156 +:1022B0000895CF93882309F4C2C0C82F823859F4F7 +:1022C0000E94221081FDBBC089E30E947C1A0E94FB +:1022D000491B89E30CC0833879F40E94221080FDE9 +:1022E000AEC083E50E947C1A0E94491B83E50E94D0 +:1022F000BE1ACF910C94491B843859F40E942210C5 +:1023000082FD9DC087E40E947C1A0E94491B87E4DD +:10231000EECF8CEF8C0F813A48F48C2F0E949F20D7 +:1023200081118DC08C2F0E947C1AE3CF80E28C0F2C +:10233000883048F4C77081E001C0880FCA95EAF779 +:102340000E94021BD6CF8BE58C0F833078F4C53A00 +:1023500029F0C63A31F083E890E005C081E890E0CA +:1023600002C082E890E0CF910C94441088E58C0F75 +:10237000833108F064C0C83A39F1C93A41F1CA3A28 +:1023800049F1CB3A51F1CC3A59F1CD3A61F1C03B28 +:1023900069F1CE3A71F1CF3A79F1C13B81F1C23B9B +:1023A00089F1C33B91F1C43B99F1C53BA1F1C63B17 +:1023B000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B77 +:1023C000C9F180E090E038C082EE90E035C089EE3F +:1023D00090E032C08AEE90E02FC085EB90E02CC0F8 +:1023E00086EB90E029C087EB90E026C08CEC90E073 +:1023F00023C08DEC90E020C083E891E01DC08AE806 +:1024000091E01AC082E991E017C084E991E014C01C +:1024100081E292E011C083E292E00EC084E292E099 +:102420000BC085E292E008C086E292E005C087E238 +:1024300092E002C08AE292E0CF910C945A10CF91C0 +:102440000895882309F44BC0823859F40E94221061 +:1024500081FF45C089E30E947C1A0E94491B89E3E1 +:102460000CC0833871F40E94221080FF38C083E5CD +:102470000E947C1A0E94491B83E50E94BE1A0C949C +:10248000491B843859F40E94221082FF28C087E437 +:102490000E947C1A0E94491B87E4EFCF9CEF980FA3 +:1024A000913A58F390E2980F983050F4877091E089 +:1024B00001C0990F8A95EAF7892F0E94081BDFCF88 +:1024C0009BE5980F933020F480E090E00C9444104A +:1024D000885A833120F480E090E00C945A100895DB +:1024E000882321F00E94021B0C94491B0895882325 +:1024F00021F00E94081B0C94491B08957F928F9233 +:102500009F92AF92BF92CF92DF92EF92FF920F9382 +:102510001F93CF93DF931F92CDB7DEB77C01C62EFA +:10252000772EFC01058102950F70128111110E9416 +:102530001F1B0E94751A882379F0112369F080E22D +:102540008C0D883048F082E00E945E1A0E94751A55 +:1025500091E0D82ED92601C0D12CE72DE295EF705D +:10256000F0E0E859FF4F0C941623872D807F072D4C +:102570000F70882311F00295007F112389F000234A +:1025800009F499C180E28C0D883020F4802F0E94DC +:10259000021B03C0802F0E94121B0E94491B8BC18B +:1025A0008C2D0E942112002309F4C3C180E28C0DFE +:1025B000883020F4802F0E94081B03C0802F0E94C7 +:1025C000181B0E94491BB5C1872D807F972D9F70D6 +:1025D000803211F4892F03C0892F8295807FCC200F +:1025E00021F0F1E0CF16A1F01DC0112339F0002336 +:1025F00019F1013009F50E94321B9BC1002319F02B +:10260000013009F496C189830E94351B898110C16C +:10261000112321F0063008F08CC10EC0053008F0FF +:1026200088C106C1112359F0002331F0F7019581CB +:1026300090FF41C19F7095830E9470127AC1002360 +:1026400009F4F6C03EC1872D86958695837090E08B +:10265000009719F0019761F06CC1112321F08C2DC6 +:10266000972D937002C080E090E00E94441061C1F9 +:10267000112321F08C2D972D937002C080E090E003 +:102680000E945A1056C18C2D112319F00E94681D0A +:1026900002C00E94D01D0E94551E4BC1872D837021 +:1026A00009F052C0111145C18C2D82958695877015 +:1026B000880F880F9C2D9F70892E912CA12CB12CF6 +:1026C000082E04C0880C991CAA1CBB1C0A94D2F7C3 +:1026D000C4FE14C00FE010E020E030E0B901A80112 +:1026E00004C0440F551F661F771F8A95D2F7CB0190 +:1026F000BA01609570958095909503C060E070E098 +:10270000CB01272D26952695237030E02230310508 +:1027100069F02330310589F0682979298A299B29B4 +:102720002130310571F00E94EA1803C16829792926 +:102730008A299B290E940619FCC00E94EA18C5013B +:10274000B4010E94CE18F5C0112319F0872D8170B5 +:1027500001C08695882309F4ECC08C2D829586955E +:102760008770880F880F9C2D9F70892E912CA12C2B +:10277000B12C082E04C0880C991CAA1CBB1C0A94FE +:10278000D2F7C4FE14C00FE010E020E030E0B90141 +:10279000A80104C0440F551F661F771F8A95D2F702 +:1027A000CB01BA01609570958095909503C060E06B +:1027B00070E0CB01272D269526952370422F50E0FF +:1027C0004230510569F04330510589F06829792973 +:1027D0008A299B294130510571F00E94C419A9C072 +:1027E000682979298A299B290E94E019A2C00E94A0 +:1027F000C419C501B4010E94A8199BC08C2D90E09A +:10280000FC01E05EF109E531F10508F050C0E8583F +:10281000FF4F0C9416230C2D0F70872D8F711123F1 +:1028200021F00E944119802F07CF0E946219802F4A +:102830000E9477127EC0112341F0053008F079C064 +:10284000872D8F710E94871974C0063008F071C0FF +:10285000F7CF112339F0872D8F710E94411969C07C +:102860001123C9F3872D8F710E94621962C0112351 +:1028700029F0872D8F710E942C195BC00E942219AC +:1028800058C0112351F0172D1F71812F0E9441193B +:1028900063E0812F0E94551A4CC081E00E945E1AAD +:1028A000023008F446C082E00E945E1A42C0112342 +:1028B00031F0002381F28C2D0E9459113AC000237F +:1028C00089F28C2D0E94211234C0472D4F706C2D3F +:1028D000C7010E9491030E9446182BC0111129C004 +:1028E000472D4F7050E042305105B9F04CF441157E +:1028F000510581F041305105E1F40E945E2119C07B +:102900004330510569F04430510599F48C2D0E94F3 +:10291000B0210FC00E9447210CC00E947A2109C03B +:102920000E948D2106C0472D4F706C2DC7010E945B +:102930006307DD20F9F00E94511A80FD1BC0F701EA +:1029400012820E944B1A0E944119C7010E94C914A9 +:102950000E944B1A0F90DF91CF911F910F91FF9022 +:10296000EF90DF90CF90BF90AF909F908F907F902F +:102970000C9462190F90DF91CF911F910F91FF90EE +:10298000EF90DF90CF90BF90AF909F908F907F900F +:1029900008950F931F93CF93DF93EC018881998162 +:1029A0002B813C81232BB9F09F3F11F48F3F99F08D +:1029B000CE010E94EB03882371F0688179818A81BE +:1029C0000E94471A8C010E94FC190E94C318B8018A +:1029D000CE010E947E12DF91CF911F910F91089539 +:1029E0000E941F1B0E942F1B0E94F41A0E94491B69 +:1029F0000E94051F0E94551E80E090E00E94441036 +:102A000080E090E00C945A100E940F1B0C94F0147C +:102A10000E943C1A292F22952F7030E02C3031056E +:102A20004CF42A3031056CF4225031092230310542 +:102A3000A8F407C02C30310569F02F30310551F072 +:102A40000DC0803F69F018F4803E40F409C0843F17 +:102A500029F406C093FB882780F9089580E0089543 +:102A600081E00895CF93DF9300D000D01F92CDB7BF +:102A7000DEB70F900F900F900F900F90DF91CF91D6 +:102A80000895CF93DF9300D000D000D0CDB7DEB74C +:102A900026960FB6F894DEBF0FBECDBFDF91CF9163 +:102AA00008951F93CF93DF93C0918A0116E0809120 +:102AB0008B01C81799F0D0E01C9FF0011D9FF00D0D +:102AC0001124E457FE4F40815181628173818481DA +:102AD00095810E9441152196C770E9CFDF91CF9172 +:102AE0001F9108954091BC015091BD016091BE01BC +:102AF0007091BF018091C0019091C1010C9441156A +:102B00008091C10182958F7009F054C08091BE01FF +:102B1000882309F44FC080918A01A0918B016091B4 +:102B2000BC017091BD014091BF015091C001B6E060 +:102B30008A1709F43FC090E041155105C1F17F3F6C +:102B400011F46F3FA1F1B89FF001B99FF00D11246E +:102B5000E457FE4F218172132AC02081621327C0DF +:102B60002281211124C0238134812417350710F4D8 +:102B700021503109241B350B283C3105C0F420912C +:102B8000C1012F7020612093C10126E0289FF00130 +:102B9000299FF00D1124EF56FE4F80818F708061C8 +:102BA00080838CEB91E00E94C9140C94511501961E +:102BB0008770BECF0895CF92DF92EF92FF920F936E +:102BC0001F93CF93DF93CDB7DEB762970FB6F8941C +:102BD000DEBF0FBECDBF8C0185E0F801DE011D9682 +:102BE00001900D928A95E1F7D8014C9111965C9174 +:102BF000119712966C9112971396CD90DC901497C2 +:102C00003091BC017091BD018091BF019091C001D4 +:102C1000009709F46BC17F3F19F43F3F09F466C187 +:102C2000E090BE01EE2009F4C0C02091C101C81699 +:102C3000D90628F0F601E81BF90BCF0104C08095F6 +:102C400090958C0D9D1DFF24F394883C910578F0A0 +:102C5000F12C207F09F0C6C07C2DD98AC88A8989C9 +:102C60000E9432158CEB91E00E94C914B1C0822FF2 +:102C7000807F09F046C0751314C0341312C061116F +:102C800010C02F7020612093C1010E9472158CEB3F +:102C900091E00E94C9148091C101D80115968C93CE +:102CA0002EC0CD2819F15F3F11F44F3FF9F0F62EF9 +:102CB00061111CC080918A0120918B0136E082173E +:102CC00009F45AC090E0389FF001399FF00D1124AB +:102CD000E457FE4F7181571306C07081471303C03C +:102CE0007281711103C001968770E9CFF62E6623B9 +:102CF00009F418C18091C10181608093C101F12C58 +:102D000011C1751308C0341306C0611104C080914D +:102D1000C101D801C3C04D875E878D859E856A8BB2 +:102D20000E9408156A898823E1F16623D1F1209178 +:102D3000C101822F82958F7090E0029774F080918C +:102D4000BC019091BD0198878F831986DB86CA8666 +:102D50002C87CE0107960E94C91486E0F801ACEBDF +:102D6000B1E001900D928A95E1F70E9480150E94D2 +:102D70007215FF24F394D6C04D875E878D859E859E +:102D80000E943C1A292F22952F7030E02230310505 +:102D90000CF0BCC09F7009F0B6C0805E883008F4AB +:102DA000C1C0C8010E94C914E4CFC816D90608F4EE +:102DB00053C0F601E81BF90BCF01883C910508F4DC +:102DC00050C0F12C7C2DD98AC88A89890E9432157D +:102DD000ECEBF1E086E0DF011D928A95E9F70E94B5 +:102DE0007215A0C0751314C0341312C0611110C045 +:102DF0008091C101F8018583C8010E94C91486E051 +:102E0000ECEBF1E0DF011D928A95E9F7FE2C8AC018 +:102E10004D875E878D859E856A8B0E9408156A891D +:102E2000882309F4BECF662309F4BBCF2091C101EA +:102E3000822F82958F7090E002970CF48ECF809154 +:102E4000BC019091BD019A8389831B82DD82CC8273 +:102E50002E83CE0101967FCF809590958C0D9D1D80 +:102E6000ACCFF62E662309F49CCF75132EC0341315 +:102E70002CC02091C10120FD1FC0822F82958F7030 +:102E8000D9F0D80115962C9315978F3049F08F5FA4 +:102E9000982F9295907F822F8F70892B15968C9307 +:102EA000C8010E94C91486E0F801ACEBB1E00190C2 +:102EB0000D928A95E1F793CF86E0F801ACEBB1E093 +:102EC00001900D928A95E1F72DC04D875E878D8523 +:102ED0009E850E940815811140CF8091C1018160BB +:102EE0008093C101C8010E94C9141CC0662309F463 +:102EF00058CF4D875E878D859E850E940815882353 +:102F000009F44FCF2ACF811148CF0CC024303105AE +:102F10000CF047CF9F7009F440CFF8019581907F66 +:102F200009F03BCF8F2D62960FB6F894DEBF0FBE2F +:102F3000CDBFDF91CF911F910F91FF90EF90DF9068 +:102F4000CF9008951F93CF93DF93CDB7DEB72C9723 +:102F50000FB6F894DEBF0FBECDBF4F835887698789 +:102F60007A878B879C87CE0107960E94DB15882382 +:102F700069F08F8198852A853B85232BF1F19F3F4E +:102F800009F063C08F3F09F060C037C086E0FE01E2 +:102F90003796DE01119601900D928A95E1F76F81C7 +:102FA0007885EA85FB85309741F17F3F11F46F3FCB +:102FB00021F120918B0130E0C9010196877099279A +:102FC00040918A0150E08417950709F447C069834E +:102FD0007A83FD83EC8396E0929FD001939FB00D9E +:102FE0001124A457BE4FFE01319601900D929A957F +:102FF000E1F780938B010E94511516E080918A01C0 +:1030000090918B018917C1F1189FC0011124845739 +:103010009E4F0E94DB15882379F1E0918A011E9F63 +:10302000F0011124E457FE4F408151816281738188 +:10303000848195810E94411580918A0190E00196DA +:103040008770992780938A01D9CF4F8158856985E8 +:103050007A858B859C850E944115CFCF0E940415EF +:1030600010928B0110928A01ECEBF1E086E0DF0117 +:103070001D928A95E9F7C1CF2C960FB6F894DEBF62 +:103080000FBECDBFDF91CF911F910895EF92FF92B8 +:103090000F931F93CF93DF938C01892B09F46CC09E +:1030A000F12CEE24E394E8012196F8018491843711 +:1030B00040F4843008F051C0813081F0823019F141 +:1030C0005BC0853709F444C0A8F19CE7980F90379E +:1030D00008F052C08F770E94211241C00E5F1F4F2F +:1030E000FE01C49180E28C0F883048F4C7708E2DA9 +:1030F00001C0880FCA95EAF70E94221B14C08C2FCA +:103100000E9459112DC00E5F1F4FFE01C49180E235 +:103110008C0F883058F4C7708E2D01C0880FCA9567 +:10312000EAF70E94281B0E94491B1AC08C2F0E949C +:10313000211216C00E5F1F4FFE01C491CC2381F0F7 +:103140008FE99FE00197F1F700C00000C150F6CF72 +:103150000E5F1F4FFE01F49003C00E9459118E01B3 +:103160008F2D882309F49FCFEFE9FFE03197F1F726 +:1031700000C000008150F5CFDF91CF911F910F91DA +:10318000FF90EF90089508956093C6017093C70172 +:103190008093C8019093C9010C94F0140F931F936E +:1031A0000091C6011091C7012091C8013091C90159 +:1031B000DC01CB01802B912BA22BB32B8093C6017A +:1031C0009093C701A093C801B093C9011F910F91BB +:1031D0000C94F0140F931F930091C6011091C70136 +:1031E0002091C8013091C901DC01CB0180239123DA +:1031F000A223B3238093C6019093C701A093C80173 +:10320000B093C9011F910F910C94F0140F931F9369 +:103210000091C6011091C7012091C8013091C901E8 +:10322000DC01CB0180279127A227B3278093C60119 +:103230009093C701A093C801B093C9011F910F914A +:103240000C94F0141092C2011092C3011092C401A8 +:103250001092C5010C94F01441E050E060E070E081 +:1032600004C0440F551F661F771F8A95D2F74093FD +:10327000C2015093C3016093C4017093C5010C94C3 +:10328000F01441E050E060E070E004C0440F551FCE +:10329000661F771F8A95D2F78091C2019091C30172 +:1032A000A091C401B091C501482B592B6A2B7B2BEF +:1032B0004093C2015093C3016093C4017093C50150 +:1032C0000C94F01441E050E060E070E004C0440F62 +:1032D000551F661F771F8A95D2F7409550956095C8 +:1032E00070958091C2019091C301A091C401B091E9 +:1032F000C501482359236A237B234093C20150937D +:10330000C3016093C4017093C5010C94F01441E0B3 +:1033100050E060E070E004C0440F551F661F771F47 +:103320008A95D2F78091C2019091C301A091C40106 +:10333000B091C501482759276A277B274093C201CE +:103340005093C3016093C4017093C5010C94F014B1 +:103350000F931F930091C2011091C3012091C401EA +:103360003091C501DC01CB01802B912BA22BB32B1B +:103370008093C2019093C301A093C401B093C5018F +:103380001F910F910C94F0140F931F930091C201A1 +:103390001091C3012091C4013091C501DC01CB0122 +:1033A00080239123A223B3238093C2019093C3016E +:1033B000A093C401B093C5011F910F910C94F01418 +:1033C0000F931F930091C2011091C3012091C4017A +:1033D0003091C501DC01CB0180279127A227B327BB +:1033E0008093C2019093C301A093C401B093C5011F +:1033F0001F910F910C94F0140895CF92DF92EF92E9 +:10340000FF920F931F93CF93DF938C01C090C6015F +:10341000D090C701E090C801F090C9018091C2012D +:103420009091C301A091C401B091C501C82AD92AC5 +:10343000EA2AFB2ACFE1D0E0D701C6010C2E04C056 +:10344000B695A795979587950A94D2F780FF06C001 +:10345000B8018C2F0E94C205019721F4219760F7D3 +:1034600080E001C08C2FDF91CF911F910F91FF90D1 +:10347000EF90DF90CF900895CF93DF93EC010E94FF +:10348000FD19BE010E94C205DF91CF910895CB01C5 +:103490000E943C1A08958091CA018595859585956D +:1034A00008958091CA018770089598E0899F9001DE +:1034B0001124262B2093CA010C9441192091CA0192 +:1034C000809582238093CA01982F977069F430E029 +:1034D000482F082E000C550B2417350729F0859529 +:1034E000859585950C94621908959091CA019770FD +:1034F00081E009F480E0089590910B01992321F077 +:1035000090910C01911109C020910D0130910E0193 +:10351000F90132969FEF40E01FC0982F969596953F +:1035200096959F3050F5E0910D01F0910E01E90F55 +:10353000F11D877021E030E0A90102C0440F551F42 +:103540008A95E2F7CA019181892B818308959F3F73 +:1035500039F04F5F4E3041F051915813F8CF0DC004 +:103560005111F7CF942FF5CF9F3F39F0F901E90FB3 +:10357000F11D97FDFA9582830895089590910B01AE +:10358000992321F090910C01911109C020910D0116 +:1035900030910E01F9013296205F3F4F1FC0982FE6 +:1035A0009695969596959F30F0F4E0910D01F091E7 +:1035B0000E01E90FF11D877021E030E0A90102C082 +:1035C000440F551F8A95E2F7CA018095918189239E +:1035D000818308953196E217F30729F090819813BB +:1035E000F9CF1082F7CF089581E090E0E0910D01CE +:1035F000F0910E01E80FF91F1082019680319105BC +:10360000A9F708959091DE01892B8093DE0108953A +:1036100080959091DE0189238093DE0108951092B8 +:10362000DE0108959091DD01892B8093DD010895DD +:1036300080959091DD0189238093DD01089510929A +:10364000DD0108959091DC01892B8093DC010895C0 +:1036500080959091DC0189238093DC01089510927C +:10366000DC0108958093CB0108951092CB01089559 +:1036700080910D0190910E01FC0131969C01205F1B +:103680003F4F80E0919191118F5FE217F307D1F7DF +:103690000895E0910D01F0910E018091DE0180838B +:1036A000E0910D01F0910E0190818091DD01892B57 +:1036B0008083E0910D01F0910E0190818091DC01F9 +:1036C000892B80838091CB01882361F0E0910D01EB +:1036D000F0910E019081892B80830E94381B81110B +:1036E0001092CB0180910D0190910E010C942E103F +:1036F00020E0009739F0AC01415051098423952313 +:103700002F5FF7CF822F08958091F601843051F119 +:103710001092E00120E488E190E00FB6F894A895BB +:10372000809360000FBE2093600080E00E94EC0256 +:1037300080E00E94F30783B7817F846083BF83B7F3 +:10374000816083BF7894889583B78E7F83BF0FB6DF +:10375000F894A89580916000886180936000109231 +:1037600060000FBE0895089580E00E94EC020E9460 +:1037700009080E948C080E94B31B0E94110991E065 +:10378000811101C090E0892F08950E94041580E006 +:103790000E94EC020E9436210E9422100C94F30732 +:1037A0001F920F920FB60F9211248F939F93AF9396 +:1037B000BF938091E001811113C08091E10190914C +:1037C000E201A091E301B091E4014196A11DB11D78 +:1037D0008093E1019093E201A093E301B093E401AF +:1037E000BF91AF919F918F910F900FBE0F901F903F +:1037F000189582E084BD93E095BD9AEF97BD8093C4 +:103800006E0008952FB7F8948091E1019091E20144 +:10381000A091E301B091E4012FBF0895CF92DF9210 +:10382000EF92FF920F931F932FB7F8944091E1010D +:103830005091E2016091E3017091E4012FBF6A01B0 +:103840007B01EE24FF248C0120E030E0C016D1067D +:10385000E206F30610F4415051099A01281B390B76 +:10386000C9011F910F91FF90EF90DF90CF900895C5 +:103870001F920F920FB60F9211248F939F93AF93C5 +:10388000BF938091E1019091E201A091E301B09199 +:10389000E4010196A11DB11D8093E1019093E20125 +:1038A000A093E301B093E401BF91AF919F918F91F9 +:1038B0000F900FBE0F901F9018950E941F0DF89447 +:1038C0002FEF87EA91E6215080409040E1F700C059 +:1038D000000087E090EBDC018093000290930102EE +:1038E000A0930202B09303029CE088E10FB6F89423 +:1038F000A895809360000FBE90936000FFCF0E9458 +:10390000BC1C811102C00E949D1C0E94C71C809398 +:10391000DF010E94D41C90E09093F1018093F001AC +:1039200087FB882780F980930C010E94CB1C682FAD +:1039300070E080E090E00C94C4186DEE7EEF80E0C3 +:1039400090E00E94502360E082E090E00E943E23DD +:1039500060E083E090E00E943E2360E084E090E03D +:103960000E943E2360E085E090E00E943E2360E0FC +:1039700086E090E00C943E2380E090E00E943823A3 +:1039800021E08D3E9E4F09F020E0822F089582E0D5 +:1039900090E00C94302383E090E00C943023682F67 +:1039A00083E090E00C943E2384E090E00C9430237C +:1039B000682F84E090E00C943E2386E090E00C9425 +:1039C0003023682F86E090E00C943E238091E7013D +:1039D00080FF0BC06091120185E0689FB001112447 +:1039E00075956795759567952BC081FF09C06091A6 +:1039F000120185E0689FB00111247595679520C07C +:103A000082FF07C06091120185E0689FB001112418 +:103A100017C09091E8019923D1F060911101961798 +:103A200088F72091120185E0289F90011124929F30 +:103A3000A001939F500D112470E0CA010E9402233F +:103A40006038710540F46115710539F002C065E018 +:103A500070E0862F08958FE7089581E008958091A2 +:103A6000E70180FF08C06091100170E075956795CF +:103A70007595679521C081FF06C06091100170E0C7 +:103A80007595679519C082FF04C06091100170E0C0 +:103A900010C09091E8019923C1F060910F01961731 +:103AA000A0F780911001899FC001112470E00E944D +:103AB00002236038710528F46115710521F0862F05 +:103AC00008958FE7089581E0089561E070E0F4CFF4 +:103AD000803F21F40E94E61C819504C0813F29F4B7 +:103AE0000E94E61C8093EB010895823F21F40E941E +:103AF000E61C819504C0833F29F40E94E61C809354 +:103B0000EA010895893F19F40E942F1D05C08A3FDC +:103B100031F40E942F1D81958093EC0108958B3F15 +:103B200021F40E942F1D819504C08C3F29F40E942E +:103B30002F1D8093ED010895843F21F48091E901C8 +:103B4000816017C0853F21F48091E901826011C036 +:103B5000863F21F48091E90184600BC0873F21F406 +:103B60008091E901886005C0883F31F48091E901C6 +:103B700080618093E90108958D3F21F48091E701F0 +:103B800081600BC08E3F21F48091E701826005C007 +:103B90008F3F29F48091E70184608093E7010895C5 +:103BA000803F39F48091EB0187FF6CC01092EB01EC +:103BB00069C0813F29F48091EB011816BCF362C003 +:103BC0009091EA01823F29F497FF5CC01092EA01CC +:103BD00059C0833F19F41916CCF354C0893F41F4FE +:103BE0008091EC0118160CF04DC01092EC014AC007 +:103BF0008A3F29F48091EC0187FF44C0F6CF8B3FC8 +:103C000039F48091ED0187FF3DC01092ED013AC07B +:103C10008C3F29F48091ED011816BCF333C0843F2A +:103C200021F48091E9018E7F17C0853F21F48091B6 +:103C3000E9018D7F11C0863F21F48091E9018B7FDE +:103C40000BC0873F21F48091E901877F05C0883F41 +:103C500031F48091E9018F7E8093E90113C08D3F9B +:103C600021F48091E7018E7F0BC08E3F21F480917B +:103C7000E7018D7F05C08F3F29F48091E7018B7F9D +:103C80008093E7018091EA0181110EC08091EB01E0 +:103C900081110AC08091EC01811106C08091ED0173 +:103CA000811102C01092E801089589EE91E00E940E +:103CB00039100E94021C9093E6018093E50108955B +:103CC0001F93CF93DF938091E5019091E6010E94CD +:103CD0000E1CAC019091E801992321F02091130171 +:103CE00030E006C0209114018AE0289F9001112441 +:103CF0004217530708F485C08091EA01C091EB0197 +:103D0000D091EC011091ED01811107C0C11175C076 +:103D1000D11173C0111171C074C09F3F19F09F5F22 +:103D20009093E801181624F40E94E61C8093EA019F +:103D30008091EA0187FF05C00E94E61C819580936F +:103D4000EA011C1624F40E94E61C8093EB0180918A +:103D5000EB0187FF05C00E94E61C81958093EB0173 +:103D60006091EA01662331F1C091EB01CC2311F19E +:103D7000062E000C770B880B990B0E94092223E377 +:103D800033E343E35FE30E946D220E94D1216093FD +:103D9000EA016C2FCC0F770B880B990B0E9409223C +:103DA00023E333E343E35FE30E946D220E94D121CA +:103DB0006093EB011D1624F40E942F1D8093EC01EB +:103DC0008091EC0187FF05C00E942F1D8195809393 +:103DD000EC01111624F40E942F1D8093ED018091B7 +:103DE000ED0187FF05C00E942F1D81958093ED0195 +:103DF000DF91CF911F910C94551E9F3F09F08FCFFB +:103E000097CFDF91CF911F910895E9EEF1E085E022 +:103E1000DF011D928A95E9F71092E8011092E701FF +:103E20000895833081F128F4813059F08230D1F047 +:103E30000895853009F449C0B8F1863009F456C0B8 +:103E4000089580911401262F30E0280F311D2F3F57 +:103E5000310524F4680F6093140108958FEF809367 +:103E60001401089580911301262F30E0280F311D91 +:103E70002F3F310524F4680F6093130108958FEFED +:103E800080931301089580911201262F30E0280FAE +:103E9000311D2F3F310524F4680F609312010895FE +:103EA0008FEF80931201089580911101262F30E049 +:103EB000280F311D2F3F310524F4680F6093110145 +:103EC00008958FEF80931101089580911001262F9E +:103ED00030E0280F311D2F3F310524F4680F609327 +:103EE000100108958FEF80931001089580910F01C4 +:103EF000262F30E0280F311D2F3F310524F4680FA5 +:103F000060930F0108958FEF80930F010895833020 +:103F100011F128F4813049F0823091F00895853014 +:103F200081F120F18630C1F1089580911401681764 +:103F300020F4861B809314010895109214010895B3 +:103F400080911301681720F4861B80931301089554 +:103F500010921301089580911201681720F4861BB6 +:103F60008093120108951092120108958091110119 +:103F7000681720F4861B8093110108951092110197 +:103F8000089580911001681720F4861B809310011A +:103F9000089510921001089580910F01681720F480 +:103FA000861B80930F01089510920F0108950F93BF +:103FB0001F93873208F048C08E3108F092C08031DC +:103FC00009F47CC008F5873009F466C068F48630CF +:103FD00009F0A2C08091DF01817F8E7F8093DF0195 +:103FE00081E08093EF0199C08B3009F48EC08E3050 +:103FF00009F092C08091DF0182FB222720F991E035 +:10400000922790FB82F963C0863109F47EC060F488 +:10401000813109F081C00E94041590910C0181E06A +:10402000892780930C0171C0893109F46EC08B31EE +:1040300009F072C08091DF0181FB222720F991E015 +:10404000922790FB81F943C0883309F45EC050F495 +:10405000893209F45CC0853309F459C0873209F408 +:1040600056C05AC0833409F452C028F48A3308F485 +:1040700053C0895337C0883409F04EC00E940415DC +:104080000FEF13ED20E3015010402040E1F700C096 +:1040900000000E945D1C39C09091DF01892F80953E +:1040A000817080FB90F929F0966098609093DF0111 +:1040B00034C0997F977F9093DF0127C08091DF0103 +:1040C00083FB222720F991E0922790FB83F98093CC +:1040D000DF019923D1F08091DF0181608093DF01BE +:1040E00014C08D5141E050E060E070E08A019B0116 +:1040F00004C0000F111F221F331F8A95D2F7C90178 +:10410000B8010E94C4180E94041581E006C061E055 +:1041100070E080E090E0F5CF80E01F910F9108956E +:1041200080E0089580E008958E518A3030F4E82FC1 +:10413000F0E0E75CFE4F8081089580E00895CF9322 +:10414000C82F8091EF01813069F018F08230C9F1F9 +:1041500083C0E0910D01F0910E018081823209F05F +:104160007DC007C0E0910D01F0910E018081823287 +:1041700061F48C2F0E949020811104C08C2F0E942A +:10418000D71F1DC081E090E01AC08C2F0E949220A2 +:10419000811114C0C43179F048F4CB3079F0C031CA +:1041A00009F060C082E08093EF0108C0C93219F0C5 +:1041B000C83321F057C01092EF0154C081E08170E4 +:1041C00053C0C93289F118F5C43171F1B0F4C73068 +:1041D00009F046C08EE18093140182E380931301BD +:1041E0008AE08093120184E18093110188E080933A +:1041F000100188E280930F0133C082EE8C0F86306D +:1042000078F58C2F0E9494208093EE0129C0CE3443 +:10421000E9F020F4CB3421F56AE013C0C13579F020 +:10422000C235F1F461E00DC08091EE01882319F0F0 +:104230001092EE0115C081E08093EF0115C061E09E +:1042400006C08091EE010E94111F0AC06AE08091B1 +:10425000EE010E94871F04C01092EF0180E004C0AD +:1042600081E002C080E0ABCFCF9108950E94BC1CDA +:10427000811102C00E949D1C0E94DD1C8093FF01E1 +:1042800080FF02C0869501C080E00C94EC02809112 +:10429000FF01982F9695292F30E0233031054CF4FB +:1042A0009F5F990F8170892B81608093FF010E942D +:1042B000E11C8091FF0186950C94EC028091FF0136 +:1042C000982F969591F09158990F8170892B809332 +:1042D000FF018E7F91E009F490E08091FF0190FB57 +:1042E00080F98093FF010E94E11C8091FF01869577 +:1042F0000C94EC028091FF01982F909590FB80F92F +:104300008093FF010E94E11C8091FF0180FF02C0A9 +:10431000869501C080E00C94EC029091FF01892FFA +:1043200086958F5F8F779170843028F4880F892B62 +:104330008093FF0102C09093FF018091FF018E7F67 +:1043400091E009F490E08091FF0190FB80F9809367 +:10435000FF010E94E11C8091FF0186950C94EC0204 +:104360002091FF01922F96958927982F990F822FE0 +:104370008170892B8093FF018E7F91E009F490E09A +:104380008091FF0190FB80F98093FF010E94E11C66 +:104390008091FF0186950C94EC028091FF01869537 +:1043A00008950E94D8216894B1110C946722089551 +:1043B0000E944C2288F09F5798F0B92F9927B75147 +:1043C000B0F0E1F0660F771F881F991F1AF0BA95B9 +:1043D000C9F714C0B13091F00E946622B1E008958F +:1043E0000C946622672F782F8827B85F39F0B93F81 +:1043F000CCF3869577956795B395D9F73EF490956C +:104400008095709561957F4F8F4F9F4F0895E894E9 +:1044100009C097FB3EF490958095709561957F4F0C +:104420008F4F9F4F9923A9F0F92F96E9BB279395BA +:10443000F695879577956795B795F111F8CFFAF4CA +:10444000BB0F11F460FF1BC06F5F7F4F8F4F9F4FFB +:1044500016C0882311F096E911C0772321F09EE859 +:10446000872F762F05C0662371F096E8862F70E0BF +:1044700060E02AF09A95660F771F881FDAF7880F99 +:104480009695879597F9089557FD9058440F551FB5 +:1044900059F05F3F71F04795880F97FB991F61F0C6 +:1044A0009F3F79F087950895121613061406551F3D +:1044B000F2CF4695F1DF08C0161617061806991FA9 +:1044C000F1CF86957105610508940895E894BB279E +:1044D00066277727CB0197F908950E9480220C94D4 +:1044E000F1220E94E32238F00E94EA2220F0952374 +:1044F00011F00C94DA220C94E02211240C9467221F +:104500000E94442270F3959FC1F3950F50E0551F10 +:10451000629FF001729FBB27F00DB11D639FAA2718 +:10452000F00DB11DAA1F649F6627B00DA11D661F67 +:10453000829F2227B00DA11D621F739FB00DA11D88 +:10454000621F839FA00D611D221F749F3327A00D42 +:10455000611D231F849F600D211D822F762F6A2FDE +:1045600011249F5750409AF0F1F088234AF0EE0F43 +:10457000FF1FBB1F661F771F881F91505040A9F770 +:104580009E3F510580F00C94DA220C9467225F3F25 +:10459000E4F3983ED4F3869577956795B795F795AC +:1045A000E7959F5FC1F7FE2B880F911D9695879524 +:1045B00097F9089597F99F6780E870E060E00895A3 +:1045C0009FEF80EC089500240A941616170618062B +:1045D0000906089500240A94121613061406050607 +:1045E0000895092E0394000C11F4882352F0BB0F98 +:1045F00040F4BF2B11F460FF04C06F5F7F4F8F4FFB +:104600009F4F089597FB072E16F4009407D077FD6F +:1046100009D00E941C2307FC05D03EF4909581959B +:104620009F4F0895709561957F4F0895EE0FFF1F7E +:104630000590F491E02D0994AA1BBB1B51E107C022 +:10464000AA1FBB1FA617B70710F0A61BB70B881F22 +:10465000991F5A95A9F780959095BC01CD010895B1 +:10466000F999FECF92BD81BDF89A992780B508953A +:10467000A8E1B0E042E050E00C945823262FF999CD +:10468000FECF92BD81BDF89A019700B4021639F0B1 +:104690001FBA20BD0FB6F894FA9AF99A0FBE089582 +:1046A0000196272F0E943F230C943E23DC01CB016F +:1046B000FC01F999FECF06C0F2BDE1BDF89A319632 +:1046C00000B40D9241505040B8F70895F894FFCFD0 +:1046D000FF2709B50992095E092A090101CC0128C1 +:1046E00008140A321E1F0F03764F5F6F7F4969431C +:1046F0007909595363404D3639DC048F045904203D +:1047000004B303CC03E503FE03010203040506071B +:044710000809000094 +:00000001FF diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json new file mode 100644 index 000000000..6e33ec6bf --- /dev/null +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -0,0 +1,101 @@ +[ + { + "name": "AB's Practical Keymap for Planck", + "author": "Anand Babu Periasamy" + }, + [ + "1\nF1\n!\n\n\n\n\n\n\nTab", + "2\nF2\n@\n\n\n\n\n\n\nQ", + "3\nF3\n#\n\n\n\n\n\n\nW", + "4\nF4\n$\n\n\n\n\n\n\nE", + "5\nF5\n%\n\n\n\n\n\n\nR", + "6\nF6\n^\n\n\n\n\n\n\nT", + "7\nF7\n&\n\n\n\n\n\n\nY", + "8\nF8\n*\n\n\n\n\n\n\nU", + "9\nF9\n(\n\n\n\n\n\n\nI", + "0\nF10\n)\n\n\n\n\n\n\nO", + "-\nF11\n_\n\n\n\n\n\n\nP", + "=\nF12\n+\n\n\n\n\n\n\n" + ], + [ + { + "a": 7 + }, + "Ctrl", + "A", + "S", + "D", + { + "a": 4 + }, + "(\n\n\n\n\n\n\n\n\nF", + ")\n\n\n\n\n\n\n\n\nG", + "{\n\n\n\n\n\n\n\n\nH", + "}\n\n\n\n\n\n\n\n\nJ", + { + "a": 7 + }, + "K", + "L", + { + "a": 6 + }, + ";\n\n:", + { + "a": 7 + }, + "Enter" + ], + [ + "Shift", + "Z", + "X", + "C", + { + "a": 4 + }, + "[\n`\n\n\n\n\n\n\n\nV", + "]\n~\n\n\n\n\n\n\n\nB", + "'\n\\\n\n\n\n\n\n\n\nN", + "\"\n|\n\n\n\n\n\n\n\nM", + { + "a": 6 + }, + ",\n\n<", + ".\n\n>", + "/\n\n?", + { + "a": 7 + }, + "Shift\n\n\n\nEnter" + ], + [ + { + "a": 4 + }, + "\n\n\n\n\n\n\n\n\nCtrl", + { + "a": 7 + }, + "Esc", + "", + "Alt", + "", + { + "a": 4, + "w": 2 + }, + "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", + { + "a": 7 + }, + "", + "", + { + "a": 4 + }, + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n" + ] +] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png new file mode 100644 index 000000000..64bf0aa1c Binary files /dev/null and b/keyboards/planck/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/planck/keymaps/ab/keyboard-photo.jpg b/keyboards/planck/keymaps/ab/keyboard-photo.jpg new file mode 100644 index 000000000..358cb6bca Binary files /dev/null and b/keyboards/planck/keymaps/ab/keyboard-photo.jpg differ diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c new file mode 100644 index 000000000..57f90ab57 --- /dev/null +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -0,0 +1,122 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +extern keymap_config_t keymap_config; + +// Symbolic names for macro IDs. +#define _QWERTY 0 // QUERTY layer +#define _RAISE 1 // Raise layer +#define _LOWER 2 // Lower layer +#define _CUSTOM 3 // Custom layer +#define _BL 4 // Backlight +#define _MOBILE 5 // Mobile# +#define _CUSTOM1 6 // Custom macro 1 +#define _CUSTOM2 7 // Custom macro 2 + +// Macro shortcuts. +#define RAISE M(_RAISE) +#define LOWER M(_LOWER) +#define CUSTOM M(_CUSTOM) // RAISE + LOWER +#define BL M(_BL) +#define MOBILE M(_MOBILE) +#define CUSTOM1 M(_CUSTOM1) +#define CUSTOM2 M(_CUSTOM2) + +// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = { /* QWERTY */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, + {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} +}, +[_RAISE] = { /* RAISE */ + {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[_LOWER] = { /* LOWER */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} +}, +[_CUSTOM] = { /* CUSTOM */ + {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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, 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} +} +}; + +// Enable these functions using FUNC(n) macro. They seem to be buggy mostly. +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE + [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift +}; + +// Set a layer persistantly. +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Macro actions for each corresponding ID. +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: // Default QWERTY layer. // This case not used for now. + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _RAISE: // Raised layer. + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } + break; + case _LOWER: // Lowered layer. + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } + break; + case _BL:// Backlight + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } else { + unregister_code(KC_RSFT); + } + break; + case _MOBILE:// Your mobile# here. + return MACRODOWN(T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(4), + END); + case _CUSTOM1:// Your custom macro 1 + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); + case _CUSTOM2:// Your custom macro 2 + return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); + }; + return MACRO_NONE; +}