V1.1 For EVIC

Dependencies:   SDFileSystem max32630fthr USBDevice

Files at this revision

API Documentation at this revision

Comitter:
china_sn0w
Date:
Mon Jun 22 05:27:48 2020 +0000
Parent:
2:3a8f285d261a
Commit message:
1.2Alpha;

Changed in this revision

CmdHandler.cpp Show annotated file Show diff for this revision Revisions of this file
CmdHandler.h Show annotated file Show diff for this revision Revisions of this file
DUT_RegConfig.cpp Show annotated file Show diff for this revision Revisions of this file
DUT_RegConfig.h Show annotated file Show diff for this revision Revisions of this file
Firmware.cpp Show annotated file Show diff for this revision Revisions of this file
RegTable.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 3a8f285d261a -r 35b05d91568d CmdHandler.cpp
--- a/CmdHandler.cpp	Thu May 28 02:32:15 2020 +0000
+++ b/CmdHandler.cpp	Mon Jun 22 05:27:48 2020 +0000
@@ -33,6 +33,9 @@
 extern uint16_t histogram_pos_num;
 extern uint16_t histogram_per_pos;
 
+extern uint16_t range_step_num;
+extern uint16_t range_per_step;
+
 void CmdHandleTask(void)
 {
     uint8_t ret;
@@ -161,7 +164,7 @@
 
         case VAN_SINGLE_MEAS:// 单次测量
             if(HandleOneTimeMeasure() == 0)
-                UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 4);
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_SINGLE_MEAS, _uart_send_pbuff, 10);
             else
                 UART_CmdAckSend(READ_CMD | 0x10, VAN_SINGLE_MEAS, _uart_send_pbuff, 2);
             break;
@@ -211,6 +214,13 @@
                 histogram_pos_num = pd[6] + pd[7]*256;
                 histogram_per_pos = pd[8] + pd[9]*256;
             }
+            else if(pd[5] == 0xF2)
+            {
+                histogram_mode = 5;
+                range_step_num = pd[6] + pd[7]*256;
+                range_per_step = 0;
+                //histogram_per_pos = pd[8] + pd[9]*256;
+            }
             break;
 
         case VAN_MOVING_CTL_CMD:
@@ -257,6 +267,50 @@
             else
                 UART_CmdAckSend(READ_CMD | 0x10, VAN_GET_TDC_PHASE_CMD, _uart_send_pbuff, 2);
             break;
+            
+        case VAN_SET_WINDOW_CMD:
+            if(SetWindow(pd) == 0)
+                UART_CmdAckSend(WRITE_CMD | 0x80, VAN_SET_WINDOW_CMD, _uart_send_pbuff, 2);
+            else
+                UART_CmdAckSend(WRITE_CMD | 0x10, VAN_SET_WINDOW_CMD, _uart_send_pbuff, 2);
+        break;
+        
+        case VAN_RCO_TRIM_CMD:
+            if(RCO_Trim(_uart_send_pbuff) == 0)
+            {
+                _uart_send_pbuff[1] = _uart_send_pbuff[0];
+                _uart_send_pbuff[0] = 0;
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_RCO_TRIM_CMD, _uart_send_pbuff, 2);
+            }
+            else
+            {
+                _uart_send_pbuff[1] = _uart_send_pbuff[0];
+                _uart_send_pbuff[0] = 1;
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_RCO_TRIM_CMD, _uart_send_pbuff, 2);    
+            }    
+        break;
+        
+        case VAN_BVD_TRIM_CMD:
+            if(BVD_Trim(_uart_send_pbuff) == 0)
+            {
+                _uart_send_pbuff[1] = _uart_send_pbuff[0];
+                _uart_send_pbuff[0] = 0;
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_BVD_TRIM_CMD, _uart_send_pbuff, 2);
+            } 
+            else
+            {
+                _uart_send_pbuff[1] = _uart_send_pbuff[0];
+                _uart_send_pbuff[0] = 0;
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_BVD_TRIM_CMD, _uart_send_pbuff, 2);  
+            }      
+        break;
+        
+        case VAN_PIXEL_EN_CMD:
+            if(Pixel_Enable(_uart_send_pbuff) == 0)
+                UART_CmdAckSend(READ_CMD | 0x80, VAN_PIXEL_EN_CMD, _uart_send_pbuff, 2);
+            else
+                UART_CmdAckSend(READ_CMD | 0x10, VAN_PIXEL_EN_CMD, _uart_send_pbuff, 2);        
+        break;
 
         default:
 
@@ -297,7 +351,7 @@
 
 uint8_t HandleOneTimeMeasure(void)
 {
-    return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2));
+    return OneTimeMeasure((uint16_t*)_uart_send_pbuff, (uint16_t*)(_uart_send_pbuff + 2), (uint32_t*)(_uart_send_pbuff + 4), (uint16_t*)(_uart_send_pbuff + 8));
 }
 
 uint8_t HandleContinuousMeasure(uint8_t *pd)
@@ -359,12 +413,16 @@
     return ret;
 }
 
-uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter)
+uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level)
 {
     memcpy(_uart_send_pbuff, &lsb, 2);
     memcpy(_uart_send_pbuff + 2, &milimeter, 2);
+    
+    memcpy(_uart_send_pbuff + 4, &peak, 4);
+    memcpy(_uart_send_pbuff + 8, &noise_level, 2);
+    
 
-    UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 4);
+    UART_CmdAckSend(READ_CMD | 0x80, VAN_CONTIU_MEAS, _uart_send_pbuff, 10);
 
     return 0;
 }
diff -r 3a8f285d261a -r 35b05d91568d CmdHandler.h
--- a/CmdHandler.h	Thu May 28 02:32:15 2020 +0000
+++ b/CmdHandler.h	Mon Jun 22 05:27:48 2020 +0000
@@ -74,6 +74,11 @@
 #define VAN_DCR_TEST_CMD                   0x5C
 #define VAN_DELAYLINE_TEST_CMD             0x5D
 #define VAN_GET_TDC_PHASE_CMD              0x5E
+#define VAN_SET_WINDOW_CMD                 0x5F
+
+#define VAN_RCO_TRIM_CMD                   0x60
+#define VAN_BVD_TRIM_CMD                   0x61
+#define VAN_PIXEL_EN_CMD                   0x62
 
 
 
@@ -89,7 +94,7 @@
 uint8_t HandleContinuousMeasure(uint8_t *pd);
 uint8_t HandleReadHistogram(uint8_t tdc_idx);
 uint8_t HandleDownloadFW(uint8_t *pd, uint16_t cmdLen);
-uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter);
+uint8_t HandleContinuousMeasureReport(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level);
 
 uint8_t HandleSwitch(uint8_t *pd, uint16_t cmdLen);
 void HandleChipReset(void);
diff -r 3a8f285d261a -r 35b05d91568d DUT_RegConfig.cpp
--- a/DUT_RegConfig.cpp	Thu May 28 02:32:15 2020 +0000
+++ b/DUT_RegConfig.cpp	Mon Jun 22 05:27:48 2020 +0000
@@ -23,10 +23,14 @@
 Semaphore chip_int_semph(1);
 extern DigitalOut xSHUT;
 extern I2C i2c_v;
+extern DigitalOut TRIM_EN;
 
 uint16_t histogram_pos_num = 0;
 uint16_t histogram_per_pos = 0;
 
+uint16_t range_step_num = 0;
+uint16_t range_per_step = 0;
+
 extern const uint8_t reg_table[];
 extern const uint8_t Firmware_Ranging[];
 extern uint8_t  _uart_send_pbuff[CMD_BUF_LEN] ;
@@ -36,24 +40,42 @@
     xSHUT = 0;
     wait_ms(30);
     xSHUT = 1;
+    wait_ms(30);
 }
 
-void DUT_RegInit(void)
+void SetBitThree(uint8_t rco, uint8_t tdc, uint8_t dcr)
+{
+    WriteOneReg(0x37, rco);
+    WriteOneReg(0xE4, tdc);
+    WriteOneReg(0xC0, dcr);
+}
+
+void DUT_RegInit(uint8_t rco, uint8_t tdc, uint8_t dcr)
 {
     LoadRegTable();
-    for(uint16_t i = 0; i < 256; i++) {
-        //WriteOneReg(dut_reg[i].addr, dut_reg[i].value);
-        dut_reg[i].addr = i;
-        dut_reg[i].value = 0x00;
+    for(uint16_t i = 0; i < 256; i++) 
+    {
+        WriteOneReg(dut_reg[i].addr, dut_reg[i].value);        
     }
+
+    SetBitThree(rco, tdc, dcr);
 }
 
-
 void DUT_FirmwareInit(void)
 {
     WriteFW(LoadFirmware());
 }
 
+void DeviceAllInit(uint8_t rco, uint8_t tdc, uint8_t dcr)
+{
+    ChipInitReset();
+    wait_ms(100);
+    DUT_RegInit(rco, tdc, dcr);
+    wait_ms(100);
+    DUT_FirmwareInit();
+    wait_ms(100);
+}
+
 void Enable_DUT_Interrupt(void)
 {
     int_enable = 1;
@@ -77,19 +99,23 @@
     }
 }
 
+
+
 void HistogramReport()
 {
     uint8_t ret = 0;
-    uint16_t lsb, mili;
+    uint16_t lsb, mili, noise_level;
+    uint32_t peak;
 
 
     uint16_t histogram_pos = 0;
     uint16_t histogram_num = 0;
+    uint16_t range_step = 0;
     while(1) {
         if(histogram_mode == 1) {
             //ReadOneReg(REG_SYS_CFG, &sys_cfg_save);
             //WriteOneReg(REG_SYS_CFG, 0x00);
-            ret = OneTimeMeasure(&lsb, &mili);
+            ret = OneTimeMeasure(&lsb, &mili, &peak, &noise_level);
             if(ret != 0) {
                 histogram_mode = 0;
             } else {
@@ -104,7 +130,7 @@
         } else if(histogram_mode == 2) {
             //ReadOneReg(REG_SYS_CFG, &sys_cfg_save);
             //WriteOneReg(REG_SYS_CFG, 0x00);
-            ret = OneTimeMeasure(&lsb, &mili);
+            ret = OneTimeMeasure(&lsb, &mili, &peak, &noise_level);
             if(ret != 0) {
                 histogram_mode = 0;
             } else {
@@ -134,7 +160,7 @@
             }
             //ReadOneReg(REG_SYS_CFG, &sys_cfg_save);
             //WriteOneReg(REG_SYS_CFG, 0x00);
-            ret = OneTimeMeasure(&lsb, &mili);
+            ret = OneTimeMeasure(&lsb, &mili, &peak, &noise_level);
             if(ret != 0) {
                 histogram_mode = 0;
             } else {
@@ -154,7 +180,7 @@
         } else if(histogram_mode == 4) {
             //ReadOneReg(REG_SYS_CFG, &sys_cfg_save);
             //WriteOneReg(REG_SYS_CFG, 0x00);
-            ret = OneTimeMeasure(&lsb, &mili);
+            ret = OneTimeMeasure(&lsb, &mili, &peak, &noise_level);
             if(ret != 0) {
                 histogram_mode = 0;
             } else {
@@ -170,9 +196,43 @@
                 }
             }
             //WriteOneReg(REG_SYS_CFG, sys_cfg_save);
-        }else {
+        } else if(histogram_mode == 5) {
+
+            if(range_per_step == 0) {
+                range_step++;
+                if(range_step >= range_step_num) {
+                    histogram_mode = 0;
+                }
+                ServoRun(1, 10);
+                while(CheckUntil()) wait_ms(100);
+
+                range_per_step = 0;
+                ret = ContinuousMeasure();
+                if(ret != 0) {
+                    histogram_mode = 0;
+                } else {
+                    while(range_per_step<256 && histogram_mode == 5) {
+                        wait_ms(100);
+                    }
+                    StoreHistogram(range_step, 0, 0);
+                    wait_ms(5);
+                    StoreHistogram(range_step, 0, 1);
+                    wait_ms(5);
+                    StoreHistogram(range_step, 0, 2);
+                    wait_ms(5);
+                    StoreHistogram(range_step, 0, 3);
+                    wait_ms(5);
+                    range_per_step = 0;
+
+                }
+            }
+
+
+
+        } else {
             histogram_num = 0;
             histogram_pos = 0;
+            range_step = 0;
             histogram_pos_num = 0;
             histogram_per_pos = 0;
         }
@@ -180,18 +240,51 @@
     }
 }
 
+void StoreMeasureData(uint16_t lsb, uint16_t milimeter, uint32_t peak, uint16_t noise_level, uint16_t i)
+{
+    histogram[0][4*i] = 0;
+    histogram[0][4*i+1] = 0;
+    histogram[0][4*i+2] = lsb >> 8;
+    histogram[0][4*i+3] = lsb ;
+    
+    histogram[1][4*i] = 0;
+    histogram[1][4*i+1] = 0;
+    histogram[1][4*i+2] = milimeter >> 8;
+    histogram[1][4*i+3] = milimeter ;
+    
+    histogram[2][4*i]   = peak >> 24;
+    histogram[2][4*i+1] = peak >> 16;
+    histogram[2][4*i+2] = peak >> 8;
+    histogram[2][4*i+3] = peak ;
+    
+    histogram[3][4*i]   = 0;
+    histogram[3][4*i+1] = 0;
+    histogram[3][4*i+2] = noise_level >> 8;
+    histogram[3][4*i+3] = noise_level ;
+    
+}
+
 void ContinuousMeasureReport()
 {
-    uint16_t lsb, milimeter;
+    uint16_t lsb, milimeter, noise_level;
+    uint32_t peak;
     uint8_t int_flag = 0;
     uint16_t time_out = 0;
 
     while(1) {
 
         chip_int_semph.wait();
-
-        if(RaadContinuousMeasure(&lsb, &milimeter) == 0) {
-            HandleContinuousMeasureReport(lsb, milimeter);
+        if(histogram_mode == 5) {
+            if(RaadContinuousMeasure(&lsb, &milimeter, &peak, &noise_level) == 0) {
+                StoreMeasureData(lsb, milimeter, peak, noise_level, range_per_step++);
+                if(range_per_step == 256) {
+                    StopContinuousMeasure();
+                }
+            }
+        } else {
+            if(RaadContinuousMeasure(&lsb, &milimeter, &peak, &noise_level) == 0) {
+                HandleContinuousMeasureReport(lsb, milimeter, peak, noise_level);
+            }
         }
 
     }
@@ -290,6 +383,7 @@
     ret = ReadOneReg (REG_PW_CTRL, &reg_pw_ctrl);
     ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl | (0x01<<3)); //set otp_ld_done
     ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl | (0x01<<3) | (0x01<<1)); //set otp_ld_done, pw_ctrl_lp
+    ret = WriteOneReg(REG_MCU_CFG, 0x01);
     ret = WriteOneReg(REG_CMD, 0x01);
     ret = WriteOneReg(REG_SIZE, 0x02);
     ret = WriteOneReg(REG_SCRATCH_PAD_BASE+0x00, *((uint8_t*)(&ram_addr_base)  ));
@@ -303,19 +397,21 @@
             ret = ReadOneReg(0x0c+i, &histogram[tdc_index][32*j + i]);
         }
     }
+    ret = WriteOneReg(REG_MCU_CFG, 0x03);
     ret = WriteOneReg(REG_SYS_CFG, reg_sys_cfg & ~(0x01<<0)); //clear sc_en
     ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl | (0x01<<1)); //restore power         control register
-    ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl & ~(0x01<<1)); //clear pw_ctrl_lp
+    ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl); //clear pw_ctrl_lp
 
     return ret;
 }
 
-uint8_t OneTimeMeasure(uint16_t *lsb, uint16_t *milimeter)
+uint8_t OneTimeMeasure(uint16_t *lsb, uint16_t *milimeter, uint32_t *peak, uint16_t *noise_level)
 {
     uint8_t ret = 0;
     uint8_t reg_pw_ctrl;
     uint8_t reg_sys_cfg;
     uint32_t timeout = 0;
+    uint8_t flag = 0;
 
     int_mark = 1;//One Time Measure
 
@@ -324,6 +420,7 @@
     //ret = ReadOneReg (REG_PW_CTRL, &reg_pw_ctrl);
     //ret = WriteOneReg(REG_PW_CTRL, reg_pw_ctrl | (0x01<<3)); //set otp_ld_done
     //ret = WriteOneReg(REG_PW_CTRL, (reg_pw_ctrl | (0x01<<3)) & ~(0x01<<1)); //set otp_ld_done, clear pw_ctrl_lp
+    //ret = WriteOneReg(0x08, 0x00);
     ret = WriteOneReg(REG_CMD, 0x0E);
     //ret = WriteOneReg(REG_SIZE, 0x00);
 
@@ -331,6 +428,11 @@
     while(int_mark == 1 && timeout != 0) {
         timeout--;
         wait_ms(5);
+        //ReadOneReg(0x08, &flag);
+        // if(flag == 0xFF)
+        //{
+        //     int_mark = 0;
+        //  }
     }
 
     if(timeout == 0) {
@@ -344,6 +446,14 @@
         ret = ReadOneReg(0x18, (uint8_t*)milimeter);
         ret = ReadOneReg(0x19, (uint8_t*)milimeter + 1);
 
+        ret = ReadOneReg(0x26, (uint8_t*)noise_level);
+        ret = ReadOneReg(0x27, (uint8_t*)noise_level + 1);
+
+        ret = ReadOneReg(0x28, (uint8_t*)peak );
+        ret = ReadOneReg(0x29, (uint8_t*)peak + 1);
+        ret = ReadOneReg(0x2a, (uint8_t*)peak + 2);
+        ret = ReadOneReg(0x2b, (uint8_t*)peak + 3);
+
     }
 
     //ret = WriteOneReg(REG_SYS_CFG, reg_sys_cfg & ~(0x01<<0)); //clear sc_en
@@ -374,7 +484,7 @@
     return ret;
 }
 
-uint8_t RaadContinuousMeasure(uint16_t *lsb, uint16_t *milimeter)
+uint8_t RaadContinuousMeasure(uint16_t *lsb, uint16_t *milimeter, uint32_t *peak, uint16_t *noise_level)
 {
     uint8_t ret = 0;
     uint8_t reg_pw_ctrl;
@@ -394,6 +504,14 @@
     ret = ReadOneReg(0x18, (uint8_t*)milimeter);
     ret = ReadOneReg(0x19, (uint8_t*)milimeter + 1);
 
+    ret = ReadOneReg(0x26, (uint8_t*)noise_level);
+    ret = ReadOneReg(0x27, (uint8_t*)noise_level + 1);
+
+    ret = ReadOneReg(0x28, (uint8_t*)peak );
+    ret = ReadOneReg(0x29, (uint8_t*)peak + 1);
+    ret = ReadOneReg(0x2a, (uint8_t*)peak + 2);
+    ret = ReadOneReg(0x2b, (uint8_t*)peak + 3);
+
     //ret = WriteOneReg(REG_SYS_CFG, reg_sys_cfg & ~(0x01<<0)); //clear sc_en
 
     return ret;
@@ -460,10 +578,11 @@
     uint8_t ret = 0;
     uint32_t timeout = 0;
     memset(dcr_matrix, 0x00, 17*9*2);
-    WriteOneReg(0x50, 0x01);
-    WriteOneReg(0xBD, 0x01);
-    wait_ms(100);
-    WriteOneReg(0xD8, 0xF0);
+    //WriteOneReg(0x50, 0x01);
+    //WriteOneReg(0xBD, 0x01);
+    //wait_ms(100);
+    //WriteOneReg(0xD8, 0xF0);
+    WriteOneReg(0xC0, vspad);
 
     for(uint8_t group = 0; group < 9; group++) {
         WriteOneReg(0x0C, group);
@@ -495,7 +614,7 @@
 uint8_t DelayLineTest(uint8_t phase, uint8_t* buf)
 {
     uint8_t ret = 0;
-    uint32_t timeout = 0;    
+    uint32_t timeout = 0;
 
     WriteOneReg(0xE4, phase);
     wait_ms(10);
@@ -511,12 +630,12 @@
         while(int_mark == 1 && timeout != 0) {
             timeout--;
             wait_ms(100);
-        }        
+        }
         for(uint8_t tdc = 0; tdc < 9; tdc++) {
             ret = ReadOneReg(0x0c + tdc*2, buf + step*18 + tdc*2 + 1);
             wait_ms(1);
-            ret = ReadOneReg(0x0c + tdc*2 + 1, buf + step*18 + tdc*2);           
-            wait_ms(1);            
+            ret = ReadOneReg(0x0c + tdc*2 + 1, buf + step*18 + tdc*2);
+            wait_ms(1);
         }
 
     }
@@ -552,4 +671,198 @@
     return 0;
 }
 
+uint8_t SetWindow(uint8_t* pd)
+{
+    uint8_t ret = 0;
+    uint8_t buf[14];
+    
+    memset(buf, 0x00, 14);
+    
+    buf[0] |= (pd[5]&0xF);
+    buf[0] |= ((pd[6] << 4)&0xF0);
+    
+    buf[1] |= (pd[7]&0xF);
+    buf[1] |= ((pd[8] << 4)&0xF0);
+    
+    buf[2] |= (pd[9]&0xF);
+    buf[2] |= ((pd[10] << 4)&0xF0);
+    
+    buf[3] |= (pd[11]&0xF);
+    buf[3] |= ((pd[12] << 4)&0xF0);
+    
+    buf[4] |= (pd[13]&0xF);
+    buf[4] |= ((pd[14] << 4)&0xF0);
+    
+    buf[5] |= (pd[15]&0xF);
+    buf[5] |= ((pd[16] << 4)&0xF0);
+    
+    buf[6] |= (pd[17]&0xF);
+    buf[6] |= ((pd[18] << 4)&0xF0);
+    
+    buf[7] |= (pd[19]&0xF);
+    buf[7] |= ((pd[20] << 4)&0xF0);
+    
+    buf[8] = 0x00;// Fisrt 16LSB cut off
+    buf[9] = 0xFF;
+    
+    buf[10] = 0x01;// Ref PAD switch
+    
+    buf[11] = 0x1F;// TDC Resolution 1F = 31
+    
+    buf[12] = 0x0C;// Length
+    buf[13] = 0x09;//CMD
+    
+    for(uint8_t i = 0; i < 12; i++)
+    {
+        WriteOneReg(0x0C + i, buf[i]);
+    }
+    
+    WriteOneReg(0x0B, 0x0C);
+    WriteOneReg(0x0A, 0x09);
+    
+    return 0;
+}
 
+uint8_t RCO_Trim(uint8_t *rco)
+{
+    uint8_t ret = 0;
+    uint8_t value = 0, result = 0;
+    
+    TRIM_EN = 1;
+
+    //==================First BAND=====================//
+    ChipInitReset();
+    ret = WriteOneReg(0xED    , 0x03);
+    ret = WriteOneReg(0xEC    , 0x36);
+    ret = WriteOneReg(0x3D    , 0xC0);
+    ret = WriteOneReg(0xE8    , 0x00);
+    ret = WriteOneReg(0xEA    , 0x3F);
+    ret = WriteOneReg(0x3D    , 0xC8);
+    ret = WriteOneReg(0xED    , 0x83);
+
+    wait_ms(1000);
+
+    ret = ReadOneReg(0xFA, &value);
+    ret = ReadOneReg(0xFB, &result);
+
+    if((result&0xC0) == 0xC0)
+    {
+        *rco = value;
+         ChipInitReset();
+         TRIM_EN = 0;
+        return 0;
+    }
+
+    //==================Second BAND=====================//
+    ChipInitReset();
+    ret = WriteOneReg(0xED    , 0x03);
+    ret = WriteOneReg(0xEC    , 0x36);
+    ret = WriteOneReg(0x3D    , 0xC0);
+    ret = WriteOneReg(0xE8    , 0x00);
+    ret = WriteOneReg(0xEA    , 0x7F);
+    ret = WriteOneReg(0xEB    , 0x40);
+    ret = WriteOneReg(0x3D    , 0xC8);
+    ret = WriteOneReg(0xED    , 0x83);
+
+    wait_ms(1000);
+
+    ret = ReadOneReg(0xFA, &value);
+    ret = ReadOneReg(0xFB, &result);
+
+    if((result&0xC0) == 0xC0)
+    {
+        *rco = value;
+         ChipInitReset();
+         TRIM_EN = 0;
+        return 0;
+    }    
+
+    //==================Third BAND=====================//
+    ChipInitReset();
+    ret = WriteOneReg(0xED    , 0x03);
+    ret = WriteOneReg(0xEC    , 0x36);
+    ret = WriteOneReg(0x3D    , 0xC0);
+    ret = WriteOneReg(0xE8    , 0x00);
+    ret = WriteOneReg(0xEA    , 0xBF);
+    ret = WriteOneReg(0xEB    , 0x80);
+    ret = WriteOneReg(0x3D    , 0xC8);
+    ret = WriteOneReg(0xED    , 0x83);
+
+    wait_ms(1000);
+
+    ret = ReadOneReg(0xFA, &value);
+    ret = ReadOneReg(0xFB, &result);
+
+    if((result&0xC0) == 0xC0)
+    {
+        *rco = value;
+         ChipInitReset();
+         TRIM_EN = 0;
+        return 0;
+    }    
+
+    //==================Fourth BAND=====================//
+    ChipInitReset();
+    ret = WriteOneReg(0xED    , 0x03);
+    ret = WriteOneReg(0xEC    , 0x36);
+    ret = WriteOneReg(0x3D    , 0xC0);
+    ret = WriteOneReg(0xE8    , 0x00);
+    ret = WriteOneReg(0xEA    , 0xFF);
+    ret = WriteOneReg(0xEB    , 0xC0);
+    ret = WriteOneReg(0x3D    , 0xC8);
+    ret = WriteOneReg(0xED    , 0x83);
+
+    wait_ms(1000);
+
+    ret = ReadOneReg(0xFA, &value);
+    ret = ReadOneReg(0xFB, &result);
+
+    if((result&0xC0) == 0xC0)
+    {
+        *rco = value;
+         ChipInitReset();
+         TRIM_EN = 0;
+        return 0;
+    }    
+
+    ChipInitReset();
+    TRIM_EN = 0;
+    return 1;
+}
+
+uint8_t BVD_Trim(uint8_t *bvd)
+{
+    uint8_t ret = 0;
+    uint32_t timeout = 0;
+        
+    WriteOneReg(0xC0, 0x00);    
+    wait_ms(1);
+
+    timeout = 600;
+    int_mark = 1;
+    WriteOneReg(0x0A, 0x08);
+    while(int_mark == 1 && timeout != 0) {
+        timeout--;
+        wait_ms(100);
+    }
+    //osDelay(80);   
+    
+    ret = ReadOneReg(0xC0, bvd);
+
+    if(timeout == 0)
+        return 1;
+
+    return 0;
+}
+
+uint8_t Pixel_Enable(uint8_t *buf)
+{
+    for(uint8_t i = 0; i < 18; i++)
+    {
+        WriteOneReg(0xC2 + i, buf[i]);  
+    }
+    
+    return 0;
+}
+
+
diff -r 3a8f285d261a -r 35b05d91568d DUT_RegConfig.h
--- a/DUT_RegConfig.h	Thu May 28 02:32:15 2020 +0000
+++ b/DUT_RegConfig.h	Mon Jun 22 05:27:48 2020 +0000
@@ -28,9 +28,11 @@
         uint8_t value;
 }DUTREG;
 
+void DeviceAllInit(uint8_t rco, uint8_t tdc, uint8_t dcr);
+
 void DUT_FirmwareInit(void);
 void ChipInitReset(void);
-void DUT_RegInit(void);
+void DUT_RegInit(uint8_t rco, uint8_t tdc, uint8_t dcr);
 void Enable_DUT_Interrupt(void);
 void Disable_DUT_Interrupt(void);
 void InterruptHandle(void);
@@ -43,14 +45,17 @@
 uint8_t ReadAllRegToTable(void);
 uint8_t WriteFW(uint16_t size);
 uint8_t vangogh_ram_rd(uint8_t tdc);
-uint8_t OneTimeMeasure(uint16_t *lsb, uint16_t *milimeter);
+uint8_t OneTimeMeasure(uint16_t *lsb, uint16_t *milimeter, uint32_t *peak, uint16_t *noise_level);
 uint8_t ContinuousMeasure(void);
-uint8_t RaadContinuousMeasure(uint16_t *lsb, uint16_t *milimeter);
+uint8_t RaadContinuousMeasure(uint16_t *lsb, uint16_t *milimeter, uint32_t *peak, uint16_t *noise_level);
 uint8_t StopContinuousMeasure(void);
 uint8_t DCRTest(uint8_t vspad, uint8_t test_time);
 uint8_t DelayLineTest(uint8_t phase, uint8_t* buf);
 uint8_t GetTdcPhase(uint8_t* buf);
-
+uint8_t SetWindow(uint8_t* pd);
+uint8_t RCO_Trim(uint8_t *rco);
+uint8_t BVD_Trim(uint8_t *bvd);
+uint8_t Pixel_Enable(uint8_t *buf);
 
 
 void StoreHistogram(uint16_t histogram_pos, uint16_t histogram_num, uint8_t tdc);
diff -r 3a8f285d261a -r 35b05d91568d Firmware.cpp
--- a/Firmware.cpp	Thu May 28 02:32:15 2020 +0000
+++ b/Firmware.cpp	Mon Jun 22 05:27:48 2020 +0000
@@ -6,206 +6,304 @@
 
 const uint8_t Firmware_Ranging[] = 
 {
-    0x02,0x00,0x06,0x02,0x0b,0xb3,0x78,0x3f,0xe4,0xf6,0xd8,0xfd,0x75,0x81,0xbf,0x02,
-    0x00,0x66,0x00,0x02,0x09,0xd5,0xe4,0xfd,0xfc,0xc3,0xed,0x9f,0xec,0x9e,0x50,0x18,
-    0xe4,0xfb,0xfa,0x00,0x00,0x00,0x0b,0xbb,0x00,0x01,0x0a,0xba,0x05,0xf5,0xbb,0xd1,
-    0xf2,0x0d,0xbd,0x00,0x01,0x0c,0x80,0xe1,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-    0x00,0x00,0x00,0x02,0x0b,0x58,0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x06,0x00,0x00,
-    0x00,0x00,0x00,0x02,0x09,0x19,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x10,0x00,0x00,
-    0x00,0x00,0x00,0x02,0x0a,0x73,0x75,0x2a,0x40,0x75,0xff,0x01,0x7d,0x0c,0x7c,0x00,
-    0x7f,0x07,0x12,0x0c,0x5e,0xe4,0xf5,0x26,0xe5,0x26,0x24,0x0c,0xff,0xe5,0x26,0x24,
-    0x01,0xfd,0xe4,0x33,0xfc,0x12,0x0c,0x5e,0x05,0x26,0xe5,0x26,0xc3,0x94,0x20,0x40,
-    0xe7,0xe4,0x78,0x2f,0xf6,0x08,0x76,0x01,0xfb,0x12,0x0c,0x3f,0x75,0x88,0x05,0x75,
-    0xe8,0x1e,0x75,0xa8,0x86,0x78,0x31,0xe6,0x64,0x09,0x60,0x03,0x02,0x01,0x73,0xf6,
-    0xfb,0x7a,0x00,0x79,0x28,0x7f,0x0c,0x12,0x0c,0x45,0x7d,0x05,0x7c,0x00,0x7f,0xa4,
-    0x12,0x0c,0x5e,0x7d,0x01,0x7f,0x50,0x12,0x0c,0x23,0xe5,0x28,0xb4,0x0f,0x00,0x40,
-    0x03,0x02,0x01,0x63,0x90,0x00,0xdb,0xf8,0x28,0x28,0x73,0x02,0x01,0x08,0x02,0x01,
-    0x0c,0x02,0x01,0x12,0x02,0x01,0x18,0x02,0x01,0x1e,0x02,0x01,0x24,0x02,0x01,0x2a,
-    0x02,0x01,0x30,0x02,0x01,0x36,0x02,0x01,0x3c,0x02,0x01,0x45,0x02,0x01,0x4b,0x02,
-    0x01,0x51,0x02,0x01,0x57,0x02,0x01,0x5d,0x7f,0x7d,0x80,0x02,0x7f,0xfa,0x7e,0x00,
-    0x80,0x2e,0x7f,0xf4,0x7e,0x01,0x80,0x28,0x7f,0xe8,0x7e,0x03,0x80,0x22,0x7f,0xd0,
-    0x7e,0x07,0x80,0x1c,0x7f,0xa0,0x7e,0x0f,0x80,0x16,0x7f,0x40,0x7e,0x1f,0x80,0x10,
-    0x7f,0x80,0x7e,0x3e,0x80,0x0a,0x7f,0x00,0x7e,0x7d,0x80,0x04,0x7f,0x00,0x7e,0xfa,
-    0x12,0x0c,0x2a,0x80,0x25,0x7f,0x80,0x7e,0x00,0x80,0x1c,0x7f,0x00,0x7e,0x01,0x80,
-    0x16,0x7f,0x00,0x7e,0x02,0x80,0x10,0x7f,0x00,0x7e,0x04,0x80,0x0a,0x7f,0x00,0x7e,
-    0x08,0x80,0x04,0x7f,0x00,0x7e,0x02,0x12,0x00,0x16,0x7d,0x04,0x7c,0x00,0x7f,0xa4,
-    0x02,0x04,0xe6,0x78,0x31,0xe6,0x64,0x0a,0x60,0x03,0x02,0x02,0x59,0xf6,0xfb,0x7a,
-    0x00,0x79,0x29,0x7f,0xe4,0x12,0x0c,0x45,0x53,0x29,0xc0,0x78,0x2c,0xe6,0xb4,0x10,
-    0x00,0x40,0x03,0x02,0x02,0x33,0x90,0x01,0x9d,0xf8,0x28,0x28,0x73,0x02,0x01,0xcd,
-    0x02,0x01,0xd3,0x02,0x01,0xd9,0x02,0x01,0xdf,0x02,0x01,0xe5,0x02,0x01,0xeb,0x02,
-    0x01,0xf1,0x02,0x01,0xf7,0x02,0x01,0xfd,0x02,0x02,0x03,0x02,0x02,0x09,0x02,0x02,
-    0x0f,0x02,0x02,0x15,0x02,0x02,0x1b,0x02,0x02,0x21,0x02,0x02,0x27,0xe5,0x29,0x54,
-    0x01,0x80,0x58,0xe5,0x29,0x54,0x02,0x80,0x52,0xe5,0x29,0x54,0x04,0x80,0x4c,0xe5,
-    0x29,0x54,0x08,0x80,0x46,0xe5,0x29,0x54,0x11,0x80,0x40,0xe5,0x29,0x54,0x12,0x80,
-    0x3a,0xe5,0x29,0x54,0x14,0x80,0x34,0xe5,0x29,0x54,0x18,0x80,0x2e,0xe5,0x29,0x54,
-    0x21,0x80,0x28,0xe5,0x29,0x54,0x22,0x80,0x22,0xe5,0x29,0x54,0x24,0x80,0x1c,0xe5,
-    0x29,0x54,0x28,0x80,0x16,0xe5,0x29,0x54,0x31,0x80,0x10,0xe5,0x29,0x54,0x32,0x80,
-    0x0a,0xe5,0x29,0x54,0x34,0x80,0x04,0xe5,0x29,0x54,0x38,0xfd,0x7c,0x00,0x7f,0xe4,
-    0x12,0x0c,0x5e,0x78,0x2c,0x06,0x7d,0x01,0x7c,0x00,0x7f,0xbd,0x12,0x0c,0x5e,0x7f,
-    0x50,0x12,0x0c,0x5e,0x7d,0x10,0x7f,0x45,0x12,0x0c,0x5e,0xe4,0xfd,0x12,0x0c,0x22,
-    0x7d,0x07,0x7c,0x00,0x7f,0x50,0x02,0x04,0xe6,0x78,0x31,0xe6,0xfb,0x64,0x0b,0x70,
-    0x26,0xf6,0x78,0x2d,0x76,0x01,0x7d,0x01,0xfc,0x7f,0xbd,0x12,0x0c,0x5e,0x7f,0x50,
-    0x12,0x0c,0x5e,0x7d,0x40,0x7f,0x45,0x12,0x0c,0x5e,0xfd,0x12,0x0c,0x22,0x7d,0xc7,
-    0x7c,0x00,0x7f,0x50,0x02,0x04,0xe6,0xeb,0x64,0x0c,0x60,0x03,0x02,0x04,0xa3,0x78,
-    0x31,0xf6,0xf5,0x26,0xe5,0x26,0x24,0xc2,0xff,0xe4,0xfd,0xfc,0x12,0x0c,0x5e,0x05,
-    0x26,0xe5,0x26,0xc3,0x94,0x12,0x40,0xec,0xe4,0xfd,0xfc,0x7f,0xd9,0x12,0x0c,0x5e,
-    0x7d,0xc0,0x0f,0x12,0x0c,0x5e,0xfb,0x7a,0x00,0x79,0x27,0x7f,0x0c,0x12,0x0c,0x45,
-    0x7a,0x00,0x09,0x7f,0x0d,0x12,0x0c,0x45,0x7d,0x01,0x7f,0x50,0x12,0x0c,0x23,0x7d,
-    0x11,0x7c,0x00,0x7f,0x50,0x12,0x0c,0x5e,0xe5,0x27,0xb4,0x09,0x00,0x40,0x03,0x02,
-    0x03,0x76,0x90,0x02,0xe9,0xf8,0x28,0x28,0x73,0x02,0x03,0x04,0x02,0x03,0x0d,0x02,
-    0x03,0x16,0x02,0x03,0x23,0x02,0x03,0x30,0x02,0x03,0x3d,0x02,0x03,0x4a,0x02,0x03,
-    0x57,0x02,0x03,0x66,0x7f,0xc2,0x12,0x0c,0x56,0x7d,0x01,0x80,0x55,0x7f,0xc4,0x12,
-    0x0c,0x56,0x7d,0x02,0x80,0x4c,0x7d,0xff,0x7c,0x00,0x7f,0xc6,0x12,0x0c,0x5a,0x7d,
-    0x04,0x80,0x3f,0x7d,0xff,0x7c,0x00,0x7f,0xc8,0x12,0x0c,0x5a,0x7d,0x08,0x80,0x32,
-    0x7d,0xff,0x7c,0x00,0x7f,0xca,0x12,0x0c,0x5a,0x7d,0x10,0x80,0x25,0x7d,0xff,0x7c,
-    0x00,0x7f,0xcc,0x12,0x0c,0x5a,0x7d,0x20,0x80,0x18,0x7d,0xff,0x7c,0x00,0x7f,0xce,
-    0x12,0x0c,0x5a,0x7d,0x40,0x80,0x0b,0x7d,0xff,0x7c,0x00,0x7f,0xd0,0x12,0x0c,0x5a,
-    0x7d,0x80,0x7f,0xd9,0x80,0x0d,0x7d,0xff,0x7c,0x00,0x7f,0xd2,0x12,0x0c,0x5a,0x7d,
-    0xc1,0x7f,0xda,0x12,0x0c,0x5e,0xe5,0x28,0xb4,0x0f,0x00,0x40,0x03,0x02,0x04,0x0f,
-    0x90,0x03,0x87,0xf8,0x28,0x28,0x73,0x02,0x03,0xb4,0x02,0x03,0xb8,0x02,0x03,0xbe,
-    0x02,0x03,0xc4,0x02,0x03,0xca,0x02,0x03,0xd0,0x02,0x03,0xd6,0x02,0x03,0xdc,0x02,
-    0x03,0xe2,0x02,0x03,0xe8,0x02,0x03,0xf1,0x02,0x03,0xf7,0x02,0x03,0xfd,0x02,0x04,
-    0x03,0x02,0x04,0x09,0x7f,0x7d,0x80,0x02,0x7f,0xfa,0x7e,0x00,0x80,0x2e,0x7f,0xf4,
-    0x7e,0x01,0x80,0x28,0x7f,0xe8,0x7e,0x03,0x80,0x22,0x7f,0xd0,0x7e,0x07,0x80,0x1c,
-    0x7f,0xa0,0x7e,0x0f,0x80,0x16,0x7f,0x40,0x7e,0x1f,0x80,0x10,0x7f,0x80,0x7e,0x3e,
-    0x80,0x0a,0x7f,0x00,0x7e,0x7d,0x80,0x04,0x7f,0x00,0x7e,0xfa,0x12,0x0c,0x2a,0x80,
-    0x25,0x7f,0x80,0x7e,0x00,0x80,0x1c,0x7f,0x00,0x7e,0x01,0x80,0x16,0x7f,0x00,0x7e,
-    0x02,0x80,0x10,0x7f,0x00,0x7e,0x04,0x80,0x0a,0x7f,0x00,0x7e,0x08,0x80,0x04,0x7f,
-    0x00,0x7e,0x02,0x12,0x00,0x16,0xe5,0x27,0xb4,0x0a,0x00,0x50,0x76,0x90,0x04,0x24,
-    0xf8,0x28,0x28,0x73,0x02,0x04,0x42,0x02,0x04,0x49,0x02,0x04,0x50,0x02,0x04,0x57,
-    0x02,0x04,0x5e,0x02,0x04,0x65,0x02,0x04,0x6c,0x02,0x04,0x73,0x02,0x04,0x7a,0x02,
-    0x04,0x86,0xe4,0xfd,0xfc,0x7f,0xc2,0x80,0x36,0xe4,0xfd,0xfc,0x7f,0xc4,0x80,0x2f,
-    0xe4,0xfd,0xfc,0x7f,0xc6,0x80,0x28,0xe4,0xfd,0xfc,0x7f,0xc8,0x80,0x21,0xe4,0xfd,
-    0xfc,0x7f,0xca,0x80,0x1a,0xe4,0xfd,0xfc,0x7f,0xcc,0x80,0x13,0xe4,0xfd,0xfc,0x7f,
-    0xce,0x80,0x0c,0xe4,0xfd,0xfc,0x7f,0xd0,0x80,0x05,0xe4,0xfd,0xfc,0x7f,0xd2,0x12,
-    0x0c,0x5a,0x7f,0xd9,0x80,0x0a,0xe4,0xfd,0xfc,0x7f,0xd4,0x12,0x0c,0x5a,0x7f,0xda,
-    0x12,0x0c,0x5e,0xe4,0xfd,0xfc,0x7f,0x50,0x12,0x0c,0x5e,0x75,0xff,0x03,0xf5,0xff,
-    0x02,0x00,0xa5,0x78,0x31,0xe6,0x64,0x0d,0x70,0x26,0x18,0xe6,0x64,0x01,0x70,0x20,
-    0xf6,0x7d,0x01,0xfc,0x7f,0xbd,0x12,0x0c,0x5e,0x7f,0x50,0x12,0x0c,0x5e,0x1d,0x7f,
-    0x45,0x12,0x0c,0x5e,0x0d,0x12,0x0c,0x22,0x7d,0x0b,0x7c,0x00,0x7f,0x50,0x80,0x16,
-    0x78,0x31,0xe6,0xfb,0x64,0x0e,0x70,0x14,0x78,0x2f,0xf6,0x78,0x31,0x12,0x0c,0x0b,
-    0x7d,0x07,0x7c,0x00,0x7f,0x50,0x12,0x0c,0x5e,0x02,0x00,0xa5,0xeb,0x64,0x0f,0x60,
-    0x03,0x02,0x00,0xa5,0x78,0x30,0xe6,0x64,0x01,0x60,0x03,0x02,0x00,0xa5,0x18,0xf6,
-    0x08,0x12,0x0c,0x0b,0x7d,0x07,0x7c,0x00,0x7f,0x50,0x12,0x0c,0x5e,0x02,0x00,0xa5,
+    0x02,0x00,0x06,0x02,0x11,0xf2,0x78,0x3f,0xe4,0xf6,0xd8,0xfd,0x75,0x81,0xa9,0x02,
+    0x00,0x66,0x00,0x02,0x0f,0xcc,0xf6,0x7d,0x01,0xfc,0x7f,0xbd,0x12,0x12,0x8c,0x7f,
+    0x50,0x12,0x12,0x8c,0x7f,0x20,0x7e,0x03,0xe4,0xfd,0xfc,0xc3,0xed,0x9f,0xec,0x9e,
+    0x50,0x0a,0x00,0x00,0x00,0x0d,0xbd,0x00,0x01,0x0c,0x80,0xef,0x22,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x02,0x11,0x97,0x00,0x00,0x00,0x00,0x00,0x02,0x0e,0xbc,0x00,0x00,
+    0x00,0x00,0x00,0x02,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0xca,0x00,0x00,
+    0x00,0x00,0x00,0x02,0x11,0x17,0x75,0x2c,0x50,0x75,0x2d,0x0f,0x75,0x2e,0xe0,0x75,
+    0xff,0x01,0x7b,0x00,0x7a,0x00,0x79,0x29,0x7f,0x07,0x12,0x12,0x73,0xe5,0x29,0x30,
+    0xe3,0x03,0x02,0x01,0x2d,0xe4,0xf5,0x27,0xe5,0x27,0x24,0x0c,0xff,0xe5,0x27,0x24,
+    0x01,0xfd,0xe4,0x33,0xfc,0x12,0x12,0x8c,0x05,0x27,0xe5,0x27,0xc3,0x94,0x20,0x40,
+    0xe7,0x75,0x93,0x07,0x75,0x94,0x0c,0x75,0x96,0x02,0xe4,0x78,0x50,0xf6,0x08,0xf6,
+    0x08,0x76,0x21,0x08,0x76,0x43,0x08,0x76,0x23,0x08,0x76,0x01,0x08,0xf6,0x08,0xf6,
+    0x08,0xf6,0x08,0x76,0xff,0x08,0x76,0x01,0x08,0x76,0x1f,0xf5,0x27,0xe5,0x27,0x24,
+    0x40,0xff,0x74,0x60,0x12,0x12,0x6d,0x05,0x27,0xe5,0x27,0xc3,0x94,0x10,0x40,0xed,
+    0x7b,0x00,0x7a,0x00,0x79,0x70,0x7f,0x51,0x12,0x12,0x73,0x7a,0x00,0x09,0x7f,0x52,
+    0x12,0x12,0x73,0xe4,0xf5,0x27,0xe5,0x27,0x24,0xbe,0xff,0x74,0x72,0x12,0x12,0x6d,
+    0x05,0x27,0xe5,0x27,0xc3,0x94,0x2c,0x40,0xed,0x7b,0x00,0x7a,0x00,0x79,0x9e,0x7f,
+    0xf7,0x12,0x12,0x73,0x7a,0x00,0x09,0x7f,0xf8,0x12,0x12,0x73,0x7a,0x00,0x09,0x7f,
+    0xf9,0x12,0x12,0x73,0x7d,0x0f,0x7c,0x00,0x7f,0x07,0x12,0x12,0x8c,0xe4,0xf5,0x27,
+    0xe5,0x27,0x24,0x40,0xff,0x74,0x60,0x25,0x27,0xf8,0xe6,0xfd,0x7c,0x00,0x12,0x12,
+    0x8c,0x05,0x27,0xe5,0x27,0xc3,0x94,0x10,0x40,0xe6,0x78,0x70,0xe6,0xfd,0x7c,0x00,
+    0x7f,0x51,0x12,0x12,0x8c,0x08,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0xe4,0xf5,0x27,0xe5,
+    0x27,0x24,0xbe,0xff,0x74,0x72,0x25,0x27,0xf8,0xe6,0xfd,0x7c,0x00,0x12,0x12,0x8c,
+    0x05,0x27,0xe5,0x27,0xc3,0x94,0x2c,0x40,0xe6,0x78,0x9e,0xe6,0xfd,0x7c,0x00,0x7f,
+    0xf7,0x12,0x12,0x8c,0x08,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x08,0xe6,0xfd,0x0f,0x12,
+    0x12,0x8c,0xe4,0xf5,0x27,0x78,0x58,0xe6,0xfe,0x08,0xe6,0xff,0x85,0x2e,0x82,0x85,
+    0x2d,0x83,0x75,0xf0,0x02,0xe5,0x27,0x12,0x11,0x0b,0xee,0xf0,0xa3,0xef,0xf0,0x05,
+    0x27,0xe5,0x27,0xb4,0x10,0xdf,0x78,0x3c,0x76,0x01,0xe4,0x78,0x38,0xf6,0xf5,0x28,
+    0x78,0x4a,0xf6,0x78,0x34,0xf6,0x78,0x37,0xf6,0x18,0xf6,0x78,0x4b,0xf6,0xfb,0x7a,
+    0x00,0x79,0x49,0x7f,0x0a,0x12,0x12,0x73,0x75,0x88,0x05,0x75,0xe8,0x1e,0x75,0xa8,
+    0x86,0x78,0x49,0xe6,0x64,0x07,0x60,0x03,0x02,0x02,0xae,0xf6,0xfb,0x7a,0x00,0x79,
+    0x39,0x7f,0x0c,0x12,0x12,0x73,0x7d,0x05,0x7c,0x00,0x7f,0xa4,0x12,0x12,0x8c,0x7d,
+    0x01,0x12,0x00,0x1f,0x78,0x39,0xe6,0xb4,0x0f,0x00,0x40,0x03,0x02,0x02,0x9e,0x90,
+    0x02,0x16,0xf8,0x28,0x28,0x73,0x02,0x02,0x43,0x02,0x02,0x47,0x02,0x02,0x4d,0x02,
+    0x02,0x53,0x02,0x02,0x59,0x02,0x02,0x5f,0x02,0x02,0x65,0x02,0x02,0x6b,0x02,0x02,
+    0x71,0x02,0x02,0x77,0x02,0x02,0x80,0x02,0x02,0x86,0x02,0x02,0x8c,0x02,0x02,0x92,
+    0x02,0x02,0x98,0x7f,0x7d,0x80,0x02,0x7f,0xfa,0x7e,0x00,0x80,0x2e,0x7f,0xf4,0x7e,
+    0x01,0x80,0x28,0x7f,0xe8,0x7e,0x03,0x80,0x22,0x7f,0xd0,0x7e,0x07,0x80,0x1c,0x7f,
+    0xa0,0x7e,0x0f,0x80,0x16,0x7f,0x40,0x7e,0x1f,0x80,0x10,0x7f,0x80,0x7e,0x3e,0x80,
+    0x0a,0x7f,0x00,0x7e,0x7d,0x80,0x04,0x7f,0x00,0x7e,0xfa,0x12,0x00,0x28,0x80,0x25,
+    0x7f,0x80,0x7e,0x00,0x80,0x1c,0x7f,0x00,0x7e,0x01,0x80,0x16,0x7f,0x00,0x7e,0x02,
+    0x80,0x10,0x7f,0x00,0x7e,0x04,0x80,0x0a,0x7f,0x00,0x7e,0x08,0x80,0x04,0x7f,0x00,
+    0x7e,0x02,0x12,0x12,0x4a,0x7d,0x04,0x7c,0x00,0x7f,0xa4,0x02,0x07,0x7c,0x78,0x49,
+    0xe6,0x64,0x09,0x70,0x52,0xf6,0xfb,0x7a,0x00,0x79,0x29,0x7f,0x0b,0x12,0x12,0x73,
+    0xe4,0xf5,0x27,0xe5,0x27,0xc3,0x95,0x29,0x50,0x0e,0xe5,0x27,0x24,0x0c,0xff,0x74,
+    0x50,0x12,0x12,0x6d,0x05,0x27,0x80,0xeb,0xe4,0xf5,0x27,0x78,0x58,0xe6,0xfe,0x08,
+    0xe6,0xff,0x85,0x2e,0x82,0x85,0x2d,0x83,0x75,0xf0,0x02,0xe5,0x27,0x12,0x11,0x0b,
+    0xee,0xf0,0xa3,0xef,0xf0,0x05,0x27,0xe5,0x27,0xb4,0x10,0xdf,0xe4,0xf5,0xff,0x7d,
+    0x0f,0xfc,0x7f,0x07,0x02,0x07,0x7c,0x78,0x49,0xe6,0x64,0x0a,0x60,0x03,0x02,0x03,
+    0xee,0xf6,0xfb,0x7a,0x00,0x79,0x29,0x7f,0xe4,0x12,0x12,0x73,0x53,0x29,0xc0,0x78,
+    0x34,0xe6,0xb4,0x10,0x00,0x40,0x03,0x02,0x03,0xc7,0x90,0x03,0x31,0xf8,0x28,0x28,
+    0x73,0x02,0x03,0x61,0x02,0x03,0x67,0x02,0x03,0x6d,0x02,0x03,0x73,0x02,0x03,0x79,
+    0x02,0x03,0x7f,0x02,0x03,0x85,0x02,0x03,0x8b,0x02,0x03,0x91,0x02,0x03,0x97,0x02,
+    0x03,0x9d,0x02,0x03,0xa3,0x02,0x03,0xa9,0x02,0x03,0xaf,0x02,0x03,0xb5,0x02,0x03,
+    0xbb,0xe5,0x29,0x44,0x01,0x80,0x58,0xe5,0x29,0x44,0x02,0x80,0x52,0xe5,0x29,0x44,
+    0x04,0x80,0x4c,0xe5,0x29,0x44,0x08,0x80,0x46,0xe5,0x29,0x44,0x11,0x80,0x40,0xe5,
+    0x29,0x44,0x12,0x80,0x3a,0xe5,0x29,0x44,0x14,0x80,0x34,0xe5,0x29,0x44,0x18,0x80,
+    0x2e,0xe5,0x29,0x44,0x21,0x80,0x28,0xe5,0x29,0x44,0x22,0x80,0x22,0xe5,0x29,0x44,
+    0x24,0x80,0x1c,0xe5,0x29,0x44,0x28,0x80,0x16,0xe5,0x29,0x44,0x31,0x80,0x10,0xe5,
+    0x29,0x44,0x32,0x80,0x0a,0xe5,0x29,0x44,0x34,0x80,0x04,0xe5,0x29,0x44,0x38,0xfd,
+    0x7c,0x00,0x7f,0xe4,0x12,0x12,0x8c,0x78,0x34,0x06,0x7d,0x01,0x7c,0x00,0x7f,0xbd,
+    0x12,0x12,0x8c,0x7f,0x50,0x12,0x12,0x8c,0x7d,0x10,0x7f,0x45,0x12,0x12,0x8c,0xe4,
+    0xfd,0x0f,0x12,0x00,0x21,0x7d,0x07,0x7c,0x00,0x7f,0x50,0x02,0x07,0x7c,0x78,0x49,
+    0xe6,0xfb,0x64,0x0b,0x70,0x27,0xf6,0x78,0x36,0x76,0x01,0x7d,0x01,0xfc,0x7f,0xbd,
+    0x12,0x12,0x8c,0x7f,0x50,0x12,0x12,0x8c,0x7d,0x40,0x7f,0x45,0x12,0x12,0x8c,0xfd,
+    0x0f,0x12,0x00,0x21,0x7d,0xc7,0x7c,0x00,0x7f,0x50,0x02,0x07,0x7c,0xeb,0x64,0x0c,
+    0x60,0x0a,0x78,0x49,0xe6,0x64,0x08,0x60,0x03,0x02,0x07,0x4f,0xe4,0xf5,0x27,0xe5,
+    0x27,0x24,0xc2,0xff,0xe4,0xfd,0xfc,0x12,0x12,0x8c,0x05,0x27,0xe5,0x27,0xc3,0x94,
+    0x12,0x40,0xec,0xe4,0xfd,0xfc,0x7f,0xd9,0x12,0x12,0x8c,0x7d,0xc0,0x0f,0x12,0x12,
+    0x8c,0x78,0x49,0xe6,0xb4,0x0c,0x16,0x7b,0x00,0x7a,0x00,0x79,0x28,0x7f,0x0c,0x12,
+    0x12,0x73,0x7a,0x00,0x79,0x39,0x7f,0x0d,0x12,0x12,0x73,0x80,0x1b,0xe5,0x28,0xb4,
+    0x09,0x16,0xe4,0xf5,0x28,0x78,0x35,0x06,0xe6,0xfd,0x7c,0x00,0x7f,0xc0,0x12,0x12,
+    0x8c,0xe6,0xfd,0x7f,0x10,0x12,0x12,0x8c,0x7d,0xf0,0x7c,0x00,0x7f,0xd8,0x12,0x12,
+    0x8c,0x7d,0x01,0x12,0x00,0x1a,0x7d,0x11,0x7c,0x00,0x7f,0x50,0x12,0x12,0x8c,0xe5,
+    0x28,0xb4,0x09,0x00,0x40,0x03,0x02,0x05,0x3d,0x90,0x04,0xb0,0xf8,0x28,0x28,0x73,
+    0x02,0x04,0xcb,0x02,0x04,0xd4,0x02,0x04,0xdd,0x02,0x04,0xea,0x02,0x04,0xf7,0x02,
+    0x05,0x04,0x02,0x05,0x11,0x02,0x05,0x1e,0x02,0x05,0x2d,0x7f,0xc2,0x12,0x12,0x84,
+    0x7d,0x01,0x80,0x55,0x7f,0xc4,0x12,0x12,0x84,0x7d,0x02,0x80,0x4c,0x7d,0xff,0x7c,
+    0x00,0x7f,0xc6,0x12,0x12,0x88,0x7d,0x04,0x80,0x3f,0x7d,0xff,0x7c,0x00,0x7f,0xc8,
+    0x12,0x12,0x88,0x7d,0x08,0x80,0x32,0x7d,0xff,0x7c,0x00,0x7f,0xca,0x12,0x12,0x88,
+    0x7d,0x10,0x80,0x25,0x7d,0xff,0x7c,0x00,0x7f,0xcc,0x12,0x12,0x88,0x7d,0x20,0x80,
+    0x18,0x7d,0xff,0x7c,0x00,0x7f,0xce,0x12,0x12,0x88,0x7d,0x40,0x80,0x0b,0x7d,0xff,
+    0x7c,0x00,0x7f,0xd0,0x12,0x12,0x88,0x7d,0x80,0x7f,0xd9,0x80,0x0d,0x7d,0xff,0x7c,
+    0x00,0x7f,0xd2,0x12,0x12,0x88,0x7d,0xc1,0x7f,0xda,0x12,0x12,0x8c,0x78,0x39,0xe6,
+    0xb4,0x0f,0x00,0x40,0x03,0x02,0x05,0xd7,0x90,0x05,0x4f,0xf8,0x28,0x28,0x73,0x02,
+    0x05,0x7c,0x02,0x05,0x80,0x02,0x05,0x86,0x02,0x05,0x8c,0x02,0x05,0x92,0x02,0x05,
+    0x98,0x02,0x05,0x9e,0x02,0x05,0xa4,0x02,0x05,0xaa,0x02,0x05,0xb0,0x02,0x05,0xb9,
+    0x02,0x05,0xbf,0x02,0x05,0xc5,0x02,0x05,0xcb,0x02,0x05,0xd1,0x7f,0x7d,0x80,0x02,
+    0x7f,0xfa,0x7e,0x00,0x80,0x2e,0x7f,0xf4,0x7e,0x01,0x80,0x28,0x7f,0xe8,0x7e,0x03,
+    0x80,0x22,0x7f,0xd0,0x7e,0x07,0x80,0x1c,0x7f,0xa0,0x7e,0x0f,0x80,0x16,0x7f,0x40,
+    0x7e,0x1f,0x80,0x10,0x7f,0x80,0x7e,0x3e,0x80,0x0a,0x7f,0x00,0x7e,0x7d,0x80,0x04,
+    0x7f,0x00,0x7e,0xfa,0x12,0x00,0x28,0x80,0x25,0x7f,0x80,0x7e,0x00,0x80,0x1c,0x7f,
+    0x00,0x7e,0x01,0x80,0x16,0x7f,0x00,0x7e,0x02,0x80,0x10,0x7f,0x00,0x7e,0x04,0x80,
+    0x0a,0x7f,0x00,0x7e,0x08,0x80,0x04,0x7f,0x00,0x7e,0x02,0x12,0x12,0x4a,0xe5,0x28,
+    0xb4,0x0a,0x00,0x50,0x76,0x90,0x05,0xec,0xf8,0x28,0x28,0x73,0x02,0x06,0x0a,0x02,
+    0x06,0x11,0x02,0x06,0x18,0x02,0x06,0x1f,0x02,0x06,0x26,0x02,0x06,0x2d,0x02,0x06,
+    0x34,0x02,0x06,0x3b,0x02,0x06,0x42,0x02,0x06,0x4e,0xe4,0xfd,0xfc,0x7f,0xc2,0x80,
+    0x36,0xe4,0xfd,0xfc,0x7f,0xc4,0x80,0x2f,0xe4,0xfd,0xfc,0x7f,0xc6,0x80,0x28,0xe4,
+    0xfd,0xfc,0x7f,0xc8,0x80,0x21,0xe4,0xfd,0xfc,0x7f,0xca,0x80,0x1a,0xe4,0xfd,0xfc,
+    0x7f,0xcc,0x80,0x13,0xe4,0xfd,0xfc,0x7f,0xce,0x80,0x0c,0xe4,0xfd,0xfc,0x7f,0xd0,
+    0x80,0x05,0xe4,0xfd,0xfc,0x7f,0xd2,0x12,0x12,0x88,0x7f,0xd9,0x80,0x0a,0xe4,0xfd,
+    0xfc,0x7f,0xd4,0x12,0x12,0x88,0x7f,0xda,0x12,0x12,0x8c,0xe4,0xfd,0xfc,0x7f,0x50,
+    0x12,0x12,0x8c,0x78,0x49,0xe6,0x64,0x08,0x70,0x5b,0xf5,0x27,0xe5,0x27,0xc3,0x94,
+    0x08,0x50,0x46,0xe5,0x27,0xc3,0x94,0x04,0xe5,0x27,0x50,0x12,0x24,0x8c,0xff,0x7b,
+    0x00,0x7a,0x00,0x79,0x2a,0x12,0x12,0x73,0xe5,0x27,0x24,0x8d,0x80,0x10,0x24,0x90,
+    0xff,0x7b,0x00,0x7a,0x00,0x79,0x2a,0x12,0x12,0x73,0xe5,0x27,0x24,0x91,0xff,0x7a,
+    0x00,0x09,0x12,0x12,0x73,0xe5,0x2a,0xd3,0x94,0x01,0x50,0x04,0xe5,0x2b,0x60,0x03,
+    0x78,0x33,0x06,0x05,0x27,0x05,0x27,0x80,0xb3,0x05,0x28,0xe5,0x28,0xfd,0x7c,0x00,
+    0x7f,0x0f,0x12,0x12,0x8c,0x78,0x49,0xe6,0xff,0x64,0x0c,0x60,0x1a,0xef,0x64,0x08,
+    0x60,0x03,0x02,0x01,0xe1,0x78,0x35,0xe6,0x64,0x40,0x60,0x0b,0x78,0x33,0xe6,0xd3,
+    0x94,0x1e,0x50,0x03,0x02,0x01,0xe1,0xe4,0xf5,0x28,0x78,0x33,0xf6,0x78,0x49,0xe6,
+    0xb4,0x08,0x1b,0x78,0x35,0xe6,0xff,0xc3,0x94,0x3c,0x50,0x09,0xef,0x24,0x04,0xfd,
+    0xe4,0x33,0xfc,0x80,0x04,0x7d,0x3f,0x7c,0x00,0x7f,0xc0,0x12,0x12,0x8c,0xe4,0x78,
+    0x49,0xf6,0xf5,0x27,0xe5,0x27,0x24,0xc2,0xff,0x7d,0xff,0x7c,0x00,0x12,0x12,0x8c,
+    0x05,0x27,0xe5,0x27,0xc3,0x94,0x12,0x40,0xeb,0x7d,0xff,0x7c,0x00,0x7f,0xd9,0x12,
+    0x12,0x8c,0x7d,0xc1,0x0f,0x12,0x12,0x8c,0x7d,0x01,0x7f,0xd8,0x12,0x12,0x8c,0x7d,
+    0x07,0x7f,0xbd,0x12,0x12,0x8c,0x75,0xff,0x03,0xe4,0xf5,0xff,0x02,0x01,0xe1,0x78,
+    0x49,0xe6,0x64,0x0d,0x70,0x2c,0x78,0x3c,0xe6,0x64,0x01,0x70,0x25,0xf6,0x7d,0x01,
+    0xfc,0x7f,0xbd,0x12,0x12,0x8c,0x7f,0x50,0x12,0x12,0x8c,0x1d,0x7f,0x45,0x12,0x12,
+    0x8c,0x0d,0x0f,0x12,0x00,0x21,0x7d,0x0b,0x7c,0x00,0x7f,0x50,0x12,0x12,0x8c,0x02,
+    0x01,0xe1,0x78,0x49,0xe6,0xfb,0x64,0x0e,0x70,0x17,0x78,0x3a,0xf6,0x78,0x49,0x12,
+    0x00,0x16,0x7d,0x07,0x7c,0x00,0x7f,0x50,0x12,0x12,0x8c,0x75,0x87,0x01,0x02,0x01,
+    0xe1,0xeb,0x64,0x0f,0x60,0x03,0x02,0x01,0xe1,0x78,0x3c,0xe6,0x64,0x01,0x60,0x03,
+    0x02,0x01,0xe1,0x78,0x3a,0xf6,0x78,0x3c,0x12,0x00,0x16,0x7d,0x07,0x7c,0x00,0x7f,
+    0x50,0x12,0x12,0x8c,0x75,0x87,0x01,0x02,0x01,0xe1,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,
+    0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,
+    0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,
+    0x75,0x0d,0x00,0x75,0x0c,0x00,0x75,0x0b,0x00,0x75,0x0a,0x00,0xc0,0x94,0xc0,0x93,
+    0x53,0x91,0x7f,0x78,0x36,0xe6,0x60,0x03,0x02,0x0c,0x72,0x85,0xbc,0x08,0x85,0xbd,
+    0x09,0xe5,0x09,0xae,0x08,0x78,0x02,0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x24,0x00,
+    0xff,0xee,0x34,0x08,0xf5,0x18,0x8f,0x19,0x8f,0x82,0xf5,0x83,0xe5,0x82,0x24,0xfc,
+    0xf5,0x82,0xe5,0x83,0x34,0xff,0xf5,0x83,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,0xfe,
+    0xa3,0xe0,0xff,0xe5,0x19,0x24,0x04,0xf5,0x82,0xe4,0x35,0x18,0xf5,0x83,0xe0,0xf8,
+    0xa3,0xe0,0xf9,0xa3,0xe0,0xfa,0xa3,0xe0,0xfb,0xc3,0x12,0x10,0xd4,0xe5,0x19,0x40,
+    0x3f,0x24,0xfc,0xf5,0x82,0xe5,0x18,0x34,0xff,0xf5,0x83,0xe0,0xf8,0xa3,0xe0,0xf9,
+    0xa3,0xe0,0xfa,0xa3,0xe0,0xfb,0xe5,0x19,0x24,0x04,0xf5,0x82,0xe4,0x35,0x18,0xf5,
+    0x83,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xc3,0x9b,0xf5,0x1d,0xee,
+    0x9a,0xf5,0x1c,0xed,0x99,0xf5,0x1b,0xec,0x98,0xf5,0x1a,0x75,0x26,0x00,0x80,0x3d,
+    0x24,0x04,0xf5,0x82,0xe4,0x35,0x18,0xf5,0x83,0xe0,0xf8,0xa3,0xe0,0xf9,0xa3,0xe0,
+    0xfa,0xa3,0xe0,0xfb,0xe5,0x19,0x24,0xfc,0xf5,0x82,0xe5,0x18,0x34,0xff,0xf5,0x83,
+    0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xc3,0x9b,0xf5,0x1d,0xee,0x9a,
+    0xf5,0x1c,0xed,0x99,0xf5,0x1b,0xec,0x98,0xf5,0x1a,0x75,0x26,0x01,0xe5,0x19,0x24,
+    0xfc,0xf5,0x82,0xe5,0x18,0x34,0xff,0xf5,0x83,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,
+    0xfe,0xa3,0xe0,0xff,0xe5,0x19,0x24,0x04,0xf5,0x82,0xe4,0x35,0x18,0xf5,0x83,0xe0,
+    0xf8,0xa3,0xe0,0xf9,0xa3,0xe0,0xfa,0xa3,0xe0,0x2f,0xff,0xea,0x3e,0xfe,0xe9,0x3d,
+    0xfd,0xe8,0x3c,0xfc,0x78,0x01,0x12,0x10,0xf8,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,
+    0x07,0x85,0x19,0x82,0x85,0x18,0x83,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,0xfe,0xa3,
+    0xe0,0xff,0x78,0x02,0x12,0x10,0xf8,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xc3,
+    0xef,0x9b,0xf5,0x21,0xee,0x9a,0xf5,0x20,0xed,0x99,0xf5,0x1f,0xec,0x98,0xf5,0x1e,
+    0xaf,0x1d,0xae,0x1c,0xad,0x1b,0xac,0x1a,0x78,0x07,0x12,0x10,0xf8,0x8f,0x1d,0x8e,
+    0x1c,0x8d,0x1b,0x8c,0x1a,0x85,0x1a,0xf1,0x85,0x1b,0xf2,0x85,0x1c,0xf3,0x85,0x1d,
+    0xf4,0x85,0x1f,0xf5,0x85,0x20,0xf6,0x85,0x21,0xf7,0x00,0x00,0x00,0x85,0xf9,0x22,
+    0x85,0xfa,0x23,0x85,0xfb,0x24,0x85,0xfc,0x25,0xad,0x25,0xac,0x24,0xe5,0x26,0x60,
+    0x17,0xe5,0x09,0xae,0x08,0x78,0x07,0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0xc3,0x9d,
+    0xf5,0x11,0xee,0x9c,0xf5,0x10,0x80,0x14,0xe5,0x09,0xae,0x08,0x78,0x07,0xc3,0x33,
+    0xce,0x33,0xce,0xd8,0xf9,0x2d,0xf5,0x11,0xee,0x3c,0xf5,0x10,0x75,0x12,0x00,0x78,
+    0x5b,0xe6,0xf5,0x13,0x85,0x10,0xe1,0x85,0x11,0xe2,0x85,0x12,0xe3,0x85,0x13,0xe4,
+    0x85,0xe9,0x14,0x85,0xea,0x15,0x85,0xeb,0x16,0x85,0xec,0x17,0xaf,0x17,0xae,0x16,
+    0xad,0x15,0xac,0x14,0x78,0x07,0x12,0x10,0xe5,0x8e,0x0e,0x8f,0x0f,0x78,0x5a,0xe6,
+    0xff,0x70,0x04,0x78,0x3b,0x76,0x01,0xef,0x60,0x05,0x78,0x3b,0xe6,0x60,0x05,0x78,
+    0x5a,0xe6,0x70,0x50,0xaf,0xbb,0xef,0xfd,0x7c,0x00,0x7f,0x0c,0x12,0x12,0x8c,0xaf,
+    0xb1,0xef,0xfd,0x7f,0x0f,0x12,0x12,0x8c,0xaa,0x18,0xa9,0x19,0x7b,0x01,0x90,0x00,
+    0x03,0x12,0x10,0x95,0xfd,0x7f,0x28,0x12,0x12,0x8c,0xaa,0x18,0xa9,0x19,0x90,0x00,
+    0x02,0x12,0x10,0x95,0xfd,0x0f,0x12,0x12,0x8c,0xaa,0x18,0xa9,0x19,0x90,0x00,0x01,
+    0x12,0x10,0x95,0xfd,0x0f,0x12,0x12,0x8c,0x85,0x19,0x82,0x85,0x18,0x83,0xe0,0xfd,
+    0x0f,0x12,0x12,0x8c,0x78,0x3b,0xe6,0x70,0x03,0x02,0x0c,0x2d,0x78,0x5a,0xe6,0x70,
+    0x03,0x02,0x0b,0x85,0x78,0x3d,0xe6,0xfe,0x08,0xe6,0xff,0xd3,0x95,0x09,0xee,0x95,
+    0x08,0x40,0x0b,0xef,0x95,0x09,0xf6,0xee,0x95,0x08,0x18,0xf6,0x80,0x07,0x78,0x3d,
+    0x76,0x00,0x08,0x76,0x00,0x78,0x3f,0xe6,0xfe,0x08,0xe6,0xff,0xd3,0x95,0x09,0xee,
+    0x95,0x08,0x40,0x0b,0xef,0x95,0x09,0xf6,0xee,0x95,0x08,0x18,0xf6,0x80,0x07,0x78,
+    0x3f,0x76,0x00,0x08,0x76,0x00,0x78,0x41,0xe6,0xfe,0x08,0xe6,0xff,0xd3,0x95,0x09,
+    0xee,0x95,0x08,0x40,0x0b,0xef,0x95,0x09,0xf6,0xee,0x95,0x08,0x18,0xf6,0x80,0x07,
+    0x78,0x41,0x76,0x00,0x08,0x76,0x00,0x78,0x43,0xe6,0xfe,0x08,0xe6,0xff,0xd3,0x95,
+    0x09,0xee,0x95,0x08,0x40,0x0b,0xef,0x95,0x09,0xf6,0xee,0x95,0x08,0x18,0xf6,0x80,
+    0x07,0x78,0x43,0x76,0x00,0x08,0x76,0x00,0x78,0x45,0xe6,0xfe,0x08,0xe6,0xff,0xd3,
+    0x95,0x09,0xee,0x95,0x08,0x40,0x0b,0xef,0x95,0x09,0xf6,0xee,0x95,0x08,0x18,0xf6,
+    0x80,0x07,0x78,0x45,0x76,0x00,0x08,0x76,0x00,0x78,0x47,0xe6,0xfe,0x08,0xe6,0xff,
+    0xd3,0x95,0x0f,0xee,0x95,0x0e,0x40,0x0b,0xef,0x95,0x0f,0xf6,0xee,0x95,0x0e,0x18,
+    0xf6,0x80,0x07,0x78,0x47,0x76,0x00,0x08,0x76,0x00,0x78,0x3e,0xe6,0xfd,0x7c,0x00,
+    0x7f,0x0d,0x12,0x12,0x8c,0x18,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x78,0x40,0xe6,0xfd,
+    0x7f,0x10,0x12,0x12,0x8c,0x18,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x78,0x42,0xe6,0xfd,
+    0x0f,0x12,0x12,0x8c,0x18,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x78,0x44,0xe6,0xfd,0x0f,
+    0x12,0x12,0x8c,0x18,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x78,0x46,0xe6,0xfd,0x0f,0x12,
+    0x12,0x8c,0x18,0xe6,0xfd,0x0f,0x12,0x12,0x8c,0x78,0x48,0xe6,0xfd,0x0f,0x12,0x12,
+    0x8c,0x18,0xe6,0x80,0x77,0xaf,0xbb,0xef,0xfd,0x7c,0x00,0x7f,0x0c,0x12,0x12,0x8c,
+    0xaf,0xbd,0xef,0xfd,0x7f,0x0d,0x12,0x12,0x8c,0xaf,0xbc,0xef,0xfd,0x7f,0x0e,0x12,
+    0x12,0x8c,0xaf,0xb1,0xef,0xfd,0x7f,0x0f,0x12,0x12,0x8c,0xaf,0xb3,0xef,0xfd,0x7f,
+    0x10,0x12,0x12,0x8c,0xaf,0xb2,0xef,0xfd,0x7f,0x11,0x12,0x12,0x8c,0xaf,0xb5,0xef,
+    0xfd,0x7f,0x12,0x12,0x12,0x8c,0xaf,0xb4,0xef,0xfd,0x7f,0x13,0x12,0x12,0x8c,0xaf,
+    0xb7,0xef,0xfd,0x7f,0x14,0x12,0x12,0x8c,0xaf,0xb6,0xef,0xfd,0x7f,0x15,0x12,0x12,
+    0x8c,0xaf,0xba,0xef,0xfd,0x7f,0x16,0x12,0x12,0x8c,0xaf,0xb9,0xef,0xfd,0x7f,0x17,
+    0x12,0x12,0x8c,0xe5,0x0f,0xfd,0x0f,0x12,0x12,0x8c,0xe5,0x0e,0xfd,0x0f,0x12,0x12,
+    0x8c,0x78,0x49,0xe6,0xb4,0x0f,0x14,0x78,0x3c,0x76,0x01,0x75,0xff,0x03,0x75,0xff,
+    0x01,0x78,0x38,0xe6,0x70,0x03,0x02,0x0c,0xdb,0x80,0x03,0x75,0xff,0x03,0x75,0xff,
+    0x00,0x7d,0x0e,0x7c,0x00,0x7f,0x07,0x12,0x12,0x8c,0x02,0x0c,0xdb,0x78,0x3d,0xa6,
+    0x08,0x08,0xa6,0x09,0x78,0x47,0xa6,0x0e,0x08,0xa6,0x0f,0x78,0x3f,0xa6,0xb2,0x08,
+    0xa6,0xb3,0x08,0xa6,0xb4,0x08,0xa6,0xb5,0x08,0xa6,0xb6,0x08,0xa6,0xb7,0x08,0xa6,
+    0xb9,0x08,0xa6,0xba,0x78,0x3b,0x76,0x01,0x75,0xa6,0x00,0x75,0xa7,0x7f,0x75,0xa2,
+    0x34,0x75,0xa3,0x00,0x75,0xa4,0x08,0x75,0xa5,0x00,0x75,0xa1,0x03,0x75,0xa1,0x02,
+    0x80,0x69,0x78,0x4b,0xe6,0xff,0xc3,0x94,0x08,0x50,0x31,0xef,0x25,0xe0,0x24,0x0c,
+    0xff,0xae,0xbd,0xee,0xfd,0x7c,0x00,0x12,0x12,0x8c,0xe6,0x25,0xe0,0x24,0x0d,0xff,
+    0xae,0xbc,0xee,0xfd,0x12,0x12,0x8c,0x06,0xe6,0x25,0xe0,0x25,0xe0,0x24,0x10,0xf5,
+    0xa2,0x75,0xa3,0x00,0x75,0xa1,0x01,0x75,0xa1,0x00,0x80,0x2f,0x78,0x4b,0xe6,0x25,
+    0xe0,0x24,0x0c,0xff,0xae,0xbd,0xee,0xfd,0x7c,0x00,0x12,0x12,0x8c,0xe6,0x25,0xe0,
+    0x24,0x0d,0xff,0xae,0xbc,0xee,0xfd,0x12,0x12,0x8c,0x78,0x36,0x76,0x00,0x7d,0x0a,
+    0x7f,0x07,0x12,0x12,0x8c,0x75,0xff,0x03,0x75,0xff,0x00,0xd0,0x93,0xd0,0x94,0xd0,
+    0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,
+    0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,
     0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,
     0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,
-    0xc0,0x05,0xc0,0x06,0xc0,0x07,0x75,0x0d,0x00,0x75,0x0c,0x00,0x75,0x0b,0x00,0x75,
-    0x0a,0x00,0xc0,0x94,0xc0,0x93,0x53,0x91,0x7f,0x78,0x2d,0xe6,0x60,0x03,0x02,0x07,
-    0x78,0x85,0xbc,0x08,0x85,0xbd,0x09,0xaf,0xbb,0xef,0xfd,0x7c,0x00,0x7f,0x0c,0x12,
-    0x0c,0x5e,0xaf,0xbd,0xef,0xfd,0x7f,0x0d,0x12,0x0c,0x5e,0xaf,0xbc,0xef,0xfd,0x7f,
-    0x0e,0x12,0x0c,0x5e,0xe5,0x09,0xae,0x08,0x78,0x02,0xc3,0x33,0xce,0x33,0xce,0xd8,
-    0xf9,0x24,0x00,0xff,0xee,0x34,0x04,0xf5,0x18,0x8f,0x19,0xfa,0xa9,0x07,0x7b,0x01,
-    0x90,0x00,0x03,0x12,0x0a,0xf3,0xfd,0x7c,0x00,0x7f,0x28,0x12,0x0c,0x5e,0xaa,0x18,
-    0xa9,0x19,0x90,0x00,0x02,0x12,0x0a,0xf3,0xfd,0x0f,0x12,0x0c,0x5e,0xaa,0x18,0xa9,
-    0x19,0x90,0x00,0x01,0x12,0x0a,0xf3,0xfd,0x0f,0x12,0x0c,0x5e,0x85,0x19,0x82,0x85,
-    0x18,0x83,0xe0,0xfd,0x0f,0x12,0x0c,0x5e,0xe5,0x19,0x24,0xfc,0xf5,0x82,0xe5,0x18,
-    0x34,0xff,0xf5,0x83,0xa3,0xa3,0xe0,0xfe,0xa3,0xe0,0xfb,0xaa,0x06,0xe5,0x19,0x24,
-    0x04,0xf5,0x82,0xe4,0x35,0x18,0xf5,0x83,0xa3,0xa3,0xe0,0xfe,0xa3,0xe0,0xc3,0x9b,
-    0xff,0xee,0x9a,0xfe,0x12,0x0c,0x66,0xee,0x33,0x95,0xe0,0x8f,0x1d,0x8e,0x1c,0xf5,
-    0x1b,0xf5,0x1a,0xe5,0x19,0x24,0xfc,0xf5,0x82,0xe5,0x18,0x34,0xff,0xf5,0x83,0xe0,
-    0xfc,0xa3,0xe0,0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xff,0xe5,0x19,0x24,0x04,0xf5,0x82,
-    0xe4,0x35,0x18,0xf5,0x83,0xe0,0xf8,0xa3,0xe0,0xf9,0xa3,0xe0,0xfa,0xa3,0xe0,0x2f,
-    0xff,0xea,0x3e,0xfe,0xe9,0x3d,0xfd,0xe8,0x3c,0xfc,0x78,0x01,0x12,0x0b,0x45,0xc0,
-    0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0x85,0x19,0x82,0x85,0x18,0x83,0xe0,0xfc,0xa3,
-    0xe0,0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xff,0x78,0x02,0x12,0x0b,0x45,0xd0,0x03,0xd0,
-    0x02,0xd0,0x01,0xd0,0x00,0xc3,0xef,0x9b,0xf5,0x21,0xee,0x9a,0xf5,0x20,0xed,0x99,
-    0xf5,0x1f,0xec,0x98,0xf5,0x1e,0xaf,0x1d,0xae,0x1c,0xad,0x1b,0xac,0x1a,0x78,0x07,
-    0x12,0x0b,0x45,0x8f,0x1d,0x8e,0x1c,0x8d,0x1b,0x8c,0x1a,0x85,0x1a,0xf1,0x85,0x1b,
-    0xf2,0x85,0x1c,0xf3,0x85,0x1d,0xf4,0x85,0x1f,0xf5,0x85,0x20,0xf6,0x85,0x21,0xf7,
-    0x00,0x00,0x00,0x85,0xf9,0x22,0x85,0xfa,0x23,0x85,0xfb,0x24,0x85,0xfc,0x25,0xad,
-    0x25,0xac,0x24,0xe5,0x09,0xae,0x08,0x78,0x07,0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,
-    0x2d,0xf5,0x11,0xee,0x3c,0xf5,0x10,0x75,0x12,0x00,0x75,0x13,0x0f,0xf5,0xe1,0x85,
-    0x11,0xe2,0x85,0x12,0xe3,0x85,0x13,0xe4,0x85,0xe9,0x14,0x85,0xea,0x15,0x85,0xeb,
-    0x16,0x85,0xec,0x17,0xaf,0x17,0xae,0x16,0xad,0x15,0xac,0x14,0x78,0x07,0x12,0x0b,
-    0x32,0x8e,0x0e,0x8f,0x0f,0xaf,0xb1,0xef,0xfd,0x7c,0x00,0x7f,0x0f,0x12,0x0c,0x5e,
-    0xaf,0xb3,0xef,0xfd,0x7f,0x10,0x12,0x0c,0x5e,0xaf,0xb2,0xef,0xfd,0x7f,0x11,0x12,
-    0x0c,0x5e,0xaf,0xb5,0xef,0xfd,0x7f,0x12,0x12,0x0c,0x5e,0xaf,0xb4,0xef,0xfd,0x7f,
-    0x13,0x12,0x0c,0x5e,0xaf,0xb7,0xef,0xfd,0x7f,0x14,0x12,0x0c,0x5e,0xaf,0xb6,0xef,
-    0xfd,0x7f,0x15,0x12,0x0c,0x5e,0xaf,0xba,0xef,0xfd,0x7f,0x16,0x12,0x0c,0x5e,0xaf,
-    0xb9,0xef,0xfd,0x7f,0x17,0x12,0x0c,0x5e,0xe5,0x0f,0xfd,0x0f,0x12,0x0c,0x5e,0xe5,
-    0x0e,0xfd,0x0f,0x12,0x0c,0x5e,0x78,0x31,0xe6,0xb4,0x0f,0x0b,0x18,0x76,0x01,0x75,
-    0xff,0x03,0x75,0xff,0x01,0x80,0x7a,0x75,0xff,0x03,0x75,0xff,0x00,0x7d,0x0e,0x7c,
-    0x00,0x7f,0x07,0x12,0x0c,0x5e,0x80,0x69,0x78,0x33,0xe6,0xff,0xc3,0x94,0x08,0x50,
-    0x31,0xef,0x25,0xe0,0x24,0x0c,0xff,0xae,0xbd,0xee,0xfd,0x7c,0x00,0x12,0x0c,0x5e,
-    0xe6,0x25,0xe0,0x24,0x0d,0xff,0xae,0xbc,0xee,0xfd,0x12,0x0c,0x5e,0x06,0xe6,0x25,
-    0xe0,0x25,0xe0,0x24,0x10,0xf5,0xa2,0x75,0xa3,0x00,0x75,0xa1,0x01,0x75,0xa1,0x00,
-    0x80,0x2f,0x78,0x33,0xe6,0x25,0xe0,0x24,0x0c,0xff,0xae,0xbd,0xee,0xfd,0x7c,0x00,
-    0x12,0x0c,0x5e,0xe6,0x25,0xe0,0x24,0x0d,0xff,0xae,0xbc,0xee,0xfd,0x12,0x0c,0x5e,
-    0x78,0x2d,0x76,0x00,0x7d,0x0a,0x7f,0x07,0x12,0x0c,0x5e,0x75,0xff,0x03,0x75,0xff,
-    0x00,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,
-    0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,
-    0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,
-    0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,
-    0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,
-    0x53,0x91,0xdf,0x78,0x32,0xe6,0x60,0x3d,0x7b,0x00,0x7a,0x00,0x79,0x2b,0x7f,0x0c,
-    0x12,0x0c,0x45,0xe5,0xfe,0xb5,0x2b,0x12,0x76,0x00,0xe4,0xfd,0xfc,0x7f,0x0d,0x12,
-    0x0c,0x5e,0x75,0xff,0x03,0xf5,0xff,0x02,0x08,0xe4,0x78,0x2c,0xe6,0xb4,0x10,0x0f,
-    0x78,0x32,0x76,0x00,0x7d,0x01,0x7c,0x00,0x7f,0x0d,0x12,0x0c,0x5e,0x80,0x0c,0x78,
-    0x31,0x76,0x0a,0x80,0x6f,0x78,0x31,0xe6,0xb4,0x0d,0x08,0x75,0xff,0x03,0x75,0xff,
-    0x00,0x80,0x61,0x78,0x2d,0xe6,0x60,0x3b,0x75,0xa6,0x01,0x75,0xa7,0xff,0x75,0xa2,
-    0x10,0x75,0xa3,0x00,0x75,0xa4,0x00,0x75,0xa5,0x00,0x75,0xa9,0x00,0x75,0xaa,0x00,
-    0x75,0xab,0x00,0x75,0xbe,0x00,0x75,0xbf,0x00,0x75,0xc2,0x10,0x75,0xc3,0x11,0x75,
-    0xc4,0x01,0x75,0xc5,0x00,0x75,0xc6,0x00,0x75,0xc7,0x00,0x75,0xa1,0x01,0x75,0xa1,
-    0x00,0x80,0x21,0x75,0xd2,0x02,0x75,0xd3,0x00,0x75,0xd4,0x10,0x75,0xd5,0x00,0x75,
-    0xd6,0x14,0x75,0xd7,0x00,0x75,0xd9,0x00,0x75,0xda,0x00,0x75,0xd1,0x01,0x75,0xd1,
-    0x00,0x78,0x2f,0x06,0x7d,0x07,0x7c,0x00,0x7f,0xbd,0x12,0x0c,0x5e,0xe4,0xfd,0x7f,
-    0x50,0x12,0x0c,0x5e,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,
-    0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,
-    0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,
-    0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,
-    0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,
-    0x94,0xc0,0x93,0x53,0x91,0xbf,0x78,0x2f,0xe6,0xff,0xc3,0x94,0x08,0x50,0x21,0x75,
-    0xd4,0x00,0x75,0xd5,0x00,0xef,0x25,0xe0,0x25,0xe0,0x24,0x14,0xf5,0xd6,0x75,0xd7,
-    0x00,0x75,0xd9,0x00,0x75,0xda,0x00,0x75,0xd1,0x01,0x75,0xd1,0x00,0x06,0x80,0x40,
-    0x75,0xa6,0x01,0x75,0xa7,0xff,0x75,0xa2,0x00,0x75,0xa3,0x00,0x75,0xa4,0x04,0x75,
-    0xa5,0x00,0x75,0xa9,0x00,0x75,0xaa,0x04,0x75,0xab,0x00,0x78,0x2d,0xe6,0x60,0x1a,
-    0x76,0x00,0x75,0xbe,0x00,0x75,0xbf,0x00,0x75,0xc2,0x10,0x75,0xc3,0x11,0x75,0xc4,
-    0x01,0x75,0xc5,0x00,0x75,0xc6,0x00,0x75,0xc7,0x00,0x75,0xa1,0x03,0x75,0xa1,0x02,
+    0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,0x53,0x91,0xbf,0x78,0x3a,0xe6,
+    0xff,0x64,0x09,0x70,0x62,0x75,0xa6,0x01,0x75,0xa7,0xf7,0xf5,0xa3,0x75,0xa4,0x08,
+    0xf5,0xa5,0xf5,0xa9,0xf5,0xaa,0xf5,0xab,0x78,0x36,0xe6,0x60,0x1c,0x76,0x00,0x75,
+    0xbe,0x00,0x75,0xbf,0x00,0x75,0xc2,0x10,0x75,0xc3,0x11,0x75,0xc4,0x01,0x75,0xc5,
+    0x00,0x75,0xc6,0x00,0x75,0xc7,0x00,0x80,0x21,0x78,0x50,0xe6,0xf5,0xbe,0x08,0xe6,
+    0xf5,0xbf,0x08,0xe6,0xf5,0xc2,0x08,0xe6,0xf5,0xc3,0x08,0xe6,0xf5,0xc4,0x08,0xe6,
+    0xf5,0xc5,0x08,0xe6,0xf5,0xc6,0x08,0xe6,0xf5,0xc7,0x78,0x3b,0x76,0x00,0x75,0xa1,
+    0x07,0x75,0xa1,0x06,0x02,0x0e,0x97,0xe5,0xdc,0x20,0xe0,0x0c,0xe5,0xdd,0x70,0x08,
+    0xef,0x64,0x08,0x60,0x03,0x02,0x0e,0x76,0x7b,0x00,0x7a,0x00,0x79,0x32,0x7f,0x48,
+    0x12,0x12,0x73,0x7a,0x00,0x19,0x7f,0x49,0x12,0x12,0x73,0xe5,0x32,0x25,0xe0,0xff,
+    0xe5,0x31,0x33,0xf5,0x31,0x8f,0x32,0x75,0xd5,0x00,0x75,0xd6,0x0f,0x75,0xd7,0xe0,
+    0x75,0xda,0x00,0x75,0xd2,0x00,0x75,0xd3,0x10,0xe5,0xdc,0x20,0xe0,0x04,0xe5,0xdd,
+    0x60,0x20,0xe4,0x25,0x32,0xff,0xe5,0x31,0x34,0x20,0xf5,0x31,0x8f,0x32,0x7d,0x01,
+    0x7c,0x00,0x7f,0x25,0x12,0x12,0x8c,0x75,0xd4,0x20,0x75,0xd9,0x20,0x75,0xa2,0x20,
+    0x80,0x1d,0xe4,0x25,0x32,0xff,0xe5,0x31,0x34,0x04,0xf5,0x31,0x8f,0x32,0xe4,0xfd,
+    0xfc,0x7f,0x25,0x12,0x12,0x8c,0x75,0xd4,0x04,0x75,0xd9,0x04,0x75,0xa2,0x04,0x78,
+    0x3a,0x06,0x75,0x2f,0x00,0x75,0x30,0x00,0xe4,0xfd,0xed,0x75,0xf0,0x02,0xa4,0xff,
+    0xc3,0xe5,0x32,0x9f,0xff,0xe5,0x31,0x95,0xf0,0x8f,0x82,0xf5,0x83,0xe0,0xfe,0xa3,
+    0xe0,0x25,0x30,0xf5,0x30,0xee,0x35,0x2f,0xf5,0x2f,0x0d,0xbd,0x20,0xdc,0xe5,0x30,
+    0xae,0x2f,0x78,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x30,0x8e,0x2f,0xfd,
+    0x7c,0x00,0x7f,0x26,0x12,0x12,0x8c,0xe5,0x2f,0xfd,0x0f,0x12,0x12,0x8c,0x75,0xd1,
+    0x03,0x75,0xd1,0x02,0x80,0x21,0x75,0xd4,0x04,0x75,0xd5,0x00,0x78,0x3a,0xe6,0x25,
+    0xe0,0x25,0xe0,0x24,0x14,0xf5,0xd6,0x75,0xd7,0x00,0x75,0xda,0x00,0x75,0xd9,0x04,
+    0x06,0x75,0xd1,0x01,0x75,0xd1,0x00,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,
+    0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,
+    0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,
+    0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,
+    0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,
+    0xc0,0x07,0xc0,0x94,0xc0,0x93,0x53,0x91,0xdf,0x78,0x4a,0xe6,0x60,0x3a,0xe5,0xfe,
+    0x64,0x0b,0x60,0x05,0xe5,0xfe,0xb4,0x0c,0x14,0x78,0x4a,0x76,0x00,0xe4,0xfd,0xfc,
+    0x7f,0x0c,0x12,0x12,0x8c,0x75,0xff,0x03,0xf5,0xff,0x02,0x0f,0x97,0x78,0x34,0xe6,
+    0xb4,0x10,0x0f,0x78,0x4a,0x76,0x00,0x7d,0x01,0x7c,0x00,0x7f,0x0c,0x12,0x12,0x8c,
+    0x80,0x0c,0x78,0x49,0x76,0x0a,0x80,0x6f,0x78,0x49,0xe6,0xb4,0x0d,0x08,0x75,0xff,
+    0x03,0x75,0xff,0x00,0x80,0x61,0x78,0x36,0xe6,0x60,0x3b,0x75,0xa6,0x01,0x75,0xa7,
+    0xff,0x75,0xa2,0x10,0x75,0xa3,0x00,0x75,0xa4,0x00,0x75,0xa5,0x00,0x75,0xa9,0x00,
+    0x75,0xaa,0x00,0x75,0xab,0x00,0x75,0xbe,0x00,0x75,0xbf,0x00,0x75,0xc2,0x10,0x75,
+    0xc3,0x11,0x75,0xc4,0x01,0x75,0xc5,0x00,0x75,0xc6,0x00,0x75,0xc7,0x00,0x75,0xa1,
+    0x01,0x75,0xa1,0x00,0x80,0x21,0x75,0xd2,0x02,0x75,0xd3,0x00,0x75,0xd4,0x10,0x75,
+    0xd5,0x00,0x75,0xd6,0x14,0x75,0xd7,0x00,0x75,0xd9,0x04,0x75,0xda,0x00,0x75,0xd1,
+    0x01,0x75,0xd1,0x00,0x78,0x3a,0x06,0x7d,0x07,0x7c,0x00,0x7f,0xbd,0x12,0x12,0x8c,
+    0xe4,0xfd,0x7f,0x50,0x12,0x12,0x8c,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,
+    0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,
+    0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,
+    0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,
+    0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,
+    0xc0,0x07,0xc0,0x94,0xc0,0x93,0x7b,0x00,0x7a,0x00,0x79,0x49,0x7f,0x0a,0x12,0x12,
+    0x73,0x78,0x49,0xe6,0xff,0x64,0x0d,0x60,0x04,0xef,0xb4,0x0f,0x08,0x78,0x3c,0x76,
+    0x01,0x78,0x38,0x80,0x1e,0xef,0xb4,0x0e,0x02,0x80,0x46,0xef,0xb4,0x0c,0x02,0x80,
+    0x40,0xef,0xb4,0x0b,0x04,0x78,0x4b,0x80,0x0a,0xef,0xb4,0x0a,0x0a,0x78,0x4a,0x76,
+    0x01,0x78,0x34,0x76,0x00,0x80,0x2a,0xef,0xb4,0x07,0x06,0x78,0x37,0x76,0x01,0x80,
+    0x20,0xef,0xb4,0x08,0x15,0x78,0x33,0x76,0x00,0x78,0x39,0x76,0x0a,0x7b,0x00,0x7a,
+    0x00,0x79,0x35,0x7f,0xc0,0x12,0x12,0x73,0x80,0x07,0x78,0x49,0xe6,0xff,0xb4,0x09,
+    0x05,0x75,0xff,0x01,0x80,0x0a,0xef,0x70,0x07,0x78,0x3c,0xf6,0x78,0x38,0x76,0x01,
     0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,
     0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,
-    0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,
-    0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,
-    0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,0x7b,
-    0x00,0x12,0x0c,0x3f,0x78,0x31,0xe6,0xff,0x64,0x0d,0x60,0x04,0xef,0xb4,0x0f,0x04,
-    0x78,0x30,0x80,0x2a,0xef,0xb4,0x0e,0x02,0x80,0x26,0xef,0xb4,0x0c,0x02,0x80,0x20,
-    0xef,0xb4,0x0b,0x06,0x78,0x33,0x76,0x00,0x80,0x16,0xef,0xb4,0x0a,0x0a,0x78,0x32,
-    0x76,0x01,0x78,0x2c,0x76,0x00,0x80,0x08,0xef,0xb4,0x09,0x09,0x78,0x2e,0x76,0x01,
-    0x75,0xff,0x01,0x80,0x09,0x7d,0x0d,0x7c,0x00,0x7f,0x07,0x12,0x0c,0x5e,0xd0,0x93,
-    0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,
-    0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,
-    0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,
-    0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,
-    0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,0x75,0xd8,0x00,
-    0x78,0x2e,0xe6,0x70,0x1f,0xaf,0xc9,0xef,0xfd,0x7c,0x00,0x7f,0x0c,0x12,0x0c,0x5e,
-    0xaf,0xcf,0xef,0xfd,0x7f,0x0d,0x12,0x0c,0x5e,0xaf,0xce,0xef,0xfd,0x7f,0x0e,0x12,
-    0x0c,0x5e,0x80,0x04,0x78,0x2e,0x76,0x00,0x75,0xff,0x02,0x75,0xff,0x00,0xd0,0x93,
-    0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,
-    0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,
-    0xd0,0xe0,0x32,0xbb,0x01,0x0c,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,
-    0xe0,0x22,0x50,0x06,0xe9,0x25,0x82,0xf8,0xe6,0x22,0xbb,0xfe,0x06,0xe9,0x25,0x82,
-    0xf8,0xe2,0x22,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe4,0x93,0x22,
-    0xbb,0x01,0x06,0x89,0x82,0x8a,0x83,0xf0,0x22,0x50,0x02,0xf7,0x22,0xbb,0xfe,0x01,
-    0xf3,0x22,0xe8,0x60,0x0f,0xec,0xc3,0x13,0xfc,0xed,0x13,0xfd,0xee,0x13,0xfe,0xef,
-    0x13,0xff,0xd8,0xf1,0x22,0xe8,0x60,0x0f,0xef,0xc3,0x33,0xff,0xee,0x33,0xfe,0xed,
-    0x33,0xfd,0xec,0x33,0xfc,0xd8,0xf1,0x22,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,
-    0xc0,0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,
-    0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,
-    0xc0,0x93,0x53,0x91,0xef,0x7d,0xee,0x7c,0x00,0x7f,0x2b,0x12,0x0c,0x5e,0xd0,0x93,
-    0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,
-    0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,
-    0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,
-    0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,
-    0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,0x7d,0xee,0x7c,
-    0x00,0x7f,0x09,0x12,0x0c,0x5e,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,
-    0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,
-    0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xf6,0x7d,0x01,0xfc,0x7f,
-    0xbd,0x12,0x0c,0x5e,0x7f,0x50,0x12,0x0c,0x5e,0x7d,0x98,0x7f,0x45,0x12,0x0c,0x5e,
-    0x7d,0x39,0x0f,0x12,0x0c,0x5e,0x7f,0x20,0x7e,0x03,0xe4,0xfd,0xfc,0xc3,0xed,0x9f,
-    0xec,0x9e,0x50,0x0a,0x00,0x00,0x00,0x0d,0xbd,0x00,0x01,0x0c,0x80,0xef,0x22,0x7a,
-    0x00,0x79,0x31,0x7f,0x0a,0x8f,0x93,0x75,0x96,0x01,0xe4,0xff,0x00,0x0f,0xbf,0x02,
-    0xfb,0xe5,0x95,0x02,0x0b,0x20,0x7d,0xff,0x7c,0x00,0x12,0x0c,0x5e,0x0f,0x8d,0x94,
-    0x8f,0x93,0x75,0x96,0x02,0x22,0xee,0x30,0xe7,0x07,0xc3,0xe4,0x9f,0xff,0xe4,0x9e,
-    0xfe,0x22
+    0xd0,0xf0,0xd0,0xe0,0x32,0xbb,0x01,0x0c,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,
+    0xf5,0x83,0xe0,0x22,0x50,0x06,0xe9,0x25,0x82,0xf8,0xe6,0x22,0xbb,0xfe,0x06,0xe9,
+    0x25,0x82,0xf8,0xe2,0x22,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe4,
+    0x93,0x22,0xbb,0x01,0x06,0x89,0x82,0x8a,0x83,0xf0,0x22,0x50,0x02,0xf7,0x22,0xbb,
+    0xfe,0x01,0xf3,0x22,0xeb,0x9f,0xf5,0xf0,0xea,0x9e,0x42,0xf0,0xe9,0x9d,0x42,0xf0,
+    0xe8,0x9c,0x45,0xf0,0x22,0xe8,0x60,0x0f,0xec,0xc3,0x13,0xfc,0xed,0x13,0xfd,0xee,
+    0x13,0xfe,0xef,0x13,0xff,0xd8,0xf1,0x22,0xe8,0x60,0x0f,0xef,0xc3,0x33,0xff,0xee,
+    0x33,0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xd8,0xf1,0x22,0xa4,0x25,0x82,0xf5,0x82,
+    0xe5,0xf0,0x35,0x83,0xf5,0x83,0x22,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,
+    0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,
+    0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,
+    0x93,0x75,0xd8,0x00,0x78,0x37,0xe6,0x70,0x1f,0xaf,0xc9,0xef,0xfd,0x7c,0x00,0x7f,
+    0x0c,0x12,0x12,0x8c,0xaf,0xcf,0xef,0xfd,0x7f,0x0d,0x12,0x12,0x8c,0xaf,0xce,0xef,
+    0xfd,0x7f,0x0e,0x12,0x12,0x8c,0x80,0x04,0x78,0x37,0x76,0x00,0x75,0xff,0x02,0x75,
+    0xff,0x00,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,
+    0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,
+    0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,
+    0x85,0xc0,0x84,0xc0,0x86,0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,
+    0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,
+    0x93,0x53,0x91,0xef,0x7d,0xee,0x7c,0x00,0x7f,0x2b,0x12,0x12,0x8c,0xd0,0x93,0xd0,
+    0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,
+    0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,
+    0xe0,0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0x85,0xc0,0x84,0xc0,0x86,
+    0x75,0x86,0x00,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,
+    0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x94,0xc0,0x93,0x7d,0xee,0x7c,0x00,
+    0x7f,0x09,0x12,0x12,0x8c,0xd0,0x93,0xd0,0x94,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,
+    0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x86,0xd0,0x84,0xd0,
+    0x85,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xe4,0xfd,0xfc,0xc3,0xed,0x9f,
+    0xec,0x9e,0x50,0x18,0xe4,0xfb,0xfa,0x00,0x00,0x00,0x0b,0xbb,0x00,0x01,0x0a,0xba,
+    0x05,0xf5,0xbb,0xd1,0xf2,0x0d,0xbd,0x00,0x01,0x0c,0x80,0xe1,0x22,0x25,0x27,0xf9,
+    0xe4,0xfa,0xfb,0x8f,0x93,0x75,0x96,0x01,0xe4,0xff,0x00,0x0f,0xbf,0x02,0xfb,0xe5,
+    0x95,0x02,0x10,0xc2,0x7d,0xff,0x7c,0x00,0x12,0x12,0x8c,0x0f,0x8d,0x94,0x8f,0x93,
+    0x75,0x96,0x02,0x22
 };
 
 uint32_t LoadFirmware(void)
diff -r 3a8f285d261a -r 35b05d91568d RegTable.cpp
--- a/RegTable.cpp	Thu May 28 02:32:15 2020 +0000
+++ b/RegTable.cpp	Mon Jun 22 05:27:48 2020 +0000
@@ -6,12 +6,12 @@
     0x00, 0x03,
     0x01, 0x00,
     0x02, 0x00,
-    0x03, 0x01,
+    0x03, 0x00,
     0x04, 0x01,
     0x05, 0x0E,
     0x06, 0xD8,
-    0x07, 0x0C,
-    0x08, 0x00,
+    0x07, 0x00,
+    0x08, 0xFF,
     0x09, 0x00,
     0x0A, 0x05,
     0x0B, 0x20,
@@ -58,7 +58,7 @@
     0x34, 0x00,
     0x35, 0x00,
     0x36, 0x00,
-    0x37, 0x40,
+    0x37, 0x58,
     0x38, 0x00,
     0x39, 0x00,
     0x3A, 0x1F,
@@ -66,16 +66,16 @@
     0x3C, 0x80,
     0x3D, 0x80,
     0x3E, 0x00,
-    0x3F, 0x00,
+    0x3F, 0x80,
     0x40, 0x11,
-    0x41, 0x03,
+    0x41, 0x04,
     0x42, 0x11,
     0x43, 0x11,
     0x44, 0xC1,
-    0x45, 0x98,
-    0x46, 0x39,
+    0x45, 0xFF,
+    0x46, 0xFF,
     0x47, 0x00,
-    0x48, 0x90,
+    0x48, 0xDC,
     0x49, 0x00,
     0x4A, 0x00,
     0x4B, 0x00,
@@ -84,7 +84,7 @@
     0x4E, 0x00,
     0x4F, 0x00,
     0x50, 0x00,
-    0x51, 0x0D,
+    0x51, 0x0E,
     0x52, 0x00,
     0x53, 0xFF,
     0x54, 0x03,
@@ -99,35 +99,35 @@
     0x5D, 0x00,
     0x5E, 0x00,
     0x5F, 0x00,
-    0x60, 0x30,
-    0x61, 0x73,
+    0x60, 0x00,
+    0x61, 0x00,
     0x62, 0x00,
-    0x63, 0x30,
-    0x64, 0x73,
+    0x63, 0x00,
+    0x64, 0x00,
     0x65, 0x00,
-    0x66, 0x30,
-    0x67, 0x73,
+    0x66, 0x01,
+    0x67, 0x00,
     0x68, 0x00,
-    0x69, 0x30,
-    0x6A, 0x73,
+    0x69, 0x03,
+    0x6A, 0x00,
     0x6B, 0x00,
-    0x6C, 0x30,
-    0x6D, 0x73,
+    0x6C, 0x01,
+    0x6D, 0x00,
     0x6E, 0x00,
-    0x6F, 0x30,
-    0x70, 0x73,
+    0x6F, 0x01,
+    0x70, 0x00,
     0x71, 0x00,
-    0x72, 0x30,
-    0x73, 0x73,
+    0x72, 0x04,
+    0x73, 0x00,
     0x74, 0x00,
-    0x75, 0x30,
-    0x76, 0x73,
+    0x75, 0x03,
+    0x76, 0x00,
     0x77, 0x00,
-    0x78, 0x30,
-    0x79, 0x73,
+    0x78, 0x01,
+    0x79, 0x00,
     0x7A, 0x00,
-    0x7B, 0x30,
-    0x7C, 0x73,
+    0x7B, 0x17,
+    0x7C, 0x00,
     0x7D, 0x00,
     0x7E, 0x00,
     0x7F, 0x00,
@@ -195,7 +195,7 @@
     0xBD, 0x07,
     0xBE, 0x0F,
     0xBF, 0x01,
-    0xC0, 0x2D,
+    0xC0, 0x1D,
     0xC1, 0x00,
     0xC2, 0xFF,
     0xC3, 0xFF,
@@ -235,7 +235,7 @@
     0xE5, 0x01,
     0xE6, 0x00,
     0xE7, 0x00,
-    0xE8, 0x08,
+    0xE8, 0x00,
     0xE9, 0x00,
     0xEA, 0xFF,
     0xEB, 0x00,
@@ -251,7 +251,7 @@
     0xF5, 0x00,
     0xF6, 0x00,
     0xF7, 0xFF,
-    0xF8, 0x97,
+    0xF8, 0xA7,
     0xF9, 0x00,
     0xFA, 0x00,
     0xFB, 0x00,
diff -r 3a8f285d261a -r 35b05d91568d main.cpp
--- a/main.cpp	Thu May 28 02:32:15 2020 +0000
+++ b/main.cpp	Mon Jun 22 05:27:48 2020 +0000
@@ -49,7 +49,7 @@
 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
 
 // Hardware serial port over DAPLink
-Serial uart(P3_1, P3_0);
+//Serial uart(P3_1, P3_0);
 
 I2C i2c_v(P3_4, P3_5);
 
@@ -69,8 +69,10 @@
 DigitalOut HIGH_EN(P5_6);
 DigitalOut A0(P4_0);
 
-DigitalOut PULSE(P5_1);
-DigitalOut DI(P5_2);
+DigitalOut PULSE(P3_0);
+DigitalOut DI(P3_1);
+
+DigitalOut TRIM_EN(P5_5);
 
 SDFileSystem sd(P0_5, P0_6, P0_4, P0_7, "sd");  // mosi, miso, sclk, cs
 #endif
@@ -114,6 +116,7 @@
     A0 = 0;
     DI = 0;
     PULSE = 0;
+    TRIM_EN = 0;
     #endif
     
     #ifdef OFILM
@@ -134,10 +137,11 @@
     
     SetVoltageAVDD(3.3);
     
-    //wait(1);    
-    DUT_RegInit();
-    wait(1);
+    wait(1);    
+    //DUT_RegInit();
+    //wait(1);
     //DUT_FirmwareInit();
+    DeviceAllInit(0x68, 0xE2, 0x31);
 
     cmd_handle_thread.start(CmdHandleTask);
     coutinu_measure_thread.start(ContinuousMeasureReport);