TMF8801芯片介紹:
s1.jpg (7.42 KB, 下載次數: 88)
下載附件
TMF8801
2021-3-28 16:15 上傳
TMF8801是2019年艾邁斯半導體推出的用于測量直接飛行時間(dToF)距離的集成式模塊,號稱全球體積最小(表示懷疑,不過體積確實非常小)。這個傳感器可以精準測量2cm至2.5m范圍,我實際測試在較亮的環境下能達到2.4m(我站在2.4m的位置,1s檢測一次,測試了幾分鐘,大概有百分五十的概率能檢測到),暗環境下能夠測量到2.5m。相比于我們熟知的VL53L0X測距模塊,測量距離和精度確實要好很多。內置的直方圖可檢測蓋玻片并以最高的 SNR 報告物體距離,同時補償產品蓋玻片上的污垢和污跡,從而實現無偽影的測量。直方圖提供了動態的蓋玻片校準和串擾補償,并且通過片上陽光抑制濾光片將背景光噪聲降至最低。數據輸出通過 1.8 V I2C 快速模式通信接口進行,集成的微控制器具有片上包含的所有算法,無需外部光學器件。
————————————————
TMF8801芯片特性:
具有高靈敏度 SPAD 檢測的直接 ToF 技術
快速時間數字轉換器 (TDC) 架構
亞納秒光脈沖
30 Hz 時 20mm 至 2500mm 的距離感應
片上直方圖處理
940 nm VCSEL 1 類眼睛安全
陽光片上抑制濾波器和算法
業界最小的 (2.2 mm x 3.6 mm x 1.0 mm) 模塊化 OLGA 封裝
————————————————
TMF8801芯片應用:
激光檢測自動對焦 (LDAF)
存在檢測
工業測距
人員計數
物體躲避和防撞
快速測距導航檢測
庫存控制
光學開關
3D 攝像機的低功耗系統緩沖
以下是相關規格書:
ams-TMF8801-datasheet.pdf
(2.04 MB, 下載次數: 38)
2021-3-28 16:17 上傳
點擊文件名下載附件
TMF8801 下載積分: 黑幣 -5
————————————————
引腳號 引腳名稱 信號類型 描述
1 VCCD 電源 供電電壓3V;接一個0.1uF電容到地
2 GNDC 地 電源負極
3 GPIO0 IO 通用IO口,如果不用,請保持開路
4 INT 輸出 中斷輸出,如果不用,請接到地
5 SCL 輸入 IIC時鐘引腳
6 SDA IO IIC數據引腳
7 VDD 電源 供電電壓3V;接一個0.1uF電容到地
8 GND 地 電源負極
9 EN 輸入 啟用輸入有效高電平;設置為低電平強制器件關閉,
所有內存內容都會丟失;如果未使用,則連接至VDD
10 GPIO1 IO 通用IO口,如果不用,請保持開路
11 GNDV 地 電源負極
12 VDDV 電源 供電電壓3V;接一個0.1uF電容到地
————————————————
驅動流程
1、IIC引腳初始化
2、模塊初始化
1)復位(寄存器地址:0xE0)
2)初始化下載 HW(寄存器地址:0x08)
3)設置寫 RAM 地址(寄存器首地址:0x08)
4)寫 RAM數據(寄存器首地址:0x08)
5)重映射 RAM 到地址 0 并復位
6)獲取 TMF8801 信息
6.1)讀取APP0 主版本號(寄存器地址:0x01)
6.2)讀取次版本號和修訂版本號(寄存器地址:0x12)
6.3)讀取芯片修訂 ID(寄存器地址:0xE4)
6.4)生成序列號(寄存器地址:0x10)
6.5)讀取序列號(寄存器地址:0x1E)
7)使能檢測中斷
3、配置APP0,寫入校準數據(寄存器地址:0x20)
4、檢測中斷
5、獲取結果
———————————————
(轉下一頁)
驅動的程:這里以stm32的為例
1、IIC驅動部分(用IO口模擬IIC時序)
2、TMF8001驅動部分
- #include "tmf8801.h"
- #include "tmf8801_iic.h"
- //TMF8x01 寄存器地址定義
- #define TMF8x01_REGADDR_COMMAND 0x10
- #define TMF8x01_REGADDR_STATUS 0x1D
- #define TMF8x01_REGADDR_CONTENTS 0x1E
- #define TMF8x01_REGADDR_TID 0x1F
- #define TMF8x01_REGADDR_ENABLE 0xE0
- //RAM數據緩存
- const uint8_t app_buf[] = {
- 0x6D, 0xC9, 0x41, 0x85, 0x3D, 0x15, 0xAA, 0x51, 0xF4, 0xD2, 0x9E, 0xA8, 0xA7, 0xAC, 0x77, 0xE9,
- 0xF9, 0xEC, 0x20, 0x24, 0x63, 0xB8, 0xF1, 0xA5, 0x0B, 0xA7, 0x65, 0xB4, 0x32, 0xB8, 0x18, 0xD7,
- 0x5C, 0xF4, 0x00, 0xD0, 0xDC, 0xFD, 0xD9, 0xD5, 0x98, 0xAF, 0x6F, 0x40, 0x96, 0x0A, 0xB2, 0xFA,
- 0x9E, 0x13, 0x44, 0xF8, 0x6F, 0x5B, 0xF1, 0x65, 0xA6, 0x88, 0x67, 0xD7, 0x75, 0x0A, 0x4A, 0x7F,
- 0x81, 0x9C, 0xF6, 0x91, 0x7B, 0xCF, 0xF2, 0x7C, 0xC1, 0x83, 0xF3, 0xA5, 0xF6, 0xEB, 0xD2, 0xFA,
- 0x14, 0x01, 0x7B, 0x81, 0x6D, 0xA9, 0x31, 0x0B, 0x79, 0x14, 0x9D, 0xFE, 0xAA, 0x24, 0x5A, 0x5A,
- 0x77, 0xF0, 0x00, 0x00, 0x88, 0x76, 0xBA, 0x20, 0xD1, 0x33, 0xB2, 0x66, 0xCF, 0xD9, 0x67, 0xDD,
- 0x4C, 0xF8, 0x5E, 0xAD, 0x6C, 0xF5, 0xF4, 0x7A, 0x60, 0x3D, 0xFB, 0x05, 0x4B, 0xB9, 0x26, 0xA5,
- 0xDF, 0xF1, 0xE3, 0xC7, 0x7E, 0x55, 0xEC, 0x50, 0x9C, 0xE3, 0xC9, 0xDA, 0x91, 0xAE, 0x5E, 0x9F,
- 0x13, 0x0E, 0x96, 0x52, 0x27, 0x8E, 0x06, 0x22, 0x63, 0x69, 0xAC, 0x61, 0x9C, 0x23, 0xF1, 0x38,
- 0x5F, 0x3A, 0x1D, 0x03, 0xBD, 0xCA, 0xDA, 0x42, 0xBB, 0x21, 0x55, 0x35, 0xC8, 0x30, 0x50, 0x6D,
- 0x09, 0xBF, 0x32, 0x39, 0x7D, 0xF1, 0x4B, 0x9C, 0x09, 0x33, 0xF0, 0xA1, 0xBD, 0x1B, 0x89, 0xCD,
- 0xFC, 0x75, 0xCD, 0x92, 0x52, 0x8E, 0xA8, 0xD1, 0xD2, 0xED, 0x6B, 0x63, 0x41, 0x38, 0x0F, 0x22,
- 0xFF, 0xA6, 0x6A, 0xE3, 0xE0, 0x78, 0x83, 0xF5, 0x95, 0xC2, 0x88, 0x77, 0x5C, 0x4B, 0x9C, 0xAD,
- 0x32, 0xE4, 0x39, 0x85, 0xBF, 0x4E, 0x2C, 0x21, 0xCF, 0x19, 0x9D, 0x93, 0xFD, 0x9B, 0xFA, 0x15,
- 0x2D, 0xB5, 0x7C, 0xD1, 0x43, 0x83, 0x58, 0x4F, 0x8C, 0x66, 0x3E, 0xAA, 0xD2, 0xD2, 0x66, 0xA1,
- 0x56, 0x80, 0xD8, 0xF1, 0xED, 0x1F, 0x4D, 0x45, 0x06, 0x64, 0x9A, 0x02, 0xF9, 0x69, 0x6B, 0xCE,
- 0xA0, 0x84, 0xD2, 0x67, 0x85, 0xE1, 0xE7, 0x8D, 0xE2, 0xEF, 0x11, 0x5B, 0xDD, 0x27, 0x5A, 0x9E,
- 0x34, 0x9D, 0x66, 0x66, 0xE3, 0xA5, 0xD4, 0xC7, 0x6E, 0x80, 0x0D, 0xC6, 0x9C, 0x36, 0x86, 0x19,
- 0x32, 0xD0, 0x16, 0x67, 0x45, 0x2D, 0xE5, 0x09, 0x89, 0xC5, 0x80, 0x0F, 0x71, 0x2C, 0x9F, 0xB1,
- 0x38, 0x4A, 0x0B, 0xFD, 0x6F, 0x27, 0x69, 0xCD, 0x8B, 0x0F, 0x4B, 0x62, 0xF0, 0xC5, 0xC1, 0x96,
- 0xFD, 0xD2, 0x06, 0xCE, 0x01, 0xC4, 0x16, 0x84, 0x42, 0xEA, 0x01, 0x06, 0x16, 0xD9, 0x2C, 0x10,
- 0x7B, 0x6D, 0x95, 0xA0, 0x3C, 0x90, 0x7E, 0x83, 0x91, 0xF0, 0x9B, 0x51, 0x2E, 0xD8, 0x87, 0x81,
- 0x69, 0x54, 0x9C, 0xD9, 0x7F, 0x99, 0x11, 0x65, 0x85, 0xAA, 0xC7, 0x65, 0xDA, 0x00, 0xE4, 0xDA,
- 0x94, 0xDD, 0xCB, 0xEE, 0x04, 0xD6, 0xB5, 0xBD, 0x2D, 0x30, 0xFC, 0x20, 0x4F, 0x15, 0x7C, 0x9E,
- 0xD3, 0x2F, 0x39, 0xFC, 0xA6, 0xFB, 0xB5, 0x83, 0xD1, 0xDE, 0x43, 0x3A, 0x72, 0x51, 0x4A, 0xE2,
- 0x15, 0xCC, 0x63, 0x70, 0x88, 0x72, 0x52, 0x84, 0x86, 0x35, 0x05, 0xCF, 0xEF, 0x5D, 0x51, 0xFA,
- 0x95, 0x39, 0x0D, 0x37, 0xA1, 0xDD, 0x51, 0xDF, 0x54, 0x39, 0xC6, 0xFB, 0x76, 0x4C, 0x0B, 0xD6,
- 0x62, 0xEA, 0x84, 0x95, 0x56, 0xDF, 0xF8, 0x7F, 0xAA, 0x76, 0xDE, 0xDE, 0x5E, 0xA0, 0xA6, 0x56,
- 0x93, 0x31, 0xB3, 0x06, 0x34, 0x7B, 0xEC, 0x71, 0xB5, 0x47, 0xEF, 0x3E, 0xD4, 0x8B, 0x0A, 0xB2,
- 0xB1, 0xC7, 0x5F, 0xC5, 0x9B, 0xB0, 0x72, 0x38, 0xFF, 0x6C, 0x2E, 0x2E, 0xCF, 0x04, 0x00, 0x3C,
- 0xFC, 0x07, 0x9F, 0xF0, 0x6F, 0xB0, 0x14, 0xAD, 0x7B, 0x4D, 0xAC, 0x71, 0x53, 0xD8, 0xD1, 0x08,
- 0x5F, 0x11, 0xD8, 0x24, 0xD9, 0xB5, 0xA2, 0x0B, 0xFE, 0x8C, 0xDA, 0x83, 0x25, 0xC5, 0x2A, 0xCA,
- 0x97, 0x31, 0x3C, 0x4E, 0x53, 0xA6, 0x65, 0x3E, 0x59, 0xC5, 0xFE, 0x92, 0x8E, 0xA8, 0xE9, 0x93,
- 0xB6, 0xDF, 0xB8, 0x3A, 0xFE, 0xE9, 0x1C, 0x29, 0x60, 0x42, 0xA6, 0xC4, 0xE0, 0x0A, 0x04, 0xDC,
- 0xC5, 0x97, 0xCF, 0x79, 0x94, 0x67, 0x6D, 0x78, 0x7B, 0x88, 0xBA, 0x71, 0x96, 0xC1, 0xB9, 0x2D,
- 0xB6, 0x79, 0xFA, 0xC0, 0x00, 0x46, 0xE5, 0x11, 0x96, 0x13, 0xB0, 0x15, 0x48, 0x06, 0x5A, 0x94,
- 0x2C, 0x05, 0x01, 0xCF, 0x21, 0x7C, 0x7E, 0x47, 0xA1, 0x1E, 0x68, 0xD7, 0x84, 0x45, 0x1B, 0x1B,
- 0x1B, 0x03, 0x78, 0xD9, 0x2C, 0x58, 0xEF, 0xB5, 0xCC, 0x88, 0xF5, 0x0D, 0xCD, 0xC3, 0xD5, 0xF6,
- 0x26, 0x18, 0xCE, 0x53, 0x7C, 0x90, 0x34, 0x0D, 0xF1, 0x43, 0x70, 0x0F, 0xF1, 0x70, 0x77, 0xB0,
- 0x71, 0x4B, 0x83, 0x3D, 0xCC, 0xA3, 0x16, 0xAA, 0x8D, 0x96, 0xFF, 0x00, 0xB5, 0xC5, 0xB4, 0x52,
- 0x90, 0xDE, 0x1F, 0xB5, 0x7A, 0x8F, 0x6C, 0xA0, 0x22, 0xD5, 0x76, 0x48, 0xE5, 0x10, 0xE6, 0x59,
- 0xC2, 0xB7, 0xF7, 0x16, 0x13, 0x8E, 0x35, 0xFF, 0xCE, 0x34, 0x96, 0x7C, 0xFD, 0x18, 0x61, 0xA2,
- 0x5A, 0x88, 0x88, 0x2C, 0xE6, 0x66, 0x26, 0xB6, 0xA0, 0xDE, 0x04, 0x6D, 0x71, 0x46, 0xDB, 0xCE,
- 0xFC, 0x2D, 0x4C, 0xAF, 0x1B, 0xCE, 0xE2, 0x18, 0xCA, 0x96, 0x3D, 0xDF, 0x2B, 0xFC, 0x57, 0x29,
- 0xF4, 0x07, 0xC3, 0xB6, 0x5A, 0x37, 0x00, 0x44, 0xF7, 0x1F, 0x54, 0x8D, 0x38, 0x5D, 0xA0, 0xBC,
- 0xF8, 0x34, 0x7B, 0x9C, 0xFD, 0xCB, 0x42, 0x62, 0x0F, 0xC3, 0xBF, 0x5C, 0xE6, 0x3F, 0x8D, 0xBD,
- 0xDD, 0x3C, 0xA8, 0xE6, 0x21, 0x24, 0xF1, 0x38, 0x58, 0xF5, 0xF0, 0x9B, 0xB3, 0xA2, 0xE1, 0x40,
- 0xDC, 0xAB, 0xFD, 0xD3, 0xFB, 0x78, 0x26, 0x50, 0x93, 0x5A, 0xE4, 0x72, 0x6F, 0x2C, 0xC4, 0x4F,
- 0xD7, 0x77, 0xD9, 0xE4, 0xBC, 0x86, 0x2B, 0x0B, 0x36, 0xE4, 0xC2, 0x7F, 0x3E, 0x4B, 0xB5, 0xBA,
- 0xDD, 0xDA, 0xDE, 0x7F, 0xEE, 0x71, 0x51, 0xAF, 0x55, 0x6A, 0xD4, 0x45, 0xEC, 0x21, 0x0A, 0x94,
- 0x08, 0xAE, 0x1B, 0x0D, 0x68, 0x1A, 0x81, 0x0A, 0x5B, 0x3C, 0xDA, 0xC6, 0xF2, 0x78, 0x4E, 0xAF,
- 0x79, 0x06, 0x6A, 0xEB, 0x00, 0x67, 0xCE, 0x2E, 0xBC, 0xDF, 0xB9, 0xAF, 0x2F, 0x99, 0x30, 0x51,
- 0x78, 0x56, 0x89, 0x86, 0xDB, 0x5D, 0x9C, 0x0A, 0x68, 0xC2, 0x41, 0x01, 0x68, 0xC5, 0x1D, 0x9E,
- 0x47, 0xDC, 0x78, 0xDD, 0xF5, 0x1B, 0x9E, 0x75, 0x0D, 0x31, 0x59, 0xCE, 0xB3, 0xA1, 0x7D, 0x27,
- 0xF9, 0x3A, 0xC3, 0x96, 0xCD, 0x4B, 0x88, 0xE8, 0x8E, 0xC0, 0xC5, 0x06, 0x0B, 0xE6, 0x5E, 0x5E,
- 0xA1, 0xFA, 0xB5, 0x05, 0xD4, 0xF7, 0x6A, 0x10, 0xCF, 0xFE, 0x2E, 0xE0, 0xF8, 0x83, 0x6C, 0x6B,
- 0x51, 0xBE, 0x10, 0x4E, 0x64, 0x3B, 0x14, 0x4C, 0x9B, 0xA6, 0xD0, 0x53, 0x1F, 0x48, 0x68, 0xDC,
- 0x49, 0x38, 0x0B, 0x28, 0x59, 0xA6, 0x41, 0xD4, 0xC5, 0xC9, 0x69, 0x91, 0xA1, 0x49, 0x89, 0x10,
- 0xF8, 0xA6, 0x50, 0xDE, 0xCB, 0xB5, 0x7B, 0x00, 0x23, 0x6A, 0x23, 0x48, 0xDE, 0xBB, 0x9E, 0x67,
- 0x22, 0x37, 0x8B, 0x80, 0xC6, 0xD3, 0x78, 0x66, 0x48, 0x1D, 0xAE, 0x1C, 0x23, 0x6C, 0xEB, 0xDF,
- 0x68, 0x72, 0xFA, 0xEF, 0x0A, 0x29, 0x5D, 0xB1, 0xA9, 0x8B, 0xB7, 0xC9, 0xBF, 0xCB, 0x7F, 0x99,
- 0x4A, 0x7F, 0xB9, 0x15, 0x17, 0xCE, 0x14, 0xC8, 0xCC, 0xC1, 0xC3, 0x53, 0x5A, 0xBB, 0x05, 0x32,
- 0x79, 0xBC, 0xB9, 0x27, 0x2B, 0x7C, 0x93, 0x2F, 0xAA, 0xC0, 0x8F, 0xB0, 0x5A, 0xD1, 0x37, 0xF8,
- 0x37, 0x4D, 0x2C, 0x1B, 0xD4, 0x23, 0x8D, 0x06, 0xA1, 0xF5, 0x49, 0xFC, 0x11, 0x6A, 0x0D, 0x1B,
- 0x51, 0x75, 0x4B, 0xEE, 0xD4, 0xB1, 0xEF, 0xDD, 0x4C, 0xDB, 0x55, 0xAD, 0xF9, 0x4B, 0x45, 0x0D,
- 0x57, 0xC4, 0x5C, 0x91, 0xD2, 0x9A, 0xD0, 0xA9, 0x4D, 0x5D, 0xC9, 0x86, 0x67, 0xEF, 0x0E, 0x70,
- 0x42, 0x1F, 0x39, 0x15, 0x6F, 0x11, 0x61, 0xFE, 0xE5, 0x39, 0xA4, 0xE6, 0x20, 0xB6, 0x1E, 0x8B,
- 0xC6, 0xBC, 0xB1, 0xFA, 0x95, 0xA2, 0x39, 0xA5, 0x16, 0x7D, 0xC8, 0x3E, 0xA3, 0x10, 0x5E, 0x21,
- 0x34, 0x6D, 0x20, 0x4E, 0x98, 0xFF, 0xA7, 0x04, 0xCA, 0x81, 0x3B, 0x8C, 0x57, 0x4C, 0x74, 0x05,
- 0xCE, 0x2F, 0xEA, 0xFE, 0x84, 0xFC, 0xD7, 0x5E, 0x46, 0x2E, 0xF9, 0x63, 0xF9, 0x6A, 0x9C, 0x34,
- 0xAB, 0x96, 0xD6, 0xE5, 0xC1, 0xF3, 0x20, 0x4B, 0x74, 0x0D, 0x6B, 0x97, 0x54, 0xC4, 0x05, 0xE0,
- 0xC7, 0xDC, 0xE2, 0xF0, 0x80, 0xD4, 0xF7, 0xD0, 0xF4, 0xFE, 0x96, 0x5E, 0xC1, 0x2D, 0x6D, 0xBF,
- 0xC5, 0xC7, 0xC7, 0x9F, 0x12, 0x27, 0x6D, 0xD8, 0xD2, 0x25, 0x9F, 0xE3, 0x69, 0xFD, 0xF9, 0xBC,
- 0xE0, 0x40, 0x9A, 0x92, 0xE6, 0x5F, 0xD1, 0x2C, 0xDA, 0x67, 0x23, 0xC5, 0x48, 0x62, 0x55, 0xE9,
- 0x61, 0x99, 0x57, 0x34, 0xA2, 0xD3, 0x44, 0xDD, 0xBA, 0x92, 0xF1, 0xE5, 0x9A, 0xE5, 0xE1, 0x25,
- 0x99, 0xAE, 0x43, 0x0C, 0xFA, 0xA9, 0xF6, 0xE9, 0x56, 0x12, 0x8A, 0xB6, 0x4F, 0xD6, 0x9B, 0xC4,
- 0x51, 0xC9, 0x10, 0xFB, 0xB6, 0x4E, 0x58, 0x57, 0x44, 0xA9, 0xD1, 0x21, 0xC2, 0xA7, 0x04, 0x9A,
- 0xC4, 0xCB, 0x10, 0xC8, 0x37, 0xAD, 0x50, 0x67, 0x78, 0x15, 0xB7, 0x6A, 0xE4, 0xE3, 0xB0, 0xEC,
- 0x7C, 0x80, 0xDA, 0xAF, 0x93, 0xC4, 0x9A, 0xF1, 0xBA, 0xE1, 0x32, 0x6B, 0xAC, 0x2F, 0xF7, 0x8E,
- 0x1A, 0x13, 0x17, 0x19, 0x55, 0x48, 0x7D, 0xC3, 0x16, 0xA3, 0xE5, 0x88, 0xB7, 0xAC, 0xEF, 0x9E,
- 0x6B, 0x9F, 0x45, 0xB9, 0x36, 0xB6, 0x13, 0x8F, 0xA0, 0x9B, 0xBF, 0xCE, 0xC2, 0x9B, 0x60, 0x5C,
- 0x04, 0x1C, 0x72, 0xE7, 0xCA, 0x29, 0x8A, 0x51, 0x98, 0x26, 0x31, 0x10, 0xFB, 0x47, 0x04, 0x86,
- 0x1F, 0x78, 0x7B, 0xE5, 0x8C, 0xCA, 0x96, 0x18, 0xBD, 0xC9, 0x6E, 0xC4, 0xE2, 0xE8, 0xF1, 0xD2,
- 0xA6, 0x2C, 0x6C, 0x24, 0x48, 0x7D, 0x76, 0xB1, 0x57, 0x56, 0xD9, 0x38, 0xCA, 0xC6, 0x63, 0xAB,
- 0x57, 0x7E, 0xE1, 0xEF, 0x4B, 0xD9, 0x7C, 0x26, 0x17, 0x30, 0x31, 0xCE, 0xB1, 0xBB, 0x1D, 0xAC,
- 0xB9, 0x49, 0x52, 0xFF, 0x4F, 0xC5, 0x21, 0xC2, 0x5C, 0x38, 0x78, 0xE8, 0x00, 0xE6, 0xFC, 0x91,
- 0x4C, 0x49, 0x16, 0x4A, 0x70, 0xFF, 0x70, 0x51, 0xBA, 0xB0, 0x03, 0x60, 0xEB, 0x44, 0xF0, 0xBC,
- 0xD3, 0xEA, 0xD5, 0x18, 0x6E, 0xFA, 0xE0, 0x6F, 0xB0, 0x42, 0xF0, 0xDB, 0xAF, 0xE9, 0x8D, 0x43,
- 0x1B, 0x93, 0x3D, 0xCE, 0x44, 0xDC, 0xFB, 0xCD, 0x05, 0xE4, 0xD6, 0x89, 0xB2, 0x4A, 0xBE, 0x86,
- 0x51, 0x9B, 0x50, 0xF7, 0x70, 0x15, 0xF9, 0x34, 0xFE, 0x3D, 0x7B, 0x06, 0xF2, 0x24, 0x72, 0xB1,
- 0x52, 0xC5, 0x95, 0x34, 0xA4, 0x9C, 0xE0, 0x0A, 0x31, 0x80, 0x40, 0x83, 0x6E, 0xC7, 0x02, 0x38,
- 0xA1, 0x0C, 0x17, 0xDC, 0xEA, 0x74, 0x09, 0x31, 0xDF, 0xB6, 0x2A, 0x29, 0xDC, 0xF3, 0x2F, 0x12,
- 0x0E, 0x73, 0x23, 0x5F, 0xAD, 0xC8, 0x76, 0x05, 0xA2, 0x5B, 0x94, 0xFE, 0x91, 0xBF, 0x6B, 0x74,
- 0x00, 0xF8, 0x30, 0x20, 0x50, 0x1E, 0x93, 0xC2, 0xD8, 0xC6, 0x0A, 0xE4, 0x91, 0x84, 0x78, 0xC7,
- 0x91, 0xCF, 0x6D, 0xE8, 0x2E, 0x43, 0xE4, 0xF8, 0xB6, 0xE3, 0xE4, 0xDD, 0xBC, 0x8C, 0xD4, 0x1F,
- 0xDA, 0x3D, 0xD4, 0xDC, 0x45, 0x16, 0x35, 0xA5, 0xB2, 0x26, 0xFC, 0x6E, 0x73, 0x0E, 0xDB, 0xA8,
- 0xA9, 0x05, 0x33, 0xCA, 0xF2, 0x37, 0x34, 0x9F, 0x93, 0x01, 0x67, 0x0B, 0xAF, 0x03, 0xDF, 0x71,
- 0x07, 0x79, 0xFA, 0xAF, 0x4F, 0x4E, 0xCC, 0xD8, 0x9F, 0x4C, 0xD7, 0x34, 0x48, 0xD6, 0xF6, 0xCB,
- 0x84, 0x01, 0x1C, 0xB4, 0xC7, 0xBE, 0x0D, 0x51, 0xC1, 0x43, 0xF8, 0x4A, 0x34, 0x5B, 0xA5, 0x3F,
- 0xCC, 0x42, 0x1F, 0xCA, 0x47, 0x0F, 0x36, 0xFC, 0x22, 0xD1, 0x87, 0x76, 0x97, 0xB1, 0x2D, 0x91,
- 0x12, 0xCE, 0xD4, 0xC9, 0xED, 0x6F, 0x59, 0x2C, 0x87, 0x57, 0x01, 0x86, 0x10, 0x27, 0xE9, 0x57,
- 0x87, 0xA3, 0x4F, 0x21, 0x97, 0x77, 0x9B, 0x52, 0xF3, 0xA1, 0xE8, 0x7B, 0xCA, 0x4A, 0x60, 0x36,
- 0x3D, 0x65, 0xE1, 0x0B, 0x11, 0x2C, 0xB9, 0x06, 0xBA, 0xC5, 0xCF, 0x2C, 0xD8, 0x5E, 0xB7, 0x0E,
- 0x14, 0xC3, 0x04, 0x2B, 0xF9, 0x4C, 0x5A, 0xF0, 0xED, 0x87, 0xFC, 0x71, 0xF6, 0xC9, 0x1C, 0x56,
- 0x62, 0xBD, 0x09, 0x1F, 0x77, 0xD9, 0x53, 0x47, 0xA9, 0x6C, 0x96, 0x06, 0x92, 0xB8, 0x51, 0xCB,
- 0xFA, 0x86, 0x27, 0x8D, 0xF6, 0x55, 0x64, 0xE4, 0xB4, 0x69, 0xB8, 0xE6, 0xD0, 0x20, 0xA4, 0x43,
- 0x5A, 0x1C, 0x36, 0x19, 0x99, 0x0E, 0x78, 0x25, 0x92, 0x00, 0xAC, 0x49, 0x99, 0xF4, 0x68, 0x8F,
- 0xE5, 0xD6, 0xB4, 0xF5, 0xB4, 0x48, 0x8D, 0x7B, 0x66, 0x1D, 0x22, 0xB5, 0xCE, 0xA1, 0xC8, 0x61,
- 0x68, 0x51, 0xEC, 0x30, 0x5A, 0x69, 0xB4, 0x1C, 0x15, 0x76, 0xB9, 0x51, 0xF1, 0x19, 0xC6, 0xCB,
- 0x37, 0x12, 0x4E, 0x07, 0xB5, 0xDA, 0xF7, 0x0D, 0xCE, 0x63, 0x0F, 0x61, 0x55, 0x75, 0x37, 0x1D,
- 0x1D, 0xA4, 0x0F, 0x6A, 0x8C, 0x29, 0x70, 0xFC, 0x53, 0x6C, 0x59, 0xEC, 0xC0, 0xEE, 0xF3, 0xB6,
- 0x3C, 0xB1, 0xCF, 0x9F, 0x7E, 0x17, 0x77, 0xC6, 0x8D, 0x37, 0x7F, 0x2D, 0x7F, 0x14, 0x36, 0x44,
- 0xEE, 0x4A, 0xC3, 0x7A, 0x1E, 0x15, 0x19, 0xBB, 0x70, 0x45, 0x25, 0xC9, 0x5F, 0x21, 0xC5, 0xC5,
- 0xC5, 0x26, 0x54, 0xCB, 0x8C, 0xE1, 0x7E, 0x01, 0x9E, 0x3D, 0x29, 0xC2, 0x6D, 0xF0, 0xBD, 0x4B,
- 0x97, 0x12, 0x79, 0xAE, 0x27, 0xD3, 0x7F, 0x7F, 0xF2, 0x02, 0x29, 0xD3, 0x5E, 0x87, 0x5F, 0x20,
- 0x02, 0x55, 0x27, 0xCE, 0xF1, 0x1E, 0x99, 0xFD, 0x52, 0xC2, 0xF5, 0xB3, 0xE5, 0x43, 0xC5, 0x48,
- 0xC2, 0xFE, 0x45, 0x19, 0x6B, 0xD7, 0x7B, 0x80, 0x42, 0x7F, 0x74, 0x80, 0xF0, 0x36, 0x24, 0xFF,
- 0xB3, 0x81, 0xBC, 0x75, 0x43, 0x59, 0x64, 0x55, 0x55, 0xBA, 0xC3, 0xE6, 0xAC, 0x24, 0x7A, 0x86,
- 0x63, 0x46, 0xD8, 0xF7, 0x56, 0xAD, 0xAA, 0xA5, 0xF0, 0x65, 0x8D, 0xA0, 0xF5, 0xD6, 0xB2, 0x0C,
- 0x74, 0x11, 0x16, 0x60, 0xF0, 0xCC, 0xD3, 0x83, 0xE5, 0xC9, 0xC7, 0x69, 0x0D, 0x25, 0x25, 0x83,
- 0xB5, 0xAE, 0xA1, 0xC3, 0x75, 0x37, 0x6F, 0x3C, 0x2B, 0x81, 0x19, 0x49, 0x37, 0x02, 0x35, 0xA3,
- 0xF7, 0x6C, 0x09, 0xB1, 0x29, 0xB1, 0x98, 0x67, 0x2F, 0xBC, 0xE2, 0xB9, 0x9C, 0x27, 0x54, 0x12,
- 0x7D, 0xAE, 0x55, 0x48, 0xD5, 0x54, 0xC9, 0x9C, 0xDF, 0x51, 0x49, 0x1B, 0x0B, 0x9B, 0x56, 0xE5,
- 0x12, 0xEE, 0x5C, 0x45, 0xE8, 0xB9, 0xD0, 0xE1, 0xB1, 0xCC, 0x05, 0xFC, 0x24, 0xA5, 0x1B, 0x1B,
- 0xB4, 0x76, 0xCF, 0x19, 0x5A, 0x85, 0x13, 0xBC, 0x3B, 0xCC, 0x4A, 0x37, 0xFA, 0xBA, 0x1A, 0x17,
- 0xAA, 0x7A, 0x03, 0xDB, 0x18, 0x7D, 0xBD, 0x52, 0xFC, 0xDE, 0x89, 0xFE, 0x97, 0x9D, 0xD8, 0x65,
- 0xF9, 0xF3, 0xDC, 0x16, 0x0C, 0xD5, 0x1A, 0x7F, 0x7A, 0x9D, 0x45, 0xDE, 0x35, 0x8E, 0xD8, 0xD7,
- 0xA8, 0x9A, 0x16, 0xE4, 0x9A, 0xAD, 0x62, 0x45, 0x78, 0xE0, 0xA5, 0xBB, 0x4A, 0x2C, 0xD5, 0xDF,
- 0x07, 0xD2, 0xA0, 0xA8, 0x85, 0x9F, 0x14, 0x5F, 0xE1, 0x65, 0x3B, 0xA9, 0x9F, 0x45, 0xDF, 0x4C,
- 0xB8, 0x44, 0xF7, 0xEF, 0x67, 0x41, 0xD6, 0xE2, 0xF3, 0xBF, 0x87, 0x1E, 0x44, 0xA4, 0x95, 0xD4,
- 0x72, 0xE2, 0x16, 0x83, 0xC5, 0x2F, 0x96, 0xE8, 0x4A, 0x00, 0x7A, 0xE2, 0xA5, 0x57, 0xF4, 0xF4,
- 0x32, 0x34, 0x5F, 0x94, 0x8C, 0x17, 0x4A, 0xF0, 0xB7, 0xE7, 0xFA, 0xF0, 0xB5, 0x1E, 0x6B, 0x55,
- 0x2D, 0x6F, 0x5E, 0xCD, 0xCF, 0xD3, 0x10, 0xBE, 0x17, 0xC7, 0x6E, 0x97, 0xA0, 0xCA, 0x48, 0x08,
- 0xBD, 0x24, 0x5C, 0xE2, 0x41, 0x38, 0x3A, 0x34, 0xF5, 0x3D, 0xAC, 0x3C, 0xD1, 0x79, 0xAD, 0x55,
- 0x8B, 0x3B, 0x0E, 0x6E, 0xB1, 0x06, 0xA3, 0x2A, 0xF6, 0x7A, 0x97, 0xAA, 0x99, 0xD9, 0x9D, 0x2B,
- 0x2F, 0xFA, 0xF9, 0x65, 0xC5, 0x8C, 0x44, 0x8C, 0x0D, 0x8F, 0x8A, 0x77, 0x2D, 0xED, 0x2A, 0xDD,
- 0x90, 0x45, 0xAF, 0xBC, 0x75, 0x61, 0x94, 0xD5, 0xF8, 0x25, 0x77, 0x2E, 0xB5, 0xC0, 0xEB, 0xA2,
- 0x14, 0x47, 0x80, 0x35, 0x3C, 0xBF, 0x93, 0x26, 0x93, 0x68, 0xBD, 0x1F, 0xF7, 0x72, 0x0B, 0x21,
- 0x1B, 0xE7, 0x5D, 0xE0, 0xA8, 0xAE, 0x7B, 0xCE, 0x53, 0xF4, 0x27, 0x25, 0x92, 0x7D, 0xE8, 0xF7,
- 0x60, 0xA4, 0x8A, 0x99, 0x15, 0xB0, 0x89, 0x6C, 0x73, 0x09, 0x50, 0xC3, 0x32, 0x6D, 0x8C, 0x17,
- 0x63, 0x63, 0xFB, 0xE2, 0x35, 0x35, 0xC5, 0x64, 0x4B, 0x85, 0xB5, 0xAF, 0x45, 0xF4, 0xB4, 0xDD,
- 0xF6, 0xDE, 0xAD, 0x99, 0xD8, 0xFA, 0xBA, 0x45, 0xC0, 0x80, 0xB8, 0x41, 0x3C, 0x92, 0x3B, 0xF0,
- 0xBE, 0xBB, 0x34, 0x78, 0x01, 0x8A, 0xA1, 0x92, 0x5A, 0x04, 0x8B, 0x0B, 0xDA, 0x92, 0xC9, 0xB6,
- 0x5C, 0xD0, 0x54, 0x5B, 0xB9, 0x41, 0xD3, 0xDF, 0x10, 0x2C, 0x22, 0xF9, 0x25, 0xC2, 0x05, 0xD5,
- 0xCB, 0x0A, 0xC2, 0x9C, 0xAA, 0xC4, 0x23, 0x49, 0x9C, 0x47, 0x53, 0xBC, 0x1D, 0xB1, 0x88, 0x92,
- 0xE5, 0xFC, 0x9A, 0xE0, 0x4F, 0x03, 0x4A, 0x44, 0xE9, 0x68, 0x7D, 0xC1, 0x16, 0xC2, 0xDC, 0xA2,
- 0xEC, 0xC6, 0x02, 0x06, 0x91, 0x21, 0x3F, 0x54, 0xA4, 0xF7, 0x5A, 0x70, 0x7D, 0x5D, 0xA6, 0xA8,
- 0x33, 0x9A, 0x42, 0x6D, 0x1C, 0xDE, 0x12, 0x41, 0xC3, 0x32, 0x80, 0x78, 0xA7, 0x1A, 0x4F, 0xDE,
- 0x08, 0x18, 0xF6, 0x7B, 0x65, 0x95, 0x49, 0xC6, 0xCD, 0x1B, 0x65, 0x8C, 0x29, 0x3C, 0x3A, 0x54,
- 0x49, 0xE5, 0x62, 0x90, 0x36, 0x6C, 0x76, 0x1D, 0x00, 0xA9, 0x94, 0x43, 0xD6, 0x55, 0x5E, 0xBA,
- 0x5B, 0x1C, 0xA2, 0xF8, 0x27, 0x96, 0x9C, 0xAA, 0xE9, 0xED, 0x7A, 0x98, 0xC5, 0x84, 0xF0, 0xE1,
- 0xFF, 0x00, 0xDD, 0x7C, 0x1C, 0xAA, 0x58, 0x91, 0x16, 0x61, 0x3E, 0x8C, 0x11, 0xA6, 0x05, 0x29,
- 0x51, 0xFB, 0x14, 0xDD, 0xA3, 0x82, 0xD2, 0x39, 0xBD, 0xC4, 0x42, 0x69, 0x4F, 0x56, 0x51, 0x88,
- 0x5F, 0x4A, 0x7D, 0xC6, 0xE4, 0x45, 0x43, 0x27, 0x4C, 0x6E, 0x3A, 0xAE, 0xDE, 0xC6, 0xEF, 0x58,
- 0xAB, 0xF0, 0x5C, 0x62, 0x53, 0x94, 0x4A, 0x71, 0xA5, 0x6B, 0x7C, 0x50, 0x48, 0xB5, 0xAF, 0xE7,
- 0xA5, 0xB8, 0x56, 0x65, 0x94, 0x5D, 0x69, 0xCE, 0x5E, 0x1B, 0xF5, 0x04, 0x5C, 0x3F, 0x74, 0x4A,
- 0x80, 0xB6, 0x4C, 0x56, 0xE8, 0x97, 0x1A, 0xFF, 0xB8, 0x30, 0x5A, 0x7A, 0x13, 0xD9, 0x02, 0x34,
- 0x57, 0x4C, 0x40, 0xC4, 0xAC, 0xEF, 0xDC, 0x5F, 0xF4, 0x88, 0xC2, 0x4A, 0x50, 0xF0, 0xF3, 0xEF,
- 0xB0, 0x20, 0xAF, 0xD2, 0x8B, 0x2E, 0xBE, 0xF5, 0xF4, 0xC0, 0xF1, 0x3C, 0x4B, 0x34, 0x9B, 0x86,
- 0x8A, 0xDA, 0x33, 0x64, 0x08, 0x28, 0xFB, 0xC0, 0x81, 0x8D, 0x6A, 0x6D, 0x01, 0xEE, 0x63, 0x84,
- 0x83, 0xAB, 0xFC, 0x21, 0xF9, 0x33, 0x76, 0xCF, 0xBA, 0x01, 0x0D, 0x20, 0x1E, 0x87, 0x94, 0x42,
- 0x96, 0x9F, 0x8A, 0xA2, 0xC1, 0xBC, 0x83, 0x22, 0x2A, 0xFF, 0x6E, 0x6D, 0x67, 0x94, 0xF1, 0x4C,
- 0xE8, 0xD1, 0x4E, 0x58, 0x1E, 0xE9, 0xE2, 0x9F, 0xA9, 0x72, 0x2E, 0x0D, 0x98, 0xA8, 0x40, 0xA9,
- 0x52, 0x9E, 0xF6, 0x3B, 0xBE, 0xC5, 0x71, 0x4C, 0xE6, 0x56, 0x86, 0x76, 0x17, 0xD5, 0x48, 0xF9,
- 0x5A, 0xCB, 0x84, 0x30, 0xA9, 0xFA, 0xC8, 0x5E, 0xD9, 0xA9, 0x19, 0xA7, 0xB6, 0xE7, 0xAA, 0x5B,
- 0x4F, 0x11, 0xB8, 0x15, 0x57, 0x6C, 0x25, 0x32, 0x94, 0xD2, 0xCD, 0x1E, 0x84, 0xD4, 0x2F, 0xAA,
- 0xB3, 0xF6, 0x62, 0x74, 0xD0, 0x6F, 0x2F, 0x08, 0x25, 0xF7, 0x0C, 0x04, 0x4E, 0xB7, 0x57, 0xCC,
- 0x61, 0x37, 0x7A, 0x23, 0x4F, 0x15, 0x85, 0x91, 0xBC, 0x4D, 0xA4, 0x74, 0x79, 0xFD, 0x03, 0xE5,
- 0x11, 0xEA, 0xEC, 0xB6, 0x07, 0x92, 0x22, 0xE9, 0x91, 0x9D, 0x3F, 0xD4, 0x2E, 0x39, 0xFD, 0xAB,
- 0x41, 0xBE, 0xEC, 0x0D, 0xCA, 0x59, 0x83, 0x37, 0x8D, 0x35, 0xCF, 0x73, 0xC7, 0x95, 0xFD, 0x71,
- 0xE9, 0x01, 0x16, 0x2D, 0xB6, 0x96, 0x49, 0x5E, 0x92, 0xC7, 0x35, 0xBD, 0x7E, 0x8D, 0x52, 0x13,
- 0xCE, 0x69, 0x9B, 0x27, 0x57, 0xBD, 0x2A, 0xB1, 0x24, 0xD6, 0x7C, 0x04, 0x0E, 0x43, 0xF5, 0x25,
- 0x1D, 0xB3, 0xC7, 0xBF, 0x05, 0xBB, 0x0F, 0x18, 0x1B, 0x70, 0x3A, 0x85, 0xB8, 0x91, 0xF8, 0xA2,
- 0xE0, 0x15, 0x43, 0xAA, 0x7C, 0xD9, 0xD7, 0x3C, 0x50, 0xEB, 0x64, 0x46, 0xF1, 0xDC, 0x49, 0xBC,
- 0x75, 0x5D, 0x70, 0x00, 0x04, 0xE9, 0xEE, 0x9D, 0xF2, 0xD9, 0xBF, 0x04, 0xA8, 0x05, 0xE3, 0x40,
- 0x9A, 0xA3, 0x93, 0x76, 0x44, 0xFB, 0x4A, 0x07, 0x3B, 0xD1, 0x07, 0x1F, 0x03, 0xCC, 0x0E, 0xC0,
- 0x5D, 0xE2, 0x9B, 0xB5, 0x9F, 0xA9, 0xAF, 0x5B, 0x06, 0x60, 0x5F, 0x13, 0xA4, 0xA7, 0x9C, 0x21,
- 0x3E, 0x3F, 0x69, 0xCD, 0xCA, 0xB5, 0x55, 0x4F, 0xC1, 0x3C, 0xF3, 0x29, 0xD5, 0x60, 0xDD, 0x1F,
- 0x7F, 0x98, 0x27, 0x8A, 0xEC, 0x46, 0xFD, 0xAA, 0x76, 0xFE, 0x38, 0x85, 0xA9, 0x0D, 0xE0, 0x94,
- 0x62, 0x14, 0x78, 0x58, 0xAC, 0x83, 0xB1, 0x54, 0x8B, 0x7C, 0x1C, 0x0E, 0xF4, 0xA7, 0x06, 0x86,
- 0x1F, 0xA5, 0x4B, 0x0A, 0xF7, 0x9A, 0x15, 0xF9, 0x8D, 0x6D, 0x54, 0xC1, 0x5D, 0x5F, 0x0A, 0xC6,
- 0x1C, 0xB2, 0x46, 0x34, 0xE8, 0xBC, 0x4B, 0x44, 0xB6, 0xD7, 0xF6, 0xA7, 0xF0, 0xE1, 0x89, 0xAA,
- 0x6D, 0x67, 0xC0, 0x4F, 0xD0, 0xE0, 0xA0, 0x90, 0x3B, 0x07, 0x00, 0xB0, 0xCF, 0x6C, 0x14, 0xF2,
- 0x7A, 0x67, 0xE3, 0x16, 0x85, 0x3D, 0xE0, 0x60, 0x56, 0xD8, 0x7C, 0xC8, 0xD0, 0x6B, 0xA0, 0xAB,
- 0x04, 0x94, 0x14, 0xB7, 0xFF, 0x1F, 0x05, 0x2B, 0x78, 0x08, 0xD2, 0x2A, 0x54, 0xD4, 0xF5, 0xCA,
- 0xDC, 0xC2, 0x89, 0x77, 0xEA, 0x60, 0x83, 0x73, 0xB6, 0xA6, 0xDB, 0xA6, 0xCE, 0xAE, 0xCA, 0x8F,
- 0xCB, 0x10, 0xF0, 0x7F, 0x93, 0x5E, 0xEE, 0x4E, 0x15, 0xBB, 0xDD, 0x23, 0x28, 0x2F, 0x2C, 0x3E,
- 0xB5, 0xFA, 0x7F, 0x5F, 0x3D, 0xF1, 0x30, 0xDC, 0x92, 0xF7, 0xC8, 0xC8, 0x48, 0x98, 0x03, 0xAF,
- 0x84, 0xF5, 0xD1, 0xBD, 0x1E, 0x01, 0xBD, 0xCD, 0x85, 0x2B, 0xBD, 0x95, 0x5E, 0xB0, 0xDC, 0x7D,
- 0x3B, 0xF5, 0x01, 0x6A, 0x47, 0x90, 0x77, 0xB7, 0x02, 0x05, 0xA8, 0x79, 0x00, 0x91, 0x8C, 0x86,
- 0x97, 0x7B, 0x27, 0x4A, 0xB8, 0x33, 0x28, 0xC5, 0x75, 0x05, 0xC7, 0xCE, 0x96, 0x95, 0xE6, 0x99,
- 0xB6, 0xCC, 0x0D, 0x34, 0xB8, 0x10, 0xC3, 0x2D, 0xCB, 0x04, 0xCA, 0x9F, 0x23, 0x30, 0x35, 0xD5,
- 0xF6, 0x3B, 0x23, 0xEA, 0x15, 0x7D, 0x9D, 0x6D, 0xB6, 0x68, 0xB0, 0x31, 0x88, 0x0E, 0x35, 0xF1,
- 0x72, 0xC0, 0xF3, 0xC5, 0xFF, 0x7A, 0x52, 0x90, 0x70, 0xE7, 0xB9, 0x29, 0x25, 0x8B, 0x5C, 0x5D,
- 0xF4, 0x15, 0x2D, 0x92, 0xAF, 0x86, 0x72, 0x58, 0x3B, 0x2A, 0x09, 0x25, 0x29, 0xC0, 0x41, 0xE0,
- 0xA1, 0x4C, 0x76, 0x69, 0x63, 0x93, 0x65, 0x08, 0x75, 0x18, 0xA9, 0x09, 0xA8, 0xBF, 0x2A, 0x90,
- 0xFC, 0x95, 0x4E, 0x50, 0xD5, 0xA9, 0xB1, 0x87, 0x33, 0x94, 0xCC, 0x49, 0x69, 0x2A, 0xDE, 0x86,
- 0x06, 0xB5, 0x3F, 0xF6, 0xC2, 0xBB, 0x52, 0xF5, 0xED, 0x22, 0x6B, 0x38, 0xE7, 0x5B, 0x03, 0x63,
- 0x31, 0x44, 0x47, 0x25, 0xE4, 0x34, 0xF0, 0x03, 0xDD, 0xDC, 0x20, 0xDC, 0x70, 0xCA, 0xCC, 0xD9,
- 0xBA, 0x5F, 0x68, 0xC4, 0x91, 0x5B, 0x49, 0x6D, 0xB3, 0xAA, 0xEA, 0x34, 0x2A, 0xC9, 0xE6, 0x46,
- 0x41, 0x4A, 0x8F, 0xD0, 0xF5, 0xC7, 0x99, 0xB3, 0x2A, 0x5A, 0xE1, 0x17, 0x4D, 0xC8, 0x24, 0xDC,
- 0x20, 0x86, 0x4A, 0x25, 0x3F, 0x0C, 0xCC, 0x14, 0x07, 0xAD, 0x5C, 0x12, 0xC0, 0x50, 0x57, 0x41,
- 0x4A, 0x48, 0x2F, 0x4D, 0x18, 0x08, 0x79, 0x35, 0x20, 0xA7, 0x5F, 0xB9, 0x83, 0x5E, 0x93, 0x91,
- 0xE2, 0xCB, 0xAB, 0x8B, 0xAB, 0xF1, 0x92, 0x19, 0x52, 0xF1, 0x33, 0x3F, 0x0A, 0xB8, 0x61, 0xD5,
- 0x5C, 0xC8, 0x6F, 0x05, 0x6C, 0x69, 0x0E, 0x3D, 0x99, 0xE2, 0xD2, 0xD2, 0x08, 0x76, 0x64, 0xEB,
- 0x1B, 0xBC, 0x79, 0xB6, 0xE4, 0xA9, 0x82, 0xF1, 0x77, 0x59, 0x78, 0xC0, 0x80, 0xAD, 0xD2, 0x7D,
- 0xC2, 0xC7, 0x6C, 0xF1, 0x2A, 0x6E, 0xDE, 0x0C, 0x9F, 0xE0, 0x77, 0x91, 0xF2, 0xE8, 0xE4, 0x7B,
- 0xA7, 0xEF, 0xDA, 0xD0, 0x78, 0xCD, 0x29, 0x3E, 0x59, 0x05, 0x68, 0xBA, 0x6A, 0x7A, 0x17, 0x7E,
- 0x37, 0xF0, 0x21, 0xF8, 0x4E, 0xC7, 0xD8, 0xDE, 0x13, 0x43, 0x55, 0x0F, 0x41, 0x5A, 0x6E, 0x98,
- 0x6B, 0xD0, 0x24, 0xC1, 0x0E, 0xA9, 0x6B, 0x63, 0xA9, 0xAF, 0x8C, 0x66, 0x9C, 0xA0, 0x43, 0xCB,
- 0x2E, 0xEF, 0xA0, 0x20, 0x49, 0xEA, 0x11, 0x06, 0x2D, 0xDB, 0xDD, 0x2F, 0x5F, 0xB7, 0x5B, 0x06,
- 0xD5, 0xA4, 0xFE, 0xEA, 0xE8, 0x76, 0xEA, 0x29, 0xD3, 0x21, 0x52, 0x0D, 0x96, 0xA4, 0xF7, 0x58,
- 0x74, 0xAF, 0xAD, 0xB8, 0x29, 0xDB, 0x5D, 0x0A, 0xC2, 0x89, 0xEF, 0xF6, 0x35, 0x2A, 0xD6, 0xEB,
- 0x03, 0xDD, 0x73, 0x41, 0x6D, 0xBB, 0x52, 0xFA, 0xC0, 0x5E, 0xFD, 0xFF, 0xF2, 0x64, 0x2E, 0x42,
- 0xCB, 0x95, 0x40, 0xA7, 0xDD, 0x2E, 0x7C, 0xEF, 0x2A, 0x18, 0x97, 0x53, 0x67, 0xDB, 0x00, 0xC5,
- 0x94, 0xFD, 0x2F, 0xD9, 0xF7, 0x10, 0xA6, 0xC1, 0x0B, 0x20, 0x4C, 0xE0, 0x2E, 0x72, 0x6D, 0xE9,
- 0x00, 0x23, 0xE4, 0x63, 0xD3, 0x03, 0x16, 0x8C, 0x71, 0x35, 0x95, 0xAE, 0x99, 0x88, 0xA4, 0x40,
- 0x9D, 0x3C, 0xCB, 0x58, 0x4E, 0x78, 0xF4, 0x9E, 0xBD, 0x17, 0xDD, 0x6E, 0x08, 0xDF, 0xD9, 0x66,
- 0xEB, 0xD9, 0x2F, 0x7E, 0x41, 0x29, 0xCB, 0xD3, 0xEA, 0x3B, 0xF0, 0x57, 0xAE, 0xD9, 0x64, 0x8E,
- 0x75, 0xE7, 0x48, 0x71, 0x22, 0xD9, 0x68, 0xC7, 0x49, 0x41, 0x9B, 0x78, 0xCE, 0x05, 0x1C, 0xA8,
- 0xFF, 0x66, 0x4A, 0xE1, 0x56, 0x13, 0x47, 0x9A, 0x1E, 0x99, 0xC4, 0x00, 0xE4, 0xF3, 0xBD, 0x00,
- 0x9B, 0x58, 0xA0, 0xC7, 0xDC, 0x9B, 0x53, 0xE7, 0x81, 0xF6, 0xDE, 0x8E, 0x82, 0x35, 0x77, 0xB4,
- 0x47, 0x44, 0x6B, 0x7E, 0xDA, 0x6D, 0x49, 0xD6, 0x1C, 0x7A, 0xFB, 0x83, 0xA7, 0xCE, 0xA7, 0x0C,
- 0xE8, 0xAD, 0xBA, 0x94, 0xBF, 0xB0, 0xD9, 0xEC, 0x7D, 0x7A, 0xC5, 0x73, 0x38, 0xAA, 0x61, 0xDE,
- 0x25, 0xAE, 0x86, 0x18, 0x78, 0x04, 0x5C, 0x9A, 0x2C, 0x58, 0x54, 0xD2, 0x8D, 0x01, 0x30, 0x3F,
- 0xE1, 0xBA, 0x6D, 0x18, 0x9D, 0x01, 0x98, 0x94, 0x19, 0xE0, 0x46, 0x91, 0xFC, 0xAF, 0x9B, 0x88,
- 0x2A, 0xB9, 0x3E, 0x97, 0x1D, 0xA1, 0x0D, 0x2A, 0x57, 0xE7, 0xBF, 0x8F, 0xE8, 0x82, 0xDC, 0x5F,
- 0xF9, 0xD6, 0x3B, 0x1A, 0x8C, 0x10, 0xCF, 0x17, 0x48, 0x13, 0x09, 0x1D, 0x0D, 0xC6, 0x16, 0x75,
- 0x59, 0xD2, 0x28, 0x08, 0xE6, 0x03, 0x3C, 0x47, 0xED, 0xC0, 0x9C, 0x0F, 0xD2, 0x24, 0x1E, 0xD2,
- 0xAF, 0x20, 0x05, 0xEF, 0x88, 0x8C, 0xC0, 0x8F, 0x7C, 0xA4, 0xF7, 0xB6, 0xC5, 0x26, 0xBC, 0xF8,
- 0xDB, 0xF3, 0xC1, 0xEE, 0x63, 0x76, 0xBC, 0xBC, 0xB1, 0x90, 0xE0, 0x1C, 0x13, 0xF4, 0x6D, 0x03,
- 0x44, 0x2D, 0xE4, 0xFB, 0x43, 0x78, 0x05, 0x00, 0xEA, 0x2C, 0xBC, 0x86, 0xA4, 0x72, 0x1B, 0xC8,
- 0x0D, 0xC0, 0x6E, 0xD4, 0x87, 0x16, 0x0F, 0x55, 0xE6, 0x02, 0x88, 0x9C, 0xC5, 0x99, 0x85, 0x8C,
- 0x8A, 0x6A, 0x38, 0xCD, 0xE8, 0x57, 0xF1, 0x80, 0x60, 0x52, 0xB8, 0xEB, 0xB0, 0xC2, 0xC4, 0xA9,
- 0x53, 0x19, 0xDC, 0x53, 0xCE, 0x66, 0xDB, 0xFA, 0x4D, 0x17, 0x39, 0xA4, 0xEA, 0x9D, 0xE8, 0x14,
- 0x77, 0xCA, 0x62, 0xDD, 0x26, 0xEA, 0x76, 0x08, 0xF5, 0xFF, 0xEE, 0xD5, 0x23, 0x8D, 0xF1, 0xFE,
- 0x8E, 0x93, 0xEA, 0x22, 0xF8, 0xE9, 0xE8, 0x61, 0xE6, 0x32, 0xB9, 0x7E, 0xB3, 0x5D, 0x16, 0xE2,
- 0xED, 0x96, 0xEC, 0x89, 0x60, 0xE6, 0x44, 0x1C, 0x4B, 0xFC, 0x49, 0x08, 0x73, 0x08, 0xC1, 0x13,
- 0xA7, 0xCB, 0xAD, 0xEA, 0x24, 0x09, 0xA9, 0x12, 0x48, 0x7A, 0x19, 0xC5, 0x0C, 0x6D, 0x91, 0xBE,
- 0xC3, 0x65, 0xD3, 0x46, 0xCF, 0xCE, 0x81, 0xFC, 0x9E, 0xA9, 0x51, 0xD9, 0x9D, 0xC1, 0x85, 0x36,
- 0xED, 0xDB, 0xC7, 0x09, 0x16, 0xC5, 0xD0, 0xF1, 0xB7, 0x4C, 0x80, 0x5F, 0x40, 0x7A, 0xB3, 0xEE,
- 0x07, 0xE7, 0xF5, 0x50, 0xC3, 0xF0, 0xE7, 0xEB, 0x89, 0xF6, 0x0F, 0x9E, 0x36, 0x42, 0x52, 0x1A,
- 0x41, 0xDF, 0x5C, 0xEC, 0x27, 0xC1, 0x92, 0x14, 0xE8, 0x58, 0xFA, 0xF6, 0x6F, 0x1D, 0x5D, 0xE9,
- 0x80, 0xBD, 0x83, 0xD6, 0x50, 0xA4, 0x5B, 0xF2, 0xBD, 0xDA, 0xB4, 0x3A, 0x19, 0x51, 0x1B, 0xC7,
- 0x2E, 0x17, 0xD4, 0x19, 0x78, 0x9F, 0x18, 0xFB, 0xD7, 0x20, 0x3B, 0x70, 0x30, 0xE1, 0x4C, 0x36,
- 0x83, 0xD8, 0x9F, 0xB9, 0x57, 0x4F, 0xDF, 0x66, 0x54, 0x37, 0xB4, 0xDD, 0xB3, 0xB6, 0x52, 0x2D,
- 0x1D, 0x30, 0x19, 0x60, 0x6A, 0x7A, 0x85, 0x7D, 0xC3, 0xB3, 0xDC, 0x1D, 0xAB, 0xB4, 0xE5, 0x3F,
- 0x72, 0x12, 0xBB, 0x46, 0xEC, 0x28, 0xFC, 0x2B, 0x9E, 0x36, 0xD0, 0x92, 0x07, 0x59, 0x59, 0xFE,
- 0x3C, 0x9C, 0x52, 0x1B, 0x91, 0x43, 0xA1, 0xFD, 0xF6, 0x79, 0xB4, 0x5C, 0xEE, 0xCB, 0x00, 0xA4,
- 0xB2, 0xFF, 0xD1, 0xDA, 0xF4, 0x8A, 0x24, 0xF9, 0xCF, 0x61, 0xA5, 0x9D, 0xEC, 0x6D, 0xC3, 0xCF,
- 0xEC, 0xC6, 0x9A, 0x12, 0x2B, 0x9A, 0xFF, 0xDC, 0x61, 0x2E, 0x4D, 0x5D, 0xA5, 0x53, 0x6C, 0x34,
- 0x8E, 0x62, 0x23, 0x85, 0x55, 0x40, 0xC1, 0x89, 0x1D, 0x7F, 0x65, 0xF3, 0x03, 0xCE, 0xA1, 0xFF,
- 0x37, 0xD6, 0xFD, 0x1F, 0x68, 0x1A, 0xFF, 0xBD, 0xB4, 0xEC, 0x77, 0xE4, 0xF8, 0x01, 0xE6, 0x30,
- 0xBB, 0xC3, 0x69, 0xC7, 0xDE, 0xAE, 0xA6, 0x4F, 0x66, 0xCE, 0xCF, 0xB6, 0xF0, 0x82, 0x94, 0x6C,
- 0x8D, 0xBE, 0xD7, 0xF9, 0x0B, 0xDD, 0xD6, 0x0A, 0x93, 0xF0, 0xF3, 0xC0, 0xFC, 0xD5, 0x16, 0xDE,
- 0x12, 0xF3, 0x0D, 0xFF, 0x1F, 0xCE, 0xD7, 0xFD, 0x8F, 0x3A, 0xF6, 0xFA, 0x8B, 0xA4, 0x00, 0xF3,
- 0x92, 0x48, 0x88, 0x7C, 0xD0, 0x0C, 0xDE, 0xC0, 0xE2, 0x84, 0xA9, 0x05, 0xE2, 0x8E, 0xD2, 0xDA,
- 0x00, 0xA8, 0x20, 0x3E, 0x89, 0xEC, 0x81, 0xE5, 0xE4, 0xED, 0xFA, 0x37, 0xCC, 0x2A, 0x78, 0xC8,
- 0x49, 0xF4, 0xE4, 0xF3, 0x98, 0x56, 0x0A, 0x86, 0x49, 0x78, 0x3A, 0xEC, 0x64, 0xAA, 0xBC, 0x39,
- 0x95, 0xAC, 0xD5, 0xA8, 0x2A, 0x23, 0x49, 0x5A, 0xE0, 0xB0, 0xFB, 0x8A, 0x45, 0xE1, 0x2A, 0xBA,
- 0xA3, 0x39, 0x87, 0x91, 0x1C, 0xF9, 0x0D, 0x9F, 0x27, 0x4A, 0x0C, 0x5B, 0x73, 0x41, 0xB8, 0xF3,
- 0x8C, 0x05, 0x4F, 0x97, 0x46, 0x4E, 0x19, 0x2C, 0x91, 0xA2, 0xFD, 0xE3, 0x3B, 0x76, 0x1B, 0xE0,
- 0xEB, 0x8E, 0x08, 0xFC, 0x6A, 0xBD, 0x53, 0x5A, 0x93, 0x6B, 0x6E, 0xCF, 0x63, 0xF0, 0x9D, 0xE3,
- 0xC4, 0x8F, 0xBE, 0x19, 0xD2, 0x25, 0x50, 0xC4, 0x87, 0x02, 0xD6, 0xFC, 0xC3, 0x69, 0x97, 0xB5,
- 0x26, 0x9D, 0x7A, 0xBE, 0x61, 0x92, 0xA8, 0x08, 0x19, 0x25, 0xF4, 0x77, 0xD6, 0x1B, 0x75, 0x51,
- 0x43, 0xBF, 0x58, 0x1F, 0x4B, 0xD2, 0x57, 0x7E, 0xA5, 0x51, 0xD4, 0x6A, 0x56, 0x46, 0x9E, 0x61,
- 0xFB, 0xB7, 0xD2, 0x9B, 0xEA, 0x8E, 0xB9, 0x69, 0xAC, 0xEC, 0xB3, 0x80, 0x03, 0x31, 0xD5, 0x8A,
- 0x40, 0xA5, 0x20, 0x48, 0x58, 0xD1, 0xEE, 0x10, 0xBA, 0x91, 0xAC, 0xEA, 0xDC, 0x15, 0xB6, 0xFF,
- 0xE6, 0xD4, 0x25, 0xDB, 0xD3, 0x36, 0x86, 0xE2, 0x65, 0xDD, 0x40, 0x3A, 0xC2, 0x31, 0x31, 0x9F,
- 0x7E, 0x6C, 0xFA, 0xF8, 0x57, 0x0E, 0x49, 0x80, 0x1E, 0xED, 0x64, 0xF6, 0x53, 0xD0, 0xEF, 0x75,
- 0x82, 0x98, 0x28, 0xEE, 0xE1, 0x74, 0x09, 0xA6, 0x7A, 0x84, 0x73, 0x91, 0x96, 0xBC, 0x8B, 0x1F,
- 0x99, 0x46, 0xE5, 0x4A, 0xC3, 0x99, 0x3D, 0x99, 0xC3, 0x49, 0x1F, 0xA6, 0x1F, 0xA5, 0x3C, 0x19,
- 0x4D, 0x9E, 0x5A, 0x65, 0xFA, 0x79, 0xFC, 0x89, 0x77, 0xB8, 0xF8, 0x11, 0x56, 0x5E, 0xEE, 0x64,
- 0xD3, 0x96, 0xAF, 0x76, 0x4D, 0xA7, 0x51, 0x7C, 0xDA, 0x82, 0x21, 0xF1, 0x36, 0x51, 0x9C, 0xE0,
- 0x09, 0x16, 0x01, 0x4F, 0xEC, 0x3C, 0x43, 0xAB, 0xA0, 0x21, 0xC1, 0xE5, 0x32, 0x7D, 0xA1, 0x64,
- 0x31, 0x22, 0xB0, 0xD0, 0x7A, 0x86, 0x74, 0xA4, 0x94, 0x5E, 0xB4, 0x1E, 0xF6, 0xDC, 0x47, 0xBF,
- 0x28, 0x10, 0xDD, 0x6D, 0x09, 0x4B, 0xC4, 0x8B, 0x08, 0x0A, 0x3A, 0x10, 0xC1, 0xC9, 0x6C, 0xCA,
- 0x1A, 0xEB, 0x99, 0x62, 0x5B, 0xA0, 0xF9, 0x57, 0x2C, 0x32, 0x4B, 0x76, 0x0E, 0x40, 0xE7, 0x92,
- 0xFA, 0x37, 0xE6, 0x64, 0xF2, 0x49, 0x35, 0x52, 0x64, 0x17, 0xD1, 0xFE, 0xF3, 0xF4, 0x5D, 0xC6,
- 0xBE, 0x83, 0x6B, 0x82, 0x3D, 0xB8, 0x4D, 0x43, 0xC4, 0xBB, 0xAD, 0x26, 0xD5, 0x5E, 0xB1, 0xAF,
- 0x80, 0x8A, 0x7A, 0xD0, 0x7C, 0xAA, 0x8A, 0xE6, 0x16, 0x91, 0x31, 0x9C, 0xF2, 0xE1, 0x1A, 0x85,
- 0x80, 0x5C, 0x3A, 0x65, 0x70, 0xC0, 0xEF, 0x90, 0x79, 0xED, 0x59, 0x07, 0xDD, 0xE8, 0xAF, 0xFE,
- 0x9B, 0x94, 0x51, 0x0D, 0xA6, 0x11, 0x47, 0xD8, 0xE7, 0x81, 0xDB, 0x65, 0x7A, 0x35, 0x32, 0xFB,
- 0x36, 0x14, 0x67, 0x2F, 0xA6, 0x98, 0x70, 0xF3, 0x2F, 0xB5, 0xD0, 0x12, 0x46, 0x3F, 0x2C, 0x44,
- 0x87, 0xC0, 0xF8, 0xDB, 0xB9, 0xF9, 0x76, 0x9E, 0xB8, 0x87, 0x44, 0x39, 0x4A, 0xCF, 0xFC, 0xCE,
- 0xD1, 0x7C, 0x4D, 0xDF, 0x73, 0x0F, 0xA7, 0x62, 0x6B, 0xD1, 0xC2, 0x6F, 0x16, 0xF1, 0xBA, 0xF3,
- 0x8C, 0xD5, 0xB9, 0xE1, 0x96, 0x87, 0xF3, 0xF4, 0x80, 0x79, 0x34, 0x09, 0xB1, 0x8A, 0x65, 0xC5,
- 0x15, 0xD4, 0xCC, 0x45, 0x99, 0xCB, 0x2E, 0x6D, 0x65, 0xBB, 0xFF, 0x01, 0x00, 0x33, 0xCB, 0x16,
- 0x86, 0x78, 0xF0, 0x39, 0x17, 0x05, 0xC4, 0x9D, 0x7C, 0xBE, 0xAA, 0x23, 0x6A, 0xF9, 0xC3, 0x91,
- 0xA0, 0x76, 0xCC, 0x39, 0xA2, 0x61, 0xE1, 0x13, 0xCD, 0xF8, 0xEC, 0xE6, 0x19, 0x3E, 0xD9, 0x1C,
- 0x7B, 0x2E, 0x20, 0xCA, 0x1F, 0xB0, 0xAE, 0xB2, 0xDE, 0xFC, 0xF6, 0x9C, 0xDC, 0xFC, 0xB5, 0xB0,
- 0xBD, 0x8E, 0x90, 0xE6, 0x64, 0x05, 0x80, 0xD8, 0x28, 0xF8, 0x99, 0xAF, 0x91, 0x2A, 0xEE, 0x74,
- 0x6E, 0x0B, 0x31, 0xD0, 0xAE, 0x92, 0x6B, 0xC8, 0xB8, 0x32, 0xA9, 0xED, 0x4E, 0x70, 0x2F, 0x7E,
- 0xB6, 0xB4, 0xA1, 0x8F, 0x7C, 0x33, 0xCF, 0xC5, 0x5E, 0xB0, 0x98, 0x03, 0x7C, 0x06, 0x40, 0x6A,
- 0x38, 0xB3, 0x69, 0x6B, 0x69, 0xD7, 0x52, 0x77, 0xAA, 0x23, 0x70, 0x0C, 0xE6, 0x0D, 0x26, 0x12,
- 0x7D, 0xF3, 0xA0, 0x2D, 0xE3, 0x42, 0xC7, 0x5D, 0xFF, 0x2E, 0x49, 0xAE, 0x5E, 0xEC, 0x0C, 0x7A,
- 0x08, 0x0B, 0xE4, 0x13, 0xF6, 0x65, 0x75, 0xA7, 0x76, 0x02, 0xF6, 0xAA, 0x5C, 0xF1, 0x6B, 0xAB,
- 0xA6, 0x39, 0x2D, 0x1C, 0xC5, 0x5E, 0x1B, 0x75, 0x29, 0xA2, 0x8D, 0xD0, 0xF5, 0xB3, 0x9D, 0x3C,
- 0xBA, 0xBD, 0xCB, 0x1F, 0xEF, 0x20, 0xC5, 0xE3, 0x88, 0xC5, 0x44, 0x58, 0x1F, 0xFC, 0x7B, 0x39,
- 0x6E, 0x3F, 0xA3, 0x30, 0x3A, 0x1A, 0xE5, 0x67, 0xE0, 0x44, 0xF0, 0x7C, 0x50, 0x7F, 0x66, 0x54,
- 0x1B, 0x5D, 0xD5, 0x75, 0x7D, 0xE1, 0x9B, 0x77, 0x38, 0x46, 0xBC, 0x8C, 0x37, 0x1D, 0xA8, 0xA7,
- 0x2B, 0xC0, 0x07, 0xDB, 0xE6, 0x6C, 0x63, 0x42, 0x4B, 0x6E, 0xEB, 0x42, 0xF2, 0x65, 0xEB, 0xEE,
- 0x85, 0x09, 0xDC, 0x6D, 0x11, 0xDE, 0x08, 0xD6, 0x1E, 0x97, 0x09, 0x85, 0x36, 0x5E, 0x5A, 0xDA,
- 0x8D, 0x54, 0x99, 0x6C, 0x8C, 0xAC, 0xE4, 0xD7, 0x6D, 0x27, 0x93, 0x05, 0x41, 0xCF, 0xB1, 0x41,
- 0x64, 0x05, 0xCC, 0x0B, 0xDD, 0x65, 0xF2, 0x00, 0xFE, 0x5A, 0xD2, 0xD1, 0x0C, 0x60, 0x6B, 0x1F,
- 0xAF, 0x3C, 0x1F, 0x1D, 0xED, 0xF5, 0xB9, 0xBA, 0xB8, 0xA7, 0xD6, 0x44, 0xA3, 0xFE, 0xCB, 0xB1,
- 0x30, 0xE1, 0xED, 0xDA, 0xDF, 0x38, 0xD1, 0x79, 0x90, 0x7A, 0x62, 0x5E, 0x74, 0x61, 0xC6, 0xC4,
- 0x07, 0x40, 0x0F, 0x1E, 0x2A, 0x53, 0x9F, 0xB1, 0x8E, 0x00, 0x9B, 0xB1, 0xAC, 0xA0, 0x12, 0x9D,
- 0x7E, 0xC6, 0xBA, 0xAF, 0x48, 0xE1, 0xA7, 0xF9, 0xC1, 0x02, 0x63, 0x42, 0xA7, 0x96, 0xCC, 0x46,
- 0x2A, 0xA8, 0xD6, 0x16, 0x5F, 0x53, 0x2D, 0x2A, 0xC4, 0x41, 0xA3, 0xBA, 0x6D, 0x7F, 0x80, 0x17,
- 0x6B, 0xDD, 0xC5, 0xEB, 0x91, 0x02, 0x8C, 0x62, 0x52, 0xAF, 0xE0, 0x62, 0xAD, 0x63, 0xE2, 0x41,
- 0xE3, 0x13, 0xEA, 0x26, 0xB2, 0x5A, 0xE5, 0xB2, 0xF6, 0x7B, 0xA5, 0x3C, 0xCD, 0xB2, 0xDB, 0xBC,
- 0x74, 0xCA, 0xD5, 0xEE, 0x8E, 0xF8, 0xD4, 0x92, 0x35, 0x7B, 0x11, 0x82, 0x13, 0x13, 0xEF, 0xCB,
- 0xA5, 0xE5, 0xD0, 0x07, 0x8E, 0x7D, 0xBD, 0x81, 0x35, 0xBF, 0x14, 0x4B, 0xAD, 0x8A, 0x55, 0x65,
- 0xFB, 0x5D, 0x54, 0xC3, 0xE9, 0x65, 0x7C, 0x22, 0x6E, 0x4E, 0x48, 0x46, 0xAB, 0x2E, 0x6A, 0x93,
- 0xB5, 0x7E, 0x3F, 0x1E, 0x9F, 0x6E, 0xC9, 0x11, 0xF1, 0xC9, 0x38, 0xE0, 0x8F, 0xAD, 0x83, 0x1F,
- 0x6D, 0xD2, 0xD6, 0x86, 0x98, 0x3C, 0x25, 0xA3, 0x9A, 0x49, 0xE3, 0x02, 0xC6, 0xD6, 0x2A, 0x09,
- 0x8B, 0x1F, 0xCD, 0x0A, 0x2B, 0x8D, 0x49, 0x46, 0xB8, 0x15, 0x45, 0x90, 0x71, 0x10, 0x4C, 0xAE,
- 0x5C, 0x3D, 0x6A, 0x54, 0x82, 0xEE, 0x88, 0x24, 0x69, 0x8D, 0x99, 0x7F, 0x05, 0xDC, 0x46, 0x5D,
- 0x69, 0xC1, 0x6C, 0x9D, 0xB7, 0x9F, 0x12, 0x75, 0xB2, 0x36, 0xA5, 0xD4, 0xCB, 0xBD, 0x2F, 0xB4,
- 0xB0, 0x88, 0x79, 0x9A, 0x34, 0x21, 0xB9, 0x29, 0x7C, 0xB1, 0x6F, 0x21, 0xFB, 0xD6, 0xB8, 0x86,
- 0xF8, 0xE0, 0x45, 0xE8, 0x7F, 0x07, 0x9B, 0x7B, 0xC9, 0x38, 0x48, 0x2E, 0x9E, 0xBB, 0x7B, 0x9C,
- 0x7C, 0xB2, 0x86, 0xE1, 0x2E, 0xA0, 0x8F, 0xB0, 0x32, 0xF2, 0xF0, 0xAA, 0x18, 0x53, 0x78, 0xEB,
- 0x71, 0x60, 0x4E, 0xF9, 0x6E, 0x70, 0xD6, 0x4A, 0x08, 0x3E, 0x09, 0xCB, 0xA1, 0x8B, 0xC3, 0xD3,
- 0xFC, 0xE8, 0xC8, 0xC6, 0x9A, 0xC3, 0xAB, 0x8C, 0xD8, 0x1F, 0x7F, 0x17, 0xC8, 0x92, 0x6E, 0x6A,
- 0x9C, 0x27, 0xA5, 0xF4, 0xA4, 0x51, 0x08, 0x61, 0xA7, 0x76, 0x23, 0x33, 0x6F, 0xAA, 0xE2, 0x76,
- 0x46, 0xFE, 0x7D, 0xDA, 0xCE, 0xF8, 0x07, 0xDD, 0xED, 0xE9, 0x38, 0xE0, 0x41, 0x23, 0x7B, 0x7C,
- 0x4B, 0x3D, 0x6C, 0x63, 0x55, 0xEF, 0xB0, 0x37, 0x75, 0x3D, 0x52, 0x97, 0x0E, 0x4A, 0xBF, 0x4E,
- 0x00, 0x4A, 0xDD, 0xFF, 0x14, 0x9D, 0xE4, 0xAD, 0x59, 0x4F, 0xEA, 0x23, 0x95, 0x06, 0x2B, 0xF5,
- 0x0B, 0x0A, 0x28, 0x89, 0x78, 0x9B, 0x82, 0xDE, 0x51, 0x6A, 0x9A, 0x7B, 0xCA, 0x94, 0xCC, 0x5A,
- 0xD5, 0x5D, 0x54, 0x02, 0xAC, 0x2E, 0x94, 0x3D, 0x29, 0x50, 0xFE, 0x42, 0xB2, 0x01, 0x1F, 0x07,
- 0x91, 0xAB, 0xEA, 0x49, 0x8C, 0xF4, 0x36, 0xD3, 0x38, 0xB3, 0x9F, 0xDF, 0x04, 0x07, 0x51, 0xCF,
- 0x17, 0xEE, 0xA6, 0x43, 0x0C, 0xFC, 0xA8, 0xEA, 0x56, 0x92, 0x91, 0x99, 0x59, 0xBE, 0xEA, 0x2A,
- 0xD2, 0xD8, 0x64, 0x38, 0xC0, 0xD5, 0x87, 0x4D, 0xC4, 0x15, 0xB1, 0x4C, 0xAE, 0x32, 0x3B, 0xCD,
- 0x8B, 0x2A, 0xF9, 0x3A, 0x0E, 0xC2, 0x24, 0x1E, 0xEF, 0x94, 0xFB, 0x58, 0xB6, 0x6C, 0x5E, 0x97,
- 0xD6, 0x9B, 0xDF, 0xCB, 0xFF, 0xC5, 0xF8, 0xE5, 0xD8, 0x3E, 0x76, 0x5D, 0x1D, 0xA2, 0x63, 0xB2,
- 0xF0, 0x63, 0x9B, 0xB4, 0x6D, 0x15, 0xF7, 0xFE, 0xA2, 0xDD, 0x83, 0x7F, 0x85, 0x1E, 0x8B, 0x3E,
- 0x53, 0xD7, 0x51, 0xEE, 0xE1, 0x0B, 0x4F, 0xA2, 0x9D, 0x82, 0x04, 0x36, 0x68, 0x20, 0x7D, 0x9F,
- 0xDF, 0x62, 0x59, 0x71, 0xEF, 0x4A, 0x1E, 0x68, 0x72, 0xFB, 0xDF, 0x53, 0x56, 0x63, 0xA0, 0x2B,
- 0xC6, 0xD2, 0x51, 0xA3, 0x5D, 0x4D, 0xD3, 0x0A, 0xA8, 0xF7, 0x90, 0xA3, 0xFF, 0xFD, 0xA3, 0xB8,
- 0x9D, 0x1E, 0xD9, 0x1E, 0x94, 0x73, 0x5E, 0xFE, 0x5F, 0xDD, 0x9D, 0x2D, 0x81, 0x82, 0x0A, 0x19,
- 0xBA, 0xDB, 0x37, 0xE0, 0xE1, 0x88, 0x24, 0xCC, 0x1E, 0xC8, 0xE4, 0xC4, 0xDE, 0xB2, 0x34, 0x9B,
- 0x88, 0x60, 0x2E, 0xFF, 0x57, 0x01, 0x65, 0x74, 0x13, 0xCC, 0xE9, 0x01, 0x25, 0xAE, 0x49, 0x51,
- 0x4C, 0x40, 0x85, 0xA1, 0x28, 0xD4, 0x37, 0x0E, 0x83, 0x86, 0x60, 0x2E, 0x52, 0x93, 0x76, 0xE2,
- 0x7A, 0x66, 0x2D, 0x7A, 0x0C, 0xEB, 0xAB, 0x27, 0x1F, 0xC5, 0xE7, 0xD3, 0xA2, 0x1C, 0x50, 0xCA,
- 0x59, 0x4A, 0x56, 0x10, 0xC8, 0xF0, 0xA3, 0xEF, 0x1B, 0x98, 0xE3, 0xDF, 0xAA, 0xA9, 0x3E, 0x32,
- 0x27, 0xA0, 0x90, 0xC7, 0x74, 0xC6, 0xD3, 0xBD, 0x8F, 0x47, 0x59, 0x19, 0xC8, 0xFB, 0xD8, 0xED,
- 0x8A, 0xDF, 0xE4, 0x40, 0xF0, 0x28, 0xC6, 0x7E, 0x13, 0x9E, 0xC6, 0x2E, 0x57, 0x6C, 0xAC, 0x88,
- 0xA9, 0x1F, 0x52, 0xB8, 0xDB, 0xDA, 0x01, 0x05, 0x02, 0xAC, 0x44, 0x29, 0xAD, 0xAF, 0x06, 0x74,
- 0x11, 0x51, 0x62, 0xEA, 0x69, 0x8C, 0xF4, 0xEE, 0xE2, 0x1B, 0x97, 0xEF, 0x7C, 0x17, 0xEC, 0x3A,
- 0xA4, 0x1D, 0xD6, 0xB5, 0xD4, 0xEF, 0xF2, 0x97, 0xD0, 0xF3, 0x34, 0xAA, 0xBB, 0x60, 0x17, 0x03,
- 0x02, 0x55, 0x83, 0xC3, 0xCE, 0xCE, 0x5A, 0xE9, 0xD1, 0xF6, 0x44, 0x50, 0x28, 0x26, 0x43, 0x5A,
- 0xD6, 0x79, 0xB9, 0x24, 0xCC, 0x1B, 0x3A, 0x78, 0x43, 0x0D, 0x47, 0xE7, 0x38, 0x01, 0xA2, 0xD8,
- 0xE3, 0x67, 0xBF, 0x8D, 0x2A, 0x3C, 0x53, 0xA8, 0x87, 0x84, 0x2E, 0x42, 0xD9, 0x6A, 0x8C, 0x62,
- 0xF1, 0x12, 0x3A, 0xAF, 0x1D, 0x38, 0x8D, 0x51, 0x9D, 0xEA, 0xBC, 0x35, 0x90, 0xF0, 0x94, 0xA0,
- 0x42, 0xD9, 0xC0, 0x91, 0xFB, 0x58, 0x73, 0x0B, 0xEE, 0xA0, 0xF4, 0xB5, 0xFD, 0x38, 0x4C, 0xB1,
- 0xA9, 0x49, 0x28, 0x74, 0x7E, 0xC1, 0xFA, 0xCC, 0x0C, 0xAD, 0xE9, 0xE6, 0x9A, 0xA5, 0x92, 0xEE,
- 0xC4, 0xC6, 0x1C, 0xAF, 0x80, 0x11, 0x49, 0x9C, 0x2F, 0x45, 0xC2, 0xF1, 0x1E, 0x03, 0x12, 0x23,
- 0xE6, 0xB4, 0x9C, 0x65, 0xA9, 0xE6, 0x43, 0x6E, 0xF0, 0x7E, 0xFB, 0x94, 0xF8, 0x9E, 0x23, 0x59,
- 0xF8, 0x7C, 0xFC, 0x0A, 0x03, 0xF8, 0xAA, 0x2D, 0x6D, 0x92, 0xEF, 0xEC, 0xA4, 0x32, 0x28, 0xA7,
- 0xA2, 0xA5, 0xF5, 0xE0, 0x29, 0x66, 0x8C, 0x8C, 0xA5, 0xEB, 0x08, 0x95, 0x11, 0x87, 0x63, 0x88,
- 0xF8, 0x5E, 0x08, 0xFD, 0x6F, 0xEA, 0x43, 0x55, 0x9D, 0xB2, 0x35, 0xC6, 0xAF, 0xDF, 0xE2, 0xCF,
- 0xCB, 0x7A, 0xCB, 0x21, 0x9E, 0xDD, 0xDD, 0x2F, 0x9B, 0xCB, 0xD7, 0x1E, 0x11, 0x67, 0xD4, 0xA9,
- 0x58, 0x95, 0xD2, 0xAD, 0x24, 0xF4, 0x11, 0xF6, 0xE3, 0x77, 0x2F, 0xB3, 0xAD, 0xA4, 0x45, 0xB8,
- 0x54, 0x3E, 0x6F, 0x22, 0x1D, 0x1F, 0xA2, 0xC4, 0xCA, 0x81, 0xC8, 0x24, 0x03, 0xCB, 0x34, 0x38,
- 0x0E, 0xF5, 0xCF, 0x68, 0x57, 0x5C, 0x5E, 0x3C, 0xF2, 0x39, 0xB7, 0xAA, 0xE0, 0x0B, 0xF3, 0x87,
- 0x13, 0x27, 0x99, 0x5C, 0x33, 0xBB, 0xAE, 0x87, 0x9A, 0xA2, 0xD0, 0x6B, 0x63, 0xFB, 0x94, 0xF7,
- 0x33, 0x13, 0x25, 0xC4, 0x97, 0x9E, 0x1F, 0x49, 0xB8, 0x44, 0x63, 0xD7, 0x1D, 0x97, 0x48, 0xE7,
- 0x91, 0xE9, 0x62, 0xDC, 0x2B, 0xD6, 0xC1, 0xE1, 0x57, 0x68, 0xE2, 0x59, 0xE3, 0xFA, 0x0D, 0xEB,
- 0x01, 0x57, 0xCF, 0xD1, 0x67, 0xB6, 0x60, 0xAC, 0x7B, 0x1D, 0x4C, 0x15, 0xB0, 0xD0, 0x0F, 0x17,
- 0xF8, 0xF3, 0xD5, 0x85, 0xDE, 0xFF, 0x12, 0xE6, 0x21, 0x06, 0xE4, 0x71, 0x71, 0x44, 0xD0, 0x73,
- 0x3F, 0x23, 0x17, 0xDC, 0x82, 0x24, 0x52, 0xA8, 0x4D, 0x73, 0x94, 0xB4, 0x95, 0xAB, 0x0B, 0xF5,
- 0xEB, 0x70, 0x90, 0xFF, 0x5F, 0xFA, 0xB2, 0xFC, 0x47, 0xA3, 0x2D, 0x57, 0xF8, 0xB6, 0xFD, 0xF4,
- 0xF6, 0xAE, 0xC6, 0x35, 0x13, 0x4A, 0xBF, 0x3D, 0xDA, 0x6F, 0xFE, 0x30, 0x52, 0x1E, 0x7F, 0x28,
- 0x31, 0x41, 0xC0, 0xC9, 0x7F, 0x57, 0xE7, 0x1F, 0x6D, 0x57, 0xD6, 0x09, 0x14, 0xDC, 0x62, 0xCE,
- 0x3B, 0xEB, 0x66, 0x1C, 0xA4, 0xFA, 0x67, 0x9D, 0x3B, 0x4B, 0x76, 0x65, 0x94, 0xDE, 0xA0, 0x31,
- 0x82, 0x80, 0xD3, 0x73, 0x73, 0x68, 0x38, 0x1D, 0x54, 0xB1, 0xE1, 0xDC, 0x24, 0xBE, 0xA7, 0xCD,
- 0xC6, 0x45, 0x6F, 0xC1, 0x49, 0xC5, 0xB7, 0xC4, 0x80, 0xA3, 0x57, 0x89, 0x0C, 0xC6, 0x5E, 0x80,
- 0x3F, 0x78, 0xB6, 0x17, 0x4E, 0x92, 0x77, 0xB4, 0xFF, 0xF2, 0x34, 0x4F, 0xBF, 0x50, 0x8B, 0x38,
- 0x22, 0x60, 0x43, 0x55, 0xE8, 0x53, 0x0C, 0x42, 0xE0, 0xA9, 0x10, 0xB6, 0x89, 0x85, 0x9B, 0xC3,
- 0xF1, 0x84, 0xE5, 0xBE, 0x4F, 0x76, 0xBA, 0x07, 0x32, 0xF7, 0x20, 0x41, 0xE7, 0x7A, 0xF2, 0x87,
- 0x52, 0x3A, 0xF2, 0x2C, 0x88, 0x8E, 0x97, 0x05, 0xFF, 0xE4, 0xD6, 0xCF, 0x28, 0x30, 0xC0, 0xB5,
- 0x6E, 0x89, 0xFA, 0x61, 0x5C, 0xFF, 0x54, 0x30, 0x4F, 0xDD, 0xF6, 0x49, 0x49, 0xB8, 0x97, 0x22,
- 0x33, 0xC2, 0x75, 0x2A, 0x5A, 0xE4, 0x46, 0xCA, 0x16, 0xEA, 0x83, 0x7C, 0x85, 0xB1, 0x6B, 0x82,
- 0xC6, 0x93, 0xF0, 0xFD, 0xB7, 0x8A, 0x17, 0x0E, 0x8E, 0xD8, 0x71, 0xD6, 0xEF, 0x8A, 0xC9, 0x85,
- 0xDB, 0x47, 0x08, 0x7A, 0x3E, 0xF0, 0x34, 0x9B, 0x8C, 0x8B, 0xD4, 0x5D, 0x33, 0xFF, 0xDD, 0x89,
- 0x67, 0x9C, 0x90, 0x6B, 0x78, 0x54, 0xDF, 0x1C, 0xA6, 0x2E, 0x1B, 0xDE, 0x0D, 0x44, 0xB9, 0x6C,
- 0xF9, 0xF6, 0x4C, 0x57, 0xAA, 0x1E, 0xC3, 0x0E, 0x2A, 0xFC, 0x0D, 0xA6, 0x0F, 0x0E, 0xD6, 0xA7,
- 0xDC, 0x97, 0x85, 0x30, 0x3E, 0x1D, 0x6D, 0xD9, 0x28, 0x44, 0xA3, 0x58, 0xF4, 0x2E, 0xDA, 0xBB,
- 0xC9, 0xF2, 0x2F, 0xF6, 0xDB, 0xF2, 0xB9, 0xFD, 0x7D, 0x95, 0x5B, 0x26, 0x43, 0x64, 0x25, 0x66,
- 0xAD, 0x7A, 0x3A, 0xFB, 0x7B, 0x51, 0x0A, 0x33, 0xFD, 0x24, 0xB4, 0x45, 0x3D, 0x2E, 0xD4, 0xD8,
- 0xF6, 0x34, 0x5A, 0x3D, 0xFF, 0x08, 0x5F, 0x62, 0x53, 0x59, 0xFE, 0xA1, 0x9E, 0x8D, 0x04, 0xE3,
- 0xEF, 0x00, 0x49, 0x98, 0xD8, 0xAE, 0x8E, 0x7E, 0x92, 0x7F, 0x09, 0xE7, 0xA6, 0xEE, 0x85, 0xA9,
- 0x26, 0x73, 0x64, 0x74, 0x94, 0x36, 0x7D, 0x75, 0xA5, 0x69, 0x5B, 0x65, 0xC4, 0xC6, 0x20, 0xB6,
- 0xA8, 0x31, 0xFB, 0x70, 0x0D, 0x2D, 0x31, 0x9F, 0x16, 0xB5, 0xBF, 0x6A, 0x25, 0x52, 0x77, 0x79,
- 0xDA, 0xEC, 0x56, 0x57, 0x4C, 0x3C, 0xCB, 0x81, 0x08, 0x04, 0xF1, 0xA5, 0x51, 0x66, 0x6A, 0xA9,
- 0x96, 0xA4, 0x08, 0xDB, 0x10, 0x78, 0xD0, 0x15, 0x1B, 0x6A, 0x0A, 0xC2, 0xF2, 0x81, 0x61, 0x3E,
- 0x80, 0x15, 0x77, 0x24, 0x54, 0xE7, 0x86, 0xA0, 0xA7, 0x48, 0xE8, 0x15, 0xB4, 0xBD, 0x66, 0x24,
- 0x16, 0xBC, 0xDB, 0xF2, 0x98, 0x4C, 0x9E, 0xD5, 0xB4, 0x26, 0x20, 0x13, 0x5A, 0x86, 0x9E, 0xC3,
- 0xFB, 0xC7, 0xC1, 0xE6, 0xE7, 0x52, 0x12, 0xD4, 0x2C, 0x68, 0x6E, 0x69, 0x1E, 0x6D, 0xCA, 0xAB,
- 0x32, 0x16, 0x89, 0x0E, 0x43, 0x17, 0xCC, 0xE2, 0x66, 0xB0, 0x77, 0x7A, 0x31, 0x90, 0xBA, 0x31,
- 0xFB, 0x16, 0x28, 0xEC, 0x8F, 0xF7, 0x52, 0xF0, 0x64, 0xC1, 0x0C, 0x08, 0x37, 0x51, 0x8A, 0x59,
- 0x8B, 0x19, 0xE9, 0x42, 0x3A, 0x4A, 0x7C, 0x41, 0xA9, 0x19, 0xC9, 0xA8, 0x15, 0x6D, 0x02, 0x24,
- 0x41, 0x2C, 0xA5, 0xDF, 0xF3, 0xD9, 0x5E, 0xDC, 0x2A, 0x3D, 0xB1, 0x94, 0x5C, 0xB8, 0x6C, 0x8D,
- 0x25, 0xC3, 0xFE, 0xA9, 0x2F, 0x6F, 0x61, 0x14, 0x89, 0xB3, 0x8A, 0x7E, 0x72, 0x72, 0xC6, 0x76,
- 0xDE, 0x1B, 0x79, 0x31, 0x5D, 0x3D, 0xAD, 0xA9, 0x2E, 0xBF, 0x2A, 0x42, 0x32, 0x4E, 0x3B, 0x23,
- 0xE5, 0x8A, 0x0F, 0x58, 0x4A, 0x5A, 0x29, 0xDD, 0x20, 0x3E, 0x92, 0xE4, 0x87, 0x9C, 0x63, 0x75,
- 0x00, 0xDD, 0xF4, 0xF9, 0xF2, 0x35, 0x2E, 0x5D, 0xB9, 0x02, 0xEC, 0xCF, 0xBE, 0x00, 0x61, 0x58,
- 0xF7, 0x52, 0x40, 0x90, 0xEA, 0x28, 0x56, 0x6F, 0x13, 0xF6, 0xCF, 0xCA, 0xBF, 0x8A, 0xC9, 0x9D,
- 0x40, 0x30, 0xC3, 0xBE, 0xCC, 0xE4, 0xF4, 0xBE, 0xE4, 0xF7, 0xB7, 0xD9, 0x30, 0xEE, 0x34, 0x7F,
- 0x52, 0x25, 0xDA, 0x50, 0x42, 0x6E, 0x56, 0xBD, 0x83, 0x51, 0x2F, 0x0B, 0x26, 0xC9, 0x6B, 0x1A,
- 0xAC, 0x47, 0x4B, 0xD5, 0xDF, 0x7F, 0x1B, 0xF0, 0x76, 0x54, 0x74, 0x88, 0xA5, 0xB7, 0xE0, 0x13,
- 0x92, 0xAA, 0xD7, 0x25, 0xFF, 0x81, 0x7A, 0xB4, 0xFB, 0x40, 0xE1, 0xC3, 0x66, 0xA8, 0x2F, 0x2C,
- 0xA3, 0xEE, 0xC1, 0x92, 0x05, 0x92, 0xF6, 0x72, 0x9D, 0x8C, 0x6E, 0xD8, 0x03, 0xD4, 0xE9, 0xA7,
- 0x0A, 0xF2, 0x92, 0x7C, 0x61, 0x5E, 0xAC, 0x8F, 0xE3, 0xE4, 0x0F, 0xE1, 0xB1, 0xC8, 0xD0, 0x15,
- 0xDF, 0x5E, 0x80, 0x80, 0x16, 0x2D, 0x24, 0xC2, 0xB8, 0xE4, 0x4F, 0x5E, 0xEC, 0x7A, 0x9B, 0x28,
- 0xE2, 0xF8, 0x0E, 0x92, 0x55, 0x0C, 0x21, 0x9B, 0x4E, 0x0B, 0xC0, 0xC2, 0x91, 0xB3, 0xF6, 0x8B,
- 0xE0, 0xD2, 0xFF, 0xEB, 0x7E, 0x60, 0x74, 0x62, 0xD8, 0xFB, 0x59, 0x86, 0xE0, 0x0A, 0x03, 0xCB,
- 0xBB, 0x05, 0xEE, 0x11, 0x49, 0xA5, 0xEC, 0xBB, 0x9C, 0x20, 0x7E, 0x4E, 0xAF, 0x4C, 0x5D, 0xCA,
- 0x45, 0xAB, 0x14, 0xD0, 0x0C, 0xFD, 0x42, 0x6E, 0x2F, 0x12, 0xAB, 0x4B, 0x71, 0xF7, 0xD6, 0x60,
- 0x4E, 0x5A, 0x7B, 0xA7, 0x78, 0x30, 0xA1, 0x4E, 0x3F, 0x9D, 0x89, 0x1D, 0x8B, 0x86, 0x50, 0x81,
- 0xFD, 0x1E, 0xA3, 0x31, 0xA0, 0xCE, 0x06, 0xA3, 0x0D, 0x51, 0x4B, 0x84, 0x2A, 0x49, 0xDF, 0xCE,
- 0xB7, 0x2A, 0x2D, 0x08, 0x08, 0x5F, 0x06, 0x27, 0x5A, 0x4F, 0x65, 0x12, 0xF0, 0x9C, 0xCE, 0xA0,
- 0xF5, 0x8B, 0xCC, 0x31, 0x4B, 0xB8, 0xFD, 0x4A, 0x05, 0xC6, 0x10, 0x15, 0x60, 0x00, 0x89, 0x85,
- 0x3B, 0xB0, 0x7F, 0x66, 0x1D, 0x19, 0xF7, 0x8D, 0xC0, 0x59, 0x0F, 0x40, 0xE2, 0xE5, 0xCC, 0xAC,
- 0x08, 0xAA, 0xE5, 0x4A, 0x27, 0x59, 0x44, 0x2F, 0x94, 0x0C, 0xCB, 0x5F, 0xFB, 0xBF, 0x96, 0x34,
- 0x19, 0x81, 0x0B, 0xE5, 0x1B, 0xDC, 0x30, 0xB8, 0xEA, 0x91, 0xC8, 0xBE, 0xED, 0x62, 0xF2, 0x37,
- 0x51, 0x7A, 0x09, 0xB3, 0xD5, 0x16, 0xF9, 0x11, 0xDC, 0xD1, 0x0C, 0xF7, 0xC4, 0x08, 0x06, 0x84,
- 0xF8, 0x4F, 0x10, 0x76, 0xDA, 0xC0, 0xEB, 0x60, 0xF9, 0x5F, 0x27, 0x3E, 0xCB, 0x4A, 0x40, 0xD7,
- 0xFC, 0x55, 0x90, 0x36, 0x45, 0xFC, 0xF0, 0xE3, 0x76, 0x29, 0x64, 0xAC, 0xEE, 0x31, 0xAF, 0xA1,
- 0xD1, 0x53, 0x2C, 0x5C, 0xC6, 0xBF, 0x6E, 0x36, 0x98, 0x6E, 0x8A, 0x27, 0x97, 0x46, 0x89, 0x2F,
- 0xB9, 0x29, 0x14, 0xCF, 0x9F, 0x97, 0x80, 0x13, 0xA2, 0x4C, 0x80, 0xFD, 0x26, 0x46, 0x7C, 0xBE,
- 0xE4, 0x54, 0x98, 0x62, 0x6E, 0x0E, 0xA4, 0xB5, 0xC1, 0xF0, 0x02, 0xA6, 0x32, 0x65, 0x3A, 0x62,
- 0x92, 0x6E, 0x74, 0xDD, 0xE9, 0x3F, 0x16, 0xAE, 0xF4, 0x82, 0x91, 0xD9, 0xF0, 0x2F, 0x50, 0x0F,
- 0x8E, 0x4B, 0xB5, 0x41, 0xF3, 0x66, 0x92, 0xE0, 0x9B, 0xC0, 0xE5, 0x2F, 0x38, 0x72, 0x71, 0x75,
- 0x0A, 0xD3, 0xBE, 0x63, 0x84, 0x6A, 0x42, 0x0A, 0x55, 0x67, 0xDF, 0xF4, 0xC7, 0x04, 0xD1, 0x6B,
- 0xAA, 0x78, 0x22, 0x8F, 0x3A, 0x2C, 0xD1, 0xD3, 0x39, 0x51, 0x5A, 0x03, 0x6A, 0x0A, 0x33, 0x67,
- 0x9B, 0x50, 0xA8, 0x60, 0x91, 0xF0, 0x42, 0xAA, 0x7F, 0x3E, 0x5D, 0x2F, 0xC9, 0x61, 0xFF, 0xF0,
- 0x7C, 0x68, 0x9F, 0xF5, 0x32, 0x34, 0x00, 0x87, 0x2A, 0xCD, 0xD4, 0x30, 0x48, 0xED, 0x26, 0x19,
- 0x34, 0xDD, 0xFA, 0x71, 0x0C, 0x0D, 0xCB, 0x1F, 0xC8, 0xB0, 0xDC, 0xED, 0x64, 0xA0, 0xEA, 0xF7,
- 0x9C, 0x88, 0x33, 0xD3, 0xBD, 0x06, 0x9E, 0x1B, 0x61, 0x6E, 0x45, 0x65, 0xEB, 0xD6, 0xCE, 0x1A,
- 0x94, 0x10, 0x8B, 0x11, 0x05, 0xDC, 0x43, 0x5B, 0x87, 0x9D, 0xE0, 0x1A, 0xAA, 0xF9, 0x76, 0x57,
- 0x9F, 0xF2, 0x48, 0x07, 0x35, 0x92, 0x57, 0x98, 0x7B, 0xAF, 0x82, 0x02, 0x50, 0x94, 0x07, 0xF5,
- 0xFD, 0x71, 0x77, 0x61, 0x12, 0xEB, 0x09, 0xE2, 0xC6, 0xDF, 0xC2, 0x5F, 0xB5, 0x4F, 0xE8, 0x56,
- 0xDB, 0xF5, 0x1E, 0xC2, 0xD5, 0xF0, 0x00, 0xC3, 0x1D, 0x0A, 0xBA, 0xCE, 0x43, 0x4A, 0xF0, 0x21,
- 0xFE, 0xEC, 0x91, 0x27, 0x65, 0xB1, 0xC3, 0xCA, 0x92, 0xA2, 0xD1, 0x1F, 0xE7, 0x6E, 0x03, 0xB6,
- 0xDB, 0x02, 0x12, 0x70, 0x9C, 0xE3, 0x65, 0xF6, 0x97, 0x3E, 0x0C, 0x9B, 0xC8, 0x6D, 0x24, 0x72,
- 0x5C, 0xAD, 0xCD, 0xBE, 0x97, 0x53, 0x83, 0x99, 0x6A, 0xF2, 0x23, 0xA0, 0x3A, 0x38, 0xC2, 0xBE,
- 0x40, 0xF6, 0x00, 0x50, 0xF3, 0xF9, 0x7D, 0xF8, 0x28, 0xE5, 0x00, 0x52, 0xFD, 0x46, 0x4E, 0xE5,
- 0xDC, 0x68, 0x81, 0x48, 0xA3, 0x4C, 0x30, 0x60, 0x58, 0x43, 0xCC, 0x5C, 0x65, 0x3A, 0xBE, 0x8B,
- 0x31, 0x91, 0xD6, 0xE7, 0xF4, 0x01, 0x33, 0xFD, 0x96, 0xD8, 0xBA, 0x8C, 0x7A, 0x97, 0xBE, 0xBB,
- 0x0F, 0x10, 0x6E, 0x91, 0x32, 0x01, 0x8C, 0xE3, 0xBD, 0xDD, 0xA7, 0x1A, 0xE8, 0x5E, 0x6E, 0xF3,
- 0x88, 0xE4, 0x06, 0x4E, 0xB6, 0x3C, 0xA4, 0x82, 0xF5, 0x05, 0x59, 0xCB, 0xD7, 0xFB, 0x72, 0xF3,
- 0x4B, 0x26, 0x4A, 0x4C, 0x75, 0x6A, 0x88, 0x6D, 0x95, 0x7A, 0x33, 0x58, 0xC0, 0x1D, 0x02, 0xB6,
- 0x66, 0x6B, 0x12, 0xB1, 0x81, 0x6B, 0xAB, 0x5D, 0x4B, 0xF4, 0xDE, 0x76, 0x46, 0x91, 0xCD, 0xDB,
- 0x71, 0x3A, 0x10, 0x72, 0x6A, 0x54, 0x93, 0x8D, 0x70, 0x5E, 0x3A, 0x52, 0x2D, 0x68, 0xE1, 0x7B,
- 0x84, 0x3F, 0xEC, 0xD9, 0x74, 0x5D, 0x39, 0x6B, 0x58, 0x6A, 0xE6, 0xF8, 0x89, 0x4A, 0xA2, 0x27,
- 0x67, 0x0D, 0x5D, 0x92, 0x74, 0x40, 0xE9, 0x82, 0xFE, 0x23, 0x67, 0xB3, 0x94, 0xE0, 0xFB, 0xB5,
- 0xB1, 0xD2, 0xBA, 0xCD, 0xFC, 0xC1, 0x14, 0xD0, 0xBF, 0x7C, 0xF8, 0xD0, 0x9F, 0x0A, 0xD0, 0x22,
- 0xE3, 0xB3, 0x1F, 0xBD, 0xFA, 0xC5, 0xFE, 0xFE, 0x2F, 0x95, 0xB6, 0xEE, 0x22, 0x74, 0xD1, 0x8A,
- 0xA1, 0x45, 0xED, 0x8D, 0xB2, 0x02, 0xE1, 0x5C, 0x5D, 0x3A, 0xA5, 0x0E, 0xC5, 0xE4, 0x5D, 0x93,
- 0xE9, 0x05, 0xCD, 0xE8, 0xE5, 0xC7, 0xDE, 0x3D, 0xD6, 0x30, 0xDE, 0x0E, 0x8C, 0x3C, 0xA0, 0x1A,
- 0xE9, 0xE5, 0x77, 0x01, 0x5B, 0x4C, 0xAA, 0x7B, 0x21, 0x7A, 0x27, 0xED, 0x5E, 0x6B, 0x74, 0xED,
- 0x58, 0x17, 0xAC, 0x83, 0x82, 0x31, 0xCA, 0x04, 0x8A, 0xFA, 0x1E, 0x19, 0xE3, 0xDA, 0xFD, 0x5B,
- 0xC6, 0xD1, 0x83, 0x8B, 0x2B, 0x09, 0x60, 0x89, 0x1B, 0x47, 0x94, 0x25, 0xFD, 0xBC, 0x1D, 0x80,
- 0xBE, 0x3D, 0x7E, 0x5A, 0x2F, 0xAA, 0x7B, 0xBE, 0x61, 0x16, 0xA1, 0x12, 0xAB, 0xF9, 0xAB, 0x5C,
- 0xDA, 0x3D, 0x69, 0xB0, 0x97, 0x79, 0x00, 0x95, 0x8F, 0xD0, 0xC4, 0x99, 0x10, 0xE1, 0x6F, 0xC5,
- 0x7C, 0x02, 0x2E, 0xA2, 0xAB, 0x60, 0xEC, 0x88, 0xEA, 0x45, 0x81, 0x52, 0x3B, 0x2E, 0x95, 0x17,
- 0xD9, 0x47, 0x30, 0xC2, 0x9B, 0x26, 0xE0, 0xD8, 0x03, 0x14, 0x58, 0xE1, 0xDB, 0x53, 0xA8, 0xC2,
- 0x3F, 0xB1, 0xF5, 0xC5, 0x36, 0x4E, 0xF3, 0x30, 0xBA, 0xD0, 0x0B, 0x1F, 0xFC, 0x59, 0x0A, 0x0C,
- 0x0F, 0xB4, 0xA3, 0x01, 0xEF, 0xCE, 0xA6, 0xDE, 0xF0, 0x2F, 0x98, 0x82, 0xAC, 0xB2, 0xC3, 0xF5,
- 0xB1, 0xC1, 0xEA, 0xDF, 0xFD, 0xE0, 0x39, 0x3E, 0x23, 0x8D, 0xFE, 0x2B, 0x86, 0x2F, 0x5D, 0xAA,
- 0x76, 0x47, 0x79, 0x5A, 0x34, 0x95, 0xA2, 0x4D, 0x64, 0x5A, 0x6C, 0xC5, 0xF6, 0x51, 0x53, 0x5B,
- 0xF7, 0x60, 0x65, 0x9D, 0x31, 0x72, 0xB1, 0x62, 0xD2, 0x45, 0xE4, 0xAD, 0xE4, 0xB2, 0x6C, 0xDF,
- 0x94, 0xE8, 0xDA, 0x21, 0x44, 0x02, 0xDE, 0xBD, 0x03, 0x1C, 0x9F, 0x2B, 0x7E, 0x63, 0x75, 0x44,
- 0x97, 0x08, 0x0F, 0x58, 0x03, 0x92, 0xA5, 0x4F, 0x2B, 0xC7, 0x8C, 0xCD, 0xF6, 0x28, 0x8D, 0x0C,
- 0xA6, 0x5C, 0x65, 0xBE, 0xD2, 0x0F, 0x77, 0x5F, 0x39, 0x56, 0x78, 0x16, 0x29, 0x4D, 0x9B, 0x14,
- 0x34, 0xEF, 0xED, 0xF8, 0xDB, 0x13, 0x91, 0x39, 0xDF, 0x09, 0x8F, 0x3D, 0x1B, 0x8A, 0x43, 0xEB,
- 0xEB, 0x10, 0xBB, 0x78, 0x05, 0x3C, 0x45, 0x4B, 0x95, 0xF0, 0x95, 0xA9, 0x82, 0x07, 0x8A, 0x76,
- 0x95, 0xE1, 0x0E, 0xE7, 0x35, 0xF5, 0x6A, 0xE5, 0x4D, 0x88, 0x20, 0x3D, 0x6E, 0x18, 0x73, 0x2A,
- 0xF1, 0x42, 0xA6, 0x66, 0xEE, 0xC1, 0xE7, 0x65, 0xCC, 0x11, 0x2E, 0xB9, 0x79, 0x9B, 0x22, 0x1B,
- 0x7A, 0x67, 0xEC, 0xF5, 0x9D, 0xD8, 0x52, 0x6C, 0xDD, 0x41, 0x2B, 0x8B, 0xE6, 0x1A, 0x69, 0xDA,
- 0x97, 0xB1, 0x10, 0x4E, 0xD1, 0x4B, 0x5C, 0xCE, 0x18, 0xD9, 0xFE, 0x87, 0x3E, 0x6C, 0x09, 0x87,
- 0x90, 0x57, 0x08, 0xC1, 0x15, 0x21, 0xEA, 0x09, 0x19, 0x13, 0x62, 0xD9, 0x65, 0xE3, 0x92, 0x17,
- 0xD2, 0x33, 0x4C, 0xBD, 0x52, 0xCB, 0x9D, 0x3A, 0xF2, 0x79, 0x4F, 0x0B, 0x54, 0x0E, 0x59, 0xC0,
- 0xF7, 0x50, 0x16, 0xF5, 0x33, 0xDC, 0xB7, 0xD8, 0x8F, 0x4A, 0xC8, 0xB1, 0x92, 0x46, 0xFE, 0xE2,
- 0xB7, 0x50, 0xA0, 0x60, 0x15, 0x65, 0x6C, 0x54, 0x46, 0x65, 0xFE, 0x3D, 0xB7, 0x99, 0x93, 0xF3,
- 0x42, 0x8A, 0xCA, 0x39, 0x03, 0xA6, 0x9E, 0xFF, 0x7C, 0x8C, 0x94, 0xA1, 0x21, 0xA3, 0xE2, 0xC6,
- 0x15, 0x1E, 0xED, 0x23, 0x61, 0x0B, 0x43, 0x70, 0x1C, 0xAD, 0xC7, 0x9D, 0xE2, 0xB4, 0x3A, 0xB1,
- 0x96, 0x23, 0xC0, 0xFB, 0x88, 0x60, 0x89, 0xF7, 0x3A, 0x59, 0xB6, 0x76, 0x52, 0xE8, 0xB5, 0xA6,
- 0xEF, 0x0F, 0x16, 0x0F, 0x02, 0x1E, 0x6E, 0xDB, 0x9F, 0x30, 0xAC, 0x4F, 0x8C, 0xAA, 0x1F, 0x93,
- 0xBB, 0xC4, 0x1E, 0x54, 0x11, 0xEF, 0x4A, 0xFB, 0x3E, 0x6C, 0x98, 0x4A, 0xE7, 0x1D, 0xD9, 0x03,
- 0x59, 0x81, 0xA1, 0x07, 0xBA, 0x17, 0x80, 0x38, 0x08, 0x93, 0xE0, 0xBF, 0x61, 0xAF, 0x1F, 0x0D,
- 0xB1, 0x63, 0x8C, 0xD4, 0x24, 0xA3, 0xDC, 0x3D, 0x18, 0x1F, 0x02, 0x4C, 0xE8, 0x03, 0x1E, 0xFF,
- 0x6F, 0xC7, 0x1F, 0x1A, 0x9A, 0xB8, 0x48, 0x35, 0xDB, 0x7A, 0x62, 0x02, 0x1E, 0x4D, 0x64, 0x33,
- 0x14, 0xC7, 0xF5, 0x32, 0x7B, 0x3F, 0x50, 0x2B, 0x7F, 0xC4, 0xBF, 0x5E, 0xCD, 0x62, 0x23, 0x5F,
- 0xC6, 0x7F, 0x6F, 0x64, 0x1B, 0xA7, 0x63, 0x67, 0xCD, 0x69, 0x02, 0xA0, 0xBB, 0xAB, 0x27, 0x9C,
- 0xDB, 0xAC, 0x76, 0x15, 0xF7, 0x08, 0x04, 0x45, 0x79, 0x2E, 0x4B, 0xF5, 0x94, 0xDB, 0xB0, 0xD3,
- 0x51, 0x02, 0x7F, 0x25, 0x99, 0xDF, 0xE4, 0x14, 0x97, 0xA6, 0x22, 0x5D, 0x3E, 0xE6, 0xF8, 0x98,
- 0x59, 0x8A, 0xB4, 0x0A, 0x70, 0x19, 0x09, 0xF6, 0x42, 0x8B, 0x61, 0x9F, 0x22, 0x8D, 0x03, 0x77,
- 0xC1, 0x81, 0x05, 0xA2, 0xA8, 0x16, 0x00, 0xEF, 0xE4, 0x15, 0x70, 0x88, 0xCB, 0x02, 0xF8, 0xE7,
- 0xD2, 0xD6, 0x6F, 0x5D, 0x57, 0xB7, 0x5C, 0xAD, 0x6C, 0x6A, 0x79, 0x22, 0x60, 0x30, 0xBD, 0x8B,
- 0x9C, 0xE4, 0x78, 0x97, 0x6E, 0x5E, 0x49, 0x25, 0xB1, 0x9A, 0x74, 0x6B, 0x74, 0xB9, 0xDA, 0xBE,
- 0x1F, 0x81, 0xD2, 0xE3, 0x46, 0x2A, 0x54, 0xD8, 0x5B, 0x8F, 0x90, 0x28, 0xC0, 0xAD, 0xBE, 0xEA,
- 0x14, 0x6E, 0xD7, 0xFE, 0x89, 0xB8, 0x2E, 0xE6, 0xAA, 0x44, 0x57, 0xBA, 0xF3, 0xEC, 0xBE, 0x05,
- 0x83, 0x09, 0x5D, 0x11, 0x8F, 0x8E, 0x87, 0x21, 0x57, 0x8C, 0x9C, 0x1F, 0x24, 0x3F, 0x47, 0x9D,
- 0x41, 0x54, 0xD9, 0x83, 0xAF, 0xC2, 0x6F, 0xC5, 0x86, 0x40, 0xB9, 0x86, 0x70, 0x14, 0xB0, 0x37,
- 0xC4, 0x0B, 0xAC, 0x85, 0x2A, 0x39, 0xCF, 0x5E, 0xD4, 0xC2, 0x21, 0x7B, 0x49, 0x1E, 0x3D, 0x65,
- 0xCB, 0xA9, 0xF8, 0xCE, 0xF5, 0xB3, 0x0D, 0x3D, 0x13, 0xB3, 0x9A, 0xDB, 0x35, 0x21, 0x7A, 0xA7,
- 0xE3, 0xFF, 0xD4, 0x42, 0xA6, 0x04, 0x86, 0xAC, 0x44, 0x2A, 0xAF, 0xA0, 0x8A, 0x01, 0x16, 0x5E,
- 0xE0, 0x72, 0xCD, 0xA3, 0xE8, 0xC7, 0xF2, 0x73, 0x71, 0x7C, 0x61, 0xF5, 0xA7, 0xFC, 0xC7, 0x6B,
- 0x68, 0xC8, 0x51, 0xE2, 0xF8, 0x20, 0x93, 0xB0, 0x5E, 0xD3, 0x5B, 0x11, 0x4C, 0x3E, 0xDD, 0x7C,
- 0xA7, 0x5F, 0x2F, 0xAD, 0x99, 0x5C, 0xF5, 0x57, 0xF5, 0x38, 0x67, 0x8D, 0xD4, 0x2B, 0x73, 0x64,
- 0xAC, 0x58, 0x76, 0xFA, 0x0F, 0x43, 0x97, 0xC1, 0x68, 0x2F, 0xE6, 0x61, 0x3D, 0x89, 0x70, 0xB4,
- 0x85, 0xB1, 0x65, 0xA1, 0x0E, 0xC8, 0xAB, 0x22, 0x2D, 0xD1, 0xB6, 0xBC, 0x77, 0x49, 0xD6, 0x22,
- 0xE0, 0x0C, 0xA2, 0x6B, 0xD8, 0x45, 0xA6, 0x80, 0xE2, 0x1A, 0x7C, 0x6D, 0x4D, 0x7C, 0x6B, 0xF8,
- 0x40, 0x62, 0xDD, 0xD6, 0x32, 0xB4, 0x52, 0x9B, 0x3C, 0x4E, 0xD0, 0x29, 0x87, 0x3D, 0x41, 0xE4,
- 0x35, 0x20, 0xF0, 0x4F, 0x61, 0xD4, 0x18, 0x64, 0x39, 0x87, 0x90, 0x64, 0xF5, 0xCE, 0xA9, 0xAA,
- 0x18, 0xBE, 0x66, 0x53, 0xA9, 0x23, 0xF9, 0xF4, 0x53, 0x3F, 0xEA, 0x25, 0xD9, 0xD4, 0x79, 0x2C,
- 0xD4, 0x64, 0x0B, 0xAE, 0xDF, 0xDE, 0xCE, 0xCD, 0xC5, 0x91, 0xE2, 0xB9, 0x94, 0x17, 0xF3, 0xC7,
- 0x6F, 0x01, 0xF8, 0xCD, 0xE7, 0x0C, 0x30, 0xDF, 0x58, 0x34, 0x3D, 0x20, 0x61, 0xD8, 0xF9, 0x0A,
- 0x2F, 0x3D, 0xA7, 0xE9, 0x5C, 0x7A, 0x52, 0xDB, 0xEE, 0x45, 0x47, 0x7A, 0x2E, 0x1D, 0xE3, 0x2D,
- 0x6C, 0xA4, 0xBD, 0xED, 0x65, 0x5C, 0x0E, 0x09, 0x67, 0x0B, 0x77, 0x27, 0x51, 0x9B, 0x38, 0x72,
- 0xD3, 0x9A, 0xEA, 0x21, 0x71, 0x75, 0x2B, 0x0F, 0xC7, 0xD0, 0x35, 0x08, 0x02, 0x19, 0xF5, 0x97,
- 0xEB, 0xF4, 0xB9, 0x39, 0x30, 0x10, 0x52, 0xA3, 0x50, 0x09, 0x89, 0xF8, 0xF1, 0xA8, 0x31, 0xB2,
- 0xEF, 0x6B, 0x85, 0x35, 0x45, 0xF7, 0x89, 0x58, 0x8D, 0x6A, 0xD3, 0x5C, 0x57, 0xA3, 0x43, 0x18,
- 0xB5, 0x09, 0x08, 0xD8, 0x24, 0x8C, 0xD3, 0xFA, 0xAC, 0x6D, 0xEE, 0x4F, 0xB4, 0x77, 0xF3, 0x46,
- 0xE9, 0x1E, 0xB3, 0x40, 0x8E, 0xC7, 0x85, 0xEA, 0xEF, 0xD9, 0xF4, 0xB5, 0xFF, 0x90, 0x03, 0xA0,
- 0x61, 0x65, 0x83, 0x2C, 0x6D, 0x66, 0x98, 0x67, 0x1E, 0x41, 0x41, 0x66, 0xBC, 0x28, 0x8A, 0x76,
- 0x8A, 0x0E, 0xF6, 0x0B, 0xD9, 0x7C, 0x51, 0x90, 0xD2, 0x28, 0x77, 0xA0, 0x9B, 0xE6, 0xBB, 0x3C,
- 0xA1, 0x53, 0xDB, 0xE7, 0x75, 0xCD, 0x3D, 0x0E, 0x1C, 0x11, 0x3E, 0xD8, 0x7A, 0x09, 0xE1, 0x12,
- 0x5E, 0x1D, 0x9A, 0x29, 0x06, 0x79, 0xFD, 0x8D, 0x49, 0xB9, 0xD3, 0x0E, 0xB7, 0x7D, 0x69, 0x83,
- 0x81, 0x56, 0x82, 0x58, 0x2F, 0xEA, 0xCF, 0x66, 0xD8, 0x34, 0x16, 0x17, 0x27, 0x18, 0xEF, 0x65,
- 0xBE, 0x01, 0x65, 0xBF, 0x6F, 0xAE, 0x21, 0xA4, 0xA3, 0xA2, 0x95, 0xBC, 0x0B, 0x83, 0x30, 0xEA,
- 0x46, 0xC0, 0xAB, 0xA8, 0xA4, 0xCB, 0x22, 0x53, 0xAD, 0xC7, 0x8C, 0x03, 0x6B, 0x35, 0xB9, 0xB0,
- 0x69, 0xA0, 0xB9, 0xE0, 0x68, 0xB6, 0x4E, 0xE7, 0x91, 0x67, 0x05, 0x9C, 0x81, 0x47, 0xD3, 0x36,
- 0x06, 0xEE, 0xE3, 0x06, 0x04, 0xDB, 0x29, 0xFA, 0x62, 0x1F, 0xC7, 0xD6, 0xF4, 0x63, 0x75, 0x46,
- 0xD9, 0x1D, 0x17, 0x7C, 0x94, 0x81, 0x05, 0xA8, 0x92, 0x99, 0xD4, 0x5F, 0xB8, 0xF7, 0x21, 0x6D,
- 0x3D, 0x2B, 0x47, 0x04, 0xF9, 0x17, 0xC9, 0xDC, 0x2D, 0xC0, 0xB8, 0x1B, 0x0C, 0xF9, 0xBA, 0x35,
- 0x63, 0xD8, 0xF5, 0xAF, 0x52, 0x67, 0x02, 0x47, 0x1F, 0x0A, 0x93, 0x19, 0x8A, 0x40, 0x5B, 0x58,
- 0xA8, 0x9B, 0x4B, 0x93, 0x44, 0x30, 0xB1, 0x14, 0x1B, 0x66, 0xD4, 0x58, 0x4C, 0xD0, 0x0A, 0x2C,
- 0xD2, 0x91, 0xBF, 0x69, 0xEC, 0xFB, 0x10, 0xBF, 0x84, 0x13, 0x24, 0x25, 0xD7, 0x8E, 0x78, 0x8A,
- 0xF5, 0xD2, 0x24, 0x8B, 0x4C, 0xD6, 0x26, 0x92, 0x56, 0x6B, 0xF5, 0x8D, 0x67, 0x51, 0x1B, 0xDE,
- 0xFD, 0xE9, 0x8F, 0x27, 0x6C, 0x07, 0x41, 0xD5, 0x0A, 0x85, 0xA8, 0xA7, 0x55, 0x82, 0x38, 0x8C,
- 0x38, 0x60, 0x18, 0xDA, 0xFC, 0xD5, 0xC4, 0x9A, 0x20, 0x14, 0xBF, 0x91, 0x4E, 0x97, 0xE9, 0xF2,
- 0x54, 0xB7, 0x1E, 0x5B, 0x43, 0x59, 0x5E, 0xA3, 0x29, 0xDF, 0xE5, 0x55, 0x21, 0x7B, 0x2B, 0x16,
- 0x6C, 0x35, 0x12, 0xCB, 0xB0, 0x4B, 0xCB, 0xF3, 0x8C, 0x89, 0xDD, 0xCA, 0xCB, 0x66, 0xF2, 0x2B,
- 0xC2, 0x4E, 0x24, 0xBA, 0xD1, 0x94, 0xA6, 0xA3, 0x01, 0x9B, 0xB3, 0xFA, 0xCD, 0x26, 0x2B, 0x51,
- 0x78, 0x54, 0x2F, 0x90, 0xF9, 0xAA, 0x45, 0x0A, 0xCA, 0x16, 0x41, 0xD4, 0xA2, 0xFE, 0xA5, 0x9D,
- 0x0B, 0x8E, 0x29, 0xB7, 0xE4, 0xE8, 0xDE, 0x29, 0x76, 0xC7, 0xA6, 0x74, 0x48, 0x9D, 0x75, 0x69,
- 0xBA, 0xB9, 0xFD, 0x3C, 0x44, 0x28, 0x7D, 0x8E, 0xDC, 0xE0, 0xCB, 0xC9, 0x25, 0x26, 0x55, 0x80,
- 0x84, 0xA8, 0xB8, 0x80, 0x9B, 0x57, 0x0E, 0x61, 0xFB, 0x06, 0xFF, 0x87, 0xA1, 0x8D, 0xF0, 0x33,
- 0xDD, 0xED, 0x06, 0x96, 0x90, 0xED, 0x42, 0x2D, 0xEE, 0x85, 0x06, 0x1A, 0x9F, 0xAC, 0x74, 0x79,
- 0xA2, 0x95, 0xE9, 0x5E, 0x14, 0x7B, 0xC3, 0xCF, 0xEE, 0x48, 0xEC, 0xD6, 0x9D, 0x3E, 0x66, 0x9E,
- 0x30, 0xAB, 0x8C, 0xCF, 0x11, 0xE2, 0x22, 0x69, 0x5B, 0x45, 0xA8, 0xC8, 0x87, 0x90, 0xE4, 0x9E,
- 0xB7, 0x9A, 0x41, 0x6E, 0x1D, 0x83, 0xDE, 0x9C, 0xFB, 0xC6, 0xCC, 0x0C, 0x79, 0x8F, 0xFF, 0xC0,
- 0xF4, 0xE9, 0x38, 0xA5, 0xC6, 0x96, 0x5A, 0xE6, 0xA8, 0xAA, 0xA8, 0x8B, 0xCF, 0x0C, 0x1B, 0x08,
- 0xDC, 0x07, 0xB0, 0xF5, 0xEA, 0xAC, 0xB5, 0x90, 0x97, 0x95, 0xCA, 0x41, 0x49, 0x90, 0xF2, 0x84,
- 0x32, 0xF3, 0x60, 0x47, 0xF1, 0xEA, 0x1A, 0xA3, 0x79, 0x14, 0x00, 0x2E, 0xEB, 0xEC, 0xBC, 0x80,
- 0x05, 0x8B, 0xDE, 0xD7, 0xE6, 0x17, 0xF9, 0xF1, 0xD4, 0xD1, 0xFD, 0xA7, 0x14, 0xDA, 0x07, 0xB9,
- 0x2A, 0x6B, 0x7D, 0x4D, 0xD2, 0x5F, 0x14, 0xD5, 0x23, 0x5B, 0x9B, 0x3C, 0xD2, 0xCE, 0x9F, 0xE8,
- 0x31, 0x2E, 0x6F, 0xF5, 0x72, 0x11, 0xD1, 0x81, 0x19, 0xDC, 0x6E, 0xA2, 0xD2, 0xDA, 0xD2, 0xD5,
- 0xE3, 0x3D, 0x3E, 0xB4, 0x41, 0x16, 0xE7, 0x52, 0x03, 0xE2, 0x81, 0xBB, 0x49, 0x85, 0xAF, 0xEC,
- 0x6D, 0x31, 0x27, 0xC4, 0x46, 0x71, 0xAA, 0xCD, 0x5C, 0x21, 0xD1, 0x61, 0x8B, 0x02, 0xFA, 0xF3,
- 0x4E, 0x56, 0x54, 0xB9, 0x4F, 0x0F, 0x80, 0x7A, 0xA7, 0x72, 0x6F, 0x40, 0x57, 0xF8, 0xBC, 0x15,
- 0x29, 0x33, 0x9E, 0x4A, 0x0C, 0xDB, 0x7B, 0x37, 0x55, 0x90, 0xD7, 0x73, 0xAD, 0x19, 0x77, 0xD2,
- 0xEB, 0x95, 0x51, 0x57, 0xF4, 0xBC, 0x37, 0xD2, 0x64, 0xAE, 0xF7, 0xC6, 0x02, 0xD8, 0x31, 0x7F,
- 0xC4, 0xB0, 0x50, 0x64, 0x8C, 0x95, 0xBE, 0xCF, 0x53, 0x68, 0x7C, 0xDA, 0x3D, 0x85, 0xBB, 0xEE,
- 0x2E, 0xCD, 0xF1, 0xF5, 0x09, 0x3C, 0x2D, 0x2E, 0x2E, 0xBE, 0x68, 0x35, 0x70, 0x99, 0x00, 0x0B,
- 0x71, 0x86, 0x52, 0x9D, 0x09, 0x48, 0x9B, 0x5D, 0xFD, 0xAA, 0xB4, 0xC9, 0x75, 0xB3, 0x45, 0xC8,
- 0x41, 0x14, 0x6F, 0x71, 0x45, 0x0D, 0x16, 0x1F, 0x2F, 0xB2, 0x25, 0x52, 0x46, 0x3B, 0x72, 0x00,
- 0x04, 0x3E, 0x09, 0x6A, 0x86, 0x5C, 0x59, 0x0C, 0x36, 0x4B, 0x98, 0xDD, 0x0D, 0x98, 0xB0, 0xF1,
- 0x48, 0xE3, 0xC7, 0x2B, 0xC8, 0xBB, 0x1B, 0x23, 0xCC, 0xDD, 0x24, 0x5B, 0xAE, 0xF9, 0xAC, 0xE5,
- 0xD1, 0xB1, 0x7D, 0x13, 0xA3, 0xC3, 0xBC, 0x86, 0xB2, 0xBC, 0xC5, 0x50, 0x94, 0x6C, 0xED, 0xDB,
- 0x13, 0xB8, 0x11, 0x1B, 0x63, 0x19, 0x85, 0xE3, 0xF3, 0x24, 0x59, 0xDD, 0xB3, 0x9D, 0x37, 0xF9,
- 0x5A, 0x89, 0xD3, 0x34, 0xEE, 0x37, 0xCA, 0x00, 0x55, 0xC6, 0x59, 0x33, 0x87, 0x32, 0xC9, 0xB2,
- 0x73, 0x7E, 0x8B, 0x2B, 0x63, 0x5F, 0x9E, 0x49, 0x1A, 0x0C, 0xCE, 0x24, 0x4B, 0xE7, 0xC3, 0x7D,
- 0xF8, 0x90, 0xD7, 0xA1, 0xBE, 0x07, 0x8B, 0xB7, 0x7D, 0x91, 0xBD, 0xD3, 0x50, 0xB9, 0x66, 0xEA,
- 0x5A, 0x11, 0x24, 0x42, 0xBD, 0x72, 0x02, 0x98, 0x7F, 0xCF, 0x13, 0x56, 0xE0, 0x00, 0x24, 0x59,
- 0x84, 0xAE, 0xA1, 0x89, 0x83, 0xEB, 0xA9, 0x73, 0x94, 0x4C, 0xD2, 0xEE, 0xB6, 0x94, 0xC2, 0xDA,
- 0xBB, 0x3F, 0x66, 0x5E, 0x5C, 0x9A, 0x05, 0xF6, 0x94, 0x44, 0x86, 0x45, 0xEE, 0xBA, 0xF0, 0x29,
- 0x97, 0x16, 0x2E, 0xB0, 0xB4, 0x67, 0x1E, 0xF9, 0x37, 0x4D, 0x47, 0x15, 0x43, 0xBE, 0xBB, 0xFC,
- 0xA1, 0x9B, 0xB9, 0xA6, 0xA1, 0x49, 0x34, 0xF5, 0x99, 0xAB, 0x11, 0x5F, 0x4F, 0xE2, 0x3C, 0xAA,
- 0xAF, 0xED, 0x64, 0xC6, 0x06, 0x25, 0xB7, 0xCA, 0xEB, 0xF5, 0xE9, 0xBD, 0xF2, 0x50, 0x0F, 0xC2,
- 0x90, 0x2C, 0xE3, 0xDD, 0xE5, 0xD9, 0x07, 0x14, 0xB4, 0x6D, 0xE8, 0x22, 0x1A, 0xB8, 0xAD, 0xFB,
- 0xC0, 0x86, 0x5E, 0x54, 0xC2, 0x78, 0x9B, 0xC2, 0x84, 0x1C, 0x82, 0x07, 0x16, 0x39, 0xB4, 0x11,
- 0x20, 0x6F, 0xA2, 0x70, 0x8A, 0xB5, 0xAF, 0xD3, 0x37, 0x10, 0xCC, 0x81, 0xEF, 0x8C, 0x1E, 0x8E,
- 0x5E, 0xAC, 0x39, 0xB7, 0x46, 0x86, 0x88, 0x34, 0x0E, 0x39, 0x58, 0xE0, 0xCB, 0x3B, 0x03, 0x93,
- 0x42, 0xCB, 0x29, 0x51, 0x9D, 0xDA, 0xE2, 0xC3, 0x42, 0xEA, 0x4C, 0x03, 0x05, 0xEB, 0x63, 0x0D,
- 0xEC, 0x4B, 0x9C, 0x7F, 0x31, 0xE3, 0x59, 0x4A, 0x6F, 0xBD, 0xD8, 0x9A, 0x30, 0x2E, 0x1F, 0x0B,
- 0x13, 0x8F, 0xF5, 0xD9, 0xD2, 0x22, 0xF3, 0xA8, 0x6C, 0x71, 0xC1, 0x18, 0x24, 0x34, 0x86, 0x40,
- 0xF8, 0x17, 0xEA, 0xBA, 0x32, 0x9E, 0x64, 0xAD, 0xFC, 0x32, 0x50, 0x25, 0x5E, 0x2E, 0x5D, 0xDD,
- 0x8D, 0x8B, 0x1C, 0xAB, 0xCB, 0x33, 0x67, 0x37, 0x17, 0x56, 0xFC, 0x10, 0x58, 0x67, 0x9E, 0x53,
- 0xF1, 0x48, 0x6B, 0xBC, 0x07, 0x68, 0x9E, 0x0E, 0xF1, 0xE1, 0xD9, 0x80, 0x49, 0x62, 0x39, 0xB0,
- 0x3A, 0xF5, 0x79, 0xF1, 0x36, 0xE6, 0x71, 0xC2, 0x24, 0x98, 0xE2, 0x6A, 0x60, 0x53, 0xEC, 0x48,
- 0x00, 0xA6, 0xEB, 0x23, 0xB3, 0xF9, 0x2D, 0xAD, 0xF2, 0x51, 0xCC, 0x90, 0x1D, 0x9B, 0x71, 0x5F,
- 0x22, 0xE1, 0x80, 0x4D, 0xB9, 0x51, 0x3B, 0xB0, 0xEB, 0xDF, 0x0A, 0x88, 0xC1, 0x06, 0x7D, 0xB5,
- 0x36, 0x27, 0x40, 0x04, 0x72, 0xBA, 0xE6, 0xE5, 0x20, 0x9B, 0xB1, 0xDC, 0x11, 0x04, 0x98, 0x75,
- 0x51, 0x5E, 0x66, 0x7E, 0xE8, 0xAB, 0xC1, 0x6E, 0x9E, 0x61, 0xBA, 0x88, 0x1C, 0xB0, 0x4A, 0x5D,
- 0xAC, 0x37, 0x63, 0x65, 0x2F, 0x2F, 0x11, 0x5D, 0x32, 0x3D, 0x71, 0x7E, 0x61, 0x98, 0xC0, 0x0C,
- 0xCB, 0x34, 0x81, 0x48, 0x81, 0x66, 0xE0, 0xAD, 0xC9, 0x43, 0x00, 0x8B, 0xCF, 0x8D, 0xEF, 0xA4,
- 0xFC, 0xD4, 0x67, 0xE9, 0xEF, 0xDB, 0x45, 0x2A, 0x59, 0x2F, 0xEE, 0xC2, 0xDB, 0x5A, 0x07, 0xD0,
- 0x53, 0x41, 0x66, 0x81, 0xC3, 0x30, 0xB4, 0xE3, 0x7F, 0x8B, 0xBD, 0xB4, 0x84, 0xC4, 0xEE, 0xEE,
- 0xFE, 0x2D, 0x71, 0x3A, 0x39, 0x5A, 0xED, 0xE5, 0xF3, 0xF0, 0xE5, 0xB1, 0x0C, 0x53, 0x2A, 0x37,
- 0xCF, 0x04, 0xF9, 0xFE, 0x70, 0xBF, 0x5A, 0x68, 0x57, 0x0B, 0x54, 0x98, 0x48, 0x8D, 0xDB, 0x80,
- 0xC9, 0x4C, 0xB7, 0x14, 0x45, 0x4C, 0xA3, 0xA2, 0x0C, 0x11, 0xDB, 0x02, 0x4D, 0xE9, 0xA6, 0xA6,
- 0x03, 0x63, 0x41, 0xD9, 0xCB, 0xE5, 0x8A, 0xA5, 0xEF, 0x09, 0xCA, 0xF9, 0x92, 0x4D, 0x75, 0xF8,
- 0xB7, 0x10, 0x78, 0x5D, 0x59, 0x3D, 0x75, 0x6A, 0xE6, 0xFD, 0x8E, 0xC2, 0x5F, 0x7A, 0xCA, 0x03,
- 0xAB, 0x95, 0x61, 0x79, 0x9F, 0x4F, 0x8F, 0xEF, 0x45, 0x07, 0xBB, 0x7E, 0x12, 0x43, 0x1A, 0xA7,
- 0x87, 0x33, 0x61, 0x71, 0x3A, 0x74, 0x6D, 0x98, 0x59, 0xF5, 0x47, 0xA6, 0x07, 0x03, 0x41, 0x45,
- 0x09, 0xB1, 0x0A, 0x45, 0xBA, 0x82, 0xAA, 0x6E, 0xCB, 0xD8, 0xDA, 0x4D, 0x83, 0xE2, 0x6B, 0x13,
- 0x96, 0x33, 0xA3, 0xC0, 0xF9, 0x10, 0x8E, 0x01, 0x1E, 0xAD, 0xD7, 0xB9, 0x6F, 0xB4, 0x69, 0x79,
- 0x3D, 0x36, 0x45, 0xEA, 0x48, 0x19, 0x46, 0xDC, 0x1E, 0x42, 0x65, 0x28, 0x70, 0x08, 0x06, 0xA8,
- 0x82, 0xA5, 0x7B, 0xDE, 0xEC, 0x1E, 0x97, 0x0D, 0xE0, 0xCC, 0x6D, 0x1B, 0x57, 0xE5, 0xCA, 0x60,
- 0xC2, 0xF8, 0xBD, 0x39, 0xAA, 0xA9, 0x91, 0x5E, 0x8E, 0x12, 0x84, 0x2E, 0x0C, 0xE8, 0xD3, 0x5E,
- 0xE6, 0x15, 0xB8, 0x53, 0x4A, 0x89, 0xB3, 0x0E, 0xCF, 0x4D, 0x90, 0x1B, 0x9A, 0x9E, 0x32, 0x6C,
- 0xAF, 0xE3, 0x35, 0xE1, 0xC1, 0xFB, 0x66, 0x1C, 0x5F, 0xD6, 0xA2, 0x83, 0x33, 0xEE, 0xE5, 0x14,
- 0x0D, 0x92, 0xF6, 0xB4, 0x7D, 0x8C, 0x67, 0xA2, 0xC8, 0xFB, 0x26, 0x09, 0x30, 0x10, 0x37, 0x4F,
- 0x73, 0x97, 0xE7, 0x43, 0x4B, 0xE2, 0xEB, 0x8F, 0x90, 0x85, 0x50, 0xFF, 0x65, 0xFF, 0x1E, 0x45,
- 0x5B, 0xF8, 0xFD, 0x87, 0xEE, 0xE2, 0xA4, 0x75, 0x1A, 0xF6, 0x18, 0x44, 0x37, 0xE4, 0xF5, 0xEB,
- 0x77, 0x9E, 0xED, 0x64, 0xC5, 0x82, 0xF6, 0x19, 0x06, 0x31, 0xC2, 0xCD, 0x18, 0x52, 0x01, 0xB7,
- 0x67, 0x6E, 0x1D, 0xCD, 0x38, 0xDF, 0xCE, 0x56, 0xAC, 0x7F, 0x66, 0xED, 0x2D, 0xD1, 0x20, 0xE1,
- 0xB8, 0x6D, 0xA8, 0x8B, 0x7D, 0x6C, 0x14, 0x10, 0xFE, 0x3A, 0xCA, 0xBA, 0x5C, 0xD6, 0x02, 0xA9,
- 0xCC, 0x2E, 0xC4, 0xB4, 0xCE, 0x31, 0x91, 0x81, 0x50, 0xCA, 0x6F, 0x36, 0xF9, 0xF4, 0xC4, 0x5F,
- 0xE9, 0x98, 0xA6, 0x67, 0x09, 0x07, 0x0C, 0x7A, 0x04, 0x3F, 0xAE, 0x20, 0xF9, 0x41, 0x25, 0xA6,
- 0x0D, 0xD7, 0x78, 0x08, 0xA0, 0x51, 0xE3, 0x72, 0xD6, 0x6F, 0xB2, 0x4C, 0x33, 0x8A, 0x4D, 0xC7,
- 0x17, 0xA3, 0x33, 0xC3, 0x44, 0xE3, 0x92, 0xDA, 0x33, 0xA5, 0x4B, 0x88, 0xF3, 0x7C, 0x85, 0x2E,
- 0xC2, 0x7D, 0x19, 0x1E, 0x9C, 0x40, 0xA9, 0x09, 0x2B, 0xF8, 0xD5, 0x91, 0xFD, 0x8A, 0xC4, 0xBD,
- 0x25, 0x23, 0x43, 0xB7, 0x37, 0x9A, 0x89, 0xA9, 0x7C, 0xEB, 0x2E, 0x47, 0x38, 0x00, 0xEC, 0x6A,
- 0x94, 0xB7, 0xA9, 0x60, 0xEF, 0xCD, 0x4A, 0x2A, 0xA5, 0x40, 0xA5, 0x40, 0x2B, 0x1C, 0xFA, 0x48,
- 0xA1, 0x71, 0xC6, 0xA2, 0x79, 0x76, 0x5D, 0x74, 0xE6, 0x09, 0x05, 0x1C, 0x97, 0xED, 0x15, 0x37,
- 0x61, 0xE5, 0x9F, 0xDA, 0xAA, 0x79, 0x4A, 0x7F, 0x85, 0x71, 0x29, 0x62, 0x1B, 0x56, 0x89, 0x23,
- 0xC1, 0xC4, 0xBB, 0x32, 0x5A, 0x3B, 0xAE, 0x5F, 0xC2, 0x3A, 0x90, 0xAD, 0xE6, 0x72, 0x36, 0xB5,
- 0xB3, 0x25, 0xDB, 0x78, 0x5D, 0x24, 0xD7, 0x20, 0x32, 0x88, 0xC9, 0x01, 0x29, 0x41, 0xE3, 0x20,
- 0x3A, 0xC1, 0x6D, 0xD8, 0x7C, 0xB5, 0xCB, 0x54, 0x69, 0xE6, 0x65, 0xA3, 0xE2, 0x61, 0xF7, 0x7A,
- 0x79, 0x89, 0xB6, 0xE6, 0x4F, 0x82, 0x20, 0x30, 0x6F, 0x11, 0x56, 0xB1, 0x9E, 0xC1, 0xFD, 0x1F,
- 0xF0, 0x7A, 0xF5, 0x10, 0x3F, 0x33, 0x64, 0xEE, 0x16, 0x26, 0x94, 0x5A, 0xDB, 0xFC, 0x02, 0xB4,
- 0x7F, 0xC6, 0x4B, 0xAF, 0x88, 0xAB, 0x06, 0xBA, 0x5B, 0x70, 0xD4, 0xAD, 0x90, 0xBB, 0x7E, 0x71,
- 0x45, 0x3C, 0x62, 0xF0, 0xD9, 0xDE, 0xBC, 0x3C, 0x61, 0x7F, 0x50, 0x65, 0x8D, 0x1E, 0x72, 0x88,
- 0x69, 0xF4, 0xD5, 0xDA, 0x1F, 0x2B, 0x65, 0x9A, 0xEA, 0x05, 0x0A, 0x30, 0xC0, 0x56, 0x20, 0x01,
- 0x27, 0xCD, 0xDD, 0xF4, 0xBD, 0x37, 0x87, 0x58, 0x4F, 0x6D, 0x52, 0x12, 0xDC, 0xD7, 0x25, 0xCD,
- 0x21, 0xEF, 0x77, 0x78, 0x61, 0x06, 0x6B, 0x63, 0xC5, 0xCC, 0x9A, 0x36, 0x27, 0x5A, 0xF9, 0xC6,
- 0xDF, 0x28, 0x58, 0x38, 0xD9, 0x62, 0x98, 0x7E, 0x79, 0x4A, 0x6F, 0xD0, 0xBF, 0x6D, 0x20, 0x1D,
- 0x78, 0x5C, 0xF3, 0xAD, 0x4A, 0x31, 0xB4, 0xDD, 0xCD, 0xFC, 0xF2, 0x9C, 0x66, 0xEF, 0xC4, 0x46,
- 0xDB, 0xA8, 0x39, 0xDF, 0x6B, 0x78, 0x6F, 0xB5, 0xC2, 0xE0, 0xB2, 0xE4, 0x82, 0xF4, 0xAC, 0x26,
- 0xB6, 0xEA, 0xEF, 0xDD, 0xEB, 0xE9, 0x04, 0x39, 0x7E, 0x43, 0xD6, 0x7A, 0xF2, 0xE4, 0x26, 0xDB,
- 0x42, 0xBB, 0x0C, 0xDB, 0xB9, 0x00, 0xF2, 0x07, 0x7A, 0xED, 0xCC, 0x32, 0xFE, 0xEB, 0x12, 0x8D,
- 0x8E, 0x9D, 0x5B, 0xCF, 0x36, 0x4A, 0xB2, 0x90, 0xAE, 0xAE, 0xC3, 0x46, 0x94, 0x2B, 0x67, 0xD9,
- 0x0D, 0x88, 0x22, 0x74, 0x42, 0x90, 0x80, 0x24, 0xDD, 0x11, 0xE0, 0xC2, 0x20, 0xAC, 0xD1, 0x90,
- 0x5E, 0x18, 0x70, 0x5C, 0xB1, 0x2E, 0xA5, 0x6B, 0xC5, 0x0F, 0x7E, 0xFF, 0x86, 0x91, 0x26, 0x09,
- 0x76, 0x5F, 0x8A, 0xB6, 0xAC, 0xFA, 0x84, 0x6C, 0x5C, 0x4F, 0x1F, 0x45, 0x45, 0x45, 0xE8, 0x0A,
- 0x5B, 0x95, 0x05, 0x1F, 0xFC, 0xD7, 0x72, 0xA9, 0xA0, 0x2E, 0x1D, 0x7F, 0xE3, 0xF6, 0xC1, 0xBF,
- 0x64, 0xA1, 0x11, 0x1C, 0x9F, 0xDA, 0x64, 0x78, 0x1A, 0x5A, 0xC8, 0x1D, 0x85, 0xD3, 0xC5, 0x70,
- 0xCE, 0x7E, 0xAB, 0x94, 0x92, 0xCE, 0xF5, 0x20, 0xD3, 0x59, 0xD5, 0x43, 0xDE, 0xC7, 0x40, 0x1E,
- 0x1F, 0x1B, 0xFC, 0x06, 0xD3, 0xE5, 0x81, 0xE6, 0xDC, 0x75, 0x13, 0xF5, 0xD7, 0x95, 0x3A, 0xC3,
- 0x2F, 0xBE, 0xD5, 0x27, 0xEB, 0xE9, 0x82, 0x55, 0x74, 0x2A, 0x30, 0x50, 0xB4, 0xAD, 0x06, 0xB2,
- 0xE6, 0x4C, 0xAF, 0x1E, 0x8B, 0x6B, 0xB4, 0x76, 0x89, 0x37, 0x38, 0x23, 0x2C, 0xA2, 0xAF, 0x7E,
- 0xA0, 0x60, 0x1A, 0xFA, 0xD5, 0xB4, 0xD1, 0x66, 0x5F, 0xBB, 0x03, 0x8A, 0x09, 0x26, 0xAE, 0xE5,
- 0x0C, 0xF7, 0xF8, 0x02, 0xA6, 0xC4, 0x75, 0x37, 0xD4, 0x90, 0x58, 0xD0, 0x44, 0xFC, 0x57, 0xD6,
- 0xF3, 0x85, 0x9A, 0xEF, 0x44, 0xC3, 0xF3, 0xE3, 0xDE, 0x38, 0xFE, 0xA6, 0x48, 0x96, 0x9A, 0xB4,
- 0xB7, 0x9D, 0x0B, 0x3A, 0x2C, 0xCE, 0xD5, 0x37, 0xA0, 0xB7, 0x9E, 0x6B, 0x5F, 0xDE, 0x04, 0x52,
- 0x81, 0xC4, 0x92, 0xE6, 0xDC, 0x56, 0x08, 0xF2, 0x11, 0x98, 0x3E, 0xFF, 0x31, 0x3C, 0x54, 0xD2,
- 0xB5, 0xAF, 0x69, 0x51, 0x06, 0xB4, 0xF3, 0x54, 0xAF, 0xC4, 0x3B, 0x8D, 0x94, 0xC3, 0x05, 0x4D,
- 0x5F, 0xD8, 0x06, 0xA0, 0x90, 0xEB, 0xEC, 0xFB, 0x6E, 0x7B, 0xA5, 0xBE, 0x94, 0xAD, 0xFF, 0x32,
- 0x9E, 0x59, 0xF4, 0x6C, 0x55, 0x17, 0x6A, 0xE9, 0xA8, 0x5A, 0x14, 0xAA, 0x7C, 0x1B, 0xD3, 0xBB,
- 0xA4, 0x7E, 0x80, 0xCE, 0x02, 0xDF, 0xA2, 0x93, 0x07, 0xF3, 0xD9, 0xDB, 0x96, 0x5F, 0xA8, 0xC7,
- 0xF8, 0xE7, 0x5D, 0xB6, 0x52, 0xC7, 0x3B, 0x6D, 0xE0, 0xAF, 0x4F, 0x19, 0xEB, 0x77, 0xE9, 0x7D,
- 0xDB, 0x51, 0xEE, 0x60, 0xC9, 0x94, 0x5B, 0x4D, 0x4B, 0x6B, 0x59, 0x97, 0x8D, 0xB6, 0x06, 0x30,
- 0x57, 0x0D, 0xB6, 0x70, 0xC9, 0xDC, 0x54, 0x68, 0xB4, 0xF1, 0x8B, 0x3B, 0xB0, 0x09, 0xD7, 0x20,
- 0x21, 0x12, 0x29, 0x87, 0x4C, 0x35, 0x01, 0xB3, 0x76, 0xB6, 0x99, 0xD1, 0x4B, 0x2C, 0x3C, 0xED,
- 0xF9, 0xC0, 0x78, 0x97, 0x19, 0xF3, 0x9F, 0x73, 0x9D, 0xF7, 0xCC, 0x06, 0x6A, 0x9B, 0xEC, 0x94,
- 0xD7, 0xD1, 0x77, 0x20, 0xC3, 0xA2, 0x8B, 0x74, 0xCA, 0x96, 0x9F, 0x69, 0x6D, 0xAD, 0xE3, 0x62,
- 0x98, 0xEB, 0x86, 0x7E, 0xAC, 0xB9, 0x8B, 0x17, 0xA9, 0x4F, 0x07, 0xBB, 0x0C, 0xE3, 0x82, 0xDD,
- 0x40, 0xFF, 0x22, 0x7A, 0xF2, 0x46, 0x80, 0x5A, 0x8D, 0x5A, 0xF6, 0xCC, 0x3E, 0xC5, 0x34, 0x02,
- 0x0D, 0xAC, 0xDC, 0xE9, 0xC1, 0x1A, 0xC6, 0x5E, 0x68, 0xEE, 0x05, 0x1B, 0x6A, 0x6D, 0x39, 0x3F,
- 0x10, 0xF8, 0xEB, 0x43, 0x6F, 0x52, 0x81, 0x49, 0x6C, 0x0A, 0x23, 0x30, 0x24, 0x25, 0xF9, 0xB4,
- 0xF3, 0x95, 0x74, 0x23, 0x51, 0x6E, 0x27, 0xEC, 0x1C, 0x84, 0xB5, 0xD1, 0x0D, 0x8D, 0x17, 0x53,
- 0xCA, 0xB7, 0x1E, 0x3F, 0xA4, 0x5F, 0x07, 0x58, 0xB1, 0x6D, 0x94, 0xAE, 0x60, 0x23, 0x3F, 0x51,
- 0xAF, 0x7A, 0x45, 0xC3, 0x3B, 0x76, 0xE4, 0x9A, 0x5B, 0xB3, 0x5C, 0xBA, 0x64, 0xB9, 0x25, 0x92,
- 0xAB, 0x60, 0xB6, 0x2E, 0xF5, 0xCF, 0x85, 0xEB, 0x3E, 0xAB, 0xD4, 0x6B, 0x47, 0xDC, 0x8D, 0x69,
- 0x3C, 0x53, 0x51, 0x64, 0x7B, 0x22, 0xBE, 0xC8, 0xB0, 0x61, 0xD7, 0x89, 0xF6, 0xCA, 0xCF, 0x1D,
- 0x29, 0x18, 0xF2, 0x71, 0x5C, 0x58, 0xD7, 0x18, 0xEF, 0xDB, 0xE1, 0xD6, 0x83, 0xC3, 0x26, 0x1A,
- 0xBE, 0xF2, 0x7F, 0xDB, 0x0E, 0x99, 0x9F, 0x8C, 0x56, 0xD7, 0x6E, 0xD6, 0xCA, 0x55, 0x52, 0x66,
- };
- /** \brief 校準數據 */
- uint8_t g_cali_buf[14] = {
- 0x81, 0x47, 0x00, 0xf5, 0x94, 0x3f, 0xc3,
- 0x07, 0x0b, 0x08, 0x32, 0x6c, 0x00, 0x04,};
- /** \brief 狀態數據 */
- uint8_t g_state_buf[11] = {
- 0xB1, 0xD3, 0x04, 0x00, 0x37, 0x70,
- 0x02, 0x00, 0x00, 0x00, 0x00};
- /** \brief 存儲 TOF 獲取的結果 */
- result_info_t g_tof_result = {0};
- /**
- * \brief 讀取 TMF8801 狀態標志位
- *
- * \retval TMF8x01_OK : 操作成功
- * \retval TMF8x01_NK : 操作失敗
- */
- static int8_t __tmf8801_status_read (void)
- {
- uint8_t sta_buf[3] = {0};
-
- /* 讀狀態寄存器 */
- I2C_TMF8001_ReadByte(0x08, sta_buf, 3);
- if (sta_buf[0] != 0x00 ||
- sta_buf[1] != 0x00 ||
- sta_buf[2] != 0xFF)
- {
-
- // printf("Error\r\n");
- return TMF8x01_NK;
- }
- return TMF8x01_OK;
- }
- /**
- * \brief 初始化下載 HW
- */
- static int8_t __tmf8801_download_init (void)
- {
- /*
- * cmd_buf[0] : 初始化下載 HW 命令(0x14)
- * cmd_buf[1] : 數據長度(0x01)
- * cmd_buf[3] : 1個字節數據
- * cmd_buf[4] : 校驗字節
- */
- uint8_t cmd_buf[] = {0x14, 0x01, 0x29, 0xC1};
- uint32_t tick = 0;
-
- I2C_TMF8001_WriteByte(0x08, cmd_buf, 4);
-
- while (1)
- {
- if (__tmf8801_status_read() == TMF8x01_OK)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("__tmf8801_download_init tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /**
- * \brief 設置寫 RAM 地址
- */
- static int8_t __tmf8801_set_ram_addr (uint16_t addr)
- {
- /*
- * cmd_buf[0] : 寫 RAM 地址命令(0x43)
- * cmd_buf[1] : 數據長度(0x02)
- * cmd_buf[4:3] : 2個字節數據
- * cmd_buf[5] : 校驗字節
- */
- uint8_t cmd_buf[5] = {0};
- uint32_t tick = 0;
-
- cmd_buf[0] = 0x43;
- cmd_buf[1] = 0x02;
- cmd_buf[2] = (uint8_t)addr; /* 地址低 8 位 */
- cmd_buf[3] = (uint8_t)(addr >> 8); /* 地址高 8 位 */
- cmd_buf[4] = (cmd_buf[0] /* 校驗字節 */
- + cmd_buf[1]
- + cmd_buf[2]
- + cmd_buf[3])
- ^ 0xFF;
-
- I2C_TMF8001_WriteByte(0x08, cmd_buf, 5);
-
- while (1)
- {
- if (__tmf8801_status_read() == TMF8x01_OK)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("__tmf8801_set_ram_addr tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /**
- * \brief 寫 RAM
- */
- static int8_t __tmf8801_write_ram (void)
- {
- /*
- * cmd_buf[0] : 命令(0x41)
- * cmd_buf[1] : 數據長度(0x10)
- * cmd_buf[17:2] : 16個字節數據
- * cmd_buf[18] : 校驗字節
- */
- uint8_t cmd_buf[19] = {0};
-
- uint16_t buf_length = 0; /* app_buf 總字節個數 */
- uint16_t buf_line = 0; /* app_buf 行地址 */
-
- uint32_t tick = 0;
- uint16_t i = 0;
- uint16_t j = 0;
-
- buf_length = sizeof(app_buf) / sizeof(app_buf[0]);
- buf_line = buf_length / 16;
-
- cmd_buf[0] = 0x41; /* 寫 RAM */
- cmd_buf[1] = 0x10; /* 待寫數據長度:16字節 */
-
- for (i = 0; i < buf_line; i++) {
-
- /* 裝載命令數據緩存區 */
- for (j = 0; j < 16; j++) { /* 16字節 */
-
- cmd_buf[2+j] = app_buf[16 * i + j];
- }
-
- /* 計算校驗字節 */
- cmd_buf[18] = 0; /* 清零校驗字節 */
- for (j = 0; j < 18; j++) { /* 累加 */
-
- cmd_buf[18] += cmd_buf[j];
- }
- cmd_buf[18] ^= 0xFF; /* 異或 0xFF */
-
- /* 寫 RAM */
- I2C_TMF8001_WriteByte(0x08, cmd_buf, 19);
-
- /* 讀狀態寄存器 */
- while (1)
- {
- if (__tmf8801_status_read() == TMF8x01_OK)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("__tmf8801_write_ram tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- }
- return TMF8x01_OK;
- }
- /**
- * \brief 重映射 RAM 到地址 0 并復位
- */
- static int8_t __tmf8801_ram_remap_rst (void)
- {
- /*
- * cmd_buf[0] : RAM 地址重映射并復位命令(0x11)
- * cmd_buf[1] : 數據長度(0x00)
- * cmd_buf[2] : 校驗字節
- */
- uint8_t cmd_buf[] = {0x11, 0x00, 0xEE};
- uint8_t regval = 0;
- uint32_t tick = 0;
-
- I2C_TMF8001_WriteByte(0x08, cmd_buf, 3);
- while (1)
- { /* wait CPU ready */
- I2C_TMF8001_ReadByte(0xE0, ®val, 1);
- if (regval == 0x41)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("__tmf8801_ram_remap_rst tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /**
- * \brief TMF8801 復位
- */
- static int8_t __tmf8801_rst (void)
- {
- uint8_t regval = 0;
- uint32_t tick = 0;
-
- regval = 0x81;
- I2C_TMF8001_WriteByte(0xE0, ®val, 1);
-
- while (1)
- {/* wait CPU ready */
- I2C_TMF8001_ReadByte(0xE0, ®val , 1);
- if (regval == 0x41)
- {
- break;
- }
- tick ++;
- if (tick >= 100)
- {
- printf("__tmf8801_rst tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /**
- * \brief 獲取 TMF8801 信息
- */
- static int8_t __tmf8801_info_read (void)
- {
- uint8_t app0_rev_num[3] = {0};
- uint8_t chip_rev_id = 0;
- uint8_t serial_num[4] = {0};
-
- uint8_t regval = 0;
- uint32_t tick = 0;
-
- /* APP0 主版本號 */
- I2C_TMF8001_ReadByte(0x01, &app0_rev_num[0], 1);
-
- /* 次版本號和修訂版本號 */
- I2C_TMF8001_ReadByte(0x12, &app0_rev_num[1], 2);
-
- /* 芯片修訂 ID */
- I2C_TMF8001_ReadByte(0xE4, &chip_rev_id, 1);
-
- /* 序列號 */
- regval = 0x47; /* 發送讀序列號命令 */
- I2C_TMF8001_WriteByte(0x10, ®val, 1);
-
- while (1)
- { /* 等待序列號生成完畢 */
- I2C_TMF8001_ReadByte(0x1E, ®val, 1);
- if (regval == 0x47)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("__tmf8801_info_read tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- I2C_TMF8001_ReadByte(0x28, serial_num, 4);
-
- /* 打印 */
- printf("Serial Number: %02x-%02x-%02x-%02x\r\n",
- serial_num[0], serial_num[1], serial_num[2], serial_num[3]);
- printf("App0 Revision: %d.%d.%d\r\n",
- app0_rev_num[0], app0_rev_num[1], app0_rev_num[2]);
- printf("Chip Revision: %d\r\n", chip_rev_id);
-
- return TMF8x01_OK;
- }
- /******************************************************************************/
- int8_t tmf8801_init (void)
- {
- /* TMF8801 復位 */
- if (__tmf8801_rst() == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- /* 補丁下載初始化 */
- if (__tmf8801_download_init() == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- /* 設置寫 RAM 地址 */
- if (__tmf8801_set_ram_addr(0x00) == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- /* 寫 RAM */
- if (__tmf8801_write_ram() == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- /* 復位 RAM */
- if (__tmf8801_ram_remap_rst() == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- delay_ms(100);
- /* 獲取 TMF8801 芯片信息 */
- if (__tmf8801_info_read() == TMF8x01_NK)
- {
- return TMF8x01_NK;
- }
- /* 使能檢測中斷 */
- tmf8801_intx_enable();
- return TMF8x01_OK;
- }
- /******************************************************************************/
- int8_t tmf8801_app0_start (app0_init_config_t *p_config)
- {
- /*
- * cmd_data7=03 Algorithm state and factory calibration is provided
- * cmd_data6=23
- * cmd_data5=00 No GPIO control used
- * cmd_data4=00 No GPIO control used
- * cmd_data3=00 Object detection threshold
- * cmd_data2=64 Repetition period in ms 64 hex = 100ms
- * cmd_data1=84 Number of iterations, low byte; 1 LSB=1 k
- * cmd_data0=03 Number of iterations, high byte; Set to 900k iterations
- * command =02 Set flag to perform target distance measurement with 8
- * bytes of data containing where including setting of
- * calibration (and algorithm state) configuration.
- */
- uint8_t cmd_buf[9] = {0x00, 0xA3, 0x00, 0x00, 0x00, 0x64, 0x84, 0x03, 0x02};
-
- uint8_t cali_ok = 0;
- uint8_t regval = 0;
- uint8_t i = 0;
-
- I2C_TMF8001_ReadByte(0xE0, ®val, 1);
- if (regval != 0x41)
- {/* CPU 沒準備好與主機 IIC 通信 */
- return TMF8x01_NK;
- }
-
- /* 配置 APP0 相關參數 */
- cmd_buf[0] = p_config->calibration_state_mask;
- cmd_buf[2] = p_config->gpio_control;
- cmd_buf[3] = p_config->gpio_output_control;
- cmd_buf[5] = p_config->repetition_period_ms;
- cmd_buf[6] = p_config->iterations & 0xFF;
- cmd_buf[7] = (p_config->iterations >> 8) & 0xFF;
-
- /* 預裝載工廠校準數據或算法狀態數據 */
- if (cmd_buf[0] & FACTORY_CALIBRATION_PROVIDE)
- {/* 提供了工廠校準數據 */
- #if 0
- if (eepromRead(CALI_STA_ADDR, &cali_ok, 1) != EE_SUCCESS)
- {
- return TMF8x01_NK;
- }
- if (cali_ok == 0xAA)
- {/* 執行過工廠校準 */
- if (eepromRead(CALI_DATA_ADDR, g_cali_buf, 14) != EE_SUCCESS)/* 讀取工廠校準數據 */
- {
- return TMF8x01_NK;
- }
- }
- #endif
-
- I2C_TMF8001_WriteByte(0x20, g_cali_buf, 14);/* 寫入 14 字節校準數據 */
- if (cmd_buf[0] & ALGORITHM_STATE_PROVIDE)
- {/* 提供了算法狀態數據 */
- I2C_TMF8001_WriteByte(0x2E, g_state_buf, 11);/* 寫入 11 字節算法狀態數據 */
- }
- }
- else if (cmd_buf[0] & ALGORITHM_STATE_PROVIDE)
- {/* 提供了算法狀態數據 */
- I2C_TMF8001_WriteByte(0x20, g_state_buf, 11);/* 寫入 11 字節算法狀態數據 */
- }
-
- I2C_TMF8001_WriteByte(0x08, cmd_buf, 9);/* 配置 TOF 功能并啟動 */
- printf("配置并啟動APP0:\r\n"); /* 回顯打印 */
- for (i = 0; i < 9; i++)
- {
- printf("%02x ", cmd_buf[i]);
- }
- printf("\r\n");
-
- return TMF8x01_OK;
- }
- /******************************************************************************/
- int8_t tof_timestamp_get (uint8_t *timestamp)
- {
- uint8_t status = 0;
-
- /*
- * 一定要從ToF_REGADDR_STATUS開始讀,并判斷ToF_REGADDR_CONTENTS中的值為0x55
- * 否則可能讀出時間戳為0!!!
- */
- I2C_TMF8001_ReadByte(TMF8x01_REGADDR_STATUS, &status, 1);
- printf("TMF8x01_REGADDR_STATUS: %x\r\n", status);
- I2C_TMF8001_ReadByte(TMF8x01_REGADDR_CONTENTS, &status, 1);
- printf("TMF8x01_REGADDR_CONTENTS: %x\r\n", status);
- if (status != 0x55)
- {/* 未生成結果數據 */
- return TMF8x01_ENORES;
- }
-
- I2C_TMF8001_ReadByte(0x24, timestamp, 4); /* 讀取時間戳 */
- printf("timestamp: %d\r\n", *timestamp);
-
- return TMF8x01_OK;
- }
- /******************************************************************************/
- int8_t tmf8801_result_get (result_info_t *p_res)
- {
- uint8_t result_buf[0x3A - 0x20 + 1] = {0};
- uint8_t regval = 0;
- uint8_t i = 0;
-
- I2C_TMF8001_ReadByte(TMF8x01_REGADDR_STATUS, ®val, 1);
- I2C_TMF8001_ReadByte(TMF8x01_REGADDR_CONTENTS, ®val, 1);
- if (regval != 0x55)
- {/* 未生成結果數據 */
- return TMF8x01_ENORES;
- }
-
- /* 讀取結果數據 */
- I2C_TMF8001_ReadByte(0x20, result_buf, 0x3A - 0x20 + 1);
-
- p_res->result_num = result_buf[0x20 - 0x20];
- p_res->reliability = result_buf[0x21 - 0x20] & 0x3F;
-
-
- p_res->distance_peak = ((uint16_t)result_buf[0x23 - 0x20] << 8)
- + result_buf[0x22 - 0x20];
-
- p_res->time_stamp = ((uint32_t)result_buf[0x27 - 0x20] << 24) |
- ((uint32_t)result_buf[0x26 - 0x20] << 16) |
- ((uint32_t)result_buf[0x25 - 0x20] << 8) |
- ((uint32_t)result_buf[0x24 - 0x20] << 0);
-
- p_res->reference_hits = ((uint32_t)result_buf[0x36 - 0x20] << 24) |
- ((uint32_t)result_buf[0x35 - 0x20] << 16) |
- ((uint32_t)result_buf[0x34 - 0x20] << 8) |
- ((uint32_t)result_buf[0x33 - 0x20] << 0);
-
- p_res->object_hits = ((uint32_t)result_buf[0x3A - 0x20] << 24) |
- ((uint32_t)result_buf[0x39 - 0x20] << 16) |
- ((uint32_t)result_buf[0x38 - 0x20] << 8) |
- ((uint32_t)result_buf[0x37 - 0x20] << 0);
-
- /* 備份算法狀態數據 */
- for (i = 0; i < 11; i++) {
- g_state_buf[i] = result_buf[0x28 - 0x20 + i];
- }
- return TMF8x01_OK;
- }
- /******************************************************************************/
- void tmf8801_result_display (result_info_t result)
- {
- printf("Result number:%d\r\n", result.result_num);
-
- printf("Distance(mm):%d\r\n", result.distance_peak);
-
- printf("Reliability:%d\r\n", result.reliability);
- printf("Timestamp(100us):%d\r\n", result.time_stamp);
-
- printf("State data:%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\r\n",
- g_state_buf[0], g_state_buf[1], g_state_buf[2],
- g_state_buf[3], g_state_buf[4], g_state_buf[5],
- g_state_buf[6], g_state_buf[7], g_state_buf[8],
- g_state_buf[9], g_state_buf[10]);
-
- printf("Reference hits:%d\r\n", result.reference_hits);
-
- printf("Object hits:%d\r\n", result.object_hits);
- }
- /******************************************************************************/
- int8_t tmf8801_app0_stop (void)
- {
- uint32_t tick = 0;
- uint8_t regval = 0xFF;
-
- I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1);
-
- while (1)
- {/* wait CPU ready */
- I2C_TMF8001_ReadByte(0xE0, ®val, 1);
- if (regval == 0x41)
- {
- break;
- }
- tick ++;
- if (tick >= 5)
- { /* 重新發送停止命令 */
- I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1);
- }
- if (tick >= 10)
- { /* 超時 */
- printf("tmf8801_app0_stop err!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /******************************************************************************/
- int8_t tmf8801_factory_calibration (void)
- {
- uint8_t cali_ok = 0;
- uint8_t regval = 0;
- uint32_t tick = 0;
- uint8_t i = 0;
-
- I2C_TMF8001_ReadByte(TMF8x01_REGADDR_ENABLE, ®val, 1);
- if (regval != 0x41)
- {/* 傳感器忙 */
- return TMF8x01_ENOTREADY;
- }
-
- regval = 0x0A;
- I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1); /* 執行工廠校準命令 */
-
- while (1)
- { /* 等待校準數據生成完畢 */
- I2C_TMF8001_ReadByte(0x1E, ®val, 1);
- if (regval == 0x0A)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("tmf8801_factory_calibration tmo!\r\n");
- return TMF8x01_NK;
- }
- }
-
- /* 讀取14字節的校驗數據 */
- I2C_TMF8001_ReadByte(0x20, g_cali_buf, 14);
-
- cali_ok = 0xAA; /* 標志已經執行過工廠校準 */
- #if 0
- /* 備份工廠校準數據 */
- if (eepromRead(0, g_sys_para, SYSPARA_BUF_LEN) != EE_SUCCESS) {
- return TMF8x01_NK;
- }
- for (i = 0; i < 14; i++) {
- g_sys_para[i] = g_cali_buf[i];
- }
- g_sys_para[CALI_STA_ADDR] = cali_ok;
- if (eepromWriteNByte(0, g_sys_para, SYSPARA_BUF_LEN) != EE_SUCCESS) {
- return TMF8x01_NK;
- }
- #endif
-
- printf("工廠校準數據: ");
- for (i = 0; i < 14; i++)
- {
-
- printf("0x%02x, ", g_cali_buf[i]);
- }
- printf("\r\n");
-
- return TMF8x01_OK;
- }
- /******************************************************************************/
- void tmf8801_app0_get_default_config (app0_init_config_t *p_config)
- {
- /* 不提供工廠校準數據和算法狀態數據 */
- p_config->calibration_state_mask = NO_DATA_PROVIDE;
-
- /* GPIO0, GPIO1 均作輸入(復位值) */
- p_config->gpio_control = GPIO0_INPUT | GPIO1_INPUT;
-
- /* 無信號輸出 */
- p_config->gpio_output_control = 0;
-
- /* 重復測量周期為 6ms */
- p_config->repetition_period_ms = 6;
- /* 迭代次數 900k */
- p_config->iterations = 900;
- }
- /******************************************************************************/
- int8_t tmf8801_app0_osc_trim (int32_t change)
- {
- uint8_t regval = 0;
- uint8_t fuse3 = 0;
- uint8_t fuse6 = 0;
- int32_t trim_val = 0;
- uint32_t tick = 0;
-
- regval = 0x29;
- I2C_TMF8001_WriteByte(0x06, ®val, 1);
-
- regval = 0x00; /* PON = 0 */
- I2C_TMF8001_WriteByte(0xE0, ®val, 1);
-
- while (1)
- { /* 等待進入待機模式 */
- I2C_TMF8001_ReadByte(0xE0, ®val, 1);
- {
- if (regval == 0x00)
- {
- break;
- }
- }
- tick ++;
- if (tick >= 10)
- {
- printf("tmf8801_app0_osc_trim tmo!\r\n");
- return TMF8x01_NK;
- }
- }
-
- I2C_TMF8001_ReadByte(0x03, &fuse3, 1);
-
- I2C_TMF8001_ReadByte(0x06, &fuse6, 1);
-
- trim_val = (((int32_t)fuse3) << 1) | ((fuse6 & (0x01 << 6)) >> 6);
- trim_val += change;
- trim_val &= 0x1FF;
- fuse6 &= ~(0x01 << 6);
- fuse6 |= ((trim_val & 0x01) << 6);
- fuse3 = ((trim_val >> 1) & 0xFF);
-
- I2C_TMF8001_WriteByte(0x03, &fuse3, 1);
-
- I2C_TMF8001_WriteByte(0x06, &fuse6, 1);
-
- regval = 0x01; /* PON = 1 */
- I2C_TMF8001_WriteByte(0xE0, ®val, 1);
-
- while (1)
- {/* 等待進入空閑模式 */
- I2C_TMF8001_ReadByte(0xE0, ®val, 1);
- {
- if (regval == 0x41)
- {
- break;
- }
- }
- tick ++;
- if (tick >= 10)
- {
- printf("tmf8801_app0_osc_trim tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- return TMF8x01_OK;
- }
- /******************************************************************************/
- void tmf8801_intx_enable (void)
- {
- uint8_t regval = 0x01;
- I2C_TMF8001_WriteByte(0xE2, ®val, 1);
- }
- /******************************************************************************/
- uint8_t tmf8801_int_status_get (void)
- {
- uint8_t status = 0;
-
- I2C_TMF8001_ReadByte(0xE1, &status, 1);
- return status;
- }
- /******************************************************************************/
- void tmf8801_int_status_clr (void)
- {
- uint8_t regval = 0x01;
- I2C_TMF8001_WriteByte(0xE1, ®val, 1);
- }
- /******************************************************************************/
- int8_t tmf8801_handle_irq (void)
- {
- uint8_t status = 0;
- uint32_t tick = 0;
-
- status = tmf8801_int_status_get();
- if (status & 0x01)
- { /* 發生檢測中斷 */
-
- tmf8801_int_status_clr();
-
- while (1)
- {
- if (tmf8801_result_get(&g_tof_result) == TMF8x01_OK)
- {
- break;
- }
- tick ++;
- if (tick >= 10)
- {
- printf("tmf8801_result_get tmo!\r\n");
- return TMF8x01_NK;
- }
- }
- }
- return TMF8x01_OK;
- }
復制代碼
3、main函數- //有些變量是全局變量關系比較復雜,我這里就不寫出來了,你們看一下TMF8801配置的流程就行了
- int main(void)
- {
- u8 tof_timestamp[4];
- static uint32_t tof_timestamp_t1 = {0};
- static uint32_t tof_timestamp_t0 = {0};
- static uint8_t cnt = 0;
- app0_init_config_t config = {0};
- uart_init(115200);
- TIM3_Int_Init(10,36000);//5ms定時,實際測量5MS
- TMF8001_I2C_Init();
- //初始化TMF8x01
- if (tmf8801_init() == TMF8x01_NK)
- {
- printf("tmf8801_init err!\r\n");
- }
- //配置APP0
- config.calibration_state_mask = FACTORY_CALIBRATION_PROVIDE;//提供了工廠校準數據
- config.repetition_period_ms = 100;//重復測量周期為100ms
- config.iterations = 900;//迭代次數 900k
- if (tmf8801_app0_start(&config) == TMF8x01_NK)//配置APP0
- {
- printf("tmf8801_app0_start err!\r\n");
- }
- while(1)
- {
- if(System_Tick > 200)
- {
- System_Tick = 0;
- tmf8801_handle_irq();
- printf("num:%3d 測量距離(mm):%4d 可信度:%2d",
- g_tof_result.result_num,
- g_tof_result.distance_peak,
- g_tof_result.reliability);
- }
- }
- }
復制代碼
———————————————
程序測試后正常運行時串口打印的數據:
s2.png (10.02 KB, 下載次數: 75)
下載附件
2021-3-28 16:36 上傳
單片機和TMF8801通訊有問題時串口打印的數據:
s3.png (7.89 KB, 下載次數: 80)
下載附件
2021-3-28 16:36 上傳
———————————————— 版權聲明:本文為CSDN博主「子先」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
|