diff options
Diffstat (limited to 'drivers/staging/rtl8188eu/hal')
-rw-r--r-- | drivers/staging/rtl8188eu/hal/Hal8188EFWImg_CE.c | 1761 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c | 429 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | 16 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 66 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c | 8 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c | 10 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/usb_halinit.c | 10 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/usb_ops_linux.c | 98 |
10 files changed, 114 insertions, 2288 deletions
diff --git a/drivers/staging/rtl8188eu/hal/Hal8188EFWImg_CE.c b/drivers/staging/rtl8188eu/hal/Hal8188EFWImg_CE.c deleted file mode 100644 index 95759be..0000000 --- a/drivers/staging/rtl8188eu/hal/Hal8188EFWImg_CE.c +++ /dev/null @@ -1,1761 +0,0 @@ -/****************************************************************************** -* -* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of version 2 of the GNU General Public License as -* published by the Free Software Foundation. -* -* This program is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -* more details. -* -* You should have received a copy of the GNU General Public License along with -* this program; if not, write to the Free Software Foundation, Inc., -* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA -* -* -******************************************************************************/ -#include "odm_precomp.h" - -const u8 Rtl8188EFwImgArray[Rtl8188EFWImgArrayLength] = { - 0xE1, 0x88, 0x10, 0x00, 0x0B, 0x00, 0x01, 0x00, - 0x01, 0x21, 0x11, 0x27, 0x30, 0x36, 0x00, 0x00, - 0x2D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x45, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xC1, 0x6F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xA1, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x56, 0xF7, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC2, 0xAF, 0x80, 0xFE, 0x32, 0x12, 0x42, 0x04, - 0x85, 0xD0, 0x0B, 0x75, 0xD0, 0x08, 0xAA, 0xE0, - 0xC2, 0x8C, 0xE5, 0x8A, 0x24, 0x67, 0xF5, 0x8A, - 0xE5, 0x8C, 0x34, 0x79, 0xF5, 0x8C, 0xD2, 0x8C, - 0xEC, 0x24, 0x89, 0xF8, 0xE6, 0xBC, 0x03, 0x02, - 0x74, 0xFF, 0xC3, 0x95, 0x81, 0xB4, 0x40, 0x00, - 0x40, 0xCE, 0x79, 0x04, 0x78, 0x80, 0x16, 0xE6, - 0x08, 0x70, 0x0B, 0xC2, 0xAF, 0xE6, 0x30, 0xE1, - 0x03, 0x44, 0x18, 0xF6, 0xD2, 0xAF, 0x08, 0xD9, - 0xED, 0xEA, 0x8B, 0xD0, 0x22, 0xE5, 0x0C, 0xFF, - 0x23, 0x24, 0x81, 0xF8, 0x0F, 0x08, 0x08, 0xBF, - 0x04, 0x04, 0x7F, 0x00, 0x78, 0x81, 0xE6, 0x30, - 0xE4, 0xF2, 0x00, 0xE5, 0x0C, 0xC3, 0x9F, 0x50, - 0x20, 0x05, 0x0C, 0x74, 0x88, 0x25, 0x0C, 0xF8, - 0xE6, 0xFD, 0xA6, 0x81, 0x08, 0xE6, 0xAE, 0x0C, - 0xBE, 0x03, 0x02, 0x74, 0xFF, 0xCD, 0xF8, 0xE8, - 0x6D, 0x60, 0xE0, 0x08, 0xE6, 0xC0, 0xE0, 0x80, - 0xF6, 0xE5, 0x0C, 0xD3, 0x9F, 0x40, 0x27, 0xE5, - 0x0C, 0x24, 0x89, 0xF8, 0xE6, 0xAE, 0x0C, 0xBE, - 0x03, 0x02, 0x74, 0xFF, 0xFD, 0x18, 0xE6, 0xCD, - 0xF8, 0xE5, 0x81, 0x6D, 0x60, 0x06, 0xD0, 0xE0, - 0xF6, 0x18, 0x80, 0xF5, 0xE5, 0x0C, 0x24, 0x88, - 0xC8, 0xF6, 0x15, 0x0C, 0x80, 0xD3, 0xE5, 0x0C, - 0x23, 0x24, 0x81, 0xF8, 0x7F, 0x04, 0xC2, 0xAF, - 0xE6, 0x30, 0xE0, 0x03, 0x10, 0xE2, 0x0C, 0x7F, - 0x00, 0x30, 0xE1, 0x07, 0x30, 0xE3, 0x04, 0x7F, - 0x08, 0x54, 0xF4, 0x54, 0x7C, 0xC6, 0xD2, 0xAF, - 0x54, 0x80, 0x42, 0x07, 0x22, 0x78, 0x88, 0xA6, - 0x81, 0x74, 0x03, 0x60, 0x06, 0xFF, 0x08, 0x76, - 0xFF, 0xDF, 0xFB, 0x7F, 0x04, 0xE4, 0x78, 0x80, - 0xF6, 0x08, 0xF6, 0x08, 0xDF, 0xFA, 0x78, 0x81, - 0x76, 0x30, 0x90, 0x45, 0xDE, 0x74, 0x01, 0x93, - 0xC0, 0xE0, 0xE4, 0x93, 0xC0, 0xE0, 0x43, 0x89, - 0x01, 0x75, 0x8A, 0x60, 0x75, 0x8C, 0x79, 0xD2, - 0x8C, 0xD2, 0xAF, 0x22, 0x03, 0xEF, 0xD3, 0x94, - 0x03, 0x40, 0x03, 0x7F, 0xFF, 0x22, 0x74, 0x81, - 0x2F, 0x2F, 0xF8, 0xE6, 0x20, 0xE5, 0xF4, 0xC2, - 0xAF, 0xE6, 0x44, 0x30, 0xF6, 0xD2, 0xAF, 0xAE, - 0x0C, 0xEE, 0xC3, 0x9F, 0x50, 0x21, 0x0E, 0x74, - 0x88, 0x2E, 0xF8, 0xE6, 0xF9, 0x08, 0xE6, 0x18, - 0xBE, 0x03, 0x02, 0x74, 0xFF, 0xFD, 0xED, 0x69, - 0x60, 0x09, 0x09, 0xE7, 0x19, 0x19, 0xF7, 0x09, - 0x09, 0x80, 0xF3, 0x16, 0x16, 0x80, 0xDA, 0xEE, - 0xD3, 0x9F, 0x40, 0x04, 0x05, 0x81, 0x05, 0x81, - 0xEE, 0xD3, 0x9F, 0x40, 0x22, 0x74, 0x88, 0x2E, - 0xF8, 0x08, 0xE6, 0xF9, 0xEE, 0xB5, 0x0C, 0x02, - 0xA9, 0x81, 0x18, 0x06, 0x06, 0xE6, 0xFD, 0xED, - 0x69, 0x60, 0x09, 0x19, 0x19, 0xE7, 0x09, 0x09, - 0xF7, 0x19, 0x80, 0xF3, 0x1E, 0x80, 0xD9, 0xEF, - 0x24, 0x88, 0xF8, 0xE6, 0x04, 0xF8, 0xEF, 0x2F, - 0x04, 0x90, 0x45, 0xDE, 0x93, 0xF6, 0x08, 0xEF, - 0x2F, 0x93, 0xF6, 0x7F, 0x00, 0x22, 0xEF, 0xD3, - 0x94, 0x03, 0x40, 0x03, 0x7F, 0xFF, 0x22, 0xEF, - 0x23, 0x24, 0x81, 0xF8, 0xE6, 0x30, 0xE5, 0xF4, - 0xC2, 0xAF, 0xE6, 0x54, 0x8C, 0xF6, 0xD2, 0xAF, - 0xE5, 0x0C, 0xB5, 0x07, 0x0A, 0x74, 0x88, 0x2F, - 0xF8, 0xE6, 0xF5, 0x81, 0x02, 0x42, 0x4D, 0x50, - 0x2E, 0x74, 0x89, 0x2F, 0xF8, 0xE6, 0xBF, 0x03, - 0x02, 0x74, 0xFF, 0xFD, 0x18, 0xE6, 0xF9, 0x74, - 0x88, 0x2F, 0xF8, 0xFB, 0xE6, 0xFC, 0xE9, 0x6C, - 0x60, 0x08, 0xA8, 0x05, 0xE7, 0xF6, 0x1D, 0x19, - 0x80, 0xF4, 0xA8, 0x03, 0xA6, 0x05, 0x1F, 0xE5, - 0x0C, 0xB5, 0x07, 0xE3, 0x7F, 0x00, 0x22, 0x74, - 0x89, 0x2F, 0xF8, 0xE6, 0xFD, 0x18, 0x86, 0x01, - 0x0F, 0x74, 0x88, 0x2F, 0xF8, 0xA6, 0x01, 0x08, - 0x86, 0x04, 0xE5, 0x0C, 0xB5, 0x07, 0x02, 0xAC, - 0x81, 0xED, 0x6C, 0x60, 0x08, 0x0D, 0x09, 0xA8, - 0x05, 0xE6, 0xF7, 0x80, 0xF4, 0xE5, 0x0C, 0xB5, - 0x07, 0xDE, 0x89, 0x81, 0x7F, 0x00, 0x22, 0xEF, - 0xD3, 0x94, 0x03, 0x40, 0x03, 0x7F, 0xFF, 0x22, - 0xEF, 0x23, 0x24, 0x81, 0xF8, 0xC2, 0xAF, 0xE6, - 0x30, 0xE5, 0x05, 0x30, 0xE0, 0x02, 0xD2, 0xE4, - 0xD2, 0xE2, 0xC6, 0xD2, 0xAF, 0x7F, 0x00, 0x30, - 0xE2, 0x01, 0x0F, 0x02, 0x42, 0x4C, 0x8F, 0xF0, - 0xE4, 0xFF, 0xFE, 0xE5, 0x0C, 0x23, 0x24, 0x80, - 0xF8, 0xC2, 0xA9, 0x30, 0xF7, 0x0D, 0x7F, 0x08, - 0xE6, 0x60, 0x0B, 0x2D, 0xF6, 0x60, 0x30, 0x50, - 0x2E, 0x80, 0x07, 0x30, 0xF1, 0x06, 0xED, 0xF6, - 0x60, 0x25, 0x7E, 0x02, 0x08, 0x30, 0xF0, 0x10, - 0xC2, 0xAF, 0xE6, 0x10, 0xE7, 0x23, 0x0E, 0x30, - 0xE2, 0x0C, 0xD2, 0xAF, 0x7F, 0x04, 0x80, 0x12, - 0xC2, 0xAF, 0xE6, 0x10, 0xE7, 0x13, 0x54, 0xEC, - 0x4E, 0xF6, 0xD2, 0xAF, 0x02, 0x42, 0x4D, 0x7F, - 0x08, 0x08, 0xEF, 0x44, 0x83, 0xF4, 0xC2, 0xAF, - 0x56, 0xC6, 0xD2, 0xAF, 0x54, 0x80, 0x4F, 0xFF, - 0x22, 0xC5, 0xF0, 0xF8, 0xA3, 0xE0, 0x28, 0xF0, - 0xC5, 0xF0, 0xF8, 0xE5, 0x82, 0x15, 0x82, 0x70, - 0x02, 0x15, 0x83, 0xE0, 0x38, 0xF0, 0x22, 0xEF, - 0x5B, 0xFF, 0xEE, 0x5A, 0xFE, 0xED, 0x59, 0xFD, - 0xEC, 0x58, 0xFC, 0x22, 0xEF, 0x4B, 0xFF, 0xEE, - 0x4A, 0xFE, 0xED, 0x49, 0xFD, 0xEC, 0x48, 0xFC, - 0x22, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, - 0xFE, 0xA3, 0xE0, 0xFF, 0x22, 0xE2, 0xFC, 0x08, - 0xE2, 0xFD, 0x08, 0xE2, 0xFE, 0x08, 0xE2, 0xFF, - 0x22, 0xE2, 0xFB, 0x08, 0xE2, 0xF9, 0x08, 0xE2, - 0xFA, 0x08, 0xE2, 0xCB, 0xF8, 0x22, 0xEC, 0xF2, - 0x08, 0xED, 0xF2, 0x08, 0xEE, 0xF2, 0x08, 0xEF, - 0xF2, 0x22, 0xA4, 0x25, 0x82, 0xF5, 0x82, 0xE5, - 0xF0, 0x35, 0x83, 0xF5, 0x83, 0x22, 0xE0, 0xFB, - 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, 0x22, 0xEB, - 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x22, - 0xD0, 0x83, 0xD0, 0x82, 0xF8, 0xE4, 0x93, 0x70, - 0x12, 0x74, 0x01, 0x93, 0x70, 0x0D, 0xA3, 0xA3, - 0x93, 0xF8, 0x74, 0x01, 0x93, 0xF5, 0x82, 0x88, - 0x83, 0xE4, 0x73, 0x74, 0x02, 0x93, 0x68, 0x60, - 0xEF, 0xA3, 0xA3, 0xA3, 0x80, 0xDF, 0x02, 0x45, - 0x8C, 0x02, 0x42, 0xDD, 0xE4, 0x93, 0xA3, 0xF8, - 0xE4, 0x93, 0xA3, 0x40, 0x03, 0xF6, 0x80, 0x01, - 0xF2, 0x08, 0xDF, 0xF4, 0x80, 0x29, 0xE4, 0x93, - 0xA3, 0xF8, 0x54, 0x07, 0x24, 0x0C, 0xC8, 0xC3, - 0x33, 0xC4, 0x54, 0x0F, 0x44, 0x20, 0xC8, 0x83, - 0x40, 0x04, 0xF4, 0x56, 0x80, 0x01, 0x46, 0xF6, - 0xDF, 0xE4, 0x80, 0x0B, 0x01, 0x02, 0x04, 0x08, - 0x10, 0x20, 0x40, 0x80, 0x90, 0x45, 0xD1, 0xE4, - 0x7E, 0x01, 0x93, 0x60, 0xBC, 0xA3, 0xFF, 0x54, - 0x3F, 0x30, 0xE5, 0x09, 0x54, 0x1F, 0xFE, 0xE4, - 0x93, 0xA3, 0x60, 0x01, 0x0E, 0xCF, 0x54, 0xC0, - 0x25, 0xE0, 0x60, 0xA8, 0x40, 0xB8, 0xE4, 0x93, - 0xA3, 0xFA, 0xE4, 0x93, 0xA3, 0xF8, 0xE4, 0x93, - 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCA, 0xC5, 0x83, - 0xCA, 0xF0, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCA, - 0xC5, 0x83, 0xCA, 0xDF, 0xE9, 0xDE, 0xE7, 0x80, - 0xBE, 0x00, 0x41, 0x82, 0x09, 0x00, 0x41, 0x82, - 0x0A, 0x00, 0x41, 0x82, 0x17, 0x00, 0x59, 0xE2, - 0x5C, 0x24, 0x5E, 0x5D, 0x5F, 0xA1, 0xC0, 0xE0, - 0xC0, 0xF0, 0xC0, 0x83, 0xC0, 0x82, 0xC0, 0xD0, - 0x75, 0xD0, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0xC0, - 0x02, 0xC0, 0x03, 0xC0, 0x04, 0xC0, 0x05, 0xC0, - 0x06, 0xC0, 0x07, 0x90, 0x01, 0xC4, 0x74, 0xE6, - 0xF0, 0x74, 0x45, 0xA3, 0xF0, 0xD1, 0x35, 0x74, - 0xE6, 0x04, 0x90, 0x01, 0xC4, 0xF0, 0x74, 0x45, - 0xA3, 0xF0, 0xD0, 0x07, 0xD0, 0x06, 0xD0, 0x05, - 0xD0, 0x04, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, - 0xD0, 0x00, 0xD0, 0xD0, 0xD0, 0x82, 0xD0, 0x83, - 0xD0, 0xF0, 0xD0, 0xE0, 0x32, 0x90, 0x00, 0x54, - 0xE0, 0x55, 0x35, 0xF5, 0x39, 0xA3, 0xE0, 0x55, - 0x36, 0xF5, 0x3A, 0xA3, 0xE0, 0x55, 0x37, 0xF5, - 0x3B, 0xA3, 0xE0, 0x55, 0x38, 0xF5, 0x3C, 0xAD, - 0x39, 0x7F, 0x54, 0x12, 0x32, 0x1E, 0xAD, 0x3A, - 0x7F, 0x55, 0x12, 0x32, 0x1E, 0xAD, 0x3B, 0x7F, - 0x56, 0x12, 0x32, 0x1E, 0xAD, 0x3C, 0x7F, 0x57, - 0x12, 0x32, 0x1E, 0x53, 0x91, 0xEF, 0x22, 0xC0, - 0xE0, 0xC0, 0xF0, 0xC0, 0x83, 0xC0, 0x82, 0xC0, - 0xD0, 0x75, 0xD0, 0x00, 0xC0, 0x00, 0xC0, 0x01, - 0xC0, 0x02, 0xC0, 0x03, 0xC0, 0x04, 0xC0, 0x05, - 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x01, 0xC4, 0x74, - 0x6F, 0xF0, 0x74, 0x46, 0xA3, 0xF0, 0x12, 0x6C, - 0x78, 0xE5, 0x41, 0x30, 0xE4, 0x04, 0x7F, 0x02, - 0x91, 0x27, 0xE5, 0x41, 0x30, 0xE6, 0x03, 0x12, - 0x6C, 0xD5, 0xE5, 0x43, 0x30, 0xE0, 0x03, 0x12, - 0x51, 0xC2, 0xE5, 0x43, 0x30, 0xE1, 0x03, 0x12, - 0x4D, 0x0C, 0xE5, 0x43, 0x30, 0xE2, 0x03, 0x12, - 0x4C, 0xC1, 0xE5, 0x43, 0x30, 0xE3, 0x03, 0x12, - 0x6C, 0xE2, 0xE5, 0x43, 0x30, 0xE4, 0x03, 0x12, - 0x6D, 0x04, 0xE5, 0x43, 0x30, 0xE5, 0x03, 0x12, - 0x6D, 0x33, 0xE5, 0x43, 0x30, 0xE6, 0x02, 0xF1, - 0x0F, 0xE5, 0x44, 0x30, 0xE1, 0x03, 0x12, 0x51, - 0x7F, 0x74, 0x6F, 0x04, 0x90, 0x01, 0xC4, 0xF0, - 0x74, 0x46, 0xA3, 0xF0, 0xD0, 0x07, 0xD0, 0x06, - 0xD0, 0x05, 0xD0, 0x04, 0xD0, 0x03, 0xD0, 0x02, - 0xD0, 0x01, 0xD0, 0x00, 0xD0, 0xD0, 0xD0, 0x82, - 0xD0, 0x83, 0xD0, 0xF0, 0xD0, 0xE0, 0x32, 0x90, - 0x80, 0xDE, 0xE0, 0xB4, 0x01, 0x13, 0x90, 0x81, - 0x27, 0xE0, 0x60, 0x0D, 0x90, 0x81, 0x2B, 0xE0, - 0x54, 0xFE, 0xF0, 0x54, 0x07, 0x70, 0x02, 0xF1, - 0x2A, 0x22, 0x90, 0x81, 0x1F, 0xE0, 0x90, 0x81, - 0x29, 0x30, 0xE0, 0x05, 0xE0, 0xFF, 0x02, 0x74, - 0x8F, 0xE0, 0xFF, 0x7D, 0x01, 0xD3, 0x10, 0xAF, - 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x82, 0x13, 0xED, - 0xF0, 0x90, 0x81, 0x2A, 0xE0, 0x90, 0x82, 0x14, - 0xF0, 0x90, 0x81, 0x24, 0xE0, 0xFE, 0xC4, 0x13, - 0x13, 0x54, 0x03, 0x30, 0xE0, 0x03, 0x02, 0x48, - 0xA0, 0xEE, 0xC4, 0x13, 0x13, 0x13, 0x54, 0x01, - 0x30, 0xE0, 0x03, 0x02, 0x48, 0xA0, 0x90, 0x82, - 0x14, 0xE0, 0xFE, 0x6F, 0x70, 0x03, 0x02, 0x48, - 0xA0, 0xEF, 0x70, 0x03, 0x02, 0x48, 0x17, 0x24, - 0xFE, 0x70, 0x03, 0x02, 0x48, 0x50, 0x24, 0xFE, - 0x60, 0x51, 0x24, 0xFC, 0x70, 0x03, 0x02, 0x48, - 0x8B, 0x24, 0xFC, 0x60, 0x03, 0x02, 0x48, 0xA0, - 0xEE, 0xB4, 0x0E, 0x03, 0x12, 0x49, 0x5E, 0x90, - 0x82, 0x14, 0xE0, 0x70, 0x05, 0x7F, 0x01, 0x12, - 0x49, 0x93, 0x90, 0x82, 0x14, 0xE0, 0xB4, 0x06, - 0x03, 0x12, 0x49, 0x34, 0x90, 0x82, 0x14, 0xE0, - 0xB4, 0x04, 0x0F, 0x90, 0x82, 0x13, 0xE0, 0xFF, - 0x60, 0x05, 0x12, 0x73, 0x75, 0x80, 0x03, 0x12, - 0x66, 0x26, 0x90, 0x82, 0x14, 0xE0, 0x64, 0x08, - 0x60, 0x03, 0x02, 0x48, 0xA0, 0x12, 0x73, 0xD3, - 0x02, 0x48, 0xA0, 0x90, 0x82, 0x14, 0xE0, 0x70, - 0x05, 0x7F, 0x01, 0x12, 0x49, 0x93, 0x90, 0x82, - 0x14, 0xE0, 0xB4, 0x06, 0x03, 0x12, 0x49, 0x34, - 0x90, 0x82, 0x14, 0xE0, 0xB4, 0x0E, 0x09, 0x12, - 0x48, 0xA5, 0xBF, 0x01, 0x03, 0x12, 0x49, 0x5E, - 0x90, 0x82, 0x14, 0xE0, 0x64, 0x0C, 0x60, 0x02, - 0x01, 0xA0, 0x11, 0xA5, 0xEF, 0x64, 0x01, 0x60, - 0x02, 0x01, 0xA0, 0x11, 0xFA, 0x01, 0xA0, 0x90, - 0x82, 0x14, 0xE0, 0xB4, 0x0E, 0x07, 0x11, 0xA5, - 0xBF, 0x01, 0x02, 0x31, 0x5E, 0x90, 0x82, 0x14, - 0xE0, 0xB4, 0x06, 0x02, 0x31, 0x34, 0x90, 0x82, - 0x14, 0xE0, 0xB4, 0x0C, 0x07, 0x11, 0xA5, 0xBF, - 0x01, 0x02, 0x11, 0xFA, 0x90, 0x82, 0x14, 0xE0, - 0x64, 0x04, 0x70, 0x5C, 0x12, 0x72, 0xF5, 0xEF, - 0x64, 0x01, 0x70, 0x54, 0x31, 0xBE, 0x80, 0x50, - 0x90, 0x82, 0x14, 0xE0, 0xB4, 0x0E, 0x07, 0x11, - 0xA5, 0xBF, 0x01, 0x02, 0x31, 0x5E, 0x90, 0x82, - 0x14, 0xE0, 0xB4, 0x06, 0x02, 0x31, 0x34, 0x90, - 0x82, 0x14, 0xE0, 0xB4, 0x0C, 0x07, 0x11, 0xA5, - 0xBF, 0x01, 0x02, 0x11, 0xFA, 0x90, 0x82, 0x14, - 0xE0, 0x70, 0x04, 0x7F, 0x01, 0x31, 0x93, 0x90, - 0x82, 0x14, 0xE0, 0xB4, 0x04, 0x1A, 0x12, 0x73, - 0xBB, 0x80, 0x15, 0x90, 0x82, 0x14, 0xE0, 0xB4, - 0x0C, 0x0E, 0x90, 0x81, 0x25, 0xE0, 0xFF, 0x13, - 0x13, 0x54, 0x3F, 0x30, 0xE0, 0x02, 0x31, 0xB1, - 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0xD1, 0xAB, 0xEF, - 0x64, 0x01, 0x60, 0x08, 0x90, 0x01, 0xB8, 0x74, - 0x01, 0xF0, 0x80, 0x3D, 0x90, 0x81, 0x24, 0xE0, - 0xFF, 0x13, 0x13, 0x13, 0x54, 0x1F, 0x30, 0xE0, - 0x08, 0x90, 0x01, 0xB8, 0x74, 0x02, 0xF0, 0x80, - 0x28, 0xEF, 0xC4, 0x54, 0x0F, 0x30, 0xE0, 0x08, - 0x90, 0x01, 0xB8, 0x74, 0x04, 0xF0, 0x80, 0x19, - 0x90, 0x81, 0x29, 0xE0, 0xD3, 0x94, 0x04, 0x40, - 0x08, 0x90, 0x01, 0xB8, 0x74, 0x08, 0xF0, 0x80, - 0x08, 0x90, 0x01, 0xB8, 0xE4, 0xF0, 0x7F, 0x01, - 0x22, 0x90, 0x01, 0xB9, 0x74, 0x02, 0xF0, 0x7F, - 0x00, 0x22, 0x90, 0x80, 0xDE, 0xE0, 0x64, 0x01, - 0x70, 0x31, 0x90, 0x81, 0x25, 0xE0, 0x54, 0xFD, - 0xF0, 0x90, 0x05, 0x22, 0x74, 0x6F, 0xF0, 0x7F, - 0x01, 0xF1, 0x0D, 0xBF, 0x01, 0x12, 0x90, 0x81, - 0x24, 0xE0, 0x44, 0x80, 0xF0, 0x90, 0x81, 0x2A, - 0x74, 0x0E, 0xF0, 0x90, 0x81, 0x23, 0xF0, 0x22, - 0x90, 0x01, 0xB9, 0x74, 0x01, 0xF0, 0x90, 0x01, - 0xB8, 0x04, 0xF0, 0x22, 0x90, 0x81, 0x25, 0xE0, - 0x90, 0x06, 0x04, 0x20, 0xE0, 0x0C, 0xE0, 0x44, - 0x40, 0xF0, 0x90, 0x81, 0x2A, 0x74, 0x04, 0xF0, - 0x80, 0x0E, 0xE0, 0x54, 0x7F, 0xF0, 0x90, 0x81, - 0x2A, 0x74, 0x0C, 0xF0, 0x90, 0x81, 0x23, 0xF0, - 0x90, 0x05, 0x22, 0xE4, 0xF0, 0x22, 0x90, 0x81, - 0x25, 0xE0, 0xC3, 0x13, 0x20, 0xE0, 0x08, 0x90, - 0x81, 0x2A, 0x74, 0x0C, 0xF0, 0x80, 0x1E, 0x90, - 0x06, 0x04, 0xE0, 0x44, 0x40, 0xF0, 0xE0, 0x44, - 0x80, 0xF0, 0x90, 0x81, 0x2A, 0x74, 0x04, 0xF0, - 0x90, 0x05, 0x27, 0xE0, 0x44, 0x80, 0xF0, 0x90, - 0x81, 0x23, 0x74, 0x04, 0xF0, 0x90, 0x05, 0x22, - 0xE4, 0xF0, 0x22, 0x90, 0x82, 0x15, 0xEF, 0xF0, - 0x12, 0x54, 0x65, 0x90, 0x82, 0x15, 0xE0, 0x60, - 0x05, 0x90, 0x05, 0x22, 0xE4, 0xF0, 0x90, 0x81, - 0x2A, 0x74, 0x04, 0xF0, 0x90, 0x81, 0x23, 0xF0, - 0x22, 0x31, 0xE3, 0x90, 0x81, 0x2A, 0x74, 0x08, - 0xF0, 0x90, 0x81, 0x23, 0xF0, 0x22, 0x90, 0x05, - 0x22, 0x74, 0xFF, 0xF0, 0xF1, 0x3A, 0x90, 0x01, - 0x37, 0x74, 0x02, 0xF0, 0xFD, 0x7F, 0x03, 0x51, - 0x57, 0x31, 0xE3, 0xE4, 0x90, 0x81, 0x2A, 0xF0, - 0x90, 0x81, 0x23, 0xF0, 0x22, 0x90, 0x05, 0x22, - 0x74, 0xFF, 0xF0, 0xF1, 0x3A, 0x90, 0x85, 0xBB, - 0x12, 0x20, 0xDA, 0xCC, 0xF0, 0x00, 0xC0, 0x7F, - 0x8C, 0x7E, 0x08, 0x12, 0x2E, 0xA2, 0x90, 0x85, - 0xBB, 0x12, 0x20, 0xDA, 0x00, 0x00, 0x00, 0x14, - 0x7F, 0x70, 0x7E, 0x0E, 0x12, 0x2E, 0xA2, 0x90, - 0x81, 0xF9, 0x12, 0x20, 0xDA, 0x00, 0x00, 0x00, - 0x00, 0xE4, 0xFD, 0xFF, 0x12, 0x55, 0x1C, 0x7F, - 0x7C, 0x7E, 0x08, 0x12, 0x2D, 0x5C, 0xEC, 0x44, - 0x80, 0xFC, 0x90, 0x82, 0x05, 0x12, 0x20, 0xCE, - 0x90, 0x82, 0x05, 0x12, 0x44, 0xD9, 0x90, 0x85, - 0xBB, 0x12, 0x20, 0xCE, 0x7F, 0x7C, 0x7E, 0x08, - 0x12, 0x2E, 0xA2, 0x90, 0x01, 0x00, 0x74, 0x3F, - 0xF0, 0xA3, 0xE0, 0x54, 0xFD, 0xF0, 0x90, 0x05, - 0x53, 0xE0, 0x44, 0x20, 0xF0, 0x22, 0x90, 0x01, - 0x34, 0x74, 0x40, 0xF0, 0xFD, 0xE4, 0xFF, 0x74, - 0x3D, 0x2F, 0xF8, 0xE6, 0x4D, 0xFE, 0xF6, 0x74, - 0x30, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x01, 0xF5, - 0x83, 0xEE, 0xF0, 0x22, 0xD3, 0x10, 0xAF, 0x01, - 0xC3, 0xC0, 0xD0, 0xE4, 0x90, 0x81, 0xCB, 0xF0, - 0x12, 0x1F, 0xA4, 0xFF, 0x54, 0x01, 0xFE, 0x90, - 0x81, 0x1F, 0xE0, 0x54, 0xFE, 0x4E, 0xFE, 0xF0, - 0xEF, 0x54, 0x02, 0xFF, 0xEE, 0x54, 0xFD, 0x4F, - 0xFF, 0xF0, 0x12, 0x1F, 0xA4, 0xFE, 0x54, 0x04, - 0xFD, 0xEF, 0x54, 0xFB, 0x4D, 0xFF, 0x90, 0x81, - 0x1F, 0xF0, 0xEE, 0x54, 0x08, 0xFE, 0xEF, 0x54, - 0xF7, 0x4E, 0xFF, 0xF0, 0x12, 0x1F, 0xA4, 0xFE, - 0x54, 0x10, 0xFD, 0xEF, 0x54, 0xEF, 0x4D, 0xFF, - 0x90, 0x81, 0x1F, 0xF0, 0xEE, 0x54, 0x20, 0xFE, - 0xEF, 0x54, 0xDF, 0x4E, 0xF0, 0x12, 0x1F, 0xA4, - 0xC3, 0x13, 0x20, 0xE0, 0x02, 0x61, 0x5E, 0x90, - 0x81, 0x1F, 0xE0, 0xFF, 0x30, 0xE0, 0x6D, 0x90, - 0x81, 0xCB, 0x74, 0x21, 0xF0, 0xEF, 0x13, 0x13, - 0x54, 0x3F, 0x30, 0xE0, 0x0B, 0x51, 0x4E, 0x90, - 0x81, 0xCB, 0xE0, 0x44, 0x08, 0xF0, 0x80, 0x0C, - 0xE4, 0x90, 0x81, 0x20, 0xF0, 0xA3, 0xF0, 0x7D, - 0x40, 0xFF, 0x91, 0x26, 0x90, 0x81, 0x1F, 0xE0, - 0xFD, 0x13, 0x13, 0x13, 0x54, 0x1F, 0x30, 0xE0, - 0x07, 0x90, 0x81, 0xCB, 0xE0, 0x44, 0x12, 0xF0, - 0xED, 0xC4, 0x54, 0x0F, 0x30, 0xE0, 0x07, 0x90, - 0x81, 0xCB, 0xE0, 0x44, 0x14, 0xF0, 0x90, 0x81, - 0x1F, 0xE0, 0xC4, 0x13, 0x54, 0x07, 0x30, 0xE0, - 0x07, 0x90, 0x81, 0xCB, 0xE0, 0x44, 0x80, 0xF0, - 0x90, 0x81, 0xCB, 0xE0, 0x90, 0x05, 0x27, 0xF0, - 0x90, 0x81, 0x22, 0xE0, 0x60, 0x02, 0x81, 0x17, - 0x7F, 0x01, 0x80, 0x15, 0x90, 0x81, 0xCB, 0x74, - 0x01, 0xF0, 0x90, 0x05, 0x27, 0xF0, 0x90, 0x81, - 0x22, 0xE0, 0x64, 0x04, 0x60, 0x02, 0x81, 0x17, - 0xFF, 0x12, 0x53, 0x0E, 0x81, 0x17, 0x90, 0x81, - 0x1F, 0xE0, 0xFF, 0x20, 0xE0, 0x02, 0x61, 0xE7, - 0x90, 0x81, 0xCB, 0x74, 0x31, 0xF0, 0xEF, 0x13, - 0x13, 0x54, 0x3F, 0x30, 0xE0, 0x0B, 0x51, 0x4E, - 0x90, 0x81, 0xCB, 0xE0, 0x44, 0x08, 0xF0, 0x80, - 0x06, 0x7D, 0x40, 0xE4, 0xFF, 0x91, 0x26, 0x90, - 0x81, 0x1F, 0xE0, 0xFD, 0x13, 0x13, 0x13, 0x54, - 0x1F, 0x30, 0xE0, 0x07, 0x90, 0x81, 0xCB, 0xE0, - 0x44, 0x02, 0xF0, 0xED, 0xC4, 0x54, 0x0F, 0x30, - 0xE0, 0x07, 0x90, 0x81, 0xCB, 0xE0, 0x44, 0x04, - 0xF0, 0x90, 0x81, 0xCB, 0xE0, 0x90, 0x05, 0x27, - 0xF0, 0x90, 0x81, 0x23, 0xE0, 0x64, 0x02, 0x70, - 0x1D, 0xFD, 0x7F, 0x04, 0x12, 0x47, 0x3D, 0x12, - 0x51, 0x73, 0xBF, 0x01, 0x09, 0x90, 0x81, 0x29, - 0xE0, 0xFF, 0x7D, 0x01, 0x80, 0x03, 0xE4, 0xFD, - 0xFF, 0x12, 0x47, 0x3D, 0x80, 0x41, 0x90, 0x81, - 0x2A, 0xE0, 0x90, 0x81, 0x23, 0xF0, 0x90, 0x05, - 0x27, 0xE0, 0x44, 0x40, 0xF0, 0x80, 0x30, 0x90, - 0x81, 0xCB, 0x74, 0x01, 0xF0, 0x90, 0x05, 0x27, - 0xF0, 0x90, 0x81, 0x23, 0xE0, 0xB4, 0x02, 0x06, - 0x7D, 0x01, 0x7F, 0x04, 0x80, 0x0B, 0x90, 0x81, - 0x23, 0xE0, 0xB4, 0x08, 0x07, 0x7D, 0x01, 0x7F, - 0x0C, 0x12, 0x47, 0x3D, 0xD1, 0x34, 0x90, 0x81, - 0x29, 0x12, 0x47, 0x39, 0x12, 0x5A, 0xA7, 0xD0, - 0xD0, 0x92, 0xAF, 0x22, 0x7D, 0x02, 0x7F, 0x02, - 0x91, 0x26, 0x7D, 0x01, 0x7F, 0x02, 0x74, 0x3D, - 0x2F, 0xF8, 0xE6, 0xFE, 0xED, 0xF4, 0x5E, 0xFE, - 0xF6, 0x74, 0x30, 0x2F, 0xF5, 0x82, 0xE4, 0x34, - 0x01, 0xF5, 0x83, 0xEE, 0xF0, 0x22, 0xEF, 0x70, - 0x37, 0x7D, 0x78, 0x7F, 0x02, 0x91, 0x26, 0x7D, - 0x02, 0x7F, 0x03, 0x91, 0x26, 0x7D, 0xC8, 0x7F, - 0x02, 0x12, 0x71, 0x8F, 0x90, 0x01, 0x57, 0xE4, - 0xF0, 0x90, 0x01, 0x3C, 0x74, 0x02, 0xF0, 0x7D, - 0x01, 0x7F, 0x0C, 0x12, 0x47, 0x3D, 0x90, 0x81, - 0x24, 0xE0, 0x54, 0xF7, 0xF0, 0x54, 0xEF, 0xF0, - 0x90, 0x06, 0x0A, 0xE0, 0x54, 0xF8, 0xF0, 0x22, - 0x90, 0x01, 0x36, 0x74, 0x78, 0xF0, 0xA3, 0x74, - 0x02, 0xF0, 0x7D, 0x78, 0xFF, 0x51, 0x57, 0x7D, - 0x02, 0x7F, 0x03, 0x51, 0x57, 0x90, 0x06, 0x0A, - 0xE0, 0x44, 0x07, 0xF0, 0x90, 0x81, 0x32, 0xA3, - 0xE0, 0x90, 0x05, 0x58, 0xF0, 0x90, 0x80, 0xDE, - 0xE0, 0xB4, 0x01, 0x15, 0x90, 0x81, 0x25, 0xE0, - 0x54, 0xFB, 0xF0, 0x90, 0x81, 0x2A, 0xE0, 0x20, - 0xE2, 0x0E, 0x7D, 0x01, 0x7F, 0x04, 0x02, 0x47, - 0x3D, 0x90, 0x81, 0x25, 0xE0, 0x44, 0x04, 0xF0, - 0x22, 0x90, 0x81, 0x1F, 0xE0, 0xFF, 0x30, 0xE0, - 0x08, 0x90, 0x81, 0x23, 0xE0, 0x64, 0x02, 0x60, - 0x3A, 0x90, 0x81, 0x27, 0xE0, 0x70, 0x04, 0xEF, - 0x30, 0xE0, 0x0A, 0x90, 0x81, 0x2A, 0xE0, 0x64, - 0x02, 0x60, 0x28, 0xB1, 0x83, 0x90, 0x81, 0x25, - 0xE0, 0x13, 0x13, 0x13, 0x54, 0x1F, 0x30, 0xE0, - 0x14, 0x90, 0x81, 0x2D, 0xE0, 0xFF, 0xA3, 0xE0, - 0x6F, 0x70, 0x0A, 0xF1, 0xCD, 0x91, 0x1C, 0x90, - 0x81, 0x2E, 0xE0, 0x14, 0xF0, 0x90, 0x01, 0xE6, - 0xE0, 0x04, 0xF0, 0x22, 0x90, 0x81, 0x1F, 0xE0, - 0x30, 0xE0, 0x06, 0x90, 0x81, 0x21, 0x74, 0x01, - 0xF0, 0x90, 0x81, 0x27, 0xE0, 0x60, 0x45, 0x90, - 0x81, 0x25, 0xE0, 0xFF, 0x13, 0x13, 0x13, 0x54, - 0x1F, 0x30, 0xE0, 0x12, 0x90, 0x01, 0x3B, 0xE0, - 0x30, 0xE4, 0x0B, 0x91, 0x1C, 0x90, 0x81, 0x2D, - 0xE0, 0x14, 0x90, 0x05, 0x73, 0xF0, 0x90, 0x82, - 0x0B, 0xE4, 0x75, 0xF0, 0x01, 0x12, 0x44, 0xA9, - 0xC3, 0x90, 0x82, 0x0C, 0xE0, 0x94, 0x80, 0x90, - 0x82, 0x0B, 0xE0, 0x64, 0x80, 0x94, 0x80, 0x40, - 0x0B, 0x90, 0x01, 0x98, 0xE0, 0x54, 0xFE, 0xF0, - 0xE0, 0x44, 0x01, 0xF0, 0x12, 0x75, 0xF8, 0xD1, - 0xD6, 0x90, 0x81, 0x3F, 0xE0, 0x30, 0xE0, 0x0C, - 0xE4, 0xF5, 0x1D, 0xA3, 0xF1, 0xFB, 0x90, 0x01, - 0x57, 0x74, 0x05, 0xF0, 0x90, 0x01, 0xBE, 0xE0, - 0x04, 0xF0, 0x22, 0x90, 0x80, 0xDE, 0xE0, 0x64, - 0x01, 0x60, 0x02, 0xC1, 0x23, 0x90, 0x81, 0x27, - 0xE0, 0x70, 0x02, 0xC1, 0x23, 0x90, 0x81, 0x26, - 0xE0, 0xC4, 0x54, 0x0F, 0x64, 0x01, 0x70, 0x22, - 0x90, 0x06, 0xAB, 0xE0, 0x90, 0x81, 0x2E, 0xF0, - 0x90, 0x06, 0xAA, 0xE0, 0x90, 0x81, 0x2D, 0xF0, - 0xA3, 0xE0, 0xFF, 0x70, 0x08, 0x90, 0x81, 0x2D, - 0xE0, 0xFE, 0xFF, 0x80, 0x00, 0x90, 0x81, 0x2E, - 0xEF, 0xF0, 0x90, 0x81, 0x25, 0xE0, 0x44, 0x04, - 0xF0, 0xE4, 0x90, 0x81, 0x30, 0xF0, 0x90, 0x81, - 0x32, 0xA3, 0xE0, 0x90, 0x05, 0x58, 0xF0, 0x90, - 0x01, 0x57, 0xE4, 0xF0, 0x90, 0x01, 0x3C, 0x74, - 0x02, 0xF0, 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFD, - 0xF0, 0x54, 0xEF, 0xF0, 0x90, 0x81, 0x26, 0xE0, - 0xFF, 0xC4, 0x54, 0x0F, 0x24, 0xFD, 0x50, 0x02, - 0x80, 0x0F, 0x90, 0x81, 0x1F, 0xE0, 0x30, 0xE0, - 0x05, 0x12, 0x6D, 0xF2, 0x80, 0x03, 0x12, 0x6E, - 0xC9, 0x90, 0x81, 0x25, 0xE0, 0x13, 0x13, 0x13, - 0x54, 0x1F, 0x30, 0xE0, 0x0E, 0x90, 0x81, 0x2D, - 0xE0, 0xFF, 0xA3, 0xE0, 0xB5, 0x07, 0x04, 0xF1, - 0xCD, 0x91, 0x22, 0x90, 0x81, 0x1F, 0xE0, 0xC3, - 0x13, 0x20, 0xE0, 0x07, 0x90, 0x81, 0x25, 0xE0, - 0x44, 0x04, 0xF0, 0x22, 0xD1, 0xAB, 0xEF, 0x70, - 0x02, 0xD1, 0x3C, 0x22, 0x90, 0x81, 0x27, 0xE0, - 0x64, 0x01, 0x70, 0x66, 0x90, 0x81, 0x26, 0xE0, - 0x54, 0x0F, 0x60, 0x51, 0x90, 0x81, 0x2A, 0xE0, - 0x70, 0x03, 0xFF, 0x31, 0x93, 0x90, 0x81, 0x2A, - 0xE0, 0x64, 0x0C, 0x60, 0x03, 0x12, 0x66, 0x26, - 0x90, 0x01, 0x5B, 0xE4, 0xF0, 0x90, 0x01, 0x3C, - 0x74, 0x04, 0xF0, 0xD1, 0xAB, 0xEF, 0x64, 0x01, - 0x60, 0x38, 0xE4, 0xF5, 0x1D, 0x90, 0x81, 0x3A, - 0xE0, 0xC3, 0x13, 0x54, 0x7F, 0xF5, 0x1E, 0xE4, - 0xFB, 0xFD, 0x7F, 0x58, 0x7E, 0x01, 0x12, 0x50, - 0x05, 0x90, 0x01, 0x5B, 0x74, 0x05, 0xF0, 0x90, - 0x06, 0x92, 0x74, 0x01, 0xF0, 0x90, 0x81, 0x24, - 0xE0, 0x44, 0x08, 0xF0, 0x22, 0x90, 0x81, 0x2A, - 0xE0, 0x70, 0x07, 0x7D, 0x01, 0x7F, 0x04, 0x12, - 0x47, 0x3D, 0x22, 0x90, 0x04, 0x1A, 0xE0, 0xF4, - 0x60, 0x03, 0x7F, 0x00, 0x22, 0x90, 0x04, 0x1B, - 0xE0, 0x54, 0x07, 0x64, 0x07, 0x7F, 0x01, 0x60, - 0x02, 0x7F, 0x00, 0x22, 0x12, 0x50, 0x60, 0x90, - 0x81, 0x2D, 0xE0, 0x14, 0x90, 0x05, 0x73, 0xF0, - 0x7D, 0x02, 0x7F, 0x02, 0x51, 0x57, 0x90, 0x81, - 0x42, 0xE0, 0x30, 0xE0, 0x2D, 0x90, 0x80, 0xDE, - 0xE0, 0xB4, 0x01, 0x26, 0x90, 0x82, 0x17, 0xE0, - 0x04, 0xF0, 0xE0, 0xB4, 0x0A, 0x0B, 0x90, 0x81, - 0x44, 0xE0, 0x04, 0xF0, 0xE4, 0x90, 0x82, 0x17, - 0xF0, 0x90, 0x81, 0x44, 0xE0, 0xFF, 0x90, 0x81, - 0x43, 0xE0, 0xB5, 0x07, 0x05, 0xE4, 0xA3, 0xF0, - 0xF1, 0x0B, 0x22, 0xE4, 0xFF, 0x8F, 0x53, 0x90, - 0x04, 0x1D, 0xE0, 0x60, 0x19, 0x90, 0x05, 0x22, - 0xE0, 0xF5, 0x56, 0x74, 0xFF, 0xF0, 0xF1, 0x3A, - 0xBF, 0x01, 0x03, 0x12, 0x74, 0xFB, 0x90, 0x05, - 0x22, 0xE5, 0x56, 0xF0, 0x80, 0x03, 0x12, 0x74, - 0xFB, 0x90, 0x04, 0x1F, 0x74, 0x20, 0xF0, 0x7F, - 0x01, 0x22, 0xE4, 0x90, 0x82, 0x0F, 0xF0, 0xA3, - 0xF0, 0x90, 0x05, 0xF8, 0xE0, 0x70, 0x0F, 0xA3, - 0xE0, 0x70, 0x0B, 0xA3, 0xE0, 0x70, 0x07, 0xA3, - 0xE0, 0x70, 0x03, 0x7F, 0x01, 0x22, 0xD3, 0x90, - 0x82, 0x10, 0xE0, 0x94, 0xE8, 0x90, 0x82, 0x0F, - 0xE0, 0x94, 0x03, 0x40, 0x0A, 0x90, 0x01, 0xC0, - 0xE0, 0x44, 0x20, 0xF0, 0x7F, 0x00, 0x22, 0x7F, - 0x32, 0x7E, 0x00, 0x12, 0x32, 0xAA, 0x90, 0x82, - 0x0F, 0xE4, 0x75, 0xF0, 0x01, 0x12, 0x44, 0xA9, - 0x80, 0xBF, 0x74, 0x1F, 0x2D, 0xF5, 0x82, 0xE4, - 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x54, 0x3F, 0xF0, - 0xEF, 0x60, 0x1D, 0x74, 0x21, 0x2D, 0xF5, 0x82, - 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x44, 0x10, - 0xF0, 0x74, 0x1F, 0x2D, 0xF5, 0x82, 0xE4, 0x34, - 0xFC, 0xF5, 0x83, 0xE0, 0x44, 0x80, 0xF0, 0x22, - 0x74, 0x21, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0xFC, - 0xF5, 0x83, 0xE0, 0x54, 0xEF, 0xF0, 0x74, 0x1F, - 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, - 0xE0, 0x44, 0x40, 0xF0, 0x22, 0xEF, 0x14, 0x90, - 0x05, 0x73, 0xF0, 0x90, 0x01, 0x3F, 0x74, 0x10, - 0xF0, 0xFD, 0x7F, 0x03, 0x74, 0x45, 0x2F, 0xF8, - 0xE6, 0x4D, 0xFE, 0xF6, 0x74, 0x38, 0x2F, 0xF5, - 0x82, 0xE4, 0x34, 0x01, 0xF5, 0x83, 0xEE, 0xF0, - 0x22, 0xE0, 0x44, 0x02, 0xF0, 0xE4, 0xF5, 0x1D, - 0x90, 0x81, 0x39, 0xE0, 0xF5, 0x1E, 0xE4, 0xFB, - 0xFD, 0x7F, 0x54, 0x7E, 0x01, 0x8E, 0x19, 0x8F, - 0x1A, 0xE5, 0x1E, 0x54, 0x07, 0xC4, 0x33, 0x54, - 0xE0, 0x85, 0x19, 0x83, 0x85, 0x1A, 0x82, 0xF0, - 0xE5, 0x1D, 0x54, 0x07, 0xC4, 0x33, 0x54, 0xE0, - 0xFF, 0xE5, 0x1E, 0x13, 0x13, 0x13, 0x54, 0x1F, - 0x4F, 0xA3, 0xF0, 0xEB, 0x54, 0x07, 0xC4, 0x33, - 0x54, 0xE0, 0xFF, 0xE5, 0x1D, 0x13, 0x13, 0x13, - 0x54, 0x1F, 0x4F, 0x85, 0x1A, 0x82, 0x85, 0x19, - 0x83, 0xA3, 0xA3, 0xF0, 0xBD, 0x01, 0x0C, 0x85, - 0x1A, 0x82, 0x8E, 0x83, 0xA3, 0xA3, 0xA3, 0x74, - 0x03, 0xF0, 0x22, 0x85, 0x1A, 0x82, 0x85, 0x19, - 0x83, 0xA3, 0xA3, 0xA3, 0x74, 0x01, 0xF0, 0x22, - 0xE4, 0x90, 0x81, 0x4D, 0xF0, 0x90, 0x81, 0x27, - 0xE0, 0x60, 0x58, 0x90, 0x80, 0xDE, 0xE0, 0x64, - 0x01, 0x70, 0x50, 0x90, 0x81, 0x4D, 0x04, 0xF0, - 0xE4, 0x90, 0x81, 0x2E, 0xF0, 0x90, 0x81, 0x1F, - 0xE0, 0x30, 0xE0, 0x15, 0x90, 0x81, 0x23, 0xE0, - 0xB4, 0x02, 0x05, 0xE4, 0x90, 0x81, 0x4D, 0xF0, - 0x31, 0x73, 0xEF, 0x70, 0x04, 0x90, 0x81, 0x4D, - 0xF0, 0x90, 0x81, 0x4D, 0xE0, 0x60, 0x24, 0x90, - 0x81, 0x2B, 0xE0, 0x44, 0x10, 0xF0, 0xE4, 0xF5, - 0x1D, 0x90, 0x81, 0x2F, 0x12, 0x4F, 0xFB, 0x90, - 0x01, 0x57, 0x74, 0x05, 0xF0, 0x90, 0x81, 0x2A, - 0xE0, 0x20, 0xE2, 0x07, 0x7D, 0x01, 0x7F, 0x04, - 0x12, 0x47, 0x3D, 0x22, 0xE4, 0x90, 0x81, 0x4C, - 0xF0, 0x90, 0x81, 0x27, 0xE0, 0x70, 0x02, 0x21, - 0x72, 0x90, 0x80, 0xDE, 0xE0, 0x64, 0x01, 0x60, - 0x02, 0x21, 0x72, 0x90, 0x81, 0x26, 0xE0, 0xFF, - 0xC4, 0x54, 0x0F, 0x60, 0x22, 0x24, 0xFE, 0x60, - 0x03, 0x04, 0x70, 0x21, 0x90, 0x81, 0x2E, 0xE0, - 0x14, 0xF0, 0xE0, 0xFF, 0x60, 0x06, 0x90, 0x81, - 0x30, 0xE0, 0x60, 0x11, 0xEF, 0x70, 0x08, 0x90, - 0x81, 0x2D, 0xE0, 0xA3, 0xF0, 0x80, 0x00, 0x90, - 0x81, 0x4C, 0x74, 0x01, 0xF0, 0x90, 0x81, 0x1F, - 0xE0, 0x30, 0xE0, 0x15, 0x90, 0x81, 0x23, 0xE0, - 0xB4, 0x02, 0x05, 0xE4, 0x90, 0x81, 0x4C, 0xF0, - 0x31, 0x73, 0xEF, 0x70, 0x04, 0x90, 0x81, 0x4C, - 0xF0, 0x90, 0x81, 0x4C, 0xE0, 0x60, 0x43, 0x90, - 0x81, 0x2B, 0xE0, 0x44, 0x10, 0xF0, 0x90, 0x81, - 0x30, 0xE0, 0x60, 0x03, 0xB4, 0x01, 0x09, 0xE4, - 0xF5, 0x1D, 0x90, 0x81, 0x30, 0xE0, 0x80, 0x0D, - 0xE4, 0xF5, 0x1D, 0x90, 0x81, 0x30, 0xE0, 0x75, - 0xF0, 0x03, 0xA4, 0x24, 0xFE, 0xFF, 0x90, 0x81, - 0x2F, 0xE0, 0x2F, 0x12, 0x4F, 0xFC, 0x90, 0x01, - 0x57, 0x74, 0x05, 0xF0, 0x90, 0x81, 0x2A, 0xE0, - 0x20, 0xE2, 0x07, 0x7D, 0x01, 0x7F, 0x04, 0x12, - 0x47, 0x3D, 0x22, 0x90, 0x05, 0x43, 0xE0, 0x7F, - 0x00, 0x30, 0xE7, 0x02, 0x7F, 0x01, 0x22, 0x90, - 0x81, 0x27, 0xE0, 0x70, 0x07, 0x90, 0x81, 0x1F, - 0xE0, 0x30, 0xE0, 0x11, 0x90, 0x81, 0x1F, 0xE0, - 0x30, 0xE0, 0x07, 0x31, 0x73, 0xBF, 0x01, 0x05, - 0x41, 0x5B, 0x12, 0x4E, 0x3C, 0x22, 0xD3, 0x10, - 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x81, 0x1E, - 0xE0, 0xB4, 0x01, 0x04, 0x7F, 0x04, 0x80, 0x0B, - 0x31, 0x73, 0xBF, 0x01, 0x04, 0x7F, 0x01, 0x80, - 0x02, 0x7F, 0x02, 0x71, 0x0E, 0xD0, 0xD0, 0x92, - 0xAF, 0x22, 0x90, 0x81, 0x4B, 0xE0, 0x60, 0x0F, - 0xE4, 0xF0, 0x90, 0x05, 0x53, 0xE0, 0x44, 0x02, - 0xF0, 0x90, 0x05, 0xFC, 0xE0, 0x04, 0xF0, 0x90, - 0x81, 0x1F, 0xE0, 0x30, 0xE0, 0x10, 0xA3, 0x74, - 0x01, 0xF0, 0x90, 0x81, 0x1F, 0xE0, 0xFF, 0xC3, - 0x13, 0x30, 0xE0, 0x02, 0x31, 0x9E, 0x11, 0xC4, - 0x90, 0x81, 0x3F, 0xE0, 0x30, 0xE0, 0x07, 0x91, - 0x65, 0x90, 0x05, 0x22, 0xE4, 0xF0, 0x22, 0x90, - 0x81, 0x1F, 0xE0, 0xFF, 0x30, 0xE0, 0x3D, 0x90, - 0x81, 0x23, 0xE0, 0x7E, 0x00, 0xB4, 0x02, 0x02, - 0x7E, 0x01, 0x90, 0x81, 0x22, 0xE0, 0x7D, 0x00, - 0xB4, 0x04, 0x02, 0x7D, 0x01, 0xED, 0x4E, 0x70, - 0x23, 0xEF, 0xC3, 0x13, 0x30, 0xE0, 0x02, 0x21, - 0x9E, 0x51, 0x45, 0x90, 0x81, 0x23, 0xE0, 0xB4, - 0x08, 0x06, 0xE4, 0xFD, 0x7F, 0x0C, 0x80, 0x09, - 0x90, 0x81, 0x23, 0xE0, 0x70, 0x06, 0xFD, 0x7F, - 0x04, 0x12, 0x47, 0x3D, 0x22, 0x90, 0x81, 0x1E, - 0xE0, 0xB4, 0x01, 0x0F, 0x90, 0x81, 0x23, 0xE0, - 0x64, 0x02, 0x60, 0x07, 0x7D, 0x01, 0x7F, 0x02, - 0x12, 0x47, 0x3D, 0x90, 0x81, 0x27, 0xE0, 0x64, - 0x02, 0x60, 0x14, 0x90, 0x81, 0x26, 0xE0, 0x54, - 0x0F, 0x60, 0x0C, 0x12, 0x4E, 0xAB, 0xEF, 0x70, - 0x06, 0xFD, 0x7F, 0x0C, 0x12, 0x47, 0x3D, 0x22, - 0x90, 0x81, 0x1F, 0xE0, 0xFF, 0x30, 0xE0, 0x3F, - 0x90, 0x81, 0x23, 0xE0, 0x7E, 0x00, 0xB4, 0x02, - 0x02, 0x7E, 0x01, 0x90, 0x81, 0x22, 0xE0, 0x7D, - 0x00, 0xB4, 0x04, 0x02, 0x7D, 0x01, 0xED, 0x4E, - 0x70, 0x25, 0xEF, 0xC3, 0x13, 0x30, 0xE0, 0x02, - 0x21, 0x9E, 0x12, 0x74, 0xAC, 0x90, 0x81, 0x23, - 0xE0, 0xB4, 0x0C, 0x06, 0xE4, 0xFD, 0x7F, 0x08, - 0x80, 0x0A, 0x90, 0x81, 0x23, 0xE0, 0xB4, 0x04, - 0x06, 0xE4, 0xFD, 0xFF, 0x12, 0x47, 0x3D, 0x22, - 0xD3, 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, - 0x81, 0xCB, 0x12, 0x45, 0x1F, 0x12, 0x1F, 0xA4, - 0xFF, 0x90, 0x81, 0x1E, 0xF0, 0xBF, 0x01, 0x12, - 0x90, 0x81, 0xCB, 0x12, 0x45, 0x16, 0x90, 0x00, - 0x01, 0x12, 0x1F, 0xBD, 0x64, 0x01, 0x60, 0x21, - 0x80, 0x1D, 0x90, 0x81, 0xCB, 0x12, 0x45, 0x16, - 0x90, 0x00, 0x01, 0x12, 0x1F, 0xBD, 0x64, 0x01, - 0x60, 0x0F, 0x90, 0x81, 0x1F, 0xE0, 0x20, 0xE0, - 0x06, 0xE4, 0xFF, 0x71, 0x0E, 0x80, 0x02, 0x31, - 0x9E, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0xD3, 0x10, - 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x81, 0x22, - 0xE0, 0x90, 0x82, 0x16, 0xF0, 0x6F, 0x70, 0x02, - 0x81, 0x04, 0xEF, 0x14, 0x60, 0x3E, 0x14, 0x60, - 0x62, 0x14, 0x70, 0x02, 0x61, 0xB8, 0x14, 0x70, - 0x02, 0x61, 0xDF, 0x24, 0x04, 0x60, 0x02, 0x81, - 0x04, 0x90, 0x82, 0x16, 0xE0, 0xFF, 0xB4, 0x04, - 0x04, 0x91, 0x41, 0x81, 0x04, 0xEF, 0xB4, 0x02, - 0x04, 0x91, 0x50, 0x81, 0x04, 0x90, 0x82, 0x16, - 0xE0, 0xFF, 0xB4, 0x03, 0x04, 0x91, 0x54, 0x81, - 0x04, 0xEF, 0x64, 0x01, 0x60, 0x02, 0x81, 0x04, - 0x91, 0x43, 0x81, 0x04, 0x90, 0x82, 0x16, 0xE0, - 0xFF, 0xB4, 0x04, 0x04, 0x91, 0xF3, 0x81, 0x04, - 0xEF, 0xB4, 0x02, 0x04, 0x91, 0x58, 0x81, 0x04, - 0x90, 0x82, 0x16, 0xE0, 0xFF, 0xB4, 0x03, 0x04, - 0x91, 0xE8, 0x81, 0x04, 0xEF, 0x70, 0x7D, 0x91, - 0x2B, 0x80, 0x79, 0x90, 0x82, 0x16, 0xE0, 0xB4, - 0x04, 0x05, 0x12, 0x74, 0x60, 0x80, 0x6D, 0x90, - 0x82, 0x16, 0xE0, 0xB4, 0x01, 0x04, 0x91, 0x21, - 0x80, 0x62, 0x90, 0x82, 0x16, 0xE0, 0xB4, 0x03, - 0x05, 0x12, 0x74, 0x71, 0x80, 0x56, 0x90, 0x82, - 0x16, 0xE0, 0x70, 0x50, 0x91, 0x1F, 0x80, 0x4C, - 0x90, 0x82, 0x16, 0xE0, 0xFF, 0xB4, 0x04, 0x05, - 0x12, 0x74, 0x4C, 0x80, 0x3F, 0xEF, 0xB4, 0x01, - 0x04, 0x91, 0x34, 0x80, 0x37, 0xEF, 0xB4, 0x02, - 0x04, 0x91, 0xDF, 0x80, 0x2F, 0x90, 0x82, 0x16, - 0xE0, 0x70, 0x29, 0x91, 0x32, 0x80, 0x25, 0x90, - 0x82, 0x16, 0xE0, 0xFF, 0xB4, 0x03, 0x05, 0x12, - 0x74, 0x7B, 0x80, 0x18, 0xEF, 0xB4, 0x01, 0x04, - 0x91, 0x0B, 0x80, 0x10, 0xEF, 0xB4, 0x02, 0x04, - 0xB1, 0x06, 0x80, 0x08, 0x90, 0x82, 0x16, 0xE0, - 0x70, 0x02, 0x91, 0x09, 0xD0, 0xD0, 0x92, 0xAF, - 0x22, 0x91, 0x2B, 0x90, 0x05, 0x22, 0x74, 0x6F, - 0xF0, 0x90, 0x05, 0x27, 0xE0, 0x54, 0xBF, 0xF0, - 0x90, 0x81, 0x22, 0x74, 0x04, 0xF0, 0x22, 0x91, - 0x2B, 0x12, 0x49, 0xDD, 0x90, 0x81, 0x22, 0x74, - 0x02, 0xF0, 0x22, 0x90, 0x81, 0x22, 0x74, 0x01, - 0xF0, 0x22, 0x91, 0x2B, 0x90, 0x05, 0x22, 0x74, - 0xFF, 0xF0, 0x90, 0x81, 0x22, 0x74, 0x03, 0xF0, - 0x22, 0x91, 0xF3, 0x90, 0x05, 0x27, 0xE0, 0x54, - 0xBF, 0xF0, 0xE4, 0x90, 0x81, 0x22, 0xF0, 0x22, - 0x91, 0x58, 0x80, 0xEF, 0x91, 0xE8, 0x80, 0xEB, - 0x91, 0x65, 0x90, 0x05, 0x22, 0xE4, 0xF0, 0x90, - 0x81, 0x22, 0x04, 0xF0, 0x22, 0xD3, 0x10, 0xAF, - 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x01, 0x01, 0xE0, - 0x44, 0x02, 0xF0, 0x90, 0x01, 0x00, 0x74, 0xFF, - 0xF0, 0x90, 0x06, 0xB7, 0x74, 0x09, 0xF0, 0x90, - 0x06, 0xB4, 0x74, 0x86, 0xF0, 0x7F, 0x7C, 0x7E, - 0x08, 0x12, 0x2D, 0x5C, 0xEC, 0x54, 0x7F, 0xFC, - 0x90, 0x82, 0x01, 0x12, 0x20, 0xCE, 0x90, 0x82, - 0x01, 0x12, 0x44, 0xD9, 0x90, 0x85, 0xBB, 0x12, - 0x20, 0xCE, 0x7F, 0x7C, 0x7E, 0x08, 0x12, 0x2E, - 0xA2, 0x90, 0x85, 0xBB, 0x12, 0x20, 0xDA, 0xCC, - 0xC0, 0x00, 0xC0, 0x7F, 0x8C, 0x7E, 0x08, 0x12, - 0x2E, 0xA2, 0x90, 0x85, 0xBB, 0x12, 0x20, 0xDA, - 0x00, 0xC0, 0x00, 0x14, 0x7F, 0x70, 0x7E, 0x0E, - 0x12, 0x2E, 0xA2, 0x90, 0x81, 0xF9, 0x12, 0x20, - 0xDA, 0x00, 0x03, 0x3E, 0x60, 0xE4, 0xFD, 0xFF, - 0xB1, 0x1C, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0x91, - 0x65, 0x90, 0x81, 0x22, 0x74, 0x03, 0xF0, 0x22, - 0x90, 0x05, 0x22, 0xE4, 0xF0, 0x90, 0x81, 0x22, - 0x04, 0xF0, 0x22, 0x90, 0x05, 0x22, 0xE4, 0xF0, - 0x90, 0x05, 0x27, 0xE0, 0x44, 0x40, 0xF0, 0x90, - 0x81, 0x22, 0x74, 0x01, 0xF0, 0x22, 0x91, 0x65, - 0x90, 0x05, 0x22, 0x74, 0x6F, 0xF0, 0x90, 0x05, - 0x27, 0xE0, 0x54, 0xBF, 0xF0, 0x90, 0x81, 0x22, - 0x74, 0x04, 0xF0, 0x22, 0xD3, 0x10, 0xAF, 0x01, - 0xC3, 0xC0, 0xD0, 0xC0, 0x07, 0xC0, 0x05, 0x90, - 0x81, 0xF9, 0x12, 0x44, 0xD9, 0x90, 0x81, 0xE5, - 0x12, 0x20, 0xCE, 0xD0, 0x05, 0xD0, 0x07, 0x12, - 0x60, 0xF5, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0x90, - 0x81, 0xC8, 0x12, 0x45, 0x1F, 0xEF, 0x12, 0x45, - 0x28, 0x55, 0x71, 0x00, 0x55, 0x7A, 0x01, 0x55, - 0x83, 0x02, 0x55, 0x8B, 0x03, 0x55, 0x94, 0x04, - 0x55, 0x9C, 0x20, 0x55, 0xA4, 0x21, 0x55, 0xAD, - 0x23, 0x55, 0xB5, 0x24, 0x55, 0xBE, 0x25, 0x55, - 0xC7, 0x26, 0x55, 0xCF, 0xC0, 0x00, 0x00, 0x55, - 0xD8, 0x90, 0x81, 0xC8, 0x12, 0x45, 0x16, 0x02, - 0x6A, 0xB0, 0x90, 0x81, 0xC8, 0x12, 0x45, 0x16, - 0x02, 0x65, 0x81, 0x90, 0x81, 0xC8, 0x12, 0x45, - 0x16, 0x41, 0xC0, 0x90, 0x81, 0xC8, 0x12, 0x45, - 0x16, 0x02, 0x75, 0xD8, 0x90, 0x81, 0xC8, 0x12, - 0x45, 0x16, 0x80, 0x44, 0x90, 0x81, 0xC8, 0x12, - 0x45, 0x16, 0xC1, 0x4B, 0x90, 0x81, 0xC8, 0x12, - 0x45, 0x16, 0x02, 0x6A, 0xF8, 0x90, 0x81, 0xC8, - 0x12, 0x45, 0x16, 0xE1, 0xE1, 0x90, 0x81, 0xC8, - 0x12, 0x45, 0x16, 0x02, 0x4A, 0x6C, 0x90, 0x81, - 0xC8, 0x12, 0x45, 0x16, 0x02, 0x6B, 0x3E, 0x90, - 0x81, 0xC8, 0x12, 0x45, 0x16, 0x80, 0x3E, 0x90, - 0x81, 0xC8, 0x12, 0x45, 0x16, 0x02, 0x6B, 0x4E, - 0x90, 0x01, 0xC0, 0xE0, 0x44, 0x01, 0xF0, 0x22, - 0x12, 0x5A, 0x4B, 0x12, 0x1F, 0xA4, 0xFF, 0x54, - 0x01, 0xFE, 0x90, 0x81, 0x45, 0xE0, 0x54, 0xFE, - 0x4E, 0xF0, 0xEF, 0xC3, 0x13, 0x30, 0xE0, 0x14, - 0x90, 0x00, 0x01, 0x12, 0x1F, 0xBD, 0x90, 0x81, - 0x46, 0xF0, 0x90, 0x00, 0x02, 0x12, 0x1F, 0xBD, - 0x90, 0x81, 0x47, 0xF0, 0x22, 0x12, 0x1F, 0xA4, - 0xFF, 0x54, 0x01, 0xFE, 0x90, 0x81, 0x3F, 0xE0, - 0x54, 0xFE, 0x4E, 0xF0, 0x90, 0x00, 0x01, 0x12, - 0x1F, 0xBD, 0xFE, 0x90, 0x05, 0x54, 0xE0, 0xC3, - 0x9E, 0x90, 0x81, 0x40, 0xF0, 0xEF, 0x20, 0xE0, - 0x07, 0x91, 0x65, 0x90, 0x05, 0x22, 0xE4, 0xF0, - 0x90, 0x81, 0x3F, 0xE0, 0x54, 0x01, 0x90, 0x01, - 0xBC, 0xF0, 0x90, 0x81, 0x40, 0xE0, 0x90, 0x01, - 0xBD, 0xF0, 0x22, 0x12, 0x1F, 0xA4, 0xFF, 0x54, - 0x7F, 0x90, 0x81, 0x27, 0xF0, 0xEF, 0xC4, 0x13, - 0x13, 0x13, 0x54, 0x01, 0xA3, 0xF0, 0x90, 0x00, - 0x01, 0x12, 0x1F, 0xBD, 0xFF, 0x54, 0xF0, 0xC4, - 0x54, 0x0F, 0xFE, 0x90, 0x81, 0x26, 0xE0, 0x54, - 0xF0, 0x4E, 0xF0, 0x90, 0x00, 0x03, 0x12, 0x1F, - 0xBD, 0x54, 0x01, 0x25, 0xE0, 0xFE, 0x90, 0x81, - 0x24, 0xE0, 0x54, 0xFD, 0x4E, 0xF0, 0xEF, 0x54, - 0x0F, 0xC4, 0x54, 0xF0, 0xFF, 0x90, 0x81, 0x26, - 0xE0, 0x54, 0x0F, 0x4F, 0xF0, 0x90, 0x00, 0x04, - 0x12, 0x1F, 0xBD, 0x90, 0x81, 0x29, 0xF0, 0xD1, - 0xC6, 0x90, 0x01, 0xB9, 0x74, 0x01, 0xF0, 0x90, - 0x01, 0xB8, 0xF0, 0x90, 0x81, 0x27, 0xE0, 0x90, - 0x01, 0xBA, 0xF0, 0x90, 0x81, 0x29, 0xE0, 0x90, - 0x01, 0xBB, 0xF0, 0x90, 0x81, 0x26, 0xE0, 0x54, - 0x0F, 0x90, 0x01, 0xBE, 0xF0, 0x22, 0x90, 0x81, - 0xCB, 0x12, 0x45, 0x1F, 0x12, 0x72, 0xB3, 0x90, - 0x81, 0x27, 0xE0, 0xFF, 0x12, 0x4C, 0x3E, 0x90, - 0x81, 0x27, 0xE0, 0x60, 0x19, 0x90, 0x81, 0xCB, - 0x12, 0x45, 0x16, 0x90, 0x00, 0x01, 0x12, 0x1F, - 0xBD, 0x54, 0x0F, 0xFF, 0x90, 0x00, 0x02, 0x12, - 0x1F, 0xBD, 0xFD, 0x12, 0x72, 0xC4, 0x22, 0xC0, - 0xE0, 0xC0, 0xF0, 0xC0, 0x83, 0xC0, 0x82, 0xC0, - 0xD0, 0x75, 0xD0, 0x00, 0xC0, 0x00, 0xC0, 0x01, - 0xC0, 0x02, 0xC0, 0x03, 0xC0, 0x04, 0xC0, 0x05, - 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x01, 0xC4, 0x74, - 0xF7, 0xF0, 0x74, 0x56, 0xA3, 0xF0, 0x12, 0x6C, - 0xA5, 0xE5, 0x49, 0x30, 0xE1, 0x03, 0x12, 0x6F, - 0x79, 0xE5, 0x49, 0x30, 0xE2, 0x02, 0xF1, 0xA5, - 0xE5, 0x49, 0x30, 0xE3, 0x03, 0x12, 0x6F, 0x8D, - 0xE5, 0x4A, 0x30, 0xE0, 0x03, 0x12, 0x6F, 0xC9, - 0xE5, 0x4A, 0x30, 0xE4, 0x03, 0x12, 0x70, 0x22, - 0xE5, 0x4B, 0x30, 0xE1, 0x02, 0x51, 0x78, 0xE5, - 0x4B, 0x30, 0xE0, 0x02, 0x31, 0xFF, 0xE5, 0x4B, - 0x30, 0xE3, 0x02, 0xF1, 0xE0, 0xE5, 0x4C, 0x30, - 0xE1, 0x05, 0x7F, 0x03, 0x12, 0x44, 0x27, 0xE5, - 0x4C, 0x30, 0xE4, 0x03, 0x12, 0x4E, 0xC4, 0xE5, - 0x4C, 0x30, 0xE5, 0x03, 0x12, 0x70, 0x38, 0xE5, - 0x4C, 0x30, 0xE6, 0x03, 0x12, 0x70, 0xCE, 0x74, - 0xF7, 0x04, 0x90, 0x01, 0xC4, 0xF0, 0x74, 0x56, - 0xA3, 0xF0, 0xD0, 0x07, 0xD0, 0x06, 0xD0, 0x05, - 0xD0, 0x04, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, - 0xD0, 0x00, 0xD0, 0xD0, 0xD0, 0x82, 0xD0, 0x83, - 0xD0, 0xF0, 0xD0, 0xE0, 0x32, 0x90, 0x81, 0x27, - 0xE0, 0x60, 0x34, 0x90, 0x06, 0x92, 0xE0, 0x30, - 0xE0, 0x23, 0xE4, 0xF5, 0x1D, 0x90, 0x81, 0x3A, - 0xE0, 0xC3, 0x13, 0x54, 0x7F, 0xF5, 0x1E, 0xE4, - 0xFB, 0xFD, 0x7F, 0x58, 0x7E, 0x01, 0x11, 0x05, - 0x90, 0x01, 0x5B, 0x74, 0x05, 0xF0, 0x90, 0x06, - 0x92, 0x74, 0x01, 0xF0, 0x22, 0x90, 0x81, 0x24, - 0xE0, 0x54, 0xF7, 0xF0, 0x12, 0x47, 0x2A, 0x22, - 0x22, 0x12, 0x1F, 0xA4, 0x90, 0x81, 0x31, 0xF0, - 0x22, 0x90, 0x01, 0xC8, 0xE4, 0xF0, 0xA3, 0xF0, - 0xA3, 0xF0, 0x7B, 0x01, 0x7A, 0x81, 0x79, 0x51, - 0x7F, 0xFF, 0xFE, 0x12, 0x2B, 0x27, 0xBF, 0x01, - 0x09, 0x90, 0x81, 0x51, 0xE0, 0x64, 0x03, 0x60, - 0x03, 0x22, 0x01, 0xAB, 0xE4, 0x90, 0x81, 0x56, - 0xF0, 0x90, 0x81, 0x56, 0xE0, 0xFF, 0xC3, 0x94, - 0x02, 0x40, 0x02, 0x01, 0xE6, 0xC3, 0x74, 0xFE, - 0x9F, 0xFF, 0xE4, 0x94, 0x00, 0xFE, 0x7B, 0x01, - 0x7A, 0x81, 0x79, 0x52, 0x12, 0x2B, 0x27, 0xEF, - 0x64, 0x01, 0x70, 0x77, 0x90, 0x81, 0x52, 0xE0, - 0xFF, 0x54, 0xC0, 0xFE, 0x60, 0x05, 0xEF, 0x54, - 0x0C, 0x70, 0x16, 0x90, 0x81, 0x52, 0xE0, 0xFF, - 0x54, 0x30, 0x60, 0x67, 0xEF, 0x54, 0x03, 0x60, - 0x62, 0x90, 0x81, 0x53, 0x74, 0x01, 0xF0, 0x80, - 0x05, 0xE4, 0x90, 0x81, 0x53, 0xF0, 0x90, 0x81, - 0x53, 0xE0, 0x90, 0x81, 0x52, 0x70, 0x16, 0xE0, - 0xFF, 0xEE, 0x13, 0x13, 0x54, 0x3F, 0x90, 0x81, - 0x54, 0xF0, 0xEF, 0x54, 0x0C, 0x13, 0x13, 0x54, - 0x3F, 0xA3, 0xF0, 0x80, 0x0D, 0xE0, 0xFE, 0x54, - 0x30, 0x90, 0x81, 0x54, 0xF0, 0xEE, 0x54, 0x03, - 0xA3, 0xF0, 0x90, 0x81, 0x54, 0xE0, 0x64, 0x30, - 0x70, 0x54, 0xA3, 0xE0, 0x64, 0x02, 0x70, 0x4E, - 0x90, 0x00, 0xF5, 0xE0, 0x54, 0x40, 0x90, 0x81, - 0x57, 0xF0, 0xE0, 0x70, 0x41, 0xA3, 0x74, 0x02, - 0xF0, 0x80, 0x10, 0x90, 0x81, 0x58, 0x74, 0x01, - 0xF0, 0x80, 0x08, 0x90, 0x81, 0x56, 0xE0, 0x04, - 0xF0, 0x01, 0x11, 0x90, 0x01, 0xC4, 0x74, 0xE9, - 0xF0, 0x74, 0x57, 0xA3, 0xF0, 0x90, 0x81, 0x58, - 0xE0, 0x90, 0x01, 0xC8, 0xF0, 0x90, 0x81, 0x52, - 0xE0, 0x90, 0x01, 0xC9, 0xF0, 0x90, 0x81, 0x53, - 0xE0, 0x90, 0x01, 0xCA, 0xF0, 0xE4, 0xFD, 0x7F, - 0x1F, 0x12, 0x32, 0x1E, 0x80, 0xD5, 0x22, 0x90, - 0x00, 0xF7, 0xE0, 0x20, 0xE7, 0x09, 0xE0, 0x7F, - 0x01, 0x20, 0xE6, 0x0C, 0x7F, 0x02, 0x22, 0x90, - 0x00, 0xF7, 0xE0, 0x30, 0xE6, 0x02, 0x7F, 0x03, - 0x22, 0x11, 0xE7, 0x90, 0x80, 0x3C, 0xEF, 0xF0, - 0x31, 0x13, 0x90, 0x01, 0x64, 0x74, 0x01, 0xF0, - 0x02, 0x2D, 0xA7, 0x31, 0x81, 0x31, 0xB1, 0x31, - 0x40, 0x31, 0x5F, 0xE4, 0xF5, 0x35, 0xF5, 0x36, - 0xF5, 0x37, 0xF5, 0x38, 0xAD, 0x35, 0x7F, 0x50, - 0x12, 0x32, 0x1E, 0xAD, 0x36, 0x7F, 0x51, 0x12, - 0x32, 0x1E, 0xAD, 0x37, 0x7F, 0x52, 0x12, 0x32, - 0x1E, 0xAD, 0x38, 0x7F, 0x53, 0x02, 0x32, 0x1E, - 0x75, 0x3D, 0x10, 0xE4, 0xF5, 0x3E, 0x75, 0x3F, - 0x07, 0x75, 0x40, 0x02, 0x90, 0x01, 0x30, 0xE5, - 0x3D, 0xF0, 0xA3, 0xE5, 0x3E, 0xF0, 0xA3, 0xE5, - 0x3F, 0xF0, 0xA3, 0xE5, 0x40, 0xF0, 0x22, 0x75, - 0x45, 0x0E, 0x75, 0x46, 0x01, 0x43, 0x46, 0x10, - 0x75, 0x47, 0x03, 0x75, 0x48, 0x62, 0x90, 0x01, - 0x38, 0xE5, 0x45, 0xF0, 0xA3, 0xE5, 0x46, 0xF0, - 0xA3, 0xE5, 0x47, 0xF0, 0xA3, 0xE5, 0x48, 0xF0, - 0x22, 0x90, 0x01, 0x30, 0xE4, 0xF0, 0xA3, 0xF0, - 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x01, 0x38, 0xF0, - 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xFD, 0x7F, - 0x50, 0x12, 0x32, 0x1E, 0xE4, 0xFD, 0x7F, 0x51, - 0x12, 0x32, 0x1E, 0xE4, 0xFD, 0x7F, 0x52, 0x12, - 0x32, 0x1E, 0xE4, 0xFD, 0x7F, 0x53, 0x02, 0x32, - 0x1E, 0x90, 0x01, 0x34, 0x74, 0xFF, 0xF0, 0xA3, - 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x01, 0x3C, - 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xFD, - 0x7F, 0x54, 0x12, 0x32, 0x1E, 0x7D, 0xFF, 0x7F, - 0x55, 0x12, 0x32, 0x1E, 0x7D, 0xFF, 0x7F, 0x56, - 0x12, 0x32, 0x1E, 0x7D, 0xFF, 0x7F, 0x57, 0x02, - 0x32, 0x1E, 0x90, 0x00, 0x80, 0xE0, 0x44, 0x80, - 0xFD, 0x7F, 0x80, 0x12, 0x32, 0x1E, 0x90, 0xFD, - 0x00, 0xE0, 0x54, 0xBF, 0xF0, 0x12, 0x57, 0xE9, - 0x51, 0x77, 0x12, 0x32, 0x77, 0x51, 0xC9, 0x51, - 0x5E, 0x7F, 0x01, 0x12, 0x43, 0x15, 0x90, 0x81, - 0x41, 0x74, 0x02, 0xF0, 0xFF, 0x12, 0x43, 0x15, - 0x90, 0x81, 0x41, 0xE0, 0x04, 0xF0, 0x7F, 0x03, - 0x12, 0x43, 0x15, 0x90, 0x81, 0x41, 0xE0, 0x04, - 0xF0, 0x31, 0x01, 0x51, 0x3F, 0x90, 0x00, 0x80, - 0xE0, 0x44, 0x40, 0xFD, 0x7F, 0x80, 0x12, 0x32, - 0x1E, 0x75, 0x20, 0xFF, 0x51, 0x68, 0x51, 0xF9, - 0x51, 0x7F, 0xE4, 0xFF, 0x02, 0x43, 0x9E, 0x51, - 0x62, 0x51, 0x6F, 0x51, 0xA7, 0x71, 0x4F, 0x51, - 0x8A, 0x51, 0x95, 0x90, 0x81, 0x45, 0xE0, 0x54, - 0xFE, 0xF0, 0xA3, 0x74, 0x03, 0xF0, 0xA3, 0xF0, - 0xE4, 0xA3, 0xF0, 0xA3, 0xF0, 0x22, 0xE4, 0xF5, - 0x4D, 0x22, 0xE4, 0x90, 0x80, 0xDE, 0xF0, 0x22, - 0x75, 0xE8, 0x03, 0x75, 0xA8, 0x84, 0x22, 0xE4, - 0x90, 0x80, 0xD8, 0xF0, 0xA3, 0xF0, 0x22, 0x90, - 0x01, 0x94, 0xE0, 0x44, 0x01, 0xF0, 0x22, 0x90, - 0x01, 0xE4, 0x74, 0x0B, 0xF0, 0xA3, 0x74, 0x01, - 0xF0, 0x22, 0x90, 0x81, 0x3F, 0xE0, 0x54, 0xFE, - 0xF0, 0xE4, 0xA3, 0xF0, 0x22, 0x90, 0x81, 0x42, - 0xE0, 0x54, 0xFE, 0xF0, 0x54, 0x7F, 0xF0, 0xA3, - 0x74, 0x0A, 0xF0, 0xE4, 0xA3, 0xF0, 0x22, 0x90, - 0x81, 0x1F, 0xE0, 0x54, 0xFE, 0xF0, 0x54, 0xFD, - 0xF0, 0x54, 0xFB, 0xF0, 0x54, 0xF7, 0xF0, 0x54, - 0xEF, 0xF0, 0x54, 0xDF, 0xF0, 0xE4, 0xA3, 0xF0, - 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0x74, 0x0C, 0xF0, - 0x22, 0x90, 0x01, 0x01, 0xE0, 0x44, 0x04, 0xF0, - 0x90, 0x01, 0x9C, 0x74, 0x7E, 0xF0, 0xA3, 0x74, - 0x92, 0xF0, 0xA3, 0x74, 0xA0, 0xF0, 0xA3, 0x74, - 0x24, 0xF0, 0x90, 0x01, 0x9B, 0x74, 0x49, 0xF0, - 0x90, 0x01, 0x9A, 0x74, 0xE0, 0xF0, 0x90, 0x01, - 0x99, 0xE4, 0xF0, 0x90, 0x01, 0x98, 0x04, 0xF0, - 0x22, 0xE4, 0x90, 0x81, 0x51, 0xF0, 0xA3, 0xF0, - 0x90, 0x01, 0x98, 0xE0, 0x7F, 0x00, 0x30, 0xE4, - 0x02, 0x7F, 0x01, 0xEF, 0x64, 0x01, 0x60, 0x3E, - 0xC3, 0x90, 0x81, 0x52, 0xE0, 0x94, 0x88, 0x90, - 0x81, 0x51, 0xE0, 0x94, 0x13, 0x40, 0x08, 0x90, - 0x01, 0xC1, 0xE0, 0x44, 0x10, 0xF0, 0x22, 0x90, - 0x81, 0x51, 0xE4, 0x75, 0xF0, 0x01, 0x12, 0x44, - 0xA9, 0x7F, 0x14, 0x7E, 0x00, 0x12, 0x32, 0xAA, - 0xD3, 0x90, 0x81, 0x52, 0xE0, 0x94, 0x32, 0x90, - 0x81, 0x51, 0xE0, 0x94, 0x00, 0x40, 0xB9, 0x90, - 0x01, 0xC6, 0xE0, 0x30, 0xE3, 0xB2, 0x22, 0xE4, - 0x90, 0x81, 0x27, 0xF0, 0xA3, 0xF0, 0x90, 0x81, - 0x26, 0xE0, 0x54, 0x0F, 0xF0, 0x54, 0xF0, 0xF0, - 0x90, 0x81, 0x24, 0xE0, 0x54, 0xFD, 0xF0, 0x54, - 0xF7, 0xF0, 0x54, 0xEF, 0xF0, 0x90, 0x81, 0x2D, - 0x74, 0x01, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x24, - 0xE0, 0x54, 0xFB, 0xF0, 0xA3, 0xE0, 0x54, 0xFB, - 0xF0, 0xE4, 0x90, 0x81, 0x30, 0xF0, 0x90, 0x81, - 0x2F, 0x74, 0x07, 0xF0, 0x90, 0x81, 0x32, 0xE4, - 0xF0, 0xA3, 0x74, 0x02, 0xF0, 0xE4, 0x90, 0x81, - 0x2B, 0xF0, 0x90, 0x81, 0x24, 0xE0, 0x54, 0xFE, - 0xF0, 0x90, 0x81, 0x29, 0x74, 0x0C, 0xF0, 0x90, - 0x81, 0x24, 0xE0, 0x54, 0xDF, 0xF0, 0x90, 0x81, - 0x2A, 0x74, 0x0C, 0xF0, 0x90, 0x81, 0x24, 0xE0, - 0x54, 0xBF, 0xF0, 0x54, 0x7F, 0xF0, 0xA3, 0xE0, - 0x54, 0xFE, 0xF0, 0x54, 0xFD, 0xF0, 0x54, 0xF7, - 0xF0, 0x90, 0x81, 0x34, 0x12, 0x20, 0xDA, 0x00, - 0x00, 0x00, 0x00, 0x90, 0x80, 0x3C, 0xE0, 0xB4, - 0x01, 0x08, 0x90, 0x81, 0x31, 0x74, 0x99, 0xF0, - 0x80, 0x12, 0x90, 0x80, 0x3C, 0xE0, 0x90, 0x81, - 0x31, 0xB4, 0x03, 0x05, 0x74, 0x90, 0xF0, 0x80, - 0x03, 0x74, 0x40, 0xF0, 0x90, 0x81, 0x38, 0x74, - 0x01, 0xF0, 0xA3, 0x74, 0x05, 0xF0, 0xA3, 0xE0, - 0x54, 0x01, 0x44, 0x28, 0xF0, 0xA3, 0x74, 0x05, - 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0xE0, 0x54, 0xFD, - 0xF0, 0x54, 0xFB, 0xF0, 0x54, 0xF7, 0xF0, 0x54, - 0xEF, 0xF0, 0x54, 0xDF, 0xF0, 0x54, 0xBF, 0xF0, - 0xE4, 0xA3, 0xF0, 0x22, 0xE4, 0x90, 0x81, 0x59, - 0xF0, 0x90, 0x81, 0x59, 0xE0, 0x64, 0x01, 0xF0, - 0x24, 0x24, 0x90, 0x01, 0xC4, 0xF0, 0x74, 0x5C, - 0xA3, 0xF0, 0x90, 0x81, 0x2A, 0xE0, 0xFF, 0x90, - 0x81, 0x29, 0xE0, 0x6F, 0x60, 0x03, 0x12, 0x47, - 0x2A, 0xD1, 0x08, 0xBF, 0x01, 0x02, 0x91, 0x5F, - 0xB1, 0xF2, 0x12, 0x32, 0x9E, 0xBF, 0x01, 0x02, - 0xB1, 0x67, 0x12, 0x42, 0x4D, 0x80, 0xCA, 0xD3, - 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x81, - 0x24, 0xE0, 0x30, 0xE0, 0x24, 0x90, 0x81, 0x1F, - 0xE0, 0xFF, 0x30, 0xE0, 0x1A, 0xC3, 0x13, 0x30, - 0xE0, 0x07, 0xB1, 0xFB, 0xBF, 0x01, 0x12, 0x80, - 0x0A, 0x90, 0x81, 0x23, 0xE0, 0xFF, 0x60, 0x03, - 0xB4, 0x08, 0x06, 0x91, 0x96, 0x80, 0x02, 0x91, - 0xA6, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0xD3, 0x10, - 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0xB1, 0x22, 0x91, - 0xBA, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0x90, 0x81, - 0x2A, 0xE0, 0x70, 0x0D, 0xD1, 0x2F, 0xBF, 0x01, - 0x08, 0x91, 0x96, 0x90, 0x01, 0xE5, 0xE0, 0x04, - 0xF0, 0x22, 0xB1, 0xF3, 0x90, 0x00, 0x08, 0xE0, - 0x54, 0xEF, 0xFD, 0x7F, 0x08, 0x12, 0x32, 0x1E, - 0xE4, 0xFF, 0x8F, 0x50, 0xE4, 0x90, 0x81, 0x5A, - 0xF0, 0xA3, 0xF0, 0x90, 0x01, 0x09, 0xE0, 0x7F, - 0x00, 0x30, 0xE7, 0x02, 0x7F, 0x01, 0xEF, 0x65, - 0x50, 0x60, 0x3E, 0xC3, 0x90, 0x81, 0x5B, 0xE0, - 0x94, 0x88, 0x90, 0x81, 0x5A, 0xE0, 0x94, 0x13, - 0x40, 0x08, 0x90, 0x01, 0xC0, 0xE0, 0x44, 0x10, - 0xF0, 0x22, 0x90, 0x81, 0x5A, 0xE4, 0x75, 0xF0, - 0x01, 0x12, 0x44, 0xA9, 0x7F, 0x14, 0x7E, 0x00, - 0x12, 0x32, 0xAA, 0xD3, 0x90, 0x81, 0x5B, 0xE0, - 0x94, 0x32, 0x90, 0x81, 0x5A, 0xE0, 0x94, 0x00, - 0x40, 0xB9, 0x90, 0x01, 0xC6, 0xE0, 0x30, 0xE0, - 0xB2, 0x22, 0x90, 0x81, 0x31, 0xE0, 0xFD, 0x7F, - 0x93, 0x12, 0x32, 0x1E, 0x90, 0x81, 0x28, 0xE0, - 0x60, 0x12, 0x90, 0x01, 0x2F, 0xE0, 0x30, 0xE7, - 0x05, 0x74, 0x10, 0xF0, 0x80, 0x06, 0x90, 0x01, - 0x2F, 0x74, 0x90, 0xF0, 0x90, 0x00, 0x08, 0xE0, - 0x44, 0x10, 0xFD, 0x7F, 0x08, 0x12, 0x32, 0x1E, - 0x7F, 0x01, 0x91, 0xCA, 0x90, 0x00, 0x90, 0xE0, - 0x44, 0x01, 0xFD, 0x7F, 0x90, 0x12, 0x32, 0x1E, - 0x7F, 0x14, 0x7E, 0x00, 0x02, 0x32, 0xAA, 0xD3, - 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x12, 0x2D, - 0xA7, 0xE4, 0xF5, 0x52, 0x12, 0x32, 0x9E, 0xEF, - 0x60, 0x73, 0x63, 0x52, 0x01, 0xE5, 0x52, 0x24, - 0x67, 0x90, 0x01, 0xC4, 0xF0, 0x74, 0x5D, 0xA3, - 0xF0, 0x90, 0x00, 0x88, 0xE0, 0xF5, 0x50, 0xF5, - 0x51, 0x54, 0x0F, 0x60, 0xDF, 0xE5, 0x50, 0x30, - 0xE0, 0x0B, 0x20, 0xE4, 0x03, 0x12, 0x29, 0xC5, - 0x53, 0x51, 0xEE, 0x80, 0x3F, 0xE5, 0x50, 0x30, - 0xE1, 0x16, 0x20, 0xE5, 0x0E, 0x12, 0x11, 0xBD, - 0xEF, 0x70, 0x03, 0x43, 0x51, 0x20, 0x90, 0x01, - 0x06, 0xE4, 0xF0, 0x53, 0x51, 0xFD, 0x80, 0x24, - 0xE5, 0x50, 0x30, 0xE2, 0x0B, 0x20, 0xE6, 0x03, - 0x12, 0x67, 0x06, 0x53, 0x51, 0xFB, 0x80, 0x14, - 0xE5, 0x50, 0x30, 0xE3, 0x0F, 0x20, 0xE7, 0x09, - 0x12, 0x61, 0x6E, 0xEF, 0x70, 0x03, 0x43, 0x51, - 0x80, 0x53, 0x51, 0xF7, 0xAD, 0x51, 0x7F, 0x88, - 0x12, 0x32, 0x1E, 0x80, 0x87, 0xD0, 0xD0, 0x92, - 0xAF, 0x22, 0x22, 0x90, 0x00, 0x90, 0xE0, 0x20, - 0xE0, 0xF9, 0x22, 0x90, 0x81, 0x22, 0xE0, 0x64, - 0x02, 0x7F, 0x01, 0x60, 0x02, 0x7F, 0x00, 0x22, - 0x7F, 0x02, 0x90, 0x81, 0x41, 0xE0, 0xFE, 0xEF, - 0xC3, 0x9E, 0x50, 0x18, 0xEF, 0x25, 0xE0, 0x24, - 0x81, 0xF8, 0xE6, 0x30, 0xE4, 0x0B, 0x90, 0x01, - 0xB8, 0x74, 0x08, 0xF0, 0xA3, 0xF0, 0x7F, 0x00, - 0x22, 0x0F, 0x80, 0xDE, 0x7F, 0x01, 0x22, 0x90, - 0x02, 0x87, 0xE0, 0x60, 0x08, 0x90, 0x01, 0xB8, - 0x74, 0x01, 0xF0, 0x80, 0x17, 0x90, 0x02, 0x86, - 0xE0, 0x20, 0xE1, 0x08, 0x90, 0x01, 0xB8, 0x74, - 0x04, 0xF0, 0x80, 0x08, 0x90, 0x01, 0xB8, 0xE4, - 0xF0, 0x7F, 0x01, 0x22, 0x90, 0x01, 0xB9, 0x74, - 0x08, 0xF0, 0x7F, 0x00, 0x22, 0xE4, 0xFB, 0xFA, - 0xFD, 0x7F, 0x01, 0x12, 0x44, 0x4E, 0x90, 0x81, - 0xBD, 0xEF, 0xF0, 0x60, 0xF0, 0xD1, 0x71, 0x80, - 0xEC, 0xD3, 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, - 0x90, 0x01, 0xCC, 0xE0, 0x54, 0x0F, 0x90, 0x81, - 0xBE, 0xF0, 0x90, 0x81, 0xBE, 0xE0, 0xFD, 0x70, - 0x02, 0xE1, 0x9C, 0x90, 0x82, 0x09, 0xE0, 0xFF, - 0x74, 0x01, 0x7E, 0x00, 0xA8, 0x07, 0x08, 0x80, - 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, - 0xFF, 0xEF, 0x5D, 0x70, 0x02, 0xE1, 0x95, 0x90, - 0x82, 0x09, 0xE0, 0x75, 0xF0, 0x04, 0x90, 0x01, - 0xD0, 0x12, 0x45, 0x0A, 0xE0, 0x90, 0x81, 0xBF, - 0xF0, 0x75, 0x13, 0x01, 0x75, 0x14, 0x81, 0x75, - 0x15, 0xBF, 0x75, 0x16, 0x01, 0x7B, 0x01, 0x7A, - 0x81, 0x79, 0xC0, 0x12, 0x2B, 0xED, 0x90, 0x82, - 0x09, 0xE0, 0x75, 0xF0, 0x04, 0x90, 0x01, 0xD1, - 0x12, 0x45, 0x0A, 0xE0, 0x90, 0x81, 0xC1, 0xF0, - 0x90, 0x82, 0x09, 0xE0, 0x75, 0xF0, 0x04, 0x90, - 0x01, 0xD2, 0x12, 0x45, 0x0A, 0xE0, 0x90, 0x81, - 0xC2, 0xF0, 0x90, 0x82, 0x09, 0xE0, 0x75, 0xF0, - 0x04, 0x90, 0x01, 0xD3, 0x12, 0x45, 0x0A, 0xE0, - 0x90, 0x81, 0xC3, 0xF0, 0x90, 0x82, 0x09, 0xE0, - 0x75, 0xF0, 0x04, 0x90, 0x01, 0xF0, 0x12, 0x45, - 0x0A, 0xE0, 0x90, 0x81, 0xC4, 0xF0, 0x90, 0x82, - 0x09, 0xE0, 0x75, 0xF0, 0x04, 0x90, 0x01, 0xF1, - 0x12, 0x45, 0x0A, 0xE0, 0x90, 0x81, 0xC5, 0xF0, - 0x90, 0x82, 0x09, 0xE0, 0x75, 0xF0, 0x04, 0x90, - 0x01, 0xF2, 0x12, 0x45, 0x0A, 0xE0, 0x90, 0x81, - 0xC6, 0xF0, 0x90, 0x82, 0x09, 0xE0, 0x75, 0xF0, - 0x04, 0x90, 0x01, 0xF3, 0x12, 0x45, 0x0A, 0xE0, - 0x90, 0x81, 0xC7, 0xF0, 0x90, 0x81, 0xBE, 0xE0, - 0xFF, 0x90, 0x82, 0x09, 0xE0, 0xFE, 0x74, 0x01, - 0xA8, 0x06, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, - 0xFC, 0xF4, 0x5F, 0x90, 0x81, 0xBE, 0xF0, 0x90, - 0x82, 0x09, 0xE0, 0xFF, 0x74, 0x01, 0xA8, 0x07, - 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, 0xFC, 0x90, - 0x01, 0xCC, 0xF0, 0x90, 0x81, 0xC0, 0xE0, 0xFF, - 0x7B, 0x01, 0x7A, 0x81, 0x79, 0xC1, 0x12, 0x55, - 0x3F, 0x90, 0x82, 0x09, 0xE0, 0x04, 0xF0, 0xE0, - 0x54, 0x03, 0xF0, 0xC1, 0x82, 0x90, 0x01, 0xC0, - 0xE0, 0x44, 0x02, 0xF0, 0xD0, 0xD0, 0x92, 0xAF, - 0x22, 0xE4, 0xFB, 0xFA, 0xFD, 0x7F, 0x01, 0x12, - 0x44, 0x4E, 0x90, 0x81, 0xD0, 0xEF, 0xF0, 0x60, - 0xF0, 0x12, 0x6C, 0x19, 0x80, 0xEB, 0x90, 0x81, - 0xD4, 0xEF, 0xF0, 0xA3, 0xED, 0xF0, 0xA3, 0x12, - 0x20, 0xDA, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x90, - 0x81, 0xE2, 0xF0, 0x7F, 0x24, 0x7E, 0x08, 0x12, - 0x2D, 0x5C, 0x90, 0x81, 0xDA, 0x12, 0x20, 0xCE, - 0x90, 0x81, 0xD4, 0xE0, 0xFB, 0x70, 0x08, 0x90, - 0x81, 0xDA, 0x12, 0x44, 0xD9, 0x80, 0x16, 0xEB, - 0x75, 0xF0, 0x08, 0xA4, 0x24, 0x62, 0xF5, 0x82, - 0xE4, 0x34, 0x87, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, - 0xE0, 0xFF, 0x12, 0x2D, 0x5C, 0x90, 0x81, 0xDE, - 0x12, 0x20, 0xCE, 0x90, 0x81, 0xD5, 0xE0, 0xFF, - 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x17, 0x12, 0x20, - 0xBB, 0xA8, 0x04, 0xA9, 0x05, 0xAA, 0x06, 0xAB, - 0x07, 0x90, 0x81, 0xDE, 0x12, 0x44, 0xD9, 0xED, - 0x54, 0x7F, 0xFD, 0xEC, 0x54, 0x80, 0xFC, 0x12, - 0x44, 0xCC, 0xEC, 0x44, 0x80, 0xFC, 0x90, 0x81, - 0xDE, 0x12, 0x20, 0xCE, 0x90, 0x81, 0xDA, 0x12, - 0x44, 0xD9, 0xEC, 0x54, 0x7F, 0xFC, 0x90, 0x85, - 0xBB, 0x12, 0x20, 0xCE, 0x7F, 0x24, 0x7E, 0x08, - 0x12, 0x2E, 0xA2, 0x90, 0x81, 0xD4, 0xE0, 0x75, - 0xF0, 0x08, 0xA4, 0x24, 0x62, 0xF5, 0x82, 0xE4, - 0x34, 0x87, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, - 0xFF, 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x81, 0xDE, - 0x12, 0x44, 0xD9, 0x90, 0x85, 0xBB, 0x12, 0x20, - 0xCE, 0xD0, 0x07, 0xD0, 0x06, 0x12, 0x2E, 0xA2, - 0x90, 0x81, 0xDA, 0x12, 0x44, 0xD9, 0xEC, 0x44, - 0x80, 0xFC, 0x90, 0x85, 0xBB, 0x12, 0x20, 0xCE, - 0x7F, 0x24, 0x7E, 0x08, 0x12, 0x2E, 0xA2, 0x90, - 0x81, 0xD4, 0xE0, 0x70, 0x04, 0x7F, 0x20, 0x80, - 0x09, 0x90, 0x81, 0xD4, 0xE0, 0xB4, 0x01, 0x16, - 0x7F, 0x28, 0x7E, 0x08, 0x12, 0x2D, 0x5C, 0x78, - 0x08, 0x12, 0x20, 0xA8, 0xEF, 0x54, 0x01, 0xFF, - 0xE4, 0x90, 0x81, 0xE2, 0xEF, 0xF0, 0x90, 0x81, - 0xE2, 0xE0, 0x90, 0x81, 0xD4, 0x60, 0x0E, 0xE0, - 0x75, 0xF0, 0x08, 0xA4, 0x24, 0x66, 0xF5, 0x82, - 0xE4, 0x34, 0x87, 0x80, 0x0C, 0xE0, 0x75, 0xF0, - 0x08, 0xA4, 0x24, 0x64, 0xF5, 0x82, 0xE4, 0x34, - 0x87, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, - 0x12, 0x2D, 0x5C, 0xED, 0x54, 0x0F, 0xFD, 0xE4, - 0xFC, 0x90, 0x81, 0xD6, 0x12, 0x20, 0xCE, 0x90, - 0x81, 0xD6, 0x02, 0x44, 0xD9, 0x90, 0x81, 0xE3, - 0xEF, 0xF0, 0xAB, 0x05, 0x90, 0x81, 0xE9, 0x12, - 0x20, 0xDA, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x03, - 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x14, 0x12, 0x20, - 0xBB, 0xA8, 0x04, 0xA9, 0x05, 0xAA, 0x06, 0xAB, - 0x07, 0x90, 0x81, 0xE5, 0x12, 0x44, 0xD9, 0xED, - 0x54, 0x0F, 0xFD, 0xE4, 0xFC, 0x12, 0x44, 0xCC, - 0xEC, 0x54, 0x0F, 0xFC, 0x90, 0x81, 0xE9, 0x12, - 0x20, 0xCE, 0x90, 0x81, 0xE3, 0xE0, 0x75, 0xF0, - 0x08, 0xA4, 0x24, 0x60, 0xF5, 0x82, 0xE4, 0x34, - 0x87, 0xF5, 0x83, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, - 0xC0, 0x06, 0xC0, 0x07, 0x90, 0x81, 0xE9, 0x12, - 0x44, 0xD9, 0x90, 0x85, 0xBB, 0x12, 0x20, 0xCE, - 0xD0, 0x07, 0xD0, 0x06, 0x02, 0x2E, 0xA2, 0xD3, - 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x12, 0x5F, - 0xB6, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0x78, 0x10, - 0x74, 0x01, 0xF2, 0x90, 0x02, 0x09, 0xE0, 0x78, - 0x00, 0xF2, 0x08, 0x74, 0x20, 0xF2, 0x18, 0xE2, - 0xFF, 0x30, 0xE0, 0x05, 0x08, 0xE2, 0x24, 0x80, - 0xF2, 0xEF, 0xC3, 0x13, 0x90, 0xFD, 0x10, 0xF0, - 0x78, 0x01, 0xE2, 0x24, 0x00, 0xF5, 0x82, 0xE4, - 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x78, 0x03, 0xF2, - 0x64, 0x04, 0x60, 0x0D, 0xE2, 0xFF, 0x64, 0x08, - 0x60, 0x07, 0xEF, 0x64, 0x0C, 0x60, 0x02, 0x61, - 0xDE, 0xE4, 0x78, 0x02, 0xF2, 0x78, 0x03, 0xE2, - 0xFF, 0x18, 0xE2, 0xC3, 0x9F, 0x50, 0x2D, 0xE2, - 0xFD, 0x18, 0xE2, 0x2D, 0x90, 0x81, 0x5A, 0xF0, - 0xE0, 0xFF, 0x24, 0x00, 0xF5, 0x82, 0xE4, 0x34, - 0xFC, 0xF5, 0x83, 0xE0, 0xFE, 0x74, 0x04, 0x2D, - 0xF8, 0xEE, 0xF2, 0xEF, 0xB4, 0xFF, 0x06, 0x90, - 0xFD, 0x10, 0xE0, 0x04, 0xF0, 0x78, 0x02, 0xE2, - 0x04, 0xF2, 0x80, 0xC9, 0x78, 0x04, 0xE2, 0x78, - 0x12, 0xF2, 0xFF, 0x78, 0x05, 0xE2, 0x78, 0x11, - 0xF2, 0x78, 0x06, 0xE2, 0x78, 0x13, 0xF2, 0x78, - 0x07, 0xE2, 0x78, 0x14, 0xF2, 0x78, 0x08, 0xE2, - 0x78, 0x33, 0xF2, 0x78, 0x09, 0xE2, 0x78, 0x34, - 0xF2, 0x78, 0x0A, 0xE2, 0x78, 0x35, 0xF2, 0x78, - 0x0B, 0xE2, 0x78, 0x36, 0xF2, 0x78, 0x0C, 0xE2, - 0x78, 0x37, 0xF2, 0x78, 0x0D, 0xE2, 0x78, 0x38, - 0xF2, 0x78, 0x0E, 0xE2, 0x78, 0x39, 0xF2, 0x78, - 0x0F, 0xE2, 0x78, 0x3A, 0xF2, 0xE4, 0x78, 0x15, - 0xF2, 0xEF, 0x24, 0xF8, 0x60, 0x75, 0x24, 0xFC, - 0x60, 0x6C, 0x24, 0x08, 0x60, 0x02, 0x61, 0xC0, - 0x78, 0x11, 0xE2, 0xB4, 0x01, 0x05, 0x12, 0x29, - 0xC5, 0x61, 0xC5, 0x78, 0x11, 0xE2, 0xB4, 0x02, - 0x05, 0x12, 0x11, 0xBD, 0x61, 0xC5, 0x78, 0x11, - 0xE2, 0xB4, 0x03, 0x04, 0xF1, 0x06, 0x61, 0xC5, - 0x78, 0x11, 0xE2, 0xB4, 0x10, 0x17, 0x78, 0x14, - 0xE2, 0xFE, 0x18, 0xE2, 0xFD, 0xED, 0xFF, 0x78, - 0x16, 0xEE, 0xF2, 0xFE, 0x08, 0xEF, 0xF2, 0xFF, - 0x12, 0x32, 0xAA, 0x61, 0xC5, 0x78, 0x11, 0xE2, - 0xB4, 0x11, 0x17, 0x78, 0x14, 0xE2, 0xFE, 0x18, - 0xE2, 0xFD, 0xED, 0xFF, 0x78, 0x16, 0xEE, 0xF2, - 0xFE, 0x08, 0xEF, 0xF2, 0xFF, 0x12, 0x32, 0x06, - 0x61, 0xC5, 0x78, 0x11, 0xE2, 0xF4, 0x60, 0x02, - 0x61, 0xC5, 0x18, 0xF2, 0x61, 0xC5, 0x78, 0x15, - 0x74, 0x01, 0xF2, 0x78, 0x11, 0xE2, 0x64, 0x07, - 0x60, 0x02, 0x61, 0xAA, 0x78, 0x34, 0xE2, 0xFF, - 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x08, 0x12, 0x20, - 0xBB, 0xC0, 0x04, 0xA9, 0x05, 0xAA, 0x06, 0xAB, - 0x07, 0x78, 0x33, 0xE2, 0xFF, 0xE4, 0xFC, 0xFD, - 0xFE, 0xD0, 0x00, 0x12, 0x44, 0xCC, 0xC0, 0x04, - 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0x78, 0x35, - 0xE2, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x10, - 0x12, 0x20, 0xBB, 0xD0, 0x03, 0xD0, 0x02, 0xD0, - 0x01, 0xD0, 0x00, 0x12, 0x44, 0xCC, 0x78, 0x18, - 0x12, 0x44, 0xFE, 0x78, 0x15, 0xE2, 0x70, 0x02, - 0x61, 0x93, 0x18, 0xE2, 0xFF, 0x18, 0xE2, 0xFD, - 0x31, 0x5F, 0x78, 0x1C, 0x12, 0x44, 0xFE, 0x78, - 0x38, 0xE2, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x78, - 0x08, 0x12, 0x20, 0xBB, 0xC0, 0x04, 0xA9, 0x05, - 0xAA, 0x06, 0xAB, 0x07, 0x78, 0x37, 0xE2, 0xFF, - 0xE4, 0xFC, 0xFD, 0xFE, 0xD0, 0x00, 0x12, 0x44, - 0xCC, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, - 0x07, 0x78, 0x39, 0xE2, 0xFF, 0xE4, 0xFC, 0xFD, - 0xFE, 0x78, 0x10, 0x12, 0x20, 0xBB, 0xD0, 0x03, - 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00, 0x12, 0x44, - 0xCC, 0x78, 0x20, 0x12, 0x44, 0xFE, 0x78, 0x20, - 0x12, 0x44, 0xE5, 0x12, 0x20, 0x9B, 0x78, 0x1C, - 0x12, 0x44, 0xF1, 0x12, 0x44, 0xBF, 0xC0, 0x04, - 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0x78, 0x18, - 0x12, 0x44, 0xE5, 0x78, 0x20, 0x12, 0x44, 0xF1, - 0x12, 0x44, 0xBF, 0xD0, 0x03, 0xD0, 0x02, 0xD0, - 0x01, 0xD0, 0x00, 0x12, 0x44, 0xCC, 0x78, 0x18, - 0x12, 0x44, 0xFE, 0x78, 0x18, 0x12, 0x44, 0xE5, - 0x90, 0x81, 0xF9, 0x12, 0x20, 0xCE, 0x78, 0x13, - 0xE2, 0xFD, 0x08, 0xE2, 0xFF, 0x12, 0x55, 0x1C, - 0x80, 0x1B, 0x78, 0x13, 0xE2, 0xFF, 0x08, 0xE2, - 0xFD, 0x78, 0x11, 0xE2, 0xFB, 0x78, 0x15, 0xE2, - 0x90, 0x81, 0xBC, 0xF0, 0x71, 0xE1, 0x80, 0x05, - 0x78, 0x10, 0x74, 0x02, 0xF2, 0x78, 0x10, 0xE2, - 0xFF, 0xC3, 0x94, 0x02, 0x50, 0x10, 0xEF, 0x60, - 0x0A, 0x78, 0x02, 0xE2, 0xFF, 0x18, 0xE2, 0x2F, - 0xF2, 0x21, 0x90, 0x7F, 0x01, 0x22, 0x7F, 0x00, - 0x22, 0xAC, 0x07, 0xED, 0xAD, 0x04, 0x78, 0x24, - 0xF2, 0xED, 0x08, 0xF2, 0xEB, 0xB4, 0x04, 0x07, - 0x78, 0x27, 0x74, 0x01, 0xF2, 0x80, 0x0E, 0xEB, - 0x78, 0x27, 0xB4, 0x05, 0x05, 0x74, 0x02, 0xF2, - 0x80, 0x03, 0x74, 0x04, 0xF2, 0xD3, 0x78, 0x25, - 0xE2, 0x94, 0xFF, 0x18, 0xE2, 0x94, 0x00, 0x50, - 0x63, 0xE4, 0x78, 0x26, 0xF2, 0x78, 0x27, 0xE2, - 0xFF, 0x18, 0xE2, 0xFE, 0xC3, 0x9F, 0x40, 0x02, - 0xA1, 0x7F, 0x74, 0x33, 0x2E, 0xF8, 0xE2, 0x78, - 0x28, 0xF2, 0x90, 0x81, 0xBC, 0xE0, 0x60, 0x2D, - 0x74, 0x37, 0x2E, 0xF8, 0xE2, 0x78, 0x32, 0xF2, - 0xEE, 0xFF, 0x78, 0x25, 0xE2, 0x2F, 0xFF, 0x18, - 0xE2, 0x34, 0x00, 0x8F, 0x82, 0xF5, 0x83, 0xE0, - 0x78, 0x29, 0xF2, 0x78, 0x32, 0xE2, 0xFF, 0xF4, - 0xFE, 0x78, 0x29, 0xE2, 0x5E, 0xFE, 0x18, 0xE2, - 0xFD, 0xEF, 0x5D, 0x4E, 0xF2, 0x78, 0x24, 0x08, - 0xE2, 0xFF, 0x08, 0xE2, 0x2F, 0xFF, 0x78, 0x28, - 0xE2, 0xFD, 0x12, 0x32, 0x1E, 0x78, 0x26, 0xE2, - 0x04, 0xF2, 0x80, 0xA1, 0xD3, 0x78, 0x25, 0xE2, - 0x94, 0xFF, 0x18, 0xE2, 0x94, 0x07, 0x50, 0x69, - 0xE4, 0x78, 0x26, 0xF2, 0x78, 0x27, 0xE2, 0xFF, - 0x18, 0xE2, 0xFE, 0xC3, 0x9F, 0x40, 0x02, 0xA1, - 0x7F, 0x74, 0x33, 0x2E, 0xF8, 0xE2, 0x78, 0x28, - 0xF2, 0x90, 0x81, 0xBC, 0xE0, 0x60, 0x2D, 0x78, - 0x26, 0xE2, 0xFF, 0xFD, 0x18, 0xE2, 0x2D, 0xFD, - 0x18, 0xE2, 0x34, 0x00, 0x8D, 0x82, 0xF5, 0x83, - 0xE0, 0x78, 0x29, 0xF2, 0x74, 0x37, 0x2F, 0xF8, - 0xE2, 0x78, 0x32, 0xF2, 0xE2, 0xFF, 0xF4, 0xFE, - 0x78, 0x29, 0xE2, 0x5E, 0xFE, 0x18, 0xE2, 0xFD, - 0xEF, 0x5D, 0x4E, 0xF2, 0x78, 0x28, 0xE2, 0xFF, - 0x78, 0x26, 0xE2, 0xFD, 0x18, 0xE2, 0x2D, 0xFD, - 0x18, 0xE2, 0x34, 0x00, 0x8D, 0x82, 0xF5, 0x83, - 0xEF, 0xF0, 0x78, 0x26, 0xE2, 0x04, 0xF2, 0x80, - 0x9B, 0x90, 0x81, 0xBC, 0xE0, 0x60, 0x0F, 0x78, - 0x24, 0xE2, 0xFE, 0x08, 0xE2, 0xFF, 0x12, 0x2D, - 0x5C, 0x78, 0x2E, 0x12, 0x44, 0xFE, 0xE4, 0x78, - 0x26, 0xF2, 0x78, 0x27, 0xE2, 0xFF, 0x18, 0xE2, - 0xFE, 0xC3, 0x9F, 0x50, 0x5D, 0x74, 0x33, 0x2E, - 0xF8, 0xE2, 0x78, 0x28, 0xF2, 0x90, 0x81, 0xBC, - 0xE0, 0x60, 0x2B, 0x78, 0x2E, 0x12, 0x44, 0xE5, - 0x78, 0x26, 0xE2, 0xFB, 0x75, 0xF0, 0x08, 0xA4, - 0xF9, 0xF8, 0x12, 0x20, 0xA8, 0x78, 0x29, 0xEF, - 0xF2, 0x74, 0x37, 0x2B, 0xF8, 0xE2, 0x78, 0x32, - 0xF2, 0xE2, 0xFE, 0xF4, 0x5F, 0xFF, 0x78, 0x28, - 0xE2, 0xFD, 0xEE, 0x5D, 0x4F, 0xF2, 0x78, 0x28, - 0xE2, 0xFF, 0x78, 0x26, 0xE2, 0xFD, 0xC3, 0x74, - 0x03, 0x9D, 0xFD, 0xE4, 0x94, 0x00, 0xFC, 0x7B, - 0xFE, 0x74, 0x2A, 0x2D, 0xF9, 0x74, 0x80, 0x3C, - 0xFA, 0xEF, 0x12, 0x1F, 0xEA, 0xE2, 0x04, 0xF2, - 0x80, 0x98, 0x78, 0x2A, 0x12, 0x44, 0xE5, 0x90, - 0x85, 0xBB, 0x12, 0x20, 0xCE, 0x78, 0x24, 0xE2, - 0xFE, 0x08, 0xE2, 0xFF, 0x12, 0x2E, 0xA2, 0x22, - 0x22, 0x90, 0x81, 0xCB, 0x12, 0x45, 0x1F, 0x90, - 0x00, 0x01, 0x12, 0x1F, 0xBD, 0xFF, 0xFE, 0x12, - 0x1F, 0xA4, 0xFD, 0xC3, 0x13, 0x30, 0xE0, 0x12, - 0x90, 0x81, 0xCB, 0x12, 0x45, 0x16, 0x90, 0x00, - 0x02, 0x12, 0x1F, 0xBD, 0x90, 0x81, 0xCF, 0xF0, - 0x80, 0x05, 0x90, 0x81, 0xCF, 0xEF, 0xF0, 0x90, - 0x81, 0xCE, 0xEE, 0xF0, 0x90, 0x81, 0xCF, 0xE0, - 0xFE, 0x90, 0x81, 0xCE, 0xE0, 0xFF, 0xD3, 0x9E, - 0x50, 0x38, 0x90, 0x81, 0xCB, 0x12, 0x45, 0x16, - 0x12, 0x1F, 0xA4, 0x54, 0x01, 0xFE, 0x74, 0xDE, - 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, - 0xEE, 0xF0, 0x74, 0xDE, 0x2F, 0xF5, 0x82, 0xE4, - 0x34, 0x80, 0xF5, 0x83, 0xE0, 0x70, 0x04, 0xD1, - 0x25, 0x80, 0x07, 0x90, 0x81, 0xCE, 0xE0, 0xFF, - 0xB1, 0x80, 0x90, 0x81, 0xCE, 0xE0, 0x04, 0xF0, - 0x80, 0xBA, 0x90, 0x80, 0xDE, 0xE0, 0x70, 0x24, - 0x90, 0x81, 0x2A, 0xE0, 0x70, 0x04, 0xFF, 0x12, - 0x49, 0x93, 0x90, 0x81, 0x2A, 0xE0, 0x64, 0x0C, - 0x60, 0x02, 0xD1, 0x26, 0x90, 0x81, 0x24, 0xE0, - 0x54, 0xF7, 0xF0, 0x54, 0xEF, 0xF0, 0x54, 0xBF, - 0xF0, 0x54, 0x7F, 0xF0, 0x22, 0x22, 0x90, 0x06, - 0x04, 0xE0, 0x54, 0x7F, 0xF0, 0x90, 0x05, 0x22, - 0xE4, 0xF0, 0x90, 0x81, 0x2A, 0x74, 0x0C, 0xF0, - 0x22, 0x90, 0x81, 0xED, 0xEF, 0xF0, 0xA3, 0xED, - 0xF0, 0xAD, 0x03, 0xAC, 0x02, 0xE4, 0x90, 0x81, - 0xF5, 0xF0, 0xA3, 0xF0, 0x90, 0x01, 0xC4, 0x74, - 0x39, 0xF0, 0x74, 0x66, 0xA3, 0xF0, 0xEC, 0x54, - 0x3F, 0xFC, 0x90, 0x01, 0x40, 0xED, 0xF0, 0xAE, - 0x04, 0xEE, 0xA3, 0xF0, 0x90, 0x81, 0xED, 0xE0, - 0x24, 0x81, 0x60, 0x34, 0x24, 0xDA, 0x60, 0x1C, - 0x24, 0x3C, 0x70, 0x41, 0x90, 0x81, 0xEE, 0xE0, - 0xC4, 0x33, 0x33, 0x33, 0x54, 0x80, 0x90, 0x81, - 0xF2, 0xF0, 0xA3, 0x74, 0x69, 0xF0, 0xA3, 0x74, - 0x80, 0xF0, 0x80, 0x2C, 0x90, 0x81, 0xEE, 0xE0, - 0x54, 0x01, 0x90, 0x81, 0xF2, 0xF0, 0xA3, 0x74, - 0xA5, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0x80, 0x18, - 0x90, 0x81, 0xEE, 0xE0, 0xC4, 0x54, 0x10, 0x90, - 0x81, 0xF2, 0xF0, 0xA3, 0x74, 0x7F, 0xF0, 0xA3, - 0x74, 0x10, 0xF0, 0x80, 0x03, 0x7F, 0x00, 0x22, - 0x90, 0x81, 0xF3, 0xE0, 0x90, 0x01, 0x06, 0xF0, - 0x90, 0x81, 0xF2, 0xE0, 0x60, 0x0E, 0x90, 0x01, - 0x42, 0xF0, 0x90, 0x81, 0xF1, 0xE0, 0x90, 0x01, - 0x43, 0xF0, 0x80, 0x0D, 0x90, 0x01, 0x43, 0xE4, - 0xF0, 0x90, 0x81, 0xF2, 0xE0, 0x90, 0x01, 0x42, - 0xF0, 0x90, 0x81, 0xF4, 0xE0, 0xFF, 0x90, 0x01, - 0x42, 0xE0, 0x5F, 0xFF, 0x90, 0x81, 0xF2, 0xE0, - 0x6F, 0x60, 0xEE, 0x74, 0x39, 0x04, 0x90, 0x01, - 0xC4, 0xF0, 0x74, 0x66, 0xA3, 0xF0, 0x90, 0x01, - 0x43, 0xE4, 0xF0, 0x7F, 0x01, 0x22, 0xE4, 0x90, - 0x81, 0x6A, 0xF0, 0x90, 0x87, 0x5F, 0xE0, 0x90, - 0x81, 0x69, 0xF0, 0xE4, 0x90, 0x81, 0x76, 0xF0, - 0x90, 0x81, 0x66, 0xF0, 0x90, 0x81, 0x66, 0xE0, - 0xFF, 0xC3, 0x94, 0x40, 0x50, 0x15, 0x74, 0x79, - 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, - 0x74, 0xFF, 0xF0, 0x90, 0x81, 0x66, 0xE0, 0x04, - 0xF0, 0x80, 0xE1, 0xE4, 0x90, 0x81, 0x66, 0xF0, - 0x90, 0x81, 0x69, 0xE0, 0xFF, 0x90, 0x81, 0x66, - 0xE0, 0xFE, 0xC3, 0x9F, 0x40, 0x03, 0x02, 0x68, - 0x12, 0x74, 0xDF, 0x2E, 0xF9, 0xE4, 0x34, 0x86, - 0x75, 0x13, 0x01, 0xF5, 0x14, 0x89, 0x15, 0x75, - 0x16, 0x0A, 0x7B, 0x01, 0x7A, 0x81, 0x79, 0x5B, - 0x12, 0x2B, 0xED, 0x90, 0x81, 0x5C, 0xE0, 0xFF, - 0x12, 0x2F, 0x27, 0xEF, 0x04, 0x90, 0x81, 0x76, - 0xF0, 0x90, 0x81, 0x5B, 0xE0, 0xFF, 0xA3, 0xE0, - 0xFD, 0x12, 0x31, 0xEA, 0xEF, 0x24, 0xC8, 0x90, - 0x81, 0x78, 0xF0, 0x75, 0xF0, 0x08, 0xA4, 0xF0, - 0x90, 0x81, 0x5C, 0xE0, 0x54, 0x0F, 0x90, 0x81, - 0x77, 0xF0, 0xE4, 0x90, 0x81, 0x65, 0xF0, 0x90, - 0x81, 0x67, 0xF0, 0x90, 0x81, 0x67, 0xE0, 0xFF, - 0xC3, 0x94, 0x04, 0x50, 0x57, 0x90, 0x81, 0x77, - 0xE0, 0xFE, 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, - 0x13, 0xD8, 0xFC, 0x20, 0xE0, 0x3E, 0x90, 0x81, - 0x67, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x81, 0x78, - 0xE0, 0x2F, 0x24, 0x79, 0xF9, 0xE4, 0x34, 0x81, - 0xFA, 0x7B, 0x01, 0xC0, 0x03, 0xC0, 0x01, 0x90, - 0x81, 0x65, 0xE0, 0x75, 0xF0, 0x02, 0xA4, 0x24, - 0x5D, 0xF9, 0x74, 0x81, 0x35, 0xF0, 0x8B, 0x13, - 0xF5, 0x14, 0x89, 0x15, 0x75, 0x16, 0x02, 0xD0, - 0x01, 0xD0, 0x03, 0x12, 0x2B, 0xED, 0x90, 0x81, - 0x65, 0xE0, 0x04, 0xF0, 0x90, 0x81, 0x67, 0xE0, - 0x04, 0xF0, 0x80, 0x9F, 0x90, 0x81, 0x76, 0xE0, - 0xFF, 0x90, 0x81, 0x66, 0xE0, 0x2F, 0xF0, 0x02, - 0x67, 0x40, 0xE4, 0x90, 0x81, 0x6A, 0xF0, 0x90, - 0x81, 0x6A, 0xE0, 0xC3, 0x94, 0x40, 0x40, 0x02, - 0x41, 0xAF, 0xE0, 0xFF, 0x24, 0x79, 0xF5, 0x82, - 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, 0x90, 0x81, - 0x6C, 0xF0, 0xE0, 0xFE, 0x54, 0xF0, 0xC4, 0x54, - 0x0F, 0xFD, 0x90, 0x81, 0x6B, 0xF0, 0xEE, 0x54, - 0x0F, 0xFE, 0xA3, 0xF0, 0x74, 0x7A, 0x2F, 0xF5, - 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, 0x90, - 0x81, 0x6D, 0xF0, 0xFC, 0xEE, 0xFE, 0xEC, 0xFB, - 0xEB, 0xFF, 0x90, 0x81, 0x72, 0xEE, 0xF0, 0xA3, - 0xEF, 0xF0, 0xED, 0x12, 0x45, 0x28, 0x68, 0x8B, - 0x00, 0x68, 0xC2, 0x01, 0x69, 0x73, 0x02, 0x6A, - 0xA0, 0x03, 0x69, 0x8E, 0x04, 0x69, 0xAF, 0x05, - 0x69, 0xAF, 0x06, 0x69, 0xAF, 0x07, 0x69, 0xAF, - 0x08, 0x6A, 0x33, 0x09, 0x6A, 0x69, 0x0A, 0x00, - 0x00, 0x6A, 0xAF, 0x90, 0x81, 0x6A, 0xE0, 0xFD, - 0x24, 0x7C, 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, - 0x83, 0xE0, 0xFE, 0x74, 0x7B, 0x2D, 0xF5, 0x82, - 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, 0xFD, 0xED, - 0xFF, 0x90, 0x81, 0x74, 0xEE, 0xF0, 0xFC, 0xA3, - 0xEF, 0xF0, 0x90, 0x81, 0x6D, 0xE0, 0xFF, 0x12, - 0x2F, 0x96, 0x90, 0x81, 0x68, 0x74, 0x02, 0xF0, - 0x41, 0xA0, 0x90, 0x81, 0x6A, 0xE0, 0x24, 0x7C, - 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, - 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x08, 0x12, - 0x20, 0xBB, 0xA8, 0x04, 0xA9, 0x05, 0xAA, 0x06, - 0xAB, 0x07, 0x90, 0x81, 0x6A, 0xE0, 0x24, 0x7B, - 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, - 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x12, 0x44, 0xCC, - 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, - 0x90, 0x81, 0x6A, 0xE0, 0x24, 0x7D, 0xF5, 0x82, - 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, 0xFF, 0xE4, - 0xFC, 0xFD, 0xFE, 0x78, 0x10, 0x12, 0x20, 0xBB, - 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00, - 0x12, 0x44, 0xCC, 0xC0, 0x04, 0xC0, 0x05, 0xC0, - 0x06, 0xC0, 0x07, 0x90, 0x81, 0x6A, 0xE0, 0x24, - 0x7E, 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, - 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x18, - 0x12, 0x20, 0xBB, 0xD0, 0x03, 0xD0, 0x02, 0xD0, - 0x01, 0xD0, 0x00, 0x12, 0x44, 0xCC, 0x90, 0x81, - 0x6E, 0x12, 0x20, 0xCE, 0x90, 0x81, 0x6E, 0x12, - 0x44, 0xD9, 0x90, 0x85, 0x96, 0x12, 0x20, 0xCE, - 0x90, 0x81, 0x72, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, - 0x12, 0x2E, 0xE4, 0x90, 0x81, 0x68, 0x74, 0x04, - 0xF0, 0x41, 0xA0, 0x90, 0x81, 0x6D, 0xE0, 0xFD, - 0x90, 0x81, 0x6A, 0xE0, 0x24, 0x7B, 0xF5, 0x82, - 0xE4, 0x34, 0x81, 0xF5, 0x83, 0xE0, 0xFB, 0xE4, - 0xFF, 0x12, 0x30, 0xC7, 0x80, 0x19, 0x90, 0x81, - 0x6D, 0xE0, 0xFD, 0x90, 0x81, 0x6A, 0xE0, 0x24, - 0x7B, 0xF5, 0x82, 0xE4, 0x34, 0x81, 0xF5, 0x83, - 0xE0, 0xFB, 0xE4, 0xFF, 0x12, 0x30, 0x6A, 0x90, - 0x81, 0x68, 0x74, 0x01, 0xF0, 0x41, 0xA0, 0x90, - 0x81, 0x68, 0x74, 0x02, 0xF0, 0x90, 0x81, 0x6A, - 0xE0, 0x24, 0x7C, 0xF5, 0x82, 0xE4, 0x34, 0x81, - 0xF5, 0x83, 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, - 0x78, 0x08, 0x12, 0x20, 0xBB, 0xA8, 0x04, 0xA9, - 0x05, 0xAA, 0x06, 0xAB, 0x07, 0x90, 0x81, 0x6A, - 0xE0, 0x24, 0x7B, 0xF5, 0x82, 0xE4, 0x34, 0x81, - 0xF5, 0x83, 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, - 0x12, 0x44, 0xCC, 0xC0, 0x04, 0xC0, 0x05, 0xC0, - 0x06, 0xC0, 0x07, 0x90, 0x81, 0x6C, 0xE0, 0xFF, - 0xE4, 0xFC, 0xFD, 0xFE, 0x78, 0x10, 0x12, 0x20, - 0xBB, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, - 0x00, 0x12, 0x44, 0xCC, 0x90, 0x81, 0x6E, 0x12, - 0x20, 0xCE, 0x90, 0x81, 0x6B, 0xE0, 0x24, 0xFB, - 0xFF, 0xC0, 0x07, 0x90, 0x81, 0x6E, 0x12, 0x44, - 0xD9, 0x90, 0x81, 0xF9, 0x12, 0x20, 0xCE, 0x90, - 0x81, 0x6D, 0xE0, 0xFD, 0xD0, 0x07, 0x12, 0x55, - 0x1C, 0x80, 0x6D, 0x90, 0x81, 0x68, 0x74, 0x01, - 0xF0, 0x90, 0x81, 0x6A, 0xE0, 0x24, 0x7B, 0xF9, - 0xE4, 0x34, 0x81, 0x75, 0x13, 0x01, 0xF5, 0x14, - 0x89, 0x15, 0x75, 0x16, 0x01, 0x7B, 0xFE, 0x7A, - 0x80, 0x79, 0x33, 0x12, 0x2B, 0xED, 0x90, 0x81, - 0x6D, 0xE0, 0xFF, 0x90, 0x81, 0x6C, 0xE0, 0xFD, - 0xE4, 0x90, 0x81, 0xBC, 0xF0, 0x7B, 0x04, 0x80, - 0x34, 0x90, 0x81, 0x68, 0x74, 0x04, 0xF0, 0x90, - 0x81, 0x6A, 0xE0, 0x24, 0x7B, 0xF9, 0xE4, 0x34, - 0x81, 0x75, 0x13, 0x01, 0xF5, 0x14, 0x89, 0x15, - 0x75, 0x16, 0x04, 0x7B, 0xFE, 0x7A, 0x80, 0x79, - 0x33, 0x12, 0x2B, 0xED, 0x90, 0x81, 0x6D, 0xE0, - 0xFF, 0x90, 0x81, 0x6C, 0xE0, 0xFD, 0xE4, 0x90, - 0x81, 0xBC, 0xF0, 0x7B, 0x06, 0x12, 0x63, 0xE1, - 0x90, 0x81, 0x68, 0xE0, 0x24, 0x02, 0xFF, 0x90, - 0x81, 0x6A, 0xE0, 0x2F, 0xF0, 0x01, 0x17, 0x22, - 0x90, 0x02, 0x09, 0xE0, 0xFD, 0x12, 0x1F, 0xA4, - 0xFE, 0xAF, 0x05, 0xED, 0x2E, 0x90, 0x80, 0x3D, - 0xF0, 0x90, 0x00, 0x01, 0x12, 0x1F, 0xBD, 0xFF, - 0xED, 0x2F, 0x90, 0x80, 0x3E, 0xF0, 0x90, 0x00, - 0x02, 0x12, 0x1F, 0xBD, 0xFF, 0xED, 0x2F, 0x90, - 0x80, 0x3F, 0xF0, 0x90, 0x00, 0x03, 0x12, 0x1F, - 0xBD, 0xFF, 0xED, 0x2F, 0x90, 0x80, 0x40, 0xF0, - 0x90, 0x00, 0x04, 0x12, 0x1F, 0xBD, 0xFF, 0xAE, - 0x05, 0xED, 0x2F, 0x90, 0x80, 0x41, 0xF0, 0x22, - 0x90, 0x00, 0x02, 0x12, 0x1F, 0xBD, 0xFF, 0x30, - 0xE0, 0x26, 0x12, 0x1F, 0xA4, 0x90, 0x81, 0x38, - 0xF0, 0x90, 0x00, 0x01, 0x12, 0x1F, 0xBD, 0x90, - 0x81, 0x39, 0xF0, 0xEF, 0x54, 0xFE, 0xFF, 0xA3, - 0xE0, 0x54, 0x01, 0x4F, 0xF0, 0x90, 0x00, 0x03, - 0x12, 0x1F, 0xBD, 0x90, 0x81, 0x3B, 0xF0, 0x22, - 0x90, 0x81, 0x38, 0x74, 0x01, 0xF0, 0xA3, 0x74, - 0x05, 0xF0, 0xA3, 0xE0, 0x54, 0x01, 0x44, 0x28, - 0xF0, 0xA3, 0x74, 0x05, 0xF0, 0x22, 0x12, 0x1F, - 0xA4, 0x90, 0x81, 0x3E, 0xF0, 0x90, 0x81, 0x3E, - 0xE0, 0x90, 0x01, 0xE7, 0xF0, 0x22, 0x12, 0x1F, - 0xA4, 0x90, 0x81, 0x4A, 0xF0, 0x90, 0x00, 0x01, - 0x12, 0x1F, 0xBD, 0x90, 0x81, 0x4B, 0xF0, 0x22, - 0xD3, 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, - 0x81, 0xFD, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xE4, - 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0xFD, 0xE0, - 0xFE, 0xA3, 0xE0, 0xF5, 0x82, 0x8E, 0x83, 0xE0, - 0x60, 0x2D, 0xC3, 0x90, 0x82, 0x00, 0xE0, 0x94, - 0xE8, 0x90, 0x81, 0xFF, 0xE0, 0x94, 0x03, 0x40, - 0x0B, 0x90, 0x01, 0xC0, 0xE0, 0x44, 0x80, 0xF0, - 0x7F, 0x00, 0x80, 0x15, 0x90, 0x81, 0xFF, 0xE4, - 0x75, 0xF0, 0x01, 0x12, 0x44, 0xA9, 0x7F, 0x0A, - 0x7E, 0x00, 0x12, 0x32, 0xAA, 0x80, 0xC5, 0x7F, - 0x01, 0xD0, 0xD0, 0x92, 0xAF, 0x22, 0xD3, 0x10, - 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x81, 0xD1, - 0x12, 0x45, 0x1F, 0x90, 0x82, 0x0A, 0xE0, 0xFF, - 0x04, 0xF0, 0x90, 0x00, 0x01, 0xEF, 0x12, 0x1F, - 0xFC, 0x7F, 0xAF, 0x7E, 0x01, 0x71, 0x60, 0xEF, - 0x60, 0x3A, 0x90, 0x81, 0xD1, 0x12, 0x45, 0x16, - 0x8B, 0x13, 0x8A, 0x14, 0x89, 0x15, 0x90, 0x00, - 0x0E, 0x12, 0x1F, 0xBD, 0x24, 0x02, 0xF5, 0x16, - 0x7B, 0x01, 0x7A, 0x01, 0x79, 0xA0, 0x12, 0x2B, - 0xED, 0x90, 0x81, 0xD1, 0x12, 0x45, 0x16, 0x90, - 0x00, 0x0E, 0x12, 0x1F, 0xBD, 0x90, 0x01, 0xAE, - 0xF0, 0xA3, 0x74, 0xFF, 0xF0, 0x90, 0x01, 0xCB, - 0xE0, 0x64, 0x80, 0xF0, 0xD0, 0xD0, 0x92, 0xAF, - 0x22, 0xD3, 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, - 0xE4, 0xFF, 0x90, 0x80, 0xD9, 0xE0, 0xFE, 0x90, - 0x80, 0xD8, 0xE0, 0xFD, 0xB5, 0x06, 0x04, 0x7E, - 0x01, 0x80, 0x02, 0x7E, 0x00, 0xEE, 0x64, 0x01, - 0x60, 0x32, 0x90, 0x01, 0xAF, 0xE0, 0x70, 0x13, - 0xED, 0x75, 0xF0, 0x0F, 0xA4, 0x24, 0x42, 0xF9, - 0x74, 0x80, 0x35, 0xF0, 0xFA, 0x7B, 0x01, 0x71, - 0xB6, 0x7F, 0x01, 0xEF, 0x60, 0x16, 0x90, 0x80, - 0xD8, 0xE0, 0x04, 0xF0, 0xE0, 0x7F, 0x00, 0xB4, - 0x0A, 0x02, 0x7F, 0x01, 0xEF, 0x60, 0x05, 0xE4, - 0x90, 0x80, 0xD8, 0xF0, 0xD0, 0xD0, 0x92, 0xAF, - 0x22, 0x8F, 0x0D, 0x22, 0x8F, 0x0E, 0x22, 0x22, - 0x90, 0x01, 0x34, 0xE0, 0x55, 0x3D, 0xF5, 0x41, - 0xA3, 0xE0, 0x55, 0x3E, 0xF5, 0x42, 0xA3, 0xE0, - 0x55, 0x3F, 0xF5, 0x43, 0xA3, 0xE0, 0x55, 0x40, - 0xF5, 0x44, 0x90, 0x01, 0x34, 0xE5, 0x41, 0xF0, - 0xA3, 0xE5, 0x42, 0xF0, 0xA3, 0xE5, 0x43, 0xF0, - 0xA3, 0xE5, 0x44, 0xF0, 0x22, 0x90, 0x01, 0x3C, - 0xE0, 0x55, 0x45, 0xF5, 0x49, 0xA3, 0xE0, 0x55, - 0x46, 0xF5, 0x4A, 0xA3, 0xE0, 0x55, 0x47, 0xF5, - 0x4B, 0xA3, 0xE0, 0x55, 0x48, 0xF5, 0x4C, 0x90, - 0x01, 0x3C, 0xE5, 0x49, 0xF0, 0xA3, 0xE5, 0x4A, - 0xF0, 0xA3, 0xE5, 0x4B, 0xF0, 0xA3, 0xE5, 0x4C, - 0xF0, 0x53, 0x91, 0xDF, 0x22, 0x90, 0x81, 0x1F, - 0xE0, 0x30, 0xE0, 0x05, 0xE4, 0xA3, 0xF0, 0xA3, - 0xF0, 0x22, 0x90, 0x80, 0xDE, 0xE0, 0x64, 0x01, - 0x70, 0x19, 0x90, 0x81, 0x27, 0xE0, 0x60, 0x13, - 0x90, 0x01, 0x57, 0xE4, 0xF0, 0x90, 0x01, 0x3C, - 0x74, 0x02, 0x12, 0x4F, 0xF4, 0x90, 0x01, 0x57, - 0x74, 0x05, 0xF0, 0x22, 0x90, 0x80, 0xDE, 0xE0, - 0x64, 0x01, 0x70, 0x26, 0x90, 0x81, 0x27, 0xE0, - 0x60, 0x20, 0x90, 0x01, 0x57, 0xE4, 0xF0, 0x90, - 0x01, 0x3C, 0x74, 0x02, 0xF0, 0x90, 0x81, 0x24, - 0xE0, 0x54, 0xFB, 0xF0, 0x90, 0x81, 0x2B, 0xE0, - 0x54, 0xFD, 0xF0, 0x54, 0x07, 0x70, 0x03, 0x12, - 0x47, 0x2A, 0x22, 0x90, 0x80, 0xDE, 0xE0, 0xB4, - 0x01, 0x14, 0x90, 0x81, 0x27, 0xE0, 0x60, 0x0E, - 0x90, 0x81, 0x26, 0xE0, 0x54, 0x0F, 0x64, 0x02, - 0x60, 0x02, 0x80, 0x03, 0xD1, 0x7F, 0x22, 0x90, - 0x04, 0x1D, 0xE0, 0x70, 0x13, 0x90, 0x80, 0x3E, - 0xE0, 0xFF, 0xE4, 0xFD, 0xB1, 0x69, 0x8E, 0x4E, - 0x8F, 0x4F, 0x90, 0x04, 0x1F, 0x74, 0x20, 0xF0, - 0x22, 0xD3, 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, - 0x90, 0x82, 0x0E, 0xED, 0xF0, 0x90, 0x82, 0x0D, - 0xEF, 0xF0, 0xE4, 0xFD, 0xFC, 0xF1, 0x37, 0x7C, - 0x00, 0xAD, 0x07, 0x90, 0x82, 0x0D, 0xE0, 0x90, - 0x04, 0x25, 0xF0, 0x90, 0x82, 0x0E, 0xE0, 0x60, - 0x0E, 0x74, 0x0F, 0x2F, 0xF5, 0x82, 0xE4, 0x34, - 0xFC, 0xF5, 0x83, 0xE0, 0x44, 0x80, 0xF0, 0xAF, - 0x05, 0x74, 0x08, 0x2F, 0xF5, 0x82, 0xE4, 0x34, - 0xFC, 0xF5, 0x83, 0xE4, 0xF0, 0x74, 0x09, 0x2F, - 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, - 0x54, 0xF0, 0xF0, 0x74, 0x21, 0x2D, 0xF5, 0x82, - 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x54, 0xF7, - 0xF0, 0xAE, 0x04, 0xAF, 0x05, 0xD0, 0xD0, 0x92, - 0xAF, 0x22, 0x8F, 0x4E, 0xF1, 0x4B, 0xBF, 0x01, - 0x18, 0x90, 0x80, 0x40, 0xE0, 0xFF, 0x7D, 0x01, - 0xB1, 0x69, 0xAD, 0x07, 0xAC, 0x06, 0xAF, 0x4E, - 0x12, 0x4F, 0x82, 0x90, 0x04, 0x1F, 0x74, 0x20, - 0xF0, 0x22, 0x90, 0x06, 0xA9, 0xE0, 0x90, 0x81, - 0x4C, 0xF0, 0xE0, 0xFD, 0x54, 0xC0, 0x70, 0x09, - 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFE, 0xF0, 0x80, - 0x72, 0xED, 0x30, 0xE6, 0x4B, 0x90, 0x81, 0x27, - 0xE0, 0x64, 0x02, 0x70, 0x2A, 0x90, 0x81, 0x24, - 0xE0, 0xFF, 0xC3, 0x13, 0x20, 0xE0, 0x09, 0x90, - 0x81, 0x2B, 0xE0, 0x44, 0x01, 0xF0, 0x80, 0x28, - 0x90, 0x81, 0x26, 0xE0, 0x54, 0x0F, 0x64, 0x01, - 0x70, 0x2D, 0x90, 0x81, 0x2B, 0xE0, 0x44, 0x04, - 0xF0, 0x7F, 0x01, 0xB1, 0xD2, 0x80, 0x20, 0x90, - 0x81, 0x2B, 0xE0, 0x44, 0x01, 0xF0, 0x90, 0x81, - 0x26, 0xE0, 0x54, 0x0F, 0x64, 0x02, 0x60, 0x04, - 0xB1, 0x4F, 0x80, 0x0B, 0xD1, 0x7F, 0x80, 0x07, - 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFE, 0xF0, 0x90, - 0x81, 0x4C, 0xE0, 0x90, 0x81, 0x2B, 0x30, 0xE7, - 0x11, 0x12, 0x4F, 0xF1, 0x90, 0x01, 0x57, 0x74, - 0x05, 0xF0, 0x90, 0x81, 0x24, 0xE0, 0x44, 0x04, - 0xF0, 0x22, 0xE0, 0x54, 0xFD, 0xF0, 0x22, 0x90, - 0x01, 0x5F, 0xE4, 0xF0, 0x90, 0x01, 0x3C, 0x74, - 0x08, 0xF0, 0xE4, 0xF5, 0x1D, 0x90, 0x81, 0x3A, - 0xE0, 0xC3, 0x13, 0x54, 0x7F, 0xF5, 0x1E, 0xE4, - 0xFB, 0xFD, 0x7F, 0x5C, 0x7E, 0x01, 0x12, 0x50, - 0x05, 0x90, 0x01, 0x5F, 0x74, 0x05, 0xF0, 0x90, - 0x06, 0x92, 0x74, 0x02, 0xF0, 0x90, 0x81, 0x24, - 0xE0, 0x44, 0x10, 0xF0, 0x90, 0x81, 0x2A, 0xE0, - 0x64, 0x0C, 0x60, 0x0C, 0xE4, 0xFD, 0x7F, 0x0C, - 0x12, 0x47, 0x3D, 0xE4, 0xFF, 0x12, 0x4F, 0x0D, - 0x22, 0xE4, 0x90, 0x81, 0x4C, 0xF0, 0x90, 0x06, - 0xA9, 0xE0, 0x90, 0x81, 0x4C, 0xF0, 0xE0, 0x54, - 0xC0, 0x70, 0x0D, 0x90, 0x81, 0x2B, 0xE0, 0x54, - 0xFE, 0xF0, 0x54, 0xFD, 0xF0, 0x02, 0x47, 0x2A, - 0x90, 0x81, 0x4C, 0xE0, 0x30, 0xE6, 0x21, 0x90, - 0x81, 0x27, 0xE0, 0x64, 0x01, 0x70, 0x20, 0x90, - 0x81, 0x2B, 0xE0, 0x44, 0x01, 0xF0, 0x90, 0x81, - 0x26, 0xE0, 0x54, 0x0F, 0x64, 0x02, 0x60, 0x04, - 0xB1, 0x4F, 0x80, 0x0B, 0xD1, 0x7F, 0x80, 0x07, - 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFE, 0xF0, 0x90, - 0x81, 0x4C, 0xE0, 0x90, 0x81, 0x2B, 0x30, 0xE7, - 0x11, 0x12, 0x4F, 0xF1, 0x90, 0x01, 0x57, 0x74, - 0x05, 0xF0, 0x90, 0x81, 0x24, 0xE0, 0x44, 0x04, - 0xF0, 0x22, 0xE0, 0x54, 0xFD, 0xF0, 0x22, 0xE4, - 0xFE, 0xEF, 0xC3, 0x13, 0xFD, 0xEF, 0x30, 0xE0, - 0x02, 0x7E, 0x80, 0x90, 0xFD, 0x10, 0xED, 0xF0, - 0xAF, 0x06, 0x22, 0xD3, 0x10, 0xAF, 0x01, 0xC3, - 0xC0, 0xD0, 0x90, 0x04, 0x1D, 0xE0, 0x60, 0x1A, - 0x90, 0x05, 0x22, 0xE0, 0x54, 0x90, 0x60, 0x07, - 0x90, 0x01, 0xC0, 0xE0, 0x44, 0x08, 0xF0, 0x90, - 0x01, 0xC6, 0xE0, 0x30, 0xE1, 0xE4, 0x7F, 0x00, - 0x80, 0x02, 0x7F, 0x01, 0xD0, 0xD0, 0x92, 0xAF, - 0x22, 0x90, 0x81, 0x27, 0xE0, 0x60, 0x03, 0x12, - 0x73, 0xE1, 0x90, 0x81, 0x3F, 0xE0, 0x30, 0xE0, - 0x03, 0x12, 0x49, 0xDD, 0x22, 0x90, 0x81, 0x27, - 0xE0, 0x60, 0x35, 0x90, 0x06, 0x92, 0xE0, 0x30, - 0xE1, 0x24, 0xE4, 0xF5, 0x1D, 0x90, 0x81, 0x3A, - 0xE0, 0xC3, 0x13, 0x54, 0x7F, 0xF5, 0x1E, 0xE4, - 0xFB, 0xFD, 0x7F, 0x5C, 0x7E, 0x01, 0x12, 0x50, - 0x05, 0x90, 0x01, 0x5F, 0x74, 0x05, 0xF0, 0x90, - 0x06, 0x92, 0x74, 0x02, 0xF0, 0x22, 0x90, 0x81, - 0x24, 0xE0, 0x54, 0xEF, 0xF0, 0x12, 0x47, 0x2A, - 0x22, 0x12, 0x71, 0x48, 0x90, 0x81, 0x4D, 0xEF, - 0xF0, 0x90, 0x81, 0x24, 0x30, 0xE0, 0x06, 0xE0, - 0x44, 0x01, 0xF0, 0x80, 0x04, 0xE0, 0x54, 0xFE, - 0xF0, 0x90, 0x81, 0x4D, 0xE0, 0x30, 0xE6, 0x11, - 0x90, 0x01, 0x2F, 0xE0, 0x30, 0xE7, 0x04, 0xE4, - 0xF0, 0x80, 0x06, 0x90, 0x01, 0x2F, 0x74, 0x80, - 0xF0, 0x90, 0x81, 0x24, 0xE0, 0x30, 0xE0, 0x1A, - 0x90, 0x81, 0x32, 0xE4, 0xF0, 0xA3, 0x74, 0x07, - 0xF0, 0x90, 0x81, 0x32, 0xA3, 0xE0, 0x90, 0x05, - 0x58, 0xF0, 0x90, 0x04, 0xEC, 0xE0, 0x54, 0xDD, - 0xF0, 0x22, 0x90, 0x04, 0xEC, 0xE0, 0x44, 0x22, - 0xF0, 0x22, 0x90, 0x81, 0x4A, 0xE0, 0x60, 0x0F, - 0xE4, 0xF0, 0x90, 0x05, 0x53, 0xE0, 0x44, 0x01, - 0xF0, 0x90, 0x05, 0xFD, 0xE0, 0x04, 0xF0, 0x22, - 0x90, 0x81, 0x24, 0xE0, 0xFF, 0xC4, 0x13, 0x13, - 0x54, 0x03, 0x30, 0xE0, 0x27, 0xEF, 0x54, 0xBF, - 0xF0, 0x90, 0x04, 0xE0, 0xE0, 0x90, 0x81, 0x25, - 0x30, 0xE0, 0x06, 0xE0, 0x44, 0x01, 0xF0, 0x80, - 0x10, 0xE0, 0x54, 0xFE, 0xF0, 0x90, 0x01, 0xB9, - 0x74, 0x01, 0xF0, 0x90, 0x01, 0xB8, 0x74, 0x04, - 0xF0, 0x12, 0x47, 0x2A, 0xE4, 0xFF, 0x90, 0x81, - 0x45, 0xE0, 0x30, 0xE0, 0x48, 0x90, 0x81, 0x49, - 0xE0, 0xFD, 0x60, 0x41, 0x74, 0x01, 0x7E, 0x00, - 0xA8, 0x07, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, - 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0x90, 0x04, 0xE0, - 0xE0, 0xFB, 0xEF, 0x5B, 0x60, 0x06, 0xE4, 0x90, - 0x81, 0x49, 0xF0, 0x22, 0x90, 0x81, 0x47, 0xE0, - 0xD3, 0x9D, 0x50, 0x10, 0x90, 0x01, 0xC7, 0x74, - 0x10, 0xF0, 0x11, 0xBE, 0x90, 0x81, 0x45, 0xE0, - 0x54, 0xFE, 0xF0, 0x22, 0x12, 0x4F, 0x0B, 0x90, - 0x81, 0x49, 0xE0, 0x04, 0xF0, 0x22, 0x90, 0x80, - 0x3C, 0xE0, 0x64, 0x02, 0x60, 0x07, 0x90, 0x06, - 0x90, 0xE0, 0x44, 0x01, 0xF0, 0x22, 0x90, 0x81, - 0x24, 0xE0, 0xFF, 0xC4, 0x13, 0x13, 0x13, 0x54, - 0x01, 0x30, 0xE0, 0x2C, 0xEF, 0x54, 0x7F, 0xF0, - 0x90, 0x04, 0xE0, 0xE0, 0x90, 0x81, 0x25, 0x30, - 0xE1, 0x06, 0xE0, 0x44, 0x02, 0xF0, 0x80, 0x0F, - 0xE0, 0x54, 0xFD, 0xF0, 0x90, 0x01, 0xB9, 0x74, - 0x01, 0xF0, 0x90, 0x01, 0xB8, 0x04, 0xF0, 0x90, - 0x81, 0x27, 0xE0, 0x60, 0x03, 0x12, 0x47, 0x2A, - 0x7F, 0x01, 0x01, 0x6E, 0xC3, 0xEE, 0x94, 0x01, - 0x40, 0x0A, 0x0D, 0xED, 0x13, 0x90, 0xFD, 0x10, - 0xF0, 0xE4, 0x2F, 0xFF, 0x22, 0xC3, 0xEE, 0x94, - 0x01, 0x40, 0x24, 0x90, 0xFD, 0x11, 0xE0, 0x6D, - 0x70, 0x1A, 0x90, 0x01, 0x17, 0xE0, 0xB5, 0x05, - 0x0D, 0x90, 0x01, 0xE4, 0x74, 0x77, 0xF0, 0x90, - 0xFD, 0x11, 0xE4, 0xF0, 0x80, 0x06, 0xED, 0x04, - 0x90, 0xFD, 0x11, 0xF0, 0xE4, 0x2F, 0xFF, 0x22, - 0xE4, 0x90, 0x81, 0x4E, 0xF0, 0xA3, 0xF0, 0xA3, - 0xF0, 0x90, 0x00, 0x83, 0xE0, 0x90, 0x81, 0x4E, - 0xF0, 0x90, 0x00, 0x83, 0xE0, 0xFE, 0x90, 0x81, - 0x4E, 0xE0, 0xFF, 0xB5, 0x06, 0x01, 0x22, 0xC3, - 0x90, 0x81, 0x50, 0xE0, 0x94, 0x64, 0x90, 0x81, - 0x4F, 0xE0, 0x94, 0x00, 0x40, 0x0D, 0x90, 0x01, - 0xC0, 0xE0, 0x44, 0x40, 0xF0, 0x90, 0x81, 0x4E, - 0xE0, 0xFF, 0x22, 0x90, 0x81, 0x4F, 0xE4, 0x75, - 0xF0, 0x01, 0x12, 0x44, 0xA9, 0x80, 0xC2, 0x74, - 0x45, 0x2F, 0xF8, 0xE6, 0xFE, 0xED, 0xF4, 0x5E, - 0xFE, 0xF6, 0x74, 0x38, 0x2F, 0xF5, 0x82, 0xE4, - 0x34, 0x01, 0xF5, 0x83, 0xEE, 0xF0, 0x22, 0xD3, - 0x10, 0xAF, 0x01, 0xC3, 0xC0, 0xD0, 0x90, 0x82, - 0x12, 0xED, 0xF0, 0x90, 0x82, 0x11, 0xEF, 0xF0, - 0xD3, 0x94, 0x07, 0x50, 0x70, 0xE0, 0xFF, 0x74, - 0x01, 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, 0x33, - 0xD8, 0xFC, 0xF4, 0xFF, 0x90, 0x00, 0x47, 0xE0, - 0x5F, 0xFD, 0x7F, 0x47, 0x12, 0x32, 0x1E, 0x90, - 0x82, 0x11, 0xE0, 0xFF, 0x74, 0x01, 0xA8, 0x07, - 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, 0xFC, 0xFF, - 0x90, 0x00, 0x46, 0xE0, 0x4F, 0xFD, 0x7F, 0x46, - 0x12, 0x32, 0x1E, 0x90, 0x82, 0x12, 0xE0, 0x60, - 0x18, 0x90, 0x82, 0x11, 0xE0, 0xFF, 0x74, 0x01, - 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, - 0xFC, 0xFF, 0x90, 0x00, 0x45, 0xE0, 0x4F, 0x80, - 0x17, 0x90, 0x82, 0x11, 0xE0, 0xFF, 0x74, 0x01, - 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, - 0xFC, 0xF4, 0xFF, 0x90, 0x00, 0x45, 0xE0, 0x5F, - 0xFD, 0x7F, 0x45, 0x80, 0x7E, 0x90, 0x82, 0x11, - 0xE0, 0x24, 0xF8, 0xF0, 0xE0, 0x24, 0x04, 0xFF, - 0x74, 0x01, 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, - 0x33, 0xD8, 0xFC, 0xF4, 0xFF, 0x90, 0x00, 0x43, - 0xE0, 0x5F, 0xFD, 0x7F, 0x43, 0x12, 0x32, 0x1E, - 0x90, 0x82, 0x11, 0xE0, 0xFF, 0x74, 0x01, 0xA8, - 0x07, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, 0xFC, - 0xFF, 0x90, 0x00, 0x43, 0xE0, 0x4F, 0xFD, 0x7F, - 0x43, 0x12, 0x32, 0x1E, 0x90, 0x82, 0x12, 0xE0, - 0x60, 0x1D, 0x90, 0x82, 0x11, 0xE0, 0x24, 0x04, - 0xFF, 0x74, 0x01, 0xA8, 0x07, 0x08, 0x80, 0x02, - 0xC3, 0x33, 0xD8, 0xFC, 0xFF, 0x90, 0x00, 0x42, - 0xE0, 0x4F, 0xFD, 0x7F, 0x42, 0x80, 0x1C, 0x90, - 0x82, 0x11, 0xE0, 0x24, 0x04, 0xFF, 0x74, 0x01, - 0xA8, 0x07, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, - 0xFC, 0xF4, 0xFF, 0x90, 0x00, 0x42, 0xE0, 0x5F, - 0xFD, 0x7F, 0x42, 0x12, 0x32, 0x1E, 0xD0, 0xD0, - 0x92, 0xAF, 0x22, 0x90, 0x81, 0x24, 0xE0, 0x54, - 0xFB, 0xF0, 0xE4, 0x90, 0x81, 0x30, 0xF0, 0x90, - 0x81, 0x2B, 0xF0, 0x22, 0xEF, 0x24, 0xFE, 0x60, - 0x0C, 0x04, 0x70, 0x28, 0x90, 0x81, 0x2D, 0x74, - 0x01, 0xF0, 0xA3, 0xF0, 0x22, 0xED, 0x70, 0x0A, - 0x90, 0x81, 0x3B, 0xE0, 0x90, 0x81, 0x2D, 0xF0, - 0x80, 0x05, 0x90, 0x81, 0x2D, 0xED, 0xF0, 0x90, - 0x81, 0x2D, 0xE0, 0xA3, 0xF0, 0x90, 0x81, 0x25, - 0xE0, 0x44, 0x08, 0xF0, 0x22, 0x12, 0x4E, 0xAB, - 0xEF, 0x64, 0x01, 0x60, 0x08, 0x90, 0x01, 0xB8, - 0x74, 0x01, 0xF0, 0x80, 0x67, 0x90, 0x81, 0x2B, - 0xE0, 0xFF, 0x54, 0x03, 0x60, 0x08, 0x90, 0x01, - 0xB8, 0x74, 0x02, 0xF0, 0x80, 0x56, 0x90, 0x81, - 0x29, 0xE0, 0xFE, 0xE4, 0xC3, 0x9E, 0x50, 0x08, - 0x90, 0x01, 0xB8, 0x74, 0x04, 0xF0, 0x80, 0x44, - 0xEF, 0x30, 0xE2, 0x08, 0x90, 0x01, 0xB8, 0x74, - 0x08, 0xF0, 0x80, 0x38, 0x90, 0x81, 0x2B, 0xE0, - 0x30, 0xE4, 0x08, 0x90, 0x01, 0xB8, 0x74, 0x10, - 0xF0, 0x80, 0x29, 0x90, 0x81, 0x25, 0xE0, 0x13, - 0x13, 0x54, 0x3F, 0x20, 0xE0, 0x08, 0x90, 0x01, - 0xB8, 0x74, 0x20, 0xF0, 0x80, 0x16, 0x90, 0x81, - 0x3E, 0xE0, 0x60, 0x08, 0x90, 0x01, 0xB8, 0x74, - 0x80, 0xF0, 0x80, 0x08, 0x90, 0x01, 0xB8, 0xE4, - 0xF0, 0x7F, 0x01, 0x22, 0x90, 0x01, 0xB9, 0x74, - 0x04, 0xF0, 0x7F, 0x00, 0x22, 0xEF, 0x60, 0x42, - 0x90, 0x80, 0xDE, 0xE0, 0x64, 0x01, 0x70, 0x3A, - 0x90, 0x81, 0x25, 0xE0, 0x54, 0xFE, 0xF0, 0x90, - 0x05, 0x22, 0x74, 0x0F, 0xF0, 0x90, 0x06, 0x04, - 0xE0, 0x54, 0xBF, 0xF0, 0xE4, 0xFF, 0x12, 0x4F, - 0x0D, 0xBF, 0x01, 0x12, 0x90, 0x81, 0x24, 0xE0, - 0x44, 0x40, 0xF0, 0x90, 0x81, 0x2A, 0x74, 0x06, - 0xF0, 0x90, 0x81, 0x23, 0xF0, 0x22, 0x90, 0x01, - 0xB9, 0x74, 0x01, 0xF0, 0x90, 0x01, 0xB8, 0x74, - 0x08, 0xF0, 0x22, 0x90, 0x05, 0x22, 0x74, 0x6F, - 0xF0, 0x90, 0x05, 0x27, 0xE0, 0x54, 0xBF, 0xF0, - 0x90, 0x81, 0x2A, 0x74, 0x02, 0xF0, 0x90, 0x81, - 0x23, 0xF0, 0x22, 0x12, 0x54, 0x65, 0x90, 0x81, - 0x2A, 0x74, 0x0C, 0xF0, 0x90, 0x81, 0x23, 0xF0, - 0x22, 0x90, 0x81, 0x24, 0xE0, 0xFF, 0x13, 0x13, - 0x54, 0x3F, 0x30, 0xE0, 0x11, 0xEF, 0x54, 0xFB, - 0xF0, 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFD, 0xF0, - 0x54, 0x07, 0x70, 0x42, 0x80, 0x3D, 0x90, 0x81, - 0x30, 0xE0, 0x04, 0xF0, 0x90, 0x81, 0x2B, 0xE0, - 0x54, 0xEF, 0xF0, 0x90, 0x81, 0x30, 0xE0, 0xFF, - 0xB4, 0x01, 0x02, 0x80, 0x04, 0xEF, 0xB4, 0x02, - 0x06, 0x90, 0x05, 0x58, 0xE0, 0x04, 0xF0, 0x90, - 0x81, 0x38, 0xE0, 0xFF, 0x90, 0x81, 0x30, 0xE0, - 0xD3, 0x9F, 0x40, 0x0F, 0x90, 0x80, 0xDE, 0xE0, - 0xB4, 0x01, 0x0B, 0x90, 0x81, 0x25, 0xE0, 0x54, - 0xFB, 0xF0, 0x22, 0x12, 0x47, 0x2A, 0x22, 0x22, - 0x90, 0x05, 0x2B, 0xE0, 0x7F, 0x00, 0x30, 0xE7, - 0x02, 0x7F, 0x01, 0x22, 0x90, 0x05, 0x22, 0x74, - 0xFF, 0xF0, 0x90, 0x05, 0x27, 0xE0, 0x44, 0x40, - 0xF0, 0x90, 0x81, 0x22, 0x74, 0x03, 0xF0, 0x22, - 0x90, 0x05, 0x27, 0xE0, 0x44, 0x40, 0xF0, 0x12, - 0x49, 0xDD, 0x90, 0x81, 0x22, 0x74, 0x02, 0xF0, - 0x22, 0x12, 0x49, 0xE3, 0x90, 0x81, 0x22, 0x74, - 0x02, 0xF0, 0x22, 0x90, 0x05, 0x22, 0x74, 0x6F, - 0xF0, 0x90, 0x05, 0x27, 0xE0, 0x54, 0xBF, 0xF0, - 0x90, 0x81, 0x22, 0x74, 0x04, 0xF0, 0x22, 0xAE, - 0x07, 0x12, 0x51, 0x73, 0xBF, 0x01, 0x12, 0x90, - 0x81, 0x23, 0xE0, 0x64, 0x02, 0x60, 0x0A, 0xAF, - 0x06, 0x7D, 0x01, 0x12, 0x47, 0x3D, 0x7F, 0x01, - 0x22, 0x7F, 0x00, 0x22, 0x90, 0x01, 0x57, 0xE0, - 0x60, 0x48, 0xE4, 0xF0, 0x90, 0x01, 0x3C, 0x74, - 0x02, 0xF0, 0x90, 0x81, 0x24, 0xE0, 0xFF, 0x13, - 0x13, 0x54, 0x3F, 0x30, 0xE0, 0x0C, 0xEF, 0x54, - 0xFB, 0xF0, 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xFD, - 0xF0, 0x22, 0x90, 0x81, 0x30, 0xE0, 0x04, 0xF0, - 0x90, 0x81, 0x2B, 0xE0, 0x54, 0xEF, 0xF0, 0x90, - 0x81, 0x38, 0xE0, 0xFF, 0x90, 0x81, 0x30, 0xE0, - 0xD3, 0x9F, 0x40, 0x0E, 0x90, 0x80, 0xDE, 0xE0, - 0xB4, 0x01, 0x07, 0x90, 0x81, 0x25, 0xE0, 0x54, - 0xFB, 0xF0, 0x22, 0x90, 0x80, 0x3F, 0xE0, 0xFF, - 0x7D, 0x01, 0x12, 0x6D, 0x69, 0x8E, 0x54, 0x8F, - 0x55, 0xAD, 0x55, 0xAC, 0x54, 0xAF, 0x53, 0x12, - 0x4F, 0x82, 0xAF, 0x55, 0xAE, 0x54, 0x90, 0x04, - 0x80, 0xE0, 0x54, 0x0F, 0xFD, 0xAC, 0x07, 0x74, - 0x11, 0x2C, 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, - 0x83, 0xE0, 0x44, 0x01, 0xF0, 0x74, 0x11, 0x2C, - 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, - 0x54, 0xFB, 0xF0, 0xAC, 0x07, 0x74, 0x16, 0x2C, - 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, - 0x44, 0xFA, 0xF0, 0x74, 0x15, 0x2C, 0xF5, 0x82, - 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x44, 0x1F, - 0xF0, 0xAC, 0x07, 0x74, 0x06, 0x2C, 0xF5, 0x82, - 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xE0, 0x44, 0x0F, - 0xF0, 0x90, 0x04, 0x53, 0xE4, 0xF0, 0x90, 0x04, - 0x52, 0xF0, 0x90, 0x04, 0x51, 0x74, 0xFF, 0xF0, - 0x90, 0x04, 0x50, 0x74, 0xFD, 0xF0, 0x74, 0x14, - 0x2C, 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, - 0xE0, 0x54, 0xC0, 0x4D, 0xFD, 0x74, 0x14, 0x2F, - 0xF5, 0x82, 0xE4, 0x34, 0xFC, 0xF5, 0x83, 0xED, - 0xF0, 0x22, 0xAB, 0x07, 0xAA, 0x06, 0xED, 0x2B, - 0xFB, 0xE4, 0x3A, 0xFA, 0xC3, 0x90, 0x80, 0xDB, - 0xE0, 0x9B, 0x90, 0x80, 0xDA, 0xE0, 0x9A, 0x50, - 0x13, 0xA3, 0xE0, 0x24, 0x01, 0xFF, 0x90, 0x80, - 0xDA, 0xE0, 0x34, 0x00, 0xFE, 0xC3, 0xEB, 0x9F, - 0xFB, 0xEA, 0x9E, 0xFA, 0xEA, 0x90, 0xFD, 0x11, - 0xF0, 0xAF, 0x03, 0x74, 0x00, 0x2F, 0xF5, 0x82, - 0xE4, 0x34, 0xFB, 0xF5, 0x83, 0xE0, 0xFF, 0x22, - 0x12, 0x1F, 0xA4, 0xFF, 0x54, 0x01, 0xFE, 0x90, - 0x81, 0x42, 0xE0, 0x54, 0xFE, 0x4E, 0xF0, 0xEF, - 0xC3, 0x13, 0x30, 0xE0, 0x0A, 0x90, 0x00, 0x01, - 0x12, 0x1F, 0xBD, 0x90, 0x81, 0x43, 0xF0, 0x22, - 0x90, 0x81, 0x45, 0xE0, 0x30, 0xE0, 0x2D, 0x90, - 0x81, 0x48, 0xE0, 0x04, 0xF0, 0xE0, 0xFF, 0x90, - 0x81, 0x46, 0xE0, 0xB5, 0x07, 0x1E, 0x90, 0x06, - 0x92, 0xE0, 0x54, 0x1C, 0x70, 0x0B, 0x12, 0x4F, - 0x0B, 0x90, 0x81, 0x49, 0xE0, 0x04, 0xF0, 0x80, - 0x06, 0x90, 0x06, 0x92, 0x74, 0x1C, 0xF0, 0xE4, - 0x90, 0x81, 0x48, 0xF0, 0x22, 0x00, 0xBB, 0x8E, -}; diff --git a/drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c b/drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c index e4f20da..8a7947d 100644 --- a/drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c +++ b/drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c @@ -819,7 +819,7 @@ void _PHY_SaveADDARegisters(struct adapter *adapt, u32 *ADDAReg, u32 *ADDABackup struct hal_data_8188e *pHalData = GET_HAL_DATA(adapt); struct odm_dm_struct *dm_odm = &pHalData->odmpriv; - if (ODM_CheckPowerStatus(adapt) == false) + if (!ODM_CheckPowerStatus(adapt)) return; ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Save ADDA parameters.\n")); @@ -888,7 +888,7 @@ _PHY_PathADDAOn( ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("ADDA ON.\n")); pathOn = isPathAOn ? 0x04db25a4 : 0x0b1b25a4; - if (false == is2t) { + if (!is2t) { pathOn = 0x0bdb25a0; ODM_SetBBReg(dm_odm, ADDAReg[0], bMaskDWord, 0x0b1b25a0); } else { @@ -1276,407 +1276,6 @@ static void phy_LCCalibrate_8188E(struct adapter *adapt, bool is2t) } } -/* Analog Pre-distortion calibration */ -#define APK_BB_REG_NUM 8 -#define APK_CURVE_REG_NUM 4 -#define PATH_NUM 2 - -static void phy_APCalibrate_8188E(struct adapter *adapt, s8 delta, bool is2t) -{ - struct hal_data_8188e *pHalData = GET_HAL_DATA(adapt); - struct odm_dm_struct *dm_odm = &pHalData->odmpriv; - u32 regD[PATH_NUM]; - u32 tmpreg, index, offset, apkbound; - u8 path, i, pathbound = PATH_NUM; - u32 BB_backup[APK_BB_REG_NUM]; - u32 BB_REG[APK_BB_REG_NUM] = { - rFPGA1_TxBlock, rOFDM0_TRxPathEnable, - rFPGA0_RFMOD, rOFDM0_TRMuxPar, - rFPGA0_XCD_RFInterfaceSW, rFPGA0_XAB_RFInterfaceSW, - rFPGA0_XA_RFInterfaceOE, rFPGA0_XB_RFInterfaceOE }; - u32 BB_AP_MODE[APK_BB_REG_NUM] = { - 0x00000020, 0x00a05430, 0x02040000, - 0x000800e4, 0x00204000 }; - u32 BB_normal_AP_MODE[APK_BB_REG_NUM] = { - 0x00000020, 0x00a05430, 0x02040000, - 0x000800e4, 0x22204000 }; - - u32 AFE_backup[IQK_ADDA_REG_NUM]; - u32 AFE_REG[IQK_ADDA_REG_NUM] = { - rFPGA0_XCD_SwitchControl, rBlue_Tooth, - rRx_Wait_CCA, rTx_CCK_RFON, - rTx_CCK_BBON, rTx_OFDM_RFON, - rTx_OFDM_BBON, rTx_To_Rx, - rTx_To_Tx, rRx_CCK, - rRx_OFDM, rRx_Wait_RIFS, - rRx_TO_Rx, rStandby, - rSleep, rPMPD_ANAEN }; - - u32 MAC_backup[IQK_MAC_REG_NUM]; - u32 MAC_REG[IQK_MAC_REG_NUM] = { - REG_TXPAUSE, REG_BCN_CTRL, - REG_BCN_CTRL_1, REG_GPIO_MUXCFG}; - - u32 APK_RF_init_value[PATH_NUM][APK_BB_REG_NUM] = { - {0x0852c, 0x1852c, 0x5852c, 0x1852c, 0x5852c}, - {0x2852e, 0x0852e, 0x3852e, 0x0852e, 0x0852e} - }; - - u32 APK_normal_RF_init_value[PATH_NUM][APK_BB_REG_NUM] = { - {0x0852c, 0x0a52c, 0x3a52c, 0x5a52c, 0x5a52c}, /* path settings equal to path b settings */ - {0x0852c, 0x0a52c, 0x5a52c, 0x5a52c, 0x5a52c} - }; - - u32 APK_RF_value_0[PATH_NUM][APK_BB_REG_NUM] = { - {0x52019, 0x52014, 0x52013, 0x5200f, 0x5208d}, - {0x5201a, 0x52019, 0x52016, 0x52033, 0x52050} - }; - - u32 APK_normal_RF_value_0[PATH_NUM][APK_BB_REG_NUM] = { - {0x52019, 0x52017, 0x52010, 0x5200d, 0x5206a}, /* path settings equal to path b settings */ - {0x52019, 0x52017, 0x52010, 0x5200d, 0x5206a} - }; - - u32 AFE_on_off[PATH_NUM] = { - 0x04db25a4, 0x0b1b25a4}; /* path A on path B off / path A off path B on */ - - u32 APK_offset[PATH_NUM] = { - rConfig_AntA, rConfig_AntB}; - - u32 APK_normal_offset[PATH_NUM] = { - rConfig_Pmpd_AntA, rConfig_Pmpd_AntB}; - - u32 APK_value[PATH_NUM] = { - 0x92fc0000, 0x12fc0000}; - - u32 APK_normal_value[PATH_NUM] = { - 0x92680000, 0x12680000}; - - s8 APK_delta_mapping[APK_BB_REG_NUM][13] = { - {-4, -3, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6}, - {-4, -3, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6}, - {-6, -4, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6}, - {-1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6}, - {-11, -9, -7, -5, -3, -1, 0, 0, 0, 0, 0, 0, 0} - }; - - u32 APK_normal_setting_value_1[13] = { - 0x01017018, 0xf7ed8f84, 0x1b1a1816, 0x2522201e, 0x322e2b28, - 0x433f3a36, 0x5b544e49, 0x7b726a62, 0xa69a8f84, 0xdfcfc0b3, - 0x12680000, 0x00880000, 0x00880000 - }; - - u32 APK_normal_setting_value_2[16] = { - 0x01c7021d, 0x01670183, 0x01000123, 0x00bf00e2, 0x008d00a3, - 0x0068007b, 0x004d0059, 0x003a0042, 0x002b0031, 0x001f0025, - 0x0017001b, 0x00110014, 0x000c000f, 0x0009000b, 0x00070008, - 0x00050006 - }; - - u32 APK_result[PATH_NUM][APK_BB_REG_NUM]; /* val_1_1a, val_1_2a, val_2a, val_3a, val_4a */ - s32 BB_offset, delta_V, delta_offset; - - if (*(dm_odm->mp_mode) == 1) { - struct mpt_context *pMptCtx = &(adapt->mppriv.MptCtx); - pMptCtx->APK_bound[0] = 45; - pMptCtx->APK_bound[1] = 52; - } - - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("==>phy_APCalibrate_8188E() delta %d\n", delta)); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("AP Calibration for %s\n", (is2t ? "2T2R" : "1T1R"))); - if (!is2t) - pathbound = 1; - - /* 2 FOR NORMAL CHIP SETTINGS */ - -/* Temporarily do not allow normal driver to do the following settings - * because these offset and value will cause RF internal PA to be - * unpredictably disabled by HW, such that RF Tx signal will disappear - * after disable/enable card many times on 88CU. RF SD and DD have not - * find the root cause, so we remove these actions temporarily. - */ - if (*(dm_odm->mp_mode) != 1) - return; - /* settings adjust for normal chip */ - for (index = 0; index < PATH_NUM; index++) { - APK_offset[index] = APK_normal_offset[index]; - APK_value[index] = APK_normal_value[index]; - AFE_on_off[index] = 0x6fdb25a4; - } - - for (index = 0; index < APK_BB_REG_NUM; index++) { - for (path = 0; path < pathbound; path++) { - APK_RF_init_value[path][index] = APK_normal_RF_init_value[path][index]; - APK_RF_value_0[path][index] = APK_normal_RF_value_0[path][index]; - } - BB_AP_MODE[index] = BB_normal_AP_MODE[index]; - } - - apkbound = 6; - - /* save BB default value */ - for (index = 0; index < APK_BB_REG_NUM; index++) { - if (index == 0) /* skip */ - continue; - BB_backup[index] = ODM_GetBBReg(dm_odm, BB_REG[index], bMaskDWord); - } - - /* save MAC default value */ - _PHY_SaveMACRegisters(adapt, MAC_REG, MAC_backup); - - /* save AFE default value */ - _PHY_SaveADDARegisters(adapt, AFE_REG, AFE_backup, IQK_ADDA_REG_NUM); - - for (path = 0; path < pathbound; path++) { - if (path == RF_PATH_A) { - /* path A APK */ - /* load APK setting */ - /* path-A */ - offset = rPdp_AntA; - for (index = 0; index < 11; index++) { - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_1[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - offset += 0x04; - } - - ODM_SetBBReg(dm_odm, rConfig_Pmpd_AntB, bMaskDWord, 0x12680000); - - offset = rConfig_AntA; - for (; index < 13; index++) { - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_1[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - offset += 0x04; - } - - /* page-B1 */ - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0x40000000); - - /* path A */ - offset = rPdp_AntA; - for (index = 0; index < 16; index++) { - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_2[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - - offset += 0x04; - } - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0x00000000); - } else if (path == RF_PATH_B) { - /* path B APK */ - /* load APK setting */ - /* path-B */ - offset = rPdp_AntB; - for (index = 0; index < 10; index++) { - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_1[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - - offset += 0x04; - } - ODM_SetBBReg(dm_odm, rConfig_Pmpd_AntA, bMaskDWord, 0x12680000); - PHY_SetBBReg(adapt, rConfig_Pmpd_AntB, bMaskDWord, 0x12680000); - - offset = rConfig_AntA; - index = 11; - for (; index < 13; index++) { /* offset 0xb68, 0xb6c */ - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_1[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - offset += 0x04; - } - - /* page-B1 */ - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0x40000000); - - /* path B */ - offset = 0xb60; - for (index = 0; index < 16; index++) { - ODM_SetBBReg(dm_odm, offset, bMaskDWord, APK_normal_setting_value_2[index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", - offset, ODM_GetBBReg(dm_odm, offset, bMaskDWord))); - - offset += 0x04; - } - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0); - } - - /* save RF default value */ - regD[path] = PHY_QueryRFReg(adapt, path, RF_TXBIAS_A, bMaskDWord); - - /* Path A AFE all on, path B AFE All off or vise versa */ - for (index = 0; index < IQK_ADDA_REG_NUM; index++) - ODM_SetBBReg(dm_odm, AFE_REG[index], bMaskDWord, AFE_on_off[path]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0xe70 %x\n", - ODM_GetBBReg(dm_odm, rRx_Wait_CCA, bMaskDWord))); - - /* BB to AP mode */ - if (path == 0) { - for (index = 0; index < APK_BB_REG_NUM; index++) { - if (index == 0) /* skip */ - continue; - else if (index < 5) - ODM_SetBBReg(dm_odm, BB_REG[index], bMaskDWord, BB_AP_MODE[index]); - else if (BB_REG[index] == 0x870) - ODM_SetBBReg(dm_odm, BB_REG[index], bMaskDWord, BB_backup[index]|BIT10|BIT26); - else - ODM_SetBBReg(dm_odm, BB_REG[index], BIT10, 0x0); - } - - ODM_SetBBReg(dm_odm, rTx_IQK_Tone_A, bMaskDWord, 0x01008c00); - ODM_SetBBReg(dm_odm, rRx_IQK_Tone_A, bMaskDWord, 0x01008c00); - } else { - /* path B */ - ODM_SetBBReg(dm_odm, rTx_IQK_Tone_B, bMaskDWord, 0x01008c00); - ODM_SetBBReg(dm_odm, rRx_IQK_Tone_B, bMaskDWord, 0x01008c00); - } - - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() offset 0x800 %x\n", - ODM_GetBBReg(dm_odm, 0x800, bMaskDWord))); - - /* MAC settings */ - _PHY_MACSettingCalibration(adapt, MAC_REG, MAC_backup); - - if (path == RF_PATH_A) { - /* Path B to standby mode */ - ODM_SetRFReg(dm_odm, RF_PATH_B, RF_AC, bMaskDWord, 0x10000); - } else { - /* Path A to standby mode */ - ODM_SetRFReg(dm_odm, RF_PATH_A, RF_AC, bMaskDWord, 0x10000); - ODM_SetRFReg(dm_odm, RF_PATH_A, RF_MODE1, bMaskDWord, 0x1000f); - ODM_SetRFReg(dm_odm, RF_PATH_A, RF_MODE2, bMaskDWord, 0x20103); - } - - delta_offset = ((delta+14)/2); - if (delta_offset < 0) - delta_offset = 0; - else if (delta_offset > 12) - delta_offset = 12; - - /* AP calibration */ - for (index = 0; index < APK_BB_REG_NUM; index++) { - if (index != 1) /* only DO PA11+PAD01001, AP RF setting */ - continue; - - tmpreg = APK_RF_init_value[path][index]; - if (!dm_odm->RFCalibrateInfo.bAPKThermalMeterIgnore) { - BB_offset = (tmpreg & 0xF0000) >> 16; - - if (!(tmpreg & BIT15)) /* sign bit 0 */ - BB_offset = -BB_offset; - - delta_V = APK_delta_mapping[index][delta_offset]; - - BB_offset += delta_V; - - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, - ("phy_APCalibrate_8188E() APK index %d tmpreg 0x%x delta_V %d delta_offset %d\n", - index, tmpreg, delta_V, delta_offset)); - - if (BB_offset < 0) { - tmpreg = tmpreg & (~BIT15); - BB_offset = -BB_offset; - } else { - tmpreg = tmpreg | BIT15; - } - tmpreg = (tmpreg & 0xFFF0FFFF) | (BB_offset << 16); - } - - ODM_SetRFReg(dm_odm, path, RF_IPA_A, bMaskDWord, 0x8992e); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0xc %x\n", PHY_QueryRFReg(adapt, path, RF_IPA_A, bMaskDWord))); - ODM_SetRFReg(dm_odm, path, RF_AC, bMaskDWord, APK_RF_value_0[path][index]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0x0 %x\n", PHY_QueryRFReg(adapt, path, RF_AC, bMaskDWord))); - ODM_SetRFReg(dm_odm, path, RF_TXBIAS_A, bMaskDWord, tmpreg); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0xd %x\n", PHY_QueryRFReg(adapt, path, RF_TXBIAS_A, bMaskDWord))); - /* PA11+PAD01111, one shot */ - i = 0; - do { - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0x80000000); - ODM_SetBBReg(dm_odm, APK_offset[path], bMaskDWord, APK_value[0]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", APK_offset[path], ODM_GetBBReg(dm_odm, APK_offset[path], bMaskDWord))); - ODM_delay_ms(3); - ODM_SetBBReg(dm_odm, APK_offset[path], bMaskDWord, APK_value[1]); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0x%x value 0x%x\n", APK_offset[path], ODM_GetBBReg(dm_odm, APK_offset[path], bMaskDWord))); - - ODM_delay_ms(20); - ODM_SetBBReg(dm_odm, rFPGA0_IQK, bMaskDWord, 0x00000000); - - if (path == RF_PATH_A) - tmpreg = ODM_GetBBReg(dm_odm, rAPK, 0x03E00000); - else - tmpreg = ODM_GetBBReg(dm_odm, rAPK, 0xF8000000); - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_APCalibrate_8188E() offset 0xbd8[25:21] %x\n", tmpreg)); - - i++; - } while (tmpreg > apkbound && i < 4); - - APK_result[path][index] = tmpreg; - } - } - - /* reload MAC default value */ - _PHY_ReloadMACRegisters(adapt, MAC_REG, MAC_backup); - - /* reload BB default value */ - for (index = 0; index < APK_BB_REG_NUM; index++) { - if (index == 0) /* skip */ - continue; - ODM_SetBBReg(dm_odm, BB_REG[index], bMaskDWord, BB_backup[index]); - } - - /* reload AFE default value */ - reload_adda_reg(adapt, AFE_REG, AFE_backup, IQK_ADDA_REG_NUM); - - /* reload RF path default value */ - for (path = 0; path < pathbound; path++) { - ODM_SetRFReg(dm_odm, path, 0xd, bMaskDWord, regD[path]); - if (path == RF_PATH_B) { - ODM_SetRFReg(dm_odm, RF_PATH_A, RF_MODE1, bMaskDWord, 0x1000f); - ODM_SetRFReg(dm_odm, RF_PATH_A, RF_MODE2, bMaskDWord, 0x20101); - } - - /* note no index == 0 */ - if (APK_result[path][1] > 6) - APK_result[path][1] = 6; - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("apk path %d result %d 0x%x \t", path, 1, APK_result[path][1])); - } - - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("\n")); - - for (path = 0; path < pathbound; path++) { - ODM_SetRFReg(dm_odm, path, 0x3, bMaskDWord, - ((APK_result[path][1] << 15) | (APK_result[path][1] << 10) | (APK_result[path][1] << 5) | APK_result[path][1])); - if (path == RF_PATH_A) - ODM_SetRFReg(dm_odm, path, 0x4, bMaskDWord, - ((APK_result[path][1] << 15) | (APK_result[path][1] << 10) | (0x00 << 5) | 0x05)); - else - ODM_SetRFReg(dm_odm, path, 0x4, bMaskDWord, - ((APK_result[path][1] << 15) | (APK_result[path][1] << 10) | (0x02 << 5) | 0x05)); - ODM_SetRFReg(dm_odm, path, RF_BS_PA_APSET_G9_G11, bMaskDWord, - ((0x08 << 15) | (0x08 << 10) | (0x08 << 5) | 0x08)); - } - - dm_odm->RFCalibrateInfo.bAPKdone = true; - - ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("<==phy_APCalibrate_8188E()\n")); -} - -#define DP_BB_REG_NUM 7 -#define DP_RF_REG_NUM 1 -#define DP_RETRY_LIMIT 10 -#define DP_PATH_NUM 2 -#define DP_DPK_NUM 3 -#define DP_DPK_VALUE_NUM 2 - void PHY_IQCalibrate_8188E(struct adapter *adapt, bool recovery) { struct hal_data_8188e *pHalData = GET_HAL_DATA(adapt); @@ -1697,7 +1296,7 @@ void PHY_IQCalibrate_8188E(struct adapter *adapt, bool recovery) bool is2t; is2t = (dm_odm->RFType == ODM_2T2R) ? true : false; - if (ODM_CheckPowerStatus(adapt) == false) + if (!ODM_CheckPowerStatus(adapt)) return; if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION)) @@ -1867,28 +1466,6 @@ void PHY_LCCalibrate_8188E(struct adapter *adapt) ("LCK:Finish!!!interface %d\n", dm_odm->InterfaceIndex)); } -void PHY_APCalibrate_8188E(struct adapter *adapt, s8 delta) -{ - struct hal_data_8188e *pHalData = GET_HAL_DATA(adapt); - struct odm_dm_struct *dm_odm = &pHalData->odmpriv; - - return; - if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION)) - return; - -#if FOR_BRAZIL_PRETEST != 1 - if (dm_odm->RFCalibrateInfo.bAPKdone) -#endif - return; - - if (dm_odm->RFType == ODM_2T2R) { - phy_APCalibrate_8188E(adapt, delta, true); - } else { - /* For 88C 1T1R */ - phy_APCalibrate_8188E(adapt, delta, false); - } -} - static void phy_setrfpathswitch_8188e(struct adapter *adapt, bool main, bool is2t) { struct hal_data_8188e *pHalData = GET_HAL_DATA(adapt); diff --git a/drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c b/drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c index e913a22..5700dbc 100644 --- a/drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c +++ b/drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c @@ -85,7 +85,7 @@ u8 HalPwrSeqCmdParsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, value &= ~(GET_PWR_CFG_MASK(pwrcfgcmd)); value |= (GET_PWR_CFG_VALUE(pwrcfgcmd) & GET_PWR_CFG_MASK(pwrcfgcmd)); - /* Write the value back to sytem register */ + /* Write the value back to system register */ rtw_write8(padapter, offset, value); break; case PWR_CMD_POLLING: diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c index 8c858775..8be2ad7 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c @@ -273,7 +273,7 @@ void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt) static void ConstructBeacon(struct adapter *adapt, u8 *pframe, u32 *pLength) { struct rtw_ieee80211_hdr *pwlanhdr; - u16 *fctrl; + __le16 *fctrl; u32 rate_len, pktlen; struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); @@ -360,7 +360,7 @@ static void ConstructPSPoll(struct adapter *adapt, u8 *pframe, u32 *pLength) struct rtw_ieee80211_hdr *pwlanhdr; struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - u16 *fctrl; + __le16 *fctrl; pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; @@ -391,7 +391,7 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, u8 bForcePowerSave) { struct rtw_ieee80211_hdr *pwlanhdr; - u16 *fctrl; + __le16 *fctrl; u32 pktlen; struct mlme_priv *pmlmepriv = &adapt->mlmepriv; struct wlan_network *cur_network = &pmlmepriv->cur_network; @@ -450,7 +450,7 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength, u8 *StaAddr, bool bHideSSID) { struct rtw_ieee80211_hdr *pwlanhdr; - u16 *fctrl; + __le16 *fctrl; u8 *mac, *bssid; u32 pktlen; struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); @@ -484,7 +484,7 @@ static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength, u *pLength = pktlen; } -/* To check if reserved page content is destroyed by beacon beacuse beacon is too large. */ +/* To check if reserved page content is destroyed by beacon because beacon is too large. */ /* 2010.06.23. Added by tynli. */ void CheckFwRsvdPageContent(struct adapter *Adapter) { @@ -496,9 +496,9 @@ void CheckFwRsvdPageContent(struct adapter *Adapter) /* (1)Beacon, (2)Ps-poll, (3)Null data, (4)ProbeRsp. */ /* Input: */ /* bDLFinished - false: At the first time we will send all the packets as a large packet to Hw, */ -/* so we need to set the packet length to total lengh. */ +/* so we need to set the packet length to total length. */ /* true: At the second time, we should send the first packet (default:beacon) */ -/* to Hw again and set the lengh in descriptor to the real beacon lengh. */ +/* to Hw again and set the length in descriptor to the real beacon length. */ /* 2009.10.15 by tynli. */ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) { @@ -671,7 +671,7 @@ _func_enter_; DBG_88E("%s: 1 Download RSVD success! DLBcnCount:%u, poll:%u\n", __func__, DLBcnCount, poll); /* */ /* We just can send the reserved page twice during the time that Tx thread is stopped (e.g. pnpsetpower) */ - /* becuase we need to free the Tx BCN Desc which is used by the first reserved page packet. */ + /* because we need to free the Tx BCN Desc which is used by the first reserved page packet. */ /* At run time, we cannot get the Tx Desc until it is released in TxHandleInterrupt() so we will return */ /* the beacon TCB in the following code. 2011.11.23. by tynli. */ /* */ diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c index 292ba62..52b3fba 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c @@ -19,6 +19,7 @@ ******************************************************************************/ #define _HAL_INIT_C_ +#include <linux/firmware.h> #include <drv_types.h> #include <rtw_efuse.h> @@ -588,13 +589,15 @@ s32 rtl8188e_FirmwareDownload(struct adapter *padapter) u8 writeFW_retry = 0; u32 fwdl_start_time; struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); - - u8 *FwImage; - u32 FwImageLen; + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct device *device = dvobj_to_dev(dvobj); struct rt_firmware *pFirmware = NULL; + const struct firmware *fw; struct rt_firmware_hdr *pFwHdr = NULL; u8 *pFirmwareBuf; - u32 FirmwareLen; + u32 FirmwareLen; + char fw_name[] = "rtlwifi/rtl8188eufw.bin"; + static int log_version; RT_TRACE(_module_hal_init_c_, _drv_info_, ("+%s\n", __func__)); pFirmware = (struct rt_firmware *)rtw_zmalloc(sizeof(struct rt_firmware)); @@ -603,27 +606,32 @@ s32 rtl8188e_FirmwareDownload(struct adapter *padapter) goto Exit; } - FwImage = (u8 *)Rtl8188E_FwImageArray; - FwImageLen = Rtl8188E_FWImgArrayLength; - - pFirmware->eFWSource = FW_SOURCE_HEADER_FILE; - - switch (pFirmware->eFWSource) { - case FW_SOURCE_IMG_FILE: - break; - case FW_SOURCE_HEADER_FILE: - if (FwImageLen > FW_8188E_SIZE) { - rtStatus = _FAIL; - RT_TRACE(_module_hal_init_c_, _drv_err_, ("Firmware size exceed 0x%X. Check it.\n", FW_8188E_SIZE)); - goto Exit; - } + if (request_firmware(&fw, fw_name, device)) { + rtStatus = _FAIL; + goto Exit; + } + if (!fw) { + pr_err("Firmware %s not available\n", fw_name); + rtStatus = _FAIL; + goto Exit; + } + if (fw->size > FW_8188E_SIZE) { + rtStatus = _FAIL; + RT_TRACE(_module_hal_init_c_, _drv_err_, ("Firmware size exceed 0x%X. Check it.\n", FW_8188E_SIZE)); + goto Exit; + } - pFirmware->szFwBuffer = FwImage; - pFirmware->ulFwLength = FwImageLen; - break; + pFirmware->szFwBuffer = kzalloc(FW_8188E_SIZE, GFP_KERNEL); + if (!pFirmware->szFwBuffer) { + rtStatus = _FAIL; + goto Exit; } + memcpy(pFirmware->szFwBuffer, fw->data, fw->size); + pFirmware->ulFwLength = fw->size; pFirmwareBuf = pFirmware->szFwBuffer; FirmwareLen = pFirmware->ulFwLength; + release_firmware(fw); + DBG_88E_LEVEL(_drv_info_, "+%s: !bUsedWoWLANFw, FmrmwareLen:%d+\n", __func__, FirmwareLen); /* To Check Fw header. Added by tynli. 2009.12.04. */ @@ -633,8 +641,10 @@ s32 rtl8188e_FirmwareDownload(struct adapter *padapter) pHalData->FirmwareSubVersion = pFwHdr->Subversion; pHalData->FirmwareSignature = le16_to_cpu(pFwHdr->Signature); - DBG_88E("%s: fw_ver =%d fw_subver =%d sig = 0x%x\n", - __func__, pHalData->FirmwareVersion, pHalData->FirmwareSubVersion, pHalData->FirmwareSignature); + if (!log_version++) + pr_info("%sFirmware Version %d, SubVersion %d, Signature 0x%x\n", + DRIVER_PREFIX, pHalData->FirmwareVersion, + pHalData->FirmwareSubVersion, pHalData->FirmwareSignature); if (IS_FW_HEADER_EXIST(pFwHdr)) { /* Shift 32 bytes for FW header */ @@ -677,7 +687,7 @@ s32 rtl8188e_FirmwareDownload(struct adapter *padapter) goto Exit; } RT_TRACE(_module_hal_init_c_, _drv_info_, ("Firmware is ready to run!\n")); - + kfree(pFirmware->szFwBuffer); Exit: kfree(pFirmware); @@ -1479,7 +1489,6 @@ static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u8 efuse static bool hal_EfusePgPacketWriteData(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt, bool bPseudoTest) { - bool bRet = false; u16 efuse_addr = *pAddr; u8 badworden = 0; u32 PgWriteSuccess = 0; @@ -1497,7 +1506,6 @@ static bool hal_EfusePgPacketWriteData(struct adapter *pAdapter, u8 efuseType, u else return true; } - return bRet; } static bool @@ -1653,7 +1661,7 @@ hal_EfusePgCheckAvailableAddr( { u16 efuse_max_available_len = 0; - /* Change to check TYPE_EFUSE_MAP_LEN , beacuse 8188E raw 256, logic map over 256. */ + /* Change to check TYPE_EFUSE_MAP_LEN , because 8188E raw 256, logic map over 256. */ EFUSE_GetEfuseDefinition(pAdapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&efuse_max_available_len, false); if (Efuse_GetCurrentSize(pAdapter, efuseType, bPseudoTest) >= efuse_max_available_len) @@ -2100,7 +2108,7 @@ static u8 Hal_GetChnlGroup88E(u8 chnl, u8 *pGroup) if (chnl <= 14) { bIn24G = true; - if (chnl < 3) /* Chanel 1-2 */ + if (chnl < 3) /* Channel 1-2 */ *pGroup = 0; else if (chnl < 6) /* Channel 3-5 */ *pGroup = 1; @@ -2182,7 +2190,7 @@ void Hal_ReadTxPowerInfo88E(struct adapter *padapter, u8 *PROMContent, bool Auto pHalData->bTXPowerDataReadFromEEPORM = true; for (rfPath = 0; rfPath < pHalData->NumTotalRFPath; rfPath++) { - for (ch = 0; ch <= CHANNEL_MAX_NUMBER; ch++) { + for (ch = 0; ch < CHANNEL_MAX_NUMBER; ch++) { bIn24G = Hal_GetChnlGroup88E(ch, &group); if (bIn24G) { pHalData->Index24G_CCK_Base[rfPath][ch] = pwrInfo24G.IndexCCK_Base[rfPath][group]; diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c b/drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c index ff468a6..68bb96d 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c @@ -559,7 +559,7 @@ static int phy_BB8188E_Config_ParaFile(struct adapter *Adapter) /* */ /* 1. Read PHY_REG.TXT BB INIT!! */ - /* We will seperate as 88C / 92C according to chip version */ + /* We will separate as 88C / 92C according to chip version */ /* */ if (HAL_STATUS_FAILURE == ODM_ConfigBBWithHeaderFile(&pHalData->odmpriv, CONFIG_BB_PHY_REG)) rtStatus = _FAIL; @@ -685,7 +685,7 @@ static u8 phy_DbmToTxPwrIdx(struct adapter *Adapter, enum wireless_mode Wireless /* */ /* Tested by MP, we found that CCK Index 0 equals to 8dbm, OFDM legacy equals to */ - /* 3dbm, and OFDM HT equals to 0dbm repectively. */ + /* 3dbm, and OFDM HT equals to 0dbm respectively. */ /* Note: */ /* The mapping may be different by different NICs. Do not use this formula for what needs accurate result. */ /* By Bruce, 2008-01-29. */ @@ -1006,12 +1006,12 @@ _PHY_SetBWMode92C( switch (pHalData->CurrentChannelBW) { case HT_CHANNEL_WIDTH_20: regBwOpMode |= BW_OPMODE_20MHZ; - /* 2007/02/07 Mark by Emily becasue we have not verify whether this register works */ + /* 2007/02/07 Mark by Emily because we have not verify whether this register works */ rtw_write8(Adapter, REG_BWOPMODE, regBwOpMode); break; case HT_CHANNEL_WIDTH_40: regBwOpMode &= ~BW_OPMODE_20MHZ; - /* 2007/02/07 Mark by Emily becasue we have not verify whether this register works */ + /* 2007/02/07 Mark by Emily because we have not verify whether this register works */ rtw_write8(Adapter, REG_BWOPMODE, regBwOpMode); regRRSR_RSC = (regRRSR_RSC&0x90) | (pHalData->nCur40MhzPrimeSC<<5); rtw_write8(Adapter, REG_RRSR+2, regRRSR_RSC); diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c b/drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c index bfdf9b3..299e03e 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c @@ -181,7 +181,7 @@ i * Currently, we cannot fully disable driver dynamic * tx power mechanism because it is referenced by BT * coexist mechanism. * In the future, two mechanism shall be separated from - * each other and maintained independantly. */ + * each other and maintained independently. */ if (pdmpriv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1) { TxAGC[RF_PATH_A] = 0x10101010; TxAGC[RF_PATH_B] = 0x10101010; @@ -216,11 +216,11 @@ i * Currently, we cannot fully disable driver dynamic ODM_TxPwrTrackAdjust88E(&pHalData->odmpriv, 1, &direction, &pwrtrac_value); if (direction == 1) { - /* Increase TX pwoer */ + /* Increase TX power */ TxAGC[0] += pwrtrac_value; TxAGC[1] += pwrtrac_value; } else if (direction == 2) { - /* Decrease TX pwoer */ + /* Decrease TX power */ TxAGC[0] -= pwrtrac_value; TxAGC[1] -= pwrtrac_value; } @@ -292,7 +292,7 @@ static void get_rx_power_val_by_reg(struct adapter *Adapter, u8 Channel, if (pHalData->pwrGroupCnt == 1) chnlGroup = 0; if (pHalData->pwrGroupCnt >= pHalData->PGMaxGroup) { - if (Channel < 3) /* Chanel 1-2 */ + if (Channel < 3) /* Channel 1-2 */ chnlGroup = 0; else if (Channel < 6) /* Channel 3-5 */ chnlGroup = 1; @@ -349,7 +349,7 @@ static void get_rx_power_val_by_reg(struct adapter *Adapter, u8 Channel, } /* 20100427 Joseph: Driver dynamic Tx power shall not affect Tx power. It shall be determined by power training mechanism. */ /* Currently, we cannot fully disable driver dynamic tx power mechanism because it is referenced by BT coexist mechanism. */ -/* In the future, two mechanism shall be separated from each other and maintained independantly. Thanks for Lanhsin's reminder. */ +/* In the future, two mechanism shall be separated from each other and maintained independently. Thanks for Lanhsin's reminder. */ /* 92d do not need this */ if (pdmpriv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1) writeVal = 0x14141414; diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c index bd8a9ae..8f43f49 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c @@ -332,7 +332,7 @@ static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bag /* 2009.11.05. tynli_test. Suggested by SD4 Filen for FW LPS. */ /* (1) The sequence number of each non-Qos frame / broadcast / multicast / */ - /* mgnt frame should be controled by Hw because Fw will also send null data */ + /* mgnt frame should be controlled by Hw because Fw will also send null data */ /* which we cannot control when Fw LPS enable. */ /* --> default enable non-Qos data sequense number. 2010.06.23. by tynli. */ /* (2) Enable HW SEQ control for beacon packet, because we use Hw beacon. */ diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c b/drivers/staging/rtl8188eu/hal/usb_halinit.c index 5e656ce..cca9732 100644 --- a/drivers/staging/rtl8188eu/hal/usb_halinit.c +++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c @@ -464,7 +464,7 @@ static void _InitRetryFunction(struct adapter *Adapter) /*----------------------------------------------------------------------------- * Function: usb_AggSettingTxUpdate() * - * Overview: Seperate TX/RX parameters update independent for TP detection and + * Overview: Separate TX/RX parameters update independent for TP detection and * dynamic TX/RX aggreagtion parameters update. * * Input: struct adapter * @@ -473,7 +473,7 @@ static void _InitRetryFunction(struct adapter *Adapter) * * Revised History: * When Who Remark - * 12/10/2010 MHC Seperate to smaller function. + * 12/10/2010 MHC Separate to smaller function. * *---------------------------------------------------------------------------*/ static void usb_AggSettingTxUpdate(struct adapter *Adapter) @@ -496,7 +496,7 @@ static void usb_AggSettingTxUpdate(struct adapter *Adapter) /*----------------------------------------------------------------------------- * Function: usb_AggSettingRxUpdate() * - * Overview: Seperate TX/RX parameters update independent for TP detection and + * Overview: Separate TX/RX parameters update independent for TP detection and * dynamic TX/RX aggreagtion parameters update. * * Input: struct adapter * @@ -505,7 +505,7 @@ static void usb_AggSettingTxUpdate(struct adapter *Adapter) * * Revised History: * When Who Remark - * 12/10/2010 MHC Seperate to smaller function. + * 12/10/2010 MHC Separate to smaller function. * *---------------------------------------------------------------------------*/ static void @@ -847,7 +847,7 @@ _func_enter_; /* */ /* Init CR MACTXEN, MACRXEN after setting RxFF boundary REG_TRXFF_BNDY to patch */ - /* Hw bug which Hw initials RxFF boundry size to a value which is larger than the real Rx buffer size in 88E. */ + /* Hw bug which Hw initials RxFF boundary size to a value which is larger than the real Rx buffer size in 88E. */ /* */ /* Enable MACTXEN/MACRXEN block */ value16 = rtw_read16(Adapter, REG_CR); diff --git a/drivers/staging/rtl8188eu/hal/usb_ops_linux.c b/drivers/staging/rtl8188eu/hal/usb_ops_linux.c index bc56416..787763e 100644 --- a/drivers/staging/rtl8188eu/hal/usb_ops_linux.c +++ b/drivers/staging/rtl8188eu/hal/usb_ops_linux.c @@ -547,6 +547,8 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("usb_read_port_complete : purb->status(%d) != 0\n", purb->status)); DBG_88E("###=> usb_read_port_complete => urb status(%d)\n", purb->status); + skb_put(precvbuf->pskb, purb->actual_length); + precvbuf->pskb = NULL; if (rtw_inc_and_chk_continual_urb_error(adapter_to_dvobj(adapt))) adapt->bSurpriseRemoved = true; @@ -605,68 +607,68 @@ _func_enter_; return _FAIL; } + if (!precvbuf) { + RT_TRACE(_module_hci_ops_os_c_, _drv_err_, + ("usb_read_port:precvbuf==NULL\n")); + return _FAIL; + } + if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) { precvbuf->pskb = skb_dequeue(&precvpriv->free_recv_skb_queue); if (NULL != precvbuf->pskb) precvbuf->reuse = true; } - if (precvbuf != NULL) { - rtl8188eu_init_recvbuf(adapter, precvbuf); - - /* re-assign for linux based on skb */ - if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) { - precvbuf->pskb = netdev_alloc_skb(adapter->pnetdev, MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ); - if (precvbuf->pskb == NULL) { - RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("init_recvbuf(): alloc_skb fail!\n")); - DBG_88E("#### usb_read_port() alloc_skb fail!#####\n"); - return _FAIL; - } - - tmpaddr = (size_t)precvbuf->pskb->data; - alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); - skb_reserve(precvbuf->pskb, (RECVBUFF_ALIGN_SZ - alignment)); - - precvbuf->phead = precvbuf->pskb->head; - precvbuf->pdata = precvbuf->pskb->data; - precvbuf->ptail = skb_tail_pointer(precvbuf->pskb); - precvbuf->pend = skb_end_pointer(precvbuf->pskb); - precvbuf->pbuf = precvbuf->pskb->data; - } else { /* reuse skb */ - precvbuf->phead = precvbuf->pskb->head; - precvbuf->pdata = precvbuf->pskb->data; - precvbuf->ptail = skb_tail_pointer(precvbuf->pskb); - precvbuf->pend = skb_end_pointer(precvbuf->pskb); - precvbuf->pbuf = precvbuf->pskb->data; + rtl8188eu_init_recvbuf(adapter, precvbuf); - precvbuf->reuse = false; + /* re-assign for linux based on skb */ + if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) { + precvbuf->pskb = netdev_alloc_skb(adapter->pnetdev, MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ); + if (precvbuf->pskb == NULL) { + RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("init_recvbuf(): alloc_skb fail!\n")); + DBG_88E("#### usb_read_port() alloc_skb fail!#####\n"); + return _FAIL; } - precvpriv->rx_pending_cnt++; + tmpaddr = (size_t)precvbuf->pskb->data; + alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); + skb_reserve(precvbuf->pskb, (RECVBUFF_ALIGN_SZ - alignment)); + + precvbuf->phead = precvbuf->pskb->head; + precvbuf->pdata = precvbuf->pskb->data; + precvbuf->ptail = skb_tail_pointer(precvbuf->pskb); + precvbuf->pend = skb_end_pointer(precvbuf->pskb); + precvbuf->pbuf = precvbuf->pskb->data; + } else { /* reuse skb */ + precvbuf->phead = precvbuf->pskb->head; + precvbuf->pdata = precvbuf->pskb->data; + precvbuf->ptail = skb_tail_pointer(precvbuf->pskb); + precvbuf->pend = skb_end_pointer(precvbuf->pskb); + precvbuf->pbuf = precvbuf->pskb->data; + + precvbuf->reuse = false; + } - purb = precvbuf->purb; + precvpriv->rx_pending_cnt++; - /* translate DMA FIFO addr to pipehandle */ - pipe = ffaddr2pipehdl(pdvobj, addr); + purb = precvbuf->purb; - usb_fill_bulk_urb(purb, pusbd, pipe, - precvbuf->pbuf, - MAX_RECVBUF_SZ, - usb_read_port_complete, - precvbuf);/* context is precvbuf */ + /* translate DMA FIFO addr to pipehandle */ + pipe = ffaddr2pipehdl(pdvobj, addr); - err = usb_submit_urb(purb, GFP_ATOMIC); - if ((err) && (err != (-EPERM))) { - RT_TRACE(_module_hci_ops_os_c_, _drv_err_, - ("cannot submit rx in-token(err=0x%.8x), URB_STATUS =0x%.8x", - err, purb->status)); - DBG_88E("cannot submit rx in-token(err = 0x%08x),urb_status = %d\n", - err, purb->status); - ret = _FAIL; - } - } else { + usb_fill_bulk_urb(purb, pusbd, pipe, + precvbuf->pbuf, + MAX_RECVBUF_SZ, + usb_read_port_complete, + precvbuf);/* context is precvbuf */ + + err = usb_submit_urb(purb, GFP_ATOMIC); + if ((err) && (err != (-EPERM))) { RT_TRACE(_module_hci_ops_os_c_, _drv_err_, - ("usb_read_port:precvbuf ==NULL\n")); + ("cannot submit rx in-token(err=0x%.8x), URB_STATUS =0x%.8x", + err, purb->status)); + DBG_88E("cannot submit rx in-token(err = 0x%08x),urb_status = %d\n", + err, purb->status); ret = _FAIL; } |