/********************************** (C) COPYRIGHT ******************************* * File Name : HTTPS.c * Author : WCH * Version : V1.0.0 * Date : 2022/05/31 * Description : HTTPS related functions. ********************************************************************************* * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. * Attention: This software (modified or not) and binary are used for * microcontroller manufactured by Nanjing Qinheng Microelectronics. *******************************************************************************/ #include #include #include #include "HTTPS.h" #define HTML_LEN 1024*5 //Maximum size of a single web page st_http_request http_request; /*Define three structure arrays, which are used to save basic * settings, port settings, and password settings.*/ Parameter Para_Basic[4], Para_Port[4], Para_Login[2]; Basic_Cfg_t Basic_CfgBuf; Port_Cfg_t Port_CfgBuf; Login_Cfg_t Login_CfgBuf; /*Default configuration of WCHNET network parameters*/ u8 Basic_Default[BASIC_CFG_LEN] = { 0x57, 0xAB, 01, 02, 03, 04, 05, 06, 192, 168, 1, 10, 255, 255, 255, 0, 192, 168, 1, 1}; /*WCHNET login default parameters, user name and password*/ u8 Login_Default[LOGIN_CFG_LEN] = { 0x57, 0xAB, 'a', 'd', 'm', 'i', 'n', 0, 0, 0, 0, 0, '1', '2', '3', 0, 0, 0, 0, 0, 0, 0 }; /*WCHNET default port configuration*/ u8 Port_Default[PORT_CFG_LEN] = { 0x57, 0xAB, MODE_TCPCLIENT, 1000 / 256, 1000 % 256, 192, 168, 1, 100, 1000 / 256, 1000 % 256 }; u8 *name; //The name of the web page requested by HTTP u8 socket; //socket id u8 httpweb[200]; //The array is used to store the HTTP response message char HtmlBuffer[HTML_LEN]; //Web page send buffer extern u8 HTTPDataBuffer[RECE_BUF_LEN];//MAC address IP address Gateway IP address subnet mask const char Html_login[] = { "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "Login\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "\r\n" "
\r\n" "
\r\n" "
\r\n" "\r\n" "
\r\n" "

User Login

\r\n" "
\r\n" "
\r\n" "
\r\n" "\r\n" "
\r\n" "
\r\n" "
\r\n" "\r\n" "\r\n" }; const char Html_main[] = { "\r\n" "\r\n" "\r\n" "\r\n" " basic\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "\r\n" "\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "

Copyright:@2002-2023 Nanjing Qinheng Microelectronics Co., Ltd.All Rights Reserved

\r\n" "
Official website:www.wch.cn
\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" }; const char Html_basic[] = { "\r\n" "\r\n" "Basic Settings\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "
\r\n" "

Basic Settings

\r\n" "
    \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
\r\n" "\r\n" "
\r\n" "
\r\n" "\r\n" "\r\n" }; const char Html_port[] ={ "\r\n" "\r\n" "Port Settings\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "
\r\n" "

Port Settings

\r\n" "
    \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
\r\n" "\r\n" "
\r\n" "
\r\n" "\r\n" "\r\n" }; const char Html_user[] = { "\r\n" "\r\n" "user\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "
\r\n" "

Password settings

\r\n" "
    \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
  • \r\n" "\r\n" "
  • \r\n" "
\r\n" "\r\n" "\r\n" "
\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" }; const char Html_about[] = { "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "\r\n" "
\r\n" "
\r\n" "

About us

\r\n" "
\r\n" "
\r\n" "\r\n" "
Company Profile
\r\n" "

Nanjing Qinheng Microelectronics Co., Ltd. founded in 2004, is an IC communication interface and full-stack MCU Design Company.

\r\n" "

Qinheng specializes in connectivity technology and MCU core development. The company operates a full-stack development model based on self-developed transceiver PHY and processor IP instead of traditionally outsourcing IP integration models. Qinheng provides Ethernet, Bluetooth, USB and PCI interface chips, alongside connectivity/interconnectivity/wireless full-stack MCU+ microcontrollers integrated with these interfaces.

\r\n" "

Technically involves \"perception + control + connection + cloud gathering\":

\r\n" "

- ADC/PGA and other analog detection modules

\r\n" "

- MCU smart control and driving algorithms

\r\n" "

- HID human-computer interactionHID human-computer interaction

\r\n" "

- Ethernet/Bluetooth-LE and other network communication protocols

\r\n" "

- UART/USB/USB PD/PCIE/CAN/SerDes and other communication interfaces

\r\n" "

- Data security

\r\n" "

- IoT protocol and cloud services

\r\n" "
\r\n" "
\r\n" "
Download
\r\n" "

Chip data:Chip Profile with Ethernet

\r\n" "
\r\n" "
\r\n" "
Contact us
\r\n" "

Technician Email:tech@wch.cn

\r\n" "

Technician Phone:025-52638370

\r\n" "

sales phone:025-52638389

\r\n" "
\r\n" "
\r\n" "
\r\n" "
\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" }; const char Html_success[] = { "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "\r\n" "
\r\n" "

Set successfully

\r\n" "
\r\n" "
\r\n" "Set successfully
\r\n" "
\r\n" "Please restart the microcontroller or continue to set\r\n" "
\r\n" "\r\n" "\r\n" "\r\n" }; const char Html_style[] = { "body {\r\n" "text-align: center;\r\n" "color: black;\r\n" "padding:0px;\r\n" "margin:0 auto;\r\n" "}\r\n" "form{\r\n" "width: 750px;\r\n" "height: 100%;\r\n" "}\r\n" "form h2{\r\n" "font-size:20px;\r\n" "text-align:center;\r\n" "}\r\n" "form ul{\r\n" "margin-left:160px;\r\n" "text-align: center;\r\n" "list-style-type:none;\r\n" "width: 360px;\r\n" "postion:relative;\r\n" "}\r\n" "\r\n" "form ul li{\r\n" "text-align: left;\r\n" "margin:0 auto;\r\n" "margin-top:10px;\r\n" "\r\n" "}\r\n" "\r\n" ".config{\r\n" "border:1px solid #0080FF;\r\n" "border-radius:5px;\r\n" "width:360px;\r\n" "\r\n" "}\r\n" "\r\n" "label{\r\n" "background-color:#0080FF;\r\n" "color:white;\r\n" "display:inline-block;\r\n" "font-size:18px;\r\n" "font-weight:bold;\r\n" "height:30px;\r\n" "line-height:30px;\r\n" "text-align:center;\r\n" "vertical-align:center;\r\n" "width:150px;\r\n" "}\r\n" "\r\n" ".shuru\r\n" "{\r\n" "margin-left:40px;\r\n" "border:0px;\r\n" "height:18px;\r\n" "vertical-align:middle;\r\n" "width:160px;\r\n" "margin-top:0px;\r\n" "font-size:16px;\r\n" "outline:none;\r\n" "padding-bottom:4px;\r\n" "}\r\n" "\r\n" ".gouxuan\r\n" "{\r\n" "margin-left:40px;\r\n" "font-size:18px;\r\n" "font-weight:\r\n" "\r\n" "}\r\n" "\r\n" ".fuxuan{\r\n" "border:0;\r\n" "background-color:white;\r\n" "margin-left:40px;\r\n" "width:120px;\r\n" "height:20px;\r\n" "font-size:15px;\r\n" "outline:none;\r\n" "}\r\n" ".but{\r\n" "width: 200px;\r\n" "height: 35px;\r\n" "margin-bottom: 20px;\r\n" "padding: 6px;\r\n" "background-color: #21A957;\r\n" "color: white;\r\n" "font-size: 20px;\r\n" "border: none;\r\n" "border-radius: 5px;\r\n" "cursor:pointer;\r\n" "}\r\n" "\r\n" ".but:hover{\r\n" "background:#128A42;\r\n" "}\r\n" "\r\n" ".but1{\r\n" "width: 200px;\r\n" "height: 35px;\r\n" "margin-top: 30px;\r\n" "padding: 6px;\r\n" "background-color: #0080FF;\r\n" "color: white;\r\n" "font-size: 20px;\r\n" "border: none;\r\n" "border-radius: 5px;\r\n" "cursor:pointer;\r\n" "}\r\n" "\r\n" ".but1:hover{\r\n" "background:#008080;\r\n" "}\r\n" "\r\n" "input[type=checkbox] {\r\n" "-ms-transform: scale(1.5); /* IE */\r\n" "-moz-transform: scale(1.5); /* FireFox */\r\n" "-webkit-transform: scale(1.5); /* Safari and Chrome */\r\n" "-o-transform: scale(1.5); /* Opera */\r\n" "}\r\n" "\r\n" "select{\r\n" "background: transparent;\r\n" "border: none;\r\n" "}\r\n" }; const char Html_logo[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x1E, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x3C, 0x0A, 0xA8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x71, 0xC9, 0x65, 0x3C, 0x00, 0x00, 0x05, 0x6E, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xDC, 0x5A, 0x3B, 0x92, 0xE3, 0x36, 0x10, 0x85, 0x54, 0xCA, 0xA5, 0x1B, 0x2C, 0x37, 0xB1, 0x43, 0xE9, 0x06, 0xE2, 0x56, 0x79, 0xE3, 0x95, 0x4F, 0x30, 0x9A, 0x13, 0xAC, 0x1C, 0x38, 0x16, 0x37, 0xB5, 0x03, 0xEB, 0x06, 0xA2, 0x4E, 0x30, 0x9A, 0xD8, 0xC1, 0x50, 0x37, 0xA0, 0x42, 0x47, 0xE6, 0xDE, 0x40, 0x73, 0x82, 0x71, 0xF7, 0xD4, 0xA3, 0xDD, 0xC2, 0x80, 0x20, 0x00, 0x7E, 0xC4, 0x71, 0x57, 0xB1, 0x28, 0x92, 0x20, 0x04, 0xE2, 0xF5, 0xE7, 0x75, 0x03, 0xA3, 0x1F, 0x7E, 0xFA, 0xED, 0x45, 0x5D, 0xCB, 0xB7, 0xBF, 0xFE, 0xFC, 0x35, 0x51, 0x1E, 0xF2, 0xE3, 0xE7, 0xDF, 0x9D, 0xFB, 0xA0, 0xB6, 0x33, 0x3A, 0xC5, 0x38, 0x16, 0x38, 0xA6, 0x86, 0xA6, 0x6D, 0x8C, 0xE3, 0x44, 0x7D, 0xC4, 0x2E, 0xEF, 0x8E, 0x46, 0xA3, 0x0D, 0x9F, 0x5F, 0x5E, 0x5E, 0x76, 0x35, 0xED, 0x78, 0xFC, 0x05, 0x1D, 0x3B, 0x6A, 0xEB, 0x35, 0x3E, 0x4B, 0x9F, 0x72, 0xDC, 0x27, 0xEA, 0x37, 0x56, 0x2D, 0xCB, 0x44, 0xF5, 0x24, 0x04, 0x02, 0x0F, 0x9E, 0x27, 0xF3, 0x8B, 0x1A, 0x98, 0xD0, 0x44, 0xF3, 0xD8, 0xFE, 0x10, 0xBF, 0xD7, 0x34, 0xD9, 0x97, 0x0A, 0x90, 0x33, 0x28, 0xE6, 0x96, 0xAE, 0x23, 0x6A, 0xB7, 0xEE, 0x70, 0x4C, 0xFC, 0x7F, 0x97, 0x86, 0x5D, 0xBD, 0xF6, 0x31, 0xE9, 0x01, 0xE0, 0x88, 0x4E, 0x29, 0x1D, 0x4B, 0x35, 0x40, 0xA1, 0x09, 0x65, 0x8F, 0x72, 0x14, 0xB7, 0x58, 0x11, 0x33, 0xBA, 0xCF, 0x60, 0xE7, 0x5A, 0x73, 0x06, 0x79, 0x2E, 0xAE, 0xEF, 0xF0, 0x7E, 0x6C, 0x52, 0x8C, 0x86, 0xC2, 0x40, 0x6F, 0x5B, 0xEA, 0xEB, 0xDB, 0xB8, 0x63, 0x90, 0x57, 0x74, 0xCA, 0x87, 0x0A, 0x32, 0x24, 0x32, 0xDC, 0x9B, 0x03, 0x6C, 0xDD, 0x85, 0xB2, 0x47, 0x7A, 0xAE, 0x68, 0x1B, 0x0D, 0xF8, 0x1B, 0xD5, 0xB8, 0x43, 0x90, 0xD9, 0xA5, 0x3D, 0x54, 0xC4, 0xDF, 0xAB, 0x38, 0xCA, 0x1A, 0x77, 0xAB, 0x09, 0x20, 0x4B, 0x3C, 0xC2, 0x7A, 0xCE, 0xDA, 0xA3, 0x29, 0xEE, 0xCB, 0xB6, 0x19, 0x38, 0xC5, 0xD9, 0x00, 0x76, 0x0E, 0xEB, 0x1E, 0xA4, 0x74, 0xE5, 0xBA, 0xE3, 0x1A, 0x2B, 0x7E, 0x64, 0x77, 0x4E, 0x44, 0xE9, 0x28, 0x14, 0x63, 0x7B, 0x43, 0xB0, 0x73, 0x58, 0x2F, 0x13, 0xB1, 0xBB, 0x72, 0x8C, 0x26, 0xB2, 0x45, 0xF7, 0x0A, 0xB4, 0xD5, 0xDD, 0xF8, 0xB4, 0xB4, 0xEC, 0x96, 0xDC, 0x78, 0x26, 0x7E, 0x17, 0x38, 0x42, 0x70, 0x78, 0xED, 0xAB, 0x2B, 0xA0, 0x97, 0x16, 0xEB, 0x5D, 0x13, 0xC0, 0xC5, 0xD0, 0x34, 0x1E, 0xE0, 0xAC, 0x09, 0x28, 0xBE, 0xE4, 0x90, 0xB3, 0xB6, 0xB5, 0x05, 0xD8, 0xA9, 0x46, 0x2E, 0x8F, 0x2E, 0x20, 0xD3, 0xBB, 0x99, 0x00, 0x30, 0xAB, 0x68, 0x96, 0xC3, 0x83, 0xB4, 0xA2, 0x2C, 0x93, 0x1E, 0xE7, 0xF2, 0x17, 0x02, 0x78, 0xA7, 0x06, 0x2E, 0xCC, 0xA2, 0x5D, 0xAC, 0x12, 0xCF, 0x57, 0xD4, 0x36, 0x85, 0x17, 0x38, 0x23, 0x86, 0xFB, 0x18, 0xC3, 0xD2, 0xC0, 0x11, 0xA2, 0xB2, 0x4F, 0x3A, 0xDF, 0xD3, 0x79, 0x0F, 0x03, 0xF1, 0x95, 0x85, 0x4C, 0x01, 0xFB, 0x02, 0xFA, 0x9E, 0x40, 0x4E, 0x07, 0xC8, 0xB8, 0x13, 0x4C, 0xC8, 0x55, 0x3A, 0xC5, 0xEE, 0xD9, 0xC2, 0xD0, 0x67, 0x9A, 0xD5, 0xB1, 0x62, 0xF0, 0xBB, 0x69, 0x4B, 0x2E, 0xFB, 0x83, 0x08, 0x1F, 0xEB, 0x1A, 0x0F, 0x79, 0x7B, 0x32, 0xA6, 0x15, 0x3E, 0x86, 0x08, 0x72, 0x24, 0xF2, 0xFA, 0xCC, 0x91, 0x48, 0xB1, 0x4B, 0x7F, 0x12, 0xC7, 0x02, 0x8A, 0xB1, 0x91, 0xA9, 0x18, 0xE7, 0xDB, 0x74, 0xAC, 0x1C, 0x99, 0xFE, 0x25, 0x20, 0x04, 0xBA, 0xCA, 0xA5, 0x2F, 0xD7, 0xFD, 0x0C, 0x82, 0x33, 0x34, 0x90, 0x67, 0xC8, 0x9D, 0xA7, 0x5A, 0x8A, 0xB4, 0x06, 0x0B, 0xFF, 0xB7, 0x60, 0x51, 0x5E, 0x7B, 0xF4, 0xBD, 0xC6, 0x37, 0x4F, 0xE9, 0xF7, 0xC7, 0x0A, 0xEF, 0xF0, 0x41, 0x7A, 0x05, 0x2D, 0xCE, 0x9F, 0x35, 0x92, 0x67, 0xE2, 0x39, 0xB6, 0xE2, 0xC8, 0x5C, 0xEB, 0xBB, 0x17, 0xA0, 0x99, 0x59, 0x5F, 0xD4, 0x30, 0xE5, 0x62, 0x48, 0xA7, 0x1E, 0x08, 0x9C, 0x9F, 0x45, 0xCA, 0xB5, 0x05, 0x39, 0x3B, 0x81, 0x78, 0xD5, 0x81, 0x9C, 0x6B, 0x13, 0x9D, 0xD8, 0x48, 0x9D, 0x65, 0x5C, 0xA7, 0x2A, 0x6B, 0xB6, 0x95, 0x47, 0xA1, 0x9C, 0x4F, 0x41, 0xE9, 0x15, 0xA5, 0x3D, 0x7A, 0x5C, 0x52, 0x04, 0x9E, 0x2B, 0x1B, 0x6C, 0xC2, 0x1A, 0x23, 0x94, 0x4D, 0xBB, 0x62, 0xD8, 0x31, 0x62, 0xF4, 0x56, 0xF3, 0x40, 0xB9, 0x18, 0xFB, 0x56, 0xB8, 0x50, 0x97, 0x6F, 0xD9, 0x81, 0x3C, 0x95, 0xC2, 0x84, 0x2A, 0x95, 0xEC, 0x19, 0xDE, 0xC4, 0x65, 0xDE, 0x22, 0x28, 0xCA, 0xBE, 0xF3, 0x3C, 0x1A, 0x0B, 0x10, 0x99, 0x5E, 0xF4, 0xA0, 0xFB, 0xAE, 0xE4, 0xAA, 0x89, 0x35, 0xDF, 0x09, 0x52, 0xD2, 0x15, 0xC3, 0x4E, 0x68, 0xE2, 0x0B, 0x31, 0x99, 0x89, 0x70, 0xB5, 0x3A, 0x20, 0x79, 0x19, 0x93, 0x2D, 0xFD, 0xA5, 0x70, 0xDD, 0x4B, 0xCD, 0xAA, 0x63, 0x8D, 0x0D, 0xD7, 0xCD, 0x51, 0x5A, 0xB2, 0x65, 0xEA, 0x6F, 0x6F, 0x20, 0x90, 0x2E, 0xB1, 0xDF, 0xCB, 0xA2, 0x93, 0x8A, 0xCA, 0x56, 0xE2, 0xE2, 0xCA, 0xDE, 0x83, 0x00, 0x1C, 0x05, 0xE6, 0xBD, 0xF3, 0x04, 0xA4, 0x6A, 0xCE, 0xA4, 0xFB, 0x5C, 0xB2, 0x4B, 0x15, 0x56, 0x1D, 0x19, 0x14, 0xE8, 0x4D, 0x51, 0xC6, 0xD2, 0x7F, 0x50, 0x61, 0x69, 0x6C, 0xB1, 0x66, 0x1E, 0xD0, 0xD7, 0xAA, 0x14, 0x80, 0x9E, 0x27, 0xEA, 0x7F, 0x22, 0x0C, 0x76, 0x5B, 0xA4, 0x11, 0x80, 0x9E, 0x0C, 0xE0, 0xCB, 0x2A, 0x17, 0x97, 0x7C, 0x0F, 0x68, 0xD7, 0x0B, 0x87, 0x19, 0xD7, 0xC4, 0x1B, 0x9B, 0x6C, 0xE0, 0xDA, 0x6D, 0x12, 0xBF, 0x23, 0xBC, 0x99, 0x88, 0xD9, 0x16, 0x27, 0x7C, 0x00, 0xD1, 0x8D, 0x60, 0x59, 0x2E, 0x90, 0xB0, 0x22, 0xB0, 0x5B, 0xE6, 0xFC, 0x9B, 0x89, 0x95, 0x61, 0x85, 0xAC, 0x13, 0x99, 0x54, 0x58, 0x73, 0xAC, 0xDE, 0xAE, 0x1B, 0xEB, 0xB4, 0x7F, 0x8A, 0x0F, 0xDA, 0xD4, 0xE4, 0x9D, 0xA1, 0x96, 0x7F, 0x08, 0x08, 0x0F, 0x4F, 0x81, 0xE9, 0xD6, 0x4A, 0x90, 0xAE, 0xBF, 0x51, 0x91, 0x5A, 0x68, 0x96, 0x9A, 0xD7, 0xE4, 0xC6, 0x57, 0x56, 0x4D, 0x6D, 0xF5, 0xF9, 0xDA, 0x34, 0x24, 0xA7, 0x65, 0xDF, 0xA3, 0x36, 0x59, 0x77, 0x62, 0xC8, 0x87, 0x63, 0x75, 0x5D, 0xF4, 0x67, 0xF9, 0x4A, 0x4A, 0x61, 0xB3, 0xFC, 0x39, 0x2B, 0x8D, 0x07, 0x4B, 0x97, 0x52, 0xF8, 0xBE, 0x47, 0xFF, 0x15, 0x3A, 0x7F, 0x71, 0x45, 0x4E, 0xDA, 0x44, 0x24, 0x03, 0xF7, 0x2D, 0x8F, 0xF6, 0x62, 0xD1, 0x2B, 0x43, 0xC2, 0xBE, 0xE3, 0x7C, 0x18, 0x71, 0xF9, 0xCE, 0xD3, 0xC5, 0x27, 0xEF, 0xC0, 0x85, 0xEB, 0x96, 0x7A, 0xD4, 0xBE, 0xEB, 0x7B, 0x20, 0xC9, 0xE3, 0x3E, 0x8E, 0x6D, 0xEE, 0x42, 0x69, 0x93, 0x75, 0xCF, 0xAB, 0xAA, 0x5B, 0xBC, 0xEA, 0x44, 0x60, 0x1F, 0x34, 0xB0, 0xEB, 0xB6, 0x06, 0x2D, 0x59, 0x41, 0x7C, 0xF7, 0x7F, 0xF5, 0x25, 0x70, 0x77, 0xB2, 0x52, 0xF5, 0x28, 0x42, 0x93, 0x24, 0x50, 0x21, 0xB2, 0xA8, 0x61, 0xD0, 0x21, 0xE2, 0xC3, 0xBA, 0x67, 0x2E, 0x64, 0xEC, 0xCA, 0x9A, 0x3D, 0x2C, 0xD8, 0x38, 0x38, 0x6C, 0x44, 0x18, 0xA2, 0xAC, 0x0D, 0xD6, 0x1C, 0x37, 0xB1, 0xB8, 0x92, 0xD0, 0x75, 0x00, 0xB2, 0xB7, 0xA2, 0x79, 0x01, 0x2D, 0x2F, 0x08, 0xF4, 0x5C, 0x85, 0x2D, 0x9B, 0xED, 0x09, 0xEC, 0xD4, 0x81, 0xA9, 0xF7, 0x69, 0xCD, 0xB3, 0x0A, 0xB7, 0xAD, 0xE7, 0xD0, 0x99, 0xA7, 0xC5, 0x31, 0xA1, 0x4B, 0x0D, 0x5B, 0x91, 0x06, 0x15, 0xA3, 0xAF, 0x98, 0x6F, 0x45, 0xAD, 0x3A, 0x09, 0x64, 0xB8, 0xEC, 0xF2, 0x63, 0xB6, 0xEE, 0x40, 0x82, 0xD6, 0xB6, 0x6C, 0x34, 0x17, 0xFD, 0x88, 0x4D, 0x05, 0x05, 0x5C, 0xF8, 0x17, 0x1F, 0xD7, 0xAD, 0x95, 0x37, 0xCB, 0xCA, 0xDE, 0xA8, 0xE1, 0x18, 0x3F, 0x35, 0x78, 0xB7, 0x70, 0x05, 0xDA, 0x18, 0x57, 0x19, 0x24, 0x02, 0xAB, 0xB2, 0xF0, 0xAE, 0x4D, 0xD2, 0x9B, 0x62, 0x0B, 0x2B, 0x09, 0xBD, 0x7F, 0x86, 0xB7, 0x38, 0xDE, 0x62, 0xE1, 0x03, 0xA0, 0x6C, 0x0C, 0xD6, 0x5C, 0x16, 0x50, 0x52, 0x61, 0xF1, 0xAE, 0x4A, 0x19, 0x1B, 0x52, 0xD2, 0x90, 0xB1, 0x45, 0x20, 0x56, 0x8D, 0x76, 0x99, 0x60, 0xB9, 0x94, 0xC7, 0x64, 0xDD, 0xEE, 0x7B, 0xA8, 0xD9, 0xF2, 0x63, 0xB3, 0xEA, 0x1C, 0x93, 0x66, 0x2B, 0xC8, 0xCF, 0xF1, 0x7C, 0x0F, 0xA5, 0xE9, 0x5B, 0x12, 0xCD, 0x9A, 0x9F, 0x01, 0xB0, 0x64, 0xCE, 0x97, 0x9A, 0x5C, 0x3E, 0x01, 0xB3, 0xBE, 0xA8, 0xFF, 0x16, 0x21, 0xF4, 0x79, 0x08, 0xE5, 0x0D, 0x5B, 0x80, 0xD5, 0xC6, 0xB7, 0x9E, 0xC6, 0xBE, 0xD6, 0x2C, 0xAD, 0xDA, 0x16, 0xAB, 0xB1, 0xE8, 0xF1, 0x49, 0xBD, 0xDD, 0x1E, 0x6B, 0x64, 0xE6, 0x37, 0xB0, 0x66, 0xBD, 0xBC, 0x9B, 0x06, 0x74, 0xC5, 0xE3, 0x7E, 0x80, 0xC2, 0xEF, 0x35, 0xF6, 0xEE, 0x1B, 0xDB, 0x3B, 0x95, 0x71, 0xA0, 0x35, 0xFB, 0x28, 0x03, 0x6B, 0xFA, 0x61, 0x48, 0x34, 0x1B, 0x96, 0x7A, 0xAF, 0x29, 0xA1, 0x4B, 0x36, 0xE1, 0x1B, 0x62, 0x8E, 0x43, 0xF9, 0xE6, 0x49, 0x08, 0x80, 0x5A, 0xAC, 0xFE, 0x6E, 0xD0, 0x64, 0xD9, 0xE6, 0x75, 0x77, 0x25, 0x8A, 0x2D, 0x09, 0x62, 0xDE, 0x74, 0x00, 0x60, 0xA7, 0xD8, 0x28, 0x90, 0x21, 0x16, 0x16, 0x0E, 0xEF, 0xEC, 0xB0, 0x0C, 0x39, 0x77, 0xF8, 0x8B, 0xFB, 0x06, 0x7B, 0xC8, 0x0A, 0xE1, 0x2D, 0x9B, 0x78, 0x85, 0x72, 0x2F, 0x41, 0x6E, 0x02, 0xFA, 0xE4, 0xB9, 0x1D, 0x37, 0x51, 0x0E, 0x8B, 0xE3, 0xE8, 0xF3, 0x35, 0x67, 0x45, 0x2D, 0x3D, 0x16, 0x03, 0x59, 0xDE, 0x08, 0xEC, 0x1C, 0xC0, 0xF9, 0x00, 0x12, 0xE3, 0x3B, 0x16, 0x15, 0x95, 0xA8, 0x72, 0xA3, 0xE0, 0xB1, 0x89, 0x12, 0xAA, 0x96, 0x97, 0x81, 0xFF, 0x11, 0x60, 0x00, 0x8C, 0xC2, 0x65, 0x56, 0xD4, 0xAE, 0x5E, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 }; const char Html_weixin[] = { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x78, 0x00, 0x78, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x66, 0x00, 0x00, 0x99, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xFF, 0x00, 0x2B, 0x00, 0x00, 0x2B, 0x33, 0x00, 0x2B, 0x66, 0x00, 0x2B, 0x99, 0x00, 0x2B, 0xCC, 0x00, 0x2B, 0xFF, 0x00, 0x55, 0x00, 0x00, 0x55, 0x33, 0x00, 0x55, 0x66, 0x00, 0x55, 0x99, 0x00, 0x55, 0xCC, 0x00, 0x55, 0xFF, 0x00, 0x80, 0x00, 0x00, 0x80, 0x33, 0x00, 0x80, 0x66, 0x00, 0x80, 0x99, 0x00, 0x80, 0xCC, 0x00, 0x80, 0xFF, 0x00, 0xAA, 0x00, 0x00, 0xAA, 0x33, 0x00, 0xAA, 0x66, 0x00, 0xAA, 0x99, 0x00, 0xAA, 0xCC, 0x00, 0xAA, 0xFF, 0x00, 0xD5, 0x00, 0x00, 0xD5, 0x33, 0x00, 0xD5, 0x66, 0x00, 0xD5, 0x99, 0x00, 0xD5, 0xCC, 0x00, 0xD5, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x33, 0x00, 0xFF, 0x66, 0x00, 0xFF, 0x99, 0x00, 0xFF, 0xCC, 0x00, 0xFF, 0xFF, 0x33, 0x00, 0x00, 0x33, 0x00, 0x33, 0x33, 0x00, 0x66, 0x33, 0x00, 0x99, 0x33, 0x00, 0xCC, 0x33, 0x00, 0xFF, 0x33, 0x2B, 0x00, 0x33, 0x2B, 0x33, 0x33, 0x2B, 0x66, 0x33, 0x2B, 0x99, 0x33, 0x2B, 0xCC, 0x33, 0x2B, 0xFF, 0x33, 0x55, 0x00, 0x33, 0x55, 0x33, 0x33, 0x55, 0x66, 0x33, 0x55, 0x99, 0x33, 0x55, 0xCC, 0x33, 0x55, 0xFF, 0x33, 0x80, 0x00, 0x33, 0x80, 0x33, 0x33, 0x80, 0x66, 0x33, 0x80, 0x99, 0x33, 0x80, 0xCC, 0x33, 0x80, 0xFF, 0x33, 0xAA, 0x00, 0x33, 0xAA, 0x33, 0x33, 0xAA, 0x66, 0x33, 0xAA, 0x99, 0x33, 0xAA, 0xCC, 0x33, 0xAA, 0xFF, 0x33, 0xD5, 0x00, 0x33, 0xD5, 0x33, 0x33, 0xD5, 0x66, 0x33, 0xD5, 0x99, 0x33, 0xD5, 0xCC, 0x33, 0xD5, 0xFF, 0x33, 0xFF, 0x00, 0x33, 0xFF, 0x33, 0x33, 0xFF, 0x66, 0x33, 0xFF, 0x99, 0x33, 0xFF, 0xCC, 0x33, 0xFF, 0xFF, 0x66, 0x00, 0x00, 0x66, 0x00, 0x33, 0x66, 0x00, 0x66, 0x66, 0x00, 0x99, 0x66, 0x00, 0xCC, 0x66, 0x00, 0xFF, 0x66, 0x2B, 0x00, 0x66, 0x2B, 0x33, 0x66, 0x2B, 0x66, 0x66, 0x2B, 0x99, 0x66, 0x2B, 0xCC, 0x66, 0x2B, 0xFF, 0x66, 0x55, 0x00, 0x66, 0x55, 0x33, 0x66, 0x55, 0x66, 0x66, 0x55, 0x99, 0x66, 0x55, 0xCC, 0x66, 0x55, 0xFF, 0x66, 0x80, 0x00, 0x66, 0x80, 0x33, 0x66, 0x80, 0x66, 0x66, 0x80, 0x99, 0x66, 0x80, 0xCC, 0x66, 0x80, 0xFF, 0x66, 0xAA, 0x00, 0x66, 0xAA, 0x33, 0x66, 0xAA, 0x66, 0x66, 0xAA, 0x99, 0x66, 0xAA, 0xCC, 0x66, 0xAA, 0xFF, 0x66, 0xD5, 0x00, 0x66, 0xD5, 0x33, 0x66, 0xD5, 0x66, 0x66, 0xD5, 0x99, 0x66, 0xD5, 0xCC, 0x66, 0xD5, 0xFF, 0x66, 0xFF, 0x00, 0x66, 0xFF, 0x33, 0x66, 0xFF, 0x66, 0x66, 0xFF, 0x99, 0x66, 0xFF, 0xCC, 0x66, 0xFF, 0xFF, 0x99, 0x00, 0x00, 0x99, 0x00, 0x33, 0x99, 0x00, 0x66, 0x99, 0x00, 0x99, 0x99, 0x00, 0xCC, 0x99, 0x00, 0xFF, 0x99, 0x2B, 0x00, 0x99, 0x2B, 0x33, 0x99, 0x2B, 0x66, 0x99, 0x2B, 0x99, 0x99, 0x2B, 0xCC, 0x99, 0x2B, 0xFF, 0x99, 0x55, 0x00, 0x99, 0x55, 0x33, 0x99, 0x55, 0x66, 0x99, 0x55, 0x99, 0x99, 0x55, 0xCC, 0x99, 0x55, 0xFF, 0x99, 0x80, 0x00, 0x99, 0x80, 0x33, 0x99, 0x80, 0x66, 0x99, 0x80, 0x99, 0x99, 0x80, 0xCC, 0x99, 0x80, 0xFF, 0x99, 0xAA, 0x00, 0x99, 0xAA, 0x33, 0x99, 0xAA, 0x66, 0x99, 0xAA, 0x99, 0x99, 0xAA, 0xCC, 0x99, 0xAA, 0xFF, 0x99, 0xD5, 0x00, 0x99, 0xD5, 0x33, 0x99, 0xD5, 0x66, 0x99, 0xD5, 0x99, 0x99, 0xD5, 0xCC, 0x99, 0xD5, 0xFF, 0x99, 0xFF, 0x00, 0x99, 0xFF, 0x33, 0x99, 0xFF, 0x66, 0x99, 0xFF, 0x99, 0x99, 0xFF, 0xCC, 0x99, 0xFF, 0xFF, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x33, 0xCC, 0x00, 0x66, 0xCC, 0x00, 0x99, 0xCC, 0x00, 0xCC, 0xCC, 0x00, 0xFF, 0xCC, 0x2B, 0x00, 0xCC, 0x2B, 0x33, 0xCC, 0x2B, 0x66, 0xCC, 0x2B, 0x99, 0xCC, 0x2B, 0xCC, 0xCC, 0x2B, 0xFF, 0xCC, 0x55, 0x00, 0xCC, 0x55, 0x33, 0xCC, 0x55, 0x66, 0xCC, 0x55, 0x99, 0xCC, 0x55, 0xCC, 0xCC, 0x55, 0xFF, 0xCC, 0x80, 0x00, 0xCC, 0x80, 0x33, 0xCC, 0x80, 0x66, 0xCC, 0x80, 0x99, 0xCC, 0x80, 0xCC, 0xCC, 0x80, 0xFF, 0xCC, 0xAA, 0x00, 0xCC, 0xAA, 0x33, 0xCC, 0xAA, 0x66, 0xCC, 0xAA, 0x99, 0xCC, 0xAA, 0xCC, 0xCC, 0xAA, 0xFF, 0xCC, 0xD5, 0x00, 0xCC, 0xD5, 0x33, 0xCC, 0xD5, 0x66, 0xCC, 0xD5, 0x99, 0xCC, 0xD5, 0xCC, 0xCC, 0xD5, 0xFF, 0xCC, 0xFF, 0x00, 0xCC, 0xFF, 0x33, 0xCC, 0xFF, 0x66, 0xCC, 0xFF, 0x99, 0xCC, 0xFF, 0xCC, 0xCC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x33, 0xFF, 0x00, 0x66, 0xFF, 0x00, 0x99, 0xFF, 0x00, 0xCC, 0xFF, 0x00, 0xFF, 0xFF, 0x2B, 0x00, 0xFF, 0x2B, 0x33, 0xFF, 0x2B, 0x66, 0xFF, 0x2B, 0x99, 0xFF, 0x2B, 0xCC, 0xFF, 0x2B, 0xFF, 0xFF, 0x55, 0x00, 0xFF, 0x55, 0x33, 0xFF, 0x55, 0x66, 0xFF, 0x55, 0x99, 0xFF, 0x55, 0xCC, 0xFF, 0x55, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x33, 0xFF, 0x80, 0x66, 0xFF, 0x80, 0x99, 0xFF, 0x80, 0xCC, 0xFF, 0x80, 0xFF, 0xFF, 0xAA, 0x00, 0xFF, 0xAA, 0x33, 0xFF, 0xAA, 0x66, 0xFF, 0xAA, 0x99, 0xFF, 0xAA, 0xCC, 0xFF, 0xAA, 0xFF, 0xFF, 0xD5, 0x00, 0xFF, 0xD5, 0x33, 0xFF, 0xD5, 0x66, 0xFF, 0xD5, 0x99, 0xFF, 0xD5, 0xCC, 0xFF, 0xD5, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x33, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xF9, 0x04, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x78, 0x00, 0x00, 0x08, 0xFF, 0x00, 0xF7, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x4A, 0x9C, 0x48, 0xB1, 0xA2, 0xC5, 0x8B, 0x18, 0x33, 0x6A, 0xDC, 0xC8, 0xB1, 0xA3, 0xC7, 0x8F, 0x20, 0x43, 0x8A, 0x1C, 0x49, 0xB2, 0xA4, 0xC9, 0x93, 0x28, 0x53, 0xAA, 0x5C, 0x69, 0x31, 0x93, 0x98, 0x97, 0x30, 0x63, 0xCA, 0x8C, 0x59, 0xD0, 0xA5, 0x18, 0x65, 0x04, 0xA1, 0xBD, 0xCC, 0xD4, 0x50, 0xD9, 0xCC, 0x9F, 0x3C, 0x09, 0xA2, 0xF9, 0x09, 0x13, 0xE7, 0xBE, 0xA1, 0x44, 0x93, 0x06, 0x75, 0x78, 0x03, 0x80, 0xD3, 0xA7, 0x50, 0xA3, 0x3E, 0x35, 0x50, 0x10, 0x8D, 0xD3, 0xA5, 0xFB, 0x88, 0x39, 0xBD, 0xD1, 0x70, 0x92, 0xD4, 0xAF, 0x62, 0x0A, 0x7E, 0x85, 0x1A, 0x74, 0xAC, 0x59, 0xA7, 0x61, 0x1F, 0x8A, 0x39, 0x3B, 0x76, 0x45, 0x41, 0xAF, 0x00, 0x88, 0x11, 0x54, 0x86, 0xB6, 0x61, 0x26, 0xB6, 0x4E, 0xD1, 0x14, 0x8C, 0x71, 0x56, 0xEE, 0x3E, 0xBE, 0x78, 0xA3, 0xA6, 0x75, 0xB8, 0x16, 0x40, 0x26, 0x65, 0x88, 0x13, 0x2B, 0x4E, 0xCC, 0x97, 0x6A, 0xD6, 0x18, 0x31, 0xD0, 0x20, 0x16, 0x03, 0x79, 0x20, 0xE2, 0x4C, 0x2B, 0x20, 0x6B, 0xDE, 0xCC, 0x75, 0xDF, 0x5D, 0xBC, 0x83, 0x05, 0x02, 0xDE, 0x3A, 0xF9, 0xAA, 0x40, 0xA7, 0x31, 0x16, 0xAB, 0x46, 0xAC, 0x15, 0x40, 0x68, 0x86, 0x85, 0xEB, 0x35, 0xE4, 0xEB, 0xD6, 0xB3, 0xD3, 0x49, 0x02, 0x9B, 0x02, 0x30, 0x2A, 0xF0, 0xF3, 0xD8, 0x18, 0xBD, 0x03, 0xEB, 0x25, 0x38, 0x1A, 0x40, 0xE7, 0xCF, 0x7E, 0x1B, 0xF7, 0xAC, 0xAB, 0xD6, 0x29, 0x6F, 0x9C, 0xD0, 0xF7, 0xC9, 0x16, 0x68, 0x00, 0x80, 0x63, 0xAD, 0x06, 0x26, 0x41, 0xAB, 0x77, 0x63, 0x85, 0xE3, 0x81, 0xBE, 0x8B, 0xA3, 0xFF, 0x0E, 0xBE, 0x42, 0xAA, 0x01, 0xEF, 0xDE, 0x71, 0x0B, 0xC4, 0xD9, 0x98, 0xB9, 0x55, 0xC3, 0xA7, 0x01, 0x00, 0x17, 0x58, 0x6F, 0xBB, 0xFD, 0xE9, 0xFB, 0xE8, 0xBA, 0x86, 0x58, 0xD8, 0xE8, 0xD8, 0xA0, 0xB4, 0xBD, 0x65, 0x9A, 0x41, 0xAD, 0xA9, 0xA7, 0xDB, 0x78, 0x42, 0x45, 0x85, 0x50, 0x7F, 0xF1, 0xCD, 0x07, 0x57, 0x72, 0xF2, 0x05, 0xF7, 0x15, 0x74, 0xCC, 0x11, 0xE6, 0x5C, 0x7E, 0xFF, 0x89, 0x66, 0x5D, 0x41, 0x85, 0xF9, 0x55, 0xD3, 0x6D, 0x1A, 0x3E, 0x35, 0xDF, 0x40, 0x85, 0x3D, 0x85, 0x90, 0x6E, 0xFE, 0xED, 0x77, 0xD4, 0x80, 0x08, 0xFA, 0xA6, 0x20, 0x86, 0x2A, 0x5A, 0xB8, 0x5B, 0x7C, 0x52, 0xF9, 0x55, 0x5D, 0x6D, 0xE0, 0xDD, 0x70, 0x43, 0x26, 0xC4, 0x60, 0xF5, 0xD8, 0x8E, 0x02, 0xA1, 0x11, 0x83, 0x6E, 0x23, 0x0A, 0x54, 0xD8, 0x90, 0x37, 0xF4, 0xE8, 0x61, 0x90, 0x5C, 0xEC, 0xD8, 0x23, 0x6A, 0xCA, 0x10, 0x33, 0xC9, 0x0D, 0xA9, 0x69, 0x78, 0xDD, 0x58, 0xB2, 0xE9, 0xF7, 0xDA, 0x42, 0x0C, 0xD6, 0x93, 0xE1, 0x3E, 0xE5, 0x7D, 0xB7, 0xD7, 0x85, 0x0C, 0x21, 0x48, 0x22, 0x99, 0x5B, 0x21, 0x54, 0x9E, 0x54, 0xC3, 0x0D, 0xD4, 0xE2, 0x58, 0xEB, 0x55, 0xD8, 0x10, 0x83, 0xFB, 0x7C, 0x19, 0xE0, 0x41, 0x85, 0x39, 0xC4, 0x57, 0x91, 0x2B, 0xCE, 0x58, 0x67, 0x84, 0x07, 0x55, 0x27, 0x95, 0x7A, 0x03, 0xDD, 0xD9, 0x9A, 0x54, 0xD0, 0xC0, 0xD8, 0x19, 0x53, 0x17, 0x42, 0x33, 0x96, 0x8D, 0x1B, 0x12, 0x24, 0xA5, 0x90, 0x79, 0x4D, 0x82, 0x86, 0xA5, 0x93, 0x58, 0xCA, 0x5B, 0x7C, 0xD9, 0x4D, 0x12, 0x54, 0x97, 0x69, 0x66, 0x75, 0x29, 0xA6, 0x96, 0x96, 0xB8, 0x55, 0xA6, 0x46, 0x55, 0x37, 0x9F, 0x8B, 0x50, 0xC5, 0x19, 0xE3, 0x9C, 0x68, 0x7E, 0xFF, 0x05, 0x20, 0x00, 0x38, 0x06, 0x19, 0x18, 0xA1, 0x34, 0x32, 0x47, 0x27, 0x82, 0x70, 0x3D, 0x95, 0xA2, 0x54, 0x41, 0x85, 0x29, 0xA1, 0x54, 0x59, 0xCA, 0x09, 0xDB, 0x85, 0x5E, 0xCA, 0x4A, 0x1D, 0xA0, 0x03, 0xBD, 0xC7, 0x16, 0xAE, 0x7F, 0x3E, 0x95, 0x16, 0x83, 0x8E, 0x1A, 0x37, 0xAC, 0x53, 0x6E, 0x7E, 0x05, 0xE9, 0xAA, 0x70, 0xC2, 0xB8, 0xA5, 0x42, 0x74, 0x2A, 0xC9, 0xE3, 0xB8, 0x85, 0x62, 0x9B, 0xDF, 0x0D, 0x62, 0xA0, 0x21, 0x6E, 0x6B, 0x31, 0x8C, 0xDB, 0xE3, 0xA6, 0x59, 0x65, 0xF2, 0x59, 0x5A, 0xCA, 0xC8, 0x3B, 0x9D, 0x53, 0x2B, 0xA0, 0x8B, 0x06, 0x8F, 0x44, 0x8A, 0x41, 0x64, 0x8F, 0x85, 0xCD, 0x8A, 0xE3, 0xBA, 0xE4, 0x7A, 0xCB, 0x1F, 0x99, 0x0B, 0xED, 0x29, 0x21, 0xB4, 0xAA, 0x2E, 0x07, 0x40, 0x9B, 0x04, 0x25, 0x2B, 0xAD, 0x91, 0x5F, 0x75, 0xF6, 0x60, 0x83, 0x0E, 0x7F, 0x9B, 0x10, 0x9D, 0x09, 0x9B, 0xDB, 0x1A, 0xC4, 0x60, 0x32, 0xAB, 0x90, 0x96, 0x08, 0x45, 0x35, 0x9C, 0xA9, 0x4F, 0x75, 0xF6, 0xDE, 0xAC, 0x62, 0x26, 0x44, 0x72, 0x73, 0xA8, 0xC9, 0x77, 0x9E, 0x01, 0x7B, 0xCA, 0x67, 0x33, 0xA0, 0x9F, 0xA9, 0x27, 0x06, 0xCD, 0xAC, 0x9D, 0x37, 0x1C, 0x1A, 0xDE, 0x41, 0x78, 0x53, 0xBD, 0xF2, 0x05, 0xD5, 0x5D, 0x0C, 0xDB, 0xCD, 0x9B, 0x9B, 0x53, 0xC4, 0x40, 0xD3, 0x5A, 0x5A, 0x17, 0x47, 0x5B, 0x73, 0x0C, 0x33, 0x4F, 0x3D, 0x31, 0xCC, 0x81, 0xB5, 0x9A, 0x55, 0x5E, 0x4B, 0x03, 0x20, 0x50, 0xB5, 0x9D, 0xED, 0x8A, 0xF3, 0x80, 0x80, 0xB9, 0x7A, 0x72, 0xAC, 0xF3, 0xAD, 0x1C, 0x62, 0xD6, 0xA1, 0x3A, 0x84, 0x06, 0xCD, 0x54, 0xEF, 0x19, 0xF7, 0xDC, 0x34, 0xD3, 0x7C, 0x1C, 0x88, 0x7F, 0x39, 0x55, 0xAC, 0x8A, 0x93, 0x9C, 0xFF, 0x77, 0x98, 0x7E, 0x48, 0xD7, 0x03, 0x97, 0xD1, 0x99, 0x09, 0x44, 0x8C, 0xCF, 0xF5, 0x31, 0xF8, 0x32, 0x66, 0x06, 0x18, 0x05, 0x59, 0xDD, 0x71, 0x7B, 0xF7, 0xB8, 0x66, 0x70, 0x83, 0x1C, 0xD2, 0xC7, 0x14, 0x03, 0x90, 0xE8, 0xCB, 0x03, 0x1D, 0xF8, 0x15, 0xB4, 0x02, 0x42, 0x95, 0xE2, 0xA2, 0x2C, 0x4D, 0x94, 0x73, 0xD7, 0xF4, 0x19, 0x2B, 0x5E, 0x54, 0x3E, 0x7E, 0x08, 0xD5, 0xBD, 0x22, 0x97, 0x6E, 0x50, 0xBD, 0x04, 0x8B, 0x8B, 0xEE, 0xA7, 0xB7, 0xC9, 0xBB, 0xD5, 0xBB, 0x02, 0x4D, 0x59, 0xA2, 0xBF, 0x80, 0x05, 0x35, 0xAE, 0xBC, 0x46, 0xC1, 0x15, 0x83, 0xBF, 0xF2, 0x66, 0xA2, 0xEF, 0xF0, 0xC4, 0x18, 0xE5, 0x2E, 0x8F, 0x08, 0x29, 0xE9, 0x51, 0xAF, 0x15, 0x8F, 0x69, 0x16, 0xB4, 0xA1, 0x7E, 0x36, 0xAB, 0x88, 0xBD, 0x0F, 0xB8, 0xA6, 0xE1, 0xAC, 0xE7, 0x6A, 0xED, 0x41, 0x4E, 0xB5, 0x9C, 0x91, 0xB3, 0x5F, 0xF1, 0xE9, 0x39, 0xB0, 0x62, 0xD1, 0x2A, 0xE1, 0xF6, 0x6F, 0xC6, 0xA5, 0xE1, 0x7C, 0xFA, 0x3D, 0xE5, 0x97, 0x60, 0x25, 0xBB, 0x2F, 0x91, 0x4B, 0x68, 0xE0, 0x27, 0xA9, 0xA5, 0x80, 0x11, 0x03, 0xA9, 0x30, 0xE5, 0x97, 0xF5, 0xA1, 0xC6, 0x52, 0x97, 0x42, 0x43, 0x02, 0x3D, 0x15, 0x14, 0xB8, 0xBC, 0x04, 0x53, 0x0B, 0x54, 0x60, 0x02, 0x13, 0xF8, 0x94, 0x4B, 0xAD, 0x2F, 0x5D, 0x10, 0x44, 0x8D, 0x02, 0x97, 0xB4, 0x0F, 0x4B, 0xB5, 0x0E, 0x56, 0x7E, 0x5A, 0x90, 0xB9, 0x06, 0x82, 0xB9, 0x7D, 0x70, 0x01, 0x2C, 0x99, 0x33, 0x11, 0x41, 0x58, 0xB5, 0xA9, 0x97, 0xA1, 0x8C, 0x2D, 0xD9, 0xAA, 0xE0, 0x46, 0x50, 0x04, 0x2E, 0xA7, 0x24, 0x0A, 0x3C, 0x5C, 0xDB, 0x87, 0x01, 0xC7, 0x87, 0x3E, 0xAF, 0x11, 0x84, 0x7A, 0x21, 0x84, 0xD1, 0x70, 0xFF, 0x76, 0x68, 0x16, 0x0A, 0x41, 0x05, 0x74, 0x15, 0x89, 0x12, 0x07, 0x95, 0x31, 0x24, 0x24, 0x89, 0x88, 0x32, 0x3A, 0xBA, 0x49, 0x26, 0xA6, 0xE3, 0x39, 0x03, 0x10, 0xA3, 0x47, 0x4D, 0x12, 0xCF, 0xA6, 0x9C, 0x46, 0x0C, 0x1A, 0xEE, 0x03, 0x78, 0xF8, 0xA2, 0x0C, 0x8F, 0x88, 0xB1, 0x3A, 0xD7, 0x34, 0x0F, 0x30, 0x46, 0xE9, 0x91, 0xF1, 0x74, 0xE4, 0x17, 0x7F, 0x69, 0x6C, 0x22, 0x87, 0x3A, 0xCB, 0x6B, 0x4E, 0xC8, 0x3D, 0xDB, 0x7C, 0x45, 0x84, 0x33, 0x92, 0x58, 0xF8, 0xF6, 0x21, 0x28, 0x93, 0xA1, 0x6E, 0x85, 0x51, 0x91, 0x4B, 0xB5, 0xF8, 0x64, 0x91, 0x38, 0x9A, 0x85, 0x74, 0x3A, 0x84, 0x0A, 0xB7, 0xBE, 0xE2, 0xBF, 0x33, 0xC9, 0x2F, 0x5A, 0x7B, 0x2C, 0xE3, 0xD9, 0x82, 0x68, 0xC8, 0x60, 0x8D, 0xF0, 0x60, 0x33, 0xA2, 0x4B, 0x1F, 0x9F, 0x12, 0x94, 0xFA, 0xC8, 0x06, 0x3F, 0x56, 0x11, 0xCF, 0x22, 0x71, 0x03, 0x8D, 0xB2, 0xC1, 0x28, 0x66, 0xE5, 0x93, 0xCF, 0x73, 0xD6, 0xB3, 0x96, 0xD4, 0xD4, 0xA3, 0x7E, 0x4F, 0xF1, 0xCE, 0x53, 0x1A, 0xB9, 0x9D, 0x7D, 0x6C, 0xA7, 0x3B, 0x7D, 0xE4, 0xCB, 0x1B, 0xF1, 0x14, 0xAB, 0x1A, 0x29, 0x04, 0x88, 0xE5, 0x03, 0x1F, 0x00, 0x0C, 0x64, 0x2E, 0x58, 0xDE, 0x91, 0x97, 0x7E, 0x62, 0xCB, 0x0D, 0x4F, 0x84, 0x42, 0x98, 0x39, 0x6E, 0x33, 0x6B, 0x0A, 0x4A, 0x62, 0xBE, 0x56, 0x1A, 0x45, 0x0E, 0xE9, 0x95, 0x8C, 0xDB, 0xDE, 0x65, 0x60, 0x48, 0x90, 0x65, 0x4C, 0x06, 0x32, 0xD0, 0xD1, 0x4C, 0x54, 0x32, 0x13, 0x83, 0xE6, 0x3D, 0x47, 0x19, 0xD3, 0xA1, 0xCC, 0x66, 0x8C, 0xC5, 0x25, 0x84, 0x01, 0x12, 0x3E, 0x79, 0xF3, 0xA1, 0x21, 0x7D, 0xA5, 0xA8, 0x82, 0x10, 0xB1, 0x5B, 0x03, 0x19, 0xDC, 0x41, 0x2A, 0xB9, 0xFF, 0xAC, 0xDA, 0x7C, 0xC6, 0x72, 0x06, 0x7B, 0x88, 0x17, 0xAB, 0xC2, 0xB4, 0xF8, 0xF8, 0xB3, 0x5B, 0x9C, 0x5B, 0x1B, 0x5E, 0x6A, 0x65, 0x47, 0x0E, 0xBA, 0x8A, 0x9E, 0x7F, 0x72, 0xCC, 0xE9, 0x66, 0xD7, 0x36, 0xBB, 0xEC, 0x44, 0x5E, 0x05, 0x21, 0x86, 0xBF, 0x18, 0x88, 0x14, 0x79, 0xF5, 0x10, 0x5D, 0x62, 0xD8, 0xDB, 0x6B, 0x24, 0xF1, 0x12, 0x69, 0x51, 0x66, 0x2B, 0x25, 0xBD, 0x4A, 0xF2, 0x5C, 0x82, 0x16, 0x8C, 0xF6, 0x26, 0x13, 0xEF, 0x39, 0x9E, 0x00, 0x3D, 0xFA, 0x12, 0x61, 0xAA, 0xA7, 0x47, 0xD2, 0xDC, 0xC9, 0x44, 0xBE, 0x87, 0x4C, 0xD9, 0x54, 0xCB, 0x97, 0x96, 0x61, 0x67, 0x7C, 0xEE, 0x06, 0xCF, 0x7B, 0x8A, 0xEE, 0x94, 0x39, 0xD4, 0x8D, 0xEB, 0xD4, 0x63, 0xCA, 0x8B, 0x08, 0x0A, 0x8F, 0x37, 0x1C, 0x4B, 0x0B, 0x2B, 0x3A, 0x97, 0x2B, 0x92, 0x70, 0x8A, 0xEB, 0x21, 0xC6, 0x30, 0x34, 0x31, 0x8C, 0x1E, 0x19, 0xF0, 0x57, 0x78, 0xE3, 0x98, 0x1D, 0x8D, 0xE6, 0x4E, 0x8A, 0x64, 0xC2, 0x53, 0x18, 0xEC, 0xCD, 0x50, 0x04, 0x05, 0x93, 0xB1, 0xE8, 0x2B, 0x9F, 0x93, 0x58, 0x92, 0x32, 0x42, 0x41, 0x0C, 0x50, 0x28, 0x63, 0x19, 0x76, 0xD5, 0x84, 0x32, 0x40, 0xE1, 0x4D, 0x50, 0x10, 0x23, 0x14, 0x77, 0x85, 0x06, 0x5E, 0x33, 0x27, 0x86, 0xB3, 0x22, 0x25, 0x2A, 0x91, 0x39, 0x29, 0x00, 0xFC, 0xC7, 0xAE, 0xA1, 0x34, 0x35, 0x23, 0xBC, 0x62, 0xDB, 0x51, 0x0F, 0xA2, 0x09, 0x1C, 0x20, 0xC0, 0x01, 0x08, 0x78, 0xC0, 0x65, 0x13, 0xE0, 0x00, 0xCE, 0x7A, 0xB6, 0xB3, 0x98, 0xE5, 0x2C, 0x02, 0x10, 0xA0, 0x89, 0x7D, 0x84, 0x01, 0x9E, 0x65, 0x94, 0xCA, 0xA6, 0x58, 0x05, 0x51, 0xC8, 0x8E, 0x0F, 0x98, 0x81, 0x69, 0xE4, 0x7A, 0x3A, 0xFB, 0x80, 0x04, 0xFF, 0xD4, 0xF6, 0xB6, 0xB6, 0x4D, 0x00, 0x0E, 0x72, 0x7B, 0xDB, 0xDE, 0xCA, 0x20, 0x1A, 0x77, 0x29, 0x4B, 0x60, 0x96, 0xB9, 0xB5, 0x63, 0x52, 0x64, 0x12, 0x9C, 0x69, 0xDE, 0x94, 0xA8, 0x76, 0x9B, 0x28, 0xB1, 0x66, 0x77, 0x3E, 0xB9, 0x4A, 0xF3, 0xD6, 0xD3, 0x44, 0x18, 0xDC, 0x75, 0xB7, 0x0F, 0xB8, 0x2D, 0x68, 0x73, 0x90, 0xD9, 0xDA, 0x3A, 0x80, 0xBB, 0x0F, 0x00, 0xAD, 0x6D, 0x11, 0x00, 0x8A, 0xAC, 0x58, 0x26, 0x4A, 0x50, 0x72, 0xAE, 0x73, 0xFD, 0xC2, 0x1D, 0xC8, 0xE4, 0xE5, 0x8C, 0xA8, 0x39, 0xDE, 0x44, 0xD6, 0xF7, 0xD0, 0x01, 0x7D, 0x8D, 0x39, 0x51, 0xAB, 0x6F, 0x26, 0x96, 0x91, 0x59, 0x04, 0xEC, 0x16, 0xBB, 0xB6, 0xD5, 0x2C, 0x6E, 0x1F, 0x30, 0x83, 0xDA, 0xE2, 0xC0, 0xC0, 0x0E, 0x1D, 0xEA, 0xC8, 0xA2, 0x42, 0xCC, 0xA9, 0x4C, 0xA4, 0x87, 0xC2, 0xB4, 0xDF, 0x5C, 0xCA, 0xA3, 0x32, 0xFB, 0x22, 0xB5, 0x79, 0xDD, 0x0D, 0x30, 0x6D, 0x3B, 0xCB, 0x5D, 0xF0, 0x3A, 0x40, 0xC0, 0xB8, 0x2D, 0x6F, 0x7E, 0xDA, 0xF7, 0xAD, 0x1B, 0x1A, 0x73, 0x88, 0x8A, 0xB4, 0x88, 0xC2, 0x8A, 0x0B, 0xAD, 0x15, 0x37, 0xCB, 0x9D, 0x2F, 0x03, 0x45, 0x6E, 0x3B, 0x9B, 0x00, 0xF0, 0x66, 0x36, 0xC0, 0x37, 0x2E, 0x70, 0x02, 0x36, 0xEB, 0x80, 0x65, 0x0C, 0x63, 0xB2, 0xCC, 0xAC, 0xE3, 0x8B, 0x63, 0x49, 0x5C, 0x8A, 0x98, 0x52, 0x3F, 0x20, 0x53, 0x61, 0x3E, 0x2D, 0xAC, 0x9F, 0xCE, 0x28, 0x43, 0xB3, 0x39, 0xC8, 0xC1, 0x81, 0x39, 0x9C, 0x83, 0xDA, 0x66, 0x36, 0x07, 0x05, 0xFE, 0xF0, 0x77, 0x73, 0x60, 0x5B, 0x65, 0x68, 0x02, 0xC8, 0xC8, 0x54, 0x72, 0xF7, 0x5E, 0x87, 0x11, 0x53, 0xCE, 0x4B, 0xBD, 0xCA, 0xA0, 0x12, 0xBD, 0xAA, 0x29, 0x57, 0xE6, 0x68, 0xA2, 0xFF, 0xB3, 0x3F, 0xD8, 0x47, 0x6D, 0x67, 0xE0, 0x00, 0x4D, 0xF0, 0x37, 0x0D, 0x88, 0xD9, 0x07, 0x1C, 0x10, 0x90, 0x80, 0x1A, 0xEF, 0xE3, 0x07, 0x97, 0xF5, 0x26, 0x64, 0xA8, 0x34, 0x9D, 0xE6, 0x19, 0x9A, 0x35, 0x44, 0x42, 0x17, 0x09, 0x7D, 0x32, 0x24, 0x9E, 0x5E, 0xE4, 0xC8, 0x58, 0x92, 0x54, 0x54, 0x86, 0xD1, 0x4D, 0xA7, 0x84, 0x41, 0x20, 0xFC, 0x7D, 0xC0, 0x18, 0xF6, 0x01, 0xDE, 0x04, 0x94, 0x96, 0x27, 0xD1, 0x28, 0xAD, 0x26, 0x32, 0xFB, 0xDD, 0x7D, 0xA4, 0xA1, 0xB6, 0x09, 0x36, 0x26, 0xB1, 0xDE, 0x49, 0xD6, 0x20, 0x52, 0xE4, 0xA9, 0xC5, 0x45, 0xD4, 0x3B, 0x5B, 0xBB, 0x0F, 0x7A, 0x38, 0x05, 0x07, 0xEB, 0xC9, 0xEC, 0xA6, 0x73, 0x00, 0xDA, 0xD2, 0xEE, 0x63, 0xD4, 0x3D, 0xD6, 0x84, 0x95, 0x73, 0xF0, 0x67, 0xCE, 0xC2, 0x2B, 0x86, 0x63, 0x21, 0xEE, 0x44, 0x1F, 0x2B, 0x11, 0x29, 0xC1, 0x34, 0x5D, 0x11, 0x66, 0xB0, 0xA7, 0x3C, 0x15, 0xD3, 0x97, 0xA4, 0x41, 0x5E, 0x0C, 0x4C, 0x57, 0x61, 0xEF, 0x0A, 0x67, 0x4E, 0xF7, 0xB7, 0xB4, 0xA0, 0xE0, 0x73, 0x02, 0x7E, 0x7D, 0xD9, 0x07, 0x10, 0x3B, 0x0D, 0x3B, 0x2E, 0x06, 0x34, 0xA6, 0x9D, 0x3C, 0xD8, 0x1A, 0xE7, 0x25, 0x8C, 0xCD, 0xA1, 0x58, 0x23, 0xA2, 0x1B, 0xFF, 0x7D, 0x42, 0xB2, 0xF0, 0x33, 0xD7, 0x8F, 0xF5, 0xBA, 0x63, 0x35, 0x70, 0x1A, 0x0E, 0xC5, 0xC0, 0x41, 0x69, 0xD5, 0xF0, 0x61, 0x1C, 0xE0, 0xC4, 0x9B, 0xDE, 0x2C, 0x76, 0x8F, 0x7F, 0x9C, 0xB5, 0x04, 0x4F, 0x54, 0xA9, 0x15, 0x11, 0xAB, 0xAA, 0xCF, 0xD2, 0x60, 0x04, 0x7D, 0xB9, 0x79, 0x9C, 0x8D, 0x73, 0x1A, 0xA2, 0xB1, 0x0F, 0x50, 0x88, 0xFA, 0xC6, 0xCB, 0xF8, 0x35, 0x60, 0x43, 0x8E, 0xEE, 0x1E, 0xB3, 0xD6, 0x2C, 0x1F, 0xFF, 0x2C, 0x50, 0x88, 0x8E, 0xFD, 0x10, 0x9C, 0xCA, 0x44, 0x37, 0x3B, 0x5A, 0x69, 0xBB, 0x59, 0x2A, 0x9F, 0x9D, 0x78, 0xAA, 0x82, 0xE9, 0xCA, 0x04, 0x3D, 0x42, 0xA1, 0xEB, 0xFC, 0x28, 0x23, 0x0D, 0xFB, 0x08, 0x79, 0x34, 0x64, 0xD0, 0xE5, 0x51, 0x43, 0x59, 0xE1, 0x3E, 0x86, 0x8A, 0x24, 0x56, 0xCA, 0xC0, 0xE4, 0x4D, 0x07, 0x29, 0x2F, 0xD1, 0x4D, 0x83, 0x59, 0x59, 0xD8, 0x89, 0x94, 0xB1, 0x11, 0x0B, 0x86, 0x0A, 0x84, 0xAE, 0xF6, 0xE4, 0x04, 0xC4, 0x79, 0x1F, 0x6A, 0x20, 0xED, 0x40, 0xA0, 0x91, 0x83, 0xDF, 0x1A, 0x1D, 0x01, 0xE7, 0xEE, 0xB3, 0x97, 0xA1, 0x12, 0xF2, 0x32, 0x7D, 0x65, 0x92, 0x7B, 0x43, 0xA4, 0x9E, 0xDE, 0xAE, 0x10, 0x16, 0x8A, 0x2F, 0x2D, 0xC4, 0xE8, 0x2C, 0xD0, 0x97, 0xA1, 0xF7, 0xFC, 0xF8, 0x1A, 0x27, 0x9A, 0xC8, 0x6D, 0x9C, 0x7F, 0xA0, 0xDB, 0xA4, 0xD3, 0x3A, 0x21, 0x65, 0x64, 0x6A, 0x31, 0x85, 0x9A, 0x10, 0x21, 0xA5, 0xF6, 0x64, 0x9A, 0xC9, 0x97, 0x30, 0x87, 0xA6, 0x4E, 0xA9, 0xC4, 0x20, 0x19, 0x99, 0xCE, 0x41, 0xA8, 0xFB, 0xCB, 0xD7, 0xEF, 0xEA, 0x35, 0x1A, 0x7B, 0xE6, 0xB0, 0xA9, 0x33, 0xBB, 0xF6, 0x49, 0x20, 0x26, 0x0C, 0x95, 0x79, 0x4C, 0x0C, 0xD4, 0xE3, 0x78, 0x5F, 0x29, 0xE6, 0x86, 0x5E, 0x9C, 0x26, 0xD6, 0x3E, 0xD7, 0x35, 0x15, 0x6A, 0x4F, 0xA1, 0x51, 0xD1, 0x6B, 0x77, 0x2D, 0x9B, 0x5D, 0x02, 0x7B, 0x97, 0xB3, 0x05, 0xF6, 0xFD, 0x77, 0xC7, 0x9B, 0xF4, 0xA0, 0x04, 0x20, 0x52, 0x25, 0x2C, 0x0E, 0x21, 0x43, 0x64, 0x91, 0x12, 0x6D, 0x52, 0x57, 0xE5, 0x91, 0x9C, 0xE1, 0xF8, 0x32, 0x9C, 0x30, 0x04, 0xA0, 0x8F, 0x33, 0x8B, 0x4B, 0xA6, 0x73, 0x8B, 0xDD, 0xFE, 0x66, 0x77, 0xBC, 0xBF, 0xE7, 0x6C, 0xFF, 0x6D, 0x9D, 0x86, 0x5A, 0x5A, 0xE1, 0x64, 0xA2, 0x3B, 0x93, 0x65, 0x91, 0x70, 0x22, 0x1B, 0x14, 0xDD, 0x27, 0x22, 0xA0, 0x82, 0x0A, 0x40, 0x19, 0xA2, 0x82, 0xD8, 0x81, 0x42, 0xC7, 0xB7, 0xED, 0x2E, 0x9D, 0x3F, 0xCB, 0xE5, 0x0F, 0xF3, 0x16, 0x01, 0xCB, 0x10, 0x5C, 0xB8, 0x97, 0x43, 0x08, 0x71, 0x72, 0xF8, 0x72, 0x35, 0x32, 0x02, 0x56, 0x0F, 0x33, 0x11, 0x07, 0x70, 0x49, 0xF9, 0x41, 0x6A, 0xBA, 0x85, 0x63, 0xBD, 0x85, 0x7F, 0xBE, 0x17, 0x81, 0x0E, 0x80, 0x5E, 0x41, 0x01, 0x03, 0xB4, 0x97, 0x10, 0xF3, 0x54, 0x3D, 0x0F, 0x81, 0x06, 0x54, 0xD2, 0x3C, 0xBE, 0x41, 0x25, 0x71, 0xA5, 0x0C, 0x37, 0x44, 0x0C, 0x9F, 0x20, 0x82, 0x46, 0xB1, 0x5E, 0xCA, 0x30, 0x0C, 0x38, 0x80, 0x2E, 0xCE, 0x25, 0x10, 0xE1, 0xE6, 0x5D, 0x06, 0x66, 0x5B, 0xBB, 0x25, 0x5E, 0x38, 0x98, 0x7F, 0x01, 0xF8, 0x48, 0x60, 0x24, 0x7F, 0x59, 0xC5, 0x41, 0xCA, 0x73, 0x3C, 0x4D, 0x04, 0x45, 0x4D, 0x74, 0x03, 0x48, 0xC4, 0x10, 0x9B, 0x04, 0x35, 0x03, 0xB2, 0x49, 0x15, 0xA6, 0x35, 0x4D, 0x86, 0x69, 0xBC, 0xC7, 0x5B, 0x52, 0xD8, 0x5B, 0x52, 0x08, 0x5A, 0xB6, 0xE1, 0x23, 0x0C, 0xD6, 0x35, 0x2C, 0xF7, 0x11, 0xC5, 0x61, 0x31, 0x2C, 0x02, 0x15, 0xD3, 0x12, 0x15, 0xF4, 0x10, 0x50, 0xBF, 0xF6, 0x5F, 0x97, 0x75, 0x86, 0x0E, 0x20, 0x03, 0x69, 0xB8, 0x86, 0x6A, 0x28, 0x03, 0x0F, 0xA0, 0x86, 0x33, 0x50, 0x5A, 0x4D, 0x81, 0x15, 0x27, 0xC6, 0x7C, 0x23, 0x71, 0x56, 0xAC, 0xB2, 0x7A, 0x30, 0x35, 0x14, 0xC5, 0x33, 0x14, 0xA1, 0x42, 0x0C, 0x8E, 0xE5, 0x14, 0x1C, 0x07, 0x38, 0x92, 0xE0, 0x29, 0xFB, 0x10, 0x0D, 0x88, 0x81, 0x70, 0x77, 0xB5, 0x0C, 0x8C, 0xD8, 0x88, 0x8D, 0xFF, 0xB8, 0x57, 0xDE, 0xC4, 0x71, 0x92, 0x60, 0x61, 0x1D, 0x24, 0x41, 0x62, 0xE0, 0x17, 0xFC, 0xB3, 0x40, 0x86, 0x98, 0x1F, 0x99, 0x72, 0x56, 0xEA, 0x51, 0x2F, 0x71, 0x85, 0x49, 0x63, 0x31, 0x7F, 0xC6, 0xA2, 0x1B, 0x63, 0xA8, 0x6A, 0xED, 0xA2, 0x24, 0xFA, 0x50, 0x1F, 0xC3, 0x90, 0x09, 0xAD, 0xF8, 0x8A, 0x87, 0x21, 0x1D, 0xB5, 0x16, 0x80, 0xA3, 0x91, 0x60, 0x09, 0x11, 0x15, 0x61, 0x13, 0x15, 0x9B, 0x43, 0x55, 0xED, 0x74, 0x3D, 0xF9, 0xC3, 0x27, 0x85, 0x31, 0x88, 0x6C, 0xA1, 0x0C, 0xD1, 0xD0, 0x81, 0x86, 0x31, 0x4D, 0xAC, 0xF2, 0x41, 0x88, 0x07, 0x86, 0xB6, 0xE2, 0x84, 0x8C, 0x87, 0x10, 0xF5, 0xC2, 0x3C, 0x30, 0x85, 0x1A, 0xFE, 0x62, 0x14, 0x51, 0x37, 0x2E, 0xFE, 0xB2, 0x75, 0xD3, 0x21, 0x2F, 0x85, 0x51, 0x58, 0x87, 0x83, 0x16, 0x54, 0x72, 0x6B, 0x99, 0xA0, 0x09, 0x34, 0xC4, 0x1D, 0x3B, 0x31, 0x0C, 0x47, 0xE2, 0x2F, 0xFE, 0xE3, 0x13, 0x20, 0x05, 0x52, 0x85, 0x61, 0x45, 0x67, 0x85, 0x2E, 0x0C, 0x14, 0x40, 0xFE, 0xF2, 0x8C, 0x0F, 0x61, 0x4C, 0xC2, 0xE5, 0x43, 0xFF, 0x24, 0x10, 0xA7, 0x45, 0x49, 0x64, 0xD3, 0x4C, 0x1D, 0x82, 0x31, 0x76, 0x44, 0x6B, 0x5F, 0x66, 0x16, 0xF3, 0xA1, 0x72, 0x89, 0x24, 0x15, 0xBB, 0xE4, 0x10, 0x86, 0x04, 0x21, 0x07, 0x89, 0x37, 0x10, 0x87, 0x43, 0xC3, 0x54, 0x7B, 0xCC, 0xF8, 0x45, 0x17, 0xA2, 0x0F, 0xA1, 0x02, 0x44, 0x9B, 0xC2, 0x70, 0x63, 0x21, 0x51, 0x78, 0x53, 0x46, 0x0B, 0x59, 0x15, 0x31, 0x20, 0x39, 0x8F, 0x33, 0x34, 0xEF, 0x21, 0x39, 0xE6, 0x34, 0x2C, 0x07, 0x30, 0x1A, 0xF0, 0x92, 0x67, 0xEB, 0xF1, 0x4A, 0x88, 0x01, 0x93, 0x43, 0xA6, 0x02, 0x2B, 0x79, 0x57, 0x99, 0x00, 0x19, 0x92, 0xFF, 0x91, 0x88, 0x69, 0x96, 0x7A, 0x4F, 0xB3, 0x1A, 0xDB, 0x28, 0x22, 0xA2, 0x84, 0x18, 0x45, 0xB6, 0x10, 0x3B, 0xE4, 0x20, 0x2F, 0x42, 0x42, 0xF8, 0x34, 0x11, 0x28, 0xE3, 0x2A, 0xAF, 0xC1, 0x53, 0xA0, 0x80, 0x37, 0xD1, 0x73, 0x16, 0xCB, 0xC7, 0x10, 0x40, 0x33, 0x33, 0x6B, 0x72, 0x1C, 0x55, 0xB3, 0x1B, 0xBC, 0x61, 0x80, 0xC7, 0x86, 0x4E, 0xDB, 0x11, 0x1D, 0x60, 0x99, 0x38, 0x51, 0x71, 0x57, 0x0C, 0x07, 0x32, 0x37, 0x40, 0x33, 0xCB, 0x40, 0x0F, 0xFB, 0x28, 0x1D, 0xF7, 0x71, 0x43, 0xAC, 0x82, 0x1E, 0xE7, 0x21, 0x77, 0x12, 0x51, 0x2D, 0x5C, 0x80, 0x10, 0xA6, 0x64, 0x8C, 0xAE, 0x23, 0x59, 0x66, 0xF1, 0x2D, 0xB6, 0x76, 0x44, 0x14, 0xB9, 0x48, 0x87, 0xE7, 0x5A, 0x72, 0x19, 0x2D, 0xD7, 0x02, 0x66, 0x06, 0xA8, 0x97, 0x04, 0xD8, 0x3E, 0x32, 0x64, 0x91, 0x5A, 0xD3, 0x90, 0x1D, 0x91, 0x2C, 0xE5, 0xE4, 0x2E, 0x37, 0x04, 0x13, 0xD1, 0x26, 0x1F, 0x61, 0x80, 0x03, 0xDB, 0x08, 0x88, 0x88, 0x85, 0x2E, 0x54, 0xB2, 0x3E, 0x43, 0xE2, 0x46, 0x9C, 0x19, 0x40, 0x59, 0x25, 0x4D, 0xD2, 0x62, 0x84, 0x5B, 0xA5, 0x7C, 0xEB, 0x11, 0x45, 0x3A, 0x52, 0x30, 0x9E, 0x31, 0x5D, 0x15, 0xF1, 0x25, 0x79, 0x59, 0x50, 0x41, 0x35, 0x21, 0x11, 0xB3, 0x47, 0x05, 0x81, 0x64, 0x5A, 0xA8, 0x60, 0xA6, 0x96, 0x3E, 0x76, 0x79, 0x21, 0x4F, 0xF8, 0x9A, 0xCA, 0x62, 0x10, 0x76, 0x37, 0x10, 0x7D, 0x09, 0x54, 0xF5, 0x05, 0x4F, 0x19, 0x15, 0x56, 0xBE, 0xE9, 0x14, 0x32, 0x20, 0x10, 0x93, 0x68, 0x79, 0x41, 0xC6, 0x94, 0x10, 0x61, 0x58, 0x08, 0x84, 0x58, 0x97, 0xE2, 0x3C, 0x97, 0x42, 0x1F, 0x16, 0x84, 0x16, 0x92, 0x90, 0x06, 0xDD, 0x79, 0x24, 0x11, 0x44, 0x5C, 0xF5, 0xFF, 0x10, 0x41, 0x98, 0x98, 0x9D, 0x30, 0x12, 0x03, 0xDD, 0x89, 0x46, 0xBD, 0xB3, 0x74, 0x02, 0x91, 0x06, 0xA3, 0x08, 0x41, 0x98, 0x02, 0x18, 0xF0, 0xA9, 0x8C, 0x41, 0x36, 0x16, 0xD8, 0xE3, 0x80, 0xEE, 0x66, 0x8F, 0x09, 0xC1, 0x53, 0xC6, 0xC8, 0x72, 0xCF, 0x89, 0x98, 0xFA, 0x03, 0x7F, 0x67, 0x01, 0x32, 0xCC, 0xD6, 0x43, 0xF8, 0x23, 0x11, 0x90, 0x46, 0x9B, 0x06, 0x91, 0x9F, 0x78, 0x31, 0x95, 0x0B, 0x41, 0x3B, 0xCF, 0xA3, 0x24, 0xF0, 0xC2, 0x3B, 0xE7, 0xA2, 0x58, 0x9C, 0x24, 0x2E, 0xCA, 0x53, 0x75, 0x5F, 0xA4, 0x68, 0x15, 0x0A, 0x2D, 0xB4, 0x53, 0x98, 0xEA, 0xB2, 0x14, 0x37, 0x80, 0x03, 0x97, 0x19, 0x8E, 0x0F, 0x53, 0x3B, 0x3D, 0xE4, 0x29, 0xEC, 0x92, 0x12, 0x06, 0xB8, 0x54, 0x2B, 0x57, 0x4F, 0x2E, 0x13, 0x48, 0x73, 0xF1, 0x28, 0xFB, 0x34, 0x96, 0xCB, 0xE2, 0xA0, 0x20, 0x61, 0x8C, 0xCA, 0xF6, 0x91, 0x1E, 0x63, 0x8F, 0xFC, 0x34, 0x10, 0x7A, 0x44, 0x16, 0x07, 0xC1, 0x2A, 0xF7, 0x13, 0x3B, 0x84, 0x61, 0x95, 0x48, 0x0A, 0x97, 0xEA, 0x37, 0x36, 0x64, 0xB1, 0x1D, 0x56, 0x93, 0x4A, 0xCA, 0x37, 0x15, 0x36, 0x73, 0x1E, 0xD6, 0x21, 0x4B, 0x37, 0x50, 0x1F, 0x70, 0x81, 0x1E, 0x38, 0x31, 0x48, 0xDB, 0xF1, 0x1E, 0xC9, 0x41, 0x33, 0x85, 0xA9, 0x2A, 0x5E, 0xA9, 0x94, 0x88, 0x79, 0x25, 0x5A, 0x27, 0x3E, 0x00, 0x2A, 0x15, 0x44, 0x45, 0x4F, 0xC9, 0xA2, 0x84, 0xF0, 0x84, 0x2F, 0x85, 0x29, 0x66, 0x12, 0x51, 0x18, 0x24, 0x09, 0x37, 0x76, 0x2A, 0x4E, 0xFA, 0x13, 0x1E, 0x56, 0x84, 0x7B, 0x9B, 0xD1, 0xA7, 0xEE, 0x15, 0x5F, 0x93, 0xF3, 0xA7, 0x31, 0x40, 0x0F, 0xCB, 0xD0, 0x43, 0x38, 0x81, 0x91, 0x3C, 0x24, 0x9B, 0x9D, 0x19, 0x61, 0x7F, 0x8C, 0xEA, 0x6A, 0x98, 0x34, 0x94, 0x07, 0xA1, 0x1C, 0x2C, 0xA6, 0x98, 0xF6, 0x98, 0x50, 0x03, 0x11, 0x0D, 0xC3, 0x18, 0x74, 0x96, 0x36, 0x66, 0x1F, 0x74, 0x7B, 0x09, 0xD9, 0x7C, 0x65, 0x85, 0x10, 0x37, 0xB2, 0x30, 0x94, 0x3A, 0x3E, 0xD0, 0xC8, 0x78, 0x99, 0x8A, 0xA8, 0xCD, 0xD9, 0x27, 0x09, 0x86, 0x90, 0xB1, 0x11, 0x71, 0x64, 0x22, 0x8D, 0x3C, 0xE2, 0x38, 0xC8, 0xD7, 0x52, 0xC3, 0x23, 0x13, 0x9F, 0xE8, 0x52, 0x96, 0xE1, 0x2F, 0x21, 0x9A, 0x46, 0xDC, 0x18, 0x06, 0x32, 0x20, 0x55, 0x9A, 0xFA, 0x5A, 0x79, 0xF1, 0x3C, 0x1E, 0x65, 0xAB, 0xCC, 0x26, 0xA0, 0x79, 0x64, 0x27, 0x79, 0x9A, 0x94, 0x04, 0x11, 0x30, 0x43, 0x3A, 0x20, 0x1A, 0xE8, 0x43, 0x13, 0x97, 0x4C, 0x89, 0x8A, 0x98, 0x90, 0xCA, 0x28, 0x33, 0xF2, 0x53, 0x32, 0x1A, 0x51, 0x95, 0x19, 0x98, 0x7D, 0xC2, 0x72, 0x70, 0xA1, 0x1E, 0x0D, 0x28, 0x4F, 0xDD, 0x82, 0xA8, 0x6E, 0xAA, 0x97, 0xFF, 0xA0, 0x6A, 0xAD, 0xEC, 0x93, 0x37, 0xF4, 0x13, 0x8F, 0x68, 0x91, 0x29, 0x78, 0xF4, 0x12, 0x20, 0xF3, 0x73, 0xA6, 0xD7, 0x1B, 0xF2, 0x5A, 0x6B, 0x6F, 0x50, 0x88, 0x67, 0x45, 0x8F, 0x47, 0xD2, 0x8C, 0x85, 0x05, 0x44, 0xAB, 0x37, 0x25, 0x36, 0x4A, 0x11, 0xF1, 0xD7, 0xAE, 0xA3, 0xFA, 0x43, 0xA1, 0x9A, 0x20, 0x5A, 0x63, 0xB0, 0xCD, 0x14, 0x35, 0xC5, 0x91, 0x16, 0x10, 0x06, 0xAB, 0xEC, 0xDA, 0xAD, 0x92, 0x3A, 0x64, 0xF4, 0xC9, 0x98, 0xE0, 0x2A, 0x23, 0xB8, 0xD8, 0x8C, 0x41, 0xC1, 0x84, 0x63, 0x36, 0x4B, 0x14, 0x6B, 0x44, 0xED, 0x5A, 0x1E, 0x7C, 0xE2, 0xA5, 0x73, 0x31, 0x24, 0x3F, 0xF3, 0x22, 0x4C, 0xD4, 0x99, 0x45, 0xF8, 0x99, 0xD4, 0xE5, 0xB2, 0x82, 0x72, 0x18, 0x9F, 0x81, 0x6B, 0xB5, 0xD6, 0x3C, 0x3D, 0x78, 0x35, 0x01, 0x73, 0x45, 0x6A, 0x46, 0xA6, 0x15, 0x2B, 0xA4, 0xF1, 0x14, 0x3A, 0x74, 0xA8, 0x2B, 0x51, 0xB1, 0x37, 0x66, 0x91, 0x28, 0xFD, 0x29, 0x90, 0x03, 0x81, 0x03, 0x1E, 0xF8, 0x1E, 0x29, 0x62, 0x3E, 0x20, 0xC4, 0x7E, 0x34, 0xCA, 0x47, 0xB1, 0xE3, 0xB4, 0x33, 0xAA, 0x22, 0xE8, 0x83, 0x34, 0x48, 0xE5, 0x14, 0xF5, 0x87, 0x20, 0xD5, 0x2A, 0x1B, 0xCB, 0xB0, 0xA9, 0x04, 0xD1, 0x8F, 0x07, 0x8A, 0xB2, 0x7F, 0x82, 0xA3, 0x1B, 0xB3, 0xB0, 0x06, 0xC1, 0x6C, 0xFA, 0x14, 0x4F, 0x59, 0x08, 0xA4, 0x70, 0x9B, 0x33, 0x1C, 0xB7, 0x1E, 0x96, 0x91, 0x10, 0x88, 0x0A, 0x00, 0xC7, 0x37, 0x1C, 0x4C, 0x9B, 0x49, 0xF8, 0xC5, 0x9B, 0x73, 0xAA, 0xB6, 0x05, 0xD1, 0x30, 0x0C, 0x5B, 0xA4, 0xED, 0x8A, 0x10, 0x6D, 0x0B, 0x11, 0x41, 0xAA, 0x1E, 0xFD, 0x98, 0x3A, 0xE3, 0xF3, 0x42, 0x46, 0x0A, 0x42, 0x7F, 0x93, 0x18, 0x87, 0x66, 0x4E, 0x90, 0x4C, 0x84, 0x9F, 0xFF, 0x68, 0x4D, 0x9F, 0xB8, 0x1A, 0x37, 0x19, 0x03, 0x94, 0xE6, 0x73, 0xAC, 0xA1, 0x18, 0xEB, 0x81, 0x66, 0x7D, 0xAA, 0x1E, 0x7B, 0xFB, 0x37, 0x90, 0x91, 0x16, 0x9B, 0xBB, 0x49, 0xA9, 0xE1, 0x92, 0xDA, 0x2A, 0x59, 0x27, 0x2B, 0x9B, 0x07, 0x5A, 0x2E, 0x0A, 0x59, 0x10, 0x6B, 0x72, 0xA0, 0x7B, 0x2B, 0xA7, 0x03, 0x41, 0xB6, 0x0E, 0xD8, 0x39, 0xCD, 0xC4, 0xB1, 0x92, 0x45, 0x50, 0x6F, 0x0A, 0x15, 0x88, 0x04, 0x92, 0xD6, 0x73, 0xA0, 0xBA, 0xEB, 0x43, 0x06, 0x11, 0xAC, 0x0D, 0x5B, 0xBC, 0xC2, 0x3B, 0x9D, 0x49, 0x91, 0x14, 0x20, 0x63, 0x13, 0x46, 0x01, 0x75, 0x1A, 0xDA, 0x2C, 0x40, 0x51, 0x15, 0xD7, 0xDB, 0x41, 0x31, 0x31, 0x7F, 0x98, 0x10, 0x13, 0x47, 0x38, 0x09, 0xD9, 0x2B, 0x3B, 0xE2, 0x3B, 0xBE, 0xE4, 0x5B, 0xBE, 0xE6, 0x7B, 0xBE, 0xE8, 0x9B, 0xBE, 0xEA, 0xBB, 0xBE, 0xEC, 0xDB, 0xBE, 0xEE, 0xFB, 0xBE, 0xF0, 0x1B, 0xBF, 0xE3, 0x1B, 0x10, 0x00, 0x3B }; const char Html_png1[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x08, 0x06, 0x00, 0x00, 0x00, 0x70, 0xE2, 0x95, 0x54, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00, 0x00, 0x0C, 0x38, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x5D, 0x6B, 0xAC, 0x1D, 0x55, 0x15, 0xBE, 0xAD, 0x28, 0xD1, 0xA2, 0x02, 0x8A, 0xA5, 0x5A, 0xB9, 0xF4, 0x9E, 0xFD, 0x9A, 0x69, 0x7B, 0xA1, 0x3D, 0x33, 0x7B, 0xE6, 0x96, 0xE2, 0x05, 0x6A, 0x55, 0x7C, 0x44, 0x51, 0x40, 0x05, 0x7C, 0xFD, 0x10, 0x01, 0xA3, 0x01, 0x05, 0x23, 0x41, 0x82, 0x60, 0x40, 0xA2, 0xA2, 0x60, 0x13, 0x7C, 0xC4, 0x07, 0x89, 0x12, 0x11, 0x11, 0x90, 0x6A, 0x34, 0x36, 0x90, 0xB6, 0x28, 0x81, 0x60, 0x34, 0x1A, 0x8C, 0x02, 0xA9, 0x80, 0x28, 0x89, 0xB5, 0x58, 0xB0, 0xC5, 0x1A, 0xA1, 0xAD, 0xEB, 0x9B, 0xBD, 0xA6, 0xF7, 0x72, 0x98, 0xFB, 0x38, 0xE7, 0xEC, 0x99, 0x39, 0xE5, 0xCE, 0x97, 0x7C, 0x39, 0xF7, 0x9E, 0x33, 0x7B, 0xAD, 0xB5, 0xD7, 0xDA, 0x6B, 0xBF, 0xE6, 0x35, 0xB4, 0x3F, 0xC2, 0x98, 0xE4, 0x72, 0xAD, 0xD3, 0x3F, 0x2A, 0x19, 0x3D, 0x20, 0x85, 0xBD, 0xBF, 0x93, 0x4A, 0xC5, 0x0F, 0x6A, 0x95, 0xDE, 0x17, 0xE8, 0xF4, 0x32, 0x2E, 0xD2, 0xA0, 0x0C, 0x08, 0x61, 0x17, 0x1B, 0x6D, 0xEF, 0x31, 0x3A, 0xDD, 0xAB, 0x55, 0x42, 0xB4, 0xD3, 0x30, 0xD9, 0x4B, 0x01, 0xD9, 0x6B, 0xA4, 0xFD, 0x75, 0x18, 0xC6, 0x87, 0xB3, 0x88, 0x06, 0x1E, 0x31, 0x4F, 0xC9, 0xF8, 0x97, 0x4B, 0xC3, 0xD5, 0x05, 0xCE, 0x9F, 0x9A, 0x38, 0x5E, 0x29, 0xBB, 0x9E, 0x65, 0x34, 0xF0, 0x05, 0xA5, 0xDA, 0xC6, 0x68, 0x64, 0xC5, 0x4C, 0x99, 0xF1, 0x6C, 0x9A, 0xEC, 0xF8, 0x64, 0xAF, 0x10, 0xAB, 0x5A, 0x2C, 0xAA, 0x81, 0x0F, 0xE8, 0xD6, 0xCA, 0xE3, 0x03, 0x83, 0xAE, 0xAA, 0xD8, 0xF1, 0xD3, 0x11, 0x81, 0x6C, 0xB5, 0xE2, 0x31, 0x16, 0xD5, 0xC0, 0x07, 0x74, 0xAB, 0x7D, 0x5C, 0x3F, 0x01, 0x91, 0x32, 0x49, 0x58, 0x54, 0x03, 0x1F, 0x68, 0x02, 0x32, 0x60, 0x68, 0x02, 0x32, 0x60, 0x08, 0x64, 0xFC, 0xBA, 0x7E, 0x02, 0xA2, 0xD4, 0x58, 0xCC, 0xA2, 0x1A, 0xF8, 0x80, 0x6E, 0xC5, 0x6F, 0x0C, 0xCC, 0x58, 0xA1, 0xC3, 0x67, 0x22, 0x02, 0x49, 0x53, 0xDF, 0x13, 0x58, 0x54, 0x03, 0x1F, 0xA0, 0xD5, 0xF7, 0xE5, 0x61, 0xB0, 0xAA, 0xD0, 0xE1, 0x33, 0x11, 0xE5, 0x28, 0x20, 0x97, 0xB0, 0xA8, 0xB9, 0x01, 0x5A, 0x45, 0x87, 0x5A, 0xA7, 0x57, 0x29, 0x95, 0xAC, 0x37, 0x2A, 0xBD, 0x46, 0x88, 0x68, 0x05, 0xFF, 0xD4, 0x37, 0xC2, 0x30, 0x3D, 0x54, 0xAB, 0xF8, 0x1F, 0x6E, 0x85, 0x5E, 0xEC, 0xF4, 0xE9, 0x88, 0x72, 0x4A, 0x26, 0x8F, 0x0D, 0x0F, 0x1F, 0x75, 0x30, 0x8B, 0xEC, 0x1B, 0x4A, 0x45, 0x31, 0xD5, 0x75, 0x1D, 0xD7, 0xF7, 0x4B, 0x58, 0x27, 0xF1, 0x4F, 0xF5, 0x43, 0xCA, 0xE8, 0x9D, 0x46, 0xDB, 0xFF, 0x2C, 0x0D, 0x8F, 0xC9, 0x5A, 0xE3, 0xD2, 0xE0, 0x18, 0x38, 0xE2, 0x69, 0x29, 0xED, 0xFB, 0xF9, 0x90, 0x9E, 0xD1, 0x6E, 0xB7, 0x5F, 0x48, 0xB2, 0x7F, 0xDE, 0x6B, 0x76, 0xE4, 0x74, 0xE5, 0x93, 0x9F, 0x0E, 0x0D, 0x8D, 0x1F, 0xC0, 0xA2, 0x7B, 0x86, 0x91, 0xD1, 0x99, 0x14, 0xE4, 0xDD, 0xFB, 0xEA, 0x4B, 0x9F, 0x5A, 0xA5, 0x3B, 0xA5, 0x8C, 0x4F, 0xE2, 0x43, 0xEA, 0x83, 0x16, 0xD1, 0xBB, 0x60, 0x5C, 0xE7, 0x80, 0x8B, 0x56, 0x99, 0xF5, 0xF9, 0x32, 0xFE, 0x20, 0x1F, 0xDA, 0x35, 0x02, 0x35, 0xB6, 0x86, 0x5A, 0xE0, 0x5D, 0xFD, 0x06, 0x23, 0x27, 0xE4, 0x50, 0x70, 0x7F, 0xA5, 0xB5, 0x3D, 0x9E, 0x55, 0x74, 0x0D, 0xEA, 0x3A, 0xCF, 0x0E, 0x82, 0xB1, 0x6C, 0xA2, 0x30, 0x59, 0x36, 0xEA, 0x0F, 0x3F, 0xC0, 0x1F, 0x7C, 0x68, 0xF5, 0xD0, 0xC2, 0x9E, 0x0C, 0x23, 0xE0, 0xFC, 0xC9, 0xC6, 0xE5, 0xCC, 0x83, 0x42, 0x19, 0x74, 0x26, 0x17, 0x99, 0x11, 0x23, 0x23, 0x63, 0xAF, 0x32, 0xCA, 0x7E, 0xD4, 0xC8, 0xE4, 0x5E, 0x94, 0xED, 0x75, 0x20, 0x9F, 0x8A, 0xFB, 0x64, 0x6A, 0x7B, 0x0F, 0x75, 0xB1, 0x67, 0x51, 0x57, 0xF3, 0x4A, 0x56, 0x3D, 0x23, 0xA8, 0x9B, 0x3A, 0x27, 0x2C, 0x08, 0x46, 0x4E, 0xD4, 0xD7, 0x05, 0xC5, 0x9E, 0xCC, 0x45, 0xAA, 0x03, 0x29, 0x3D, 0x85, 0x94, 0xEF, 0x99, 0x2A, 0x18, 0x39, 0x61, 0x7C, 0x08, 0x07, 0xC8, 0xF8, 0x63, 0x5C, 0xB4, 0x10, 0x41, 0x90, 0x24, 0xE4, 0xA0, 0x6B, 0xA9, 0xAF, 0xDF, 0x86, 0x96, 0xEC, 0x3B, 0x10, 0x9D, 0x84, 0xFC, 0x2C, 0xF3, 0xB4, 0xDD, 0x8A, 0xB1, 0x40, 0xEB, 0x38, 0x62, 0x53, 0x0A, 0x41, 0xBF, 0x7F, 0x1C, 0xF5, 0x98, 0x2A, 0x18, 0x39, 0x39, 0x28, 0x7B, 0xE0, 0x1F, 0x2E, 0x5A, 0x3E, 0xA0, 0x2C, 0x98, 0x45, 0x30, 0x72, 0xA2, 0x12, 0x70, 0x00, 0x55, 0xFC, 0x3A, 0x0C, 0x86, 0xA3, 0xA3, 0xA3, 0x0B, 0x86, 0x86, 0x2E, 0x99, 0xBF, 0x64, 0x49, 0xB2, 0xD0, 0xC8, 0xF8, 0x03, 0x34, 0x03, 0xDA, 0x08, 0x59, 0xAE, 0x4B, 0xE9, 0x6E, 0xF3, 0xB0, 0x5F, 0x4E, 0xD6, 0x4B, 0xBC, 0x9D, 0xEC, 0x3B, 0x03, 0x59, 0x4A, 0xD5, 0x9C, 0x0F, 0x3B, 0x8D, 0xB0, 0x29, 0x05, 0xED, 0x7B, 0xB0, 0x7F, 0xB6, 0xB6, 0x41, 0x26, 0xFC, 0x53, 0x49, 0x50, 0xBA, 0x0D, 0xC6, 0x64, 0x4E, 0x38, 0x3C, 0xFA, 0x1B, 0x75, 0x63, 0x0F, 0xD0, 0x77, 0x4F, 0x84, 0xA6, 0xFC, 0x6C, 0x98, 0x1D, 0x5D, 0xA3, 0x61, 0x5B, 0xB6, 0xC3, 0x3E, 0x29, 0xE2, 0xBF, 0xC3, 0xDE, 0x2C, 0x93, 0x0A, 0xCB, 0x4C, 0xCD, 0x89, 0xA0, 0x94, 0x38, 0xA6, 0xD0, 0xAC, 0xE9, 0x28, 0x52, 0xF6, 0x74, 0x2F, 0xC1, 0x98, 0x20, 0x5A, 0x22, 0xC6, 0x16, 0xA4, 0x76, 0xB5, 0xD9, 0x30, 0x5B, 0xC2, 0x2E, 0x1E, 0xA4, 0x0B, 0x7F, 0x9F, 0x2D, 0x51, 0x9E, 0xBA, 0xE0, 0xFF, 0x99, 0x91, 0x68, 0x19, 0xBB, 0xD0, 0x2F, 0xB4, 0x8C, 0xBE, 0xE5, 0xA6, 0x78, 0xC5, 0x06, 0x34, 0x7C, 0x2E, 0xE1, 0x2F, 0x9A, 0x99, 0x7D, 0x83, 0x5D, 0xE8, 0x17, 0x5A, 0xC4, 0x77, 0x0E, 0x46, 0xF7, 0xB2, 0xFF, 0x10, 0xFE, 0xA2, 0x31, 0x72, 0x13, 0xBB, 0xD0, 0x2F, 0x28, 0xD2, 0x3F, 0x08, 0xDD, 0xA2, 0xAF, 0xE1, 0x2C, 0x89, 0x0C, 0xA1, 0xAE, 0xFE, 0xFB, 0xEC, 0x42, 0xBF, 0x70, 0x3B, 0xAE, 0xB3, 0x9F, 0x6D, 0xCC, 0x75, 0xBA, 0xB1, 0x28, 0x9B, 0x5D, 0xAE, 0x66, 0x17, 0xFA, 0x07, 0xA5, 0xDF, 0x79, 0x75, 0x4C, 0x4F, 0xF7, 0x37, 0xC2, 0x3F, 0xF0, 0x93, 0x12, 0xD1, 0xB9, 0xEC, 0xBA, 0xF2, 0x40, 0x5D, 0xD7, 0x27, 0x9A, 0xA0, 0x4C, 0xCD, 0x7D, 0xC1, 0x20, 0x3F, 0xB1, 0xCB, 0xCA, 0x47, 0x93, 0x29, 0xC5, 0x9C, 0x08, 0x86, 0x3D, 0x8F, 0x5D, 0x55, 0x1D, 0x68, 0xF1, 0x74, 0x61, 0xB6, 0x2D, 0x52, 0x60, 0xD8, 0x5C, 0x65, 0x36, 0x0B, 0x95, 0xF1, 0x27, 0xD9, 0x45, 0xD5, 0x83, 0x94, 0xDF, 0x8A, 0x16, 0x51, 0x64, 0xDC, 0x5C, 0x23, 0x77, 0x53, 0x37, 0xB1, 0x6B, 0xEA, 0x81, 0x52, 0xED, 0x63, 0x3A, 0xB7, 0xDE, 0xE7, 0x2A, 0xB1, 0x32, 0xAF, 0xFD, 0x62, 0x0A, 0xAD, 0x57, 0xBD, 0x54, 0x0A, 0xBB, 0xAD, 0xDF, 0x6D, 0x86, 0xFD, 0x9D, 0xAE, 0xFE, 0xF1, 0xD6, 0xD1, 0xD1, 0xB5, 0x0B, 0xD8, 0x35, 0xF5, 0x00, 0x67, 0xF4, 0xA4, 0x8C, 0x1F, 0xAE, 0x32, 0x20, 0xD0, 0x85, 0xEE, 0x21, 0x27, 0xFA, 0xED, 0x9C, 0x93, 0xBF, 0xAF, 0xDA, 0x26, 0x21, 0xA2, 0xBF, 0x8C, 0x8F, 0xF7, 0x7F, 0x46, 0xB2, 0x2F, 0x84, 0xC3, 0xF1, 0xE1, 0x34, 0xA3, 0x78, 0xAA, 0xEC, 0xD9, 0x56, 0x1E, 0x04, 0x76, 0xF2, 0x16, 0xAD, 0xED, 0x8D, 0x46, 0xD9, 0x4B, 0xDC, 0xF6, 0x7D, 0x74, 0xA2, 0x11, 0xC9, 0xDA, 0xEC, 0x93, 0xFE, 0xC7, 0xF7, 0xD4, 0x48, 0x7E, 0x84, 0xE3, 0x3A, 0xCA, 0x95, 0x46, 0xD4, 0x5F, 0x8A, 0x78, 0x07, 0x6F, 0xDD, 0xD7, 0x07, 0xAA, 0xF8, 0x87, 0x51, 0xE1, 0x22, 0x23, 0x7D, 0x30, 0x9F, 0x46, 0x66, 0x17, 0x39, 0x28, 0xFB, 0x55, 0xAC, 0x7A, 0x85, 0x78, 0xD3, 0x81, 0xAC, 0x7E, 0x5A, 0xE0, 0xB8, 0x40, 0xDA, 0x63, 0x51, 0x0E, 0xE5, 0x5D, 0x60, 0xCA, 0x6B, 0x38, 0x99, 0x9D, 0x22, 0xF9, 0x10, 0xAB, 0xAF, 0x07, 0x94, 0x1D, 0xBF, 0xCB, 0xA6, 0x7A, 0x05, 0x06, 0xF6, 0xCB, 0xAC, 0x82, 0x3A, 0xD9, 0x6E, 0x54, 0x72, 0x71, 0x37, 0xA7, 0x5A, 0x8B, 0x20, 0xC4, 0xD1, 0x87, 0x41, 0x0E, 0x05, 0xE4, 0x89, 0xB2, 0x1A, 0x10, 0xFC, 0x40, 0xE3, 0xE9, 0xBD, 0xAC, 0xB2, 0x7A, 0x28, 0x95, 0x96, 0x32, 0xC3, 0xCA, 0xB3, 0x82, 0x3E, 0x6F, 0xA5, 0x80, 0x2F, 0x61, 0x75, 0x5E, 0x40, 0x6B, 0xA7, 0x11, 0xC8, 0x2D, 0x2B, 0x5B, 0xE0, 0x8F, 0xA0, 0xAE, 0x99, 0x96, 0x92, 0xF6, 0x7A, 0xDF, 0xAD, 0x0D, 0x7D, 0x7D, 0x16, 0x64, 0x6D, 0x2F, 0x60, 0x35, 0xA5, 0x80, 0x02, 0xFD, 0x29, 0xB4, 0x68, 0xDF, 0x63, 0x0B, 0xFC, 0x41, 0xB2, 0xAF, 0x63, 0x35, 0xD5, 0xC1, 0x98, 0x95, 0x8B, 0x7C, 0x0F, 0xE6, 0x70, 0x0E, 0xC9, 0xDB, 0x4D, 0x83, 0xF3, 0xBB, 0x59, 0x4D, 0xA9, 0x80, 0x1E, 0xE8, 0xF3, 0x19, 0x14, 0xF8, 0x43, 0xC9, 0x1A, 0x06, 0x77, 0xB4, 0x30, 0x9F, 0xE7, 0x46, 0x50, 0x11, 0xB4, 0x58, 0x5A, 0xE9, 0x9E, 0xCA, 0x2A, 0x2A, 0x01, 0xF4, 0xB9, 0x4C, 0xF1, 0xD7, 0xB0, 0xE0, 0x97, 0x4A, 0x37, 0x16, 0x87, 0x86, 0x4E, 0x79, 0x01, 0xB5, 0x82, 0x07, 0x7D, 0x8E, 0x1F, 0x59, 0xD7, 0x27, 0xA3, 0xF3, 0x59, 0x41, 0xA5, 0x20, 0xBD, 0x17, 0xF8, 0xEC, 0x7A, 0xB3, 0x49, 0x8E, 0x88, 0xFF, 0x44, 0xA2, 0xE7, 0x3B, 0x0D, 0x25, 0xC3, 0x48, 0xFB, 0x16, 0x9F, 0x15, 0xC8, 0xFA, 0x5D, 0x69, 0x6F, 0x63, 0xF1, 0xB5, 0x80, 0xF4, 0xAF, 0xF7, 0x1D, 0x14, 0x23, 0xEC, 0x1B, 0x58, 0x7C, 0x79, 0x58, 0xB8, 0x70, 0x74, 0x01, 0xAD, 0x05, 0xEE, 0xCB, 0x5A, 0x41, 0x81, 0x21, 0xDD, 0x12, 0x5D, 0x05, 0xF1, 0x49, 0xAD, 0x57, 0xBD, 0x9A, 0x55, 0xD4, 0x02, 0xE8, 0xA7, 0x45, 0xE5, 0xBF, 0x7D, 0x75, 0x5D, 0x59, 0x40, 0x64, 0xFC, 0x87, 0xC5, 0x8B, 0xD3, 0x17, 0xB3, 0x0A, 0xFF, 0x08, 0x82, 0xB1, 0x61, 0xAD, 0x92, 0x4D, 0x81, 0xF1, 0x99, 0x1D, 0x38, 0xE7, 0x1C, 0x5F, 0xC4, 0x2A, 0x6A, 0x85, 0x26, 0x3B, 0x7C, 0x8E, 0x8B, 0xC8, 0x38, 0x23, 0x93, 0x3B, 0xC2, 0xB0, 0x7D, 0x04, 0xAB, 0xE8, 0x0E, 0xC6, 0x8C, 0x2D, 0xA3, 0xC1, 0xFA, 0x04, 0x9A, 0xAB, 0xBF, 0x3E, 0x27, 0x0D, 0x4E, 0x6B, 0xE8, 0xBB, 0xB7, 0x93, 0xB1, 0x5F, 0xA6, 0x71, 0xE3, 0x71, 0x9F, 0x69, 0x9D, 0xCD, 0x6E, 0x84, 0xFD, 0xA7, 0x10, 0xF6, 0x65, 0x6C, 0x42, 0xAD, 0x18, 0x19, 0x69, 0xBF, 0x1C, 0xF6, 0xF8, 0x9C, 0x75, 0xB9, 0xEE, 0x38, 0x7E, 0x9C, 0xE4, 0x5E, 0x05, 0x3F, 0xC2, 0x9F, 0xB9, 0x6F, 0x85, 0x68, 0xAF, 0x85, 0xBF, 0x83, 0x20, 0x5E, 0xCA, 0x26, 0x38, 0x18, 0x13, 0x2B, 0xFA, 0x61, 0x63, 0x3E, 0xD3, 0x71, 0x74, 0xEB, 0x01, 0x47, 0xB7, 0x69, 0xE7, 0x73, 0x26, 0x02, 0x42, 0x26, 0x65, 0xC7, 0xD5, 0x6C, 0xC6, 0x40, 0x40, 0xB5, 0xA2, 0x6B, 0x7C, 0x36, 0x3A, 0x10, 0x7E, 0x83, 0xCC, 0x22, 0xBF, 0x82, 0xF8, 0xDD, 0xC8, 0xF4, 0x8E, 0xB0, 0xB5, 0x42, 0x0C, 0x1D, 0xB1, 0x7C, 0xF5, 0x21, 0x54, 0x68, 0x8B, 0xBB, 0x00, 0xCE, 0xFF, 0xCA, 0x75, 0x3A, 0xA2, 0x25, 0x4A, 0xD9, 0xB6, 0xEC, 0x8B, 0x81, 0x80, 0x94, 0xA9, 0xF5, 0x99, 0x21, 0xB3, 0x63, 0xE2, 0xEE, 0x31, 0x11, 0xD1, 0xEF, 0xA9, 0xDF, 0xB4, 0x37, 0x22, 0x5A, 0xC5, 0x07, 0x96, 0xC7, 0x2C, 0x18, 0x22, 0x7A, 0xA8, 0xF6, 0xED, 0xEA, 0x0E, 0xC0, 0x1E, 0xD8, 0x55, 0x7D, 0x50, 0x5C, 0x26, 0x0D, 0x55, 0x9D, 0x15, 0x39, 0xB3, 0x6E, 0x41, 0xDA, 0x1F, 0xB2, 0x1F, 0x06, 0x0A, 0x68, 0xA4, 0xBE, 0xBB, 0xAD, 0xD9, 0x92, 0x02, 0x52, 0xFC, 0x43, 0xD9, 0x74, 0x01, 0x19, 0x8C, 0xD9, 0x55, 0x27, 0xC8, 0xAE, 0xCF, 0xCC, 0xCD, 0x80, 0x88, 0xF8, 0x34, 0xF6, 0xC1, 0x40, 0x81, 0xEC, 0x3A, 0x7D, 0xCE, 0x05, 0x24, 0x9B, 0x61, 0xC8, 0xE4, 0xCD, 0xEC, 0x83, 0x81, 0x02, 0xEC, 0x82, 0x7D, 0x45, 0x76, 0x97, 0xCD, 0x1A, 0x03, 0x82, 0x9B, 0xF9, 0xE3, 0x35, 0xEC, 0x83, 0x81, 0x02, 0x4E, 0x07, 0xD7, 0x31, 0xD1, 0x01, 0x6B, 0xCD, 0x10, 0xEC, 0x89, 0xB1, 0x0F, 0x06, 0x0A, 0x46, 0xC4, 0x6F, 0x9D, 0x73, 0x19, 0x82, 0x3E, 0x9A, 0x16, 0xA3, 0xEF, 0x63, 0x1F, 0x0C, 0x14, 0x60, 0xD7, 0x9C, 0x1C, 0xD4, 0xA9, 0xE2, 0x03, 0xF9, 0xB8, 0x0B, 0xD8, 0x35, 0x27, 0x03, 0x42, 0x9F, 0x37, 0xB3, 0x0F, 0x06, 0x0A, 0xB4, 0x62, 0xBE, 0xA5, 0xB6, 0x80, 0x48, 0x19, 0x7F, 0xBB, 0xAE, 0x95, 0xBA, 0x56, 0xD1, 0xA3, 0x61, 0x18, 0xBE, 0x88, 0xFD, 0x30, 0x10, 0x10, 0x42, 0x1C, 0x88, 0xBB, 0x84, 0x6B, 0x5B, 0xA9, 0x2F, 0x1C, 0x1D, 0x5D, 0x80, 0x3D, 0x14, 0x3C, 0xBD, 0x73, 0x62, 0xF3, 0x10, 0x9F, 0x93, 0xF9, 0xDC, 0xC2, 0x3E, 0x88, 0x86, 0x20, 0xA5, 0x3D, 0x96, 0x7D, 0x31, 0x10, 0x80, 0x3D, 0xE5, 0x36, 0xD0, 0xE7, 0xFA, 0x16, 0x7E, 0xE7, 0xA7, 0xA7, 0xDE, 0xC5, 0x46, 0xA4, 0xAF, 0xD1, 0x3A, 0xB9, 0x99, 0x0E, 0xC8, 0x2E, 0x5A, 0xE8, 0x24, 0x9E, 0x7F, 0x8B, 0x14, 0xF6, 0xDD, 0x6A, 0xDC, 0x38, 0x52, 0xD2, 0x1D, 0xAA, 0x3D, 0x42, 0xA9, 0xF6, 0x37, 0x7D, 0x77, 0x57, 0xF0, 0x1B, 0x64, 0xC2, 0x8F, 0x45, 0xFE, 0x85, 0xDF, 0x95, 0x4A, 0x7F, 0x8C, 0x0B, 0x47, 0xD8, 0x0C, 0x87, 0x56, 0x2B, 0x7A, 0x6D, 0x10, 0x8C, 0xAD, 0x30, 0xAD, 0x74, 0x65, 0xCE, 0x40, 0x44, 0x2B, 0x8C, 0x88, 0xC6, 0x95, 0x4A, 0x2E, 0xA6, 0x82, 0x8F, 0xFA, 0x34, 0xD6, 0x19, 0x13, 0x3D, 0xD9, 0xEF, 0x45, 0x70, 0xBE, 0x00, 0x3B, 0x60, 0x8F, 0xB3, 0xAB, 0xD8, 0xE6, 0x6E, 0xE9, 0xFC, 0x95, 0xFC, 0x15, 0xDB, 0x44, 0xF0, 0x63, 0x20, 0xC6, 0x56, 0x80, 0xFB, 0xFC, 0x4B, 0xFE, 0x86, 0xDF, 0xD9, 0x84, 0xEE, 0x00, 0x83, 0x8D, 0xB2, 0xB7, 0xF9, 0x0C, 0x4A, 0x26, 0x4B, 0xDA, 0x2B, 0x59, 0x45, 0xAD, 0x80, 0x1D, 0xDE, 0xEB, 0xA6, 0x93, 0x5B, 0x8C, 0x89, 0x5F, 0xC1, 0x2A, 0xCA, 0xC0, 0xF8, 0x01, 0x46, 0x26, 0xBF, 0xF1, 0xB5, 0x70, 0x72, 0x69, 0x6B, 0x77, 0x65, 0x27, 0x67, 0x6A, 0x04, 0xF4, 0xC3, 0x0E, 0x5F, 0xD9, 0xE1, 0xFC, 0x13, 0xDF, 0x4D, 0xA2, 0xCB, 0xBF, 0xF2, 0x04, 0xA7, 0x1F, 0x7D, 0xAE, 0x64, 0xD1, 0x92, 0x68, 0x40, 0xDB, 0xC8, 0xE2, 0x6B, 0x01, 0xD9, 0xB1, 0xC9, 0x67, 0x76, 0xC0, 0x3F, 0x55, 0x4E, 0x58, 0xE6, 0xE3, 0xBA, 0x23, 0xBF, 0x41, 0xC9, 0x2E, 0x2E, 0xBB, 0x82, 0xE5, 0x57, 0x0A, 0x2D, 0xA3, 0xCF, 0xFB, 0xBC, 0xB8, 0x01, 0x7E, 0x11, 0x38, 0xFB, 0x57, 0x25, 0xA8, 0x45, 0x9F, 0xEB, 0xB3, 0x45, 0x61, 0x0A, 0x98, 0xC9, 0x93, 0xF6, 0x23, 0xAC, 0xA2, 0x12, 0x50, 0xC3, 0x3A, 0xCB, 0xD5, 0xC3, 0xEF, 0x40, 0x4E, 0x8D, 0xEB, 0x6C, 0x56, 0x51, 0x0D, 0x70, 0x79, 0xBF, 0x14, 0xFE, 0xAE, 0x63, 0x02, 0x21, 0x0B, 0xAD, 0x8B, 0x66, 0x74, 0xE7, 0xB0, 0x9A, 0x52, 0x01, 0x3D, 0xD0, 0xE7, 0xBB, 0x0E, 0xF4, 0xB9, 0x7D, 0xF9, 0xF2, 0xD5, 0x87, 0xB0, 0x9A, 0xEA, 0xA0, 0x64, 0xFC, 0x1D, 0xBF, 0x59, 0xE2, 0x2A, 0xE4, 0x5A, 0x58, 0xF2, 0x05, 0x52, 0x31, 0xCF, 0x69, 0xF2, 0x8E, 0x79, 0x24, 0xFF, 0x8B, 0xD0, 0xE3, 0x33, 0x18, 0xA0, 0xB3, 0xDD, 0x7E, 0x8D, 0xF5, 0x54, 0x0B, 0x3C, 0x16, 0x0F, 0x8B, 0x9D, 0x22, 0xC3, 0xFA, 0x23, 0x82, 0x42, 0x7D, 0xBA, 0x4E, 0x36, 0x1B, 0x93, 0xB4, 0x59, 0x9D, 0x17, 0x40, 0x9E, 0xD6, 0xE9, 0x66, 0x37, 0x66, 0xF8, 0x0D, 0x06, 0x88, 0x45, 0xA0, 0x94, 0xF1, 0xD1, 0xAC, 0xAE, 0x7A, 0x50, 0x5F, 0x79, 0xB7, 0xCF, 0xC1, 0x7D, 0x32, 0xB3, 0xD6, 0x26, 0xED, 0xD3, 0xD4, 0x9A, 0xD7, 0x05, 0x41, 0x22, 0x59, 0x65, 0x4F, 0x40, 0x79, 0xC8, 0x81, 0x3C, 0xDF, 0x59, 0x9D, 0x33, 0xF3, 0x83, 0x88, 0xEF, 0x64, 0x95, 0xF5, 0x80, 0xD2, 0xB3, 0xD4, 0x73, 0x07, 0x79, 0x17, 0x46, 0x73, 0xFA, 0x5D, 0x5A, 0xD8, 0x1B, 0x8C, 0x4C, 0x4F, 0x12, 0x62, 0xF5, 0x61, 0xAC, 0x7E, 0x5A, 0xE0, 0x38, 0x1C, 0x8F, 0x72, 0x28, 0x0F, 0x39, 0xBE, 0xBB, 0xA8, 0xC9, 0xCC, 0xE4, 0x4B, 0xFB, 0x5E, 0x56, 0x5F, 0x0F, 0x70, 0x63, 0x0A, 0xB5, 0xBA, 0x9D, 0x65, 0x56, 0x14, 0xCC, 0x03, 0x93, 0x0D, 0xFA, 0x32, 0xFE, 0x17, 0x7D, 0xB7, 0x49, 0x6B, 0x7B, 0x2D, 0xCD, 0xCA, 0xCE, 0xC7, 0x8D, 0x96, 0x70, 0x04, 0x3E, 0xB3, 0xFF, 0xF1, 0xBD, 0x8A, 0x36, 0xE3, 0x38, 0x1C, 0x5F, 0x76, 0x20, 0x40, 0x27, 0x3F, 0x7A, 0xB2, 0xE4, 0x55, 0xF9, 0xCC, 0xC0, 0xF6, 0x39, 0x65, 0xC9, 0x23, 0x55, 0x6E, 0x57, 0xA3, 0xF2, 0xB9, 0xA3, 0xF7, 0xD1, 0x4C, 0xFA, 0x9B, 0x88, 0xDF, 0xCB, 0x0E, 0xC2, 0x64, 0xA2, 0xFE, 0xE4, 0x87, 0x2D, 0xB8, 0x77, 0x86, 0x5D, 0x53, 0x0F, 0x86, 0x87, 0xC7, 0x0F, 0xA6, 0x71, 0x64, 0x7B, 0x95, 0x95, 0x1F, 0x44, 0x66, 0x83, 0xB9, 0xB0, 0xDB, 0xF0, 0x64, 0x0B, 0x76, 0x4D, 0x3D, 0xA0, 0x56, 0x71, 0x42, 0x36, 0x98, 0x15, 0x18, 0x39, 0xD7, 0x38, 0x10, 0xE7, 0x77, 0xC8, 0x90, 0x0D, 0x4D, 0x40, 0x1C, 0x9D, 0x1F, 0xE2, 0x9F, 0xB1, 0x6B, 0xAA, 0x07, 0x75, 0x55, 0x3D, 0xBF, 0xD3, 0xE3, 0xF9, 0x4A, 0xF8, 0x83, 0x7A, 0x8D, 0xCF, 0xB1, 0x8B, 0xAA, 0x83, 0x96, 0xF1, 0xA5, 0x4D, 0x30, 0x8A, 0x99, 0x2D, 0x3A, 0xC9, 0x3F, 0xEC, 0xAA, 0xF2, 0x41, 0x53, 0xCB, 0xCB, 0xCA, 0x5A, 0xE9, 0x3E, 0x3F, 0xC8, 0x3B, 0x0D, 0xE4, 0x27, 0x76, 0x59, 0x79, 0x70, 0x99, 0xD1, 0x04, 0x63, 0x66, 0xBA, 0xA0, 0x50, 0xF7, 0x55, 0xDE, 0xB5, 0x67, 0x4A, 0x25, 0x27, 0xBA, 0x6E, 0xAA, 0x09, 0xC6, 0x6C, 0x88, 0xA5, 0x00, 0xD6, 0x47, 0x38, 0xA1, 0xC7, 0x2E, 0xF4, 0x0B, 0x1A, 0xC4, 0x6F, 0x6A, 0xC6, 0x8D, 0xEE, 0x98, 0xF9, 0xAB, 0xAC, 0x1B, 0x93, 0xB0, 0x71, 0xD6, 0x4C, 0x71, 0xBB, 0x23, 0xFC, 0x45, 0xDD, 0x56, 0x39, 0xA7, 0xA7, 0x55, 0x2B, 0xFE, 0x7A, 0xF3, 0x76, 0x84, 0xEE, 0xC8, 0x6F, 0x47, 0x58, 0xC7, 0x2E, 0xF4, 0x0B, 0xAD, 0x23, 0x4D, 0xE3, 0xC8, 0x53, 0xFD, 0x5C, 0xD9, 0xE7, 0xF6, 0xA1, 0xDC, 0x2D, 0xC1, 0x55, 0xEE, 0x7F, 0x75, 0x43, 0xD8, 0x05, 0xFB, 0x60, 0x67, 0x3F, 0x5B, 0x42, 0x28, 0xAF, 0xA4, 0xDD, 0x11, 0xB6, 0xD2, 0xF2, 0xAE, 0xA8, 0xC9, 0xDE, 0xB8, 0xA9, 0xED, 0x7F, 0xBB, 0x0F, 0x4A, 0xBE, 0x8D, 0x1E, 0x3D, 0x23, 0x85, 0xFD, 0x33, 0xA5, 0xF1, 0x6F, 0xE9, 0xF3, 0x31, 0x54, 0x1C, 0xDF, 0xD7, 0xBD, 0x17, 0x96, 0x0D, 0xC0, 0x64, 0x07, 0xEC, 0xC1, 0x9B, 0x75, 0xD8, 0xBE, 0xFB, 0x69, 0xE5, 0xFD, 0x8C, 0xB3, 0xBB, 0x3B, 0xFB, 0xB2, 0x46, 0x47, 0x7E, 0x32, 0xA2, 0xBD, 0x96, 0x5D, 0x57, 0x1E, 0xF0, 0x50, 0x15, 0xD3, 0x45, 0x50, 0xB2, 0x16, 0x87, 0x6C, 0xD0, 0xC9, 0x57, 0x94, 0x7B, 0x01, 0x63, 0x76, 0xAD, 0x12, 0x36, 0xE2, 0xA8, 0xE2, 0xEF, 0xA0, 0xAC, 0x5B, 0xAF, 0x64, 0x9C, 0x9D, 0x38, 0xAA, 0x3A, 0x6B, 0xA0, 0x2F, 0x9B, 0x9E, 0xE2, 0x4D, 0x38, 0x32, 0xFE, 0x89, 0xD6, 0xE9, 0xDB, 0xC2, 0x30, 0x3C, 0x08, 0xF6, 0x11, 0xE6, 0x4B, 0x99, 0x04, 0xF4, 0xFD, 0xD5, 0x2E, 0x5B, 0x66, 0x67, 0x9B, 0x3B, 0x16, 0xC1, 0xA8, 0xE0, 0xE1, 0x33, 0x39, 0x38, 0x28, 0xBB, 0x66, 0x0A, 0x0A, 0x2A, 0x91, 0x55, 0x44, 0xC7, 0xA7, 0x73, 0xD1, 0x42, 0x84, 0xD9, 0x9B, 0x42, 0xED, 0x95, 0x14, 0x9C, 0x47, 0xF2, 0x96, 0x5A, 0x24, 0xCF, 0x0F, 0x27, 0xB6, 0xEF, 0x8D, 0x4C, 0x1F, 0x22, 0x9D, 0x57, 0x28, 0x35, 0x36, 0xED, 0x9B, 0x3A, 0x61, 0xFF, 0xBE, 0xBA, 0x14, 0xCA, 0x74, 0xE4, 0x60, 0xEC, 0xAA, 0x34, 0x18, 0x39, 0xF0, 0xAC, 0x8E, 0xE9, 0x82, 0x02, 0xE3, 0xF1, 0x1B, 0xCD, 0xC3, 0xDF, 0xC3, 0x45, 0x66, 0x44, 0x18, 0x8E, 0x1F, 0x14, 0xA8, 0xE4, 0x0C, 0xEA, 0x42, 0x6E, 0x77, 0xE3, 0x8D, 0xDF, 0xC0, 0x40, 0x5E, 0xD6, 0x3D, 0x6A, 0xBB, 0x81, 0xB2, 0xE1, 0x34, 0xF7, 0xC6, 0xB8, 0xD9, 0x01, 0xF5, 0x70, 0x0E, 0x2F, 0xAE, 0x6F, 0x1E, 0x0C, 0xF8, 0x85, 0x8B, 0x54, 0x8F, 0x89, 0xA0, 0x3C, 0xDB, 0x71, 0xE8, 0xA2, 0xBA, 0x0D, 0x46, 0x27, 0xF0, 0xCA, 0x6D, 0x92, 0xB5, 0xC1, 0xF5, 0xE1, 0xCF, 0xAE, 0x7C, 0x2F, 0x74, 0x19, 0x91, 0xFC, 0x62, 0xA6, 0x77, 0x16, 0x4E, 0x87, 0x3C, 0x28, 0x9D, 0x17, 0x77, 0xB8, 0x40, 0xD7, 0x1C, 0x8C, 0x1C, 0x34, 0xAD, 0x5B, 0x13, 0xA8, 0x74, 0x1B, 0xA6, 0x78, 0xA8, 0x34, 0x3F, 0x37, 0x65, 0x87, 0x16, 0x6D, 0x2F, 0x6F, 0xBC, 0x34, 0x1E, 0x16, 0xA4, 0x59, 0x79, 0x6D, 0x6F, 0x60, 0x91, 0x7D, 0x81, 0xEA, 0x7B, 0xAA, 0x56, 0xE9, 0x53, 0x93, 0xEB, 0x4B, 0x59, 0xB7, 0x95, 0xC6, 0xC3, 0xC1, 0x79, 0x45, 0xF8, 0x91, 0x47, 0xAE, 0x18, 0x0E, 0x74, 0x72, 0x91, 0x31, 0xE9, 0x77, 0x69, 0xF0, 0xFE, 0xEC, 0xC8, 0x48, 0x7F, 0x57, 0x89, 0x4C, 0x06, 0xBA, 0x31, 0x9A, 0xED, 0xF4, 0x7C, 0x57, 0x13, 0xCA, 0xD1, 0xA4, 0xE1, 0xE1, 0x45, 0x8B, 0xDA, 0x2F, 0x61, 0x91, 0x7D, 0x03, 0x93, 0x13, 0xAA, 0xE7, 0xA5, 0xA8, 0x2F, 0xF1, 0x42, 0x21, 0xEC, 0x62, 0xFE, 0x69, 0x6E, 0x80, 0x5A, 0x5F, 0xCF, 0x37, 0x62, 0xA2, 0x1C, 0x0D, 0xDC, 0x9F, 0x66, 0x51, 0x0D, 0x7C, 0x00, 0xB3, 0x96, 0x5E, 0x07, 0x78, 0xF4, 0xF9, 0xBA, 0xD5, 0x3E, 0x8E, 0x45, 0x35, 0xF0, 0x01, 0xF7, 0x86, 0xB8, 0x5E, 0xBB, 0xAC, 0x84, 0x32, 0x64, 0x2C, 0x66, 0x51, 0x0D, 0x7C, 0x00, 0x2D, 0xBC, 0x9F, 0x80, 0xD4, 0xFE, 0xA2, 0x95, 0xE7, 0x1B, 0x9A, 0x80, 0x0C, 0x18, 0x74, 0x6B, 0xE5, 0xF1, 0x4D, 0x40, 0x06, 0x08, 0xFD, 0x66, 0x08, 0x4D, 0x4B, 0x53, 0x16, 0xD5, 0xC0, 0x07, 0x68, 0x85, 0x3C, 0xE2, 0x1C, 0xDC, 0xDD, 0xAE, 0x2B, 0x82, 0x41, 0x9F, 0xBB, 0xC3, 0x91, 0x1E, 0x9F, 0x9D, 0xDB, 0x60, 0x6A, 0xE0, 0x14, 0x32, 0x9E, 0x78, 0xD0, 0xE9, 0xF4, 0xE9, 0xB8, 0x6C, 0xE9, 0x6A, 0x9C, 0x93, 0xB8, 0x9E, 0x45, 0x34, 0xF0, 0x89, 0x30, 0x4C, 0x0F, 0xC5, 0x7D, 0xF2, 0x94, 0x25, 0x3B, 0xC9, 0xD9, 0x7B, 0x3A, 0x9D, 0xDF, 0xC1, 0x3D, 0x5A, 0xD2, 0x71, 0x22, 0xB9, 0x05, 0x0F, 0x48, 0x66, 0x11, 0x03, 0x8E, 0xA1, 0xA1, 0xFF, 0x03, 0xA4, 0x6C, 0x96, 0x4C, 0x87, 0xBF, 0xFF, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 }; const char Html_png2[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x08, 0x06, 0x00, 0x00, 0x00, 0x70, 0xE2, 0x95, 0x54, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00, 0x00, 0x07, 0xFB, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x9D, 0x6D, 0x88, 0x54, 0x55, 0x18, 0xC7, 0xD7, 0xCA, 0xA2, 0xB2, 0x88, 0x5E, 0xC9, 0x32, 0x2B, 0x2A, 0x65, 0xA9, 0x99, 0x75, 0x77, 0x67, 0x77, 0xF0, 0x8B, 0x68, 0x99, 0x03, 0xD2, 0x47, 0x2D, 0x91, 0xD2, 0x7C, 0x89, 0x82, 0x5E, 0x20, 0x0A, 0xB4, 0x8F, 0x89, 0x95, 0x7E, 0x30, 0x49, 0x53, 0x88, 0xB2, 0x32, 0x2B, 0xC3, 0x0F, 0x41, 0x66, 0xA6, 0x41, 0x49, 0xD1, 0x9B, 0x66, 0x2B, 0x65, 0x10, 0xF6, 0x82, 0xA2, 0x11, 0xE4, 0x5A, 0xE6, 0x4B, 0x52, 0xE9, 0xD6, 0xEF, 0x99, 0x7D, 0x66, 0xB9, 0xCE, 0x9E, 0x7B, 0xE7, 0xCE, 0xDB, 0xEE, 0xD9, 0x3B, 0xCF, 0x1F, 0xFE, 0x9C, 0xB9, 0x77, 0xFE, 0xE7, 0x39, 0xE7, 0x79, 0xFE, 0xF7, 0x9E, 0x3B, 0x73, 0x9D, 0xBD, 0x36, 0x19, 0x0C, 0x06, 0x83, 0xC1, 0x60, 0x30, 0x18, 0x7C, 0x46, 0x67, 0x67, 0x67, 0xAA, 0xB5, 0xB5, 0x75, 0x5E, 0x7B, 0x7B, 0xFB, 0xB2, 0xB6, 0xB6, 0xB6, 0xF5, 0xE3, 0xC6, 0x8D, 0xDB, 0x04, 0xB7, 0x24, 0x95, 0xE4, 0xB8, 0x11, 0xAE, 0x83, 0x4F, 0xC1, 0x19, 0xEC, 0xBB, 0x41, 0x4B, 0x31, 0x78, 0xC0, 0x80, 0x2B, 0x31, 0x60, 0x21, 0x6D, 0x17, 0xED, 0x7F, 0x98, 0xD2, 0xC7, 0x8E, 0x8E, 0x8E, 0xC4, 0x33, 0x98, 0x2F, 0xA6, 0xFC, 0x9D, 0xC9, 0x64, 0xB6, 0xC1, 0xF9, 0xBC, 0x3E, 0x4F, 0x4B, 0x34, 0x30, 0x68, 0x6E, 0x6E, 0x3E, 0x1B, 0x03, 0x9E, 0x60, 0xE0, 0xEE, 0x6C, 0x36, 0x9B, 0x9F, 0x9C, 0x18, 0xC2, 0x76, 0xC3, 0x52, 0xF2, 0x2F, 0x98, 0xC4, 0xEB, 0x1F, 0xD8, 0x77, 0x8F, 0x96, 0xAB, 0xBE, 0xE0, 0xD4, 0x4C, 0x31, 0xD8, 0x0E, 0x31, 0x82, 0xA3, 0xC1, 0x39, 0xB9, 0x46, 0xA7, 0xD4, 0x45, 0x8D, 0x79, 0x3B, 0x95, 0x4A, 0x5D, 0xAE, 0xA5, 0xAB, 0x3D, 0x30, 0x23, 0xC7, 0x80, 0x47, 0xF4, 0x14, 0x35, 0x96, 0xA0, 0x1C, 0xB4, 0xB4, 0x7B, 0xE0, 0x58, 0x2D, 0x61, 0xED, 0xC0, 0x75, 0x62, 0x0A, 0xCE, 0xFF, 0x13, 0xE7, 0xAC, 0x90, 0xD3, 0xB7, 0x11, 0xE8, 0xCA, 0xBD, 0x98, 0x7A, 0xA6, 0xFC, 0xD2, 0xD2, 0xD2, 0x72, 0xA3, 0x96, 0xB2, 0x7A, 0x10, 0xAC, 0x99, 0xA0, 0xC7, 0xA2, 0xCC, 0x90, 0x09, 0xCA, 0xE0, 0xB2, 0x8E, 0xCA, 0x36, 0x67, 0xD3, 0x71, 0x78, 0x84, 0xD7, 0x47, 0x93, 0x46, 0xC9, 0x0B, 0x9E, 0x08, 0xE6, 0x1C, 0x65, 0x90, 0x68, 0x38, 0xA0, 0xBF, 0x47, 0x77, 0xA1, 0x96, 0xB4, 0x72, 0xC8, 0x05, 0x9C, 0xA0, 0xBB, 0xA2, 0x96, 0x29, 0x7D, 0xEF, 0x18, 0x94, 0x8F, 0x81, 0x33, 0x30, 0x30, 0xCD, 0x04, 0x47, 0x31, 0xE9, 0x91, 0xE9, 0x74, 0xFA, 0xAA, 0xA4, 0x51, 0xF2, 0x82, 0xA3, 0xC9, 0x31, 0x43, 0xA1, 0xEF, 0xA3, 0x7D, 0x57, 0x0C, 0x29, 0x1C, 0x8C, 0x2E, 0xCA, 0xF2, 0x45, 0x9F, 0xD7, 0xB5, 0xAC, 0x95, 0x83, 0x01, 0x17, 0xEA, 0x5A, 0xD8, 0x8F, 0x85, 0x49, 0xA0, 0x59, 0xCB, 0x60, 0x83, 0xFF, 0x39, 0x7C, 0x10, 0x41, 0x3D, 0x3A, 0xA8, 0xC7, 0x47, 0x51, 0x07, 0xAE, 0xD4, 0x8A, 0x55, 0x26, 0xA7, 0x5D, 0xCA, 0x07, 0x47, 0xFA, 0x65, 0x04, 0x3A, 0xEC, 0x5A, 0xAA, 0xC4, 0x0C, 0xDD, 0x7F, 0xBF, 0xCA, 0x0D, 0x80, 0xBA, 0x2C, 0x0B, 0x33, 0x45, 0x0F, 0xDE, 0x2E, 0x64, 0x67, 0xF4, 0xAA, 0xCB, 0x44, 0xD4, 0xD9, 0xA1, 0xC1, 0x1F, 0x50, 0xA9, 0x21, 0x00, 0x56, 0x8B, 0x55, 0x51, 0xA6, 0x54, 0x74, 0x96, 0x4C, 0x9B, 0x36, 0xED, 0x4C, 0x0A, 0xBE, 0xDB, 0x75, 0x76, 0xC8, 0x60, 0x35, 0x59, 0x0F, 0x13, 0x0A, 0xAD, 0x5D, 0x97, 0x14, 0xDF, 0x55, 0x3B, 0xDE, 0x7B, 0x53, 0xA5, 0xF1, 0x41, 0xA7, 0x5B, 0x64, 0x59, 0x2A, 0x0E, 0x28, 0xFB, 0xE0, 0x31, 0x06, 0xBB, 0x5A, 0xA5, 0x06, 0x07, 0xA8, 0xDF, 0xED, 0x2E, 0x43, 0xE4, 0x00, 0xE7, 0x60, 0xFE, 0x95, 0x2F, 0x8C, 0xE7, 0xAB, 0x34, 0x1E, 0x08, 0x38, 0xDF, 0x75, 0xDA, 0xE9, 0xBE, 0x75, 0x2A, 0x33, 0x44, 0x80, 0xC2, 0x7F, 0x13, 0x76, 0xFD, 0xA5, 0xED, 0x50, 0x59, 0x3C, 0xD0, 0x61, 0xB9, 0xCB, 0x10, 0xBD, 0x76, 0x4C, 0x57, 0x99, 0x21, 0x02, 0x18, 0xF2, 0x74, 0xC4, 0x41, 0x5D, 0xDE, 0xBD, 0x2E, 0x3A, 0xBC, 0x55, 0x1C, 0x4C, 0x9D, 0xED, 0xA1, 0xBD, 0x59, 0x65, 0x86, 0x08, 0x50, 0xA7, 0xBB, 0x22, 0xAE, 0x23, 0x0B, 0x55, 0x16, 0x0F, 0xB8, 0xBB, 0xA9, 0x38, 0x98, 0x18, 0xC2, 0xFE, 0xBF, 0x68, 0x47, 0xA9, 0xCC, 0x10, 0x01, 0x6A, 0x36, 0x39, 0xEC, 0x43, 0x11, 0xED, 0x62, 0x95, 0xC5, 0x03, 0x85, 0xDF, 0xEA, 0x32, 0x04, 0x67, 0xE5, 0xB6, 0xC1, 0x48, 0x95, 0x19, 0x22, 0x40, 0xAD, 0x26, 0x46, 0x7C, 0x4A, 0x5D, 0xAA, 0xB2, 0x78, 0xA0, 0xC3, 0x16, 0x97, 0x21, 0xB4, 0x47, 0xE5, 0xF6, 0x81, 0xCA, 0x0C, 0x11, 0xC0, 0x90, 0x49, 0x61, 0x86, 0xF0, 0xDE, 0x12, 0x95, 0xC5, 0x83, 0x19, 0x52, 0x3D, 0x12, 0x6D, 0x88, 0xDC, 0xB0, 0x24, 0xB9, 0x99, 0x24, 0x32, 0x1B, 0xCE, 0x2A, 0x83, 0xB3, 0xE9, 0x37, 0x9D, 0xCF, 0xFD, 0xD7, 0x69, 0xA8, 0x01, 0x03, 0x63, 0x27, 0xD2, 0x90, 0x61, 0x8C, 0xBB, 0x82, 0xC4, 0x7A, 0x24, 0x91, 0x4A, 0x49, 0x7F, 0xB9, 0x1B, 0xFD, 0x90, 0xC6, 0x1C, 0x10, 0x24, 0xD2, 0x10, 0xC6, 0x9B, 0x2B, 0xF7, 0xD3, 0x74, 0xEC, 0x8A, 0x29, 0x85, 0x91, 0x7C, 0x28, 0x44, 0xA7, 0x86, 0xAE, 0x3B, 0x12, 0x69, 0x08, 0x13, 0xFF, 0x40, 0x12, 0x08, 0xCE, 0xA3, 0x52, 0xEA, 0x8D, 0xD2, 0xF2, 0x3E, 0xDD, 0x54, 0x81, 0xA4, 0x1A, 0xF2, 0x69, 0xF1, 0x3C, 0x2A, 0xA5, 0x14, 0x82, 0x1C, 0x56, 0x6B, 0xE8, 0xBA, 0x23, 0x91, 0x86, 0x30, 0x8F, 0x4F, 0x6A, 0x69, 0x08, 0xED, 0xF3, 0x1A, 0xBA, 0xEE, 0x30, 0x43, 0x4A, 0xD0, 0x0C, 0xA9, 0x01, 0xCC, 0x10, 0x85, 0x19, 0x52, 0x3D, 0x12, 0x69, 0x08, 0x13, 0xDF, 0x56, 0x63, 0x43, 0x9E, 0xD5, 0xD0, 0x75, 0x87, 0xB7, 0x86, 0x8C, 0x1F, 0x3F, 0xFE, 0x02, 0x26, 0x20, 0xE8, 0xA4, 0x7F, 0x47, 0x5C, 0x32, 0x9E, 0xFC, 0xCC, 0xA6, 0xCB, 0x95, 0x54, 0x25, 0x94, 0x7C, 0x88, 0xB7, 0x81, 0x6F, 0xFD, 0x19, 0xB6, 0x9D, 0x63, 0xBA, 0x28, 0xF3, 0xA6, 0x1E, 0xA9, 0x09, 0x13, 0x26, 0x9C, 0xA5, 0x29, 0xC5, 0x02, 0xFD, 0xFC, 0x33, 0x84, 0x81, 0xE5, 0xD7, 0xE0, 0xFB, 0xA5, 0x6F, 0x25, 0x0C, 0x8E, 0x5F, 0x2B, 0xBA, 0xC6, 0x89, 0x43, 0xFA, 0xEE, 0xA6, 0x2E, 0xB7, 0x6A, 0x6A, 0x25, 0xE1, 0x9D, 0x21, 0x0C, 0x3A, 0x45, 0x06, 0xAF, 0xD5, 0x11, 0x3E, 0xD8, 0x94, 0x5C, 0xA8, 0xC1, 0x71, 0x78, 0xBD, 0xA6, 0x18, 0x09, 0x1F, 0x0D, 0xD9, 0x20, 0x83, 0x07, 0x63, 0x0C, 0x75, 0xCA, 0xB7, 0x7D, 0xF2, 0x8A, 0xF5, 0xAF, 0x7D, 0x3E, 0x1A, 0x52, 0xB3, 0x0B, 0xB2, 0x2F, 0xD4, 0x62, 0x3E, 0xA7, 0x29, 0x46, 0xC2, 0x3B, 0x43, 0x88, 0xF1, 0x61, 0x12, 0x0D, 0xA1, 0x5D, 0xAE, 0x29, 0x46, 0xC2, 0x0C, 0x19, 0x00, 0x9A, 0x21, 0x9E, 0xD1, 0x0C, 0xF1, 0x8C, 0x66, 0x88, 0x67, 0x34, 0x43, 0x3C, 0xA3, 0x19, 0xE2, 0x19, 0xCD, 0x10, 0xCF, 0x68, 0x86, 0x78, 0x46, 0x33, 0xC4, 0x33, 0x9A, 0x21, 0x9E, 0xD1, 0x0C, 0xF1, 0x8C, 0x66, 0x88, 0x67, 0x34, 0x43, 0x3C, 0xA3, 0x19, 0xE2, 0x19, 0xCD, 0x10, 0xCF, 0x68, 0x86, 0x78, 0x46, 0x33, 0xC4, 0x33, 0x36, 0x8C, 0x21, 0xA2, 0x93, 0x89, 0xEA, 0x18, 0xA1, 0x94, 0x04, 0xCB, 0xD1, 0xB9, 0x0A, 0x12, 0xA4, 0xC4, 0x89, 0xA3, 0x2B, 0x50, 0xB4, 0xB4, 0xC9, 0x36, 0x44, 0xE2, 0xA2, 0xDD, 0xCA, 0xEB, 0xF5, 0x4C, 0xF4, 0xDF, 0xB0, 0x62, 0x4B, 0x72, 0xE8, 0x76, 0xF2, 0xFA, 0x35, 0xDA, 0x3F, 0xA3, 0x74, 0xB4, 0x7B, 0x89, 0x25, 0x4F, 0x29, 0xDA, 0x17, 0x56, 0x6C, 0xED, 0x7F, 0x18, 0x4A, 0xBC, 0xAF, 0xE3, 0x98, 0x92, 0x78, 0x43, 0xE4, 0x7D, 0x26, 0xB7, 0x41, 0xBB, 0xC8, 0x1F, 0xE8, 0x3C, 0xEA, 0xEA, 0xA3, 0x89, 0xED, 0x92, 0xE7, 0x77, 0x89, 0x8E, 0x3E, 0x53, 0x98, 0xCF, 0xA9, 0x62, 0x9D, 0xCC, 0x91, 0xF7, 0xBA, 0x79, 0x7D, 0x8D, 0xE8, 0x98, 0xEB, 0xB5, 0x6C, 0x1F, 0x0A, 0x31, 0xEF, 0x24, 0xFB, 0x6F, 0x13, 0x5D, 0x2E, 0x97, 0x3B, 0x87, 0xD7, 0xCE, 0x27, 0x2F, 0x04, 0x99, 0x78, 0x43, 0x74, 0x72, 0x7D, 0x4F, 0x15, 0xD2, 0x87, 0x9F, 0x39, 0x75, 0xC4, 0x7B, 0x41, 0x65, 0xF2, 0x60, 0xB5, 0x11, 0x6C, 0xF7, 0x2B, 0xB4, 0x8E, 0xF7, 0xB9, 0xCA, 0xF2, 0x40, 0xF7, 0xA5, 0x2B, 0x17, 0xF6, 0x77, 0x07, 0x9F, 0x39, 0xC2, 0x3C, 0x5E, 0xD4, 0x82, 0x87, 0xB2, 0x21, 0x0C, 0xA1, 0x7D, 0x50, 0xBB, 0xC8, 0xD3, 0x0F, 0x32, 0x61, 0x86, 0x48, 0xC1, 0x54, 0xD6, 0x94, 0xCD, 0x66, 0x2F, 0x26, 0xFE, 0xC1, 0x6A, 0x0C, 0xA1, 0xFD, 0x4D, 0xE2, 0xA8, 0x4C, 0x0A, 0xF8, 0x92, 0x19, 0xD2, 0x9B, 0x60, 0xDF, 0x1F, 0x63, 0xF2, 0x5A, 0x7E, 0xD3, 0xEB, 0xD4, 0x49, 0xC1, 0x54, 0xD6, 0x44, 0xA2, 0x97, 0x10, 0xBF, 0xDB, 0x65, 0x08, 0xFB, 0xBF, 0x50, 0x59, 0x1E, 0xF4, 0xDB, 0xEE, 0xCA, 0x05, 0xDD, 0xC1, 0xA0, 0x21, 0xEC, 0x5F, 0x63, 0x86, 0x98, 0x21, 0xF1, 0x60, 0x86, 0xB8, 0x69, 0x86, 0x04, 0x74, 0x66, 0x88, 0x19, 0xD2, 0x8F, 0x66, 0x48, 0x40, 0x67, 0x86, 0x54, 0x69, 0x08, 0x83, 0x96, 0xFC, 0xF5, 0xFB, 0x50, 0x34, 0x84, 0x78, 0x43, 0xF3, 0xD7, 0xEF, 0x0C, 0x5A, 0xF2, 0xEF, 0x43, 0xF4, 0xFD, 0x21, 0x63, 0x08, 0x7A, 0x69, 0x17, 0x68, 0x97, 0x48, 0x78, 0x67, 0x08, 0xDA, 0xC9, 0x12, 0xA3, 0x38, 0x4E, 0x90, 0x92, 0x20, 0x93, 0x7B, 0x58, 0xBB, 0x48, 0x12, 0x9D, 0x2E, 0x43, 0x54, 0xB7, 0x46, 0x65, 0x79, 0x43, 0xD8, 0xFE, 0xBD, 0x58, 0xAB, 0xC9, 0x6E, 0x57, 0x59, 0x1E, 0x6C, 0x7F, 0x55, 0x5C, 0x68, 0x35, 0xE4, 0x50, 0x91, 0x21, 0x2F, 0x6B, 0xC1, 0xFB, 0x51, 0xF4, 0x1A, 0x43, 0x9E, 0xC8, 0x1A, 0xEB, 0xC9, 0x42, 0x8C, 0xEB, 0x97, 0x21, 0x02, 0xF4, 0x73, 0x99, 0xD4, 0x3E, 0xE9, 0xEB, 0xA2, 0x16, 0xFA, 0x11, 0x95, 0xE7, 0x0D, 0x91, 0x24, 0x5C, 0x3A, 0x62, 0xBD, 0xA2, 0xB2, 0xBC, 0x21, 0x6C, 0xE7, 0x9F, 0xBA, 0x1D, 0xD4, 0x69, 0xD1, 0x76, 0xA8, 0x2C, 0x0F, 0x72, 0xD9, 0x29, 0xFB, 0x83, 0x3A, 0x2D, 0xD4, 0x1F, 0x41, 0x43, 0x18, 0xFB, 0x55, 0x19, 0x27, 0xA8, 0x0B, 0xB0, 0x87, 0x3E, 0xDF, 0xA2, 0x99, 0xA8, 0xF2, 0x92, 0x40, 0xEB, 0x9F, 0x21, 0x02, 0xB9, 0xEF, 0xC4, 0x24, 0xE4, 0xFF, 0xA8, 0x6A, 0x83, 0xA7, 0x81, 0x09, 0xB7, 0x07, 0xFF, 0xD3, 0x13, 0xB9, 0xB7, 0xC4, 0x6E, 0xD1, 0x9D, 0xA6, 0x15, 0x1D, 0x73, 0x1A, 0xAD, 0xB2, 0x26, 0xF9, 0x8B, 0x58, 0xB9, 0xEF, 0xC5, 0x5B, 0xFD, 0x74, 0x60, 0x8C, 0xCA, 0xF2, 0x60, 0xCE, 0x63, 0x65, 0xBF, 0x4A, 0x0A, 0x68, 0x23, 0x5E, 0x4A, 0x1E, 0x7A, 0xAC, 0x32, 0xC9, 0x79, 0xB4, 0x43, 0xD7, 0xCA, 0xFE, 0x76, 0x6A, 0xD1, 0x8C, 0xA4, 0x4F, 0x1B, 0x07, 0x74, 0xF5, 0xD3, 0x90, 0x46, 0x85, 0x19, 0xE2, 0x19, 0x6A, 0x6D, 0x88, 0x3D, 0x95, 0xB4, 0x4A, 0x50, 0xAB, 0xDA, 0x3D, 0x95, 0x94, 0x8E, 0x1B, 0x5D, 0x86, 0x10, 0xE8, 0x04, 0xEC, 0x5B, 0xCB, 0x0D, 0xE1, 0xA0, 0x4E, 0xB9, 0x88, 0x33, 0x64, 0x91, 0xCA, 0xE2, 0x81, 0x0E, 0x6F, 0x48, 0xC7, 0xE2, 0x60, 0x7A, 0x96, 0xB4, 0xAA, 0xCC, 0x10, 0x01, 0xCA, 0x34, 0xCB, 0x55, 0x43, 0x35, 0xE4, 0x71, 0x95, 0xC5, 0x03, 0x1D, 0x9E, 0x09, 0x0B, 0x86, 0x29, 0x73, 0x54, 0x66, 0x88, 0x00, 0x9F, 0x02, 0x57, 0xBA, 0x6A, 0x28, 0x2B, 0x0F, 0x67, 0xCF, 0x9D, 0x2A, 0x8B, 0x07, 0x0C, 0x99, 0x19, 0x16, 0x8C, 0xF7, 0x36, 0xAB, 0xCC, 0x10, 0x02, 0x6A, 0x35, 0x1C, 0xEE, 0x75, 0x2D, 0x59, 0xB0, 0x07, 0x43, 0x52, 0x2A, 0x8D, 0x07, 0xCE, 0x82, 0xEB, 0x29, 0x7C, 0xD8, 0x2F, 0x40, 0x4E, 0x32, 0x50, 0x8B, 0x4A, 0x0D, 0x0E, 0x50, 0x3B, 0xE7, 0x72, 0x25, 0x06, 0xF1, 0xDE, 0xCF, 0x85, 0x1F, 0x6B, 0x94, 0x05, 0x3A, 0x3A, 0x1F, 0x40, 0xA9, 0xFB, 0x3E, 0x56, 0x99, 0xA1, 0x08, 0xF2, 0xED, 0x9F, 0xFA, 0x1C, 0x88, 0xF8, 0x84, 0xB5, 0x4A, 0xA5, 0xE5, 0x01, 0x43, 0xE6, 0xB9, 0x5C, 0x2E, 0x04, 0xA6, 0x8D, 0x75, 0x1B, 0xBA, 0x91, 0x20, 0x77, 0x10, 0xA8, 0x5B, 0xE8, 0xA3, 0x6D, 0xC5, 0x24, 0x56, 0x9D, 0x8C, 0xCA, 0xCB, 0x03, 0x4E, 0x9F, 0x8B, 0x9B, 0xA1, 0x3F, 0x34, 0xD3, 0x41, 0x57, 0xC2, 0xE1, 0xDA, 0xA5, 0xA1, 0x41, 0x3D, 0xAE, 0xA0, 0x16, 0x9B, 0x4B, 0x1C, 0xC4, 0xEF, 0xAB, 0xBC, 0x32, 0xE0, 0xB6, 0xF3, 0xE2, 0x5E, 0xA0, 0xBE, 0xB7, 0x03, 0xDD, 0x54, 0xED, 0xD2, 0x70, 0x90, 0x03, 0x97, 0xA3, 0xFE, 0x5E, 0x6A, 0xB0, 0x3F, 0xAC, 0x56, 0x72, 0x2D, 0x86, 0xA7, 0x6A, 0x72, 0xED, 0x25, 0xE0, 0x3B, 0x72, 0x17, 0xB4, 0x78, 0x90, 0x02, 0xE5, 0x9A, 0xA2, 0x67, 0xD1, 0x2E, 0xB8, 0x54, 0x4C, 0xA4, 0x9D, 0x4C, 0x3B, 0x11, 0x4E, 0x4A, 0x20, 0xE5, 0x1B, 0x78, 0x8E, 0x02, 0xCF, 0xE1, 0xF5, 0x6A, 0xDA, 0x1F, 0x03, 0x35, 0x70, 0x52, 0xEA, 0xC7, 0x6A, 0xF3, 0xA4, 0x96, 0xB4, 0x3A, 0x10, 0xF0, 0x52, 0x06, 0xFE, 0xC9, 0x75, 0x81, 0x0F, 0x52, 0x26, 0x24, 0x47, 0x48, 0x61, 0x72, 0x49, 0xA7, 0xE4, 0x2A, 0x94, 0xD7, 0xAE, 0x7A, 0x14, 0xA8, 0x66, 0x6C, 0xD1, 0x72, 0xD6, 0x06, 0x1C, 0x05, 0x63, 0x08, 0x7E, 0x20, 0xEC, 0x94, 0x34, 0xBA, 0xA9, 0x2B, 0xCB, 0x67, 0xF2, 0x20, 0x50, 0x2D, 0x65, 0xED, 0x90, 0x4A, 0xA5, 0x6E, 0x22, 0xF8, 0x77, 0x51, 0xCB, 0x97, 0xB1, 0x97, 0x72, 0xCD, 0x90, 0x3A, 0xB1, 0xB2, 0xBC, 0x57, 0x17, 0x33, 0x0A, 0x48, 0xA7, 0xD3, 0x17, 0x31, 0xC8, 0x5A, 0x59, 0x96, 0x4A, 0x2D, 0x61, 0x8D, 0x4A, 0x5D, 0x45, 0xE4, 0x97, 0xF5, 0x72, 0x03, 0x71, 0x58, 0x6F, 0xE5, 0xEA, 0x0C, 0xD6, 0xC4, 0x3B, 0x18, 0x30, 0xFF, 0x23, 0xE6, 0x38, 0xEB, 0x68, 0x92, 0x29, 0x67, 0x43, 0xE1, 0x9A, 0x22, 0x2D, 0xDB, 0x1B, 0x61, 0x65, 0xDF, 0x35, 0xAA, 0x05, 0x67, 0xCB, 0x54, 0x26, 0xB5, 0x8E, 0x36, 0xFF, 0x6C, 0x5E, 0x99, 0x54, 0x23, 0x51, 0x0E, 0x48, 0xC9, 0x9B, 0x1A, 0xEC, 0xA1, 0x5D, 0xC1, 0x76, 0x56, 0x4B, 0x33, 0xB8, 0xE0, 0x1B, 0xEA, 0x08, 0x4C, 0x91, 0x5F, 0x8C, 0xDC, 0xCD, 0xE4, 0x16, 0xC0, 0xC5, 0x6C, 0x2F, 0x49, 0x30, 0x17, 0xC1, 0xC7, 0xE0, 0x74, 0x56, 0x8B, 0x14, 0xF9, 0xDA, 0x97, 0x63, 0x83, 0xC1, 0x60, 0x30, 0x18, 0x0C, 0x05, 0x34, 0x35, 0xFD, 0x0F, 0x62, 0x0D, 0xDC, 0x5B, 0xB8, 0xF9, 0x1F, 0x68, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 }; const char Html_png3[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x08, 0x06, 0x00, 0x00, 0x00, 0x70, 0xE2, 0x95, 0x54, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00, 0x00, 0x09, 0x2F, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x5D, 0x6B, 0x8C, 0x25, 0x45, 0x15, 0x9E, 0xC5, 0x44, 0x24, 0xA2, 0xC4, 0xC4, 0xB8, 0x88, 0xCB, 0x8E, 0x3B, 0xB7, 0xEB, 0x54, 0x75, 0xDF, 0x65, 0xE2, 0xCC, 0x74, 0x55, 0xF7, 0xCC, 0x02, 0xFB, 0x03, 0x13, 0xFD, 0x61, 0xE2, 0x2F, 0x8C, 0x9A, 0x10, 0x08, 0xA2, 0xE0, 0x03, 0x42, 0xDC, 0x3F, 0x8A, 0x8A, 0xA0, 0xF8, 0x4A, 0x8C, 0x91, 0xF0, 0xF2, 0x87, 0x51, 0xE2, 0x5B, 0xCC, 0x06, 0xF0, 0x81, 0x20, 0x2C, 0x92, 0x2C, 0x1A, 0x1F, 0x09, 0xC8, 0x33, 0xE0, 0x12, 0x14, 0x61, 0x17, 0x34, 0x08, 0xB8, 0x66, 0x1F, 0x84, 0xDD, 0x1D, 0xCF, 0xA9, 0x3A, 0x17, 0x70, 0xAD, 0x71, 0x67, 0xFA, 0x76, 0xDF, 0x5B, 0x35, 0xD4, 0x97, 0x7C, 0xC9, 0x3C, 0xEE, 0x3D, 0x55, 0x75, 0xBE, 0x3A, 0x55, 0xA7, 0xAA, 0xBB, 0xAB, 0x27, 0x62, 0xC1, 0xE4, 0xE4, 0xE6, 0xD7, 0x28, 0x55, 0xCF, 0x4A, 0x69, 0xCE, 0x16, 0x42, 0x7F, 0x1D, 0xA0, 0xBA, 0x45, 0x64, 0xE6, 0x61, 0x21, 0xCA, 0x67, 0x24, 0x98, 0x45, 0xE6, 0x41, 0xE4, 0x3F, 0x24, 0x94, 0x0F, 0x00, 0x98, 0x9F, 0xE1, 0x67, 0xBF, 0xAC, 0x44, 0xF5, 0x5E, 0x80, 0x79, 0x85, 0x26, 0xD6, 0x38, 0x4B, 0x09, 0x8D, 0xD0, 0x17, 0x55, 0x8E, 0x02, 0x9C, 0x89, 0x8E, 0xBF, 0x46, 0x09, 0xF3, 0x1B, 0x74, 0xFE, 0x2E, 0x74, 0xF6, 0x7E, 0x72, 0xBC, 0x92, 0x95, 0x25, 0x8B, 0xE0, 0xE5, 0xCB, 0x3F, 0x83, 0xE2, 0xEC, 0x41, 0x3E, 0x26, 0x65, 0xB5, 0x4D, 0x81, 0xF9, 0x6A, 0x0E, 0xF5, 0x7B, 0xF2, 0x7C, 0x7E, 0x92, 0x8B, 0x4A, 0x58, 0x02, 0x6B, 0x72, 0x31, 0x7F, 0x2A, 0x39, 0x4C, 0x49, 0x7D, 0x0F, 0x3A, 0xF2, 0x60, 0x91, 0x2F, 0x2C, 0x12, 0x73, 0x35, 0x8F, 0xCE, 0xAD, 0x8F, 0x28, 0xC2, 0x52, 0x74, 0xE2, 0xD4, 0xD6, 0xCE, 0xC0, 0xA6, 0x04, 0xBD, 0x0F, 0xC5, 0xFE, 0x2D, 0x8A, 0xF4, 0xE9, 0x42, 0xE8, 0xB7, 0x71, 0x1D, 0x12, 0xA6, 0xA6, 0xE6, 0xD6, 0x4B, 0x59, 0x5F, 0x84, 0x51, 0x70, 0x6F, 0xAE, 0x6A, 0x16, 0xA0, 0x46, 0x87, 0x35, 0x73, 0xFE, 0x72, 0x49, 0x22, 0x39, 0x81, 0x36, 0x39, 0xC1, 0x30, 0x0A, 0x71, 0x88, 0x3B, 0x77, 0xFD, 0x49, 0x27, 0xBF, 0x81, 0xAB, 0xF6, 0xCA, 0x42, 0x96, 0x99, 0x42, 0x41, 0xF5, 0x0D, 0x25, 0xF4, 0x6E, 0x72, 0x0A, 0x39, 0xC7, 0xE7, 0xB8, 0xD1, 0x70, 0x20, 0xCE, 0xC2, 0x22, 0x88, 0x6A, 0x97, 0x82, 0xFA, 0x32, 0x21, 0xEA, 0xB7, 0x70, 0x55, 0x57, 0x37, 0xFA, 0xBD, 0xF2, 0x44, 0x1C, 0x3E, 0xAE, 0xC6, 0x86, 0x3F, 0x3F, 0xE8, 0x9D, 0x7E, 0x27, 0x8D, 0x87, 0x34, 0xB4, 0x51, 0xBD, 0x40, 0xD4, 0x4F, 0xE3, 0x70, 0x76, 0x09, 0x76, 0x9C, 0xD7, 0x73, 0xD5, 0x57, 0x1D, 0xD6, 0x28, 0xD0, 0x1F, 0x07, 0x61, 0xFE, 0x19, 0xA2, 0x10, 0x87, 0x73, 0x20, 0x8C, 0x92, 0xE6, 0x11, 0xA5, 0xCC, 0xFB, 0xB8, 0x0D, 0xAB, 0x03, 0x59, 0x56, 0xCE, 0x60, 0x03, 0xB7, 0xBB, 0x06, 0xD2, 0xFC, 0xE0, 0x77, 0x42, 0x88, 0x1C, 0xCC, 0x6B, 0x98, 0x3E, 0xFF, 0x44, 0xCA, 0x99, 0x13, 0xB8, 0x49, 0xF1, 0x02, 0x33, 0x99, 0x8F, 0x60, 0x2F, 0xDB, 0xEB, 0x32, 0x1B, 0x7F, 0xA3, 0x63, 0xA0, 0xED, 0x4C, 0xC2, 0xEC, 0xC4, 0xF4, 0xF9, 0xDD, 0xDC, 0xB4, 0xB8, 0x40, 0x0B, 0x39, 0x14, 0xE3, 0x5A, 0xDB, 0xBB, 0x22, 0x8B, 0x8A, 0xA5, 0x48, 0xD1, 0x42, 0x93, 0x3F, 0xB6, 0xEB, 0x33, 0xDC, 0xCC, 0x38, 0x50, 0x4C, 0xEA, 0xE3, 0x31, 0x2A, 0xEE, 0xEC, 0x17, 0x9B, 0xBC, 0x0D, 0x8B, 0x99, 0x34, 0xF7, 0xD9, 0x68, 0x81, 0xEA, 0xFB, 0x45, 0x51, 0xBC, 0x9A, 0x9B, 0x1C, 0x2E, 0x7A, 0xBD, 0x99, 0x0C, 0x33, 0xA8, 0x87, 0x47, 0x35, 0x44, 0xD9, 0x35, 0x04, 0x46, 0xE0, 0x4B, 0x1C, 0x4D, 0xB2, 0x60, 0x3B, 0x9B, 0xAC, 0x6E, 0x0B, 0x3A, 0x0B, 0x53, 0x1B, 0x34, 0xA0, 0x43, 0x1E, 0xEF, 0x52, 0x8C, 0xC1, 0x24, 0xEB, 0x86, 0xC2, 0x6A, 0x51, 0x64, 0xFA, 0xDF, 0x42, 0x98, 0x27, 0x25, 0x94, 0x4F, 0x00, 0x94, 0x4F, 0x61, 0x16, 0xB7, 0xC7, 0xF5, 0x62, 0x5E, 0xE5, 0x77, 0x38, 0x5C, 0xF6, 0x31, 0x52, 0x68, 0xB5, 0x8F, 0x8B, 0xDB, 0xE3, 0xD8, 0x05, 0xE1, 0x00, 0x7B, 0xCA, 0x3A, 0x5C, 0xE4, 0xFD, 0xA5, 0x0B, 0x31, 0x06, 0x0E, 0xA6, 0x08, 0x40, 0x87, 0xDF, 0x87, 0x3D, 0xF3, 0x4A, 0x99, 0xE9, 0xF7, 0xAB, 0x1E, 0x6D, 0x36, 0xCE, 0x9C, 0x30, 0x3D, 0x3D, 0xFD, 0xDA, 0x75, 0xEB, 0xEA, 0x63, 0x8A, 0x62, 0xF3, 0xB1, 0xB4, 0xA0, 0x43, 0x61, 0x34, 0x7E, 0xE6, 0x2C, 0x29, 0xCB, 0x6F, 0xE2, 0xF7, 0x1F, 0x19, 0x2C, 0xFA, 0xBA, 0x88, 0x1E, 0x12, 0x05, 0xEB, 0xB2, 0x3D, 0xCB, 0xDE, 0x79, 0x34, 0xBB, 0x62, 0xFC, 0x58, 0x8B, 0x0E, 0xC1, 0xCA, 0xDD, 0xD5, 0xB6, 0x18, 0x03, 0x21, 0x50, 0x84, 0x67, 0xA4, 0x34, 0x57, 0x29, 0xB5, 0x30, 0x8F, 0xC5, 0xAD, 0x68, 0xD7, 0x96, 0xC6, 0xF9, 0x1C, 0xF4, 0x69, 0xF8, 0xFD, 0xEF, 0x2A, 0xA9, 0xF7, 0x75, 0x21, 0x8C, 0x8B, 0x14, 0xB3, 0x95, 0x8B, 0x1C, 0x3F, 0xA4, 0x30, 0xD7, 0xD9, 0x9E, 0xE2, 0xA9, 0x6C, 0x53, 0x5A, 0xC7, 0x09, 0xBD, 0x1B, 0x87, 0x84, 0x2F, 0x4A, 0xB9, 0xD0, 0x4A, 0xFE, 0x8F, 0x11, 0x23, 0xED, 0x76, 0x8D, 0xAC, 0xEC, 0xC6, 0xA5, 0xAF, 0xDC, 0xA6, 0xA4, 0x39, 0x05, 0x7A, 0xE5, 0xE7, 0xB9, 0xA8, 0xF1, 0x01, 0x40, 0x7F, 0xB8, 0x4D, 0x31, 0x5E, 0x96, 0x5A, 0xFE, 0x40, 0x88, 0x72, 0x8A, 0x8B, 0x69, 0x15, 0x52, 0xEA, 0x12, 0x45, 0xD9, 0xD6, 0x66, 0xB4, 0x90, 0x1D, 0xAA, 0x37, 0xD6, 0xF9, 0xED, 0x5C, 0xCC, 0xE8, 0x81, 0x61, 0xBA, 0x41, 0x81, 0xDE, 0xDB, 0xD6, 0x3A, 0xC3, 0x0D, 0x4F, 0xD5, 0x93, 0x38, 0xBC, 0x9C, 0xCE, 0x45, 0x74, 0x0A, 0xAC, 0xFF, 0x85, 0x98, 0x9E, 0xEF, 0x27, 0x47, 0xFA, 0xEA, 0xB3, 0x52, 0xBA, 0x8E, 0x64, 0x1E, 0xA3, 0xB9, 0x8C, 0x8B, 0x18, 0x2D, 0xA4, 0xD0, 0x37, 0xB4, 0x15, 0xFA, 0x94, 0xDB, 0x53, 0x1A, 0xD9, 0xEB, 0x95, 0x27, 0xB2, 0xF9, 0x91, 0x80, 0x12, 0x00, 0x8C, 0xC6, 0xFB, 0x6D, 0xF9, 0x9E, 0x7A, 0xAD, 0x94, 0x36, 0x1D, 0x16, 0xE5, 0x57, 0xD8, 0xFC, 0xE8, 0x80, 0xA9, 0xE6, 0x29, 0x6D, 0xF4, 0x2C, 0x0A, 0x75, 0x3B, 0x74, 0x80, 0xB9, 0x1C, 0xCD, 0x1E, 0xE5, 0xAC, 0x8F, 0x16, 0x94, 0xB6, 0x62, 0x67, 0xB8, 0xBE, 0x8D, 0x85, 0x2C, 0xB5, 0x87, 0xA2, 0x0E, 0xED, 0xBD, 0x95, 0xCD, 0x8F, 0x06, 0x52, 0xCC, 0xFD, 0x72, 0xD8, 0xE8, 0x18, 0x8C, 0xBB, 0x34, 0x74, 0xB0, 0xD9, 0xB1, 0x02, 0x23, 0xE5, 0x0A, 0xD7, 0xA6, 0xE1, 0xE6, 0x15, 0x1B, 0x6D, 0x42, 0x5F, 0xC5, 0x66, 0xBB, 0x47, 0xDE, 0xD3, 0x7D, 0x74, 0xE6, 0xA1, 0x61, 0x2A, 0x3E, 0x10, 0x03, 0x2B, 0x7E, 0x16, 0x9B, 0x0D, 0x02, 0xD8, 0x39, 0x2E, 0x1B, 0x56, 0x14, 0x6A, 0x1B, 0x2E, 0x54, 0xFF, 0x05, 0x30, 0xF7, 0x46, 0x36, 0xDB, 0x2D, 0x30, 0xCD, 0xFD, 0xD2, 0x70, 0x63, 0x2E, 0x89, 0x81, 0x13, 0x38, 0xE8, 0x73, 0xD8, 0x64, 0x50, 0xA0, 0x39, 0x60, 0xD8, 0x39, 0xC5, 0x0E, 0xC3, 0xA2, 0xFA, 0x10, 0x9B, 0xEC, 0x0E, 0x9F, 0xC5, 0x71, 0x1E, 0x27, 0xC2, 0x07, 0xDD, 0x75, 0x6F, 0x7F, 0x65, 0x8E, 0x44, 0x6A, 0x2C, 0xF4, 0xCC, 0xF8, 0x73, 0xF6, 0xFF, 0x03, 0x5C, 0x7D, 0xFF, 0x68, 0x18, 0x51, 0xDC, 0xFC, 0xAA, 0x6F, 0x65, 0x73, 0xDD, 0xA1, 0xC8, 0x4C, 0x81, 0x3D, 0xBC, 0xF1, 0x70, 0x45, 0x3D, 0x07, 0x73, 0xF5, 0xDB, 0xD9, 0x5C, 0xB0, 0xA0, 0xED, 0x18, 0x10, 0xFA, 0xCF, 0x4D, 0x13, 0x17, 0x1A, 0xB6, 0x44, 0x56, 0xE2, 0xC2, 0xB6, 0xE3, 0x61, 0x0B, 0x32, 0xF3, 0x81, 0xA6, 0x93, 0x39, 0x55, 0x12, 0x33, 0x90, 0x7D, 0x53, 0x53, 0x95, 0x60, 0x73, 0x41, 0x03, 0x87, 0xD4, 0xD3, 0x86, 0xC9, 0x24, 0xED, 0x77, 0xA5, 0x7E, 0x07, 0x9B, 0xEB, 0x06, 0x59, 0xA6, 0xAF, 0x6C, 0x2A, 0x88, 0xFD, 0x9E, 0x30, 0x57, 0xB3, 0xA9, 0x28, 0x30, 0x4C, 0x36, 0x49, 0xDF, 0x43, 0x51, 0x3F, 0xC1, 0xA6, 0xBA, 0x01, 0xCE, 0x1F, 0xB7, 0x34, 0x0E, 0x63, 0xA8, 0x0E, 0xE6, 0xB9, 0xEE, 0xB3, 0xA9, 0x28, 0x40, 0x3D, 0xBC, 0x69, 0x7B, 0x9D, 0x20, 0xE6, 0xDB, 0x6C, 0xAA, 0x0B, 0x2C, 0xAE, 0x01, 0x61, 0xEE, 0x6F, 0x32, 0xA1, 0x53, 0xA3, 0xB0, 0x72, 0x77, 0xB1, 0xA1, 0x68, 0x40, 0x97, 0xA2, 0x45, 0xA6, 0x77, 0x36, 0xD9, 0x1E, 0xB2, 0x42, 0x66, 0xE5, 0x36, 0x36, 0xD5, 0x3E, 0xE8, 0x9A, 0x03, 0xE6, 0xD7, 0x8F, 0x37, 0xA9, 0x9C, 0xED, 0x2D, 0xC2, 0x5C, 0xC3, 0xA6, 0xA2, 0x82, 0x10, 0xFA, 0xC6, 0x26, 0xC3, 0x96, 0x8B, 0xAC, 0xF2, 0x4F, 0x68, 0xA2, 0x9B, 0x1B, 0xBD, 0x69, 0x8B, 0x41, 0x64, 0xE6, 0xE9, 0xA6, 0x82, 0xE0, 0x22, 0x70, 0x0B, 0x9B, 0x8A, 0x0A, 0x58, 0xEF, 0xAF, 0x35, 0x13, 0xA4, 0xC6, 0x4C, 0xCB, 0x3C, 0x34, 0x31, 0x71, 0xFA, 0xAB, 0xD8, 0x54, 0xBB, 0xD8, 0xB8, 0xB1, 0x5A, 0x4B, 0x2B, 0x50, 0xB7, 0x12, 0xF5, 0x57, 0x62, 0x29, 0x52, 0x83, 0x70, 0xA1, 0xF4, 0x41, 0x36, 0x15, 0x15, 0x50, 0x90, 0x4B, 0x9B, 0x08, 0x62, 0x3B, 0x6E, 0x56, 0x3E, 0xDA, 0xD9, 0xD5, 0xC4, 0xA2, 0xD0, 0xC7, 0x53, 0x6E, 0xDD, 0x54, 0x10, 0xCC, 0xB0, 0xCE, 0x65, 0x53, 0x51, 0x01, 0x57, 0xEE, 0x9F, 0x6B, 0x2A, 0x08, 0x0E, 0x77, 0x7F, 0xA5, 0x79, 0x88, 0x4D, 0xB5, 0x8B, 0x24, 0x88, 0xBF, 0x6D, 0x4B, 0x31, 0x09, 0xD2, 0x11, 0x92, 0x20, 0x81, 0x21, 0x09, 0x12, 0x18, 0x92, 0x20, 0x81, 0x21, 0x09, 0x12, 0x18, 0x92, 0x20, 0x81, 0x21, 0x09, 0x12, 0x18, 0x92, 0x20, 0x81, 0x21, 0x09, 0x12, 0x18, 0x92, 0x20, 0x81, 0x21, 0x09, 0x12, 0x18, 0x82, 0x15, 0x84, 0x76, 0x7B, 0x87, 0x11, 0x64, 0x24, 0xB7, 0xC5, 0x74, 0x80, 0x61, 0x76, 0x7B, 0x49, 0x90, 0x0E, 0x77, 0x7B, 0x8B, 0x63, 0x87, 0xDB, 0x7E, 0xD7, 0x67, 0xB2, 0xA9, 0xA8, 0x80, 0x82, 0x7C, 0xAA, 0xA9, 0x20, 0xB4, 0xFD, 0xCE, 0x66, 0x56, 0x06, 0x72, 0xB6, 0x52, 0xF5, 0x27, 0x01, 0xEA, 0xAD, 0x74, 0xD9, 0x51, 0x66, 0xE6, 0x36, 0x74, 0xFE, 0xCF, 0x25, 0xE8, 0x5F, 0x38, 0xE2, 0xCF, 0xF8, 0x37, 0x8C, 0x90, 0x17, 0x7C, 0x85, 0x1F, 0x89, 0x24, 0xA2, 0x10, 0xE6, 0x3E, 0xA0, 0x63, 0x93, 0x5E, 0xB4, 0x19, 0x3E, 0xA9, 0xBE, 0x20, 0xF4, 0x8E, 0x26, 0x9D, 0x90, 0x08, 0x50, 0xEE, 0xC5, 0x76, 0xDF, 0x7C, 0xB8, 0x5D, 0xBA, 0x15, 0x4A, 0x88, 0xEA, 0x76, 0xB4, 0x7B, 0x9D, 0x94, 0xFA, 0x3C, 0x96, 0xC1, 0xC1, 0xDE, 0x6C, 0x0C, 0xFA, 0x77, 0xFD, 0xE2, 0x64, 0xDB, 0x93, 0xE9, 0xD2, 0x23, 0xB1, 0x50, 0x0B, 0xFF, 0x45, 0x77, 0x49, 0xD2, 0x5F, 0xF0, 0x72, 0x48, 0x3D, 0x86, 0xEC, 0x1F, 0x6E, 0x37, 0x68, 0x52, 0x64, 0x53, 0x4F, 0xF7, 0xB4, 0x67, 0xB9, 0x5C, 0xCA, 0x97, 0xF6, 0xEF, 0x68, 0x9F, 0xFC, 0x8E, 0xFE, 0xFF, 0x21, 0x4A, 0xE1, 0x6E, 0x36, 0xC7, 0xC9, 0xF6, 0xC7, 0xEE, 0x8F, 0x7E, 0x83, 0x89, 0xDD, 0xD3, 0xFA, 0x5F, 0x98, 0x8B, 0xEC, 0x6D, 0x2E, 0x4D, 0xC3, 0x31, 0xB1, 0x3D, 0xDA, 0x04, 0x20, 0xD3, 0x3B, 0x27, 0xF0, 0x97, 0xBB, 0x93, 0x20, 0xA1, 0xB0, 0x3C, 0x30, 0x91, 0xC4, 0x08, 0x8B, 0x14, 0x21, 0xDE, 0x7F, 0x24, 0x8E, 0x87, 0x49, 0x90, 0xC0, 0x98, 0x04, 0x09, 0x8C, 0x49, 0x90, 0xC0, 0x98, 0x04, 0x09, 0x8C, 0x91, 0x0B, 0xF2, 0xD2, 0x79, 0xBC, 0x8E, 0xEE, 0x88, 0xA6, 0x61, 0x1E, 0xD8, 0x1C, 0x37, 0x23, 0x14, 0xA4, 0x5A, 0x2C, 0x78, 0xCB, 0x01, 0x7F, 0x3F, 0x44, 0x8B, 0x29, 0x99, 0x95, 0xF7, 0xC8, 0xCC, 0xFC, 0x01, 0x7F, 0xBE, 0x17, 0xEC, 0x51, 0x4D, 0xEE, 0xD9, 0x77, 0x12, 0xE9, 0x7F, 0xBF, 0x1F, 0x36, 0xA3, 0x12, 0xC4, 0xED, 0x2B, 0x61, 0xEF, 0x97, 0xE6, 0x26, 0x05, 0xF5, 0x39, 0x42, 0x54, 0x39, 0x3D, 0x0B, 0x68, 0xF7, 0x7F, 0x18, 0x52, 0x2E, 0xBC, 0x0E, 0xA0, 0x9A, 0x56, 0xC2, 0x7C, 0x4C, 0x09, 0xFD, 0x6B, 0xBB, 0x7F, 0x16, 0x91, 0x30, 0x51, 0x08, 0x42, 0x22, 0x58, 0x31, 0xC0, 0xFC, 0x94, 0x0E, 0x8E, 0x61, 0xDF, 0x2F, 0x0B, 0x4A, 0x95, 0x9B, 0x01, 0xCC, 0x1D, 0x2F, 0x8A, 0xE9, 0xB1, 0x1F, 0x12, 0x83, 0x17, 0x84, 0x7A, 0xB8, 0x9D, 0x17, 0x44, 0x7D, 0x3E, 0xFB, 0xB8, 0x11, 0x50, 0xCC, 0x8B, 0x69, 0x08, 0x0B, 0x5D, 0x94, 0xA0, 0x05, 0x51, 0x38, 0x17, 0xD8, 0x87, 0x5E, 0x44, 0x3B, 0x07, 0x19, 0x4B, 0xA1, 0x2F, 0x28, 0xF2, 0xB0, 0x87, 0xAF, 0xA0, 0x05, 0xA1, 0x61, 0x06, 0x87, 0x9B, 0x8B, 0xD9, 0x9F, 0xAD, 0x80, 0x1E, 0xAB, 0x23, 0xBB, 0xBE, 0xF2, 0x42, 0x60, 0xB0, 0x82, 0xB8, 0x0C, 0xA9, 0x7C, 0x00, 0x7D, 0xD8, 0xEA, 0x09, 0x41, 0x74, 0x96, 0x15, 0x8A, 0xB2, 0xCB, 0xA5, 0xC7, 0xFE, 0xB2, 0xC7, 0xC9, 0x60, 0x05, 0xE1, 0xE8, 0xF8, 0x28, 0xFB, 0xB1, 0x55, 0x00, 0xE8, 0x2F, 0x84, 0x1A, 0x25, 0x41, 0x0A, 0x42, 0x13, 0x2F, 0x08, 0xFD, 0x42, 0xDE, 0xD1, 0x89, 0x0F, 0x00, 0x73, 0x9B, 0x52, 0x84, 0xAC, 0x80, 0xE4, 0x2C, 0x10, 0xE5, 0x53, 0x74, 0xE3, 0x05, 0xFB, 0xB0, 0x55, 0xD0, 0x51, 0xB2, 0x38, 0x1C, 0xEE, 0x0B, 0x31, 0xE3, 0x0A, 0x58, 0x10, 0xF3, 0x37, 0x7A, 0x2E, 0x9E, 0x7D, 0xD8, 0x2A, 0xA6, 0xA6, 0xE6, 0xDF, 0x44, 0x07, 0x30, 0x27, 0x41, 0x96, 0x49, 0x3B, 0x64, 0x81, 0xD9, 0xA3, 0xD6, 0xCF, 0xBE, 0x99, 0x7D, 0xD8, 0x2A, 0xD4, 0x54, 0xB9, 0x51, 0x0E, 0x71, 0xA2, 0x51, 0x97, 0x0C, 0x76, 0x52, 0xB7, 0x8B, 0xB8, 0x4C, 0xBF, 0x8B, 0x7D, 0xD8, 0x2A, 0xE8, 0x0E, 0xCA, 0x34, 0xA9, 0xAF, 0x90, 0xE4, 0x30, 0x21, 0xF4, 0x8D, 0xEC, 0xC3, 0x56, 0x41, 0xF7, 0xA0, 0x85, 0xBA, 0xF1, 0x18, 0xAC, 0x20, 0x44, 0xB7, 0x4A, 0x6F, 0xF7, 0x60, 0x62, 0x80, 0xF2, 0x0C, 0xBA, 0x51, 0xCD, 0x57, 0x5E, 0x08, 0x0C, 0x5E, 0x10, 0x25, 0xCD, 0x13, 0x6D, 0x9D, 0xE5, 0x0B, 0x30, 0x33, 0x8D, 0xF3, 0xD3, 0x73, 0xA1, 0xA6, 0xBC, 0xC4, 0xA0, 0x05, 0x21, 0xD2, 0xD6, 0x39, 0x8E, 0xF9, 0x0F, 0xE1, 0xDA, 0x81, 0x5E, 0x9F, 0xDA, 0x18, 0x42, 0x54, 0x15, 0xBD, 0x12, 0x2F, 0xF4, 0x6B, 0x24, 0xC1, 0x0B, 0x42, 0xB4, 0xD7, 0x33, 0x64, 0xF5, 0x2C, 0x5D, 0x03, 0x61, 0xFF, 0x2E, 0x1B, 0xF4, 0x76, 0x04, 0x29, 0xAA, 0x2D, 0x74, 0xB4, 0x60, 0xE8, 0x62, 0x10, 0xA3, 0x10, 0x84, 0x48, 0xC3, 0x0C, 0x4D, 0xF4, 0x18, 0x2D, 0x7F, 0x24, 0x61, 0xE8, 0xE1, 0x21, 0xF6, 0xB9, 0x17, 0x85, 0x7D, 0x83, 0x68, 0x75, 0x81, 0x3B, 0x46, 0x3C, 0x8E, 0x6B, 0x21, 0xC4, 0x68, 0x04, 0x19, 0x90, 0x7A, 0xF9, 0x49, 0xFD, 0x53, 0x69, 0x9D, 0x72, 0x2D, 0xFB, 0xDE, 0x0B, 0x00, 0xFD, 0xAB, 0x8D, 0xFD, 0x53, 0xEC, 0x3C, 0xE4, 0xB3, 0x13, 0x2A, 0xA3, 0x13, 0x84, 0xE8, 0x52, 0xE2, 0xB9, 0xEF, 0xB1, 0xEF, 0xBD, 0xA0, 0x67, 0x2F, 0x62, 0x18, 0xA2, 0x0E, 0x67, 0xB4, 0x82, 0x48, 0xA1, 0xBF, 0xC3, 0xBE, 0xF7, 0x02, 0x3F, 0x77, 0x6B, 0x12, 0x64, 0x44, 0x4C, 0x82, 0x04, 0xC6, 0x24, 0x48, 0x60, 0x4C, 0x82, 0x04, 0xC6, 0x24, 0x48, 0x60, 0x4C, 0x82, 0x04, 0x46, 0x12, 0x04, 0x84, 0xFE, 0x16, 0xFB, 0xDE, 0x0B, 0x25, 0xCC, 0xCD, 0x49, 0x90, 0x11, 0x91, 0xEE, 0xAD, 0xC2, 0x85, 0xDF, 0xD6, 0x3C, 0x9F, 0x9F, 0x5C, 0x8A, 0xF4, 0xF6, 0xCD, 0x24, 0xC8, 0x48, 0x59, 0x1E, 0x90, 0xA0, 0xF7, 0xE3, 0xCF, 0x1E, 0xDA, 0xBF, 0x1F, 0x44, 0x7A, 0xBE, 0x17, 0x36, 0x23, 0x16, 0xC4, 0x5D, 0xEA, 0x5D, 0x8A, 0xBE, 0xCF, 0xC7, 0xC0, 0xA8, 0x05, 0x59, 0x8D, 0x4C, 0x82, 0x04, 0xC6, 0x24, 0x48, 0x60, 0x4C, 0x07, 0x07, 0x04, 0x46, 0x8C, 0x90, 0xF2, 0xEF, 0x31, 0x3F, 0x93, 0xB7, 0xCA, 0x78, 0x88, 0xDE, 0x1E, 0xB3, 0x25, 0x0F, 0xF8, 0xA2, 0xFF, 0x2B, 0x87, 0x36, 0x28, 0x9E, 0xA3, 0x45, 0xED, 0x51, 0xF4, 0xB0, 0xA4, 0xDD, 0x8E, 0xF0, 0x7E, 0x30, 0x71, 0x14, 0xA4, 0x17, 0x23, 0x0B, 0x61, 0xDC, 0x45, 0xB7, 0x9E, 0x9A, 0x9D, 0x55, 0xCA, 0xEC, 0x8E, 0x71, 0x65, 0xBB, 0x1A, 0x68, 0xB7, 0x82, 0x40, 0xEF, 0xD8, 0xB0, 0xA1, 0x5A, 0x6B, 0x05, 0x21, 0x64, 0xD9, 0x6C, 0x8D, 0xFF, 0xDC, 0x41, 0x4A, 0xC5, 0x76, 0x1D, 0x3A, 0x56, 0x52, 0x00, 0x90, 0xBF, 0x95, 0xD4, 0xDB, 0xBD, 0xF7, 0x9E, 0xF1, 0x7B, 0xC5, 0x2F, 0xA1, 0x3B, 0x35, 0x70, 0x18, 0xDB, 0x2D, 0x41, 0x1F, 0xF0, 0x19, 0x4A, 0x1C, 0x8E, 0x20, 0xEC, 0xB9, 0x95, 0xCF, 0x2A, 0x69, 0x7E, 0xAF, 0xDC, 0x43, 0x49, 0xFC, 0x94, 0xD8, 0xC4, 0xC4, 0x7F, 0x00, 0xF7, 0x80, 0x2E, 0xC9, 0x47, 0x03, 0x2C, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 }; const char Html_png4[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x08, 0x06, 0x00, 0x00, 0x00, 0x70, 0xE2, 0x95, 0x54, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00, 0x00, 0x10, 0x63, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x5D, 0x09, 0x90, 0x1C, 0x55, 0x19, 0xCE, 0x06, 0x15, 0x39, 0x3C, 0x50, 0x94, 0x2B, 0x26, 0x64, 0xA7, 0x5F, 0xBF, 0x9E, 0xC9, 0x45, 0x32, 0x7D, 0xCC, 0x26, 0x48, 0xC0, 0x42, 0xA4, 0x0A, 0x91, 0xCB, 0xA8, 0x08, 0xC5, 0x21, 0x47, 0x51, 0x28, 0x02, 0x2A, 0x8A, 0x5A, 0x22, 0x14, 0x20, 0x72, 0x08, 0x05, 0x72, 0x6A, 0x21, 0x06, 0x04, 0x14, 0x01, 0x11, 0x29, 0x04, 0xCB, 0x82, 0x02, 0x44, 0x90, 0xC3, 0x70, 0x84, 0x33, 0x80, 0x84, 0x04, 0x10, 0x08, 0x10, 0x49, 0xA8, 0xDC, 0x1B, 0xBF, 0xEF, 0x7F, 0xAF, 0xB3, 0x47, 0x7A, 0xB3, 0x33, 0x7D, 0xCC, 0xCE, 0x64, 0xF7, 0xAF, 0xFA, 0x6B, 0x32, 0x9B, 0x7E, 0x7F, 0xFF, 0xF7, 0xFF, 0xBF, 0xD7, 0xFD, 0xDE, 0x8C, 0x6A, 0x77, 0xD0, 0x3A, 0xDA, 0x15, 0x78, 0xB6, 0xA7, 0xA2, 0x3B, 0xB4, 0x13, 0x3E, 0xA4, 0x5D, 0xFF, 0x36, 0x7C, 0x3F, 0xB5, 0xAC, 0xA2, 0xC8, 0x5E, 0x32, 0x02, 0x45, 0x83, 0xD6, 0x81, 0x0F, 0xA5, 0x5F, 0xEC, 0xBA, 0xE1, 0x3C, 0xED, 0x06, 0xAB, 0x3D, 0x1D, 0xAD, 0x25, 0x6A, 0xD7, 0x7C, 0x12, 0x5D, 0x15, 0xAE, 0x70, 0xDD, 0x68, 0xAE, 0xE7, 0x45, 0x67, 0x7A, 0x5E, 0xE0, 0xDA, 0xA1, 0x23, 0x90, 0x27, 0x94, 0x3B, 0x23, 0xA5, 0x75, 0xED, 0xF7, 0x9E, 0xAE, 0xAD, 0xAD, 0x94, 0x67, 0x40, 0xF1, 0x35, 0x18, 0x21, 0x1C, 0x00, 0xA3, 0xB5, 0x65, 0x2F, 0xBE, 0x2E, 0x5C, 0x56, 0xD6, 0xE1, 0x25, 0xE3, 0xC7, 0x47, 0xDB, 0x58, 0x52, 0x23, 0x90, 0x15, 0x90, 0x92, 0x8E, 0xF6, 0x54, 0xF8, 0x5E, 0xA5, 0x3C, 0x5D, 0x94, 0x9D, 0x6C, 0x84, 0x64, 0x64, 0xC4, 0x4C, 0xA8, 0x88, 0x61, 0x16, 0xBA, 0xA5, 0x70, 0x1F, 0x4B, 0x72, 0x04, 0xD2, 0x82, 0x76, 0xA2, 0x8B, 0x69, 0x88, 0x0D, 0x47, 0xC4, 0xE0, 0xC8, 0x88, 0x29, 0x7B, 0x5D, 0x6B, 0x5D, 0x37, 0x38, 0xD9, 0x92, 0x1E, 0x81, 0x46, 0x41, 0xA9, 0xF0, 0x77, 0xF4, 0xEE, 0x24, 0x05, 0xA7, 0x41, 0x46, 0x0B, 0xD3, 0x18, 0x8C, 0x72, 0xA6, 0xBD, 0xC5, 0x08, 0xD4, 0x0B, 0x50, 0xDA, 0xE5, 0x79, 0x1A, 0xA3, 0x07, 0xAD, 0x51, 0x9C, 0xF0, 0xFB, 0xF6, 0x56, 0x23, 0x30, 0x18, 0x68, 0xC7, 0x3F, 0x9E, 0x4A, 0x4B, 0x56, 0x68, 0x76, 0x64, 0xA4, 0x30, 0x7D, 0xE1, 0x3E, 0x7B, 0xDB, 0x5B, 0x8E, 0xC0, 0x40, 0xE0, 0x95, 0xA6, 0x4D, 0x83, 0xC2, 0xD6, 0x50, 0x69, 0x49, 0xCA, 0xCC, 0x0B, 0x59, 0x53, 0x5C, 0x15, 0x2D, 0xF2, 0xBC, 0x69, 0xDB, 0xD9, 0x5B, 0x8F, 0x40, 0x7F, 0x98, 0x35, 0x6A, 0xD6, 0x26, 0x50, 0xD6, 0x9C, 0x4A, 0x19, 0xDE, 0x9B, 0xA0, 0xC4, 0xBC, 0xD1, 0x46, 0xE1, 0xCD, 0xF6, 0xF6, 0x23, 0xD0, 0x1F, 0x94, 0x0A, 0x8E, 0x9B, 0x50, 0x60, 0xAA, 0x4A, 0x42, 0x69, 0xA5, 0x75, 0xF0, 0x05, 0xCB, 0xC2, 0x08, 0xC4, 0xE0, 0x38, 0xE1, 0x47, 0xA1, 0xA0, 0x37, 0xB3, 0xB6, 0xB7, 0x8D, 0xA2, 0xD4, 0x12, 0xD7, 0x7F, 0x0C, 0x2C, 0x74, 0x18, 0x4E, 0x86, 0x01, 0x4C, 0x9E, 0x3C, 0x79, 0x8B, 0x6A, 0xB5, 0xBA, 0xB9, 0xFD, 0x9A, 0x08, 0x5A, 0x85, 0x27, 0x15, 0x59, 0xC8, 0x37, 0x84, 0x8C, 0x12, 0xD7, 0x5D, 0x37, 0x69, 0x1C, 0xED, 0x79, 0xC1, 0x27, 0xB5, 0x0E, 0x77, 0x43, 0xA7, 0x77, 0x24, 0xFE, 0x7E, 0xA2, 0xEB, 0x46, 0xC7, 0x6A, 0x5D, 0xDB, 0x5B, 0x29, 0xBF, 0xD3, 0x5E, 0xD3, 0x5E, 0xE0, 0xBA, 0xD5, 0xAD, 0x3D, 0xAF, 0x76, 0xA8, 0xE7, 0x46, 0xD7, 0x6A, 0x27, 0x78, 0x1C, 0x1E, 0xB8, 0x10, 0xB8, 0x00, 0x2D, 0xE7, 0x63, 0x5A, 0x47, 0x57, 0x7B, 0x5E, 0xD7, 0x81, 0xE3, 0xC6, 0x4D, 0xF9, 0xB8, 0xBD, 0x1C, 0xD1, 0xE1, 0x6C, 0x8A, 0x74, 0xF5, 0x32, 0x0B, 0x6D, 0x7F, 0x65, 0x35, 0x03, 0x59, 0xB3, 0xA0, 0xF8, 0x7B, 0xC8, 0x8B, 0xD7, 0xE9, 0x4F, 0x74, 0x55, 0xF8, 0x0E, 0x23, 0x87, 0x86, 0x8A, 0x91, 0xDF, 0x31, 0xDB, 0x5F, 0x0E, 0xFE, 0xEF, 0x05, 0x1E, 0x0E, 0x07, 0xFB, 0xA0, 0x30, 0xDF, 0xCA, 0x50, 0xA9, 0x54, 0xB6, 0x04, 0xB3, 0xA7, 0x81, 0xF1, 0x37, 0xFA, 0x0A, 0x52, 0x13, 0xEC, 0x2D, 0x24, 0x3A, 0x9C, 0xD7, 0xB4, 0x0A, 0x4E, 0xE5, 0x38, 0x78, 0xE4, 0x17, 0x9B, 0x55, 0xC8, 0x93, 0xD1, 0x2E, 0x4A, 0xBA, 0x5D, 0x9E, 0x38, 0x87, 0x13, 0xBE, 0x96, 0xE4, 0x1C, 0x71, 0xBB, 0x4C, 0xFE, 0x3D, 0x15, 0x3E, 0xD1, 0xD2, 0xB5, 0x07, 0x1E, 0xBE, 0x0B, 0x0C, 0xF1, 0x8C, 0x59, 0x37, 0x1A, 0xDC, 0xD3, 0xCD, 0xA4, 0x4F, 0x72, 0x37, 0xD3, 0xD5, 0x0D, 0x14, 0x32, 0xE9, 0xBA, 0x66, 0xA1, 0x9D, 0xC1, 0xFF, 0x4C, 0xF8, 0x71, 0x02, 0x59, 0xAE, 0x49, 0xBA, 0x2E, 0x46, 0x1A, 0x86, 0x18, 0x3B, 0x55, 0x4B, 0x81, 0xEB, 0xFA, 0x07, 0x83, 0xC9, 0x55, 0xC2, 0x60, 0x02, 0xF3, 0x49, 0x48, 0x81, 0x95, 0x8A, 0x8E, 0x9E, 0x35, 0x8B, 0xAD, 0x6E, 0xB0, 0xB8, 0xE8, 0x79, 0xC7, 0x60, 0x48, 0xDE, 0x21, 0xC7, 0x53, 0x94, 0xC7, 0x73, 0xC2, 0x3D, 0xEA, 0x91, 0x85, 0x3C, 0xD3, 0xB1, 0x90, 0xEE, 0x2E, 0x13, 0x45, 0xB4, 0x02, 0xB8, 0x8E, 0x7F, 0x30, 0x99, 0x6F, 0xAC, 0x3B, 0x12, 0xE5, 0xAF, 0x99, 0x38, 0x3E, 0xDA, 0x86, 0x91, 0xD5, 0x88, 0x21, 0x8B, 0x43, 0x79, 0xA6, 0xD2, 0x8D, 0x94, 0xBB, 0x23, 0x9B, 0x10, 0xE5, 0x04, 0x4B, 0xEA, 0x75, 0x92, 0x09, 0x95, 0x9D, 0xD7, 0x42, 0x0F, 0xE7, 0x59, 0x95, 0x0C, 0x1D, 0xB8, 0x9D, 0xB5, 0x19, 0x60, 0x7A, 0x75, 0xA3, 0xAD, 0x2A, 0xF3, 0x33, 0xF2, 0xF4, 0x73, 0xA4, 0xA1, 0x95, 0x7F, 0xF6, 0x50, 0xA7, 0xAB, 0x18, 0xC9, 0x07, 0xBC, 0xFD, 0x08, 0x91, 0xCD, 0x0D, 0x1E, 0xAC, 0xDF, 0x51, 0xB8, 0x3E, 0x86, 0xB1, 0x70, 0x4E, 0x8E, 0x1D, 0x12, 0x60, 0x97, 0x04, 0x46, 0x5E, 0x49, 0xE3, 0xDD, 0xC6, 0x00, 0xFE, 0x6C, 0xD2, 0xC1, 0xF7, 0x7B, 0x5A, 0x23, 0x42, 0x62, 0x83, 0x04, 0xBF, 0x21, 0x5F, 0x4C, 0x43, 0x8D, 0x38, 0x0A, 0x9D, 0x12, 0xDD, 0xD9, 0x92, 0xF2, 0x8E, 0x53, 0xC7, 0x71, 0x7C, 0xD3, 0x01, 0xA9, 0xE6, 0xCA, 0xB4, 0xAB, 0xB1, 0x46, 0x70, 0xFF, 0x58, 0xD2, 0x81, 0x61, 0xDE, 0x68, 0x34, 0xC2, 0x8A, 0x42, 0x3A, 0x06, 0x22, 0xF7, 0x61, 0xF2, 0x45, 0xFE, 0x1A, 0x31, 0x08, 0x51, 0xE6, 0x51, 0x2A, 0xB8, 0x85, 0xE3, 0x9B, 0x0A, 0x7C, 0xAE, 0x6D, 0xDA, 0xC2, 0x74, 0x85, 0x58, 0x22, 0x42, 0xFB, 0xD3, 0xF9, 0x58, 0x15, 0xDF, 0xBB, 0xD3, 0xD2, 0xC9, 0x1B, 0x6D, 0xCD, 0x78, 0x13, 0x22, 0x76, 0x20, 0x42, 0x3E, 0x97, 0x26, 0x72, 0xC5, 0xA8, 0x2A, 0xFC, 0xAC, 0xD1, 0x54, 0x93, 0x00, 0x6D, 0xE1, 0xED, 0x8D, 0x7A, 0x4F, 0x8C, 0x56, 0xE8, 0x35, 0x9C, 0x3C, 0x02, 0x67, 0xB4, 0x4A, 0xBA, 0x22, 0xC6, 0xBC, 0x55, 0x2A, 0xC1, 0xB6, 0x95, 0x52, 0xCD, 0x31, 0x8E, 0xD2, 0x98, 0xB3, 0xD8, 0xB4, 0xF7, 0x37, 0xAB, 0xAA, 0xE2, 0x01, 0xD6, 0x9F, 0x62, 0x52, 0x4C, 0x63, 0x8C, 0xC6, 0x28, 0x42, 0x3B, 0xE1, 0x5B, 0xA4, 0xE5, 0xA9, 0xEA, 0x81, 0x69, 0x0D, 0x5B, 0x14, 0x52, 0x36, 0xCF, 0x8B, 0xAA, 0x66, 0x6D, 0x2D, 0x58, 0x6E, 0x8D, 0xD4, 0x10, 0x72, 0x4C, 0xA9, 0x14, 0x4C, 0x10, 0x85, 0x15, 0x0D, 0xB0, 0xFE, 0x2F, 0xB3, 0x28, 0x51, 0x3A, 0x2C, 0xE5, 0x3F, 0x4F, 0x5A, 0x48, 0x7D, 0xDF, 0x6E, 0x35, 0x83, 0x98, 0x74, 0x2A, 0x33, 0xF0, 0x0E, 0xD4, 0x93, 0x45, 0x69, 0x0C, 0x62, 0x6A, 0x89, 0x7F, 0x36, 0x65, 0x2C, 0x14, 0xC6, 0x8D, 0x9B, 0xF9, 0x61, 0xF4, 0xE7, 0xAF, 0x66, 0x29, 0xC2, 0x14, 0xD8, 0x55, 0xC1, 0xA3, 0xA4, 0x87, 0x3C, 0x7D, 0x4A, 0xAB, 0x19, 0xC4, 0xA6, 0x9C, 0xAF, 0x90, 0x3F, 0x64, 0x81, 0x05, 0x69, 0x64, 0xED, 0x69, 0xEB, 0x67, 0x6D, 0x42, 0x3A, 0x85, 0x81, 0xE7, 0xF8, 0x33, 0xB3, 0xE6, 0x7C, 0x19, 0xEF, 0x04, 0xF7, 0x91, 0x1E, 0x04, 0x3F, 0xB3, 0x15, 0x0D, 0x82, 0x0E, 0xF2, 0x50, 0xE1, 0x4F, 0x85, 0xF3, 0xD3, 0x39, 0x9F, 0x7D, 0x79, 0x4F, 0xD7, 0x26, 0x91, 0x4E, 0x61, 0xE0, 0x96, 0xC2, 0xD3, 0xB3, 0x2A, 0xD0, 0x18, 0xD4, 0xBF, 0x57, 0xE8, 0xB5, 0xAE, 0x41, 0x0E, 0x13, 0xFE, 0x52, 0x1B, 0x24, 0x8E, 0x34, 0xD3, 0xDA, 0x17, 0x06, 0x28, 0xC6, 0x7F, 0xCF, 0xBA, 0x2A, 0xDB, 0xD7, 0x20, 0xAD, 0x9A, 0xB2, 0xFC, 0xAF, 0x8A, 0xBC, 0x6E, 0xB0, 0x30, 0x9B, 0x41, 0xC2, 0xAB, 0x48, 0xA7, 0x10, 0x60, 0xFD, 0x80, 0x22, 0x53, 0xE5, 0xD4, 0xDE, 0x48, 0x83, 0xA0, 0xA8, 0x3F, 0x42, 0x9A, 0x5A, 0x47, 0xC7, 0xB7, 0x9C, 0x41, 0xC0, 0x1F, 0x22, 0x77, 0x4F, 0xB0, 0x37, 0x5A, 0x39, 0xFE, 0xDB, 0x69, 0x8A, 0x3A, 0x91, 0x72, 0x82, 0xCE, 0x83, 0x94, 0xB3, 0x10, 0x80, 0xB5, 0xC7, 0x83, 0xC1, 0x55, 0x69, 0x19, 0x8C, 0xD1, 0x16, 0xBC, 0x67, 0x49, 0x13, 0xDD, 0xCC, 0x41, 0xAD, 0x66, 0x10, 0x3A, 0x1C, 0xDB, 0xDE, 0xCE, 0xCE, 0xEA, 0xC7, 0xD0, 0xC0, 0xAC, 0x48, 0x2B, 0xAF, 0x71, 0x5C, 0x7F, 0x21, 0x1D, 0x59, 0x14, 0x98, 0x37, 0x70, 0x66, 0x9D, 0x35, 0x3A, 0x88, 0x46, 0x40, 0xFF, 0x0D, 0x90, 0xEC, 0x28, 0xAB, 0xAE, 0x16, 0x59, 0xE9, 0x35, 0x68, 0x95, 0xBF, 0xA6, 0x32, 0x2E, 0xD8, 0x16, 0xF2, 0xEA, 0x2C, 0xCE, 0xC7, 0xB1, 0x30, 0xE8, 0x52, 0x4E, 0x32, 0x8D, 0x06, 0x73, 0x06, 0x44, 0xC8, 0x3E, 0x79, 0x28, 0xCF, 0x30, 0x1A, 0xAE, 0x74, 0x9C, 0x9D, 0x3E, 0x85, 0xC9, 0xD7, 0x18, 0xFC, 0x6D, 0x4D, 0xDA, 0x49, 0x66, 0xDE, 0x28, 0x06, 0x30, 0x93, 0xD6, 0x0E, 0xCE, 0x45, 0xB2, 0xC8, 0x6B, 0x8D, 0xD9, 0x5D, 0xD8, 0x76, 0x08, 0x30, 0xF8, 0xF5, 0xBC, 0xD2, 0x0B, 0xD3, 0x96, 0xE7, 0x84, 0x35, 0x90, 0xED, 0xC0, 0xCC, 0xFF, 0xF5, 0x3C, 0x22, 0x2F, 0x0F, 0xEC, 0x5D, 0xDF, 0x90, 0xFF, 0xBF, 0x93, 0x4D, 0x5E, 0xB4, 0xBE, 0x40, 0xAE, 0x6C, 0x90, 0x5E, 0xEE, 0x80, 0x08, 0x39, 0x22, 0x2F, 0x83, 0x90, 0x0E, 0x04, 0x3E, 0x92, 0x74, 0xD1, 0x62, 0xDE, 0xDD, 0x2A, 0x69, 0xCB, 0xF0, 0x15, 0xFE, 0x96, 0x7C, 0x21, 0xAD, 0xCE, 0xCE, 0xC7, 0x20, 0xC1, 0x4E, 0xA4, 0x97, 0x3B, 0xC0, 0xD2, 0x87, 0xE4, 0x6B, 0x10, 0xF3, 0xD8, 0x53, 0xAB, 0xF0, 0xE7, 0x79, 0xD1, 0xCD, 0x8A, 0xE4, 0xC3, 0x53, 0xC1, 0x51, 0x22, 0xAF, 0x13, 0x3C, 0x91, 0x43, 0xCA, 0x2A, 0x6E, 0x4D, 0x0B, 0xB9, 0xF5, 0xCB, 0x79, 0x79, 0x32, 0xE9, 0xC4, 0xCB, 0x27, 0x48, 0x11, 0xBB, 0xB7, 0x4A, 0x84, 0x50, 0x89, 0xEC, 0x26, 0x2B, 0x95, 0xDA, 0x27, 0x50, 0xE7, 0x52, 0x77, 0x58, 0x44, 0x8E, 0x65, 0x97, 0x56, 0xE9, 0xAC, 0x8E, 0x15, 0x05, 0xE6, 0x0D, 0x60, 0x34, 0xD5, 0xF3, 0x81, 0x24, 0x64, 0x28, 0xE3, 0x73, 0x79, 0x67, 0x67, 0xD7, 0xA7, 0xCD, 0xFA, 0x18, 0x17, 0xF1, 0x86, 0xB6, 0x8E, 0x88, 0x6C, 0x4E, 0xF0, 0x0C, 0x65, 0xD5, 0x3A, 0x9C, 0x95, 0x35, 0x6A, 0x8D, 0x41, 0xC2, 0x45, 0x6C, 0x9F, 0x45, 0x81, 0x79, 0x83, 0x52, 0x51, 0x19, 0x37, 0xCA, 0xED, 0x61, 0x92, 0x49, 0x5B, 0x91, 0x3C, 0x83, 0x46, 0x3D, 0xB9, 0x6E, 0xA8, 0xD3, 0x56, 0xEF, 0x15, 0x5A, 0x57, 0x85, 0xD7, 0x66, 0xE5, 0x87, 0x8D, 0x8B, 0x7D, 0x8B, 0xA5, 0x98, 0x57, 0x54, 0xCD, 0x44, 0x29, 0xFD, 0xCC, 0xB5, 0x3F, 0x1A, 0x83, 0x98, 0x37, 0xCF, 0xB3, 0xB6, 0x98, 0x79, 0x20, 0x23, 0x14, 0x6D, 0x78, 0x05, 0xF0, 0xA1, 0x3C, 0x22, 0xD6, 0xCA, 0x77, 0xAB, 0x28, 0xAF, 0x28, 0xE0, 0x5E, 0xF0, 0xDC, 0xD2, 0x96, 0xC9, 0xB1, 0x4B, 0x98, 0xAF, 0x41, 0x7A, 0x34, 0x6A, 0xCA, 0xBC, 0xA1, 0x32, 0x0A, 0xEF, 0x0B, 0x6F, 0x7E, 0x40, 0x64, 0xCC, 0x21, 0x5D, 0x11, 0x85, 0x86, 0x0A, 0x4E, 0x23, 0xCD, 0xC2, 0x00, 0x1D, 0xD1, 0xA5, 0x79, 0x30, 0x1B, 0xA3, 0xF5, 0xA2, 0x6F, 0x1A, 0xDA, 0xCD, 0xDF, 0x8A, 0x10, 0xA3, 0xC8, 0xE4, 0x44, 0x07, 0x90, 0x8F, 0xBC, 0xDA, 0x70, 0xD2, 0xE0, 0x0B, 0x77, 0xA4, 0x59, 0x18, 0x68, 0xC7, 0x3F, 0x20, 0x4F, 0x83, 0x58, 0xCF, 0x94, 0xB7, 0x05, 0xB7, 0xDB, 0xAE, 0xBA, 0x39, 0x22, 0xE6, 0x55, 0xE6, 0xDE, 0xA4, 0x6B, 0x8B, 0x42, 0xA3, 0x7C, 0xFF, 0x69, 0x91, 0x4F, 0xD7, 0x26, 0xE5, 0xB5, 0x3C, 0x84, 0x88, 0x7F, 0x77, 0xCA, 0xB8, 0x9E, 0x17, 0xCA, 0x0B, 0x01, 0xBE, 0xA6, 0x8F, 0x3A, 0xF2, 0x5E, 0x5E, 0x75, 0x84, 0x58, 0xF1, 0x24, 0x4A, 0xF6, 0x25, 0x7D, 0x7C, 0x62, 0xF2, 0xD9, 0xDC, 0x28, 0xB1, 0x51, 0x2A, 0x5B, 0x11, 0xA0, 0xC4, 0x1B, 0xF3, 0x70, 0x38, 0x4B, 0xF3, 0x26, 0xD2, 0x2C, 0x1C, 0xD0, 0x11, 0xE5, 0xC2, 0x74, 0x8C, 0xE2, 0xA1, 0x8E, 0xFF, 0xB8, 0x25, 0xCF, 0x0E, 0xE7, 0x9F, 0x79, 0xD2, 0xDF, 0x10, 0xF2, 0x3E, 0x98, 0xF0, 0xDE, 0xC1, 0xFB, 0x3A, 0x8E, 0x3F, 0xD5, 0x44, 0x47, 0x76, 0x67, 0x23, 0x5D, 0x4F, 0xF9, 0xFB, 0x8B, 0x40, 0x45, 0x83, 0x5B, 0x0A, 0xF6, 0xCC, 0x7B, 0xEB, 0x80, 0xF1, 0xA8, 0x78, 0x29, 0x25, 0x2A, 0x73, 0x1F, 0x46, 0x9E, 0x51, 0x98, 0x84, 0x54, 0xBE, 0xBC, 0x69, 0x58, 0xEE, 0x92, 0x37, 0x0D, 0x91, 0xB6, 0xEE, 0xCD, 0xC3, 0x11, 0xA4, 0xDD, 0x55, 0xE1, 0x2B, 0x85, 0x2D, 0xBB, 0x27, 0xC0, 0x68, 0x14, 0xBE, 0x27, 0xF3, 0x28, 0x7C, 0x31, 0x1A, 0xE5, 0x44, 0x8B, 0x26, 0x63, 0xA2, 0xC8, 0x1B, 0xD0, 0x38, 0xC5, 0x46, 0x89, 0x79, 0x17, 0xD7, 0x53, 0xE1, 0x81, 0xBC, 0x1F, 0xE4, 0x39, 0x2A, 0xAF, 0xFB, 0x49, 0x63, 0xA2, 0x82, 0xEF, 0x92, 0x6E, 0xD3, 0x20, 0xAF, 0xD6, 0xB0, 0x37, 0x92, 0x1E, 0xF2, 0xEE, 0xBA, 0x1D, 0xB1, 0x10, 0xEA, 0x82, 0x62, 0x0E, 0x0E, 0x80, 0xD2, 0x40, 0x57, 0x29, 0xFF, 0x2C, 0xDE, 0xA7, 0x54, 0x9A, 0xEA, 0xF0, 0x1C, 0x95, 0x3C, 0x8A, 0xB9, 0x69, 0x48, 0xFC, 0x85, 0x93, 0xB7, 0x99, 0xBC, 0x85, 0x08, 0xD1, 0x4C, 0xD0, 0x4E, 0xF0, 0x8F, 0x82, 0x8C, 0x72, 0x82, 0xBD, 0x05, 0x3D, 0x37, 0xF5, 0xFB, 0xC3, 0xC9, 0x68, 0xF7, 0x73, 0x28, 0xB3, 0xB0, 0xC9, 0x49, 0x20, 0xA2, 0xF1, 0x51, 0x36, 0x16, 0xC9, 0xD7, 0x37, 0x86, 0xE4, 0x1F, 0x86, 0xFE, 0x9A, 0x30, 0xDF, 0x6C, 0xD0, 0x7A, 0xDA, 0x24, 0x30, 0x91, 0xF9, 0x91, 0x6E, 0x6F, 0x24, 0x2D, 0xA6, 0xC2, 0xDE, 0x2B, 0xA4, 0x5A, 0x45, 0x17, 0x50, 0xD0, 0xAC, 0x1E, 0xCC, 0xF1, 0x42, 0xC7, 0x0D, 0x65, 0x1F, 0x07, 0xF7, 0x08, 0x22, 0xD2, 0x6F, 0xC8, 0xAB, 0xAB, 0x93, 0x54, 0xE5, 0xF8, 0x7F, 0x12, 0xA6, 0x87, 0x0A, 0x64, 0x32, 0x97, 0xA3, 0x07, 0x53, 0x28, 0x44, 0xC8, 0x5F, 0xFA, 0xEF, 0xD8, 0xE5, 0x92, 0xB8, 0x39, 0x9E, 0x29, 0xDD, 0xBD, 0xC4, 0x10, 0x18, 0x1F, 0x37, 0x0E, 0x04, 0x18, 0xE3, 0xA4, 0x49, 0x13, 0x77, 0x49, 0xBC, 0xBE, 0x51, 0xB4, 0x4D, 0xCE, 0x0B, 0x63, 0xC7, 0xEE, 0xBC, 0x95, 0x25, 0x3F, 0x74, 0x00, 0x21, 0x73, 0x39, 0x24, 0xC6, 0xCE, 0xD2, 0xFF, 0xAD, 0xF5, 0xF4, 0x8F, 0x58, 0xD2, 0x7D, 0x80, 0x8F, 0x42, 0x3D, 0xAF, 0x76, 0x23, 0xF3, 0x74, 0x3D, 0x11, 0x13, 0x47, 0x84, 0x59, 0xE4, 0xAB, 0xDD, 0xC4, 0x67, 0xE4, 0x96, 0x94, 0x40, 0xA9, 0xE4, 0x7F, 0xC6, 0x53, 0xD1, 0xC3, 0x59, 0x57, 0x07, 0x68, 0x0C, 0x74, 0x85, 0x6F, 0x2A, 0x35, 0xB5, 0x6C, 0x49, 0x0F, 0x3D, 0x20, 0x37, 0xCF, 0x36, 0x46, 0x49, 0x97, 0xBE, 0x38, 0x16, 0x42, 0xFD, 0x8B, 0xCB, 0xF1, 0x96, 0xE4, 0x80, 0x00, 0xC3, 0x74, 0x79, 0x6E, 0x74, 0x19, 0xBA, 0xB2, 0xE7, 0x10, 0x4D, 0xEF, 0x63, 0x7C, 0x77, 0x7F, 0x7A, 0xAE, 0x1B, 0xBD, 0x8F, 0x49, 0xDE, 0xF3, 0xB8, 0xEE, 0x72, 0xBE, 0x9C, 0x61, 0x87, 0xAE, 0x07, 0x93, 0x26, 0x4D, 0xDA, 0x0A, 0x46, 0xB9, 0xCB, 0xDC, 0xBF, 0x71, 0xDE, 0x4D, 0xC4, 0x46, 0xF3, 0x0B, 0x7B, 0x4C, 0x9B, 0x05, 0xF8, 0xE4, 0x8F, 0xF9, 0xBF, 0x91, 0x76, 0x98, 0xD7, 0x1A, 0x6F, 0x0F, 0xAF, 0xE1, 0x96, 0x6A, 0x4B, 0x6A, 0x50, 0xE0, 0x1E, 0x40, 0xA4, 0xB1, 0xFD, 0x50, 0x0F, 0xAE, 0x55, 0x4E, 0xB0, 0x6E, 0x05, 0xDA, 0x7E, 0xBE, 0xAB, 0xDD, 0xE0, 0x7A, 0xAD, 0xA3, 0x03, 0xF8, 0x06, 0xBB, 0x1D, 0xB2, 0x21, 0xD8, 0xC4, 0xF3, 0xC2, 0xF3, 0xCA, 0x36, 0xA2, 0xEA, 0x71, 0x2A, 0xC3, 0xB7, 0xEC, 0x36, 0xBE, 0x5D, 0xA9, 0x29, 0x3B, 0x58, 0x3A, 0xAD, 0x07, 0x3C, 0xEE, 0x08, 0x4C, 0x3E, 0x4D, 0x66, 0xC9, 0xB4, 0x7D, 0x10, 0xD5, 0x07, 0xA9, 0x34, 0x0A, 0x2E, 0xC2, 0xEB, 0xDA, 0x53, 0xF0, 0xD0, 0xBA, 0xBA, 0x92, 0x72, 0x39, 0x8A, 0x3C, 0xB7, 0x76, 0x06, 0xBC, 0xFF, 0x01, 0x18, 0x41, 0x96, 0x6F, 0x06, 0xF2, 0xEA, 0xF8, 0xFF, 0x18, 0x41, 0xF8, 0x7C, 0x08, 0x7C, 0x9C, 0x53, 0x1E, 0x64, 0x13, 0x0D, 0xD2, 0xDA, 0x0C, 0x38, 0xC6, 0x5F, 0x71, 0x7D, 0x37, 0xBB, 0xAE, 0xF5, 0x69, 0x9B, 0x86, 0x43, 0xE4, 0xD2, 0xE1, 0x33, 0xA0, 0x2D, 0x7B, 0x11, 0x5B, 0x1E, 0x4C, 0xF7, 0x52, 0x3B, 0x08, 0x1E, 0x7A, 0x1B, 0x0F, 0x07, 0x40, 0xEA, 0x58, 0xD5, 0x23, 0x54, 0xB0, 0x1A, 0x2D, 0xE7, 0xCB, 0xF8, 0xBF, 0xD9, 0xE5, 0x72, 0x6D, 0x77, 0x3B, 0x64, 0x40, 0xE0, 0x82, 0x63, 0xD9, 0xAD, 0x1D, 0x41, 0x23, 0x98, 0x9A, 0x60, 0x0D, 0x3D, 0x80, 0x21, 0xFA, 0x23, 0xAF, 0x8B, 0xBD, 0x59, 0xE6, 0x08, 0x3A, 0x9A, 0xC3, 0xB7, 0x25, 0x7B, 0x9F, 0x22, 0xD1, 0x1F, 0x50, 0xC3, 0x34, 0x0D, 0x08, 0x85, 0xCF, 0xEB, 0xA1, 0x25, 0x8B, 0x85, 0x6F, 0x6B, 0xCD, 0xC8, 0xEB, 0x6A, 0xBF, 0x83, 0x6A, 0x94, 0xAA, 0xED, 0xC0, 0x59, 0x30, 0x53, 0x87, 0x08, 0xB2, 0x2E, 0x52, 0x82, 0xD5, 0xF8, 0x7C, 0x01, 0x51, 0xF1, 0x47, 0x28, 0xE6, 0xD4, 0xB2, 0x1B, 0xEE, 0xC3, 0x9D, 0x54, 0x76, 0x58, 0x1F, 0xA0, 0x07, 0xA2, 0x61, 0x78, 0xDE, 0x14, 0xE6, 0x7C, 0x56, 0x05, 0x8C, 0x71, 0xC4, 0xFB, 0x17, 0x20, 0xDD, 0x9D, 0xC0, 0x79, 0x88, 0xBD, 0x1D, 0x78, 0xF6, 0x3B, 0x79, 0xAC, 0x2C, 0xAE, 0xBB, 0x19, 0x38, 0xC7, 0xF0, 0xDD, 0x33, 0x16, 0x8E, 0xB4, 0x14, 0x3C, 0xCD, 0xC5, 0xB8, 0x5B, 0xD1, 0xA1, 0x9D, 0x85, 0x34, 0xB7, 0x47, 0x33, 0x97, 0x47, 0x1A, 0x06, 0xD7, 0xED, 0x0A, 0xCA, 0x3A, 0xBA, 0x40, 0x39, 0xE1, 0xB3, 0xB1, 0x67, 0x9A, 0x99, 0x6B, 0x5F, 0xA5, 0xF4, 0x78, 0xAD, 0x49, 0x5B, 0xF8, 0xBE, 0xAC, 0xF7, 0x52, 0x03, 0xBC, 0x90, 0xE7, 0xF2, 0xCA, 0xBA, 0x52, 0xD2, 0xF8, 0x3C, 0x90, 0xD1, 0xC6, 0xEE, 0x0A, 0x9F, 0x8F, 0xC5, 0xCF, 0x2C, 0x10, 0x19, 0xDB, 0x33, 0x12, 0xD9, 0x0A, 0xB3, 0x9E, 0x24, 0xD5, 0x12, 0x8E, 0xEB, 0x89, 0x38, 0xD3, 0xEA, 0xD2, 0xB1, 0xF8, 0xC2, 0x9F, 0x30, 0xDF, 0x0A, 0x00, 0x86, 0x76, 0x35, 0xB9, 0x37, 0x4E, 0x29, 0xC9, 0xC2, 0x24, 0x21, 0xAF, 0x87, 0x01, 0xEE, 0x8B, 0x17, 0xF8, 0x90, 0x2A, 0x4E, 0xD6, 0x6E, 0x6D, 0x25, 0x8D, 0x91, 0x74, 0x7D, 0xDE, 0x68, 0x9C, 0x06, 0x8A, 0xD5, 0xE1, 0x2F, 0x44, 0x18, 0x00, 0xFE, 0x7D, 0x49, 0xBD, 0x1D, 0x23, 0x65, 0x15, 0x19, 0xDC, 0xF0, 0x1D, 0xB4, 0xE4, 0xA7, 0x30, 0xC5, 0x5A, 0x32, 0xCD, 0x07, 0xA6, 0x25, 0x18, 0xE3, 0x6A, 0xC3, 0x54, 0x7D, 0xDD, 0x49, 0x6F, 0x94, 0x56, 0xD3, 0x0D, 0x6E, 0x24, 0x2D, 0xA6, 0x0E, 0xA6, 0x31, 0x0A, 0xC7, 0x08, 0x4A, 0xBA, 0xBE, 0x38, 0x34, 0xCB, 0x29, 0x8C, 0xCA, 0xF8, 0xB8, 0x3F, 0xB4, 0xCA, 0xF6, 0x30, 0x83, 0xFA, 0x78, 0x91, 0x88, 0x13, 0x23, 0xD6, 0xE6, 0xD2, 0x41, 0x49, 0xA3, 0xA9, 0x80, 0x5C, 0xBA, 0x2F, 0x6E, 0xFE, 0x7A, 0xDA, 0x49, 0x95, 0x78, 0x95, 0x0A, 0xFF, 0x40, 0x5A, 0x54, 0x82, 0xA7, 0x6A, 0x8F, 0x18, 0x81, 0x92, 0xAF, 0x6F, 0x06, 0x5A, 0x03, 0xCC, 0xE7, 0x73, 0x11, 0x23, 0x63, 0x70, 0x8E, 0xF5, 0xFE, 0xBA, 0xD1, 0x44, 0x5C, 0x8D, 0xDD, 0x65, 0xF3, 0xCE, 0x06, 0x46, 0x9E, 0xFD, 0x49, 0x7C, 0xE3, 0x24, 0xA6, 0x06, 0x43, 0x0A, 0x8E, 0x82, 0x2F, 0x0F, 0x85, 0xE0, 0x4D, 0x3B, 0x22, 0x22, 0x5E, 0x6C, 0x56, 0x8A, 0x1A, 0x0C, 0x29, 0x17, 0xBC, 0x7D, 0xB1, 0xDB, 0x59, 0x9D, 0x21, 0xFC, 0xB9, 0xE1, 0xAF, 0x1A, 0x35, 0x0A, 0x23, 0xDC, 0x44, 0xBF, 0x6C, 0xD6, 0x19, 0x4D, 0x3A, 0x85, 0x01, 0x22, 0xE3, 0x32, 0x53, 0x0C, 0xD3, 0xA5, 0x15, 0xAB, 0xF8, 0x39, 0x33, 0x67, 0xCE, 0xFC, 0x80, 0xD6, 0x53, 0xB7, 0x67, 0x0B, 0xDC, 0x2A, 0xC6, 0x88, 0x51, 0x6A, 0x8A, 0x0A, 0x97, 0xB8, 0xAE, 0x1F, 0x18, 0x99, 0xA3, 0x3B, 0x1B, 0x35, 0x0A, 0xD1, 0xA6, 0xC1, 0x5B, 0x28, 0xAB, 0x28, 0x2F, 0x6F, 0xD0, 0x4E, 0xF8, 0xEB, 0x2C, 0x69, 0x85, 0x11, 0x05, 0x03, 0xBC, 0xCD, 0x8E, 0x84, 0xC5, 0x0F, 0xC5, 0x1C, 0x13, 0xC8, 0xD6, 0x32, 0x46, 0x8C, 0x62, 0x14, 0x14, 0x6A, 0x3E, 0x2B, 0x19, 0x33, 0xA6, 0xB6, 0x19, 0x0A, 0xFD, 0x0B, 0xF6, 0x6F, 0x0D, 0xA1, 0xD5, 0x57, 0xFE, 0xA7, 0x9E, 0xC2, 0x5B, 0xCE, 0xCB, 0x96, 0xE3, 0x4D, 0xAB, 0x1B, 0xB7, 0x98, 0xE8, 0xF9, 0xEF, 0x9A, 0xD0, 0xA2, 0xC6, 0x88, 0x31, 0x5E, 0xC1, 0xA5, 0xF3, 0x20, 0x4A, 0x26, 0xE3, 0xDF, 0xA9, 0x1E, 0x35, 0x50, 0x6F, 0xA8, 0x47, 0x57, 0x88, 0x22, 0xF3, 0x00, 0xED, 0x04, 0xC7, 0x98, 0x90, 0x4D, 0xDF, 0xFD, 0x70, 0xBC, 0xEB, 0x04, 0xE7, 0x92, 0x9E, 0x5B, 0x0A, 0x2F, 0xCC, 0x66, 0xDC, 0xE6, 0x21, 0xF9, 0x8E, 0x5F, 0x82, 0x50, 0xAA, 0xFA, 0xAD, 0x34, 0xA9, 0x8B, 0x28, 0xE3, 0x1C, 0xFF, 0x78, 0xD2, 0xC9, 0x04, 0x60, 0x22, 0xC4, 0x1C, 0x43, 0x7E, 0x34, 0x25, 0xE9, 0x46, 0xF5, 0xA0, 0x84, 0xBA, 0x13, 0xC8, 0x5B, 0x25, 0x88, 0x8C, 0xFD, 0x5B, 0x35, 0x4D, 0x0D, 0x84, 0xC6, 0xC3, 0xC3, 0x9F, 0x1A, 0xFE, 0x83, 0xBB, 0xD3, 0xF0, 0x4F, 0xFD, 0xA1, 0x59, 0x58, 0xA3, 0xB2, 0xFC, 0xF2, 0x0F, 0x57, 0x54, 0xB9, 0x84, 0x9D, 0x26, 0x77, 0xF6, 0x20, 0x53, 0x55, 0x4D, 0x36, 0xAD, 0xF0, 0x95, 0x51, 0x14, 0xB9, 0xC5, 0xEC, 0xD9, 0x93, 0xAF, 0x6D, 0x4D, 0xA4, 0x32, 0x25, 0xDD, 0x7A, 0xB5, 0x69, 0x9C, 0xCD, 0xC3, 0x41, 0x97, 0xA5, 0x71, 0x50, 0xD2, 0xA0, 0x3E, 0x07, 0x3B, 0x2E, 0x77, 0x40, 0x80, 0x57, 0x5C, 0x94, 0x35, 0xB5, 0x48, 0xAA, 0x2A, 0xF9, 0x17, 0x92, 0x1E, 0x8C, 0xF2, 0xE7, 0x76, 0x8B, 0x8E, 0x18, 0x4D, 0x94, 0x87, 0xB2, 0x55, 0x01, 0xF5, 0xE0, 0x07, 0x69, 0xE7, 0x5F, 0xA2, 0x4F, 0x15, 0x9C, 0x4F, 0x3A, 0x0D, 0x01, 0x5B, 0x3E, 0xAE, 0xE7, 0x64, 0x49, 0x55, 0x8C, 0x04, 0x2E, 0xD0, 0xC9, 0x2C, 0xDC, 0xE1, 0x31, 0xB0, 0xED, 0x69, 0x8C, 0x18, 0xAD, 0x32, 0x7F, 0x4C, 0xFD, 0x28, 0xC7, 0xFF, 0x4F, 0x9A, 0x79, 0x98, 0x4D, 0x5D, 0xDD, 0xCC, 0x18, 0xA2, 0xE8, 0x7A, 0x01, 0x03, 0xEE, 0xCF, 0xAA, 0x40, 0x53, 0xC8, 0x82, 0x63, 0x48, 0x0F, 0xD1, 0x36, 0x3F, 0xED, 0x44, 0xB2, 0x55, 0x90, 0xCA, 0x74, 0x55, 0xB4, 0xC2, 0xEC, 0x1E, 0x4E, 0xEF, 0x60, 0x1C, 0xC7, 0x5A, 0x24, 0x8A, 0xAE, 0x07, 0x70, 0xF1, 0x7E, 0x59, 0x8D, 0x61, 0xEB, 0xC6, 0xCB, 0xA4, 0xA7, 0x95, 0xFF, 0xBD, 0x76, 0xE9, 0xAA, 0x06, 0x43, 0xEA, 0x05, 0x29, 0xEB, 0x3A, 0x91, 0xCB, 0xF1, 0x1F, 0x4F, 0x5B, 0x5F, 0x2D, 0x1D, 0x9E, 0x16, 0x31, 0x28, 0x74, 0x64, 0xB9, 0x51, 0x8C, 0xB6, 0x5D, 0x3C, 0x84, 0xE9, 0x0A, 0xDF, 0x87, 0xFC, 0x4C, 0xDE, 0xFC, 0xD0, 0x34, 0x29, 0x68, 0x50, 0x1C, 0x74, 0x8C, 0xBB, 0xA7, 0x75, 0x5C, 0x29, 0xF0, 0xF5, 0x1C, 0xBB, 0x91, 0x47, 0xAE, 0x37, 0xCF, 0x12, 0xFC, 0x05, 0xA4, 0xA7, 0x55, 0xF8, 0xA3, 0x8D, 0x25, 0x3A, 0x62, 0x34, 0xDE, 0x5D, 0x35, 0x3B, 0xBF, 0x5C, 0xFF, 0xA9, 0xB4, 0xCE, 0x2B, 0xE3, 0x74, 0xB8, 0x1B, 0xE9, 0x0C, 0x08, 0xCC, 0x6D, 0x59, 0x0D, 0x22, 0xB5, 0xC3, 0x3C, 0x70, 0xEA, 0x30, 0x5B, 0xE0, 0xDA, 0xBB, 0x76, 0xAC, 0x8F, 0xE6, 0x79, 0x3D, 0x97, 0x80, 0xF8, 0x3E, 0x40, 0x5A, 0x7D, 0x89, 0x61, 0xD5, 0x06, 0xB6, 0xBC, 0x79, 0x9D, 0x5D, 0x13, 0xB3, 0xA6, 0x16, 0x53, 0xF8, 0xC2, 0xA5, 0xB2, 0xFE, 0xE3, 0xF8, 0x87, 0x8B, 0x71, 0x12, 0xAE, 0x6B, 0x77, 0x14, 0x23, 0xA8, 0xF0, 0x52, 0xEA, 0x0D, 0xDF, 0x53, 0xFD, 0xE6, 0x89, 0xD1, 0x55, 0xB0, 0x0A, 0x0D, 0xCF, 0x78, 0x31, 0x40, 0x7F, 0x70, 0xDD, 0xE8, 0xDC, 0xAC, 0x0A, 0x34, 0x8C, 0x06, 0x57, 0x1B, 0x7A, 0xE1, 0xDC, 0xAC, 0xB5, 0xA8, 0x55, 0x31, 0x76, 0x3C, 0xAE, 0xE4, 0xBA, 0x25, 0x3E, 0x37, 0x49, 0x1B, 0x25, 0x92, 0x4D, 0xA4, 0x95, 0xEE, 0x03, 0xF2, 0xA6, 0x88, 0xE3, 0xBF, 0x94, 0xB5, 0x35, 0xA5, 0x01, 0xBC, 0x52, 0x6D, 0x1A, 0x17, 0xE3, 0x36, 0x56, 0x63, 0xC4, 0x68, 0x9D, 0xEF, 0x30, 0x79, 0x03, 0x32, 0x65, 0x5A, 0xB6, 0xDD, 0xE8, 0x93, 0x30, 0x41, 0xDF, 0xAD, 0xD3, 0x50, 0xE0, 0xCE, 0x59, 0x15, 0x68, 0x8C, 0x19, 0xBC, 0x68, 0xE8, 0x05, 0x57, 0xA4, 0xF5, 0x9A, 0x76, 0x41, 0xEA, 0x4B, 0xD9, 0x53, 0xB0, 0xF9, 0x99, 0x56, 0x7F, 0x34, 0xE6, 0x7A, 0x6F, 0x3E, 0xF6, 0x3C, 0x43, 0x4E, 0x1E, 0x54, 0x0F, 0x72, 0x3C, 0x0C, 0x61, 0x7F, 0x7F, 0x23, 0x7C, 0x6B, 0xE3, 0x2B, 0xE6, 0xEB, 0x23, 0x53, 0x97, 0x9C, 0xAD, 0xA5, 0x82, 0xE3, 0xD2, 0xA6, 0x7B, 0x1B, 0x69, 0x7D, 0xD3, 0x16, 0x8A, 0xCB, 0xA3, 0x79, 0x44, 0x08, 0x7F, 0xA1, 0x86, 0xD1, 0xB6, 0xB1, 0x47, 0x47, 0x8C, 0xC6, 0x09, 0xF9, 0x1B, 0x55, 0xD5, 0xAD, 0xD1, 0x7D, 0xA5, 0x3A, 0xF7, 0x8B, 0x7A, 0x07, 0x0D, 0xF9, 0xB9, 0x25, 0x81, 0x4A, 0xA5, 0x3A, 0x16, 0x21, 0xB7, 0x32, 0x4B, 0x87, 0x65, 0x73, 0xA1, 0xCC, 0xCC, 0x51, 0xEC, 0x1A, 0xFA, 0x55, 0x81, 0x76, 0x46, 0x51, 0xA6, 0xB2, 0x07, 0x0E, 0xA4, 0x9C, 0x50, 0x53, 0xEF, 0x3C, 0x40, 0x61, 0xDD, 0x0B, 0x83, 0xDC, 0x2D, 0x5A, 0xCE, 0xB8, 0x83, 0x88, 0x06, 0x80, 0x41, 0xAE, 0x24, 0x3D, 0x58, 0xFB, 0xC5, 0xAC, 0xCD, 0x41, 0xBB, 0x20, 0xDF, 0x5D, 0x86, 0x03, 0xAE, 0xE4, 0x8B, 0xE2, 0x90, 0xFB, 0x8C, 0xB4, 0x8E, 0x48, 0x43, 0x7A, 0x4E, 0xF4, 0x79, 0x31, 0x08, 0xFA, 0xE9, 0xB3, 0xB2, 0x7A, 0x34, 0xC7, 0x73, 0x96, 0x2F, 0xAF, 0x90, 0x4A, 0xA4, 0x6D, 0x2C, 0x4B, 0x25, 0x83, 0xA3, 0x71, 0xC6, 0x70, 0x2F, 0xAF, 0x14, 0x55, 0xD3, 0xA6, 0x7D, 0xD1, 0x9F, 0x0A, 0x7F, 0x28, 0x06, 0xE1, 0x23, 0x4A, 0x1E, 0x8D, 0x9A, 0x74, 0x61, 0x3D, 0x68, 0x7A, 0x72, 0x7F, 0x55, 0xA5, 0x32, 0x73, 0x4B, 0xB6, 0x81, 0x59, 0x8D, 0xDB, 0x6E, 0x48, 0x79, 0x1D, 0x27, 0xB8, 0x98, 0xC7, 0x8A, 0x23, 0xF5, 0x2C, 0x4D, 0x93, 0xFA, 0x45, 0x67, 0x2A, 0xBC, 0x41, 0x0C, 0x82, 0xCE, 0x68, 0x5E, 0x96, 0x14, 0x63, 0xC6, 0xDA, 0xA3, 0x29, 0x54, 0x70, 0xCD, 0x70, 0x33, 0x88, 0x89, 0x0A, 0xF3, 0x6B, 0x73, 0x70, 0xEE, 0xFB, 0xD3, 0x44, 0x09, 0xC7, 0x28, 0x9E, 0xF5, 0x58, 0xE9, 0x9C, 0x31, 0x16, 0xC4, 0xFE, 0x97, 0xA5, 0xA0, 0xD3, 0x00, 0xC8, 0x9F, 0x72, 0x82, 0x33, 0x0D, 0x33, 0x5C, 0xEA, 0x47, 0x8C, 0x46, 0x77, 0xC1, 0x72, 0xC7, 0xD9, 0x73, 0xD3, 0xB4, 0xE9, 0xDF, 0xEA, 0xFF, 0x15, 0xCE, 0x3F, 0xF6, 0xC6, 0x3F, 0xD0, 0xAE, 0x25, 0x5F, 0x58, 0x0F, 0x92, 0x01, 0xA5, 0xA2, 0xA3, 0xEC, 0xC9, 0xD7, 0xA9, 0x9E, 0x37, 0xB7, 0x3B, 0x1A, 0x0F, 0x0F, 0x76, 0xD2, 0x3A, 0xFA, 0x52, 0xBA, 0x0C, 0x21, 0x3A, 0x5B, 0x8C, 0x74, 0xE5, 0x9F, 0x92, 0xB5, 0x00, 0x33, 0x22, 0xB8, 0x5C, 0x42, 0x86, 0xD2, 0x16, 0xB5, 0x76, 0x47, 0x31, 0x82, 0x0E, 0xBF, 0x31, 0x41, 0x96, 0x51, 0xD2, 0xEA, 0xD3, 0x5F, 0x86, 0x14, 0x13, 0x5C, 0x9F, 0xC5, 0x20, 0xE6, 0xE6, 0xFE, 0x32, 0x39, 0x37, 0x31, 0xC7, 0x53, 0x4B, 0xDB, 0x0D, 0x29, 0x37, 0xD2, 0xF6, 0x45, 0xC8, 0xDA, 0x1D, 0x68, 0x83, 0xDF, 0x4D, 0x63, 0x14, 0x1E, 0xE3, 0x2E, 0x6B, 0x30, 0xD9, 0x0C, 0x82, 0x7A, 0xE1, 0xF8, 0x2F, 0x49, 0xFD, 0x68, 0xA1, 0xE3, 0x5E, 0x9B, 0x8D, 0xCC, 0x0C, 0xC8, 0x36, 0x77, 0x52, 0x0F, 0x70, 0xCC, 0x27, 0x53, 0xD6, 0xD1, 0x6E, 0x9E, 0x4D, 0xFB, 0x6A, 0xC2, 0x7F, 0xD4, 0x8D, 0x96, 0x11, 0xF9, 0xE9, 0x09, 0xB6, 0x6D, 0xC3, 0xD7, 0x20, 0x34, 0x40, 0x20, 0x9D, 0xA6, 0xAB, 0x82, 0x5B, 0xD3, 0xEA, 0x81, 0x11, 0xB2, 0x22, 0xE9, 0x3F, 0xEA, 0x45, 0x1B, 0xAA, 0x72, 0x12, 0x34, 0x0C, 0xF3, 0xC0, 0x70, 0xAD, 0x21, 0x4C, 0x51, 0xD0, 0xE5, 0x22, 0xEA, 0x01, 0xAD, 0xFF, 0xF9, 0xA9, 0x0D, 0x92, 0xF4, 0xC7, 0x46, 0xD0, 0x1A, 0xE4, 0x74, 0x32, 0x02, 0x86, 0x9E, 0x1D, 0x6E, 0x2D, 0x6F, 0x8C, 0xD6, 0x20, 0x2B, 0x6A, 0x63, 0x6A, 0x9B, 0x41, 0x1F, 0x27, 0xA6, 0x36, 0x08, 0x07, 0x66, 0x41, 0x39, 0x2B, 0xC4, 0xBE, 0x44, 0x8C, 0x08, 0xF9, 0xEF, 0x70, 0x58, 0x72, 0x4F, 0x46, 0xF3, 0x9C, 0x3D, 0xDE, 0x7D, 0x4C, 0xBD, 0x24, 0xE9, 0x6B, 0x30, 0xE4, 0x42, 0xE0, 0x55, 0x59, 0xB0, 0x5C, 0xEE, 0x9A, 0xCD, 0x1F, 0x3F, 0x91, 0xFD, 0x1E, 0x19, 0x27, 0x98, 0xED, 0x8E, 0xCC, 0x0E, 0x65, 0x15, 0x45, 0x3C, 0x1E, 0xA4, 0x5C, 0x9E, 0x7E, 0x30, 0x1C, 0xB4, 0x61, 0xA4, 0x63, 0xE7, 0x02, 0xDC, 0xE3, 0x8D, 0x90, 0xCD, 0xB4, 0x84, 0xDF, 0xEE, 0xC8, 0xFA, 0x89, 0xE8, 0xD8, 0xCB, 0xAA, 0x64, 0x68, 0xC1, 0x75, 0xAB, 0x1E, 0x98, 0xEA, 0x1E, 0xEE, 0x06, 0xC1, 0xE4, 0x78, 0x3F, 0xAB, 0x92, 0xA1, 0x85, 0xF8, 0x5C, 0xF8, 0xE1, 0x6C, 0x10, 0xD6, 0x00, 0xA4, 0x1D, 0xF9, 0x75, 0xB7, 0x21, 0x07, 0x1E, 0x40, 0x6C, 0x18, 0x1B, 0x31, 0x88, 0x55, 0x49, 0x0A, 0x18, 0x35, 0xEA, 0xFF, 0xC8, 0x94, 0x8D, 0x3E, 0x18, 0x0E, 0xE6, 0x54, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 }; /********************************************************************* * @fn ParseHttpRequest * * @brief Analyze the request message, take out the method and assign it to request->method, * and assign the URL to request->URL (with '/') * * @param request - data buff,Used to save the content of each part of the post request * buf - POST request * * @return none */ void ParseHttpRequest(st_http_request *request, char *buf) { char *strptr = buf; if (strstr(strptr, "GET") || strstr(strptr, "get")) { /*browser 'get' request*/ request->METHOD = METHOD_GET; strptr += strlen("GET") + 2; memset(buf, 1, strlen("GET")); /* clear the request method */ } else if (strstr(strptr, "POST") || strstr(strptr, "post")) { /*browser 'post' request*/ request->METHOD = METHOD_POST; strptr += strlen("POST") + 2; memset(buf, 1, strlen("POST")); /* clear the request method */ } else { request->METHOD = METHOD_ERR; return; } request->URL[MAX_URL_SIZE - 1] = '0'; memcpy(request->URL, strptr, MAX_URL_SIZE - 1); strptr = strtok(request->URL, " "); strcpy((char*) request->URL, strptr); } /********************************************************************* * @fn ParseURLType * * @brief Parse URL type * * @param type - type. * buf - data buff * * @return URL type */ void ParseURLType(char *type, char * buf) { if (strstr(buf, ".html") || strstr(name, "HTTP")) /* html type */ *type = PTYPE_HTML; else if (strstr(buf, ".png")) /* png type */ *type = PTYPE_PNG; else if (strstr(buf, ".css")) /* css type */ *type = PTYPE_CSS; else if (strstr(buf, ".gif")) /* gif type */ *type = PTYPE_GIF; else *type = PTYPE_ERR; } /********************************************************************* * @fn MakeHttpResponse * * @brief Select the corresponding response message and assign * it to buf, according to the type . * * @param buf - data buff * type - type * len - data length * * @return none */ void MakeHttpResponse(u8 *buf, char type, u32 len ) { char *head = 0; char string[8] = {0}; memset(buf, 0, sizeof(buf)); if (type == PTYPE_HTML) head = RES_HTMLHEAD_OK; else if (type == PTYPE_PNG) head = RES_PNGHEAD_OK; else if (type == PTYPE_CSS) head = RES_CSSHEAD_OK; else if (type == PTYPE_GIF) head = RES_GIFHEAD_OK; strcpy(buf, head); snprintf(string, sizeof(string), "%d", len); strcat(buf, string); strcat(buf, RES_END); } /********************************************************************* * @fn DataLocate * * @brief Locate the location of "name" * * @param buf - data buff * name - name strings * * @return pointer to the last digit of name */ char * DataLocate(char *buf, char *name) { char *p; p = strstr(buf, name); if (p != NULL) p += strlen(name); return p; } /********************************************************************* * @fn atoh * * @brief Converting character to hexadecimal number * * @param src - character * * @return hexadecimal number */ uint8_t atoh(uint8_t *src) { uint8_t desc; if((*src >= '0') && (*src <= '9')) desc = *src - 0x30; else if((*src >= 'a') && (*src <= 'f')) desc = *src - 0x57; else if((*src >= 'A') && (*src <= 'F')) desc = *src - 0x37; return desc; } /********************************************************************* * @fn Refresh_Basic * * @brief Parse the basic interface configuration parameters from * the post request and store the parsed parameters in the * flash in the form of a structure * * @param buf - data buff * * @return none */ void Refresh_Basic(u8 *buf) { char *p, *q; char temp[30]; //Save the value of each configuration in the form of a string Basic_Cfg_t BasicCfg; u8 i; memset((uint8_t *)(&BasicCfg), 0, BASIC_CFG_LEN); BasicCfg.flag[0] = 0x57; BasicCfg.flag[1] = 0xAB; p = DataLocate(buf, "__PMAC="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); p = strtok(temp, "."); (strlen(p) == 1) ? (BasicCfg.mac[0] = atoh(p)) : (BasicCfg.mac[0] = atoh(p) << 4 | atoh(p + 1)); for (i = 1; i < 6; i++) { p = strtok(NULL, "."); (strlen(p) == 1) ? (BasicCfg.mac[i] = atoh(p)) : (BasicCfg.mac[i] = atoh(p) << 4 | atoh(p + 1)); } } else return; p = DataLocate(q, "__PSIP="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); p = strtok(temp, "."); BasicCfg.ip[0] = atoi(p); for (i = 1; i < 4; i++) { p = strtok(NULL, "."); BasicCfg.ip[i] = atoi(p); } } else return; p = DataLocate(q, "__PMSK="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); p = strtok(temp, "."); BasicCfg.mask[0] = atoi(p); for (i = 1; i < 4; i++) { p = strtok(NULL, "."); BasicCfg.mask[i] = atoi(p); } } else return; p = DataLocate(q, "__PGAT="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "\r\n"); if(q) memcpy(temp, p, (q - p)); else memcpy(temp, p, strlen(p)); p = strtok(temp, "."); BasicCfg.gateway[0] = atoi(p); for (i = 1; i < 4; i++) { p = strtok(NULL, "."); BasicCfg.gateway[i] = atoi(p); } } else return; WEB_ERASE( BASIC_CFG_ADDR, FLASH_PAGE_SIZE); WEB_WRITE( BASIC_CFG_ADDR, (uint8_t *)(&BasicCfg), BASIC_CFG_LEN); printf("flag:%x %x\r\n", BasicCfg.flag[0], BasicCfg.flag[1]); printf("mac:%x %x %x %x %x %x\r\n", BasicCfg.mac[0], BasicCfg.mac[1], \ BasicCfg.mac[2], BasicCfg.mac[3], \ BasicCfg.mac[4], BasicCfg.mac[5]); printf("ip:%d %d %d %d\r\n", BasicCfg.ip[0], BasicCfg.ip[1],\ BasicCfg.ip[2], BasicCfg.ip[3]); printf("mask:%d %d %d %d\r\n", BasicCfg.mask[0], BasicCfg.mask[1],\ BasicCfg.mask[2], BasicCfg.mask[3]); printf("gateway:%d %d %d %d\r\n", BasicCfg.gateway[0], BasicCfg.gateway[1],\ BasicCfg.gateway[2], BasicCfg.gateway[3]); } /********************************************************************* * @fn Refresh_Port * * @brief Parse the Port parameter from the post request * and store the parsed parameter in flash * * @param buf - data buff * * @return none */ void Refresh_Port(char *buf) { u8 i; char *p, *q; char temp[30]; Port_Cfg_t portCfg; memset((uint8_t *)(&portCfg), 0, PORT_CFG_LEN); portCfg.flag[0] = 0X57; portCfg.flag[1] = 0XAB; p = DataLocate(buf, "__PMOD="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); if (strcmp(temp, "0") == 0) { portCfg.mode = MODE_TCPSERVER; } if (strcmp(temp, "1") == 0) { portCfg.mode = MODE_TCPCLIENT; } } else return; p = DataLocate(q, "__PSPT="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); portCfg.src_port[0] = atoi(temp) / 256; portCfg.src_port[1] = atoi(temp) % 256; } else return; p = DataLocate(q, "__PDIP="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "&"); if(q == NULL) return; memcpy(temp, p, (q - p)); p = strtok(temp, "."); portCfg.des_ip[0] = atoi(p); for (i = 1; i < 4; i++) { p = strtok(NULL, "."); portCfg.des_ip[i] = atoi(p); } } else return; p = DataLocate(q, "__PDPT="); if (p != NULL) { memset(temp, 0, 30); q = strstr(p, "\r\n"); if(q) memcpy(temp, p, (q - p)); else memcpy(temp, p, strlen(p)); portCfg.des_port[0] = atoi(temp) / 256; portCfg.des_port[1] = atoi(temp) % 256; } else return; WEB_ERASE( PORT_CFG_ADDR, FLASH_PAGE_SIZE); WEB_WRITE( PORT_CFG_ADDR, (uint8_t *)(&portCfg), PORT_CFG_LEN); printf("mode:%x\r\n",portCfg.mode); printf("src_port:%d\r\n", portCfg.src_port[0]*256 + portCfg.src_port[1]); printf("des_ip:%d %d %d %d\r\n", portCfg.des_ip[0], portCfg.des_ip[1], portCfg.des_ip[2], portCfg.des_ip[3]); printf("des_port:%d\r\n", portCfg.des_port[0]*256 + portCfg.des_port[1]); } /********************************************************************* * @fn ASCToDec * * @brief Convert ASC code to Decimal number * * @param ASCPtr - Pointer to the character to be converted * * @return status */ uint8_t ASCToDec(uint8_t *ASCPtr) { uint8_t i; for(i = 0; i < 2; i++) { if( (*ASCPtr >= '0') && (*ASCPtr <= '9')) { *ASCPtr = *ASCPtr - '0'; } else if( (*ASCPtr >= 'a') && (*ASCPtr <= 'f')) { *ASCPtr = *ASCPtr - 'a' + 10; } else if( ( *ASCPtr >= 'A') && (*ASCPtr <= 'F')) { *ASCPtr = *ASCPtr - 'A' + 10; } else return NoREADY; ASCPtr++; } return READY; } /********************************************************************* * @fn URLDecode * * @brief Decoding special characters for URL transmission * * @param srcptr - source buff * desptr - destination buff * bufflen - length of source buff * * @return status or Decoded string length */ uint8_t URLDecode(char *srcptr, char *desptr, uint8_t bufflen) { uint8_t i = 0, ret, datalen = 0; char tempbuf[2]; while(i < bufflen) { if(srcptr[i] == '%') { tempbuf[0] = srcptr[++i]; tempbuf[1] = srcptr[++i]; ret = ASCToDec(tempbuf); if(ret == NoREADY) return ret; tempbuf[0] = tempbuf[0] * 16 + tempbuf[1]; *desptr++ = tempbuf[0]; datalen++; i++; } else { *desptr++ = srcptr[i++]; datalen++; } if(datalen > sizeof(Login_CfgBuf.pass)) return NoREADY; } return datalen; } /********************************************************************* * @fn Refresh_Login * * @brief Parse the login parameter from the post request * and store the parsed parameter in flash * * @param buf - data buff * * @return none */ void Refresh_Login(char *buf) { char *p, *q = NULL; u8 len; uint8_t tempbuff[10] = {0x00}; Login_Cfg_t LoginInf; memset((uint8_t *)(&LoginInf), 0, LOGIN_CFG_LEN); LoginInf.flag[0] = 0X57; LoginInf.flag[1] = 0XAB; p = DataLocate(buf, "__PUSE="); if (p != NULL) { q = strstr(p, "&"); if(q == NULL) return; len = q - p; if(len > sizeof(LoginInf.user)) return; memcpy(LoginInf.user, p, len); } else return; p = DataLocate(q, "__PPAS="); if (p != NULL) { q = strstr(p, "\r\n"); if(q) len = q - p; else len = strlen(p); len = URLDecode(p, tempbuff, len); if(len == 0) return; memcpy(LoginInf.pass, tempbuff, len); } else return; WEB_ERASE( LOGIN_CFG_ADDR, FLASH_PAGE_SIZE); WEB_WRITE( LOGIN_CFG_ADDR, (uint8_t *)(&LoginInf), LOGIN_CFG_LEN); printf("user:%s\r\n",LoginInf.user); printf("pass:%s\r\n",LoginInf.pass); } /********************************************************************* * @fn Refresh_Html * * @brief Select an html file in flash, replace it with the * parameter table, and save it to HtmlBuffer[]. * * @param html - HTML array constants * buf - parameter structure * paranum - parameters number * * @return length of data */ uint16_t Refresh_Html(const char *html, Parameter *buf, u8 paranum) { const char *lastptr = html; char *currptr; const char *keyword = "__A"; uint8_t i; uint16_t datalen = 0, copylen = 0; while(1) { currptr = strstr(lastptr, keyword); if(currptr == NULL) break; copylen = currptr - lastptr; memcpy(&HtmlBuffer[datalen], lastptr, copylen); datalen += copylen; for(i = 0; i < paranum; i++) { if(memcmp(currptr, buf[i].para, strlen(buf[i].para)) == 0) break; } if(i == paranum) return 0 ; memcpy(&HtmlBuffer[datalen], buf[i].value, strlen(buf[i].value)); datalen += strlen(buf[i].value); lastptr = currptr + strlen(buf[i].para); } if(strlen(lastptr) != 0) { memcpy(&HtmlBuffer[datalen], lastptr, strlen(lastptr)); datalen += strlen(lastptr); } return datalen; } /********************************************************************* * @fn copy_flash * * @brief Select the html file in the flash and copy it directly * to the HtmlBuffer (only for some web pages without variables) * * @param html - HTML array constants * len - data length * * @return none */ void copy_flash(const char *html, u32 len) { memset(HtmlBuffer, 0, HTML_LEN); memcpy(HtmlBuffer, html, len); } /********************************************************************* * @fn WEB_ERASE * * @brief erase Data-Flash block, minimal block is 256B. * * @param Page_Address - the address of the page being erased * Length - erasing length * * @return none */ void WEB_ERASE(uint32_t Page_Address, u32 Length) { u32 NbrOfPage, EraseCounter; FLASH_Unlock_Fast(); NbrOfPage = Length / FLASH_PAGE_SIZE; for (EraseCounter = 0; EraseCounter < NbrOfPage; EraseCounter++) { FLASH_ErasePage_Fast( Page_Address + (FLASH_PAGE_SIZE * EraseCounter)); //Erase 256B } FLASH_Lock_Fast(); } /********************************************************************* * @fn WEB_WRITE * * @brief write Data-Flash data block. * * @param StartAddr - the address of the page being written. * Buffer - data buff * Length - data length * * @return FLASH_Status */ FLASH_Status WEB_WRITE(u32 StartAddr, u8 *Buffer, u32 Length) { u32 address = StartAddr; u32 *p_buff = (u32 *) Buffer; FLASH_Status FLASHStatus = FLASH_COMPLETE; FLASH_Unlock(); while((address < (StartAddr + Length)) && (FLASHStatus == FLASH_COMPLETE)) { FLASHStatus = FLASH_ProgramWord(address, *p_buff); address += 4; p_buff++; } FLASH_Lock(); return FLASHStatus; } /********************************************************************* * @fn WEB_READ * * @brief read Data-Flash data block. * * @param StartAddr - the address of the page being read. * Buffer - data buff * Length - data length * * @return none */ void WEB_READ(u32 StartAddr, u8 *Buffer, u32 Length) { u32 address = StartAddr; u32 *p_buff = (u32 *) Buffer; while(address < (StartAddr + Length)) { *p_buff = (*(u32 *)address); address += 4; p_buff++; } } /********************************************************************* * @fn Init_Para_Tab * * @brief Initialization parameter table. * * @return none */ void Init_Para_Tab(void) { u8 s[30]; Para_Basic[0].para = "__AMAC"; memset(s, 0, 30); snprintf(s, 30, "%x.%x.%x.%x.%x.%x", Basic_CfgBuf.mac[0], Basic_CfgBuf.mac[1], Basic_CfgBuf.mac[2], Basic_CfgBuf.mac[3], Basic_CfgBuf.mac[4], Basic_CfgBuf.mac[5]); strcpy(Para_Basic[0].value, s); printf("__ASMAC = %s\n", Para_Basic[0].value); Para_Basic[1].para = "__ASIP"; memset(s, 0, 30); snprintf(s, 30, "%d.%d.%d.%d", Basic_CfgBuf.ip[0], Basic_CfgBuf.ip[1], Basic_CfgBuf.ip[2], Basic_CfgBuf.ip[3]); strcpy(Para_Basic[1].value, s); printf("__ASIP = %s\n", Para_Basic[1].value); Para_Basic[2].para = "__AMSK"; memset(s, 0, 30); snprintf(s, 30, "%d.%d.%d.%d", Basic_CfgBuf.mask[0], Basic_CfgBuf.mask[1], Basic_CfgBuf.mask[2], Basic_CfgBuf.mask[3]); strcpy(Para_Basic[2].value, s); printf("__AMSK = %s\n", Para_Basic[2].value); Para_Basic[3].para = "__AGAT"; memset(s, 0, 30); snprintf(s, 30, "%d.%d.%d.%d", Basic_CfgBuf.gateway[0], Basic_CfgBuf.gateway[1], Basic_CfgBuf.gateway[2], Basic_CfgBuf.gateway[3]); strcpy(Para_Basic[3].value, s); printf("__AGAT = %s\n", Para_Basic[3].value); Para_Port[0].para = "__AMOD"; memset(s, 0, 30); snprintf(s, 30, "%d", Port_CfgBuf.mode); strcpy(Para_Port[0].value, s); printf("__AMOD = %s\n", Para_Port[0].value); Para_Port[1].para = "__ASPT"; memset(s, 0, 30); snprintf(s, 30, "%d", Port_CfgBuf.src_port[0] * 256 + Port_CfgBuf.src_port[1]); strcpy(Para_Port[1].value, s); printf("__ASPT = %s\n", Para_Port[1].value); Para_Port[2].para = "__ADIP"; memset(s, 0, 30); snprintf(s, 30, "%d.%d.%d.%d", Port_CfgBuf.des_ip[0], Port_CfgBuf.des_ip[1], Port_CfgBuf.des_ip[2], Port_CfgBuf.des_ip[3]); strcpy(Para_Port[2].value, s); printf("__ADIP = %s\n", Para_Port[2].value); Para_Port[3].para = "__ADPT"; memset(s, 0, 30); snprintf(s, 30, "%d", Port_CfgBuf.des_port[0] * 256 + Port_CfgBuf.des_port[1]); strcpy(Para_Port[3].value, s); printf("__ADPT = %s\n", Para_Port[3].value); Para_Login[0].para = "__AUSE"; strcpy(Para_Login[0].value, Login_CfgBuf.user); printf("__AUSE = %s\n", Para_Login[0].value); Para_Login[1].para = "__APAS"; strcpy(Para_Login[1].value, Login_CfgBuf.pass); printf("__APAS = %s\n", Para_Login[1].value); } /********************************************************************* * @fn Data_Send * * @brief Socket sends data. * * @return none */ void Data_Send(u8 id, uint8_t *dataptr, uint32_t datalen) { u32 len, totallen; u8 *p, timeout = 50; p = dataptr; totallen = datalen; while(1){ len = totallen; WCHNET_SocketSend(id, p, &len); //Send the data totallen -= len; //Subtract the sent length from the total length p += len; //offset buffer pointer if(--timeout == 0) break; if(totallen) continue; //If the data is not sent, continue to send break; //After sending, exit } } /********************************************************************* * @fn strFind * * @brief query for a specific string. * * @param str - source string. * substr - String to be queried. * * @return The number of data segments contained in the received data */ int strFind( char str[], char substr[] ) { int i, j, check ,count = 0; int len = strlen( str ); int sublen = strlen( substr ); for( i = 0; i < len; i++ ) { check = 1; for( j = 0; j + i < len && j < sublen; j++ ) { if( str[i + j] != substr[j] ) { check = 0; break; } } if( check == 1 ) { count++; i = i + sublen; } } return count; } /********************************************************************* * @fn Web_Server * * @brief web process function. * * @return none */ void Web_Server(void) { char *paraptr; uint8_t reqnum = 0; u32 resplen = 0; u32 pagelen = 0; reqnum = strFind(HTTPDataBuffer,"GET") + strFind(HTTPDataBuffer,"get") + \ strFind(HTTPDataBuffer,"POST") + strFind(HTTPDataBuffer,"post"); while(reqnum){ reqnum--; ParseHttpRequest(&http_request, HTTPDataBuffer); switch (http_request.METHOD) { case METHOD_ERR: break; case METHOD_POST: //'post' request name = http_request.URL; ParseURLType(&http_request.TYPE, name); if (strstr(name, "main") != NULL) { //Request the "main" page pagelen = strlen(Html_main); copy_flash(Html_main, pagelen); } else if(strstr(name, "success") != NULL) { //Request "success" page pagelen = strlen(Html_success); copy_flash(Html_success, pagelen); paraptr = (char *) HTTPDataBuffer; if (strstr(paraptr, "__PMAC") != NULL) { //Configuration information with "Basic" pages Refresh_Basic(paraptr); } if (strstr(paraptr, "__PMOD") != NULL) { //Configuration information with "Port" page Refresh_Port(paraptr); } if (strstr(paraptr, "__PUSE") != NULL) { //Configuration information with "User" page Refresh_Login(paraptr); } } /*Analyze the requested resource type and return the response*/ MakeHttpResponse(httpweb, http_request.TYPE, pagelen); resplen = strlen(httpweb); Data_Send(socket, httpweb, resplen); Data_Send(socket, HtmlBuffer, pagelen); /*After the request is processed, the current * socket connection is closed, and a new connection * will be established when the browser sends the next * request.*/ WCHNET_SocketClose(socket, TCP_CLOSE_NORMAL); break; case METHOD_GET: //'get' request name = http_request.URL; ParseURLType(&http_request.TYPE, name); if(strstr(name, "HTTP") != NULL) { pagelen = Refresh_Html(Html_login, Para_Login, 2); } else if(strstr(name, "main") != NULL) { //Request to get the "main" web page pagelen = strlen(Html_main); copy_flash(Html_main, pagelen); } else if(strstr(name, "basic") != NULL) { //Request to get the "basic" web page pagelen = Refresh_Html(Html_basic, Para_Basic, 4); } else if(strstr(name, "port") != NULL) { //Request to get the "port" page pagelen = Refresh_Html(Html_port, Para_Port, 4); } else if(strstr(name, "user") != NULL) { //Request to get the "user" web page pagelen = Refresh_Html(Html_user, Para_Login, 2); } else if(strstr(name, "about") != NULL) { //Request to get the "about" page pagelen = strlen(Html_about); copy_flash(Html_about, pagelen); } else if(strstr(name, "logo") != NULL) { //Request for "logo" image pagelen = sizeof(Html_logo); copy_flash(Html_logo, pagelen); } else if(strstr(name, "png1") != NULL) { //Request to get "png1" image pagelen = sizeof(Html_png1); copy_flash(Html_png1, pagelen); } else if(strstr(name, "png2") != NULL) { //Request to get "png2" image pagelen = sizeof(Html_png2); copy_flash(Html_png2, pagelen); } else if(strstr(name, "png3") != NULL) { //Request to get "png3" image pagelen = sizeof(Html_png3); copy_flash(Html_png3, pagelen); } else if(strstr(name, "png4") != NULL) { pagelen = sizeof(Html_png4); copy_flash(Html_png4, pagelen); } else if(strstr(name, "weixin") != NULL) { //Request for "weixin" image pagelen = sizeof(Html_weixin); copy_flash(Html_weixin, pagelen); } else if(strstr(name, "style") != NULL) { //Request to get the "style" css stylesheet file pagelen = strlen(Html_style); copy_flash(Html_style, pagelen); } /*Analyze the requested resource type and return the response*/ MakeHttpResponse(httpweb, http_request.TYPE, pagelen); resplen = strlen(httpweb); Data_Send(socket, httpweb, resplen); Data_Send(socket, HtmlBuffer, pagelen); break; default: break; } } /*After the request is processed, the current * socket connection is closed, and a new connection * will be established when the browser sends the next * request.*/ WCHNET_SocketClose(socket, TCP_CLOSE_NORMAL); memset(HTTPDataBuffer, 0,sizeof(HTTPDataBuffer)); }