Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jensen
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Skye Yu
jensen
Commits
3e69499f
Commit
3e69499f
authored
May 28, 2025
by
martin hou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加用于消息解码的测试脚本
parent
8bf74e01
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
446 additions
and
0 deletions
+446
-0
msg-parser.html
src/msg-parser.html
+446
-0
No files found.
src/msg-parser.html
0 → 100644
View file @
3e69499f
<!doctype html>
<html>
<head>
<meta
charset=
"UTF-8"
/>
</head>
<body>
<script>
const
INVAILD
=
0x00
;
const
QUERY_DEVICE_INFO
=
0x01
;
const
QUERY_DEVICE_TIME
=
0x02
;
const
SET_DEVICE_TIME
=
0x03
;
const
QUERY_FILE_LIST
=
0x04
;
const
TRANSFER_FILE
=
0x05
;
const
QUERY_FILE_COUNT
=
0x06
;
const
DELETE_FILE
=
0x07
;
const
REQUEST_FIRMWARE_UPGRADE
=
0x08
;
const
FIRMWARE_UPLOAD
=
0x09
;
const
READ_CARD_INFO
=
0x10
;
const
FORMAT_CARD
=
0x11
;
const
GET_RECORDING_FILE
=
0x12
;
const
RESTORE_FACTORY_SETTINGS
=
0x13
;
const
SCHEDULE_INFO
=
0x14
;
const
DEVICE_MSG_TEST
=
0x0a
;
const
BNC_DEMO_TEST
=
0x0a
;
const
GET_SETTINGS
=
0x0b
;
const
SET_SETTINGS
=
0x0c
;
const
GET_FILE_BLOCK
=
0x0d
;
const
TRANSFER_FILE_PARTIAL
=
0x15
;
const
REQUEST_TONE_UPDATE
=
0x16
;
const
TONE_UPDATE
=
0x17
;
const
REQUEST_UAC_UPDATE
=
0x18
;
const
UAC_UPDATE
=
0x19
;
const
FACTORY_RESET
=
0xf00b
;
const
REALTIME_READ_SETTING
=
0x20
;
const
REALTIME_CONTROL
=
0x21
;
const
REALTIME_TRANSFER
=
0x22
;
const
BLUETOOTH_SCAN
=
0x1001
;
const
BLUETOOTH_CMD
=
0x1002
;
const
BLUETOOTH_STATUS
=
0x1003
;
const
TEST_SN_WRITE
=
0xf007
;
const
RECORD_TEST_START
=
0xf008
;
const
RECORD_TEST_END
=
0xf009
;
const
COMMAND_NAMES
=
{
[
INVAILD
]:
'invalid-0'
,
[
QUERY_DEVICE_INFO
]:
'get-device-info'
,
[
QUERY_DEVICE_TIME
]:
'get-device-time'
,
[
SET_DEVICE_TIME
]:
'set-device-time'
,
[
QUERY_FILE_LIST
]:
'get-file-list'
,
[
TRANSFER_FILE
]:
'transfer-file'
,
[
QUERY_FILE_COUNT
]:
'get-file-count'
,
[
DELETE_FILE
]:
'delete-file'
,
[
REQUEST_FIRMWARE_UPGRADE
]:
'request-firmware-upgrade'
,
[
FIRMWARE_UPLOAD
]:
'firmware-upload'
,
[
READ_CARD_INFO
]:
'read card info'
,
[
FORMAT_CARD
]:
'format card'
,
[
GET_RECORDING_FILE
]:
'get recording file'
,
[
RESTORE_FACTORY_SETTINGS
]:
'restore factory settings'
,
[
SCHEDULE_INFO
]:
'send meeting schedule info'
,
[
DEVICE_MSG_TEST
]:
'device msg test'
,
[
BNC_DEMO_TEST
]:
'bnc demo test'
,
[
GET_SETTINGS
]:
'get-settings'
,
[
SET_SETTINGS
]:
'set-settings'
,
[
GET_FILE_BLOCK
]:
'get file block'
,
[
FACTORY_RESET
]:
'factory reset'
,
[
TEST_SN_WRITE
]:
'test sn write'
,
[
RECORD_TEST_START
]:
'record test start'
,
[
RECORD_TEST_END
]:
'record test end'
,
[
BLUETOOTH_SCAN
]:
'bluetooth-scan'
,
[
BLUETOOTH_CMD
]:
'bluetooth-cmd'
,
[
BLUETOOTH_STATUS
]:
'bluetooth-status'
};
</script>
<script>
let
hex
=
[
"12"
,
"34"
,
"0"
,
"4"
,
"0"
,
"0"
,
"0"
,
"1"
,
"0"
,
"0"
,
"1c"
,
"86"
,
"ff"
,
"ff"
,
"0"
,
"0"
,
"0"
,
"82"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6c"
,
"31"
,
"38"
,
"2d"
,
"31"
,
"31"
,
"32"
,
"31"
,
"34"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"39"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"72"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3a"
,
"96"
,
"45"
,
"9a"
,
"16"
,
"63"
,
"6d"
,
"d3"
,
"cc"
,
"78"
,
"94"
,
"e9"
,
"cc"
,
"d4"
,
"c4"
,
"16"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6c"
,
"31"
,
"38"
,
"2d"
,
"31"
,
"31"
,
"32"
,
"31"
,
"35"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"39"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"33"
,
"83"
,
"dc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"4"
,
"d0"
,
"8d"
,
"b3"
,
"2e"
,
"0"
,
"e5"
,
"e7"
,
"b9"
,
"57"
,
"ad"
,
"e1"
,
"6b"
,
"ae"
,
"13"
,
"24"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6c"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"33"
,
"35"
,
"31"
,
"32"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"1b"
,
"4d"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"cb"
,
"a2"
,
"2c"
,
"8e"
,
"48"
,
"f5"
,
"ce"
,
"80"
,
"b3"
,
"f8"
,
"d6"
,
"fb"
,
"25"
,
"d0"
,
"90"
,
"5c"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"33"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"34"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"34"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"35"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"31"
,
"35"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"32"
,
"30"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"32"
,
"30"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"32"
,
"31"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"35"
,
"35"
,
"31"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"33"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"90"
,
"81"
,
"3"
,
"14"
,
"f6"
,
"f7"
,
"6f"
,
"6d"
,
"44"
,
"28"
,
"e8"
,
"1d"
,
"2b"
,
"1"
,
"4f"
,
"20"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"30"
,
"31"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"37"
,
"33"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"75"
,
"67"
,
"30"
,
"36"
,
"2d"
,
"31"
,
"37"
,
"35"
,
"35"
,
"31"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1a"
,
"f3"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"9e"
,
"d"
,
"d4"
,
"3c"
,
"d6"
,
"16"
,
"fb"
,
"60"
,
"90"
,
"43"
,
"93"
,
"7b"
,
"2d"
,
"fb"
,
"f8"
,
"77"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"34"
,
"33"
,
"33"
,
"34"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"34"
,
"33"
,
"35"
,
"35"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"a2"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e0"
,
"40"
,
"78"
,
"3f"
,
"78"
,
"54"
,
"ec"
,
"55"
,
"d8"
,
"5a"
,
"67"
,
"8"
,
"d9"
,
"4d"
,
"94"
,
"c3"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"34"
,
"33"
,
"37"
,
"31"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"34"
,
"35"
,
"35"
,
"32"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"98"
,
"d0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"16"
,
"e2"
,
"3"
,
"84"
,
"51"
,
"fd"
,
"12"
,
"e0"
,
"1e"
,
"b6"
,
"86"
,
"8c"
,
"66"
,
"a6"
,
"35"
,
"7f"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"34"
,
"35"
,
"38"
,
"31"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"6c"
,
"70"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"cf"
,
"b5"
,
"fa"
,
"37"
,
"31"
,
"52"
,
"8c"
,
"aa"
,
"15"
,
"99"
,
"41"
,
"22"
,
"3f"
,
"7b"
,
"c8"
,
"6d"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"30"
,
"32"
,
"33"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"27"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"bc"
,
"d0"
,
"7"
,
"c9"
,
"4d"
,
"50"
,
"5c"
,
"19"
,
"f2"
,
"2b"
,
"99"
,
"9e"
,
"32"
,
"9d"
,
"f"
,
"bd"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"30"
,
"34"
,
"33"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"39"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"ed"
,
"6b"
,
"b3"
,
"31"
,
"d4"
,
"38"
,
"a3"
,
"c9"
,
"fa"
,
"47"
,
"7"
,
"b9"
,
"b1"
,
"ff"
,
"77"
,
"a9"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"30"
,
"34"
,
"34"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"30"
,
"36"
,
"32"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"79"
,
"32"
,
"3d"
,
"98"
,
"d4"
,
"af"
,
"ec"
,
"5e"
,
"77"
,
"81"
,
"8e"
,
"e0"
,
"4f"
,
"f7"
,
"cb"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"34"
,
"30"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"e8"
,
"d0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"7"
,
"da"
,
"48"
,
"8a"
,
"48"
,
"4e"
,
"d3"
,
"48"
,
"62"
,
"5b"
,
"ca"
,
"75"
,
"c4"
,
"3"
,
"29"
,
"fe"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"34"
,
"32"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"86"
,
"70"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"7a"
,
"b3"
,
"8c"
,
"15"
,
"15"
,
"8d"
,
"a1"
,
"f4"
,
"59"
,
"98"
,
"ec"
,
"e"
,
"2d"
,
"d9"
,
"88"
,
"f7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"38"
,
"30"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"fa"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"af"
,
"e5"
,
"5c"
,
"bc"
,
"f4"
,
"c"
,
"49"
,
"4c"
,
"74"
,
"77"
,
"f8"
,
"d9"
,
"e8"
,
"1e"
,
"8b"
,
"53"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"38"
,
"33"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"68"
,
"90"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"bf"
,
"77"
,
"b0"
,
"91"
,
"cd"
,
"ad"
,
"d2"
,
"44"
,
"f4"
,
"b2"
,
"17"
,
"84"
,
"ad"
,
"ee"
,
"2c"
,
"21"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"39"
,
"35"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"d3"
,
"58"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"45"
,
"34"
,
"32"
,
"39"
,
"e1"
,
"78"
,
"21"
,
"cd"
,
"96"
,
"3a"
,
"4f"
,
"9f"
,
"d7"
,
"b8"
,
"c5"
,
"fb"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"32"
,
"33"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"95"
,
"90"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"50"
,
"bf"
,
"75"
,
"1d"
,
"c8"
,
"3a"
,
"fc"
,
"c6"
,
"e1"
,
"ea"
,
"35"
,
"7a"
,
"28"
,
"12"
,
"ef"
,
"8b"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"33"
,
"30"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"bf"
,
"d4"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"af"
,
"c4"
,
"ed"
,
"13"
,
"a4"
,
"c3"
,
"55"
,
"9a"
,
"a4"
,
"81"
,
"e1"
,
"9f"
,
"d4"
,
"4e"
,
"3c"
,
"37"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"35"
,
"33"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"6c"
,
"70"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3a"
,
"84"
,
"f"
,
"f4"
,
"3b"
,
"9e"
,
"22"
,
"ab"
,
"53"
,
"81"
,
"fd"
,
"c8"
,
"70"
,
"d5"
,
"f0"
,
"ea"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"36"
,
"30"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"c4"
,
"d4"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"5f"
,
"67"
,
"fa"
,
"91"
,
"41"
,
"91"
,
"72"
,
"b8"
,
"2d"
,
"ed"
,
"31"
,
"db"
,
"77"
,
"1e"
,
"fe"
,
"7d"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"37"
,
"30"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"8"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"f2"
,
"59"
,
"f3"
,
"cc"
,
"be"
,
"96"
,
"7d"
,
"7c"
,
"35"
,
"dd"
,
"c4"
,
"1"
,
"13"
,
"d5"
,
"8a"
,
"45"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"36"
,
"33"
,
"39"
,
"30"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"13"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c1"
,
"92"
,
"99"
,
"95"
,
"a8"
,
"68"
,
"d6"
,
"aa"
,
"61"
,
"e2"
,
"eb"
,
"87"
,
"1"
,
"8"
,
"34"
,
"56"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"36"
,
"33"
,
"39"
,
"33"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"ac"
,
"b4"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1d"
,
"8b"
,
"6b"
,
"9e"
,
"f9"
,
"d8"
,
"8f"
,
"df"
,
"72"
,
"b5"
,
"8a"
,
"e"
,
"b6"
,
"aa"
,
"9"
,
"3f"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"37"
,
"30"
,
"38"
,
"35"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"30"
,
"53"
,
"c8"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"f9"
,
"cc"
,
"99"
,
"99"
,
"45"
,
"f"
,
"39"
,
"4"
,
"1"
,
"f4"
,
"59"
,
"9b"
,
"1d"
,
"8b"
,
"18"
,
"82"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"37"
,
"32"
,
"33"
,
"35"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"ed"
,
"c"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e2"
,
"ab"
,
"ea"
,
"1f"
,
"6d"
,
"fe"
,
"86"
,
"6e"
,
"e5"
,
"fd"
,
"cb"
,
"54"
,
"7e"
,
"73"
,
"5f"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"37"
,
"35"
,
"36"
,
"31"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"6d"
,
"85"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"64"
,
"2d"
,
"5d"
,
"4a"
,
"98"
,
"78"
,
"3f"
,
"bd"
,
"fa"
,
"30"
,
"45"
,
"fe"
,
"ef"
,
"38"
,
"20"
,
"b3"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"38"
,
"31"
,
"31"
,
"35"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"11"
,
"69"
,
"58"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"89"
,
"49"
,
"78"
,
"bc"
,
"75"
,
"4f"
,
"bc"
,
"61"
,
"4b"
,
"51"
,
"af"
,
"c0"
,
"47"
,
"39"
,
"54"
,
"3e"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"30"
,
"38"
,
"35"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2f"
,
"33"
,
"b0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"4a"
,
"e6"
,
"b6"
,
"3c"
,
"30"
,
"6a"
,
"c6"
,
"a5"
,
"c8"
,
"bd"
,
"17"
,
"5d"
,
"e8"
,
"79"
,
"d6"
,
"82"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"31"
,
"30"
,
"2d"
,
"31"
,
"30"
,
"30"
,
"33"
,
"35"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"7c"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"63"
,
"5b"
,
"f4"
,
"24"
,
"9a"
,
"d5"
,
"ae"
,
"c0"
,
"e6"
,
"33"
,
"ee"
,
"bc"
,
"54"
,
"88"
,
"39"
,
"47"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"30"
,
"32"
,
"31"
,
"34"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"97"
,
"9c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"d0"
,
"25"
,
"cf"
,
"83"
,
"d9"
,
"8"
,
"42"
,
"fc"
,
"d3"
,
"6"
,
"d"
,
"d7"
,
"da"
,
"d1"
,
"8d"
,
"7a"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"30"
,
"32"
,
"35"
,
"34"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"4d"
,
"7c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b5"
,
"c7"
,
"69"
,
"be"
,
"99"
,
"eb"
,
"1d"
,
"90"
,
"1"
,
"bc"
,
"e7"
,
"4c"
,
"f5"
,
"86"
,
"7c"
,
"4e"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"38"
,
"34"
,
"38"
,
"32"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"6"
,
"ac"
,
"60"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"9"
,
"d5"
,
"d9"
,
"20"
,
"39"
,
"d8"
,
"6"
,
"9"
,
"ee"
,
"3"
,
"5b"
,
"7d"
,
"a0"
,
"a"
,
"12"
,
"e2"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"38"
,
"34"
,
"34"
,
"34"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"3a"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"95"
,
"7f"
,
"a6"
,
"3a"
,
"ff"
,
"34"
,
"1d"
,
"12"
,
"bb"
,
"53"
,
"c7"
,
"ae"
,
"6c"
,
"6d"
,
"71"
,
"5c"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"38"
,
"35"
,
"37"
,
"30"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"38"
,
"1c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"ac"
,
"96"
,
"c3"
,
"69"
,
"d9"
,
"cb"
,
"36"
,
"b"
,
"6c"
,
"46"
,
"c6"
,
"1"
,
"5b"
,
"b6"
,
"90"
,
"7f"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"30"
,
"38"
,
"31"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"19"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"8d"
,
"8c"
,
"24"
,
"1a"
,
"94"
,
"42"
,
"c6"
,
"7a"
,
"bf"
,
"51"
,
"33"
,
"c8"
,
"46"
,
"4c"
,
"2e"
,
"3"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"31"
,
"34"
,
"33"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"d3"
,
"fc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"8"
,
"7d"
,
"22"
,
"7f"
,
"7e"
,
"68"
,
"e1"
,
"d8"
,
"0"
,
"b7"
,
"6c"
,
"14"
,
"bd"
,
"1b"
,
"65"
,
"f6"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"32"
,
"30"
,
"31"
,
"33"
,
"30"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"71"
,
"9c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1c"
,
"d"
,
"94"
,
"f4"
,
"aa"
,
"1a"
,
"cb"
,
"2d"
,
"52"
,
"30"
,
"75"
,
"92"
,
"7a"
,
"3d"
,
"b1"
,
"15"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"31"
,
"39"
,
"33"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"65"
,
"1c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"49"
,
"f0"
,
"16"
,
"ef"
,
"5e"
,
"cf"
,
"4e"
,
"d"
,
"d9"
,
"fd"
,
"e5"
,
"a0"
,
"7"
,
"2"
,
"a9"
,
"9c"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"36"
,
"2d"
,
"32"
,
"30"
,
"31"
,
"34"
,
"32"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"28"
,
"5c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3"
,
"7c"
,
"2d"
,
"cc"
,
"d5"
,
"28"
,
"1b"
,
"4c"
,
"7"
,
"8b"
,
"3a"
,
"5d"
,
"5d"
,
"95"
,
"9e"
,
"c9"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"38"
,
"2d"
,
"31"
,
"31"
,
"31"
,
"34"
,
"31"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"5b"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"fa"
,
"3e"
,
"ab"
,
"16"
,
"42"
,
"69"
,
"b5"
,
"68"
,
"67"
,
"45"
,
"e7"
,
"3e"
,
"e1"
,
"fb"
,
"8f"
,
"49"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"70"
,
"72"
,
"32"
,
"38"
,
"2d"
,
"31"
,
"31"
,
"32"
,
"33"
,
"35"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"cb"
,
"fc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"27"
,
"5"
,
"4a"
,
"a8"
,
"2d"
,
"b9"
,
"c2"
,
"21"
,
"6a"
,
"20"
,
"95"
,
"a1"
,
"57"
,
"c4"
,
"e9"
,
"4d"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"32"
,
"2d"
,
"31"
,
"36"
,
"35"
,
"31"
,
"32"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"d"
,
"7c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"25"
,
"79"
,
"22"
,
"d6"
,
"88"
,
"7f"
,
"42"
,
"70"
,
"81"
,
"7a"
,
"21"
,
"79"
,
"79"
,
"1f"
,
"39"
,
"b3"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"39"
,
"30"
,
"36"
,
"30"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"24"
,
"9c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"69"
,
"10"
,
"a7"
,
"55"
,
"b6"
,
"6a"
,
"c0"
,
"ac"
,
"d9"
,
"4f"
,
"f3"
,
"85"
,
"eb"
,
"8d"
,
"e3"
,
"d"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"39"
,
"30"
,
"36"
,
"31"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"24"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"d"
,
"c7"
,
"cc"
,
"6f"
,
"a0"
,
"23"
,
"29"
,
"87"
,
"a9"
,
"57"
,
"de"
,
"de"
,
"2b"
,
"7f"
,
"d1"
,
"6b"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"39"
,
"2d"
,
"31"
,
"31"
,
"32"
,
"35"
,
"35"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"17"
,
"ae"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"24"
,
"dd"
,
"af"
,
"c7"
,
"84"
,
"86"
,
"65"
,
"0"
,
"3c"
,
"9a"
,
"9b"
,
"a1"
,
"23"
,
"fd"
,
"98"
,
"a9"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"75"
,
"67"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"30"
,
"34"
,
"38"
,
"35"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"14"
,
"9c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"d3"
,
"41"
,
"eb"
,
"bb"
,
"5"
,
"23"
,
"7b"
,
"af"
,
"b1"
,
"9"
,
"59"
,
"b0"
,
"5b"
,
"d8"
,
"e0"
,
"c8"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"75"
,
"67"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"38"
,
"32"
,
"39"
,
"30"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"89"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"5e"
,
"d9"
,
"6d"
,
"73"
,
"1c"
,
"4d"
,
"70"
,
"b6"
,
"44"
,
"11"
,
"af"
,
"c0"
,
"fd"
,
"78"
,
"5f"
,
"9b"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6e"
,
"31"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"30"
,
"33"
,
"33"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"aa"
,
"7c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e"
,
"79"
,
"c4"
,
"3b"
,
"cc"
,
"34"
,
"92"
,
"bf"
,
"8e"
,
"67"
,
"a"
,
"60"
,
"6c"
,
"64"
,
"d7"
,
"29"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6e"
,
"31"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"30"
,
"31"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"38"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"73"
,
"50"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"f"
,
"2b"
,
"de"
,
"3b"
,
"cb"
,
"fc"
,
"9d"
,
"58"
,
"c0"
,
"d8"
,
"99"
,
"5b"
,
"c3"
,
"c0"
,
"a4"
,
"48"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4a"
,
"75"
,
"6e"
,
"31"
,
"34"
,
"2d"
,
"31"
,
"30"
,
"31"
,
"34"
,
"35"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"39"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"68"
,
"b4"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"52"
,
"b9"
,
"7b"
,
"e5"
,
"ad"
,
"19"
,
"d2"
,
"4c"
,
"d2"
,
"cb"
,
"1c"
,
"3a"
,
"2e"
,
"59"
,
"4d"
,
"31"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"41"
,
"75"
,
"67"
,
"32"
,
"35"
,
"2d"
,
"31"
,
"38"
,
"33"
,
"30"
,
"30"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"7"
,
"91"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"22"
,
"f"
,
"17"
,
"b8"
,
"50"
,
"f0"
,
"e8"
,
"9"
,
"e"
,
"11"
,
"ad"
,
"71"
,
"3a"
,
"16"
,
"d"
,
"97"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"31"
,
"39"
,
"2d"
,
"31"
,
"38"
,
"34"
,
"32"
,
"33"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"2c"
,
"fc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b8"
,
"9e"
,
"80"
,
"69"
,
"6d"
,
"fd"
,
"4c"
,
"69"
,
"90"
,
"a2"
,
"87"
,
"1d"
,
"eb"
,
"ad"
,
"8b"
,
"f2"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"33"
,
"2d"
,
"31"
,
"37"
,
"35"
,
"33"
,
"35"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"ae"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"21"
,
"4a"
,
"67"
,
"a5"
,
"d"
,
"8f"
,
"f1"
,
"23"
,
"aa"
,
"44"
,
"96"
,
"4"
,
"6a"
,
"fe"
,
"8c"
,
"3f"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"33"
,
"2d"
,
"31"
,
"37"
,
"35"
,
"36"
,
"33"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"8e"
,
"3c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"55"
,
"34"
,
"4"
,
"e4"
,
"c3"
,
"14"
,
"84"
,
"f4"
,
"60"
,
"e1"
,
"a8"
,
"ef"
,
"2"
,
"c8"
,
"7c"
,
"6b"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"33"
,
"2d"
,
"31"
,
"37"
,
"35"
,
"39"
,
"35"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"6e"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c3"
,
"3a"
,
"28"
,
"3b"
,
"99"
,
"0"
,
"b9"
,
"13"
,
"dc"
,
"30"
,
"80"
,
"41"
,
"8a"
,
"74"
,
"86"
,
"a6"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"33"
,
"2d"
,
"31"
,
"38"
,
"30"
,
"35"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"30"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"c"
,
"5c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"aa"
,
"7d"
,
"bf"
,
"5e"
,
"61"
,
"5d"
,
"6"
,
"72"
,
"1c"
,
"92"
,
"d6"
,
"7a"
,
"2"
,
"87"
,
"f2"
,
"9b"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"33"
,
"2d"
,
"31"
,
"38"
,
"31"
,
"30"
,
"35"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"43"
,
"dc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"92"
,
"de"
,
"c5"
,
"ba"
,
"8a"
,
"5c"
,
"16"
,
"3c"
,
"78"
,
"ec"
,
"6"
,
"45"
,
"51"
,
"ba"
,
"9c"
,
"3a"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"34"
,
"2d"
,
"31"
,
"37"
,
"30"
,
"38"
,
"31"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"85"
,
"60"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"cc"
,
"b1"
,
"48"
,
"cb"
,
"ca"
,
"57"
,
"44"
,
"bf"
,
"6"
,
"ec"
,
"bc"
,
"7"
,
"c1"
,
"13"
,
"f7"
,
"5d"
,
"1"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"53"
,
"65"
,
"70"
,
"32"
,
"34"
,
"2d"
,
"31"
,
"37"
,
"30"
,
"38"
,
"35"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"9"
,
"64"
,
"bc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3d"
,
"f"
,
"16"
,
"6d"
,
"40"
,
"2c"
,
"b4"
,
"90"
,
"72"
,
"97"
,
"f"
,
"f0"
,
"32"
,
"6e"
,
"69"
,
"cd"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"32"
,
"34"
,
"2d"
,
"31"
,
"32"
,
"33"
,
"35"
,
"33"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"4d"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"4d"
,
"5d"
,
"eb"
,
"a6"
,
"31"
,
"84"
,
"32"
,
"f9"
,
"4e"
,
"47"
,
"89"
,
"84"
,
"a0"
,
"fc"
,
"2d"
,
"35"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"32"
,
"35"
,
"32"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"8"
,
"53"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3a"
,
"a6"
,
"df"
,
"33"
,
"e3"
,
"7d"
,
"e5"
,
"70"
,
"c2"
,
"61"
,
"72"
,
"17"
,
"ff"
,
"2a"
,
"5e"
,
"9e"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"34"
,
"37"
,
"35"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"8"
,
"eb"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e3"
,
"f2"
,
"c2"
,
"3e"
,
"8e"
,
"48"
,
"7a"
,
"ff"
,
"b1"
,
"8e"
,
"de"
,
"3e"
,
"58"
,
"4f"
,
"e5"
,
"99"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"33"
,
"33"
,
"34"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"31"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"11"
,
"8e"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"18"
,
"5f"
,
"ee"
,
"7b"
,
"97"
,
"f1"
,
"cd"
,
"75"
,
"64"
,
"59"
,
"8e"
,
"3f"
,
"13"
,
"0"
,
"78"
,
"36"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"30"
,
"35"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"5c"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"18"
,
"4e"
,
"81"
,
"94"
,
"6b"
,
"7b"
,
"f0"
,
"38"
,
"a5"
,
"e4"
,
"6d"
,
"e9"
,
"c8"
,
"21"
,
"e7"
,
"b0"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"31"
,
"2d"
,
"31"
,
"36"
,
"34"
,
"34"
,
"34"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"9"
,
"5d"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"a5"
,
"4f"
,
"72"
,
"b1"
,
"c6"
,
"d0"
,
"56"
,
"70"
,
"11"
,
"2"
,
"be"
,
"87"
,
"2a"
,
"0"
,
"e0"
,
"8d"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4f"
,
"63"
,
"74"
,
"33"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"32"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"b"
,
"1"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"8c"
,
"1"
,
"dd"
,
"12"
,
"3f"
,
"73"
,
"b5"
,
"c7"
,
"b0"
,
"5"
,
"24"
,
"ad"
,
"e8"
,
"15"
,
"a5"
,
"b0"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"34"
,
"2d"
,
"30"
,
"39"
,
"34"
,
"30"
,
"35"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"29"
,
"8c"
,
"f8"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e8"
,
"e"
,
"5b"
,
"9d"
,
"bf"
,
"7a"
,
"3e"
,
"96"
,
"96"
,
"78"
,
"2d"
,
"a9"
,
"84"
,
"90"
,
"f6"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"34"
,
"2d"
,
"31"
,
"36"
,
"32"
,
"31"
,
"35"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"8"
,
"d8"
,
"9c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"64"
,
"ef"
,
"7b"
,
"43"
,
"53"
,
"34"
,
"74"
,
"77"
,
"1f"
,
"c4"
,
"3a"
,
"8f"
,
"46"
,
"3"
,
"e0"
,
"a9"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"34"
,
"2d"
,
"32"
,
"30"
,
"33"
,
"37"
,
"32"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"d7"
,
"da"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"7"
,
"63"
,
"1b"
,
"58"
,
"5f"
,
"c3"
,
"54"
,
"d8"
,
"1d"
,
"1b"
,
"83"
,
"6"
,
"f2"
,
"b2"
,
"5f"
,
"33"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"35"
,
"2d"
,
"31"
,
"30"
,
"30"
,
"35"
,
"34"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"2"
,
"e2"
,
"1"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"ab"
,
"45"
,
"d8"
,
"3c"
,
"3a"
,
"42"
,
"9e"
,
"9b"
,
"df"
,
"5b"
,
"d"
,
"15"
,
"d3"
,
"1f"
,
"34"
,
"70"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"35"
,
"2d"
,
"31"
,
"32"
,
"31"
,
"35"
,
"35"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"e0"
,
"54"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"64"
,
"57"
,
"d3"
,
"44"
,
"6d"
,
"7"
,
"cd"
,
"9"
,
"a2"
,
"c0"
,
"8"
,
"4a"
,
"b1"
,
"23"
,
"57"
,
"99"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"35"
,
"2d"
,
"31"
,
"32"
,
"31"
,
"36"
,
"33"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"32"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"22"
,
"a"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"88"
,
"9b"
,
"13"
,
"4"
,
"1f"
,
"ef"
,
"69"
,
"c8"
,
"25"
,
"64"
,
"61"
,
"33"
,
"7"
,
"db"
,
"87"
,
"c5"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"30"
,
"38"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"35"
,
"30"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"d"
,
"ae"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"22"
,
"dd"
,
"aa"
,
"b0"
,
"5c"
,
"90"
,
"33"
,
"48"
,
"36"
,
"a5"
,
"b6"
,
"85"
,
"28"
,
"d9"
,
"dc"
,
"74"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"31"
,
"2d"
,
"30"
,
"39"
,
"35"
,
"34"
,
"30"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3b"
,
"a2"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"35"
,
"dd"
,
"36"
,
"b3"
,
"8f"
,
"51"
,
"b4"
,
"44"
,
"20"
,
"a9"
,
"a5"
,
"f"
,
"b9"
,
"f9"
,
"32"
,
"d7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"34"
,
"2d"
,
"31"
,
"34"
,
"32"
,
"30"
,
"32"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"c"
,
"91"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"5f"
,
"b7"
,
"47"
,
"58"
,
"5"
,
"76"
,
"b9"
,
"6d"
,
"d1"
,
"1d"
,
"7b"
,
"f4"
,
"a5"
,
"e4"
,
"31"
,
"57"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"34"
,
"2d"
,
"31"
,
"34"
,
"33"
,
"32"
,
"32"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"9c"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"31"
,
"9d"
,
"7"
,
"2f"
,
"91"
,
"33"
,
"9a"
,
"f9"
,
"78"
,
"d"
,
"63"
,
"fb"
,
"d0"
,
"28"
,
"bb"
,
"22"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"34"
,
"2d"
,
"31"
,
"38"
,
"35"
,
"33"
,
"34"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"85"
,
"4"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"2a"
,
"b3"
,
"74"
,
"64"
,
"9a"
,
"85"
,
"fe"
,
"5e"
,
"2f"
,
"ba"
,
"69"
,
"7c"
,
"79"
,
"8a"
,
"a8"
,
"a0"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"38"
,
"2d"
,
"30"
,
"39"
,
"34"
,
"30"
,
"30"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"5"
,
"df"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"64"
,
"42"
,
"70"
,
"a4"
,
"d5"
,
"1a"
,
"6"
,
"4c"
,
"d1"
,
"e5"
,
"75"
,
"c7"
,
"4f"
,
"fd"
,
"90"
,
"47"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"31"
,
"39"
,
"2d"
,
"31"
,
"31"
,
"34"
,
"35"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"a6"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"27"
,
"ba"
,
"72"
,
"a3"
,
"3c"
,
"77"
,
"4f"
,
"40"
,
"9"
,
"9d"
,
"e5"
,
"44"
,
"7e"
,
"d7"
,
"c8"
,
"ab"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"37"
,
"35"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"13"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"d"
,
"6b"
,
"7a"
,
"b6"
,
"c7"
,
"ed"
,
"e6"
,
"58"
,
"bf"
,
"6e"
,
"b8"
,
"cc"
,
"79"
,
"6f"
,
"68"
,
"70"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"33"
,
"31"
,
"32"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"ab"
,
"81"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"30"
,
"d3"
,
"d2"
,
"a8"
,
"46"
,
"48"
,
"76"
,
"42"
,
"97"
,
"28"
,
"f1"
,
"26"
,
"2e"
,
"7d"
,
"48"
,
"fc"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"35"
,
"35"
,
"31"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"33"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"20"
,
"56"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e7"
,
"fa"
,
"2"
,
"1c"
,
"f1"
,
"65"
,
"9b"
,
"74"
,
"ef"
,
"df"
,
"56"
,
"8c"
,
"eb"
,
"34"
,
"71"
,
"19"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"36"
,
"30"
,
"30"
,
"35"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"48"
,
"9f"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"a1"
,
"54"
,
"42"
,
"9b"
,
"4d"
,
"2a"
,
"a"
,
"68"
,
"c9"
,
"d7"
,
"ba"
,
"9c"
,
"72"
,
"6e"
,
"5c"
,
"6f"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"4e"
,
"6f"
,
"76"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"36"
,
"31"
,
"30"
,
"35"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"3"
,
"a"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"5b"
,
"25"
,
"42"
,
"99"
,
"30"
,
"f7"
,
"7a"
,
"bd"
,
"75"
,
"a3"
,
"6d"
,
"88"
,
"18"
,
"10"
,
"6f"
,
"a8"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"44"
,
"65"
,
"63"
,
"30"
,
"39"
,
"2d"
,
"31"
,
"38"
,
"33"
,
"38"
,
"34"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5b"
,
"8c"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"96"
,
"e8"
,
"8d"
,
"93"
,
"4e"
,
"6b"
,
"4"
,
"9e"
,
"4"
,
"cd"
,
"ce"
,
"9d"
,
"5d"
,
"65"
,
"88"
,
"21"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"34"
,
"44"
,
"65"
,
"63"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"37"
,
"31"
,
"30"
,
"35"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"59"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1a"
,
"78"
,
"d4"
,
"82"
,
"2c"
,
"f6"
,
"a1"
,
"64"
,
"80"
,
"db"
,
"6e"
,
"98"
,
"1f"
,
"14"
,
"a7"
,
"92"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4a"
,
"61"
,
"6e"
,
"32"
,
"34"
,
"2d"
,
"31"
,
"38"
,
"30"
,
"30"
,
"31"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"16"
,
"98"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"eb"
,
"ca"
,
"8c"
,
"d"
,
"14"
,
"be"
,
"6b"
,
"a3"
,
"5e"
,
"9e"
,
"97"
,
"b7"
,
"4b"
,
"69"
,
"e4"
,
"62"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"35"
,
"33"
,
"32"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"f0"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3f"
,
"ff"
,
"36"
,
"36"
,
"e3"
,
"dd"
,
"1c"
,
"da"
,
"5f"
,
"28"
,
"d7"
,
"5c"
,
"1c"
,
"ca"
,
"42"
,
"49"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"35"
,
"38"
,
"30"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"50"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"2"
,
"1b"
,
"89"
,
"89"
,
"10"
,
"ad"
,
"59"
,
"c4"
,
"c8"
,
"44"
,
"78"
,
"30"
,
"a4"
,
"3c"
,
"c6"
,
"5b"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"30"
,
"35"
,
"39"
,
"35"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"6"
,
"b4"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"de"
,
"1f"
,
"da"
,
"96"
,
"5e"
,
"dd"
,
"fd"
,
"97"
,
"9f"
,
"ce"
,
"da"
,
"7f"
,
"4d"
,
"b5"
,
"26"
,
"4b"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"30"
,
"34"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"a"
,
"5d"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1a"
,
"20"
,
"1f"
,
"f7"
,
"5e"
,
"be"
,
"ff"
,
"8f"
,
"b1"
,
"ee"
,
"c1"
,
"ca"
,
"28"
,
"2f"
,
"29"
,
"c5"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"30"
,
"39"
,
"31"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"34"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"6"
,
"1e"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b1"
,
"44"
,
"28"
,
"e0"
,
"18"
,
"46"
,
"4e"
,
"95"
,
"78"
,
"4"
,
"ec"
,
"1f"
,
"dd"
,
"76"
,
"46"
,
"32"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"31"
,
"31"
,
"30"
,
"34"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"43"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"4d"
,
"dc"
,
"f2"
,
"e5"
,
"0"
,
"0"
,
"e2"
,
"bb"
,
"28"
,
"1d"
,
"84"
,
"50"
,
"c5"
,
"a3"
,
"f8"
,
"b3"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"38"
,
"2d"
,
"31"
,
"35"
,
"35"
,
"32"
,
"30"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"8"
,
"d7"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"df"
,
"6b"
,
"11"
,
"51"
,
"31"
,
"7d"
,
"74"
,
"32"
,
"ae"
,
"29"
,
"be"
,
"17"
,
"87"
,
"8c"
,
"f0"
,
"e2"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"46"
,
"65"
,
"62"
,
"32"
,
"38"
,
"2d"
,
"31"
,
"35"
,
"35"
,
"36"
,
"32"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"8"
,
"ea"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1f"
,
"bb"
,
"62"
,
"5"
,
"c4"
,
"2c"
,
"4d"
,
"d4"
,
"db"
,
"4f"
,
"67"
,
"1e"
,
"3"
,
"25"
,
"70"
,
"7d"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"30"
,
"31"
,
"2d"
,
"31"
,
"36"
,
"33"
,
"35"
,
"34"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"6"
,
"18"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"de"
,
"78"
,
"be"
,
"5c"
,
"c7"
,
"73"
,
"19"
,
"d0"
,
"69"
,
"e8"
,
"94"
,
"4c"
,
"99"
,
"5f"
,
"cb"
,
"38"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"30"
,
"31"
,
"2d"
,
"31"
,
"36"
,
"33"
,
"38"
,
"32"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"b"
,
"5"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b9"
,
"81"
,
"1f"
,
"27"
,
"b5"
,
"d9"
,
"5e"
,
"84"
,
"16"
,
"61"
,
"31"
,
"31"
,
"59"
,
"2c"
,
"d9"
,
"28"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"32"
,
"31"
,
"39"
,
"34"
,
"31"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"12"
,
"ab"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"67"
,
"5a"
,
"60"
,
"95"
,
"d"
,
"77"
,
"72"
,
"9d"
,
"6d"
,
"f5"
,
"29"
,
"d3"
,
"a6"
,
"91"
,
"35"
,
"b"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"32"
,
"31"
,
"2d"
,
"31"
,
"32"
,
"32"
,
"34"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"36"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"c"
,
"2"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"f0"
,
"cb"
,
"9b"
,
"44"
,
"77"
,
"a2"
,
"70"
,
"7e"
,
"19"
,
"ab"
,
"f8"
,
"6f"
,
"8a"
,
"f3"
,
"92"
,
"f0"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"32"
,
"32"
,
"2d"
,
"31"
,
"32"
,
"31"
,
"35"
,
"33"
,
"38"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"7"
,
"a7"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"8a"
,
"25"
,
"d"
,
"f7"
,
"ad"
,
"f1"
,
"b1"
,
"55"
,
"77"
,
"a8"
,
"2b"
,
"bb"
,
"35"
,
"e9"
,
"3e"
,
"9a"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"41"
,
"70"
,
"72"
,
"32"
,
"32"
,
"2d"
,
"31"
,
"39"
,
"32"
,
"37"
,
"32"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"c"
,
"97"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"3d"
,
"c3"
,
"9a"
,
"d8"
,
"86"
,
"e4"
,
"7c"
,
"a1"
,
"ea"
,
"4e"
,
"47"
,
"92"
,
"ec"
,
"5b"
,
"8f"
,
"d2"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"38"
,
"35"
,
"39"
,
"32"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"35"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"14"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"1a"
,
"1e"
,
"5"
,
"bf"
,
"19"
,
"51"
,
"59"
,
"93"
,
"29"
,
"da"
,
"5f"
,
"60"
,
"34"
,
"b4"
,
"19"
,
"4c"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"30"
,
"32"
,
"30"
,
"34"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"6"
,
"3f"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b6"
,
"cd"
,
"81"
,
"29"
,
"9d"
,
"e6"
,
"ab"
,
"7d"
,
"e1"
,
"5c"
,
"eb"
,
"64"
,
"24"
,
"a2"
,
"80"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"36"
,
"2d"
,
"31"
,
"39"
,
"35"
,
"39"
,
"33"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"f"
,
"8e"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b9"
,
"ec"
,
"ff"
,
"32"
,
"d7"
,
"16"
,
"11"
,
"6b"
,
"99"
,
"6b"
,
"3e"
,
"dd"
,
"e1"
,
"a5"
,
"c9"
,
"fa"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"36"
,
"2d"
,
"32"
,
"30"
,
"30"
,
"31"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"1"
,
"23"
,
"55"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"c5"
,
"9c"
,
"99"
,
"9f"
,
"27"
,
"c9"
,
"bf"
,
"69"
,
"d7"
,
"15"
,
"82"
,
"e8"
,
"34"
,
"4a"
,
"fb"
,
"29"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"36"
,
"2d"
,
"32"
,
"30"
,
"34"
,
"34"
,
"35"
,
"36"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"33"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"89"
,
"56"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"85"
,
"1f"
,
"3a"
,
"b"
,
"b9"
,
"a8"
,
"29"
,
"27"
,
"5b"
,
"a3"
,
"ea"
,
"cd"
,
"7"
,
"4d"
,
"e6"
,
"e7"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"32"
,
"33"
,
"31"
,
"30"
,
"35"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"34"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"2"
,
"2"
,
"2c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"6c"
,
"93"
,
"6c"
,
"6f"
,
"ba"
,
"c1"
,
"e7"
,
"b0"
,
"a"
,
"11"
,
"69"
,
"8d"
,
"e3"
,
"dc"
,
"21"
,
"16"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"34"
,
"31"
,
"30"
,
"31"
,
"33"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"35"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"4"
,
"ba"
,
"8c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"8f"
,
"70"
,
"b9"
,
"1c"
,
"1"
,
"58"
,
"3"
,
"1e"
,
"94"
,
"ff"
,
"c6"
,
"92"
,
"16"
,
"e7"
,
"50"
,
"ea"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"33"
,
"33"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"37"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"c"
,
"ac"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e5"
,
"ab"
,
"70"
,
"17"
,
"42"
,
"c4"
,
"33"
,
"30"
,
"1b"
,
"69"
,
"92"
,
"46"
,
"7e"
,
"3b"
,
"2"
,
"ce"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"31"
,
"34"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"38"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"5"
,
"7f"
,
"6c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"b8"
,
"43"
,
"4b"
,
"4b"
,
"18"
,
"be"
,
"88"
,
"30"
,
"40"
,
"ca"
,
"25"
,
"7d"
,
"b7"
,
"c3"
,
"85"
,
"c6"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"31"
,
"35"
,
"32"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"36"
,
"39"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"97"
,
"ec"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"58"
,
"d4"
,
"bc"
,
"f5"
,
"68"
,
"7b"
,
"6b"
,
"9f"
,
"8c"
,
"ee"
,
"3f"
,
"28"
,
"86"
,
"9d"
,
"7f"
,
"8b"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"32"
,
"31"
,
"30"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"30"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"0"
,
"c3"
,
"cc"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"52"
,
"3e"
,
"70"
,
"f6"
,
"7e"
,
"13"
,
"ed"
,
"ca"
,
"87"
,
"1"
,
"17"
,
"59"
,
"bc"
,
"be"
,
"3c"
,
"c3"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"32"
,
"35"
,
"31"
,
"37"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"31"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"32"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"e7"
,
"75"
,
"76"
,
"33"
,
"e7"
,
"f8"
,
"9a"
,
"f6"
,
"1c"
,
"5a"
,
"75"
,
"15"
,
"4d"
,
"95"
,
"9c"
,
"f2"
,
"0"
,
"0"
,
"0"
,
"1b"
,
"32"
,
"30"
,
"32"
,
"35"
,
"4d"
,
"61"
,
"79"
,
"32"
,
"37"
,
"2d"
,
"31"
,
"35"
,
"35"
,
"33"
,
"34"
,
"39"
,
"2d"
,
"52"
,
"65"
,
"63"
,
"37"
,
"32"
,
"2e"
,
"68"
,
"64"
,
"61"
,
"0"
,
"0"
,
"1"
,
"44"
,
"c"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"0"
,
"ef"
,
"7e"
,
"15"
,
"84"
,
"f1"
,
"3a"
,
"98"
,
"c1"
,
"1a"
,
"d9"
,
"9b"
,
"c6"
,
"7b"
,
"6e"
,
"9"
,
"86"
];
const
Logger
=
{
debug
:
function
(
module
,
action
,
msg
)
{
console
.
log
(
module
,
action
,
msg
);
},
error
:
function
(
module
,
action
,
msg
)
{
console
.
log
(
module
,
action
,
msg
);
},
info
:
function
(
module
,
action
,
msg
)
{
console
.
log
(
module
,
action
,
msg
);
}
}
const
GLOBAL_CMD_HANDLER
=
(
msg
)
=>
{
let
data
=
[];
let
files
=
[];
let
fcount
=
-
1
;
let
start
=
0
;
/*
// 这里是为了将多次应答的文件列表组合成一个整体
for (let i = 0; i < jensen[tag].length; i++) {
for (let k = 0; k < jensen[tag][i].length; k++) data.push(jensen[tag][i][k]);
}
*/
data
=
msg
.
body
;
if
((
data
[
0
]
&
0xff
)
==
0xff
&&
(
data
[
1
]
&
0xff
)
==
0xff
)
{
fcount
=
((
data
[
2
]
&
0xff
)
<<
24
)
|
((
data
[
3
]
&
0xff
)
<<
16
)
|
((
data
[
4
]
&
0xff
)
<<
8
)
|
(
data
[
5
]
&
0xff
);
start
+=
6
;
}
let
fnpad
=
function
(
v
)
{
return
v
>
9
?
v
:
'0'
+
v
;
};
for
(
let
i
=
start
;
i
<
data
.
length
;)
{
let
len
=
0
;
let
fname
=
[];
if
(
i
+
4
>=
data
.
length
)
break
;
let
ver
=
data
[
i
++
]
&
0xff
;
let
nameLen
=
((
data
[
i
++
]
&
0xff
)
<<
16
)
|
((
data
[
i
++
]
&
0xff
)
<<
8
)
|
(
data
[
i
++
]
&
0xff
);
for
(
let
k
=
0
;
k
<
nameLen
&&
i
<
data
.
length
;
k
++
)
{
let
c
=
data
[
i
++
]
&
0xff
;
if
(
c
>
0
)
fname
.
push
(
String
.
fromCharCode
(
c
));
}
// 4 + nameLen + 4 + 6 + 16
if
(
i
+
4
+
6
+
16
>
data
.
length
)
{
break
;
}
let
flen
=
((
data
[
i
++
]
&
0xff
)
<<
24
)
|
((
data
[
i
++
]
&
0xff
)
<<
16
)
|
((
data
[
i
++
]
&
0xff
)
<<
8
)
|
(
data
[
i
++
]
&
0xff
);
i
+=
6
;
let
sign
=
[];
for
(
let
k
=
0
;
k
<
16
;
k
++
,
i
++
)
{
let
h
=
(
data
[
i
]
&
0xff
).
toString
(
16
);
sign
.
push
(
h
.
length
==
1
?
'0'
+
h
:
h
);
}
let
ftime
=
fname
.
join
(
''
);
let
duration
=
0
;
if
(
ftime
.
match
(
/^
\d{14}
REC
\d
+
\.
wav$/gi
))
{
ftime
=
ftime
.
replace
(
/^
(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})
REC.*$/gi
,
'$1-$2-$3 $4:$5:$6'
);
ftime
=
new
Date
(
ftime
);
duration
=
flen
/
32
;
}
else
if
(
ftime
.
match
(
/^
(\d{2})?(\d{2})(\w{3})(\d{2})
-
(\d{2})(\d{2})(\d{2})
-.*
\.(
hda|wav
)
$/gi
))
{
// 2024Mar19-110932-Rec00.hda
ftime
=
ftime
.
replace
(
/^
(\d{2})?(\d{2})(\w{3})(\d{2})
-
(\d{2})(\d{2})(\d{2})
-.*
\.(
hda|wav
)
$/gi
,
'20$2 $3 $4 $5:$6:$7'
);
ftime
=
new
Date
(
ftime
);
duration
=
(
flen
/
32
)
*
4
;
}
else
{
ftime
=
null
;
}
if
(
ver
==
1
)
{
duration
=
duration
*
2
;
}
else
if
(
ver
==
2
)
{
duration
=
(
flen
-
44
)
/
48
/
2
;
}
else
if
(
ver
==
3
)
{
duration
=
(
flen
-
44
)
/
48
/
2
/
2
;
}
else
if
(
ver
==
5
)
{
duration
=
flen
/
12
;
}
let
createDate
=
''
;
let
createTime
=
''
;
if
(
ftime
)
{
createDate
=
ftime
.
getFullYear
()
+
'/'
+
fnpad
(
ftime
.
getMonth
()
+
1
)
+
'/'
+
fnpad
(
ftime
.
getDate
());
createTime
=
fnpad
(
ftime
.
getHours
())
+
':'
+
fnpad
(
ftime
.
getMinutes
())
+
':'
+
fnpad
(
ftime
.
getSeconds
());
}
console
.
log
(
fname
.
join
(
''
));
files
.
push
({
name
:
fname
.
join
(
''
),
createDate
:
createDate
,
createTime
:
createTime
,
time
:
ftime
,
duration
:
duration
,
version
:
ver
,
length
:
flen
,
signature
:
sign
.
join
(
''
)
});
}
// if (fcount == -1 && (fc))
// 如果没有判断数量的依据
if
(
fcount
==
-
1
)
{
// return [];
}
// console.log('done');
// console.log(files);
// console.log(files.length);
/*
if ((fc && files.length >= fc.count) || (fcount > -1 && files.length >= fcount)) {
console.log(files);
// delete jensen[tag];
// jensen[tag] = null;
return files.filter((f) => {
return Boolean(f.time);
});
}
*/
}
function
Test
()
{
let
device
=
null
;
let
actions
=
{};
let
buffer
=
[];
let
blocks
=
[];
let
sequence
=
0
;
let
current
=
null
;
let
commands
=
[];
let
handlers
=
[];
let
statusTimeout
=
null
;
let
recv
=
false
;
let
ready
=
false
;
let
totalBytes
=
0
;
let
self
=
this
;
this
.
data
=
{};
// 消息
this
.
decodeTimeout
=
0
;
this
.
timewait
=
1
;
this
.
ondisconnect
=
null
;
this
.
isStopConnectionCheck
=
false
;
this
.
onconnect
=
null
;
this
.
onreceive
=
null
;
const
RECV_BUFF_SIZE
=
51200
;
const
receive
=
function
(
result
)
{
totalBytes
+=
result
.
data
.
byteLength
;
// 做一个回调,怎么样找到它呢?
blocks
.
push
(
result
.
data
);
tryReceive
();
if
(
self
.
decodeTimeout
)
clearTimeout
(
self
.
decodeTimeout
);
self
.
decodeTimeout
=
setTimeout
(
function
()
{
tryDecode
();
},
self
.
timewait
);
if
(
self
.
onreceive
)
{
try
{
self
.
onreceive
(
totalBytes
);
}
catch
(
e
)
{}
}
};
const
read_int
=
function
(
a
,
b
,
c
,
d
)
{
if
(
arguments
.
length
===
2
)
{
return
((
a
&
0xff
)
<<
8
)
|
(
b
&
0xff
);
}
else
if
(
arguments
.
length
===
4
)
{
return
((
a
&
0xff
)
<<
24
)
|
((
b
&
0xff
)
<<
16
)
|
((
c
&
0xff
)
<<
8
)
|
(
d
&
0xff
);
}
};
// 传入一个ArrayBuffer,对它的数据进行解码测试
this
.
check
=
function
(
buff
)
{
blocks
.
push
(
buff
);
tryDecode
();
}
const
trigger
=
function
(
resp
,
msgid
)
{
if
(
current
==
null
)
return
;
Logger
.
debug
(
'jensen'
,
'trigger'
,
'trigger - '
+
current
.
substring
(
0
,
current
.
lastIndexOf
(
'-'
))
+
' <---> cmd-'
+
msgid
);
if
(
current
.
substring
(
0
,
current
.
lastIndexOf
(
'-'
))
!=
'cmd-'
+
msgid
)
{
current
=
null
;
return
;
}
if
(
current
in
actions
==
false
)
{
Logger
.
debug
(
'jensen'
,
'trigger'
,
'no action registered'
);
return
;
}
let
p
=
actions
[
current
];
if
(
p
.
timeout
)
clearTimeout
(
p
.
timeout
);
p
.
resolve
(
resp
);
delete
actions
[
current
];
current
=
null
;
};
const
tryDecode
=
function
()
{
// 一个容器,比单独任意一个小包要大一点儿,好像还差一点儿
let
stime
=
new
Date
();
let
buff
=
new
ArrayBuffer
(
RECV_BUFF_SIZE
*
2
);
let
bview
=
new
Uint8Array
(
buff
);
// buff中实际使用的字节数,有效字节数
let
buffLength
=
0
;
let
crash
=
false
;
for
(
let
i
=
0
,
l
=
blocks
.
length
;
i
<
l
;
i
++
)
{
let
block
=
blocks
.
shift
();
// 把block加到buff的最末尾
for
(
let
k
=
0
;
k
<
block
.
byteLength
;
k
++
)
{
bview
[
k
+
buffLength
]
=
block
.
getInt8
(
k
);
}
buffLength
+=
block
.
byteLength
;
let
startIndex
=
0
;
while
(
true
)
{
let
rst
=
null
;
try
{
rst
=
decodeMessage
(
bview
,
startIndex
,
buffLength
);
}
catch
(
e
)
{
crash
=
true
;
break
;
}
if
(
rst
==
null
)
{
break
;
}
startIndex
+=
rst
.
length
;
let
msg
=
rst
.
message
;
// WARN: 接下来怎么整
let
cname
=
msg
.
id
===
FACTORY_RESET
?
'factory-reset'
:
COMMAND_NAMES
[
msg
.
id
];
let
heading
=
[];
for
(
let
x
=
0
;
x
<
msg
.
body
?.
byteLength
&&
x
<
32
;
x
++
)
{
heading
.
push
(
'0'
+
(
msg
.
body
[
x
]
&
0xff
).
toString
(
16
).
replace
(
/^0
(\w{2})
$/gi
,
'$1'
));
}
if
(
msg
.
id
!==
TRANSFER_FILE
)
Logger
.
debug
(
'jensen'
,
'receive'
,
'recv: '
+
cname
+
', seq: '
+
msg
.
sequence
+
', data bytes: '
+
msg
.
body
?.
byteLength
+
', data: '
+
heading
.
join
(
' '
)
);
try
{
let
handler
=
GLOBAL_CMD_HANDLER
;
let
r
=
handler
(
msg
,
self
);
if
(
r
)
trigger
(
r
,
msg
.
id
);
}
catch
(
e
)
{
trigger
(
e
);
Logger
.
error
(
'jensen'
,
'receive'
,
'recv: '
+
COMMAND_NAMES
[
msg
.
id
]
+
', seq: '
+
msg
.
sequence
+
', error: '
+
String
(
e
));
}
// sendNext();
}
// 是否已经崩溃了?
if
(
crash
)
{
// cmd-5-42
// 5是msgid
let
msgid
=
parseInt
(
current
.
replace
(
/^cmd-
(\d
+
)
-
(\d
+
)
$/gi
,
'$1'
));
try
{
let
handler
=
GLOBAL_CMD_HANDLER
;
handler
(
null
,
self
);
}
catch
(
e
)
{
trigger
(
e
);
Logger
.
error
(
'jensen'
,
'decode'
,
'decode error: '
+
String
(
e
));
}
trigger
(
null
,
msgid
);
blocks
.
length
=
0
;
break
;
}
// WARN: 需要把剩余的字节数挪到最前面去
// startIndex已经抵达最后的位置,startIndex -> buffLength就是需要移到最前面去的字节内容了
for
(
let
k
=
0
,
bs
=
buffLength
-
startIndex
;
k
<
bs
;
k
++
)
{
bview
[
k
]
=
bview
[
k
+
startIndex
];
}
buffLength
=
buffLength
-
startIndex
;
}
// console.error('Decode: ' + (new Date().getTime() - stime.getTime()) + 'ms');
};
const
decodeMessage
=
function
(
dataView
,
startIndex
,
buffLength
)
{
let
dataLen
=
buffLength
-
startIndex
;
if
(
dataLen
<
12
)
return
null
;
if
(
dataView
[
startIndex
+
0
]
!==
0x12
||
dataView
[
startIndex
+
1
]
!==
0x34
)
throw
new
Error
(
'invalid header'
);
// 2 字节的指令id
let
idx
=
2
;
// let cmdid = this.nextShort(idx);
let
cmdid
=
read_int
(
dataView
[
startIndex
+
idx
],
dataView
[
startIndex
+
idx
+
1
]);
idx
+=
2
;
let
sequeue
=
read_int
(
dataView
[
startIndex
+
idx
+
0
],
dataView
[
startIndex
+
idx
+
1
],
dataView
[
startIndex
+
idx
+
2
],
dataView
[
startIndex
+
idx
+
3
]
);
idx
+=
4
;
let
len
=
read_int
(
dataView
[
startIndex
+
idx
+
0
],
dataView
[
startIndex
+
idx
+
1
],
dataView
[
startIndex
+
idx
+
2
],
dataView
[
startIndex
+
idx
+
3
]
);
let
padding
=
(
len
>>
24
)
&
0xff
;
len
=
len
&
0xffffff
;
idx
+=
4
;
// 需要去除的字节数
var
cutLen
=
0
;
// 数据还没有完全准备好
if
(
dataLen
<
12
+
len
+
padding
)
return
null
;
// 去掉header部分
// 下面这一行做什么用的?
// for (let i = 0; i
<
12
;
i
++
)
this
.
buffer
[
i
+
cutLen
];
cutLen
+=
12
;
// 取走body部分
// 数据体部分
// let body = new Uint8Array(new ArrayBuffer(len));
// for (let i = 0; i
<
len
;
i
++
)
body
.
push
(
this
.
buffer
[
i
+
cutLen
]);
let
body
=
dataView
.
slice
(
startIndex
+
cutLen
,
startIndex
+
cutLen
+
len
);
cutLen
+=
len
;
// 干掉补上来的数据
// 下面这一行做什么用的?
// for (let i = 0; i
<
padding
;
i
++
)
this
.
buffer
[
i
+
cutLen
];
cutLen
+=
padding
;
// self.buffer = self.buffer.slice(cutLen);
return
{
message
:
new
Message
(
cmdid
,
sequeue
,
body
),
length
:
cutLen
};
};
this
.
to_bcd
=
function
(
str
)
{
let
x
=
[];
for
(
let
i
=
0
;
i
<
str
.
length
;
i
+=
2
)
{
let
h
=
(
str
.
charCodeAt
(
i
)
-
48
)
&
0xff
;
let
l
=
(
str
.
charCodeAt
(
i
+
1
)
-
48
)
&
0xff
;
x
.
push
((
h
<<
4
)
|
l
);
}
return
x
;
};
this
.
from_bcd
=
function
()
{
let
str
=
''
;
for
(
let
i
=
0
;
i
<
arguments
.
length
;
i
++
)
{
let
v
=
arguments
[
i
]
&
0xff
;
str
+=
(
v
>>
4
)
&
0x0f
;
str
+=
v
&
0x0f
;
}
return
str
;
};
}
function
Message
(
id
,
sequence
,
body
)
{
this
.
id
=
id
;
this
.
sequence
=
sequence
;
this
.
body
=
body
;
}
let
data
=
new
ArrayBuffer
(
hex
.
length
);
let
dv
=
new
Uint8Array
(
data
);
for
(
let
i
=
0
;
i
<
hex
.
length
;
i
++
)
{
dv
[
i
]
=
parseInt
(
hex
[
i
],
16
)
&
0xff
;
}
new
Test
().
check
(
new
DataView
(
data
));
</script>
</body>
</html>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment