diff --git a/editor/m0110/keycodes.js b/editor/m0110/keycodes.js new file mode 100644 index 00000000..d917d0be --- /dev/null +++ b/editor/m0110/keycodes.js @@ -0,0 +1,338 @@ +/* + * keycodes + */ +keycodes = [ + // {id, name(text), description(tooltip)} + {id: 'NO ', name: 'NO', desc: 'No action'}, + {id: 'TRNS', name: 'TRNS', desc: 'Transparent'}, + {id: 'POST_FAIL', name: 'POST_FAIL', desc: 'POST_FAIL'}, + {id: 'UNDEFINED', name: 'UNDEFINED', desc: 'UNDEFINED'}, + {id: 'A', name: 'A', desc: 'A'}, + {id: 'B', name: 'B', desc: 'B'}, + {id: 'C', name: 'C', desc: 'C'}, + {id: 'D', name: 'D', desc: 'D'}, + {id: 'E', name: 'E', desc: 'E'}, + {id: 'F', name: 'F', desc: 'F'}, + {id: 'G', name: 'G', desc: 'G'}, + {id: 'H', name: 'H', desc: 'H'}, + {id: 'I', name: 'I', desc: 'I'}, + {id: 'J', name: 'J', desc: 'J'}, + {id: 'K', name: 'K', desc: 'K'}, + {id: 'L', name: 'L', desc: 'L'}, + {id: 'M', name: 'M', desc: 'M'}, + {id: 'N', name: 'N', desc: 'N'}, + {id: 'O', name: 'O', desc: 'O'}, + {id: 'P', name: 'P', desc: 'P'}, + {id: 'Q', name: 'Q', desc: 'Q'}, + {id: 'R', name: 'R', desc: 'R'}, + {id: 'S', name: 'S', desc: 'S'}, + {id: 'T', name: 'T', desc: 'T'}, + {id: 'U', name: 'U', desc: 'U'}, + {id: 'V', name: 'V', desc: 'V'}, + {id: 'W', name: 'W', desc: 'W'}, + {id: 'X', name: 'X', desc: 'X'}, + {id: 'Y', name: 'Y', desc: 'Y'}, + {id: 'Z', name: 'Z', desc: 'Z'}, + {id: '1', name: '1', desc: '1'}, + {id: '2', name: '2', desc: '2'}, + {id: '3', name: '3', desc: '3'}, + {id: '4', name: '4', desc: '4'}, + {id: '5', name: '5', desc: '5'}, + {id: '6', name: '6', desc: '6'}, + {id: '7', name: '7', desc: '7'}, + {id: '8', name: '8', desc: '8'}, + {id: '9', name: '9', desc: '9'}, + {id: '0', name: '0', desc: '0'}, + {id: 'ENT', name: 'Enter', desc: 'ENTER'}, + {id: 'ESC', name: 'Esc', desc: 'Escape'}, + {id: 'BSPC', name: 'Back space', desc: 'Backspace'}, + {id: 'TAB', name: 'Tab', desc: 'Tab'}, + {id: 'SPC', name: 'Space', desc: 'Space'}, + {id: 'MINS', name: '-', desc: 'MINUS'}, + {id: 'EQL', name: '=', desc: 'EQUAL'}, + {id: 'LBRC', name: '[', desc: 'Left Bracket'}, + {id: 'RBRC', name: ']', desc: 'Right Bracket'}, + {id: 'BSLS', name: "\\", desc: 'Backslash'}, + {id: 'NUHS', name: 'ISO #', desc: 'Non-US Hash'}, + {id: 'SCLN', name: ';', desc: 'Semicolon'}, + {id: 'QUOT', name: "'", desc: 'Quote'}, + {id: 'GRV ', name: '`', desc: 'Grave'}, + {id: 'COMM', name: ',', desc: 'Comma'}, + {id: 'DOT ', name: '.', desc: 'Dot'}, + {id: 'SLSH', name: '/', desc: 'Slash'}, + {id: 'CAPS', name: 'Caps Lock', desc: 'Need this? Sure? :)'}, + {id: 'F1 ', name: 'F1', desc: 'F1'}, + {id: 'F2 ', name: 'F2', desc: 'F2'}, + {id: 'F3 ', name: 'F3', desc: 'F3'}, + {id: 'F4 ', name: 'F4', desc: 'F4'}, + {id: 'F5 ', name: 'F5', desc: 'F5'}, + {id: 'F6 ', name: 'F6', desc: 'F6'}, + {id: 'F7 ', name: 'F7', desc: 'F7'}, + {id: 'F8 ', name: 'F8', desc: 'F8'}, + {id: 'F9 ', name: 'F9', desc: 'F9'}, + {id: 'F10 ', name: 'F10', desc: 'F10'}, + {id: 'F11 ', name: 'F11', desc: 'F11'}, + {id: 'F12 ', name: 'F12', desc: 'F12'}, + {id: 'PSCR', name: 'Print Screen', desc: 'Print Screen'}, + {id: 'SLCK', name: 'Scroll Lock', desc: 'Scroll Lock'}, + {id: 'PAUS', name: 'Pause', desc: 'Pause'}, + {id: 'INS ', name: 'Insert', desc: 'Insert'}, + {id: 'HOME', name: 'Home', desc: 'Home'}, + {id: 'PGUP', name: 'Page Up', desc: 'Page Up'}, + {id: 'DEL ', name: 'Delete', desc: 'Delete'}, + {id: 'END ', name: 'End', desc: 'End'}, + {id: 'PGDN', name: 'Page Down', desc: 'Page Down'}, + {id: 'RGHT', name: '\u2192', desc: 'Right'}, + {id: 'LEFT', name: '\u2190', desc: 'Left'}, + {id: 'DOWN', name: '\u2193', desc: 'Down'}, + {id: 'UP ', name: '\u2191', desc: 'Up'}, + {id: 'NLCK', name: 'Num Lock', desc: 'Num Lock'}, + {id: 'PSLS', name: 'P/', desc: 'Keypad Slash'}, + {id: 'PAST', name: 'P*', desc: 'Keypad Asterisk'}, + {id: 'PMNS', name: 'P-', desc: 'Keypad Minus'}, + {id: 'PPLS', name: 'P+', desc: 'Keypad Plus'}, + {id: 'PENT', name: 'P\u21A9', desc: 'Keypad Enter'}, + {id: 'P1 ', name: 'P1', desc: 'Keypad 1'}, + {id: 'P2 ', name: 'P2', desc: 'Keypad 2'}, + {id: 'P3 ', name: 'P3', desc: 'Keypad 3'}, + {id: 'P4 ', name: 'P4', desc: 'Keypad 4'}, + {id: 'P5 ', name: 'P5', desc: 'Keypad 5'}, + {id: 'P6 ', name: 'P6', desc: 'Keypad 6'}, + {id: 'P7 ', name: 'P7', desc: 'Keypad 7'}, + {id: 'P8 ', name: 'P8', desc: 'Keypad 8'}, + {id: 'P9 ', name: 'P9', desc: 'Keypad 9'}, + {id: 'P0 ', name: 'P0', desc: 'Keypad 0'}, + {id: 'PDOT', name: 'P.', desc: 'Keypad Dot'}, + {id: 'NUBS', name: 'ISO \\', desc: 'Non-US Backslash'}, + {id: 'APP ', name: 'Application', desc: 'Application'}, + {id: 'POWER', name: '_Power', desc: 'Power(Not work on Windows)'}, + {id: 'PEQL', name: 'P=', desc: 'Keymapd Equal'}, + {id: 'F13 ', name: 'F13', desc: 'F13'}, + {id: 'F14 ', name: 'F14', desc: 'F14'}, + {id: 'F15 ', name: 'F15', desc: 'F15'}, + {id: 'F16 ', name: 'F16', desc: 'F16'}, + {id: 'F17 ', name: 'F17', desc: 'F17'}, + {id: 'F18 ', name: 'F18', desc: 'F18'}, + {id: 'F19 ', name: 'F19', desc: 'F19'}, + {id: 'F20 ', name: 'F20', desc: 'F20'}, + {id: 'F21 ', name: 'F21', desc: 'F21'}, + {id: 'F22 ', name: 'F22', desc: 'F22'}, + {id: 'F23 ', name: 'F23', desc: 'F23'}, + {id: 'F24 ', name: 'F24', desc: 'F24'}, + {id: 'EXECUTE', name: 'EXECUTE', desc: 'EXECUTE'}, + {id: 'HELP', name: 'HELP', desc: 'HELP'}, + {id: 'MENU', name: 'MENU', desc: 'MENU'}, + {id: 'SELECT', name: 'SELECT', desc: 'SELECT'}, + {id: 'STOP', name: 'STOP', desc: 'STOP'}, + {id: 'AGAIN', name: 'AGAIN', desc: 'AGAIN'}, + {id: 'UNDO', name: 'UNDO', desc: 'UNDO'}, + {id: 'CUT', name: 'CUT', desc: 'CUT'}, + {id: 'COPY', name: 'COPY', desc: 'COPY'}, + {id: 'PASTE', name: 'PASTE', desc: 'PASTE'}, + {id: 'FIND', name: 'FIND', desc: 'FIND'}, + {id: '_MUTE', name: '_MUTE', desc: '_MUTE(Not work on Windows)'}, + {id: '_VOLUP', name: '_VOLUP', desc: '_VOLUP(Not work on Windows)'}, + {id: '_VOLDOWN', name: '_VOLDOWN', desc: '_VOLDOWN(Not work on Windows)'}, + {id: 'LCAP', name: 'Locking Caps Lock', desc: 'Locking Caps Lock'}, + {id: 'LNUM', name: 'Locking Num Lock', desc: 'Locking Num Lock'}, + {id: 'LSCR', name: 'Locking Scroll Lock', desc: 'Locking Scroll Lock'}, + {id: 'PCMM', name: 'P,', desc: 'Keypad Comma'}, + {id: 'KP_EQUAL_AS400', name: 'P= (AS400)', desc: 'Keypad Equal (AS400)'}, + {id: 'INT1', name: '\u308D', desc: 'Japanese RO'}, + {id: 'INT2', name: '\u3072\u3089\u304c\u306a', desc: 'Japanese Hiragana'}, + {id: 'INT3', name: '\uffe5', desc: 'Japanese Yen'}, + {id: 'INT4', name: '\u5909\u63db', desc: 'Japanese Henkan'}, + {id: 'INT5', name: '\u7121\u5909\u63db', desc: 'Japanese Muhenkan'}, + {id: 'INT6', name: 'INT6', desc: 'INT6'}, + {id: 'INT7', name: 'INT7', desc: 'INT7'}, + {id: 'INT8', name: 'INT8', desc: 'INT8'}, + {id: 'INT9', name: 'INT9', desc: 'INT9'}, + {id: 'LANG1', name: '\ud55c/\uc601', desc: 'Korean Hangul/English'}, + {id: 'LANG2', name: '\ud55c\uc790', desc: 'Korean Hanja'}, + {id: 'LANG3', name: 'LANG3', desc: 'LANG3'}, + {id: 'LANG4', name: 'LANG4', desc: 'LANG4'}, + {id: 'LANG5', name: 'LANG5', desc: 'LANG5'}, + {id: 'LANG6', name: 'LANG6', desc: 'LANG6'}, + {id: 'LANG7', name: 'LANG7', desc: 'LANG7'}, + {id: 'LANG8', name: 'LANG8', desc: 'LANG8'}, + {id: 'LANG9', name: 'LANG9', desc: 'LANG9'}, + {id: 'ALT_ERASE', name: 'ALT_ERASE', desc: 'ALT_ERASE'}, + {id: 'SYSREQ', name: 'SYSREQ', desc: 'SYSREQ'}, + {id: 'CANCEL', name: 'CANCEL', desc: 'CANCEL'}, + {id: 'CLEAR', name: 'Clear', desc: 'Clear'}, + {id: 'PRIOR', name: 'PRIOR', desc: 'PRIOR'}, + {id: 'RETURN', name: 'RETURN', desc: 'RETURN'}, + {id: 'SEPARATOR', name: 'SEPARATOR', desc: 'SEPARATOR'}, + {id: 'OUT', name: 'OUT', desc: 'OUT'}, + {id: 'OPER', name: 'OPER', desc: 'OPER'}, + {id: 'CLEAR_AGAIN', name: 'CLEAR_AGAIN', desc: 'CLEAR_AGAIN'}, + {id: 'CRSEL', name: 'CRSEL', desc: 'CRSEL'}, + {id: 'EXSEL', name: 'EXSEL', desc: 'EXSEL'}, + + /* System & Media key 165-191(0xa5-bf) */ + {id: 'PWR ', name: 'Sys Power', desc: 'System Power'}, + {id: 'SLEP', name: 'Sys Sleep', desc: 'System Sleep'}, + {id: 'WAKE', name: 'Sys Wake', desc: 'System Wake'}, + {id: 'MUTE', name: 'Mute', desc: 'Audio Mute'}, + {id: 'VOLU', name: 'Vol Up', desc: 'Audio Vol Up'}, + {id: 'VOLD', name: 'Vol Down', desc: 'Audio Vol Down'}, + {id: 'MNXT', name: 'Next Track', desc: 'Next Track'}, + {id: 'MPRV', name: 'Prev Track', desc: 'Previous Track'}, + {id: 'MSTP', name: 'Stop', desc: 'Media Stop'}, + {id: 'MPLY', name: 'Play Pause', desc: 'Play Pause'}, + {id: 'MSEL', name: 'Select', desc: 'Media Select'}, + {id: 'EJCT', name: 'Eject', desc: 'Media Eject'}, + {id: 'MAIL', name: 'Mail', desc: 'Mail'}, + {id: 'CALC', name: 'Calc', desc: 'Calculator'}, + {id: 'MYCM', name: 'My Computer', desc: 'My Computer'}, + {id: 'WSCH', name: 'Web Search', desc: 'WWW Search'}, + {id: 'WHOM', name: 'Web Home', desc: 'WWW Home'}, + {id: 'WBAK', name: 'Web Back', desc: 'WWW Back'}, + {id: 'WFWD', name: 'Web Forward', desc: 'WWW Forward'}, + {id: 'WSTP', name: 'Web Stop', desc: 'WWW Stop'}, + {id: 'WREF', name: 'Web Refresh', desc: 'WWW Refresh'}, + {id: 'WFAV', name: 'Web Favorites', desc: 'WWW Favorites'}, + {id: 'RESERVED-187', name: 'RESERVED-187', desc: 'RESERVED-187'}, + {id: 'RESERVED-188', name: 'RESERVED-188', desc: 'RESERVED-188'}, + {id: 'RESERVED-189', name: 'RESERVED-189', desc: 'RESERVED-189'}, + {id: 'RESERVED-190', name: 'RESERVED-190', desc: 'RESERVED-190'}, + {id: 'RESERVED-191', name: 'RESERVED-191', desc: 'RESERVED-191'}, + + /* Fn key 192-223(0xc0-df) */ + {id: 'FN0 ', name: 'L1', desc: 'Change to Layer 1(Momentary) '}, + {id: 'FN1 ', name: 'L2', desc: 'Change to Layer 2(Momentary) '}, + {id: 'FN2 ', name: 'L3', desc: 'Change to Layer 3(Momentary) '}, + {id: 'FN3 ', name: 'L4', desc: 'Change to Layer 4(Momentary) '}, + {id: 'FN4 ', name: 'L5', desc: 'Change to Layer 5(Momentary) '}, + {id: 'FN5 ', name: 'L6', desc: 'Change to Layer 6(Momentary) '}, + {id: 'FN6 ', name: 'L7', desc: 'Change to Layer 7(Momentary) '}, + {id: 'FN7 ', name: 'T1', desc: 'Change to Layer 1(Toggle) '}, + {id: 'FN8 ', name: 'T2', desc: 'Change to Layer 2(Toggle) '}, + {id: 'FN9 ', name: 'T3', desc: 'Change to Layer 3(Toggle) '}, + {id: 'FN10', name: 'L1t', desc: 'Change to Layer 1(Momentary with Tap Toggle) '}, + {id: 'FN11', name: 'L2t', desc: 'Change to Layer 2(Momentary with Tap Toggle) '}, + {id: 'FN12', name: 'L3t', desc: 'Change to Layer 3(Momentary with Tap Toggle) '}, + /* Layer swith with Tap key */ + {id: 'FN13', name: 'F (L1)', desc: 'F with with L1(Tap key)'}, + {id: 'FN14', name: 'J (L2)', desc: 'J with with L2(Tap key)'}, + {id: 'FN15', name: 'Enter (L3)', desc: 'Enter with with L3(Tap key)'}, + {id: 'FN16', name: 'Space (L4)', desc: 'Space with L4(Tap key)'}, + {id: 'FN17', name: '; (L5)', desc: 'Semicolon with L5(Tap key)'}, + {id: 'FN18', name: '\'(L6)', desc: 'Quote with L6(Tap key)'}, + {id: 'FN19', name: '/ (L7)', desc: 'Slash with with L7(Tap key)'}, + /* Modifier on alpha key(Tap key, Dual-role key) */ + {id: 'FN20', name: 'Space (LShift)', desc: 'Space with Left Sfhit(Tap key)'}, + {id: 'FN21', name: 'Space (LCtrl)', desc: 'Space with Left Control(Tap key)'}, + {id: 'FN22', name: '\' (RCtrl)', desc: 'Quote with Right Control(Tap key)'}, + {id: 'FN23', name: 'Enter (RCtrl)', desc: 'Enter with Right Control(Tap key)'}, + /* Modifier with a key(Tap key, Dual-role key) */ + {id: 'FN24', name: 'LCtrl (Esc)', desc: 'Left Control with Escape'}, + {id: 'FN25', name: 'LCtrl (Backspace)', desc: 'Left Control with Backspace'}, + {id: 'FN26', name: 'LCtrl (OneShot)', desc: 'Left Control(OneShot Modifier)'}, + {id: 'FN27', name: 'LShift (Esc)', desc: 'Left Shift with Escape'}, + {id: 'FN28', name: 'LShift (Backspace)', desc: 'Left Shift with Backspace'}, + {id: 'FN29', name: 'LShift (OneShot)', desc: 'Left Shift(OneShot Modifier)'}, + {id: 'FN30', name: 'RShift (`)', desc: 'Right Shift with Grave(Tap key)'}, + {id: 'FN31', name: 'RShift (\\)', desc: 'Right Shift with Backslash(Tap key)'}, + +/* Standeard codes for 16bit Action 165-223(0xa5-df) + {id: 'RESERVED-165', name: 'RESERVED-165', desc: 'RESERVED-165'}, + {id: 'RESERVED-166', name: 'RESERVED-166', desc: 'RESERVED-166'}, + {id: 'RESERVED-167', name: 'RESERVED-167', desc: 'RESERVED-167'}, + {id: 'RESERVED-168', name: 'RESERVED-168', desc: 'RESERVED-168'}, + {id: 'RESERVED-169', name: 'RESERVED-169', desc: 'RESERVED-169'}, + {id: 'RESERVED-170', name: 'RESERVED-170', desc: 'RESERVED-170'}, + {id: 'RESERVED-171', name: 'RESERVED-171', desc: 'RESERVED-171'}, + {id: 'RESERVED-172', name: 'RESERVED-172', desc: 'RESERVED-172'}, + {id: 'RESERVED-173', name: 'RESERVED-173', desc: 'RESERVED-173'}, + {id: 'RESERVED-174', name: 'RESERVED-174', desc: 'RESERVED-174'}, + {id: 'RESERVED-175', name: 'RESERVED-175', desc: 'RESERVED-175'}, + {id: 'KP_00', name: 'KP_00', desc: 'KP_00'}, + {id: 'KP_000', name: 'KP_000', desc: 'KP_000'}, + {id: 'THOUSANDS_SEPARATOR', name: 'THOUSANDS_SEPARATOR', desc: 'THOUSANDS_SEPARATOR'}, + {id: 'DECIMAL_SEPARATOR', name: 'DECIMAL_SEPARATOR', desc: 'DECIMAL_SEPARATOR'}, + {id: 'CURRENCY_UNIT', name: 'CURRENCY_UNIT', desc: 'CURRENCY_UNIT'}, + {id: 'CURRENCY_SUB_UNIT', name: 'CURRENCY_SUB_UNIT', desc: 'CURRENCY_SUB_UNIT'}, + {id: 'KP_LPAREN', name: 'KP_LPAREN', desc: 'KP_LPAREN'}, + {id: 'KP_RPAREN', name: 'KP_RPAREN', desc: 'KP_RPAREN'}, + {id: 'KP_LCBRACKET', name: 'KP_LCBRACKET', desc: 'KP_LCBRACKET'}, + {id: 'KP_RCBRACKET', name: 'KP_RCBRACKET', desc: 'KP_RCBRACKET'}, + {id: 'KP_TAB', name: 'KP_TAB', desc: 'KP_TAB'}, + {id: 'KP_BSPACE', name: 'KP_BSPACE', desc: 'KP_BSPACE'}, + {id: 'KP_A', name: 'KP_A', desc: 'KP_A'}, + {id: 'KP_B', name: 'KP_B', desc: 'KP_B'}, + {id: 'KP_C', name: 'KP_C', desc: 'KP_C'}, + {id: 'KP_D', name: 'KP_D', desc: 'KP_D'}, + {id: 'KP_E', name: 'KP_E', desc: 'KP_E'}, + {id: 'KP_F', name: 'KP_F', desc: 'KP_F'}, + {id: 'KP_XOR', name: 'KP_XOR', desc: 'KP_XOR'}, + {id: 'KP_HAT', name: 'KP_HAT', desc: 'KP_HAT'}, + {id: 'KP_PERC', name: 'KP_PERC', desc: 'KP_PERC'}, + {id: 'KP_LT', name: 'KP_LT', desc: 'KP_LT'}, + {id: 'KP_GT', name: 'KP_GT', desc: 'KP_GT'}, + {id: 'KP_AND', name: 'KP_AND', desc: 'KP_AND'}, + {id: 'KP_LAZYAND', name: 'KP_LAZYAND', desc: 'KP_LAZYAND'}, + {id: 'KP_OR', name: 'KP_OR', desc: 'KP_OR'}, + {id: 'KP_LAZYOR', name: 'KP_LAZYOR', desc: 'KP_LAZYOR'}, + {id: 'KP_COLON', name: 'KP_COLON', desc: 'KP_COLON'}, + {id: 'KP_HASH', name: 'KP_HASH', desc: 'KP_HASH'}, + {id: 'KP_SPACE', name: 'KP_SPACE', desc: 'KP_SPACE'}, + {id: 'KP_ATMARK', name: 'KP_ATMARK', desc: 'KP_ATMARK'}, + {id: 'KP_EXCLAMATION', name: 'KP_EXCLAMATION', desc: 'KP_EXCLAMATION'}, + {id: 'KP_MEM_STORE', name: 'KP_MEM_STORE', desc: 'KP_MEM_STORE'}, + {id: 'KP_MEM_RECALL', name: 'KP_MEM_RECALL', desc: 'KP_MEM_RECALL'}, + {id: 'KP_MEM_CLEAR', name: 'KP_MEM_CLEAR', desc: 'KP_MEM_CLEAR'}, + {id: 'KP_MEM_ADD', name: 'KP_MEM_ADD', desc: 'KP_MEM_ADD'}, + {id: 'KP_MEM_SUB', name: 'KP_MEM_SUB', desc: 'KP_MEM_SUB'}, + {id: 'KP_MEM_MUL', name: 'KP_MEM_MUL', desc: 'KP_MEM_MUL'}, + {id: 'KP_MEM_DIV', name: 'KP_MEM_DIV', desc: 'KP_MEM_DIV'}, + {id: 'KP_PLUS_MINUS', name: 'KP_PLUS_MINUS', desc: 'KP_PLUS_MINUS'}, + {id: 'KP_CLEAR', name: 'KP_CLEAR', desc: 'KP_CLEAR'}, + {id: 'KP_CLEAR_ENTRY', name: 'KP_CLEAR_ENTRY', desc: 'KP_CLEAR_ENTRY'}, + {id: 'KP_BINARY', name: 'KP_BINARY', desc: 'KP_BINARY'}, + {id: 'KP_OCTAL', name: 'KP_OCTAL', desc: 'KP_OCTAL'}, + {id: 'KP_DECIMAL', name: 'KP_DECIMAL', desc: 'KP_DECIMAL'}, + {id: 'KP_HEXADECIMAL', name: 'KP_HEXADECIMAL', desc: 'KP_HEXADECIMAL'}, + {id: 'RESERVED-222', name: 'RESERVED-222', desc: 'RESERVED-222'}, + {id: 'RESERVED-223', name: 'RESERVED-223', desc: 'RESERVED-223'}, +*/ + + /* Modifier 224-231(0xe0-e7) */ + {id: 'LCTL', name: 'LCtrl', desc: 'Left Control'}, + {id: 'LSFT', name: 'LShift', desc: 'Left Shift'}, + {id: 'LALT', name: 'LAlt', desc: 'Left Alt(\u2325)'}, + {id: 'LGUI', name: 'LGui', desc: 'Left Windows(\u2318)'}, + {id: 'RCTL', name: 'RCtrl', desc: 'Right Control'}, + {id: 'RSFT', name: 'RShift', desc: 'Right Shift'}, + {id: 'RALT', name: 'RAlt', desc: 'Right Alt(\u2325)'}, + {id: 'RGUI', name: 'RGui', desc: 'Right Windows(\u2318)'}, + + /* Not used 232-239(0xe8-ef) */ + {id: 'RESERVED-232', name: 'RESERVED-232', desc: 'RESERVED-232'}, + {id: 'RESERVED-233', name: 'RESERVED-233', desc: 'RESERVED-233'}, + {id: 'RESERVED-234', name: 'RESERVED-234', desc: 'RESERVED-234'}, + {id: 'RESERVED-235', name: 'RESERVED-235', desc: 'RESERVED-235'}, + {id: 'RESERVED-236', name: 'RESERVED-236', desc: 'RESERVED-236'}, + {id: 'RESERVED-237', name: 'RESERVED-237', desc: 'RESERVED-237'}, + {id: 'RESERVED-238', name: 'RESERVED-238', desc: 'RESERVED-238'}, + {id: 'RESERVED-239', name: 'RESERVED-239', desc: 'RESERVED-239'}, + + /* Mousekey 240-255(0xf0-ff) */ + {id: 'MS_U', name: 'Mouse Up', desc: 'Mouse UP'}, + {id: 'MS_D', name: 'Mouse down', desc: 'Mouse Down'}, + {id: 'MS_L', name: 'Mouse left', desc: 'Mouse Left'}, + {id: 'MS_R', name: 'Mouse right', desc: 'Mouse Right'}, + {id: 'BTN1', name: 'Mouse Btn1', desc: 'Mouse Button1'}, + {id: 'BTN2', name: 'Mouse Btn2', desc: 'Mouse Button2'}, + {id: 'BTN3', name: 'Mouse Btn3', desc: 'Mouse Button3'}, + {id: 'BTN4', name: 'Mouse Btn4', desc: 'Mouse Button4'}, + {id: 'BTN5', name: 'Mouse Btn5', desc: 'Mouse Button5'}, + {id: 'WH_U', name: 'Wheel Up', desc: 'Wheel Up'}, + {id: 'WH_D', name: 'Wheel Down', desc: 'Wheel Down'}, + {id: 'WH_L', name: 'Wheel Left', desc: 'Wheel Left'}, + {id: 'WH_R', name: 'Wheel Right', desc: 'Wheel Right'}, + {id: 'ACL0', name: 'Mouse Slow', desc: 'Mouse Slow'}, + {id: 'ACL1', name: 'Mouse Medium', desc: 'Mouse Medium'}, + {id: 'ACL2', name: 'Mouse Fast', desc: 'Mouse Fast'}, +]; + diff --git a/editor/m0110/keymap_editor.css b/editor/m0110/keymap_editor.css new file mode 100644 index 00000000..bfa955a7 --- /dev/null +++ b/editor/m0110/keymap_editor.css @@ -0,0 +1,116 @@ +html * { + font-family:helvetica, arial, sans-serif; +} + +.key, .key-nc { + -moz-box-shadow:inset -8px -10px 0px -3px #ffffff; + -webkit-box-shadow:inset -8px -10px 0px -3px #ffffff; + box-shadow:inset -8px -10px 0px -3px #ffffff; + background-color:#ededed; + -moz-border-radius:6px; + -webkit-border-radius:6px; + border-radius:6px; + border:2px solid #dcdcdc; + display:inline-block; + float: left; + color:#777777; + font-family:helvetica, arial, sans-serif; + font-size:16px; + font-weight:bold; + text-decoration:none; + padding:4px 16px 16px 4px; + width: 25px; + height: 25px; + overflow: hidden; + margin: 0px 1px 1px 0px; + white-space: normal; +} +.key:hover { + background-color:#dfdfdf; +} +.key:active { + position:relative; + top:1px; +} +.key-editing { + background-color:#b4b4b4; + position:relative; + top:2px; +} +/* This imageless css button was generated by CSSButtonGenerator.com */ + +/* Key unit and pixel + * key unit: 1.00 1.25 1.50 1.75 2.00 + * px: 50 62.5 75 87.5 100 + * + * Key CSS Metrics + * +---------------------------+ + * | margin | + * | +-----------------------+ | + * | |border 2 | | + * | | +-------------------+ | | + * | | |padding 4 | | | + * | | | +--------------+ | | | + * |0|2|4|width x height|16|2|1| + * | | | +--------------+ | | | + * | | | 16 | | | + * | | +-------------------+ | | + * | | 2 | | + * | +-----------------------+ | + * | 1 | + * +---------------------------+ + * width/height:25 + (margin:0 + border:2 + padding:4 + padding:16 + border:2 + margin:1) = 50px + */ +.btn100 { width:25px; } /* 50 - 25 */ +.btn125 { width:37.5px; } /* 62.5 - 25 */ +.btn150 { width:50px; } /* 75 - 25 */ +.btn175 { width:62.5px; } /* 87.5 - 25 */ +.btn200 { width:75px; } /* 100 - 25 */ +.btn225 { width:87.5px; } /* 112.5 - 25 */ +.btn250 { width:100; } /* 125 - 25 */ +.btn275 { width:112.5px; } /* 137.5 - 25 */ +.btn600 { width:275px; } /* 300 - 25 */ +.btn625 { width:287.5px; } /* 312.5 - 25 */ +.btn700 { width:325px; } /* 350 - 25 */ +.btn750 { width:350px; } /* 375 - 25 */ + +.spc100 { width:25px; visibility:hidden; } +.spc125 { width:37.5px; visibility:hidden; } +.spc150 { width:50px; visibility:hidden; } +.spc175 { width:62.5px; visibility:hidden; } +.spc200 { width 75px; visibility:hidden; } + +.keyboard-row { + display: inline-block; +} + +.keyboard-outline { +} + +.keyboard-pane { + font-size: 14px; + font-weight:bold; +} + + + +.action { + font-size:16px; + font-weight:bold; + min-width: 30px; +} + +.keycode_tabs { + max-width: 750px; + overflow: auto; + font-size:14px; + font-weight:bold; +} + + + +/* http://www.w3schools.com/cssref/css3_pr_resize.asp */ +.resizable { + resize: both; + overflow: auto; +} diff --git a/editor/m0110/keymap_editor.js b/editor/m0110/keymap_editor.js new file mode 100644 index 00000000..2f56956d --- /dev/null +++ b/editor/m0110/keymap_editor.js @@ -0,0 +1,339 @@ +/* + * TMK keymap editor + */ +// key id under editing +var editing_key; +// layer under editing +var editing_layer = 0; + +// load keymap on keyboard key buttons +var load_keymap_on_keyobard = function(layer, keymap) { + for (var row in keymap) { + for (var col in keymap[row]) { + var code = keymap[row][col]; + var key = keycodes[code]; + // row and column takes range of 0-32(0-9a-v) + $("#key-" + parseInt(row).toString(32) + parseInt(col).toString(32)).text(key.name); + $("#key-" + parseInt(row).toString(32) + parseInt(col).toString(32)).attr({ title: key.desc }); + } + } +}; + +$(function() { + // Title + document.title = "TMK Keymap Editor for " + KEYBOARD_ID; + $("#page-title").text("TMK Keymap Editor for " + KEYBOARD_ID); + + /* + * load keymap from URL hash + */ + var decoded = decode_keymap(document.location.hash.substring(1)); + if (decoded != null) { + keymaps = decoded['keymaps']; + } + + + + /* + * Layer selector + */ + $("#layer_radio").buttonset(); + + // layer change + $(".layer").click(function(ev, ui) { + var layer = parseInt($(this).attr('id').match(/layer-(\d+)/)[1]); + editing_layer = layer; + load_keymap_on_keyobard(layer, keymaps[layer]); + }); + + + + /* + * Keyboard(key buttons) + */ + // load default keymap on startup + load_keymap_on_keyobard(0, keymaps[0]); + + // Select key button to edit + $(".key").click(function(ev, ui) { + editing_key = $(this).attr('id'); + + // grey-out key to indicate being under editing + $(".key").removeClass("key-editing"); + $(this).addClass("key-editing"); + }).focus(function(ev, ui) { + // select editing_key with tab key focus + $(this).click(); + }); + + + + /* + * Keycodes button tab + */ + $("#keycode_tabs").tabs({ + heightStyle: "auto", + }); + + // Keycodes: read name and description from code table + $(".action").each(function(index) { + // get code from code button id: code-[0x]CCCC where CCCC is dec or hex number + var code = parseInt($(this).attr('id').match(/code-((0x){0,1}[0-9a-fA-F]+)/)[1]); + $(this).text(keycodes[code].name); + $(this).attr({ title: keycodes[code].desc }); + //console.log(index + ": " + code + " " + keycodes[code].desc); + }); + + $(".action").click(function(ev,ui) { + console.log("action click"); + if (!editing_key) return; + + // get matrix position from key id: key-RC where R is row and C is column in "0-v"(radix 32) + var pos = editing_key.match(/key-([0-9a-v])([0-9a-v])/i); + if (!pos) return; + var row = parseInt(pos[1], 32), col = parseInt(pos[2], 32); + + // set text and tooltip to key button under editing + $("#" + editing_key).text($(this).text()); + $("#" + editing_key).attr({ title: $(this).attr('title'), }); + + // change keymap array + // get code from keycode button id: code-[0x]CC where CC is dec or hex number + var code = $(this).attr('id').match(/code-((0x){0,1}[0-9a-fA-F]+)/)[1]; + keymaps[editing_layer][row][col] = parseInt(code); + + // give focus on editing_key for next tab key operation + $("#" + editing_key).focus(); + }); + + + /* + * Share URL + */ + // Share URL + $("#keymap-share").click(function(ev, ui) { + var hash = encode_keymap({ keymaps: keymaps }); + $("#share-url").text(document.location.origin + document.location.pathname + "#" + hash); + }); + + // Shorten URL + $("#shorten-url").click(function(ev, ui) { + var hash = encode_keymap({ keymaps: keymaps }); + var editor_url = document.location.origin + document.location.pathname; + window.open("https://bitly.com/shorten/?url=" + encodeURIComponent(editor_url + "#" + hash)); + //window.open("http://tinyurl.com/create.php?url=" + encodeURIComponent(editor_url + "#" + hash)); + }); + + + // Hex Save + $("#keymap-download").click(function(ev, ui) { + var keymap_data = fn_actions.concat(keymaps); + var content = firmware_hex() + + hex_output(KEYMAP_START_ADDRESS, keymap_data) + + hex_eof(); + + // download hex file + var blob = new Blob([content], {type: "application/octet-stream"}); + var hex_link = $("#hex-download"); + hex_link.attr('href', window.URL.createObjectURL(blob)); + hex_link.attr('download', KEYBOARD_ID + "_firmware.hex"); + // jQuery click() doesn't work straight for 'a' element + // http://stackoverflow.com/questions/1694595/ + hex_link[0].click(); + }); + + + + /* + * Output options + */ + //$("#keymap-output").resizable(); // resizable textarea + + // Hex output + $("#keymap-hex-generate").click(function(ev, ui) { + var keymap_data = fn_actions.concat(keymaps); + $("#keymap-output").text(hex_output(KEYMAP_START_ADDRESS, keymap_data)); + }); + + // C source output + $("#keymap-source-generate").click(function(ev, ui) { + $("#keymap-output").text(source_output(keymaps)); + }); + + // JSON output + //$("#keymap-json-generate").css('display', 'none'); // hide + $("#keymap-json-generate").click(function(ev, ui) { + var keymap_output; + //keymap_output = JSON.stringify(keymaps, null, 4); + keymap_output = JSON.stringify({ keymaps: keymaps }); + $("#keymap-output").text(keymap_output); + }); + + // encode keymap + $("#keymap-encode").click(function(ev, ui) { + var keymap_output = encode_keymap({ keymaps: keymaps }); + $("#keymap-output").text(keymap_output); + }); + + // decode keymap + $("#keymap-decode").click(function(ev, ui) { + var hash = $("#keymap-output").text(); + var keymap_output = decode_keymap(hash); + $("#keymap-output").text(JSON.stringify(keymap_output)); + }); + + + + // lost keymap under edting when leave the page + /* TODO: Needed when released + $(window).bind('beforeunload', function(){ + return 'CAUTION: You will lost your change.'; + }); + */ +}); + + + +/* + * Share URL + */ +function encode_keymap(keymap) +{ + return window.btoa(JSON.stringify(keymap)); +} + +function decode_keymap(hash) +{ + try { + return JSON.parse(window.atob(hash)); + } catch (err) { + return null; + } +} + +/* + * Hex file + */ +function hexstr2(b) +{ + return ('0'+ b.toString(16)).substr(-2).toUpperCase(); +} + +function hex_line(address, record_type, data) +{ + var sum = 0; + sum += data.length; + sum += (address >> 8); + sum += (address & 0xff); + sum += record_type; + + var line = ''; + line += ':'; + line += hexstr2(data.length); + line += hexstr2(address >> 8); + line += hexstr2(address & 0xff); + line += hexstr2(record_type); + for (var i = 0; i < data.length; i++) { + sum = (sum + data[i]); + line += hexstr2(data[i]); + } + line += hexstr2((~sum + 1)&0xff); // Checksum + line +="\r\n"; + return line; +} + +function hex_eof() +{ + return ":00000001FF\r\n"; +} + +function hex_output(address, data) { + var output = ''; + var line = []; + + // TODO: refine: flatten data into one dimension array + [].concat.apply([], [].concat.apply([], data)).forEach(function(e) { + line.push(e); + if (line.length == 16) { + output += hex_line(address, 0x00, line); + address += 16; + line.length = 0; // clear array + } + }); + if (line.length > 0) { + output += hex_line(address, 0x00, line); + } + return output; +} + + + +/* + * Source file + */ +function source_output(keymaps) { + var output = ''; + // fn actions + output += "/*\n"; + output += " * Keymap for " + KEYBOARD_ID + "\n";; + output += " * generated by tmk keymap editor\n"; + output += " */\n"; + output += "#include \n"; + output += "#include \n"; + output += "#include \n"; + output += "#include \"keycode.h\"\n"; + output += "#include \"action.h\"\n"; + output += "#include \"action_macro.h\"\n"; + output += "#include \"keymap.h\"\n\n"; + + output += "#ifdef KEYMAP_SECTION_ENABLE\n"; + output += "const uint16_t fn_actions[] __attribute__ ((section (\".keymap.fn_actions\"))) = {\n"; + output += "#else\n"; + output += "static const uint16_t fn_actions[] PROGMEM = {\n"; + output += "#endif\n"; + output += fn_actions_source; + output += "};\n\n"; + + // keymaps + output += "#ifdef KEYMAP_SECTION_ENABLE\n"; + output += "const uint8_t keymaps[]["; + output += keymaps[0].length; // row + output += "]["; + output += keymaps[0][0].length; // col + output += "] __attribute__ ((section (\".keymap.keymaps\"))) = {\n"; + output += "#else\n"; + output += "static const uint8_t keymaps[]["; + output += keymaps[0].length; // row + output += "]["; + output += keymaps[0][0].length; // col + output += "] PROGMEM = {\n"; + output += "#endif\n"; + for (var i in keymaps) { + output += " {\n"; + for (var j in keymaps[i]) { + output += " { "; + for (var k in keymaps[i][j]) { + output += '0x' + ('0' + keymaps[i][j][k].toString(16)).substr(-2); + output += ','; + } + output += " },\n"; + } + output += " },\n"; + } + output += "};\n"; + output += "\n"; + output += "/* translates key to keycode */\n"; + output += "uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)\n"; + output += "{\n"; + output += " return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);\n"; + output += "}\n"; + output += "\n"; + output += "/* translates Fn index to action */\n"; + output += "action_t keymap_fn_to_action(uint8_t keycode)\n"; + output += "{\n"; + output += " action_t action;\n"; + output += " action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);\n"; + output += " return action;\n"; + output += "}\n"; + return output; +}; diff --git a/editor/m0110/m0110.html b/editor/m0110/m0110.html new file mode 100644 index 00000000..e4a061a2 --- /dev/null +++ b/editor/m0110/m0110.html @@ -0,0 +1,548 @@ + + + TMK Keymap Editor + + + + + + + + + + + +

TMK Keymap Editor

+ +

M0110 + M0120

+
+
+
+ + + + + + + + +
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
*1
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
*2
+
+ +
+
+
+
+
+ +
+
+ + +

Keycodes

+
+ + + +
+ + +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + +
+

+ See this for detailed description of keymap.
+ See this for TRNS.
+

+
+ + +
+ + +
+
+ + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + +
+
+ Keypad:
+ + + + + + + + + + +
+ + + + + + + + + + +
+
+ Japanese:
+ + + + + +
+
+ Korean:
+ + +
+
+ + Mechanical Locking key support:
+ + + + + + + + + +
+ + +
+ + +
+
+ + System:
+ + + +
+ + Volume:
+ + + +
+ + Media:
+ + + + + + +
+ + Application:
+ + + +
+ Web:
+ + + + + + + +
+
+ + + + Mouse key:
+ + + + +
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ + +
+ + +
+
+ + + + Layer Switch Momentary:
+ + + + + + + +
+ Layer Switch Toggle:
+ + + +
+ Layer Switch with Tap Toggle:
+ + + +
+ Layer switch with Tap key:
+ + + + + + + +
+
+ Modifier with special function:
+ + + + +
+ + + +
+ + + +
+ + +
+

+ See this for detail of Layer Switching.
+ See this for Tap key(Dual-role Modifier).
+ See this for OneShot Modifier.
+

+
+
+ +

Firmware Hex File Download:

+ + + +

Share URL:

+ +
+ + + +

Keymap Output(for debug):

+ +
+ + + + + + + + diff --git a/editor/m0110/m0110.js b/editor/m0110/m0110.js new file mode 100644 index 00000000..cd97134b --- /dev/null +++ b/editor/m0110/m0110.js @@ -0,0 +1,1794 @@ +/* + * M0110 keymap + */ +KEYBOARD_ID = "m0110"; + +/* for ATMega32U4 with 32KB flash */ +KEYMAP_START_ADDRESS = 0x6800; + +/* Key matrix: Row:14 * Col:8 + * COL 0 1 2 3 4 5 6 7 + * ROW,--------------------------------------------------------------- + * 0| 00 01 02 03 04 05 06 07 + * 1| 08 09 0A 0B 0C 0D 0E 0F + * 2| 10 11 12 13 14 15 16 17 + * 3| 18 19 1A 1B 1C 1D 1E 1F + * 4| 20 21 22 23 24 25 26 27 + * 5| 28 29 2A 2B 2C 2D 2E 2F + * 6| 30 31 32 33 34 35 36 37 + * 7| 38 39 3A 3B 3C 3D 3E 3F + * 8| 40 41 42 43 44 45 46 47 + * 9| 48 49 4A 4B 4C 4D 4E 4F + * A| 50 51 52 53 54 55 56 57 + * B| 58 59 5A 5B 5C 5D 5E 5F + * C| 60 61 62 63 64 65 66 67 + * D| 68 69 6A 6B 6C 6D 6E 6F + * + * M0110 M0120 + * ,---------------------------------------------------------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| -|Lft|Rgt| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9|Up | + * |---------------------------------------------------------| |---------------| + * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6|Dn | + * |---------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| ,| /| | | 1| 2| 3| | + * `---------------------------------------------------------' |-----------|Ent| + * |Opt|Mac | Space |Enter|Opt| | 0| .| | + * `------------------------------------------------' `---------------' + * ,---------------------------------------------------------. ,---------------. + * | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 4E| 46| 42| + * |---------------------------------------------------------| |---------------| + * | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4D| + * |---------------------------------------------------------| |---------------| + * | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 48| + * |---------------------------------------------------------| |---------------| + * | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| | 53| 54| 55| | + * `---------------------------------------------------------' |-----------| 4C| + * | 3A| 37| 31 | 34| 3A| | 52| 41| | + * `------------------------------------------------' `---------------' + * + * M0110A + * ,---------------------------------------------------------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Bcksp| |Clr| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| + * |-----------------------------------------------------' | |---------------| + * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| | + * |---------------------------------------------------------' |-----------|Ent| + * |Optio|Mac | Space | \|Lft|Rgt|Dn | | 0| .| | + * `---------------------------------------------------------' `---------------' + * ,---------------------------------------------------------. ,---------------. + * | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62| + * |---------------------------------------------------------| |---------------| + * | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| | | 59| 5B| 5C| 4E| + * |-----------------------------------------------------' | |---------------| + * | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 66| + * |---------------------------------------------------------| |---------------| + * | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| 4D| | 53| 54| 55| | + * |---------------------------------------------------------' |-----------| 4C| + * | 3A| 37| 31 | 2A| 46| 42| 48| | 52| 41| | + * `---------------------------------------------------------' `---------------' + */ +/* returns a no_action keymap */ +function no_map() +{ + return [ + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0], + ]; +} + +/* returns a transparent keymap */ +function transparent_map() +{ + return [ + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1], + ]; +} + +/* default keymaps(8 layers) */ +keymaps = [ + [ + [0x04,0x16,0x07,0x09,0x0B,0x0A,0x1D,0x1B,], + [0x06,0x19,0x00,0x05,0x14,0x1A,0x08,0x15,], + [0x1C,0x17,0x1E,0x1F,0x20,0x21,0x23,0x22,], + [0x2E,0x26,0x24,0x2D,0x25,0x27,0x30,0x12,], + [0x18,0x2F,0x0C,0x13,0xCF,0x0F,0x0D,0x34,], + [0x0E,0x33,0xDF,0x36,0x38,0x11,0x10,0x37,], + [0x2B,0xD0,0x35,0x2A,0xE2,0x00,0x00,0xE3,], + [0xE1,0x82,0xE0,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x63,0x4F,0x00,0x00,0x00,0x50,0x9C,], + [0x51,0x00,0x00,0x00,0x58,0x52,0x56,0x00,], + [0x00,0x00,0x62,0x59,0x5A,0x5B,0x5C,0x5D,], + [0x5E,0x5F,0x00,0x60,0x61,0x00,0x00,0x00,], + [0x00,0x00,0x55,0x00,0x00,0x00,0x57,0x00,], + [0x2E,0x00,0x00,0x00,0x00,0x54,0x00,0x00,], + ], + [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + ], + [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + ], + [ + [0x50,0x51,0x4F,0x00,0x00,0x00,0x4D,0x00,], + [0x4E,0x00,0x00,0x00,0x4A,0x52,0x4B,0x00,], + [0x00,0x00,0x3A,0x3B,0x3C,0x3D,0x3F,0x3E,], + [0x45,0x42,0x40,0x44,0x41,0x43,0x49,0x47,], + [0x00,0x52,0x46,0x48,0xCF,0x4B,0x00,0x4F,], + [0x4A,0x50,0xDF,0x4D,0x51,0x00,0x00,0x4E,], + [0x39,0xD0,0x29,0x4C,0xE2,0x00,0x00,0xE3,], + [0xE1,0x82,0xE0,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x63,0x4D,0x00,0x00,0x00,0x4A,0x53,], + [0x4E,0x00,0x00,0x00,0x58,0x4B,0x56,0x00,], + [0x00,0x00,0x62,0x59,0x5A,0x5B,0x5C,0x5D,], + [0x5E,0x5F,0x00,0x60,0x61,0x00,0x00,0x00,], + [0x00,0x00,0x55,0x00,0x00,0x00,0x57,0x00,], + [0x2E,0x00,0x00,0x00,0x00,0x54,0x00,0x00,], + ], + [ + [0x50,0x51,0x4F,0x00,0x00,0x00,0x4D,0x00,], + [0x4E,0x00,0x00,0x00,0x4A,0x52,0x4B,0x00,], + [0x00,0x00,0x3A,0x3B,0x3C,0x3D,0x3F,0x3E,], + [0x45,0x42,0x40,0x44,0x41,0x43,0x49,0x47,], + [0x00,0x52,0x46,0x48,0xCF,0x4B,0x00,0x4F,], + [0x4A,0x50,0xDF,0x4D,0x51,0x00,0x00,0x4E,], + [0x39,0xD0,0x29,0x4C,0xE2,0x00,0x00,0xE3,], + [0xE1,0x82,0xE0,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x63,0x4D,0x00,0x00,0x00,0x4A,0x53,], + [0x4E,0x00,0x00,0x00,0x58,0x4B,0x56,0x00,], + [0x00,0x00,0x62,0x59,0x5A,0x5B,0x5C,0x5D,], + [0x5E,0x5F,0x00,0x60,0x61,0x00,0x00,0x00,], + [0x00,0x00,0x55,0x00,0x00,0x00,0x57,0x00,], + [0x2E,0x00,0x00,0x00,0x00,0x54,0x00,0x00,], + ], + [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + ], + [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + ], + [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,], + ], +]; + +/* Fn actions(32*2) */ +fn_actions = [ + 0xF1,0xA1,0xF1,0xA2,0xF1,0xA3,0xF1,0xA4, + 0xF1,0xA5,0xF1,0xA6,0xF1,0xA7,0x02,0x8A, + 0x04,0x8A,0x08,0x8A,0xF0,0xA1,0xF0,0xA2, + 0xF0,0xA3,0x09,0xA1,0x0D,0xA2,0x28,0xA3, + 0x2C,0xA4,0x33,0xA5,0x34,0xA6,0x38,0xA7, + 0x2C,0x22,0x2C,0x21,0x34,0x31,0x28,0x31, + 0x29,0x21,0x2A,0x21,0x00,0x21,0x29,0x22, + 0x2A,0x22,0x00,0x22,0x35,0x32,0x31,0x32, +]; + +/* Fn actions source */ +fn_actions_source = "\ + [0] = ACTION_LAYER_MOMENTARY(1),\n\ + [1] = ACTION_LAYER_MOMENTARY(2),\n\ + [2] = ACTION_LAYER_MOMENTARY(3),\n\ + [3] = ACTION_LAYER_MOMENTARY(4),\n\ + [4] = ACTION_LAYER_MOMENTARY(5),\n\ + [5] = ACTION_LAYER_MOMENTARY(6),\n\ + [6] = ACTION_LAYER_MOMENTARY(7),\n\ + [7] = ACTION_LAYER_TOGGLE(1),\n\ + [8] = ACTION_LAYER_TOGGLE(2),\n\ + [9] = ACTION_LAYER_TOGGLE(3),\n\ + [10] = ACTION_LAYER_TAP_TOGGLE(1),\n\ + [11] = ACTION_LAYER_TAP_TOGGLE(2),\n\ + [12] = ACTION_LAYER_TAP_TOGGLE(3),\n\ + [13] = ACTION_LAYER_TAP_KEY(1, KC_F),\n\ + [14] = ACTION_LAYER_TAP_KEY(2, KC_J),\n\ + [15] = ACTION_LAYER_TAP_KEY(3, KC_ENTER),\n\ + [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE),\n\ + [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON),\n\ + [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE),\n\ + [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH),\n\ + [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE),\n\ + [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE),\n\ + [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE),\n\ + [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER),\n\ + [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC),\n\ + [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE),\n\ + [26] = ACTION_MODS_ONESHOT(MOD_LCTL),\n\ + [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC),\n\ + [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE),\n\ + [29] = ACTION_MODS_ONESHOT(MOD_LSFT),\n\ + [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRAVE),\n\ + [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSLASH),\n\ +"; + +/* Override Fn key setting */ +keycodes[223] = {id: 'FN31', name: 'LAlt (\\)', desc: 'Left Alt with Backslash(Tap key)'}; + + +/* hex file whthout keymap region and eof */ +function firmware_hex() +{ + /* HHKB firmware: v4.0-162-g52a7398 */ + /* Flash Map of ATMega32U4(32KB) + * +------------+ 0x0000 + * | .vectors | 0xac (43vectors * 4bytes) + * | .progmem | PROGMEM variables and PSTR + * | .init0-9 | + * | .text | code + * | .fini9-0 | + * | | > text region + * |------------| _etext + * | .data | + * | .bss | + * | .noinit | + * | | > data region + * |------------| 0x6800 + * | .keymap | > keymap region(2KB) + * |------------| 0x7000 + * | bootloader | 4KB + * +------------+ 0x7FFF + */ + // TODO: read hex file directly from remote URL + return "\ +:100000000C94F7060C943E070C943E070C943E07A4\r\n\ +:100010000C943E070C943E070C943E070C943E074C\r\n\ +:100020000C943E070C943E070C94C50E0C94A40F40\r\n\ +:100030000C94E31E0C943E070C943E070C943E0770\r\n\ +:100040000C943E070C943E070C943E070C943E071C\r\n\ +:100050000C943E070C94601E0C943E070C943E07D3\r\n\ +:100060000C943E070C943E070C943E070C943E07FC\r\n\ +:100070000C943E070C943E070C943E070C943E07EC\r\n\ +:100080000C943E070C943E070C943E070C943E07DC\r\n\ +:100090000C943E070C943E070C943E070C943E07CC\r\n\ +:1000A0000C943E070C943E070C943E070A00253042\r\n\ +:1000B0003862003A200025303258000A722F63203F\r\n\ +:1000C00030313233343536370A005D0A002530329C\r\n\ +:1000D00058005B002831290A002832290A002833F9\r\n\ +:1000E000290A002834290A00200025303258000A45\r\n\ +:1000F0000025303258006D303131305F72656376E3\r\n\ +:10010000206572723A20000A0025303258006D30A6\r\n\ +:100110003131305F73656E64206572723A20004B36\r\n\ +:100120006579626F6172642073746172742E0A0063\r\n\ +:1001300055534220636F6E666967757265642E0A57\r\n\ +:100140000005010906A101050719E029E7150025A9\r\n\ +:10015000019508750181029501750881010508194D\r\n\ +:100160000129059505750191029501750391010518\r\n\ +:1001700007190029FF150025FF950675088100C0A5\r\n\ +:1001800005010902A1010901A100050919012905BB\r\n\ +:100190001500250195057501810295017503810101\r\n\ +:1001A0000501093009311581257F95027508810601\r\n\ +:1001B00009381581257F950175088106050C0A38D7\r\n\ +:1001C000021581257F950175088106C0C0050109CA\r\n\ +:1001D00080A101850216010026B7001A01002AB786\r\n\ +:1001E00000751095018100C0050C0901A10185036E\r\n\ +:1001F000160100269C021A01002A9C027510950126\r\n\ +:100200008100C00631FF0974A1010975150025FFA1\r\n\ +:100210009520750881020976150025FF952075083F\r\n\ +:100220009102C01201100100000008EDFE10010152\r\n\ +:10023000010102000109027400040100A032090456\r\n\ +:1002400000000103010100092111010001223F000A\r\n\ +:1002500007058103080001090401000103010200F0\r\n\ +:10026000092111010001224D000705820308000148\r\n\ +:10027000090402000103000000092111010001220C\r\n\ +:100280003600070583030800010904030002030088\r\n\ +:10029000000009211101000122200007058403202C\r\n\ +:1002A000000107050503200001040309040E03747F\r\n\ +:1002B000002E006D002E006B002E00000032034D5A\r\n\ +:1002C00000300031003100300020006B0065007903\r\n\ +:1002D0000062006F00610072006400200063006F24\r\n\ +:1002E000006E007600650072007400650072000008\r\n\ +:1002F000000A002530325820006B6579626F617208\r\n\ +:10030000645F7265706F72743A20000A00253032A3\r\n\ +:1003100058006B6579626F6172645F7365745F6CBE\r\n\ +:1003200065643A2000646F6E652E0A00626F6F6725\r\n\ +:100330006D61676963207363616E3A202E2E2E20F3\r\n\ +:1003400000290A002575002F002575005D2800256D\r\n\ +:10035000640020002564002000256400200025643E\r\n\ +:10036000007C0025303258006D6F7573656B6579C0\r\n\ +:10037000205B62746E7C782079207620685D28721C\r\n\ +:1003800065702F61636C293A205B003F00686F73D2\r\n\ +:10039000745F6B6579626F6172645F6C656473280A\r\n\ +:1003A000293A2025580A000A0A2D2D2D2D2D2053DB\r\n\ +:1003B0007461747573202D2D2D2D2D0A0074696DB7\r\n\ +:1003C00065725F636F756E743A202530346C580A1D\r\n\ +:1003D000004743433A20342E352E33204156522DC8\r\n\ +:1003E0004C4942433A20312E372E31204156525F3C\r\n\ +:1003F000415243483A20617672350A004F505449C1\r\n\ +:100400004F4E533A204C55464120424F4F544D4198\r\n\ +:10041000474943204D4F5553454B45592045585466\r\n\ +:1004200052414B455920434F4E534F4C4520434F6B\r\n\ +:100430004D4D414E44204B45594D41505F5345432E\r\n\ +:1004400054494F4E20343039360A004255494C4405\r\n\ +:100450003A2076342E302D3137372D6737643639D0\r\n\ +:100460003263342D6469727479202830303A333520\r\n\ +:100470003A333620536570203232203230313329FE\r\n\ +:100480000A005649443A2030784645454428742E9F\r\n\ +:100490006D2E6B2E29205049443A2030783031316E\r\n\ +:1004A00030284D30313130206B6579626F61726474\r\n\ +:1004B00020636F6E76657274657229205645523AD4\r\n\ +:1004C000203078303130310A00444553433A2063BC\r\n\ +:1004D0006F6E76657274204D30313130206B6579E6\r\n\ +:1004E000626F61726420746F205553420A000A0AD9\r\n\ +:1004F0002D2D2D2D2D2056657273696F6E202D2D9B\r\n\ +:100500002D2D2D0A000A44454255473A206D6F753E\r\n\ +:1005100073652064697361626C65642E0A000A4425\r\n\ +:10052000454255473A206D6F75736520656E61626F\r\n\ +:100530006C65642E0A000A44454255473A206B65B3\r\n\ +:1005400079626F6172642064697361626C65642EA4\r\n\ +:100550000A000A44454255473A206B6579626F614B\r\n\ +:10056000726420656E61626C65642E0A000A4445FF\r\n\ +:100570004255473A206D61747269782064697361ED\r\n\ +:10058000626C65642E0A000A44454255473A206D64\r\n\ +:10059000617472697820656E61626C65642E0A0010\r\n\ +:1005A0000A44454255473A20656E61626C65642E87\r\n\ +:1005B0000A000A44454255473A2064697361626CF7\r\n\ +:1005C00065642E0A006E6F7420737570706F72749C\r\n\ +:1005D00065642E0A000A0A4A756D7020746F2062E5\r\n\ +:1005E0006F6F746C6F616465722E2E2E2000433E17\r\n\ +:1005F00020000A456E74657220436F6E736F6C65E0\r\n\ +:10060000204D6F64650A00556E6C6F636B65642ED8\r\n\ +:100610000A004C6F636B65642E0A006565636F6E3C\r\n\ +:100620006669673A0A000A002575002E73776170C3\r\n\ +:100630005F6261636B736C6173685F6261636B734C\r\n\ +:10064000706163653A20000A002575002E7377619A\r\n\ +:10065000705F67726176655F6573633A20000A00B8\r\n\ +:100660002575002E6E6F5F6775693A20000A0025B8\r\n\ +:1006700075002E737761705F72616C745F7267755D\r\n\ +:10068000693A20000A002575002E737761705F6C4F\r\n\ +:10069000616C745F6C6775693A20000A002575000B\r\n\ +:1006A0002E636170736C6F636B5F746F5F636F6EEB\r\n\ +:1006B00074726F6C3A20000A002575002E73776102\r\n\ +:1006C000705F636F6E74726F6C5F636170736C6F79\r\n\ +:1006D000636B3A20000A0025303258006B65796D53\r\n\ +:1006E00061705F636F6E6669672E7261773A200092\r\n\ +:1006F0000A002575002E6D6F7573653A20000A009B\r\n\ +:100700002575002E6B6579626F6172643A20000A6C\r\n\ +:10071000002575002E6D61747269783A20000A0018\r\n\ +:100720002575002E656E61626C653A20000A002511\r\n\ +:100730003032580064656275675F636F6E66696723\r\n\ +:100740002E7261773A20000A0025750064656661A3\r\n\ +:10075000756C745F6C617965723A200050617573D5\r\n\ +:100760003A096A756D7020746F20626F6F746C6FD8\r\n\ +:10077000616465720A00436170733A094C6F636B80\r\n\ +:10078000204B6579626F617264284368696C6420EC\r\n\ +:1007900050726F6F66290A00505363723A09706F86\r\n\ +:1007A00077657220646F776E2F72656D6F74652048\r\n\ +:1007B00077616B652D75700A00342F46343A0973E2\r\n\ +:1007C000776974636820746F204C61796572342096\r\n\ +:1007D0000A00332F46333A097377697463682074CB\r\n\ +:1007E0006F204C6179657233200A00322F46323A0D\r\n\ +:1007F0000973776974636820746F204C617965723E\r\n\ +:1008000032200A00312F46313A09737769746368E0\r\n\ +:1008100020746F204C6179657231200A00302F46B8\r\n\ +:1008200031303A0973776974636820746F204C61C2\r\n\ +:1008300079657230200A00653A097072696E742019\r\n\ +:10084000656570726F6D20636F6E6669670A00730D\r\n\ +:100850003A097072696E74207374617475730A005A\r\n\ +:10086000743A097072696E742074696D65722063E0\r\n\ +:100870006F756E740A00763A097072696E7420643E\r\n\ +:1008800065766963652076657273696F6E202620D0\r\n\ +:10089000696E666F0A006D3A09746F67676C652050\r\n\ +:1008A0006D6F7573652064656275670A006B3A0940\r\n\ +:1008B000746F67676C65206B6579626F6172642025\r\n\ +:1008C00064656275670A00783A09746F67676C65DA\r\n\ +:1008D000206D61747269782064656275670A0064CE\r\n\ +:1008E0003A09746F67676C65206465627567206597\r\n\ +:1008F0006E61626C650A00633A09656E7465722008\r\n\ +:10090000636F6E736F6C65206D6F64650A000A0A11\r\n\ +:100910002D2D2D2D2D20436F6D6D616E642048654A\r\n\ +:100920006C70202D2D2D2D2D0A006D3A096D6F75DF\r\n\ +:1009300073656B65790A004553432F713A097175E8\r\n\ +:1009400069740A000A0A2D2D2D2D2D20436F6E7318\r\n\ +:100950006F6C652048656C70202D2D2D2D2D0A00A3\r\n\ +:100960000A0025750020746F2000257500737769D3\r\n\ +:100970007463685F64656661756C745F6C617965EA\r\n\ +:10098000723A2000433E20003F004D303E000A45B1\r\n\ +:100990006E746572204D6F7573656B657920436F5A\r\n\ +:1009A0006E736F6C650A000A5175697420436F6E2F\r\n\ +:1009B000736F6C65204D6F64650A00536565206830\r\n\ +:1009C0007474703A2F2F656E2E77696B6970656449\r\n\ +:1009D00069612E6F72672F77696B692F4D6F757321\r\n\ +:1009E000655F6B6579730A000A002575002C207716\r\n\ +:1009F0006865656C3D0025750077686572652064E3\r\n\ +:100A0000656C74613A20637572736F723D000A738E\r\n\ +:100A100070656564203D2064656C7461202A206DDA\r\n\ +:100A200061785F7370656564202A2028726570653F\r\n\ +:100A30006174202F2074696D655F746F5F6D6178DC\r\n\ +:100A4000290A007067646F776E3A0964656372659E\r\n\ +:100A5000617365207072616D6574657273282D31E4\r\n\ +:100A600030290A00706775703A09696E63726561B2\r\n\ +:100A70007365207072616D6574657273282B3130F7\r\n\ +:100A8000290A00646F776E3A096465637265617361\r\n\ +:100A900065207072616D6574657273282D31290A45\r\n\ +:100AA0000075703A09696E637265617365207072D2\r\n\ +:100AB000616D6574657273282B31290A00643A09E7\r\n\ +:100AC0007365742064656661756C742076616C75FD\r\n\ +:100AD00065730A00703A097072696E7420707261F1\r\n\ +:100AE0006D65746572730A00363A0973656C6563E7\r\n\ +:100AF00074206D6B5F776865656C5F74696D655FA9\r\n\ +:100B0000746F5F6D61780A00353A0973656C6563CF\r\n\ +:100B100074206D6B5F776865656C5F6D61785F737E\r\n\ +:100B2000706565640A00343A0973656C6563742006\r\n\ +:100B30006D6B5F74696D655F746F5F6D61780A00DE\r\n\ +:100B4000333A0973656C656374206D6B5F6D617812\r\n\ +:100B50005F73706565640A00323A0973656C65639A\r\n\ +:100B600074206D6B5F696E74657276616C286D734D\r\n\ +:100B7000290A00313A0973656C656374206D6B5FF7\r\n\ +:100B800064656C6179282A31306D73290A004553F8\r\n\ +:100B9000432F713A09717569740A000A0A2D2D2DC7\r\n\ +:100BA0002D2D204D6F7573656B65792050617261D5\r\n\ +:100BB0006D65746572732048656C70202D2D2D2D28\r\n\ +:100BC0002D0A003E20002575004D003F007365741E\r\n\ +:100BD0002064656661756C742076616C7565732E32\r\n\ +:100BE0000A000A0025750073656C656374656420EE\r\n\ +:100BF000706172616D657465723A2000433E200039\r\n\ +:100C00000A51756974204D6F7573656B6579204362\r\n\ +:100C10006F6E736F6C650A000A00257500363A2006\r\n\ +:100C20006D6B5F776865656C5F74696D655F746F28\r\n\ +:100C30005F6D61783A20000A00257500353A206D15\r\n\ +:100C40006B5F776865656C5F6D61785F7370656514\r\n\ +:100C5000643A20000A00257500343A206D6B5F74F9\r\n\ +:100C6000696D655F746F5F6D61783A20000A0025D9\r\n\ +:100C70007500333A206D6B5F6D61785F73706565E9\r\n\ +:100C8000643A20000A00257500323A206D6B5F69D6\r\n\ +:100C90006E74657276616C286D73293A20000A00C3\r\n\ +:100CA000257500313A206D6B5F64656C6179282A87\r\n\ +:100CB00031306D73293A20000A0A2D2D2D2D2D205B\r\n\ +:100CC0004D6F7573656B657920506172616D6574E8\r\n\ +:100CD000657273202D2D2D2D2D0A000A002575001B\r\n\ +:100CE0006D6B5F776865656C5F74696D655F746F68\r\n\ +:100CF0005F6D6178203D20000A002575006D6B5FF7\r\n\ +:100D0000776865656C5F6D61785F73706565642099\r\n\ +:100D10003D20000A002575006D6B5F74696D655F8D\r\n\ +:100D2000746F5F6D6178203D20000A002575006DAD\r\n\ +:100D30006B5F6D61785F7370656564203D20000AAC\r\n\ +:100D4000002575006D6B5F696E74657276616C204D\r\n\ +:100D50003D20000A002575006D6B5F64656C61794C\r\n\ +:100D6000203D20000A002575006D6B5F7768656582\r\n\ +:100D70006C5F74696D655F746F5F6D6178203D2095\r\n\ +:100D8000000A002575006D6B5F776865656C5F6DA7\r\n\ +:100D900061785F7370656564203D20000A002575E9\r\n\ +:100DA000006D6B5F74696D655F746F5F6D61782056\r\n\ +:100DB0003D20000A002575006D6B5F6D61785F73E3\r\n\ +:100DC00070656564203D20000A002575006D6B5F2D\r\n\ +:100DD000696E74657276616C203D20000A0025758D\r\n\ +:100DE000006D6B5F64656C6179203D20000011240B\r\n\ +:100DF0001FBECFEFDAE0DEBFCDBF04B603FE27C0D3\r\n\ +:100E00008091D7019091D801A091D901B091DA01D8\r\n\ +:100E1000873020EB920727E0A20720EBB207B9F456\r\n\ +:100E20001092D7011092D8011092D9011092DA01D4\r\n\ +:100E300014BE84B7877F84BF88E10FB6F89480938F\r\n\ +:100E40006000109260000FBEE0E0F8E3099511E049\r\n\ +:100E5000A0E0B1E0EAE6FBE502C005900D92A63302\r\n\ +:100E6000B107D9F711E0A6E3B1E001C01D92A73D9B\r\n\ +:100E7000B107E1F70E94E30C0C94B32D0C94000031\r\n\ +:100E8000FF93EF93E091BC01F091BD01309709F021\r\n\ +:100E90000995EF91FF910895FC018591803011F043\r\n\ +:100EA000EFDFFBCF0895FF27E0E230E247FF0CC001\r\n\ +:100EB000419597FF09C0EDE26095709580959095FA\r\n\ +:100EC000611D711D811D911D27FF02C0219530E319\r\n\ +:100ED00050E2AA27660F771F881F991FAA1FA41721\r\n\ +:100EE00010F0A41B63955A95A9F7AA3008F0A95FE2\r\n\ +:100EF000A05DAF93F395611571058105910541F7EB\r\n\ +:100F0000ED3211F4EF93F395F21718F43F93F39544\r\n\ +:100F1000FBCF8F91B5DFFA95E1F70895E991F9914B\r\n\ +:100F20008591803021F0853219F0AADFF9CF08953C\r\n\ +:100F300020E0E89455915532C1F3503311F4689490\r\n\ +:100F400055915A3348F4505390F3220F022E220F3A\r\n\ +:100F5000220F200D250FF4CF0EF421958991999140\r\n\ +:100F6000533619F3533729F1533559F1BC0188270A\r\n\ +:100F70009927E8945C3621F4899199916894559168\r\n\ +:100F8000543639F446EF7EF077FF0DC08FEF9FEFB8\r\n\ +:100F90000AC055374AE039F0583540E121F0523661\r\n\ +:100FA00042E009F00895FF93EF937DDFEF91FF9109\r\n\ +:100FB000B7CFFF93EF93FC0181918030B9F360DFED\r\n\ +:100FC000FBCFFF93EF9368DFF1CFDF93CF93CDB7E4\r\n\ +:100FD000DEB72596A3DFCF91DF9108950E94140913\r\n\ +:100FE000E9E3F1E0119281E0E734F807D9F73E97A1\r\n\ +:100FF000F0933701E093360108951F931092380162\r\n\ +:101000000E941F0A182F8B3709F455C08F3F09F42F\r\n\ +:1010100052C081E080933801812F86958695869510\r\n\ +:10102000E0913601F0913701212F30E017FF11C018\r\n\ +:101030008F70E80FF11DC9018770907021E030E0DA\r\n\ +:1010400002C0220F331F8A95E2F720958081822308\r\n\ +:101050000FC08F70E80FF11DC9018770907021E0FB\r\n\ +:1010600030E002C0220F331F8A95E2F78081822B85\r\n\ +:1010700080838091C60180FF20C082ED90E00E94B5\r\n\ +:101080004C0700D000D0EDB7FEB731968DEC90E064\r\n\ +:10109000ADB7BEB712969C938E93119712831382AD\r\n\ +:1010A0000E94E5070F900F900F900F908AEC90E050\r\n\ +:1010B0000E944C0702C080E001C081E01F910895AA\r\n\ +:1010C000E0913601F0913701E80FF11D808108951C\r\n\ +:1010D000EF92FF920F931F93CF93DF938BEB90E0F0\r\n\ +:1010E0000E944C07C0E0D0E086EBE82E80E0F82EAE\r\n\ +:1010F0000EEA10E000D000D0ADB7BEB71296FC9259\r\n\ +:10110000EE9211971496DC93CE9313970E94E50705\r\n\ +:101110000F900F900F900F9083EB90E00E944C0780\r\n\ +:10112000E0913601F0913701EC0FFD1F80810E94A4\r\n\ +:10113000341F00D000D0EDB7FEB73196ADB7BEB7C3\r\n\ +:1011400012961C930E931197828313820E94E507D7\r\n\ +:101150000F900F900F900F908CEA90E00E944C0738\r\n\ +:101160002196CE30D10531F6DF91CF911F910F91AD\r\n\ +:10117000FF90EF90089508958B3759F08F3F59F005\r\n\ +:10118000282F30E02F773070359527958078822B87\r\n\ +:1011900008958BE708958FEF08955198599A08950F\r\n\ +:1011A0005898509A08955098589A08950E94CD08DA\r\n\ +:1011B0000E94D30808955198599A85E08A95F1F7CD\r\n\ +:1011C000000081E0499B80E00895EF92FF92CF9369\r\n\ +:1011D000DF93EC0105C025E02A95F1F70000219787\r\n\ +:1011E0000E94DB08882311F02097A9F7CE01DF9138\r\n\ +:1011F000CF91FF90EF900895EF92FF92CF93DF93FE\r\n\ +:10120000C8ECD0E005C025E02A95F1F70000219751\r\n\ +:101210000E94DB08882311F42097A9F7CE01DF9103\r\n\ +:10122000CF91FF90EF9008950E94D6088FEF93ED35\r\n\ +:10123000A0E381509040A040E1F700C00000089575\r\n\ +:101240000F931F93CF93DF93082F109247010E94B3\r\n\ +:10125000CD080E94D008CAEFD0E088EE93E00E944B\r\n\ +:10126000E508009719F42197C1F72AC0C8E0D0E03B\r\n\ +:1012700010E88AEF90E00E94E508009711F483E0FF\r\n\ +:1012800020C0812F802319F00E94D30802C00E9441\r\n\ +:10129000D0080E94FC08009711F484E012C0169553\r\n\ +:1012A000219739F78FE891E00197F1F700C000002E\r\n\ +:1012B0000E94D60881E0DF91CF911F910F91089590\r\n\ +:1012C00081E0809347018EE091E00E944C0700D0BE\r\n\ +:1012D00000D0EDB7FEB7319689E091E0ADB7BEB76B\r\n\ +:1012E00012969C938E93119780914701828313826B\r\n\ +:1012F0000E94E5070F900F900F900F9087E091E00C\r\n\ +:101300000E944C078FEF99E6A8E181509040A040E1\r\n\ +:10131000E1F700C000000E94D60880E0CCCF0F9318\r\n\ +:101320001F93CF93DF9310924701CAEFD0E088EE6E\r\n\ +:1013300093E00E94E508009719F42197C1F723C0B4\r\n\ +:1013400008E010E088EC90E00E94E508009711F4B6\r\n\ +:1013500082E01AC00E94FC08009711F483E014C0D8\r\n\ +:10136000110F5098589A85E08A95F1F70000489936\r\n\ +:101370001160015039F70E94D608812FDF91CF917B\r\n\ +:101380001F910F91089581E08093470186EF90E0CF\r\n\ +:101390000E944C0700D000D0EDB7FEB7319681EF28\r\n\ +:1013A00090E0ADB7BEB712969C938E931197809143\r\n\ +:1013B0004701828313820E94E5070F900F900F90E0\r\n\ +:1013C0000F908FEE90E00E944C078FEF99E6A8E116\r\n\ +:1013D00081509040A040E1F700C000000E94D60874\r\n\ +:1013E0001FEFCBCF1F9384E10E9420090E948F0939\r\n\ +:1013F000182F8B3709F18091C60180FF15C000D0EE\r\n\ +:1014000000D0EDB7FEB731962AEE30E0ADB7BEB7EB\r\n\ +:1014100012963C932E931197128313820E94E50734\r\n\ +:101420000F900F900F900F908091C60180FF04C025\r\n\ +:1014300088EE90E00E944C07812F1F9108950F9332\r\n\ +:101440001F9380914A01882319F010924A0196C097\r\n\ +:1014500080914901882319F0109249018FC01091A1\r\n\ +:101460004801112319F01092480103C00E94F209AB\r\n\ +:10147000182F212F30E02F7730702137310501F1FF\r\n\ +:101480002937310509F077C00E94F209282F30E092\r\n\ +:101490002F7730702D30310569F02E30310524F46E\r\n\ +:1014A0002530310549F406C02131310519F02B31C1\r\n\ +:1014B000310511F487FD46C00E94BC0880645EC0FF\r\n\ +:1014C0000E94F209282F30E02F7730702137310544\r\n\ +:1014D00029F02937310509F04AC003C0809348013B\r\n\ +:1014E0004AC00E94F209082F282F30E02F77307071\r\n\ +:1014F0002D30310569F02E30310524F425303105C9\r\n\ +:1015000089F506C02131310519F02B31310551F52E\r\n\ +:1015100017FF11C007FF0AC083EE90E00E944C073E\r\n\ +:10152000812F0E94BC08809349010BC08EED90E092\r\n\ +:101530000E944C0720C007FF0CC089ED90E00E947C\r\n\ +:101540004C07802F0E94BC08982F906690934A0108\r\n\ +:10155000B5CF84ED90E00E944C07802F0E94BC081C\r\n\ +:1015600080660CC0802F0E94BC08806402C00E946C\r\n\ +:10157000BC0880934A01812F0E94BC081F910F91E3\r\n\ +:101580000895EEE08E9FF0011124E70FF11D83E036\r\n\ +:10159000EE0FFF1F8A95E1F7E60FF11DE05CF749BA\r\n\ +:1015A0008491089590E0880F991F80589949FC0113\r\n\ +:1015B00025913491C9010895809153010895909126\r\n\ +:1015C000CC01943009F058C09091E9009F702091AF\r\n\ +:1015D000EC0020FF02C020E801C020E0922B24E0B4\r\n\ +:1015E0002093E9002091EB0020FF2AC02091EE001B\r\n\ +:1015F00027FF26C020915401222321F02091E800EA\r\n\ +:1016000025FF1EC0109254012091E4003091E500A6\r\n\ +:1016100066E01EC04091CC01442381F1453071F158\r\n\ +:101620004091EB0045FD0CC04091E4005091E50075\r\n\ +:101630002417350769F0615039F481E08093540133\r\n\ +:101640009F709093E90018C02091E4003091E5006C\r\n\ +:101650004091E80045FFDECF8093F1008091E800E3\r\n\ +:1016600085FD05C08091E8008E778093E8009F702B\r\n\ +:101670009093E90080E008958FEF08958FEF08952B\r\n\ +:10168000DF93CF9300D00F92CDB7DEB72091CC017E\r\n\ +:101690002430D1F423E029839B838A832093E900BB\r\n\ +:1016A00080E0815021F09091E80095FFFACFCE01C3\r\n\ +:1016B000019663E070E040E050E00E94E00F80910E\r\n\ +:1016C000E8008E778093E8000F900F900F90CF91F5\r\n\ +:1016D000DF910895DF93CF9300D00F92CDB7DEB79F\r\n\ +:1016E0002091CC012430D9F422E029839B838A8382\r\n\ +:1016F00083E08093E90080E0815021F09091E80040\r\n\ +:1017000095FFFACFCE01019663E070E040E050E033\r\n\ +:101710000E94E00F8091E8008E778093E8000F90A0\r\n\ +:101720000F900F90CF91DF9108952091CC0124303C\r\n\ +:10173000A9F422E02093E90020E0215021F030912B\r\n\ +:10174000E80035FFFACF65E070E040E050E00E942D\r\n\ +:10175000E00F8091E8008E778093E80008950F9362\r\n\ +:101760001F938C018091CC01843001F581E080933E\r\n\ +:10177000E90080E0815021F09091E80095FFFACFD8\r\n\ +:10178000C80168E070E040E050E00E94E00F809106\r\n\ +:10179000E8008E778093E800ABE4B1E0802F912FD2\r\n\ +:1017A000FC0188E001900D928150E1F71F910F91AB\r\n\ +:1017B00008958FE10E94BB08089508950895089543\r\n\ +:1017C0000E94E01E0E949C120E94BB080895809116\r\n\ +:1017D000CC01843061F58091E9008F709091EC002C\r\n\ +:1017E00090FF02C090E801C090E0982B84E08093C5\r\n\ +:1017F000E9008091EB0080FF04C08091EE0087FD3E\r\n\ +:1018000006C09F709093E90008951092F1008091B6\r\n\ +:10181000E80085FDFACF8091E80080FF05C0809147\r\n\ +:10182000E8008E778093E8009F709093E900089518\r\n\ +:1018300081E061EC42E00E94980D82E061EC42E0C0\r\n\ +:101840000E94980D83E061EC42E00E94980D84E0D4\r\n\ +:1018500061EC46E20E94980D85E060EC42E20E9455\r\n\ +:10186000980D08958091CE01833009F455C08430DD\r\n\ +:1018700030F4813071F0823009F0A4C08BC08A301E\r\n\ +:1018800009F478C08B3009F461C0893009F09AC03E\r\n\ +:1018900020C08091CD01813A09F094C08091E80088\r\n\ +:1018A000877F8093E8008091D1019091D2010097C9\r\n\ +:1018B00021F060E080E090E003C068E08BE491E01C\r\n\ +:1018C00070E00E943F108091E8008B778093E800E1\r\n\ +:1018D00008958091CD01813209F074C08091D101C9\r\n\ +:1018E0009091D201009709F06DC08091E800877F48\r\n\ +:1018F0008093E80005C08091CC01882309F462C080\r\n\ +:101900008091E80082FFF7CF8091F100809353012E\r\n\ +:101910008091E8008B7715C08091CD01813A09F064\r\n\ +:1019200051C08091E800877F8093E8008091E800B3\r\n\ +:1019300080FFFCCF80910A018093F1008091E80044\r\n\ +:101940008E778093E8000E94CF0D08958091CD019D\r\n\ +:101950008132C1F58091E800877F8093E8000E9482\r\n\ +:10196000CF0D9091CF0181E0992309F480E080931D\r\n\ +:101970000A0108958091CD01813221F58091E8001E\r\n\ +:10198000877F8093E8000E94CF0D8091D0018093E3\r\n\ +:10199000550108958091CD01813AA1F48091E8002C\r\n\ +:1019A000877F8093E8008091E80080FFFCCF8091E2\r\n\ +:1019B00055018093F1008091E8008E778093E800D4\r\n\ +:1019C0000E94CF0D089584B7877F84BF88E10FB64A\r\n\ +:1019D000F89480936000109260000FBE90E080E861\r\n\ +:1019E0000FB6F89480936100909361000FBE0E943F\r\n\ +:1019F000240E0E94AB0E8091E20084608093E2008E\r\n\ +:101A00008FED9AE00E94851E78948091CC018430FD\r\n\ +:101A1000E1F780E391E00E944C070E94941380E07C\r\n\ +:101A200091E00E9492128FE191E00E944C070CC05D\r\n\ +:101A30000E94AE1E8091CA01882331F00E94D01E00\r\n\ +:101A4000882311F00E94820D8091CC01853081F3B2\r\n\ +:101A50000E94CD13F9CF9330A1F0943038F4913037\r\n\ +:101A600009F441C0923009F043C006C09132D9F068\r\n\ +:101A7000923209F03DC025C024E730E0E5E3F2E012\r\n\ +:101A80003BC0813041F0813018F0823089F506C0CA\r\n\ +:101A9000E9EAF2E005C0EDEAF2E002C0EDEBF2E0C7\r\n\ +:101AA000249130E029C0643018F5E62FF0E0EE0F05\r\n\ +:101AB000FF1FE55FFE4F0190F081E02D29E030E04F\r\n\ +:101AC0001BC06430A8F470E0660F771FFB01ED5E69\r\n\ +:101AD000FE4F0190F081E02D655E7E4FDB012D9180\r\n\ +:101AE0003C91119709C022E130E0E3E2F2E004C04A\r\n\ +:101AF00020E030E0E0E0F0E0DA011196FC93EE93B4\r\n\ +:101B0000C901089580E189BD82E189BD09B400FE63\r\n\ +:101B1000FDCF8091D8008F7D8093D8008091E00028\r\n\ +:101B200082608093E0008091E00081FDFCCF089509\r\n\ +:101B3000982F2CC0292F2F702093E900981739F087\r\n\ +:101B40007091EC002091ED005091F00003C0242F23\r\n\ +:101B5000762F50E021FF19C03091EB003E7F30938B\r\n\ +:101B6000EB003091ED003D7F3093ED003091EB00C4\r\n\ +:101B700031603093EB007093EC002093ED005093B4\r\n\ +:101B8000F0002091EE0027FF08C09F5F973090F291\r\n\ +:101B90008F708093E90081E0089580E0089580913E\r\n\ +:101BA000CD0187FF13C004C08091CC018823B9F018\r\n\ +:101BB0008091E80082FFF8CF8091E8008B778093D6\r\n\ +:101BC000E80008958091CC01882349F08091E800D5\r\n\ +:101BD00080FFF8CF8091E8008E778093E800089529\r\n\ +:101BE0008091E4009091E50044E62091EC0020FF14\r\n\ +:101BF00026C02091E80020FD16C02091CC012223B0\r\n\ +:101C0000A1F02530A1F02091EB0025FD12C020911C\r\n\ +:101C1000E4003091E5002817390739F3442359F0DF\r\n\ +:101C20004150C901E2CF80E0089582E0089583E049\r\n\ +:101C3000089581E0089584E0089580E0089520915A\r\n\ +:101C4000E80022FFDACFF9CF0E94B80E0E94C00E42\r\n\ +:101C5000E0EEF0E0808181608083E8EDF0E080815B\r\n\ +:101C60008F77808319BCA7EDB0E08C918E7F8C9329\r\n\ +:101C700080818F7E80831092CB010895DF93CF9374\r\n\ +:101C800000D0CDB7DEB70E94B80E0E94C00E809182\r\n\ +:101C9000D8008F778093D8008091D8008068809397\r\n\ +:101CA000D8008091D8008F7D8093D80019BC109205\r\n\ +:101CB000CC011092C8011092CA011092C90180E0B3\r\n\ +:101CC00091E060E0AE014F5F5F4F0E942B0D0097E7\r\n\ +:101CD00031F0E981FA813796E491E0932301809114\r\n\ +:101CE000E0008B7F8093E0008091D800816080933A\r\n\ +:101CF000D8002091230130E088E090E040E003C06C\r\n\ +:101D00004F5F880F991F82179307D0F34295407F4A\r\n\ +:101D1000426080E060E00E94980D8091E1008E7F3B\r\n\ +:101D20008093E1008091E20081608093E2008091E5\r\n\ +:101D3000E20088608093E2008091E0008E7F8093D3\r\n\ +:101D4000E0008091D80080618093D8000F900F90C0\r\n\ +:101D5000CF91DF910895E7EDF0E08081816080838D\r\n\ +:101D600084E082BF81E08093CB010E943E0E089503\r\n\ +:101D7000E8EDF0E080818E7F80831092E20008958C\r\n\ +:101D80001092DA001092E10008951F920F920FB6A0\r\n\ +:101D90000F9211242F933F934F935F936F937F93F1\r\n\ +:101DA0008F939F93AF93BF93EF93FF938091E10045\r\n\ +:101DB00082FF0BC08091E20082FF07C08091E100AA\r\n\ +:101DC0008B7F8093E1000E94E70B8091DA0080FF17\r\n\ +:101DD0001FC08091D80080FF1BC08091DA008E7FE9\r\n\ +:101DE0008093DA008091D90080FF0DC080E189BD29\r\n\ +:101DF00082E189BD09B400FEFDCF81E08093CC0172\r\n\ +:101E00000E94D90B05C019BC1092CC010E94DD0BB9\r\n\ +:101E10008091E10080FF19C08091E20080FF15C031\r\n\ +:101E20008091E2008E7F8093E2008091E2008061E9\r\n\ +:101E30008093E2008091D80080628093D80019BC22\r\n\ +:101E400085E08093CC010E94DF0B8091E10084FF4C\r\n\ +:101E50002EC08091E20084FF2AC080E189BD82E12A\r\n\ +:101E600089BD09B400FEFDCF8091D8008F7D80939D\r\n\ +:101E7000D8008091E1008F7E8093E1008091E200A4\r\n\ +:101E80008F7E8093E2008091E20081608093E20087\r\n\ +:101E90008091C801882321F48091E30087FF02C06C\r\n\ +:101EA00084E001C081E08093CC010E94E00B80912E\r\n\ +:101EB000E10083FF38C08091E20083FF34C080914D\r\n\ +:101EC000E100877F8093E10082E08093CC01109253\r\n\ +:101ED000C8018091E1008E7F8093E1008091E20053\r\n\ +:101EE0008E7F8093E2008091E20080618093E20027\r\n\ +:101EF0002091230130E088E090E040E003C04F5F94\r\n\ +:101F0000880F991F82179307D0F34295407F426054\r\n\ +:101F100080E060E00E94980D8091F00088608093DE\r\n\ +:101F2000F0000E94DE0BFF91EF91BF91AF919F9166\r\n\ +:101F30008F917F916F915F914F913F912F910F9072\r\n\ +:101F40000FBE0F901F9018951F920F920FB60F9211\r\n\ +:101F500011241F932F933F934F935F936F937F931E\r\n\ +:101F60008F939F93AF93BF93EF93FF931091E900EB\r\n\ +:101F70001F708091EC001092E9008091F000877F43\r\n\ +:101F80008093F00078940E9415111092E9008091DE\r\n\ +:101F9000F00088608093F0001093E900FF91EF91CA\r\n\ +:101FA000BF91AF919F918F917F916F915F914F9171\r\n\ +:101FB0003F912F911F910F900FBE0F901F9018957A\r\n\ +:101FC0008F929F92BF92CF92DF92EF92FF920F93E8\r\n\ +:101FD0001F93DF93CF930F92CDB7DEB7E82E4B015F\r\n\ +:101FE0008A0199830E94F00DB82E99818823C9F542\r\n\ +:101FF000F92E0115110539F0F80120813181821A7D\r\n\ +:10200000930AE20EF31ECC24DD2426C08091E80062\r\n\ +:1020100085FD17C08091E8008E778093E800011558\r\n\ +:10202000110551F0F801808191818C0D9D1D9183E6\r\n\ +:10203000808325E0B22E15C00E94F00D882361F048\r\n\ +:102040000FC0F70181917F018093F100089481080E\r\n\ +:1020500091080894C11CD11C81149104B9F601C0E7\r\n\ +:10206000B82E8B2D0F90CF91DF911F910F91FF9084\r\n\ +:10207000EF90DF90CF90BF909F908F900895482F62\r\n\ +:10208000592FFA018091D3019091D40186179707B7\r\n\ +:1020900018F4BC01A0E043C061157105D9F7809127\r\n\ +:1020A000E8008E778093E800F5CF8091CC018823FB\r\n\ +:1020B00009F44BC0853009F444C08091E80083FDE9\r\n\ +:1020C00042C08091E80082FD36C08091E80080FF28\r\n\ +:1020D00026C09091F3008091F200392F20E090E02B\r\n\ +:1020E000822B932B06C041914093F10061507040C8\r\n\ +:1020F00001966115710531F04091230150E084177C\r\n\ +:10210000950788F34091230150E0A1E084179507DB\r\n\ +:1021100009F0A0E08091E8008E778093E8006115D7\r\n\ +:10212000710519F6AA2309F606C08091CC0188230F\r\n\ +:1021300061F0853061F08091E80082FFF6CF80E0A9\r\n\ +:10214000089583E0089581E0089582E0089583E092\r\n\ +:102150000895E82FF92F8091D3019091D40186172B\r\n\ +:10216000970718F4BC01A0E044C061157105D9F7C8\r\n\ +:102170008091E8008E778093E800F5CF8091CC01C4\r\n\ +:10218000882309F44EC0853009F447C08091E800E7\r\n\ +:1021900083FD45C08091E80082FD39C08091E80050\r\n\ +:1021A00080FF27C09091F3008091F200392F20E04A\r\n\ +:1021B00090E0822B932B07C044914093F10031961D\r\n\ +:1021C0006150704001966115710531F04091230115\r\n\ +:1021D00050E08417950780F34091230150E0A1E07F\r\n\ +:1021E0008417950709F0A0E08091E8008E7780932E\r\n\ +:1021F000E8006115710509F0C1CFAA2309F0BECF2F\r\n\ +:1022000006C08091CC01882361F0853061F0809117\r\n\ +:10221000E80082FFF6CF80E0089583E0089581E032\r\n\ +:10222000089582E0089583E008950F931F93DF934C\r\n\ +:10223000CF93CDB7DEB7AC970FB6F894DEBF0FBE25\r\n\ +:10224000CDBFEDECF1E08091F100819321E0E53D1F\r\n\ +:10225000F207C9F70E94320C8091E80083FF49C160\r\n\ +:102260008091CD012091CE01253009F484C0263023\r\n\ +:1022700040F42130A1F1213070F0233009F039C150\r\n\ +:102280002EC0283009F4F5C0293009F406C12630E3\r\n\ +:1022900009F02FC195C0803821F0823809F029C19A\r\n\ +:1022A00008C08091C9019091CA01992371F08260A0\r\n\ +:1022B0000CC08091D1018F708093E9009091EB0068\r\n\ +:1022C00081E095FF80E01092E9009091E800977F0F\r\n\ +:1022D0009093E8008093F1001092F100D6C088231B\r\n\ +:1022E00019F0823009F005C190E08F71907000976D\r\n\ +:1022F00029F08230910509F0FCC00BC08091CF011C\r\n\ +:10230000813009F0F6C0233009F080E08093CA01E3\r\n\ +:102310002CC08091CF01882341F52091D1012F70ED\r\n\ +:1023200009F4E7C02093E9008091EB0080FF1DC015\r\n\ +:102330008091CE01833021F48091EB00806213C044\r\n\ +:102340008091EB0080618093EB0081E090E002C01F\r\n\ +:10235000880F991F2A95E2F78093EA001092EA000D\r\n\ +:102360008091EB0088608093EB001092E9008091EF\r\n\ +:10237000E800877F8DC0882309F0BBC01091CF0192\r\n\ +:102380001F770FB7F8948091E800877F8093E8006B\r\n\ +:102390000E94CF0D8091E80080FFFCCF8091E30088\r\n\ +:1023A0008078812B8093E30080688093E300112381\r\n\ +:1023B00011F083E001C082E08093CC010FBF99C08F\r\n\ +:1023C0008058823008F095C08091CF019091D00163\r\n\ +:1023D00023E08C3D920799F583E08C838AE28B831E\r\n\ +:1023E0005FB7F894DE01159680E090E04EE061E280\r\n\ +:1023F000E42FF0E060935700E49180FF03C0E29582\r\n\ +:10240000EF704F5FEF702E2F30E0EA3018F0295C4C\r\n\ +:102410003F4F02C0205D3F4F2D933D930196843185\r\n\ +:10242000910531F75FBF8091E800877F8093E800D6\r\n\ +:10243000CE0103966AE270E00E943F1014C06091E2\r\n\ +:10244000D101AE014F5F5F4F0E942B0DBC01009781\r\n\ +:1024500009F44FC08091E800877F8093E80089816C\r\n\ +:102460009A810E94A9108091E8008B778093E80000\r\n\ +:1024700040C0803809F03DC08091E800877F80939C\r\n\ +:10248000E8008091C8018093F1008091E8008E7788\r\n\ +:102490008093E8000E94CF0D2CC0882351F580E086\r\n\ +:1024A00091E060E0AE014F5F5F4F0E942B0D0097FF\r\n\ +:1024B00001F1E981FA817196E4919091CF01E917D8\r\n\ +:1024C000C0F08091E800877F8093E8009093C80176\r\n\ +:1024D0000E94CF0D8091C801882321F48091E300F0\r\n\ +:1024E00087FF02C084E001C081E08093CC010E949C\r\n\ +:1024F000180C8091E80083FF0AC08091EB00806295\r\n\ +:102500008093EB008091E800877F8093E800AC9691\r\n\ +:102510000FB6F894DEBF0FBECDBFCF91DF911F91F4\r\n\ +:102520000F9108959093600180935F0108958091C9\r\n\ +:102530005F01909160010895E0915F01F091600169\r\n\ +:10254000309729F00190F081E02D0995089580E001\r\n\ +:1025500008950F931F93CF93DF93E0915F01F09164\r\n\ +:1025600060013097E9F10280F381E02D09958091B7\r\n\ +:10257000C60182FF35C080FF04C089EF92E00E944F\r\n\ +:102580004C07C0E0D0E003EF12E08091C60180FF6D\r\n\ +:102590001BC000D000D0ADB7BEB71196EDB7FEB7E7\r\n\ +:1025A00012830183E0912401F0912501EC0FFD1FBE\r\n\ +:1025B000808112968C93129713961C920E94E507C5\r\n\ +:1025C0000F900F900F900F902196C830D105E9F62B\r\n\ +:1025D0008091C60180FF04C081EF92E00E944C0709\r\n\ +:1025E000DF91CF911F910F910895E0915F01F091DC\r\n\ +:1025F0006001309721F00480F581E02D0995089560\r\n\ +:1026000020915D0130915E018217930771F09093E4\r\n\ +:102610005E0180935D01E0915F01F0916001309770\r\n\ +:1026200021F00680F781E02D0995089520915B0146\r\n\ +:1026300030915C018217930771F090935C01809355\r\n\ +:102640005B01E0915F01F0916001309721F000841F\r\n\ +:10265000F185E02D099508952091240130912501FF\r\n\ +:10266000D9011296EFEF90E04D91481781F0EF3FBE\r\n\ +:1026700019F4442309F4E92F9F5F9630A9F7EF3F3F\r\n\ +:1026800031F0FF27E7FDF095E20FF31F82830895F5\r\n\ +:10269000E0912401F091250196E02281281709F4A8\r\n\ +:1026A0001282915031969923C1F7089580E090E00D\r\n\ +:1026B0000196E0912401F0912501E80FF91F1082A5\r\n\ +:1026C00087309105A9F70895E0912401F091250143\r\n\ +:1026D00080810895E0912401F09125019081982B4B\r\n\ +:1026E00090830895E0912401F091250180959081D7\r\n\ +:1026F000982390830895E0912401F091250180832F\r\n\ +:102700000895E0912401F0912501108208958091AF\r\n\ +:102710005F0190916001009731F0809124019091C8\r\n\ +:1027200025010E94A91208950E94191E0E94EE0719\r\n\ +:102730000E948F1F08951F93182F8091C60182FF5A\r\n\ +:1027400027C080FF04C082E193E00E944C07809183\r\n\ +:10275000C60180FF15C000D000D0EDB7FEB731969E\r\n\ +:102760002DE033E0ADB7BEB712963C932E93119790\r\n\ +:10277000128313820E94E5070F900F900F900F9025\r\n\ +:102780008091C60180FF04C08BE093E00E944C075B\r\n\ +:10279000812F0E94BB081F9108959F92AF92BF9214\r\n\ +:1027A000CF92DF92EF92FF920F931F93DF93CF931D\r\n\ +:1027B000CDB7DEB72A970FB6F894DEBF0FBECDBFF8\r\n\ +:1027C0000E94FD072AE6C22E21E0D22E00E010E092\r\n\ +:1027D000A02E802F0E946008B82EF60191906F0104\r\n\ +:1027E000982609F441C08091C60181FF02C00E9471\r\n\ +:1027F0006808EE24FF24492D50E0BA010E2C02C0D7\r\n\ +:10280000759567950A94E2F760FF27C091E0C92E9D\r\n\ +:10281000D12C0E2C02C0CC0CDD1C0A94E2F70E94D5\r\n\ +:10282000221EE982AA822B2D30E02C213D2161E07D\r\n\ +:102830002115310509F460E06B838160782F9D8359\r\n\ +:102840008C8349815A818D810E946A14F801E6596E\r\n\ +:10285000FE4F80818C2580831DC00894E11CF11CF3\r\n\ +:10286000F8E0EF16F10449F60F5F1F4F0E30110527\r\n\ +:1028700009F0AECF0E94221E2FEF2E832F831886E1\r\n\ +:102880008160782F9A8789874FEF5FEF60E08A85B4\r\n\ +:102890000E946A140E945723009169010E949C12B1\r\n\ +:1028A000081731F00E949C12809369010E949B13CB\r\n\ +:1028B0002A960FB6F894DEBF0FBECDBFCF91DF9141\r\n\ +:1028C0001F910F91FF90EF90DF90CF90BF90AF904E\r\n\ +:1028D0009F900895DF93CF93CDB7DEB72B970FB6B8\r\n\ +:1028E000F894DEBF0FBECDBF4F83588769877A87C4\r\n\ +:1028F0008B87972F282FDE01119686E0FD0111921C\r\n\ +:102900008A95E9F7FE01379685E001900D92815096\r\n\ +:10291000E1F749835A83792F9C832D836B81822F22\r\n\ +:102920009E810E94AF1A2B960FB6F894DEBF0FBEA1\r\n\ +:10293000CDBFCF91DF9108950F931F93182F882358\r\n\ +:1029400009F4DBC0823859F40E949C1281FDD5C085\r\n\ +:1029500089E30E942C130E94871389E30CC08338FB\r\n\ +:1029600079F40E949C1280FDC8C083E50E942C135C\r\n\ +:102970000E94871383E50E9448130E948713BDC0FD\r\n\ +:10298000843859F40E949C1282FDB7C087E40E94EB\r\n\ +:102990002C130E94871387E4EECF8450813A20F5F0\r\n\ +:1029A000812F0E940C27882309F0A7C08091D501B0\r\n\ +:1029B0008823B1F08091D601882391F40E9464139A\r\n\ +:1029C000082F8091D5010E946A13812F0E942C1339\r\n\ +:1029D0000E948713802F0E947B130E94711B8DC061\r\n\ +:1029E000812F0E942C13C9CF812F805E883050F434\r\n\ +:1029F000177081E090E001C0880F1A95EAF70E94F5\r\n\ +:102A00006A13BBCF812F855A833078F4153A29F0A9\r\n\ +:102A1000163A31F482E890E005C081E890E002C007\r\n\ +:102A200083E890E00E94001368C0812F885A8331A8\r\n\ +:102A300008F063C0183A39F1193A41F11A3A49F1EC\r\n\ +:102A40001B3A51F11C3A59F11D3A61F1103B69F101\r\n\ +:102A50001E3A71F11F3A79F1113B81F1123B89F174\r\n\ +:102A6000133B91F1143B99F1153BA1F1163BA9F1F0\r\n\ +:102A7000173BB1F1183BB9F1193BC1F11A3BC9F54C\r\n\ +:102A80008AE292E038C082EE90E035C089EE90E0B4\r\n\ +:102A900032C08AEE90E02FC085EB90E02CC086EB30\r\n\ +:102AA00090E029C087EB90E026C08CEC90E023C03A\r\n\ +:102AB0008DEC90E020C083E891E01DC08AE891E0B1\r\n\ +:102AC0001AC082E991E017C084E991E014C081E264\r\n\ +:102AD00092E011C083E292E00EC084E292E00BC06B\r\n\ +:102AE00085E292E008C086E292E005C087E292E0CB\r\n\ +:102AF00002C080E090E00E9416131F910F9108958C\r\n\ +:102B0000882309F44EC0823859F40E949C1281FF38\r\n\ +:102B100048C089E30E942C130E94871389E30CC0EC\r\n\ +:102B2000833869F40E949C1280FF3BC083E50E94B9\r\n\ +:102B30002C130E94871383E50E9448131FC084381A\r\n\ +:102B400059F40E949C1282FF2CC087E40E942C132F\r\n\ +:102B50000E94871387E4F0CF982F9450913A60F346\r\n\ +:102B6000982F905E983068F4282F277081E090E0CD\r\n\ +:102B700001C0880F2A95EAF70E9472130E948713FA\r\n\ +:102B80000895982F955A933028F480E090E00E94A1\r\n\ +:102B900000130895885A833120F480E090E00E9469\r\n\ +:102BA00016130895882321F00E946A130E94871348\r\n\ +:102BB0000895882321F00E9472130E9487130895BC\r\n\ +:102BC000EF92FF920F931F93DF93CF93CDB7DEB7B2\r\n\ +:102BD00027970FB6F894DEBF0FBECDBF7C01DE0194\r\n\ +:102BE0001196FC0185E001900D928150E1F7F7010B\r\n\ +:102BF000308121810281158112951F70838194811A\r\n\ +:102C0000009709F4B8C12F3F19F43F3F09F4B3C14D\r\n\ +:102C100039832A8389819A810E94AD1C9E838F8388\r\n\ +:102C20000E94AC1C0E94E01B4E81242F22952F7025\r\n\ +:102C300030E06F812530310509F49DC02630310523\r\n\ +:102C400054F4243031050CF073C0842F807F22307F\r\n\ +:102C50003105BCF515C02C3031054CF42A30310556\r\n\ +:102C60000CF039C12830310509F085C190C02C30F5\r\n\ +:102C7000310509F475C12F30310509F07CC177C1E8\r\n\ +:102C80004F70882311F4142F03C0142F1295107F56\r\n\ +:102C9000002359F0112309F44FC1812F6F830E9443\r\n\ +:102CA0006A130E9487136F8147C1862F0E94801587\r\n\ +:102CB000112309F460C1812F0E9472130E948713AF\r\n\ +:102CC0005AC14F70803211F4842F03C0842F829533\r\n\ +:102CD000807F6623E1F4002399F0112371F0113015\r\n\ +:102CE00019F40E946E1B47C1153019F40E94741B21\r\n\ +:102CF00042C18E830E94711B8E810E94D2153BC1FE\r\n\ +:102D0000112399F48E830E94711B8E810EC00023C3\r\n\ +:102D100049F0112391F3F701958190FF0DC19F7048\r\n\ +:102D20009583EBCF112309F012C10E94D91523C15D\r\n\ +:102D3000242F26952695237030E02115310529F0A2\r\n\ +:102D40002130310509F017C10BC0002321F0862F77\r\n\ +:102D5000942F937002C080E090E00E9400130BC19A\r\n\ +:102D6000002321F0862F942F937002C080E090E022\r\n\ +:102D70000E94161300C1002321F0862F0E94952186\r\n\ +:102D800003C0862F0E94FF210E948722F4C0842F57\r\n\ +:102D9000837009F04EC0002309F0EDC0262F229564\r\n\ +:102DA00026952770220F220F862F8F70E82EFF2482\r\n\ +:102DB00000E010E0022E04C0EE0CFF1C001F111FEB\r\n\ +:102DC0000A94D2F764FF10C06FE070E080E090E0FA\r\n\ +:102DD00004C0660F771F881F991F2A95D2F7609548\r\n\ +:102DE00070958095909503C060E070E0CB014695AA\r\n\ +:102DF0004695437050E04230510569F0433051052B\r\n\ +:102E000089F06E297F29802B912B4130510571F07B\r\n\ +:102E10000E94F31BB0C06E297F29802B912B0E944A\r\n\ +:102E2000021CA9C00E94F31BC801B7010E94E41B49\r\n\ +:102E3000A2C0002319F080FD03C09DC081FF9BC08C\r\n\ +:102E4000262F229526952770220F220F862F8F700E\r\n\ +:102E5000E82EFF2400E010E0022E04C0EE0CFF1C60\r\n\ +:102E6000001F111F0A94D2F764FF10C06FE070E0DA\r\n\ +:102E700080E090E004C0660F771F881F991F2A9595\r\n\ +:102E8000D2F7609570958095909503C060E070E0F2\r\n\ +:102E9000CB0146954695437050E04230510569F0AC\r\n\ +:102EA0004330510589F06E297F29802B912B4130C9\r\n\ +:102EB000510571F00E948E1C5EC06E297F29802B07\r\n\ +:102EC000912B0E949D1C57C00E948E1CC801B70107\r\n\ +:102ED0000E947F1C50C0613FB9F0623F18F4603F10\r\n\ +:102EE00039F505C0623FA9F0633F11F517C0002313\r\n\ +:102EF00021F0153008F03FC002C01630E0F5842FF5\r\n\ +:102F00008F710E94631C37C0842F8F71002329F1B9\r\n\ +:102F100019C0842F8F710023A9F01FC0002329F04E\r\n\ +:102F2000842F8F710E94171C26C00E94111C23C081\r\n\ +:102F3000002359F0112321F0862F0E949C141BC0FE\r\n\ +:102F4000842F8F710E94271C16C0112321F0862F19\r\n\ +:102F50000E94801510C0842F8F710E94431C0BC0EB\r\n\ +:102F60004F70C7010E94151E0E947B1B04C04F704A\r\n\ +:102F7000C7010E94181E27960FB6F894DEBF0FBE39\r\n\ +:102F8000CDBFCF91DF911F910F91FF90EF900895EA\r\n\ +:102F90000E9456130E9487130E94F7230E948722E3\r\n\ +:102FA00080E090E00E94001380E090E00E94161301\r\n\ +:102FB00008950E9481130E94C81708950E94AD1CB5\r\n\ +:102FC000292F2F7092959F70892F90E08C3091055A\r\n\ +:102FD00044F48A30910564F402978230910578F4C4\r\n\ +:102FE00007C08C30910531F08F30910541F402C05B\r\n\ +:102FF00081E0089581E023FD03C080E0089580E032\r\n\ +:103000000895DF93CF9300D000D00F92CDB7DEB7F5\r\n\ +:103010000F900F900F900F900F90CF91DF91089528\r\n\ +:10302000DF93CF9300D000D000D0CDB7DEB7269687\r\n\ +:103030000FB6F894DEBF0FBECDBFCF91DF910895DC\r\n\ +:10304000CF93DF9380917F0117C0C82FD0E0FE019E\r\n\ +:10305000EE0FFF1FEC0FFD1FEE0FFF1FE058FE4F9E\r\n\ +:103060004081518162817381848195810E94101811\r\n\ +:1030700021969E012770822F90917E01891729F752\r\n\ +:10308000DF91CF910895409178015091790160913D\r\n\ +:103090007A0170917B0180917C0190917D010E9469\r\n\ +:1030A000101808950F931F9380917D0182958F7062\r\n\ +:1030B00009F05DC080917A01882309F458C0A0917D\r\n\ +:1030C0007F0100917E0120917B0130917C01109164\r\n\ +:1030D0007901B0917801B9016095709545C02115CD\r\n\ +:1030E000310509F43FC01F3F11F4BF3FD9F18A2FCA\r\n\ +:1030F00090E0FC01EE0FFF1FE80FF91FEE0FFF1F1E\r\n\ +:10310000E058FE4F4181141769F54081B41751F51D\r\n\ +:103110004281442339F5438154814217530718F003\r\n\ +:10312000421B530B02C0460F571F483C5105D0F4B9\r\n\ +:1031300020917D012F70206120937D01FC01EE0F15\r\n\ +:10314000FF1FE80FF91FEE0FFF1FEB57FE4F8081A7\r\n\ +:103150008F708061808388E791E00E94E0150E9473\r\n\ +:10316000201805C0AF5FA770A01709F0B8CF1F9156\r\n\ +:103170000F910895EF92FF920F931F93DF93CF93D8\r\n\ +:10318000CDB7DEB762970FB6F894DEBF0FBECDBFE6\r\n\ +:103190008C01DE011196FC0185E001900D928150B9\r\n\ +:1031A000E1F7D8014C9111965C91119712966C91B0\r\n\ +:1031B00012971396ED90FC90149780917B0190915B\r\n\ +:1031C0007C01009709F4A1C1209179012F3F29F4D6\r\n\ +:1031D000309178013F3F09F419C130917A013323CE\r\n\ +:1031E00009F412C130917D01E816F90628F0F701C3\r\n\ +:1031F000E81BF90BCF0104C0809590958E0D9F1DA3\r\n\ +:10320000883C910508F09AC0307F09F047C02F3FF5\r\n\ +:1032100021F4809178018F3FD9F02517C9F480916E\r\n\ +:1032200078018417A9F4662399F580917D018F7048\r\n\ +:10323000806180937D010E94431888E791E00E949D\r\n\ +:10324000E01580917D01D80115968C93159779C171\r\n\ +:103250006623F1F480917F0120917E0116C090E0F9\r\n\ +:10326000FC01EE0FFF1FE80FF91FEE0FFF1FE058E4\r\n\ +:10327000FE4F3181531739F43081431721F43281E5\r\n\ +:10328000332309F05EC101968770821741F754C15C\r\n\ +:1032900080917D01816080937D0153C12F3F21F496\r\n\ +:1032A000809178018F3FC1F02517B1F480917801AA\r\n\ +:1032B000841791F4662381F480917D01F801858360\r\n\ +:1032C000C8010E94E015A8E7B1E0F80186E001908E\r\n\ +:1032D0000D928150E1F72DC149835A8389819A81EA\r\n\ +:1032E0006A8B0E94DE176A89882309F425C1662348\r\n\ +:1032F00009F422C140917D01842F82958F7090E066\r\n\ +:103300008230910594F0CE01069626E0DC011D92F4\r\n\ +:103310002A95E9F720917801309179013F832E8336\r\n\ +:10332000FA86E9864B870E94E015A8E7B1E0F8012C\r\n\ +:1033300086E001900D928150E1F7F9C0307FA1F451\r\n\ +:1033400049835A836B837E2DFD82EC828D810E949E\r\n\ +:10335000011808E711E0C8010E94E01586E0F801B5\r\n\ +:1033600011928A95E9F7CEC02F3F21F48091780120\r\n\ +:103370008F3FC1F02517B1F480917801841791F443\r\n\ +:10338000662381F480917D01D80115968C93C80144\r\n\ +:103390000E94E01586E0E8E7F1E0DF011D928A95E2\r\n\ +:1033A000E9F7CDC049835A8389819A816A8B0E944B\r\n\ +:1033B000DE176A89882309F4BFC0662309F4BCC0FC\r\n\ +:1033C00040917D01842F82958F7090E0823091052D\r\n\ +:1033D00094F0CE010C9626E0FC0111922A95E9F7B3\r\n\ +:1033E00020917801309179013D872C87F88AEF860A\r\n\ +:1033F000498B0E94E015A8E7B1E0F80186E0019052\r\n\ +:103400000D928150E1F793C02F3F29F4309178015C\r\n\ +:103410003F3F09F47AC030917A01332309F075C037\r\n\ +:10342000E816F90628F0D701A81BB90BCD0104C096\r\n\ +:10343000809590958E0D9F1D883C910508F052C097\r\n\ +:10344000662309F479C02F3F21F4809178018F3FE2\r\n\ +:1034500091F1251781F580917801841761F520910C\r\n\ +:103460007D0120FD1FC0322F32953F70832F90E0E9\r\n\ +:103470000097C1F0F80125838F30910539F0832F33\r\n\ +:103480008F5F8295807F2F70282B2583C8010E9433\r\n\ +:10349000E015A8E7B1E0F80186E001900D928150B7\r\n\ +:1034A000E1F747C0A8E7B1E0F80186E001900D928E\r\n\ +:1034B0008150E1F744C049835A8389819A810E94EF\r\n\ +:1034C000DE17882349F0A8E7B1E0F80186E0019013\r\n\ +:1034D0000D928150E1F72BC080917D018160809336\r\n\ +:1034E0007D012AC049835A836B837E2DFD82EC8245\r\n\ +:1034F0008D810E940118E8E7F1E086E0DF011D926E\r\n\ +:103500008A95E9F70E9443181CC06623A9F04983F5\r\n\ +:103510005A8389819A810E94DE17882369F0A8E77F\r\n\ +:10352000B1E0F80186E001900D928150E1F70E9430\r\n\ +:1035300052180E94431803C0C8010E94E01581E0A0\r\n\ +:1035400001C080E062960FB6F894DEBF0FBECDBF1B\r\n\ +:10355000CF91DF911F910F91FF90EF9008950F93FE\r\n\ +:103560001F93DF93CF93CDB7DEB72C970FB6F894A8\r\n\ +:10357000DEBF0FBECDBF4F83588769877A878B87A1\r\n\ +:103580009C878E01095F1F4FC8010E94BA188823CB\r\n\ +:10359000A9F08A859B85009709F480C088858F3FB4\r\n\ +:1035A00021F48F818F3F09F479C04F815885698557\r\n\ +:1035B0007A858B859C850E94101870C0DE0111965B\r\n\ +:1035C000F80186E001900D928150E1F71F81088596\r\n\ +:1035D0004A855B854115510509F460C00F3F19F418\r\n\ +:1035E0001F3F09F45BC080917E0190E09C012F5F3A\r\n\ +:1035F0003F4F2770307060917F0170E026173707CA\r\n\ +:1036000009F453C0FC01EE0FFF1FE80FF91FEE0F86\r\n\ +:10361000FF1FE058FE4FDE01119666E00D9001920B\r\n\ +:103620006150E1F7FC01EE0FFF1FE80FF91FEE0FED\r\n\ +:10363000FF1FE058FE4F1083018354834383209380\r\n\ +:103640007E010E9420182AC030E0C901880F991F0E\r\n\ +:10365000820F931F880F991F80589E4F0E94BA189F\r\n\ +:10366000882389F180917F0190E0FC01EE0FFF1F1C\r\n\ +:10367000E80FF91FEE0FFF1FE058FE4F4081518108\r\n\ +:1036800062817381848195810E94101880917F01ED\r\n\ +:1036900090E001968770907080937F0120917F0168\r\n\ +:1036A00080917E01281781F60EC00E94D9171092D2\r\n\ +:1036B0007E0110927F01E8E7F1E086E0DF011D92D4\r\n\ +:1036C0008A95E9F7EBCF2C960FB6F894DEBF0FBEC4\r\n\ +:1036D000CDBFCF91DF911F910F9108958093D501B8\r\n\ +:1036E00008951092D50108958091D60191E089271F\r\n\ +:1036F0008093D60108951F93CF93DF93EC01009739\r\n\ +:1037000009F444C010E0FE0121968491843740F40E\r\n\ +:10371000843048F5813069F0823009F037C00DC03F\r\n\ +:103720008537E9F0853768F0982F9458903770F511\r\n\ +:103730001DC0FE012196849116C0FE012196849140\r\n\ +:1037400016C0FE012196E49107C08FE99FE0019722\r\n\ +:10375000F1F700C00000E150EE23B9F70AC0FE0106\r\n\ +:103760002196149106C00E949C1403C08F770E947A\r\n\ +:103770008015812F07C0EFE9FFE03197F1F700C016\r\n\ +:1037800000008150882309F4BECFF5CFDF91CF919F\r\n\ +:103790001F9108956093B0017093B1018093B201BD\r\n\ +:1037A0009093B3010E94C81708956093B401709379\r\n\ +:1037B000B5018093B6019093B7010E94C817089590\r\n\ +:1037C00008950E94CA1B08952091B0013091B10163\r\n\ +:1037D0004091B2015091B301622B732B842B952B36\r\n\ +:1037E0000E94CA1B08952091B0013091B10140910F\r\n\ +:1037F000B2015091B30162237323842395230E9465\r\n\ +:10380000CA1B08952091B0013091B1014091B201DD\r\n\ +:103810005091B30162277327842795270E94CA1B02\r\n\ +:10382000089560E070E0CB010E94D51B089521E06F\r\n\ +:1038300030E040E050E004C0220F331F441F551F0A\r\n\ +:103840008A95D2F7CA01B9010E94D51B089521E0DB\r\n\ +:1038500030E040E050E004C0220F331F441F551FEA\r\n\ +:103860008A95D2F78091B4019091B501A091B601EB\r\n\ +:10387000B091B701282B392B4A2B5B2BCA01B90118\r\n\ +:103880000E94D51B089521E030E040E050E004C0E4\r\n\ +:10389000220F331F441F551F8A95D2F7209530956C\r\n\ +:1038A000409550958091B4019091B501A091B601D9\r\n\ +:1038B000B091B701282339234A235B23CA01B901F8\r\n\ +:1038C0000E94D51B089521E030E040E050E004C0A4\r\n\ +:1038D000220F331F441F551F8A95D2F78091B401E0\r\n\ +:1038E0009091B501A091B601B091B7012827392771\r\n\ +:1038F0004A275B27CA01B9010E94D51B0895209170\r\n\ +:10390000B4013091B5014091B6015091B701622BDD\r\n\ +:10391000732B842B952B0E94D51B08952091B40105\r\n\ +:103920003091B5014091B6015091B70162237323E4\r\n\ +:10393000842395230E94D51B08952091B4013091D2\r\n\ +:10394000B5014091B6015091B701622773278427D2\r\n\ +:1039500095270E94D51B08950895CF92DF92EF928C\r\n\ +:10396000FF920F931F93CF93DF936C01E090B00110\r\n\ +:10397000F090B1010091B2011091B3018091B401B6\r\n\ +:103980009091B501A091B601B091B701E82AF92A4A\r\n\ +:103990000A2B1B2BCFE1D0E0D801C7010C2E04C0AD\r\n\ +:1039A000B695A795979587950A94D2F781709070F0\r\n\ +:1039B000009739F08C2FB6010E949A1D8130910535\r\n\ +:1039C00049F421973FEFCF3FD30731F780E0B601AD\r\n\ +:1039D0000E949A1DDF91CF911F910F91FF90EF9060\r\n\ +:1039E000DF90CF9008958B3B50F4883A00F5853AEC\r\n\ +:1039F000A8F4843080F4813009F059C009C0803EB9\r\n\ +:103A000008F455C0883E38F0803F08F450C04BC0E1\r\n\ +:103A100021E030E08DC0282F30E08AC0853A09F4DB\r\n\ +:103A200049C0863A09F049C022E830E481C0883AAA\r\n\ +:103A300009F446C0893A09F446C08A3A09F446C0F6\r\n\ +:103A40008B3A09F446C08C3A09F446C08D3A09F421\r\n\ +:103A500046C0803B09F446C08E3A09F446C08F3A0E\r\n\ +:103A600009F446C0813B09F446C0823B09F446C0D4\r\n\ +:103A7000833B09F446C0843B09F446C0853B09F406\r\n\ +:103A800046C0863B09F446C0873B09F446C0883BE4\r\n\ +:103A900009F446C0893B09F446C08A3B09F046C098\r\n\ +:103AA0002AE236E445C0282F30E0306541C020E0EE\r\n\ +:103AB00030E03EC021E830E43BC023E830E438C0C9\r\n\ +:103AC00022EE34E435C029EE34E432C02AEE34E488\r\n\ +:103AD0002FC025EB34E42CC026EB34E429C027EBBF\r\n\ +:103AE00034E426C02CEC34E423C02DEC34E420C0B4\r\n\ +:103AF00023E835E41DC02AE835E41AC022E935E49C\r\n\ +:103B000017C024E935E414C021E236E411C023E2F1\r\n\ +:103B100036E40EC024E236E40BC025E236E408C0E9\r\n\ +:103B200026E236E405C027E236E402C020E034E4B1\r\n\ +:103B3000C90108950E94C10A803EB0F4803C20F57E\r\n\ +:103B4000813309F460C0823338F4893209F453C0F8\r\n\ +:103B50008A3209F067C05CC08933C9F08238B9F095\r\n\ +:103B6000853309F05FC042C0833E29F1843E30F4C2\r\n\ +:103B7000803EA1F0823E09F055C018C0863E29F172\r\n\ +:103B8000873E09F04FC026C00E94D20A0895909146\r\n\ +:103B9000C70190FD09C091FF42C006C08091C701D6\r\n\ +:103BA00080FF02C089E33BC080EE39C08091C7012D\r\n\ +:103BB00082FD07C004C08091C70182FF02C082EE6F\r\n\ +:103BC0002EC084FD0FC083EE2AC08091C70183FD03\r\n\ +:103BD00007C004C08091C70183FF02C086EE1FC0EA\r\n\ +:103BE00084FF02C080E01BC087EE19C08091C7012E\r\n\ +:103BF00085FF05C006C08091C70185FF02C085E32F\r\n\ +:103C00000EC089E20CC08091C70186FF05C006C0C6\r\n\ +:103C10008091C70186FF02C081E301C08AE20E9451\r\n\ +:103C2000F31C08950E94F31C089580E090E008952D\r\n\ +:103C3000089582E084BD93E095BD9AEF97BD80938F\r\n\ +:103C40006E0008958FB7F8942091B8013091B901B2\r\n\ +:103C50004091BA015091BB018FBFC9010895EF9205\r\n\ +:103C6000FF920F931F93FC018FB7F8942091B80136\r\n\ +:103C70003091B9014091BA015091BB018FBF8FEFD4\r\n\ +:103C8000E82E8FEFF82E012D112DE222F3220423CE\r\n\ +:103C90001523BF0180E090E0E616F7060807190734\r\n\ +:103CA00020F0B9016E1B7F0B05C0BF0160957095B8\r\n\ +:103CB000620F731FCB011F910F91FF90EF9008953A\r\n\ +:103CC0001F920F920FB60F9211248F939F93AF9371\r\n\ +:103CD000BF938091B8019091B901A091BA01B091C0\r\n\ +:103CE000BB010196A11DB11D8093B8019093B9014C\r\n\ +:103CF000A093BA01B093BB01BF91AF919F918F91F7\r\n\ +:103D00000F900FBE0F901F9018959093BD01809358\r\n\ +:103D1000BC0108950E94240EF8948FEF97EAA1E663\r\n\ +:103D200081509040A040E1F700C0000087E090EB98\r\n\ +:103D3000A7E0B0EB8093D7019093D801A093D9016D\r\n\ +:103D4000B093DA012CE088E190E00FB6F894A895E2\r\n\ +:103D5000809360000FBE20936000FFCFF894A89579\r\n\ +:103D600023E488E190E00FB6F894A8958093600072\r\n\ +:103D70000FBE2093600083B7817F846083BF83B7C9\r\n\ +:103D8000816083BF7894889583B78E7F83BF88E1F5\r\n\ +:103D90000FB6F89480936000109260000FBE0895F3\r\n\ +:103DA0001F930E94FD0710E0812F0E946008882366\r\n\ +:103DB00021F41F5F1E30C1F701C081E01F910895FB\r\n\ +:103DC0000E94D91708951F920F920FB60F921124D7\r\n\ +:103DD0000F900FBE0F901F9018959C0144275527F8\r\n\ +:103DE000211531054105510521F0CA01B901E0E174\r\n\ +:103DF00001C0E0E0272F382F492F55272115310525\r\n\ +:103E00004105510519F0E85FCA01B9019B01AC01F8\r\n\ +:103E1000B4E05695479537952795BA95D1F7211572\r\n\ +:103E200031054105510519F0EC5FCA01B9019B014B\r\n\ +:103E3000AC01A2E05695479537952795AA95D1F7FD\r\n\ +:103E4000211531054105510519F0EE5FCA01B9018F\r\n\ +:103E5000969587957795679561157105810591050B\r\n\ +:103E600009F0EF5F8E2F0895829590E09C012C7CE5\r\n\ +:103E70003070359527953595279583739070880F09\r\n\ +:103E8000991F880F991F822B90E09C012A7A30702D\r\n\ +:103E90003595279585759070880F991F822B089509\r\n\ +:103EA000EF92FF920F931F93CF93DF93E82EFF249F\r\n\ +:103EB0008F2D0E946008C0E0D0E0082F10E098012C\r\n\ +:103EC0000C2E02C0359527950A94E2F720FF07C013\r\n\ +:103ED00080E06C2F7F2D0E94C10AE81651F02196D8\r\n\ +:103EE000C830D10561F7F3943F2D3E3009F780E0EB\r\n\ +:103EF00001C081E0DF91CF911F910F91FF90EF9072\r\n\ +:103F000008951F93182F80EC0E94501F882321F0E2\r\n\ +:103F1000812F0E94501F01C080E01F9108951F93C0\r\n\ +:103F20000E94DF20882311F40E94C4208CE293E0D9\r\n\ +:103F30000E944C0714E608C00E94FD078FE39CE92D\r\n\ +:103F40000197F1F700C000001150B0F785E293E04F\r\n\ +:103F50000E944C0789E20E94811F882309F012C148\r\n\ +:103F60008AE20E94811F882311F00E94C42085E00C\r\n\ +:103F70000E94811F882311F00E948A1E0E94EB205C\r\n\ +:103F80008093C60187E00E94811F8823B9F18BE1ED\r\n\ +:103F90000E94811F882349F09091C601892F869540\r\n\ +:103FA00080958170880F9D7F26C08EE00E94811FC2\r\n\ +:103FB000882359F09091C601892F86958695809522\r\n\ +:103FC0008170880F880F9B7F16C080E10E94811F3F\r\n\ +:103FD0009091C601882359F0892F869586958695FC\r\n\ +:103FE00080958170880F880F880F977F04C0892F74\r\n\ +:103FF000809581709E7F982B9093C6018091C60119\r\n\ +:104000000E94F0200E9401218093C70180EE0E944F\r\n\ +:10401000811F882349F08091C701982F9095917056\r\n\ +:104020008E7F892B8093C70182E80E94811F88239D\r\n\ +:1040300059F09091C701892F869580958170880FDE\r\n\ +:104040009D7F982B9093C70182EE0E94811F882349\r\n\ +:1040500069F09091C701892F86958695809581702A\r\n\ +:10406000880F880F9B7F982B9093C70186EE0E9444\r\n\ +:10407000811F882379F09091C701892F86958695B5\r\n\ +:10408000869580958170880F880F880F977F982B71\r\n\ +:104090009093C70183EE0E94811F882369F090915D\r\n\ +:1040A000C701892F82958F70809581708295807F5E\r\n\ +:1040B0009F7E982B9093C70185E30E94811F8823E0\r\n\ +:1040C00079F09091C701892F8295869587708095A8\r\n\ +:1040D00081708295880F807E9F7D982B9093C70179\r\n\ +:1040E00081E30E94811F882389F09091C701892F65\r\n\ +:1040F0008295869586958370809581708295880FCC\r\n\ +:10410000880F807C9F7B982B9093C7018091C7017B\r\n\ +:104110000E94062187E20E94811F182F8EE10E94D3\r\n\ +:10412000811F811112608FE10E94811F8111146033\r\n\ +:1041300080E20E94811F8111186081E20E94811F2C\r\n\ +:104140008111106182E20E94811F8111106283E25D\r\n\ +:104150000E94811F8111106484E20E94811F8823C4\r\n\ +:1041600011F0106802C0112329F0812F0E94FB205A\r\n\ +:10417000612F03C00E94F620682F70E080E090E07D\r\n\ +:104180000E94E11B1F91089580E090E06DEE7EEFAC\r\n\ +:104190000E949E2D82E090E060E00E94902D83E0DE\r\n\ +:1041A00090E060E00E94902D84E090E060E00E944A\r\n\ +:1041B000902D85E090E060E00E94902D089580E0D1\r\n\ +:1041C00090E00E948A2D21E03EEF8D3E930709F09A\r\n\ +:1041D00020E0822F089582E090E00E94822D0895D1\r\n\ +:1041E000682F82E090E00E94902D089583E090E097\r\n\ +:1041F0000E94822D0895682F83E090E00E94902D08\r\n\ +:10420000089584E090E00E94822D0895682F84E054\r\n\ +:1042100090E00E94902D08958091BF0180FF0BC017\r\n\ +:104220006091280185E0689FB0011124759567951C\r\n\ +:104230007595679530C081FF09C06091280185E0C0\r\n\ +:10424000689FB00111247595679525C082FF07C04E\r\n\ +:104250006091280185E0689FB00111241CC0809105\r\n\ +:10426000BE018823F9F06091290120912801861769\r\n\ +:1042700028F065E0269FB00111240DC0829F9001B7\r\n\ +:104280001124C901880F991F880F991F820F931F4E\r\n\ +:1042900070E00E945B2D6038710540F46115710576\r\n\ +:1042A00039F002C065E070E0862F08958FE7089529\r\n\ +:1042B00081E008958091BF0180FF08C060912A01CC\r\n\ +:1042C00070E0759567957595679523C081FF06C069\r\n\ +:1042D00060912A0170E0759567951BC082FF03C04D\r\n\ +:1042E00060912A010BC08091BE018823D9F06091B2\r\n\ +:1042F0002B0190912A01861718F0692F70E006C0F3\r\n\ +:10430000899FC001112470E00E945B2D6038710507\r\n\ +:1043100028F46115710521F0862F08958FE708951F\r\n\ +:1043200081E0089561E070E0F4CF803F21F40E94C5\r\n\ +:104330000C21819504C0813F29F40E940C218093B7\r\n\ +:1043400058010895823F21F40E940C21819504C0F8\r\n\ +:10435000833F29F40E940C21809357010895893FDF\r\n\ +:1043600019F40E945A2105C08A3F31F40E945A2153\r\n\ +:1043700081958093590108958B3F21F40E945A2121\r\n\ +:10438000819504C08C3F29F40E945A2180935A01E0\r\n\ +:104390000895843F21F480915601816017C0853FC4\r\n\ +:1043A00021F480915601826011C0863F21F48091F2\r\n\ +:1043B000560184600BC0873F21F4809156018860CC\r\n\ +:1043C00005C0883F31F48091560180618093560189\r\n\ +:1043D00008958D3F21F48091BF01816005C08E3F1B\r\n\ +:1043E00031F48091BF0182608093BF0108958F3FB7\r\n\ +:1043F00029F48091BF0184608093BF010895803FBC\r\n\ +:1044000029F48091580187FF6FC007C0813F41F4B4\r\n\ +:104410008091580118160CF067C01092580164C0C2\r\n\ +:10442000823F29F48091570187FF5EC007C0833F18\r\n\ +:1044300041F48091570118160CF056C010925701A4\r\n\ +:1044400053C0893F29F48091590118163CF04CC0A3\r\n\ +:104450008A3F39F48091590187FF46C01092590173\r\n\ +:1044600043C08B3F29F480915A0187FF3DC006C0AD\r\n\ +:104470008C3F39F480915A011816B4F510925A0104\r\n\ +:1044800033C0843F21F4809156018E7F05C0853F63\r\n\ +:1044900031F4809156018D7F8093560125C0863F6F\r\n\ +:1044A00021F4809156018B7FF7CF873F21F48091D3\r\n\ +:1044B0005601877FF1CF883F21F4809156018F7E8E\r\n\ +:1044C000EBCF8D3F21F48091BF018E7F0BC08E3FDB\r\n\ +:1044D00021F48091BF018D7F05C08F3F29F4809129\r\n\ +:1044E000BF018B7F8093BF0180915701882371F4B6\r\n\ +:1044F00080915801882351F480915901882331F427\r\n\ +:1045000080915A01882311F41092BE010895809180\r\n\ +:10451000C60183FFC1C088E693E00E944C0700D02B\r\n\ +:1045200000D0EDB7FEB7319683E693E0ADB7BEB7E6\r\n\ +:1045300012969C938E9311978091560182831382D9\r\n\ +:104540000E94E5070F900F900F900F9081E693E087\r\n\ +:104550000E944C0700D000D08EE593E0EDB7FEB787\r\n\ +:104560009283818380915701992787FD9095948349\r\n\ +:1045700083830E94E5070F900F900F900F908CE5BA\r\n\ +:1045800093E00E944C0700D000D089E593E0ADB7DE\r\n\ +:10459000BEB712969C938E931197809158019927DC\r\n\ +:1045A00087FD909514969C938E9313970E94E50730\r\n\ +:1045B0000F900F900F900F9087E593E00E944C07AB\r\n\ +:1045C00000D000D084E593E0EDB7FEB792838183FD\r\n\ +:1045D00080915901992787FD9095948383830E9448\r\n\ +:1045E000E5070F900F900F900F9082E593E00E94E7\r\n\ +:1045F0004C0700D000D08FE493E0ADB7BEB7129661\r\n\ +:104600009C938E93119780915A01992787FD9095DD\r\n\ +:1046100014969C938E9313970E94E5070F900F902A\r\n\ +:104620000F900F908CE493E00E944C0700D000D0D4\r\n\ +:10463000EDB7FEB7319689E493E0ADB7BEB71296F9\r\n\ +:104640009C938E9311978091BE01828313820E9466\r\n\ +:10465000E5070F900F900F900F9087E493E00E9472\r\n\ +:104660004C0700D000D0EDB7FEB7319684E493E05C\r\n\ +:10467000ADB7BEB712969C938E9311978091BF01F0\r\n\ +:10468000828313820E94E5070F900F900F900F9086\r\n\ +:1046900081E493E00E944C0786E591E00E94F512C8\r\n\ +:1046A0000E94221E9093C1018093C00108951F9320\r\n\ +:1046B0008091C0019091C1010E942F1E4091BE01C6\r\n\ +:1046C000442321F02091270130E006C030912601DB\r\n\ +:1046D0002AE0329F900111248217930708F485C0C5\r\n\ +:1046E00080915701882369F490915801992349F4E6\r\n\ +:1046F00090915901992329F490915A01992309F431\r\n\ +:1047000074C04F3F19F04F5F4093BE01181624F458\r\n\ +:104710000E940C21809357018091570187FF05C0AB\r\n\ +:104720000E940C21819580935701809158011816A1\r\n\ +:1047300024F40E940C21809358018091580187FF36\r\n\ +:1047400005C00E940C21819580935801609157010A\r\n\ +:10475000662339F110915801112319F1772767FD6C\r\n\ +:104760007095872F972F0E946C2C23E333E343E34C\r\n\ +:104770005FE30E94D02C0E94392C60935701612F77\r\n\ +:10478000772767FD7095872F972F0E946C2C23E366\r\n\ +:1047900033E343E35FE30E94D02C0E94392C609303\r\n\ +:1047A000580180915901181624F40E945A218093CF\r\n\ +:1047B00059018091590187FF05C00E945A218195B6\r\n\ +:1047C0008093590180915A01181624F40E945A21AD\r\n\ +:1047D00080935A0180915A0187FF05C00E945A2197\r\n\ +:1047E000819580935A010E9487221F910895E6E5E2\r\n\ +:1047F000F1E085E0DF011D928A95E9F71092BE0194\r\n\ +:104800001092BF01089584E499E00E944C0787E369\r\n\ +:1048100099E00E944C078AE299E00E944C070895B3\r\n\ +:104820008BE99BE00E944C078EE89BE00E944C07BE\r\n\ +:1048300083E79BE00E944C0788E59BE00E944C07C1\r\n\ +:1048400080E49BE00E944C0786E29BE00E944C07BC\r\n\ +:1048500088E09BE00E944C0788EE9AE00E944C079B\r\n\ +:1048600084ED9AE00E944C078DEB9AE00E944C0781\r\n\ +:1048700081EA9AE00E944C0783E89AE00E944C0784\r\n\ +:1048800084E69AE00E944C0783E49AE00E944C0779\r\n\ +:104890008EE09AE00E944C0789EF99E00E944C0755\r\n\ +:1048A00000D000D086EF99E0EDB7FEB79283818308\r\n\ +:1048B00085E090E0948383830E94E5070F900F903A\r\n\ +:1048C0000F900F908DEE99E00E944C0700D000D021\r\n\ +:1048D0008AEE99E0EDB7FEB79283818381E090E0A4\r\n\ +:1048E000948383830E94E5070F900F900F900F90A1\r\n\ +:1048F00088EE99E00E944C078BEB99E00E944C07F0\r\n\ +:104900000895833009F46EC0843030F4813071F042\r\n\ +:10491000823009F022C138C0853009F4BFC085302B\r\n\ +:1049200008F48EC0863009F018C1E8C02091260135\r\n\ +:10493000822F90E0860F911D8F3F910520F4620F2A\r\n\ +:104940006093260103C08FEF8093260188E59DE0E8\r\n\ +:104950000E944C0700D000D0EDB7FEB7319685E538\r\n\ +:104960009DE0ADB7BEB712969C938E931197809140\r\n\ +:104970002601828313820E94E5070F900F900F900B\r\n\ +:104980000F9083E59DE0B7C020912701822F90E032\r\n\ +:10499000860F911D8F3F910520F4620F60932701D0\r\n\ +:1049A00003C08FEF8093270184E49DE00E944C07B1\r\n\ +:1049B00000D000D0EDB7FEB7319681E49DE0ADB7F1\r\n\ +:1049C000BEB712969C938E93119780912701828394\r\n\ +:1049D00013820E94E5070F900F900F900F908FE3C6\r\n\ +:1049E0009DE089C020912801822F90E0860F911DC3\r\n\ +:1049F0008F3F910520F4620F6093280103C08FEF71\r\n\ +:104A0000809328018FE29DE00E944C0700D000D0E7\r\n\ +:104A1000EDB7FEB731968CE29DE0ADB7BEB712960A\r\n\ +:104A20009C938E93119780912801828313820E9418\r\n\ +:104A3000E5070F900F900F900F908AE29DE05BC00A\r\n\ +:104A400020912901822F90E0860F911D8F3F9105C3\r\n\ +:104A500020F4620F6093290103C08FEF8093290136\r\n\ +:104A600088E19DE00E944C0700D000D0EDB7FEB772\r\n\ +:104A7000319685E19DE0ADB7BEB712969C938E93BB\r\n\ +:104A8000119780912901828313820E94E5070F907C\r\n\ +:104A90000F900F900F9083E19DE02DC020912A018F\r\n\ +:104AA000822F90E0860F911D8F3F910520F4620FB9\r\n\ +:104AB00060932A0103C08FEF80932A018DEF9CE061\r\n\ +:104AC0000E944C0700D000D0EDB7FEB731968AEFB8\r\n\ +:104AD0009CE0ADB7BEB712969C938E9311978091D0\r\n\ +:104AE0002A01828313820E94E5070F900F900F9096\r\n\ +:104AF0000F9088EF9CE00E944C07089520912B01B5\r\n\ +:104B0000822F90E0860F911D8F3F910520F4620F58\r\n\ +:104B100060932B0103C08FEF80932B0180EE9CE00C\r\n\ +:104B20000E944C0700D000D0EDB7FEB731968DED56\r\n\ +:104B30009CE0ADB7BEB712969C938E93119780916F\r\n\ +:104B40002B01828313820E94E5070F900F900F9034\r\n\ +:104B50000F908BED9CE00E944C070895833009F480\r\n\ +:104B600062C0843030F4813071F0823009F0FEC0D0\r\n\ +:104B700032C0853009F4A7C0853008F47CC0863087\r\n\ +:104B800009F0F4C0CAC080912601681720F4861B82\r\n\ +:104B90008093260102C01092260181EE9DE00E94C2\r\n\ +:104BA0004C0700D000D0EDB7FEB731968EED9DE0FA\r\n\ +:104BB000ADB7BEB712969C938E9311978091260144\r\n\ +:104BC000828313820E94E5070F900F900F900F9041\r\n\ +:104BD0008CED9DE09FC080912701681720F4861B13\r\n\ +:104BE0008093270102C0109227018DEC9DE00E9466\r\n\ +:104BF0004C0700D000D0EDB7FEB731968AEC9DE0AF\r\n\ +:104C0000ADB7BEB712969C938E93119780912701F2\r\n\ +:104C1000828313820E94E5070F900F900F900F90F0\r\n\ +:104C200088EC9DE077C080912801681720F4861BEE\r\n\ +:104C30008093280102C01092280188EB9DE00E9419\r\n\ +:104C40004C0700D000D0EDB7FEB7319685EB9DE064\r\n\ +:104C5000ADB7BEB712969C938E93119780912801A1\r\n\ +:104C6000828313820E94E5070F900F900F900F90A0\r\n\ +:104C700083EB9DE04FC080912901681720F4861BCB\r\n\ +:104C80008093290102C01092290181EA9DE00E94CF\r\n\ +:104C90004C0700D000D0EDB7FEB731968EE99DE00D\r\n\ +:104CA000ADB7BEB712969C938E9311978091290150\r\n\ +:104CB000828313820E94E5070F900F900F900F9050\r\n\ +:104CC0008CE99DE027C080912A01681720F4861B9B\r\n\ +:104CD00080932A0102C010922A0186E89DE00E947A\r\n\ +:104CE0004C0700D000D0EDB7FEB7319683E89DE0C9\r\n\ +:104CF000ADB7BEB712969C938E93119780912A01FF\r\n\ +:104D0000828313820E94E5070F900F900F900F90FF\r\n\ +:104D100081E89DE00E944C07089580912B0168175F\r\n\ +:104D200020F4861B80932B0102C010922B0189E690\r\n\ +:104D30009DE00E944C0700D000D0EDB7FEB7319641\r\n\ +:104D400086E69DE0ADB7BEB712969C938E93119701\r\n\ +:104D500080912B01828313820E94E5070F900F90B0\r\n\ +:104D60000F900F9084E69DE00E944C0708951F93DA\r\n\ +:104D7000182F8DE699E00E944C076091B001709168\r\n\ +:104D8000B1018091B2019091B3010E94ED1E00D05B\r\n\ +:104D900000D0EDB7FEB731962AE639E0ADB7BEB721\r\n\ +:104DA00012963C932E931197828313820E94E507FB\r\n\ +:104DB0000F900F900F900F9085E699E00E944C079E\r\n\ +:104DC00000D000D0EDB7FEB7319682E699E0ADB7DE\r\n\ +:104DD000BEB712969C938E931197128313820E94F2\r\n\ +:104DE000E5070F900F900F900F9080E699E00E94DA\r\n\ +:104DF0004C0761E070E080E090E004C0660F771F30\r\n\ +:104E0000881F991F1A95D2F70E94E11B0E94D9179B\r\n\ +:104E10001F91089580E008951F93182F8091C2017B\r\n\ +:104E2000813009F48CC3813020F0823009F01CC538\r\n\ +:104E3000B0C3A0912401B09125018C918E3019F05E\r\n\ +:104E4000873009F013C5812F0E940A27882309F0B3\r\n\ +:104E500073C3173250F51E3108F05FC31E3009F4DA\r\n\ +:104E6000B5C21F3078F4173009F48DC2183020F421\r\n\ +:104E7000163009F05AC360C21830B1F11B3009F086\r\n\ +:104E800054C313C2173109F4EFC2183138F410318A\r\n\ +:104E900009F4B2C2163109F048C306C3193109F446\r\n\ +:104EA000CAC21B3109F041C37DC2193309F4E3C101\r\n\ +:104EB0001A3380F4193209F42EC31A3220F417324F\r\n\ +:104EC00009F033C328C3153309F425C3183309F097\r\n\ +:104ED0002CC3EBC1163409F403C3163408F420C301\r\n\ +:104EE000183409F022C33BC28BE196E00E944C07C4\r\n\ +:104EF0008CE497E00E944C070E94F62000D000D07E\r\n\ +:104F0000EDB7FEB7319629E437E0ADB7BEB71296DC\r\n\ +:104F10003C932E931197828313820E94E5070F9092\r\n\ +:104F20000F900F900F9087E497E00E944C070E942B\r\n\ +:104F3000EB20182F84E397E00E944C0700D000D0AC\r\n\ +:104F4000EDB7FEB731968FE297E0ADB7BEB71296D8\r\n\ +:104F50009C938E931197128313820E94E5070F9002\r\n\ +:104F60000F900F900F908DE297E00E944C0783E224\r\n\ +:104F700097E00E944C0700D000D0EDB7FEB7319605\r\n\ +:104F800080E297E0ADB7BEB712969C938E931197CF\r\n\ +:104F9000812F8170828313820E94E5070F900F900A\r\n\ +:104FA0000F900F908EE197E00E944C0784E197E00C\r\n\ +:104FB0000E944C0700D000D0EDB7FEB7319681E1DA\r\n\ +:104FC00097E0ADB7BEB712969C938E931197812F41\r\n\ +:104FD00086958170828313820E94E5070F900F905F\r\n\ +:104FE0000F900F908FE097E00E944C0783E097E0CE\r\n\ +:104FF0000E944C0700D000D0EDB7FEB7319620E0FC\r\n\ +:1050000037E0ADB7BEB712963C932E931197812F20\r\n\ +:10501000869586958170828313820E94E5070F90A2\r\n\ +:105020000F900F900F908EEF96E00E944C0785EF47\r\n\ +:1050300096E00E944C0700D000D0EDB7FEB7319645\r\n\ +:1050400022EF36E0ADB7BEB712963C932E93119780\r\n\ +:105050001695169516951170128313820E94E50716\r\n\ +:105060000F900F900F900F9080EF96E00E944C07EA\r\n\ +:105070000E940121182F8CED96E00E944C0700D071\r\n\ +:1050800000D0EDB7FEB7319687ED96E0ADB7BEB76D\r\n\ +:1050900012969C938E931197128313820E94E507B8\r\n\ +:1050A0000F900F900F900F9085ED96E00E944C07A7\r\n\ +:1050B0008CEB96E00E944C0700D000D0EDB7FEB715\r\n\ +:1050C000319689EB96E0ADB7BEB712969C938E935E\r\n\ +:1050D0001197812F8170828313820E94E5070F90C0\r\n\ +:1050E0000F900F900F9087EB96E00E944C0780EA9C\r\n\ +:1050F00096E00E944C0700D000D0EDB7FEB7319685\r\n\ +:105100008DE996E0ADB7BEB712969C938E9311973A\r\n\ +:10511000812F86958170828313820E94E5070F900C\r\n\ +:105120000F900F900F908BE996E00E944C0789E852\r\n\ +:1051300096E00E944C0700D000D0EDB7FEB7319644\r\n\ +:1051400086E896E0ADB7BEB712969C938E93119702\r\n\ +:10515000812F869586958170828313820E94E50750\r\n\ +:105160000F900F900F900F9084E896E00E944C07EC\r\n\ +:1051700082E796E00E944C0700D000D0EDB7FEB762\r\n\ +:1051800031968FE696E0ADB7BEB712969C938E939C\r\n\ +:105190001197812F869586958695817082831382DB\r\n\ +:1051A0000E94E5070F900F900F900F908DE696E00C\r\n\ +:1051B0000E944C0783E696E00E944C0700D000D086\r\n\ +:1051C000EDB7FEB7319680E696E0ADB7BEB7129662\r\n\ +:1051D0009C938E931197812F829581708283138285\r\n\ +:1051E0000E94E5070F900F900F900F908EE596E0CC\r\n\ +:1051F0000E944C078CE496E00E944C0700D000D03F\r\n\ +:10520000EDB7FEB7319689E496E0ADB7BEB712961A\r\n\ +:105210009C938E931197812F8295869581708283BE\r\n\ +:1052200013820E94E5070F900F900F900F9087E474\r\n\ +:1052300096E00E944C078BE296E00E944C0700D05B\r\n\ +:1052400000D0EDB7FEB7319688E296E0ADB7BEB7B5\r\n\ +:1052500012969C938E931197129516951695117030\r\n\ +:10526000128313820E94E5070F900F900F900F900A\r\n\ +:1052700086E296E0F6C00E949712009769F00E94BD\r\n\ +:1052800097129093C4018093C30180E090E00E9444\r\n\ +:10529000921282E196E0E5C08091C3019091C40131\r\n\ +:1052A0000E94921287E096E0DCC08EE099E00E94B6\r\n\ +:1052B0004C0787EF98E00E944C078FED98E00E9422\r\n\ +:1052C0004C0787EC98E00E944C078DEA98E00E941A\r\n\ +:1052D0004C0786E998E00E944C0786E798E00E9418\r\n\ +:1052E0004C0780E698E00E944C078FE498E00E940B\r\n\ +:1052F0004C0787E398E00E944C078DE198E00E94FC\r\n\ +:105300004C0784E098E00E944C078BEE97E00E94E7\r\n\ +:105310004C0782ED97E00E944C0789EB97E00E94D2\r\n\ +:105320004C0788E997E00E944C0786E797E00E94C7\r\n\ +:105330004C078CE597E095C08091C601807F8093F3\r\n\ +:10534000C6010E94032482EF95E00E944C078EEE76\r\n\ +:1053500095E00E944C0781E08093C201EDC00E945D\r\n\ +:10536000D91785ED95E00E944C078FEF93EDA0E3F0\r\n\ +:1053700081509040A040E1F700C000000E948A1ECA\r\n\ +:1053800085EC95E06EC08091C60180FF08C082EB7D\r\n\ +:1053900095E00E944C078091C601807F46C080EA5C\r\n\ +:1053A00095E03EC09091C601892F869580958170C9\r\n\ +:1053B000282F220F9D7F922B9093C601882319F0EE\r\n\ +:1053C00087E895E02DC08DE695E04BC09091C60131\r\n\ +:1053D000892F8695869580958170282F220F220F20\r\n\ +:1053E0009B7F922B9093C601882319F082E595E06C\r\n\ +:1053F00017C086E395E035C09091C601892F869548\r\n\ +:105400008695869580958170282F220F220F220F76\r\n\ +:10541000977F922B9093C601882351F08EE195E0FF\r\n\ +:105420000E944C078091C60181608093C60184C0B0\r\n\ +:1054300085E095E016C08EEE94E00E944C0789EC62\r\n\ +:1054400094E00E944C0782E894E00E944C078BE4B1\r\n\ +:1054500094E00E944C078CEF93E00E944C0781ED92\r\n\ +:1054600093E00E944C0768C08091B8019091B90107\r\n\ +:10547000A091BA01B091BB0100D000D000D02DEBBB\r\n\ +:1054800033E0EDB7FEB73283218383839483A58312\r\n\ +:10549000B6830E94E5078DB79EB706960FB6F894BF\r\n\ +:1054A0009EBF0FBE8DBF48C087EA93E00E944C07A5\r\n\ +:1054B0000E949C1200D000D0EDB7FEB731962DE8C7\r\n\ +:1054C00033E0ADB7BEB712963C932E93119782830B\r\n\ +:1054D00013820E94E5070F900F900F900F902CC041\r\n\ +:1054E00081E890E00E9400138FEF91EEA4E08150DC\r\n\ +:1054F0009040A040E1F700C0000080E090E00E94F2\r\n\ +:1055000000138FEF99E6A8E181509040A040E1F7A9\r\n\ +:1055100000C0000011C080E005C0812F8D5102C085\r\n\ +:10552000812F89530E94B72607C08BE893E00E9421\r\n\ +:105530004C0780E090E09BC181E090E098C114317D\r\n\ +:1055400081F0153128F41B3039F01031F9F410C016\r\n\ +:10555000193239F01833D1F40E94032484E899E019\r\n\ +:105560007FC187EA99E00E944C071092C2017AC17C\r\n\ +:105570000E9410248EE899E00E944C078AE899E086\r\n\ +:105580000E944C0782E08093C2016CC188E899E0D8\r\n\ +:1055900067C1183288F41E3108F0F1C01B3009F1E0\r\n\ +:1055A0001C3020F4173009F03BC125C1133151F1F3\r\n\ +:1055B000143109F035C118C01B3409F410C11C3472\r\n\ +:1055C00030F4193289F0183309F02AC10AC01135B4\r\n\ +:1055D00009F401C1123509F4FAC01E3409F020C1E2\r\n\ +:1055E00004C10E9410241FC11092C50180E09CE0FC\r\n\ +:1055F0000E944C078CEF9BE00E944C0781E0809357\r\n\ +:10560000C20135C188EB9CE00E944C0783EA9CE014\r\n\ +:105610000E944C0700D000D0EDB7FEB7319680EA6B\r\n\ +:105620009CE0ADB7BEB712969C938E931197809174\r\n\ +:105630002601828313820E94E5070F900F900F903E\r\n\ +:105640000F908EE99CE00E944C0789E89CE00E9444\r\n\ +:105650004C0700D000D0EDB7FEB7319686E89CE04D\r\n\ +:10566000ADB7BEB712969C938E9311978091270188\r\n\ +:10567000828313820E94E5070F900F900F900F9086\r\n\ +:1056800084E89CE00E944C0782E79CE00E944C0763\r\n\ +:1056900000D000D0EDB7FEB731968FE69CE0ADB7F5\r\n\ +:1056A000BEB712969C938E931197809128018283A6\r\n\ +:1056B00013820E94E5070F900F900F900F908DE6D8\r\n\ +:1056C0009CE00E944C0789E59CE00E944C0700D0BA\r\n\ +:1056D00000D0EDB7FEB7319686E59CE0ADB7BEB71A\r\n\ +:1056E00012969C938E931197809129018283138245\r\n\ +:1056F0000E94E5070F900F900F900F9084E59CE0BB\r\n\ +:105700000E944C078CE39CE00E944C0700D000D024\r\n\ +:10571000EDB7FEB7319689E39CE0ADB7BEB7129600\r\n\ +:105720009C938E93119780912A01828313820E9409\r\n\ +:10573000E5070F900F900F900F9087E39CE00E9479\r\n\ +:105740004C078DE19CE00E944C0700D000D0EDB7E3\r\n\ +:10575000FEB731968AE19CE0ADB7BEB712969C9336\r\n\ +:105760008E93119780912B01828313820E94E5070B\r\n\ +:105770000F900F900F900F9088E19CE025C01E5174\r\n\ +:10578000E12FF0E0E45DFE4F80818093C50187EE5C\r\n\ +:105790009BE00E944C0700D000D0EDB7FEB73196D9\r\n\ +:1057A00084EE9BE0ADB7BEB712969C938E93119793\r\n\ +:1057B0008091C501828313820E94E5070F900F90AC\r\n\ +:1057C0000F900F9082EE9BE00E944C072CC08091BE\r\n\ +:1057D000C50161E007C08091C50161E009C0809109\r\n\ +:1057E000C5016AE00E9481241EC08091C5016AE063\r\n\ +:1057F0000E94AE2518C08EE18093260182E380933B\r\n\ +:1058000027018AE08093280184E18093290188E0C0\r\n\ +:1058100080932A0188E280932B018DEC9BE0D4CF0A\r\n\ +:105820008BEC9BE01DC089EC9BE00E944C0700D0F4\r\n\ +:1058300000D0EDB7FEB7319686EC9BE0ADB7BEB7B2\r\n\ +:1058400012969C938E9311978091C5018283138247\r\n\ +:105850000E94E5070F900F900F900F9083EC9BE054\r\n\ +:105860000E944C0781E003C01092C20180E01F91AA\r\n\ +:10587000089504D06894B1118DC0089570D088F057\r\n\ +:105880009F5790F0B92F9927B751A0F0D1F0660F2C\r\n\ +:10589000771F881F991F1AF0BA95C9F712C0B13047\r\n\ +:1058A00081F077D0B1E0089574C0672F782F8827F2\r\n\ +:1058B000B85F39F0B93FCCF3869577956795B39586\r\n\ +:1058C000D9F73EF490958095709561957F4F8F4FF5\r\n\ +:1058D0009F4F0895E89409C097FB3EF490958095FA\r\n\ +:1058E000709561957F4F8F4F9F4F9923A9F0F92FA6\r\n\ +:1058F00096E9BB279395F695879577956795B79524\r\n\ +:10590000F111F8CFFAF4BB0F11F460FF1BC06F5F09\r\n\ +:105910007F4F8F4F9F4F16C0882311F096E911C01B\r\n\ +:10592000772321F09EE8872F762F05C0662371F03C\r\n\ +:1059300096E8862F70E060E02AF09A95660F771F50\r\n\ +:10594000881FDAF7880F9695879597F9089557FD80\r\n\ +:105950009058440F551F59F05F3F71F04795880FDD\r\n\ +:1059600097FB991F61F09F3F79F087950895121674\r\n\ +:1059700013061406551FF2CF4695F1DF08C0161620\r\n\ +:1059800017061806991FF1CF8695710561050894D1\r\n\ +:105990000895E894BB2766277727CB0197F90895E8\r\n\ +:1059A0000BD078C069D028F06ED018F0952309F09C\r\n\ +:1059B0005AC05FC01124EECFCADFA0F3959FD1F388\r\n\ +:1059C000950F50E0551F629FF001729FBB27F00DAD\r\n\ +:1059D000B11D639FAA27F00DB11DAA1F649F662702\r\n\ +:1059E000B00DA11D661F829F2227B00DA11D621F51\r\n\ +:1059F000739FB00DA11D621F839FA00D611D221F0B\r\n\ +:105A0000749F3327A00D611D231F849F600D211DEE\r\n\ +:105A1000822F762F6A2F11249F5750408AF0E1F091\r\n\ +:105A200088234AF0EE0FFF1FBB1F661F771F881FDA\r\n\ +:105A300091505040A9F79E3F510570F014C0AACF75\r\n\ +:105A40005F3FECF3983EDCF3869577956795B795C5\r\n\ +:105A5000F795E7959F5FC1F7FE2B880F911D9695EF\r\n\ +:105A6000879597F9089597F99F6780E870E060E05F\r\n\ +:105A700008959FEF80EC089500240A9416161706E7\r\n\ +:105A800018060906089500240A941216130614062F\r\n\ +:105A900005060895092E0394000C11F4882352F092\r\n\ +:105AA000BB0F40F4BF2B11F460FF04C06F5F7F4F4A\r\n\ +:105AB0008F4F9F4F089597FB092E07260AD077FD39\r\n\ +:105AC00004D00CD006D000201AF4709561957F4F59\r\n\ +:105AD0000895F6F7909581959F4F0895AA1BBB1BDB\r\n\ +:105AE00051E107C0AA1FBB1FA617B70710F0A61BDE\r\n\ +:105AF000B70B881F991F5A95A9F780959095BC01FF\r\n\ +:105B0000CD010895F999FECF92BD81BDF89A9927EC\r\n\ +:105B100080B50895A8E1B0E042E050E00C94A52DD6\r\n\ +:105B2000262FF999FECF1FBA92BD81BD20BD0FB6B9\r\n\ +:105B3000F894FA9AF99A0FBE019608950E94902D52\r\n\ +:105B4000272F0C94912DDC01CB01FC01F999FECF9C\r\n\ +:105B500006C0F2BDE1BDF89A319600B40D924150F5\r\n\ +:0A5B60005040B8F70895F894FFCF05\r\n\ +:105B6A00DC0AAF0B950B6A0B400B01470260027906\r\n\ +:105B7A0002920241018001CD0103023F004D00362D\r\n\ +:105B8A000020000861011E320A14082801020304D9\r\n\ +:065B9A00050607080900E2\r\n\ +"; +} diff --git a/editor/m0110/m0110a.html b/editor/m0110/m0110a.html new file mode 100644 index 00000000..adce38e7 --- /dev/null +++ b/editor/m0110/m0110a.html @@ -0,0 +1,549 @@ + + + TMK Keymap Editor + + + + + + + + + + + +

TMK Keymap Editor

+ +

M0110A

+
+
+
+ + + + + + + + +
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
*1
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
*1
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+ + +

Keycodes

+
+ + + +
+ + +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + +
+

+ See this for detailed description of keymap.
+ See this for TRNS.
+

+
+ + +
+ + +
+
+ + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ + + +
+
+ + + + + + + + + + +
+
+ Keypad:
+ + + + + + + + + + +
+ + + + + + + + + + +
+
+ Japanese:
+ + + + + +
+
+ Korean:
+ + +
+
+ + Mechanical Locking key support:
+ + + + + + + + + +
+ + +
+ + +
+
+ + System:
+ + + +
+ + Volume:
+ + + +
+ + Media:
+ + + + + + +
+ + Application:
+ + + +
+ Web:
+ + + + + + + +
+
+ + + + Mouse key:
+ + + + +
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ + +
+ + +
+
+ + + + Layer Switch Momentary:
+ + + + + + + +
+ Layer Switch Toggle:
+ + + +
+ Layer Switch with Tap Toggle:
+ + + +
+ Layer switch with Tap key:
+ + + + + + + +
+
+ Modifier with special function:
+ + + + +
+ + + +
+ + + +
+ + +
+

+ See this for detail of Layer Switching.
+ See this for Tap key(Dual-role Modifier).
+ See this for OneShot Modifier.
+

+
+
+ +

Firmware Hex File Download:

+ + + +

Share URL:

+ +
+ + + +

Keymap Output(for debug):

+ +
+ + + + + + + +