[hamradio-commits] [limesuite] 01/08: New upstream version 16.12.0+dfsg

Andreas E. Bombe aeb at moszumanska.debian.org
Thu Jan 12 00:53:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

aeb pushed a commit to branch master
in repository limesuite.

commit 0a63e28cc1d2efc210ab4a6229a116312109ddd4
Author: Andreas Bombe <aeb at debian.org>
Date:   Thu Jan 12 00:13:29 2017 +0100

    New upstream version 16.12.0+dfsg
---
 CMakeLists.txt                                     |   23 +-
 SoapyLMS7/Streaming.cpp                            |   17 +-
 debian/changelog                                   |    6 +
 debian/control                                     |   10 +-
 ...e16.8-1.install => liblimesuite16.12-1.install} |    0
 mcu_program/CMakeLists.txt                         |   16 +-
 mcu_program/build/RxMIMO_calibration.ini           | 1128 --------------------
 mcu_program/build/TxCalib.ini                      | 1128 --------------------
 mcu_program/calibrationsLMS7_MCU.hex               |  510 ---------
 mcu_program/calibrationsLMS7_MCU.uvproj            |  166 ++-
 mcu_program/common_src/lms7002m_calibrations.c     |  564 +++++-----
 mcu_program/common_src/lms7002m_controls.c         |  326 +++---
 mcu_program/common_src/lms7002m_controls.h         |    8 +-
 mcu_program/host_src/main.cpp                      |  107 +-
 mcu_program/host_src/mcu.c                         |   28 +-
 mcu_program/host_src/mcuHexBin.cpp                 |    5 +-
 mcu_program/host_src/spi.cpp                       |   26 +
 mcu_program/mcu_src/main.c                         |   61 +-
 mcu_program/mcu_src/spi.c                          |    4 +-
 src/CMakeLists.txt                                 |   10 -
 src/ConnectionSTREAM/ConnectionSTREAM.cpp          |    2 +-
 src/ConnectionSTREAM/ConnectionSTREAMing.cpp       |    2 +-
 src/LimeUtil.cpp                                   |    4 +-
 src/VersionInfo.h                                  |   29 +-
 src/VersionInfo.in.cpp                             |   19 +
 src/auto_version.py                                |   64 --
 src/fftviewer_wxgui/fftviewer_frFFTviewer.cpp      |   16 +-
 src/lms7002m/LMS7002M_parameters.h                 |    2 +-
 src/lms7002m/mcu_dc_iq_calibration.cpp             | 1024 +++++++++---------
 src/version.h                                      |   16 -
 30 files changed, 1310 insertions(+), 4011 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4dce7fe..ba2abcf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,20 +22,13 @@ endif()
 ########################################################################
 # gather version information
 ########################################################################
-
-# extract library version number from generated version.h
-# in the future, this might be recoreded directly here
-# use the date stamp and build number to make a dotted version
-file(READ "${PROJECT_SOURCE_DIR}/src/version.h" version_h)
-string(REGEX MATCH "static const int year = 20([0-9]+)" VERSION_MATCHES "${version_h}")
-set(VERSION_MAJOR ${CMAKE_MATCH_1})
-string(REGEX MATCH "static const int month = ([0-9]+)" VERSION_MATCHES "${version_h}")
-set(VERSION_MINOR ${CMAKE_MATCH_1})
-string(REGEX MATCH "static const int day = ([0-9]+)" VERSION_MATCHES "${version_h}")
-set(VERSION_PATCH ${CMAKE_MATCH_1})
-string(REGEX MATCH "static const int buildsCounter = ([0-9]+)" VERSION_MATCHES "${version_h}")
-set(BUILD_NUMBER ${CMAKE_MATCH_1})
-set(LIME_SUITE_LIBVER "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${BUILD_NUMBER}")
+# The version of this library: major, minor, and patch
+# Manually increment these numbers when creating releases.
+# LIME_SUITE_API_VERSION in VersionInfo.h reflects the major/minor,
+# and must be set manually when non-patch releases are created.
+set(VERSION_MAJOR 16)
+set(VERSION_MINOR 12)
+set(VERSION_PATCH 0)
 
 # the ABI compatibility number should be incremented when the ABI changes
 # the format is to use the same major and minor, but to have an incrementing
@@ -54,6 +47,7 @@ if (NOT LIME_SUITE_EXTVER)
     endif (GITHASH)
 endif()
 
+set(LIME_SUITE_LIBVER "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 set(LIME_SUITE_VERSION "${LIME_SUITE_LIBVER}-${LIME_SUITE_EXTVER}")
 string(TIMESTAMP BUILD_TIMESTAMP "%Y-%m-%d")
 
@@ -140,6 +134,7 @@ endif()
 ## lime suite build
 ########################################################################
 add_subdirectory(src)
+add_subdirectory(mcu_program)
 
 ########################################################################
 ## SoapySDR bindings for LMS7 RFIC driver
diff --git a/SoapyLMS7/Streaming.cpp b/SoapyLMS7/Streaming.cpp
index 2fc10e0..cdca36b 100644
--- a/SoapyLMS7/Streaming.cpp
+++ b/SoapyLMS7/Streaming.cpp
@@ -22,6 +22,7 @@ struct IConnectionStream
     std::vector<size_t> streamID;
     int direction;
     size_t elemSize;
+    size_t elemMTU;
 
     //rx cmd requests
     bool hasCmd;
@@ -133,6 +134,7 @@ SoapySDR::Stream *SoapyLMS7::setupStream(
         if (status != 0)
             throw std::runtime_error("SoapyLMS7::setupStream() failed: " + std::string(GetLastErrorMessage()));
         stream->streamID.push_back(streamID);
+        stream->elemMTU = _conn->GetStreamSize(streamID);
     }
     return (SoapySDR::Stream *)stream;
 }
@@ -150,12 +152,7 @@ void SoapyLMS7::closeStream(SoapySDR::Stream *stream)
 size_t SoapyLMS7::getStreamMTU(SoapySDR::Stream *stream) const
 {
     auto icstream = (IConnectionStream *)stream;
-    const auto &streamID = icstream->streamID;
-    for(auto i : streamID)
-    {
-        return _conn->GetStreamSize(i);
-    }
-    return 0;
+    return icstream->elemMTU;
 }
 
 int SoapyLMS7::activateStream(
@@ -215,7 +212,7 @@ int SoapyLMS7::deactivateStream(
 int SoapyLMS7::readStream(
     SoapySDR::Stream *stream,
     void * const *buffs,
-    const size_t numElems,
+    size_t numElems,
     int &flags,
     long long &timeNs,
     const long timeoutUs)
@@ -235,6 +232,12 @@ int SoapyLMS7::readStream(
         return SOAPY_SDR_TIMEOUT;
     }
 
+    //handle the one packet flag by clipping
+    if ((flags & SOAPY_SDR_ONE_PACKET) != 0)
+    {
+        numElems = std::min(numElems, icstream->elemMTU);
+    }
+
     ReadStreamAgain:
     StreamMetadata metadata;
     int status = 0;
diff --git a/debian/changelog b/debian/changelog
index 97bcc92..16e102c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+limesuite (16.12.0-1) unstable; urgency=low
+
+  * updated debian packaging for 16.12.0 release
+
+ -- Lime Microsystems <info at limemicro.com>  Fri, 30 Dec 2016 00:36:51 -0800
+
 limesuite (16.8.1.819) unstable; urgency=low
 
   * updated debian packaging for latest version.h
diff --git a/debian/control b/debian/control
index 3f67ea3..45ff9db 100644
--- a/debian/control
+++ b/debian/control
@@ -11,12 +11,12 @@ Build-Depends:
     libi2c-dev,
     freeglut3-dev,
     libsqlite3-dev
-Standards-Version: 3.9.7
+Standards-Version: 3.9.8
 Homepage: https://myriadrf.org/projects/lime-suite/
 Vcs-Git: https://github.com/myriadrf/LimeSuite.git
 Vcs-Browser: https://github.com/myriadrf/LimeSuite.git
 
-Package: liblimesuite16.8-1
+Package: liblimesuite16.12-1
 Section: libs
 Architecture: any
 Multi-Arch: same
@@ -30,7 +30,7 @@ Package: liblimesuite-dev
 Section: libdevel
 Architecture: any
 Depends:
-    liblimesuite16.8-1 (= ${binary:Version}),
+    liblimesuite16.12-1 (= ${binary:Version}),
     ${misc:Depends}
 Description: Lime Suite - development files
  Lime Suite application software.
@@ -39,7 +39,7 @@ Package: limesuite
 Section: comm
 Architecture: any
 Depends:
-    liblimesuite16.8-1 (= ${binary:Version}),
+    liblimesuite16.12-1 (= ${binary:Version}),
     ${shlibs:Depends},
     ${misc:Depends},
     xdg-utils
@@ -59,7 +59,7 @@ Section: comm
 Architecture: any
 Multi-Arch: same
 Depends:
-    liblimesuite16.8-1 (= ${binary:Version}),
+    liblimesuite16.12-1 (= ${binary:Version}),
     ${shlibs:Depends},
     ${misc:Depends},
     python, python-soapysdr
diff --git a/debian/liblimesuite16.8-1.install b/debian/liblimesuite16.12-1.install
similarity index 100%
rename from debian/liblimesuite16.8-1.install
rename to debian/liblimesuite16.12-1.install
diff --git a/mcu_program/CMakeLists.txt b/mcu_program/CMakeLists.txt
index 9750578..df13c56 100644
--- a/mcu_program/CMakeLists.txt
+++ b/mcu_program/CMakeLists.txt
@@ -3,14 +3,6 @@ cmake_policy(SET CMP0003 NEW)
 #C++11 is a required language feature for this project
 set(CMAKE_CXX_STANDARD 11)
 
-#include modules for finding CyAPI
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}")
-if(WIN32)
-    find_package(CyAPI)
-    include_directories( ${CYAPI_INCLUDE_DIRS})
-    set(USB_LIBRARIES ${CYAPI_LIBRARIES} SetupAPI)
-endif()
-
 if(CMAKE_COMPILER_IS_GNUCXX)
 
     #enable C++11 on older versions of cmake
@@ -47,12 +39,12 @@ include_directories(../src/ConnectionSTREAM)
 include_directories(../src/protocols)
 include_directories(common_src)
 
-add_executable(mcu_calibration ${HOST_SOURCES})
+add_executable(MCU_TestBench ${HOST_SOURCES})
 if(WIN32)
-target_link_libraries(mcu_calibration LimeSuite sqlite3_static)
+target_link_libraries(MCU_TestBench LimeSuite sqlite3_static)
 else()
-target_link_libraries(mcu_calibration LimeSuite sqlite3)
+target_link_libraries(MCU_TestBench LimeSuite sqlite3)
 endif()
 if(WIN32)
-    target_link_libraries(mcu_calibration ${CYAPI_LIBRARIES} SetupAPI)
+    target_link_libraries(MCU_TestBench ${CYAPI_LIBRARIES} SetupAPI)
 endif()
diff --git a/mcu_program/build/RxMIMO_calibration.ini b/mcu_program/build/RxMIMO_calibration.ini
deleted file mode 100644
index 4aa03e2..0000000
--- a/mcu_program/build/RxMIMO_calibration.ini
+++ /dev/null
@@ -1,1128 +0,0 @@
-[file_info]
-type=lms7002m_minimal_config
-version=1
-[lms7002_registers_a]
-0x0020=0xFFFD
-0x0021=0x0E9F
-0x0022=0x07DF
-0x0023=0x5550
-0x0024=0xE4E4
-0x0025=0x0101
-0x0026=0x0101
-0x0027=0xB1E4
-0x0028=0x0101
-0x0029=0x0101
-0x002A=0x0086
-0x002B=0x0038
-0x002C=0x0000
-0x002D=0x0000
-0x002E=0x0000
-0x002F=0x3840
-0x0081=0x0000
-0x0082=0x8001
-0x0084=0x0400
-0x0085=0x0001
-0x0086=0x4101
-0x0087=0x0000
-0x0088=0x04B0
-0x0089=0x1090
-0x008A=0x0514
-0x008B=0x2106
-0x008C=0x267B
-0x0092=0x0001
-0x0093=0x0000
-0x0094=0x0000
-0x0095=0x0000
-0x0096=0x0000
-0x0097=0x0000
-0x0098=0x0000
-0x0099=0x6565
-0x009A=0x658C
-0x009B=0x6565
-0x009C=0x658C
-0x009D=0x6565
-0x009E=0x658C
-0x009F=0x658C
-0x00A0=0x6565
-0x00A1=0x6565
-0x00A2=0x6565
-0x00A3=0x6565
-0x00A4=0x6565
-0x00A5=0x6565
-0x00A6=0x000F
-0x00A7=0x6565
-0x00A8=0x0000
-0x00A9=0x0000
-0x00AA=0x0000
-0x00AB=0x0000
-0x00AC=0x0000
-0x00AD=0x03FF
-0x00AE=0xF000
-0x0100=0x7409
-0x0101=0x7800
-0x0102=0x3180
-0x0103=0x0A12
-0x0104=0x0088
-0x0105=0x0007
-0x0106=0x318C
-0x0107=0x318C
-0x0108=0x2826
-0x0109=0x61C1
-0x010A=0x104C
-0x010C=0x8865
-0x010D=0x015B
-0x010E=0x0788
-0x010F=0x3042
-0x0110=0x0BFF
-0x0111=0x0083
-0x0112=0xC0E6
-0x0113=0x03C3
-0x0114=0x008D
-0x0115=0x0009
-0x0116=0x8180
-0x0117=0x280C
-0x0118=0x018C
-0x0119=0x18CE
-0x011A=0x2E02
-0x011C=0xAD41
-0x011D=0xAAAA
-0x011E=0x0642
-0x011F=0x3680
-0x0120=0xB9FF
-0x0121=0x36AA
-0x0122=0x033F
-0x0123=0x067B
-0x0124=0x0000
-0x0200=0x0081
-0x0201=0x07FF
-0x0202=0x07FF
-0x0203=0x0000
-0x0204=0x0000
-0x0205=0x0000
-0x0206=0x0000
-0x0207=0x0000
-0x0208=0x0170
-0x0209=0x0000
-0x020A=0x0000
-0x020B=0x0000
-0x020C=0x0000
-0x0240=0x0020
-0x0241=0x0000
-0x0242=0x0000
-0x0243=0x0000
-0x0244=0x0000
-0x0245=0x0000
-0x0246=0x0000
-0x0247=0x0000
-0x0248=0x0000
-0x0249=0x0000
-0x024A=0x0000
-0x024B=0x0000
-0x024C=0x0000
-0x024D=0x0000
-0x024E=0x0000
-0x024F=0x0000
-0x0250=0x0000
-0x0251=0x0000
-0x0252=0x0000
-0x0253=0x0000
-0x0254=0x0000
-0x0255=0x0000
-0x0256=0x0000
-0x0257=0x0000
-0x0258=0x0000
-0x0259=0x0000
-0x025A=0x0000
-0x025B=0x0000
-0x025C=0x0000
-0x025D=0x0000
-0x025E=0x0000
-0x025F=0x0000
-0x0260=0x0000
-0x0261=0x0000
-0x0280=0x0000
-0x0281=0x0000
-0x0282=0x0000
-0x0283=0x0000
-0x0284=0x0000
-0x0285=0x0000
-0x0286=0x0000
-0x0287=0x0000
-0x0288=0x0000
-0x0289=0x0000
-0x028A=0x0000
-0x028B=0x0000
-0x028C=0x0000
-0x028D=0x0000
-0x028E=0x0000
-0x028F=0x0000
-0x0290=0x0000
-0x0291=0x0000
-0x0292=0x0000
-0x0293=0x0000
-0x0294=0x0000
-0x0295=0x0000
-0x0296=0x0000
-0x0297=0x0000
-0x0298=0x0000
-0x0299=0x0000
-0x029A=0x0000
-0x029B=0x0000
-0x029C=0x0000
-0x029D=0x0000
-0x029E=0x0000
-0x029F=0x0000
-0x02A0=0x0000
-0x02A1=0x0000
-0x02A2=0x0000
-0x02A3=0x0000
-0x02A4=0x0000
-0x02A5=0x0000
-0x02A6=0x0000
-0x02A7=0x0000
-0x02C0=0x0000
-0x02C1=0x0000
-0x02C2=0x0000
-0x02C3=0x0000
-0x02C4=0x0000
-0x02C5=0x0000
-0x02C6=0x0000
-0x02C7=0x0000
-0x02C8=0x0000
-0x02C9=0x0000
-0x02CA=0x0000
-0x02CB=0x0000
-0x02CC=0x0000
-0x02CD=0x0000
-0x02CE=0x0000
-0x02CF=0x0000
-0x02D0=0x0000
-0x02D1=0x0000
-0x02D2=0x0000
-0x02D3=0x0000
-0x02D4=0x0000
-0x02D5=0x0000
-0x02D6=0x0000
-0x02D7=0x0000
-0x02D8=0x0000
-0x02D9=0x0000
-0x02DA=0x0000
-0x02DB=0x0000
-0x02DC=0x0000
-0x02DD=0x0000
-0x02DE=0x0000
-0x02DF=0x0000
-0x02E0=0x0000
-0x02E1=0x0000
-0x02E2=0x0000
-0x02E3=0x0000
-0x02E4=0x0000
-0x02E5=0x0000
-0x02E6=0x0000
-0x02E7=0x0000
-0x0300=0x0000
-0x0301=0x0000
-0x0302=0x0000
-0x0303=0x0000
-0x0304=0x0000
-0x0305=0x0000
-0x0306=0x0000
-0x0307=0x0000
-0x0308=0x0000
-0x0309=0x0000
-0x030A=0x0000
-0x030B=0x0000
-0x030C=0x0000
-0x030D=0x0000
-0x030E=0x0000
-0x030F=0x0000
-0x0310=0x0000
-0x0311=0x0000
-0x0312=0x0000
-0x0313=0x0000
-0x0314=0x0000
-0x0315=0x0000
-0x0316=0x0000
-0x0317=0x0000
-0x0318=0x0000
-0x0319=0x0000
-0x031A=0x0000
-0x031B=0x0000
-0x031C=0x0000
-0x031D=0x0000
-0x031E=0x0000
-0x031F=0x0000
-0x0320=0x0000
-0x0321=0x0000
-0x0322=0x0000
-0x0323=0x0000
-0x0324=0x0000
-0x0325=0x0000
-0x0326=0x0000
-0x0327=0x0000
-0x0340=0x0000
-0x0341=0x0000
-0x0342=0x0000
-0x0343=0x0000
-0x0344=0x0000
-0x0345=0x0000
-0x0346=0x0000
-0x0347=0x0000
-0x0348=0x0000
-0x0349=0x0000
-0x034A=0x0000
-0x034B=0x0000
-0x034C=0x0000
-0x034D=0x0000
-0x034E=0x0000
-0x034F=0x0000
-0x0350=0x0000
-0x0351=0x0000
-0x0352=0x0000
-0x0353=0x0000
-0x0354=0x0000
-0x0355=0x0000
-0x0356=0x0000
-0x0357=0x0000
-0x0358=0x0000
-0x0359=0x0000
-0x035A=0x0000
-0x035B=0x0000
-0x035C=0x0000
-0x035D=0x0000
-0x035E=0x0000
-0x035F=0x0000
-0x0360=0x0000
-0x0361=0x0000
-0x0362=0x0000
-0x0363=0x0000
-0x0364=0x0000
-0x0365=0x0000
-0x0366=0x0000
-0x0367=0x0000
-0x0380=0x0000
-0x0381=0x0000
-0x0382=0x0000
-0x0383=0x0000
-0x0384=0x0000
-0x0385=0x0000
-0x0386=0x0000
-0x0387=0x0000
-0x0388=0x0000
-0x0389=0x0000
-0x038A=0x0000
-0x038B=0x0000
-0x038C=0x0000
-0x038D=0x0000
-0x038E=0x0000
-0x038F=0x0000
-0x0390=0x0000
-0x0391=0x0000
-0x0392=0x0000
-0x0393=0x0000
-0x0394=0x0000
-0x0395=0x0000
-0x0396=0x0000
-0x0397=0x0000
-0x0398=0x0000
-0x0399=0x0000
-0x039A=0x0000
-0x039B=0x0000
-0x039C=0x0000
-0x039D=0x0000
-0x039E=0x0000
-0x039F=0x0000
-0x03A0=0x0000
-0x03A1=0x0000
-0x03A2=0x0000
-0x03A3=0x0000
-0x03A4=0x0000
-0x03A5=0x0000
-0x03A6=0x0000
-0x03A7=0x0000
-0x0400=0x0081
-0x0401=0x07FF
-0x0402=0x07F6
-0x0403=0x0FF0
-0x0404=0x0000
-0x0405=0x0000
-0x0406=0x0000
-0x0407=0x0000
-0x0408=0x0000
-0x0409=0x0000
-0x040A=0x1000
-0x040B=0x0000
-0x040C=0x00F8
-0x040D=0x0000
-0x040E=0x0000
-0x040F=0x0000
-0x0440=0x0020
-0x0441=0x0000
-0x0442=0x0000
-0x0443=0x0000
-0x0444=0x0000
-0x0445=0x0000
-0x0446=0x0000
-0x0447=0x0000
-0x0448=0x0000
-0x0449=0x0000
-0x044A=0x0000
-0x044B=0x0000
-0x044C=0x0000
-0x044D=0x0000
-0x044E=0x0000
-0x044F=0x0000
-0x0450=0x0000
-0x0451=0x0000
-0x0452=0x0000
-0x0453=0x0000
-0x0454=0x0000
-0x0455=0x0000
-0x0456=0x0000
-0x0457=0x0000
-0x0458=0x0000
-0x0459=0x0000
-0x045A=0x0000
-0x045B=0x0000
-0x045C=0x0000
-0x045D=0x0000
-0x045E=0x0000
-0x045F=0x0000
-0x0460=0x0000
-0x0461=0x0000
-0x0480=0x0000
-0x0481=0x0000
-0x0482=0x0000
-0x0483=0x0000
-0x0484=0x0000
-0x0485=0x0000
-0x0486=0x0000
-0x0487=0x0000
-0x0488=0x0000
-0x0489=0x0000
-0x048A=0x0000
-0x048B=0x0000
-0x048C=0x0000
-0x048D=0x0000
-0x048E=0x0000
-0x048F=0x0000
-0x0490=0x0000
-0x0491=0x0000
-0x0492=0x0000
-0x0493=0x0000
-0x0494=0x0000
-0x0495=0x0000
-0x0496=0x0000
-0x0497=0x0000
-0x0498=0x0000
-0x0499=0x0000
-0x049A=0x0000
-0x049B=0x0000
-0x049C=0x0000
-0x049D=0x0000
-0x049E=0x0000
-0x049F=0x0000
-0x04A0=0x0000
-0x04A1=0x0000
-0x04A2=0x0000
-0x04A3=0x0000
-0x04A4=0x0000
-0x04A5=0x0000
-0x04A6=0x0000
-0x04A7=0x0000
-0x04C0=0x0000
-0x04C1=0x0000
-0x04C2=0x0000
-0x04C3=0x0000
-0x04C4=0x0000
-0x04C5=0x0000
-0x04C6=0x0000
-0x04C7=0x0000
-0x04C8=0x0000
-0x04C9=0x0000
-0x04CA=0x0000
-0x04CB=0x0000
-0x04CC=0x0000
-0x04CD=0x0000
-0x04CE=0x0000
-0x04CF=0x0000
-0x04D0=0x0000
-0x04D1=0x0000
-0x04D2=0x0000
-0x04D3=0x0000
-0x04D4=0x0000
-0x04D5=0x0000
-0x04D6=0x0000
-0x04D7=0x0000
-0x04D8=0x0000
-0x04D9=0x0000
-0x04DA=0x0000
-0x04DB=0x0000
-0x04DC=0x0000
-0x04DD=0x0000
-0x04DE=0x0000
-0x04DF=0x0000
-0x04E0=0x0000
-0x04E1=0x0000
-0x04E2=0x0000
-0x04E3=0x0000
-0x04E4=0x0000
-0x04E5=0x0000
-0x04E6=0x0000
-0x04E7=0x0000
-0x0500=0x0000
-0x0501=0x0000
-0x0502=0x0000
-0x0503=0x0000
-0x0504=0x0000
-0x0505=0x0000
-0x0506=0x0000
-0x0507=0x0000
-0x0508=0x0000
-0x0509=0x0000
-0x050A=0x0000
-0x050B=0x0000
-0x050C=0x0000
-0x050D=0x0000
-0x050E=0x0000
-0x050F=0x0000
-0x0510=0x0000
-0x0511=0x0000
-0x0512=0x0000
-0x0513=0x0000
-0x0514=0x0000
-0x0515=0x0000
-0x0516=0x0000
-0x0517=0x0000
-0x0518=0x0000
-0x0519=0x0000
-0x051A=0x0000
-0x051B=0x0000
-0x051C=0x0000
-0x051D=0x0000
-0x051E=0x0000
-0x051F=0x0000
-0x0520=0x0000
-0x0521=0x0000
-0x0522=0x0000
-0x0523=0x0000
-0x0524=0x0000
-0x0525=0x0000
-0x0526=0x0000
-0x0527=0x0000
-0x0540=0x0000
-0x0541=0x0000
-0x0542=0x0000
-0x0543=0x0000
-0x0544=0x0000
-0x0545=0x0000
-0x0546=0x0000
-0x0547=0x0000
-0x0548=0x0000
-0x0549=0x0000
-0x054A=0x0000
-0x054B=0x0000
-0x054C=0x0000
-0x054D=0x0000
-0x054E=0x0000
-0x054F=0x0000
-0x0550=0x0000
-0x0551=0x0000
-0x0552=0x0000
-0x0553=0x0000
-0x0554=0x0000
-0x0555=0x0000
-0x0556=0x0000
-0x0557=0x0000
-0x0558=0x0000
-0x0559=0x0000
-0x055A=0x0000
-0x055B=0x0000
-0x055C=0x0000
-0x055D=0x0000
-0x055E=0x0000
-0x055F=0x0000
-0x0560=0x0000
-0x0561=0x0000
-0x0562=0x0000
-0x0563=0x0000
-0x0564=0x0000
-0x0565=0x0000
-0x0566=0x0000
-0x0567=0x0000
-0x0580=0x0000
-0x0581=0x0000
-0x0582=0x0000
-0x0583=0x0000
-0x0584=0x0000
-0x0585=0x0000
-0x0586=0x0000
-0x0587=0x0000
-0x0588=0x0000
-0x0589=0x0000
-0x058A=0x0000
-0x058B=0x0000
-0x058C=0x0000
-0x058D=0x0000
-0x058E=0x0000
-0x058F=0x0000
-0x0590=0x0000
-0x0591=0x0000
-0x0592=0x0000
-0x0593=0x0000
-0x0594=0x0000
-0x0595=0x0000
-0x0596=0x0000
-0x0597=0x0000
-0x0598=0x0000
-0x0599=0x0000
-0x059A=0x0000
-0x059B=0x0000
-0x059C=0x0000
-0x059D=0x0000
-0x059E=0x0000
-0x059F=0x0000
-0x05A0=0x0000
-0x05A1=0x0000
-0x05A2=0x0000
-0x05A3=0x0000
-0x05A4=0x0000
-0x05A5=0x0000
-0x05A6=0x0000
-0x05A7=0x0000
-[lms7002_registers_b]
-0x0100=0x7409
-0x0101=0x7800
-0x0102=0x3180
-0x0103=0x0A12
-0x0104=0x0088
-0x0105=0x0007
-0x0106=0x318C
-0x0107=0x318C
-0x0108=0x2826
-0x0109=0x61C1
-0x010A=0x104C
-0x010C=0x8865
-0x010D=0x015B
-0x010E=0x0392
-0x010F=0x3042
-0x0110=0x0BFF
-0x0111=0x0083
-0x0112=0xC0E6
-0x0113=0x03C3
-0x0114=0x008D
-0x0115=0x0009
-0x0116=0x8180
-0x0117=0x280C
-0x0118=0x018C
-0x0119=0x18CE
-0x011A=0x2E02
-0x011C=0xAD41
-0x011D=0xD555
-0x011E=0x06AA
-0x011F=0x3680
-0x0120=0xB9FF
-0x0121=0x32D4
-0x0122=0x033F
-0x0123=0x0000
-0x0124=0x0000
-0x0200=0x0081
-0x0201=0x07FF
-0x0202=0x07FF
-0x0203=0x0000
-0x0204=0x0000
-0x0205=0x0000
-0x0206=0x0000
-0x0207=0x0000
-0x0208=0x0170
-0x0209=0x0000
-0x020A=0x0000
-0x020B=0x0000
-0x020C=0x0000
-0x0240=0x0020
-0x0241=0x0000
-0x0242=0x0000
-0x0243=0x0000
-0x0244=0x0000
-0x0245=0x0000
-0x0246=0x0000
-0x0247=0x0000
-0x0248=0x0000
-0x0249=0x0000
-0x024A=0x0000
-0x024B=0x0000
-0x024C=0x0000
-0x024D=0x0000
-0x024E=0x0000
-0x024F=0x0000
-0x0250=0x0000
-0x0251=0x0000
-0x0252=0x0000
-0x0253=0x0000
-0x0254=0x0000
-0x0255=0x0000
-0x0256=0x0000
-0x0257=0x0000
-0x0258=0x0000
-0x0259=0x0000
-0x025A=0x0000
-0x025B=0x0000
-0x025C=0x0000
-0x025D=0x0000
-0x025E=0x0000
-0x025F=0x0000
-0x0260=0x0000
-0x0261=0x0000
-0x0280=0x0000
-0x0281=0x0000
-0x0282=0x0000
-0x0283=0x0000
-0x0284=0x0000
-0x0285=0x0000
-0x0286=0x0000
-0x0287=0x0000
-0x0288=0x0000
-0x0289=0x0000
-0x028A=0x0000
-0x028B=0x0000
-0x028C=0x0000
-0x028D=0x0000
-0x028E=0x0000
-0x028F=0x0000
-0x0290=0x0000
-0x0291=0x0000
-0x0292=0x0000
-0x0293=0x0000
-0x0294=0x0000
-0x0295=0x0000
-0x0296=0x0000
-0x0297=0x0000
-0x0298=0x0000
-0x0299=0x0000
-0x029A=0x0000
-0x029B=0x0000
-0x029C=0x0000
-0x029D=0x0000
-0x029E=0x0000
-0x029F=0x0000
-0x02A0=0x0000
-0x02A1=0x0000
-0x02A2=0x0000
-0x02A3=0x0000
-0x02A4=0x0000
-0x02A5=0x0000
-0x02A6=0x0000
-0x02A7=0x0000
-0x02C0=0x0000
-0x02C1=0x0000
-0x02C2=0x0000
-0x02C3=0x0000
-0x02C4=0x0000
-0x02C5=0x0000
-0x02C6=0x0000
-0x02C7=0x0000
-0x02C8=0x0000
-0x02C9=0x0000
-0x02CA=0x0000
-0x02CB=0x0000
-0x02CC=0x0000
-0x02CD=0x0000
-0x02CE=0x0000
-0x02CF=0x0000
-0x02D0=0x0000
-0x02D1=0x0000
-0x02D2=0x0000
-0x02D3=0x0000
-0x02D4=0x0000
-0x02D5=0x0000
-0x02D6=0x0000
-0x02D7=0x0000
-0x02D8=0x0000
-0x02D9=0x0000
-0x02DA=0x0000
-0x02DB=0x0000
-0x02DC=0x0000
-0x02DD=0x0000
-0x02DE=0x0000
-0x02DF=0x0000
-0x02E0=0x0000
-0x02E1=0x0000
-0x02E2=0x0000
-0x02E3=0x0000
-0x02E4=0x0000
-0x02E5=0x0000
-0x02E6=0x0000
-0x02E7=0x0000
-0x0300=0x0000
-0x0301=0x0000
-0x0302=0x0000
-0x0303=0x0000
-0x0304=0x0000
-0x0305=0x0000
-0x0306=0x0000
-0x0307=0x0000
-0x0308=0x0000
-0x0309=0x0000
-0x030A=0x0000
-0x030B=0x0000
-0x030C=0x0000
-0x030D=0x0000
-0x030E=0x0000
-0x030F=0x0000
-0x0310=0x0000
-0x0311=0x0000
-0x0312=0x0000
-0x0313=0x0000
-0x0314=0x0000
-0x0315=0x0000
-0x0316=0x0000
-0x0317=0x0000
-0x0318=0x0000
-0x0319=0x0000
-0x031A=0x0000
-0x031B=0x0000
-0x031C=0x0000
-0x031D=0x0000
-0x031E=0x0000
-0x031F=0x0000
-0x0320=0x0000
-0x0321=0x0000
-0x0322=0x0000
-0x0323=0x0000
-0x0324=0x0000
-0x0325=0x0000
-0x0326=0x0000
-0x0327=0x0000
-0x0340=0x0000
-0x0341=0x0000
-0x0342=0x0000
-0x0343=0x0000
-0x0344=0x0000
-0x0345=0x0000
-0x0346=0x0000
-0x0347=0x0000
-0x0348=0x0000
-0x0349=0x0000
-0x034A=0x0000
-0x034B=0x0000
-0x034C=0x0000
-0x034D=0x0000
-0x034E=0x0000
-0x034F=0x0000
-0x0350=0x0000
-0x0351=0x0000
-0x0352=0x0000
-0x0353=0x0000
-0x0354=0x0000
-0x0355=0x0000
-0x0356=0x0000
-0x0357=0x0000
-0x0358=0x0000
-0x0359=0x0000
-0x035A=0x0000
-0x035B=0x0000
-0x035C=0x0000
-0x035D=0x0000
-0x035E=0x0000
-0x035F=0x0000
-0x0360=0x0000
-0x0361=0x0000
-0x0362=0x0000
-0x0363=0x0000
-0x0364=0x0000
-0x0365=0x0000
-0x0366=0x0000
-0x0367=0x0000
-0x0380=0x0000
-0x0381=0x0000
-0x0382=0x0000
-0x0383=0x0000
-0x0384=0x0000
-0x0385=0x0000
-0x0386=0x0000
-0x0387=0x0000
-0x0388=0x0000
-0x0389=0x0000
-0x038A=0x0000
-0x038B=0x0000
-0x038C=0x0000
-0x038D=0x0000
-0x038E=0x0000
-0x038F=0x0000
-0x0390=0x0000
-0x0391=0x0000
-0x0392=0x0000
-0x0393=0x0000
-0x0394=0x0000
-0x0395=0x0000
-0x0396=0x0000
-0x0397=0x0000
-0x0398=0x0000
-0x0399=0x0000
-0x039A=0x0000
-0x039B=0x0000
-0x039C=0x0000
-0x039D=0x0000
-0x039E=0x0000
-0x039F=0x0000
-0x03A0=0x0000
-0x03A1=0x0000
-0x03A2=0x0000
-0x03A3=0x0000
-0x03A4=0x0000
-0x03A5=0x0000
-0x03A6=0x0000
-0x03A7=0x0000
-0x0400=0x0101
-0x0401=0x07F3
-0x0402=0x07FF
-0x0403=0x0024
-0x0404=0x0000
-0x0405=0x0000
-0x0406=0x0000
-0x0407=0x0000
-0x0408=0x0000
-0x0409=0x0000
-0x040A=0x1000
-0x040B=0x0000
-0x040C=0x00F8
-0x040D=0x0000
-0x040E=0x0000
-0x040F=0x0000
-0x0440=0x0020
-0x0441=0x0000
-0x0442=0x0000
-0x0443=0x0000
-0x0444=0x0000
-0x0445=0x0000
-0x0446=0x0000
-0x0447=0x0000
-0x0448=0x0000
-0x0449=0x0000
-0x044A=0x0000
-0x044B=0x0000
-0x044C=0x0000
-0x044D=0x0000
-0x044E=0x0000
-0x044F=0x0000
-0x0450=0x0000
-0x0451=0x0000
-0x0452=0x0000
-0x0453=0x0000
-0x0454=0x0000
-0x0455=0x0000
-0x0456=0x0000
-0x0457=0x0000
-0x0458=0x0000
-0x0459=0x0000
-0x045A=0x0000
-0x045B=0x0000
-0x045C=0x0000
-0x045D=0x0000
-0x045E=0x0000
-0x045F=0x0000
-0x0460=0x0000
-0x0461=0x0000
-0x0480=0x0000
-0x0481=0x0000
-0x0482=0x0000
-0x0483=0x0000
-0x0484=0x0000
-0x0485=0x0000
-0x0486=0x0000
-0x0487=0x0000
-0x0488=0x0000
-0x0489=0x0000
-0x048A=0x0000
-0x048B=0x0000
-0x048C=0x0000
-0x048D=0x0000
-0x048E=0x0000
-0x048F=0x0000
-0x0490=0x0000
-0x0491=0x0000
-0x0492=0x0000
-0x0493=0x0000
-0x0494=0x0000
-0x0495=0x0000
-0x0496=0x0000
-0x0497=0x0000
-0x0498=0x0000
-0x0499=0x0000
-0x049A=0x0000
-0x049B=0x0000
-0x049C=0x0000
-0x049D=0x0000
-0x049E=0x0000
-0x049F=0x0000
-0x04A0=0x0000
-0x04A1=0x0000
-0x04A2=0x0000
-0x04A3=0x0000
-0x04A4=0x0000
-0x04A5=0x0000
-0x04A6=0x0000
-0x04A7=0x0000
-0x04C0=0x0000
-0x04C1=0x0000
-0x04C2=0x0000
-0x04C3=0x0000
-0x04C4=0x0000
-0x04C5=0x0000
-0x04C6=0x0000
-0x04C7=0x0000
-0x04C8=0x0000
-0x04C9=0x0000
-0x04CA=0x0000
-0x04CB=0x0000
-0x04CC=0x0000
-0x04CD=0x0000
-0x04CE=0x0000
-0x04CF=0x0000
-0x04D0=0x0000
-0x04D1=0x0000
-0x04D2=0x0000
-0x04D3=0x0000
-0x04D4=0x0000
-0x04D5=0x0000
-0x04D6=0x0000
-0x04D7=0x0000
-0x04D8=0x0000
-0x04D9=0x0000
-0x04DA=0x0000
-0x04DB=0x0000
-0x04DC=0x0000
-0x04DD=0x0000
-0x04DE=0x0000
-0x04DF=0x0000
-0x04E0=0x0000
-0x04E1=0x0000
-0x04E2=0x0000
-0x04E3=0x0000
-0x04E4=0x0000
-0x04E5=0x0000
-0x04E6=0x0000
-0x04E7=0x0000
-0x0500=0x0000
-0x0501=0x0000
-0x0502=0x0000
-0x0503=0x0000
-0x0504=0x0000
-0x0505=0x0000
-0x0506=0x0000
-0x0507=0x0000
-0x0508=0x0000
-0x0509=0x0000
-0x050A=0x0000
-0x050B=0x0000
-0x050C=0x0000
-0x050D=0x0000
-0x050E=0x0000
-0x050F=0x0000
-0x0510=0x0000
-0x0511=0x0000
-0x0512=0x0000
-0x0513=0x0000
-0x0514=0x0000
-0x0515=0x0000
-0x0516=0x0000
-0x0517=0x0000
-0x0518=0x0000
-0x0519=0x0000
-0x051A=0x0000
-0x051B=0x0000
-0x051C=0x0000
-0x051D=0x0000
-0x051E=0x0000
-0x051F=0x0000
-0x0520=0x0000
-0x0521=0x0000
-0x0522=0x0000
-0x0523=0x0000
-0x0524=0x0000
-0x0525=0x0000
-0x0526=0x0000
-0x0527=0x0000
-0x0540=0x0000
-0x0541=0x0000
-0x0542=0x0000
-0x0543=0x0000
-0x0544=0x0000
-0x0545=0x0000
-0x0546=0x0000
-0x0547=0x0000
-0x0548=0x0000
-0x0549=0x0000
-0x054A=0x0000
-0x054B=0x0000
-0x054C=0x0000
-0x054D=0x0000
-0x054E=0x0000
-0x054F=0x0000
-0x0550=0x0000
-0x0551=0x0000
-0x0552=0x0000
-0x0553=0x0000
-0x0554=0x0000
-0x0555=0x0000
-0x0556=0x0000
-0x0557=0x0000
-0x0558=0x0000
-0x0559=0x0000
-0x055A=0x0000
-0x055B=0x0000
-0x055C=0x0000
-0x055D=0x0000
-0x055E=0x0000
-0x055F=0x0000
-0x0560=0x0000
-0x0561=0x0000
-0x0562=0x0000
-0x0563=0x0000
-0x0564=0x0000
-0x0565=0x0000
-0x0566=0x0000
-0x0567=0x0000
-0x0580=0x0000
-0x0581=0x0000
-0x0582=0x0000
-0x0583=0x0000
-0x0584=0x0000
-0x0585=0x0000
-0x0586=0x0000
-0x0587=0x0000
-0x0588=0x0000
-0x0589=0x0000
-0x058A=0x0000
-0x058B=0x0000
-0x058C=0x0000
-0x058D=0x0000
-0x058E=0x0000
-0x058F=0x0000
-0x0590=0x0000
-0x0591=0x0000
-0x0592=0x0000
-0x0593=0x0000
-0x0594=0x0000
-0x0595=0x0000
-0x0596=0x0000
-0x0597=0x0000
-0x0598=0x0000
-0x0599=0x0000
-0x059A=0x0000
-0x059B=0x0000
-0x059C=0x0000
-0x059D=0x0000
-0x059E=0x0000
-0x059F=0x0000
-0x05A0=0x0000
-0x05A1=0x0000
-0x05A2=0x0000
-0x05A3=0x0000
-0x05A4=0x0000
-0x05A5=0x0000
-0x05A6=0x0000
-0x05A7=0x0000
-[reference_clocks]
-sxt_ref_clk_mhz=30.72
-sxr_ref_clk_mhz=30.72
diff --git a/mcu_program/build/TxCalib.ini b/mcu_program/build/TxCalib.ini
deleted file mode 100644
index cf345ef..0000000
--- a/mcu_program/build/TxCalib.ini
+++ /dev/null
@@ -1,1128 +0,0 @@
-[file_info]
-type=lms7002m_minimal_config
-version=1
-[lms7002_registers_a]
-0x0020=0xFFFD
-0x0021=0x0E9F
-0x0022=0x07DF
-0x0023=0x5550
-0x0024=0xE4E4
-0x0025=0x0101
-0x0026=0x0101
-0x0027=0xB1E4
-0x0028=0x0101
-0x0029=0x0101
-0x002A=0x0086
-0x002B=0x4013
-0x002C=0x0101
-0x002D=0x0000
-0x002E=0x0000
-0x002F=0x3840
-0x0081=0x0000
-0x0082=0x8001
-0x0084=0x0400
-0x0085=0x0001
-0x0086=0x4901
-0x0087=0x0000
-0x0088=0x0470
-0x0089=0x0010
-0x008A=0x0514
-0x008B=0x20B6
-0x008C=0x267B
-0x0092=0x0001
-0x0093=0x0000
-0x0094=0x0000
-0x0095=0x0000
-0x0096=0x0000
-0x0097=0x0000
-0x0098=0x0000
-0x0099=0x6565
-0x009A=0x658C
-0x009B=0x6565
-0x009C=0x658C
-0x009D=0x6565
-0x009E=0x658C
-0x009F=0x658C
-0x00A0=0x6565
-0x00A1=0x6565
-0x00A2=0x6565
-0x00A3=0x6565
-0x00A4=0x6565
-0x00A5=0x6565
-0x00A6=0x000F
-0x00A7=0x6565
-0x00A8=0x0000
-0x00A9=0x0000
-0x00AA=0x0000
-0x00AB=0x0040
-0x00AC=0x0000
-0x00AD=0x03FF
-0x00AE=0x0000
-0x0100=0x3409
-0x0101=0x7800
-0x0102=0x3180
-0x0103=0x0A12
-0x0104=0x0088
-0x0105=0x0007
-0x0106=0x318C
-0x0107=0x318C
-0x0108=0x6026
-0x0109=0x61C1
-0x010A=0x104C
-0x010C=0x8865
-0x010D=0x011A
-0x010E=0x2040
-0x010F=0x3042
-0x0110=0x0BF4
-0x0111=0x0083
-0x0112=0xC0E6
-0x0113=0x03C3
-0x0114=0x008D
-0x0115=0x0009
-0x0116=0x8180
-0x0117=0x280C
-0x0118=0x018C
-0x0119=0x18CB
-0x011A=0x2E02
-0x011C=0xAD41
-0x011D=0xAAAA
-0x011E=0x0642
-0x011F=0x3680
-0x0120=0xB9FF
-0x0121=0x36AA
-0x0122=0x033F
-0x0123=0x267B
-0x0124=0x0000
-0x0200=0x00ED
-0x0201=0x07FF
-0x0202=0x079F
-0x0203=0x2FFC
-0x0204=0xE0E3
-0x0205=0x0000
-0x0206=0x0000
-0x0207=0x0000
-0x0208=0x0070
-0x0209=0x0000
-0x020A=0x0080
-0x020B=0x0000
-0x020C=0x7FFF
-0x0240=0x0020
-0x0241=0x0000
-0x0242=0x00B1
-0x0243=0xC71C
-0x0244=0x0000
-0x0245=0x0000
-0x0246=0x0000
-0x0247=0x0000
-0x0248=0x0000
-0x0249=0x0000
-0x024A=0x0000
-0x024B=0x0000
-0x024C=0x0000
-0x024D=0x0000
-0x024E=0x0000
-0x024F=0x0000
-0x0250=0x0000
-0x0251=0x0000
-0x0252=0x0000
-0x0253=0x0000
-0x0254=0x0000
-0x0255=0x0000
-0x0256=0x0000
-0x0257=0x0000
-0x0258=0x0000
-0x0259=0x0000
-0x025A=0x0000
-0x025B=0x0000
-0x025C=0x0000
-0x025D=0x0000
-0x025E=0x0000
-0x025F=0x0000
-0x0260=0x0000
-0x0261=0x0000
-0x0280=0x0000
-0x0281=0x0000
-0x0282=0x0000
-0x0283=0x0000
-0x0284=0x0000
-0x0285=0x0000
-0x0286=0x0000
-0x0287=0x0000
-0x0288=0x0000
-0x0289=0x0000
-0x028A=0x0000
-0x028B=0x0000
-0x028C=0x0000
-0x028D=0x0000
-0x028E=0x0000
-0x028F=0x0000
-0x0290=0x0000
-0x0291=0x0000
-0x0292=0x0000
-0x0293=0x0000
-0x0294=0x0000
-0x0295=0x0000
-0x0296=0x0000
-0x0297=0x0000
-0x0298=0x0000
-0x0299=0x0000
-0x029A=0x0000
-0x029B=0x0000
-0x029C=0x0000
-0x029D=0x0000
-0x029E=0x0000
-0x029F=0x0000
-0x02A0=0x0000
-0x02A1=0x0000
-0x02A2=0x0000
-0x02A3=0x0000
-0x02A4=0x0000
-0x02A5=0x0000
-0x02A6=0x0000
-0x02A7=0x0000
-0x02C0=0x0000
-0x02C1=0x0000
-0x02C2=0x0000
-0x02C3=0x0000
-0x02C4=0x0000
-0x02C5=0x0000
-0x02C6=0x0000
-0x02C7=0x0000
-0x02C8=0x0000
-0x02C9=0x0000
-0x02CA=0x0000
-0x02CB=0x0000
-0x02CC=0x0000
-0x02CD=0x0000
-0x02CE=0x0000
-0x02CF=0x0000
-0x02D0=0x0000
-0x02D1=0x0000
-0x02D2=0x0000
-0x02D3=0x0000
-0x02D4=0x0000
-0x02D5=0x0000
-0x02D6=0x0000
-0x02D7=0x0000
-0x02D8=0x0000
-0x02D9=0x0000
-0x02DA=0x0000
-0x02DB=0x0000
-0x02DC=0x0000
-0x02DD=0x0000
-0x02DE=0x0000
-0x02DF=0x0000
-0x02E0=0x0000
-0x02E1=0x0000
-0x02E2=0x0000
-0x02E3=0x0000
-0x02E4=0x0000
-0x02E5=0x0000
-0x02E6=0x0000
-0x02E7=0x0000
-0x0300=0x0000
-0x0301=0x0000
-0x0302=0x0000
-0x0303=0x0000
-0x0304=0x0000
-0x0305=0x0000
-0x0306=0x0000
-0x0307=0x0000
-0x0308=0x0000
-0x0309=0x0000
-0x030A=0x0000
-0x030B=0x0000
-0x030C=0x0000
-0x030D=0x0000
-0x030E=0x0000
-0x030F=0x0000
-0x0310=0x0000
-0x0311=0x0000
-0x0312=0x0000
-0x0313=0x0000
-0x0314=0x0000
-0x0315=0x0000
-0x0316=0x0000
-0x0317=0x0000
-0x0318=0x0000
-0x0319=0x0000
-0x031A=0x0000
-0x031B=0x0000
-0x031C=0x0000
-0x031D=0x0000
-0x031E=0x0000
-0x031F=0x0000
-0x0320=0x0000
-0x0321=0x0000
-0x0322=0x0000
-0x0323=0x0000
-0x0324=0x0000
-0x0325=0x0000
-0x0326=0x0000
-0x0327=0x0000
-0x0340=0x0000
-0x0341=0x0000
-0x0342=0x0000
-0x0343=0x0000
-0x0344=0x0000
-0x0345=0x0000
-0x0346=0x0000
-0x0347=0x0000
-0x0348=0x0000
-0x0349=0x0000
-0x034A=0x0000
-0x034B=0x0000
-0x034C=0x0000
-0x034D=0x0000
-0x034E=0x0000
-0x034F=0x0000
-0x0350=0x0000
-0x0351=0x0000
-0x0352=0x0000
-0x0353=0x0000
-0x0354=0x0000
-0x0355=0x0000
-0x0356=0x0000
-0x0357=0x0000
-0x0358=0x0000
-0x0359=0x0000
-0x035A=0x0000
-0x035B=0x0000
-0x035C=0x0000
-0x035D=0x0000
-0x035E=0x0000
-0x035F=0x0000
-0x0360=0x0000
-0x0361=0x0000
-0x0362=0x0000
-0x0363=0x0000
-0x0364=0x0000
-0x0365=0x0000
-0x0366=0x0000
-0x0367=0x0000
-0x0380=0x0000
-0x0381=0x0000
-0x0382=0x0000
-0x0383=0x0000
-0x0384=0x0000
-0x0385=0x0000
-0x0386=0x0000
-0x0387=0x0000
-0x0388=0x0000
-0x0389=0x0000
-0x038A=0x0000
-0x038B=0x0000
-0x038C=0x0000
-0x038D=0x0000
-0x038E=0x0000
-0x038F=0x0000
-0x0390=0x0000
-0x0391=0x0000
-0x0392=0x0000
-0x0393=0x0000
-0x0394=0x0000
-0x0395=0x0000
-0x0396=0x0000
-0x0397=0x0000
-0x0398=0x0000
-0x0399=0x0000
-0x039A=0x0000
-0x039B=0x0000
-0x039C=0x0000
-0x039D=0x0000
-0x039E=0x0000
-0x039F=0x0000
-0x03A0=0x0000
-0x03A1=0x0000
-0x03A2=0x0000
-0x03A3=0x0000
-0x03A4=0x0000
-0x03A5=0x0000
-0x03A6=0x0000
-0x03A7=0x0000
-0x0400=0x0081
-0x0401=0x07FF
-0x0402=0x07FF
-0x0403=0x2000
-0x0404=0x0000
-0x0405=0x0000
-0x0406=0x0000
-0x0407=0x0000
-0x0408=0x0000
-0x0409=0x0000
-0x040A=0x1001
-0x040B=0x0000
-0x040C=0x00B8
-0x040D=0x0000
-0x040E=0x0000
-0x040F=0x0000
-0x0440=0x0020
-0x0441=0x0000
-0x0442=0x0000
-0x0443=0x0000
-0x0444=0x0000
-0x0445=0x0000
-0x0446=0x0000
-0x0447=0x0000
-0x0448=0x0000
-0x0449=0x0000
-0x044A=0x0000
-0x044B=0x0000
-0x044C=0x0000
-0x044D=0x0000
-0x044E=0x0000
-0x044F=0x0000
-0x0450=0x0000
-0x0451=0x0000
-0x0452=0x0000
-0x0453=0x0000
-0x0454=0x0000
-0x0455=0x0000
-0x0456=0x0000
-0x0457=0x0000
-0x0458=0x0000
-0x0459=0x0000
-0x045A=0x0000
-0x045B=0x0000
-0x045C=0x0000
-0x045D=0x0000
-0x045E=0x0000
-0x045F=0x0000
-0x0460=0x0000
-0x0461=0x0000
-0x0480=0x0000
-0x0481=0x0000
-0x0482=0x0000
-0x0483=0x0000
-0x0484=0x0000
-0x0485=0x0000
-0x0486=0x0000
-0x0487=0x0000
-0x0488=0x0000
-0x0489=0x0000
-0x048A=0x0000
-0x048B=0x0000
-0x048C=0x0000
-0x048D=0x0000
-0x048E=0x0000
-0x048F=0x0000
-0x0490=0x0000
-0x0491=0x0000
-0x0492=0x0000
-0x0493=0x0000
-0x0494=0x0000
-0x0495=0x0000
-0x0496=0x0000
-0x0497=0x0000
-0x0498=0x0000
-0x0499=0x0000
-0x049A=0x0000
-0x049B=0x0000
-0x049C=0x0000
-0x049D=0x0000
-0x049E=0x0000
-0x049F=0x0000
-0x04A0=0x0000
-0x04A1=0x0000
-0x04A2=0x0000
-0x04A3=0x0000
-0x04A4=0x0000
-0x04A5=0x0000
-0x04A6=0x0000
-0x04A7=0x0000
-0x04C0=0x0000
-0x04C1=0x0000
-0x04C2=0x0000
-0x04C3=0x0000
-0x04C4=0x0000
-0x04C5=0x0000
-0x04C6=0x0000
-0x04C7=0x0000
-0x04C8=0x0000
-0x04C9=0x0000
-0x04CA=0x0000
-0x04CB=0x0000
-0x04CC=0x0000
-0x04CD=0x0000
-0x04CE=0x0000
-0x04CF=0x0000
-0x04D0=0x0000
-0x04D1=0x0000
-0x04D2=0x0000
-0x04D3=0x0000
-0x04D4=0x0000
-0x04D5=0x0000
-0x04D6=0x0000
-0x04D7=0x0000
-0x04D8=0x0000
-0x04D9=0x0000
-0x04DA=0x0000
-0x04DB=0x0000
-0x04DC=0x0000
-0x04DD=0x0000
-0x04DE=0x0000
-0x04DF=0x0000
-0x04E0=0x0000
-0x04E1=0x0000
-0x04E2=0x0000
-0x04E3=0x0000
-0x04E4=0x0000
-0x04E5=0x0000
-0x04E6=0x0000
-0x04E7=0x0000
-0x0500=0x0000
-0x0501=0x0000
-0x0502=0x0000
-0x0503=0x0000
-0x0504=0x0000
-0x0505=0x0000
-0x0506=0x0000
-0x0507=0x0000
-0x0508=0x0000
-0x0509=0x0000
-0x050A=0x0000
-0x050B=0x0000
-0x050C=0x0000
-0x050D=0x0000
-0x050E=0x0000
-0x050F=0x0000
-0x0510=0x0000
-0x0511=0x0000
-0x0512=0x0000
-0x0513=0x0000
-0x0514=0x0000
-0x0515=0x0000
-0x0516=0x0000
-0x0517=0x0000
-0x0518=0x0000
-0x0519=0x0000
-0x051A=0x0000
-0x051B=0x0000
-0x051C=0x0000
-0x051D=0x0000
-0x051E=0x0000
-0x051F=0x0000
-0x0520=0x0000
-0x0521=0x0000
-0x0522=0x0000
-0x0523=0x0000
-0x0524=0x0000
-0x0525=0x0000
-0x0526=0x0000
-0x0527=0x0000
-0x0540=0x0000
-0x0541=0x0000
-0x0542=0x0000
-0x0543=0x0000
-0x0544=0x0000
-0x0545=0x0000
-0x0546=0x0000
-0x0547=0x0000
-0x0548=0x0000
-0x0549=0x0000
-0x054A=0x0000
-0x054B=0x0000
-0x054C=0x0000
-0x054D=0x0000
-0x054E=0x0000
-0x054F=0x0000
-0x0550=0x0000
-0x0551=0x0000
-0x0552=0x0000
-0x0553=0x0000
-0x0554=0x0000
-0x0555=0x0000
-0x0556=0x0000
-0x0557=0x0000
-0x0558=0x0000
-0x0559=0x0000
-0x055A=0x0000
-0x055B=0x0000
-0x055C=0x0000
-0x055D=0x0000
-0x055E=0x0000
-0x055F=0x0000
-0x0560=0x0000
-0x0561=0x0000
-0x0562=0x0000
-0x0563=0x0000
-0x0564=0x0000
-0x0565=0x0000
-0x0566=0x0000
-0x0567=0x0000
-0x0580=0x0000
-0x0581=0x0000
-0x0582=0x0000
-0x0583=0x0000
-0x0584=0x0000
-0x0585=0x0000
-0x0586=0x0000
-0x0587=0x0000
-0x0588=0x0000
-0x0589=0x0000
-0x058A=0x0000
-0x058B=0x0000
-0x058C=0x0000
-0x058D=0x0000
-0x058E=0x0000
-0x058F=0x0000
-0x0590=0x0000
-0x0591=0x0000
-0x0592=0x0000
-0x0593=0x0000
-0x0594=0x0000
-0x0595=0x0000
-0x0596=0x0000
-0x0597=0x0000
-0x0598=0x0000
-0x0599=0x0000
-0x059A=0x0000
-0x059B=0x0000
-0x059C=0x0000
-0x059D=0x0000
-0x059E=0x0000
-0x059F=0x0000
-0x05A0=0x0000
-0x05A1=0x0000
-0x05A2=0x0000
-0x05A3=0x0000
-0x05A4=0x0000
-0x05A5=0x0000
-0x05A6=0x0000
-0x05A7=0x0000
-[lms7002_registers_b]
-0x0100=0x3409
-0x0101=0x7800
-0x0102=0x3180
-0x0103=0x0A12
-0x0104=0x0088
-0x0105=0x0007
-0x0106=0x318C
-0x0107=0x318C
-0x0108=0x9426
-0x0109=0x61C1
-0x010A=0x104C
-0x010C=0x88FD
-0x010D=0x009E
-0x010E=0x2040
-0x010F=0x3042
-0x0110=0x0BF4
-0x0111=0x0083
-0x0112=0xC0E6
-0x0113=0x03C3
-0x0114=0x008D
-0x0115=0x0009
-0x0116=0x8180
-0x0117=0x280C
-0x0118=0x018C
-0x0119=0x18CB
-0x011A=0x2E02
-0x011C=0xAD41
-0x011D=0xD555
-0x011E=0x06AA
-0x011F=0x3680
-0x0120=0xB9FF
-0x0121=0x32EC
-0x0122=0x033F
-0x0123=0x267B
-0x0124=0x0000
-0x0200=0x0081
-0x0201=0x07FF
-0x0202=0x07FF
-0x0203=0x0000
-0x0204=0x0000
-0x0205=0x0000
-0x0206=0x0000
-0x0207=0x0000
-0x0208=0x0000
-0x0209=0x0000
-0x020A=0x0080
-0x020B=0x0000
-0x020C=0x0000
-0x0240=0x0020
-0x0241=0x0000
-0x0242=0x0000
-0x0243=0x0000
-0x0244=0x0000
-0x0245=0x0000
-0x0246=0x0000
-0x0247=0x0000
-0x0248=0x0000
-0x0249=0x0000
-0x024A=0x0000
-0x024B=0x0000
-0x024C=0x0000
-0x024D=0x0000
-0x024E=0x0000
-0x024F=0x0000
-0x0250=0x0000
-0x0251=0x0000
-0x0252=0x0000
-0x0253=0x0000
-0x0254=0x0000
-0x0255=0x0000
-0x0256=0x0000
-0x0257=0x0000
-0x0258=0x0000
-0x0259=0x0000
-0x025A=0x0000
-0x025B=0x0000
-0x025C=0x0000
-0x025D=0x0000
-0x025E=0x0000
-0x025F=0x0000
-0x0260=0x0000
-0x0261=0x0000
-0x0280=0x0000
-0x0281=0x0000
-0x0282=0x0000
-0x0283=0x0000
-0x0284=0x0000
-0x0285=0x0000
-0x0286=0x0000
-0x0287=0x0000
-0x0288=0x0000
-0x0289=0x0000
-0x028A=0x0000
-0x028B=0x0000
-0x028C=0x0000
-0x028D=0x0000
-0x028E=0x0000
-0x028F=0x0000
-0x0290=0x0000
-0x0291=0x0000
-0x0292=0x0000
-0x0293=0x0000
-0x0294=0x0000
-0x0295=0x0000
-0x0296=0x0000
-0x0297=0x0000
-0x0298=0x0000
-0x0299=0x0000
-0x029A=0x0000
-0x029B=0x0000
-0x029C=0x0000
-0x029D=0x0000
-0x029E=0x0000
-0x029F=0x0000
-0x02A0=0x0000
-0x02A1=0x0000
-0x02A2=0x0000
-0x02A3=0x0000
-0x02A4=0x0000
-0x02A5=0x0000
-0x02A6=0x0000
-0x02A7=0x0000
-0x02C0=0x0000
-0x02C1=0x0000
-0x02C2=0x0000
-0x02C3=0x0000
-0x02C4=0x0000
-0x02C5=0x0000
-0x02C6=0x0000
-0x02C7=0x0000
-0x02C8=0x0000
-0x02C9=0x0000
-0x02CA=0x0000
-0x02CB=0x0000
-0x02CC=0x0000
-0x02CD=0x0000
-0x02CE=0x0000
-0x02CF=0x0000
-0x02D0=0x0000
-0x02D1=0x0000
-0x02D2=0x0000
-0x02D3=0x0000
-0x02D4=0x0000
-0x02D5=0x0000
-0x02D6=0x0000
-0x02D7=0x0000
-0x02D8=0x0000
-0x02D9=0x0000
-0x02DA=0x0000
-0x02DB=0x0000
-0x02DC=0x0000
-0x02DD=0x0000
-0x02DE=0x0000
-0x02DF=0x0000
-0x02E0=0x0000
-0x02E1=0x0000
-0x02E2=0x0000
-0x02E3=0x0000
-0x02E4=0x0000
-0x02E5=0x0000
-0x02E6=0x0000
-0x02E7=0x0000
-0x0300=0x0000
-0x0301=0x0000
-0x0302=0x0000
-0x0303=0x0000
-0x0304=0x0000
-0x0305=0x0000
-0x0306=0x0000
-0x0307=0x0000
-0x0308=0x0000
-0x0309=0x0000
-0x030A=0x0000
-0x030B=0x0000
-0x030C=0x0000
-0x030D=0x0000
-0x030E=0x0000
-0x030F=0x0000
-0x0310=0x0000
-0x0311=0x0000
-0x0312=0x0000
-0x0313=0x0000
-0x0314=0x0000
-0x0315=0x0000
-0x0316=0x0000
-0x0317=0x0000
-0x0318=0x0000
-0x0319=0x0000
-0x031A=0x0000
-0x031B=0x0000
-0x031C=0x0000
-0x031D=0x0000
-0x031E=0x0000
-0x031F=0x0000
-0x0320=0x0000
-0x0321=0x0000
-0x0322=0x0000
-0x0323=0x0000
-0x0324=0x0000
-0x0325=0x0000
-0x0326=0x0000
-0x0327=0x0000
-0x0340=0x0000
-0x0341=0x0000
-0x0342=0x0000
-0x0343=0x0000
-0x0344=0x0000
-0x0345=0x0000
-0x0346=0x0000
-0x0347=0x0000
-0x0348=0x0000
-0x0349=0x0000
-0x034A=0x0000
-0x034B=0x0000
-0x034C=0x0000
-0x034D=0x0000
-0x034E=0x0000
-0x034F=0x0000
-0x0350=0x0000
-0x0351=0x0000
-0x0352=0x0000
-0x0353=0x0000
-0x0354=0x0000
-0x0355=0x0000
-0x0356=0x0000
-0x0357=0x0000
-0x0358=0x0000
-0x0359=0x0000
-0x035A=0x0000
-0x035B=0x0000
-0x035C=0x0000
-0x035D=0x0000
-0x035E=0x0000
-0x035F=0x0000
-0x0360=0x0000
-0x0361=0x0000
-0x0362=0x0000
-0x0363=0x0000
-0x0364=0x0000
-0x0365=0x0000
-0x0366=0x0000
-0x0367=0x0000
-0x0380=0x0000
-0x0381=0x0000
-0x0382=0x0000
-0x0383=0x0000
-0x0384=0x0000
-0x0385=0x0000
-0x0386=0x0000
-0x0387=0x0000
-0x0388=0x0000
-0x0389=0x0000
-0x038A=0x0000
-0x038B=0x0000
-0x038C=0x0000
-0x038D=0x0000
-0x038E=0x0000
-0x038F=0x0000
-0x0390=0x0000
-0x0391=0x0000
-0x0392=0x0000
-0x0393=0x0000
-0x0394=0x0000
-0x0395=0x0000
-0x0396=0x0000
-0x0397=0x0000
-0x0398=0x0000
-0x0399=0x0000
-0x039A=0x0000
-0x039B=0x0000
-0x039C=0x0000
-0x039D=0x0000
-0x039E=0x0000
-0x039F=0x0000
-0x03A0=0x0000
-0x03A1=0x0000
-0x03A2=0x0000
-0x03A3=0x0000
-0x03A4=0x0000
-0x03A5=0x0000
-0x03A6=0x0000
-0x03A7=0x0000
-0x0400=0x0081
-0x0401=0x07FF
-0x0402=0x07FF
-0x0403=0x0000
-0x0404=0x0000
-0x0405=0x0000
-0x0406=0x0000
-0x0407=0x0000
-0x0408=0x0000
-0x0409=0x0000
-0x040A=0x0000
-0x040B=0x0000
-0x040C=0x0000
-0x040D=0x0000
-0x040E=0x0000
-0x040F=0x0000
-0x0440=0x0020
-0x0441=0x0000
-0x0442=0x0000
-0x0443=0x0000
-0x0444=0x0000
-0x0445=0x0000
-0x0446=0x0000
-0x0447=0x0000
-0x0448=0x0000
-0x0449=0x0000
-0x044A=0x0000
-0x044B=0x0000
-0x044C=0x0000
-0x044D=0x0000
-0x044E=0x0000
-0x044F=0x0000
-0x0450=0x0000
-0x0451=0x0000
-0x0452=0x0000
-0x0453=0x0000
-0x0454=0x0000
-0x0455=0x0000
-0x0456=0x0000
-0x0457=0x0000
-0x0458=0x0000
-0x0459=0x0000
-0x045A=0x0000
-0x045B=0x0000
-0x045C=0x0000
-0x045D=0x0000
-0x045E=0x0000
-0x045F=0x0000
-0x0460=0x0000
-0x0461=0x0000
-0x0480=0x0000
-0x0481=0x0000
-0x0482=0x0000
-0x0483=0x0000
-0x0484=0x0000
-0x0485=0x0000
-0x0486=0x0000
-0x0487=0x0000
-0x0488=0x0000
-0x0489=0x0000
-0x048A=0x0000
-0x048B=0x0000
-0x048C=0x0000
-0x048D=0x0000
-0x048E=0x0000
-0x048F=0x0000
-0x0490=0x0000
-0x0491=0x0000
-0x0492=0x0000
-0x0493=0x0000
-0x0494=0x0000
-0x0495=0x0000
-0x0496=0x0000
-0x0497=0x0000
-0x0498=0x0000
-0x0499=0x0000
-0x049A=0x0000
-0x049B=0x0000
-0x049C=0x0000
-0x049D=0x0000
-0x049E=0x0000
-0x049F=0x0000
-0x04A0=0x0000
-0x04A1=0x0000
-0x04A2=0x0000
-0x04A3=0x0000
-0x04A4=0x0000
-0x04A5=0x0000
-0x04A6=0x0000
-0x04A7=0x0000
-0x04C0=0x0000
-0x04C1=0x0000
-0x04C2=0x0000
-0x04C3=0x0000
-0x04C4=0x0000
-0x04C5=0x0000
-0x04C6=0x0000
-0x04C7=0x0000
-0x04C8=0x0000
-0x04C9=0x0000
-0x04CA=0x0000
-0x04CB=0x0000
-0x04CC=0x0000
-0x04CD=0x0000
-0x04CE=0x0000
-0x04CF=0x0000
-0x04D0=0x0000
-0x04D1=0x0000
-0x04D2=0x0000
-0x04D3=0x0000
-0x04D4=0x0000
-0x04D5=0x0000
-0x04D6=0x0000
-0x04D7=0x0000
-0x04D8=0x0000
-0x04D9=0x0000
-0x04DA=0x0000
-0x04DB=0x0000
-0x04DC=0x0000
-0x04DD=0x0000
-0x04DE=0x0000
-0x04DF=0x0000
-0x04E0=0x0000
-0x04E1=0x0000
-0x04E2=0x0000
-0x04E3=0x0000
-0x04E4=0x0000
-0x04E5=0x0000
-0x04E6=0x0000
-0x04E7=0x0000
-0x0500=0x0000
-0x0501=0x0000
-0x0502=0x0000
-0x0503=0x0000
-0x0504=0x0000
-0x0505=0x0000
-0x0506=0x0000
-0x0507=0x0000
-0x0508=0x0000
-0x0509=0x0000
-0x050A=0x0000
-0x050B=0x0000
-0x050C=0x0000
-0x050D=0x0000
-0x050E=0x0000
-0x050F=0x0000
-0x0510=0x0000
-0x0511=0x0000
-0x0512=0x0000
-0x0513=0x0000
-0x0514=0x0000
-0x0515=0x0000
-0x0516=0x0000
-0x0517=0x0000
-0x0518=0x0000
-0x0519=0x0000
-0x051A=0x0000
-0x051B=0x0000
-0x051C=0x0000
-0x051D=0x0000
-0x051E=0x0000
-0x051F=0x0000
-0x0520=0x0000
-0x0521=0x0000
-0x0522=0x0000
-0x0523=0x0000
-0x0524=0x0000
-0x0525=0x0000
-0x0526=0x0000
-0x0527=0x0000
-0x0540=0x0000
-0x0541=0x0000
-0x0542=0x0000
-0x0543=0x0000
-0x0544=0x0000
-0x0545=0x0000
-0x0546=0x0000
-0x0547=0x0000
-0x0548=0x0000
-0x0549=0x0000
-0x054A=0x0000
-0x054B=0x0000
-0x054C=0x0000
-0x054D=0x0000
-0x054E=0x0000
-0x054F=0x0000
-0x0550=0x0000
-0x0551=0x0000
-0x0552=0x0000
-0x0553=0x0000
-0x0554=0x0000
-0x0555=0x0000
-0x0556=0x0000
-0x0557=0x0000
-0x0558=0x0000
-0x0559=0x0000
-0x055A=0x0000
-0x055B=0x0000
-0x055C=0x0000
-0x055D=0x0000
-0x055E=0x0000
-0x055F=0x0000
-0x0560=0x0000
-0x0561=0x0000
-0x0562=0x0000
-0x0563=0x0000
-0x0564=0x0000
-0x0565=0x0000
-0x0566=0x0000
-0x0567=0x0000
-0x0580=0x0000
-0x0581=0x0000
-0x0582=0x0000
-0x0583=0x0000
-0x0584=0x0000
-0x0585=0x0000
-0x0586=0x0000
-0x0587=0x0000
-0x0588=0x0000
-0x0589=0x0000
-0x058A=0x0000
-0x058B=0x0000
-0x058C=0x0000
-0x058D=0x0000
-0x058E=0x0000
-0x058F=0x0000
-0x0590=0x0000
-0x0591=0x0000
-0x0592=0x0000
-0x0593=0x0000
-0x0594=0x0000
-0x0595=0x0000
-0x0596=0x0000
-0x0597=0x0000
-0x0598=0x0000
-0x0599=0x0000
-0x059A=0x0000
-0x059B=0x0000
-0x059C=0x0000
-0x059D=0x0000
-0x059E=0x0000
-0x059F=0x0000
-0x05A0=0x0000
-0x05A1=0x0000
-0x05A2=0x0000
-0x05A3=0x0000
-0x05A4=0x0000
-0x05A5=0x0000
-0x05A6=0x0000
-0x05A7=0x0000
-[reference_clocks]
-sxt_ref_clk_mhz=30.72
-sxr_ref_clk_mhz=30.72
diff --git a/mcu_program/calibrationsLMS7_MCU.hex b/mcu_program/calibrationsLMS7_MCU.hex
deleted file mode 100644
index ac8be62..0000000
--- a/mcu_program/calibrationsLMS7_MCU.hex
+++ /dev/null
@@ -1,510 +0,0 @@
-:10000000020798040D4A989680C10204114BEA60D9
-:1000100000C10300EE30E707C3E49FFFE49EFE2229
-:100020008080802222E52725E0246EF582E43409D1
-:0A003000F583E493FE740193FF22B0
-:03003B00021EA7FB
-:10004300021ED8020407E86480F8E933E83360113C
-:100053000460F0ED33EC337009E8FCE9FDEAFEEBF4
-:10006300FF220460DED3EB9FEA9EE99DE8C2E78CA2
-:10007300F0C2F795F0400CE8CCF8E9CDF9EACEFAF6
-:10008300EBCFFB1203D285D0F05804700320D5B315
-:10009300E80470075002B2D502041192D5EC046053
-:1000A300F7E4CCC0E0C398F8603B94186008400DB7
-:1000B300D0E0FB0203E9E4FBFAC9FC8028E830E462
-:1000C30006E4C9FBE4CAFCE830E305E4C9CACBFC97
-:1000D300E854076010F8C3E913F9EA13FAEB13FBCA
-:1000E300EC13FCD8F130F52FC3E49CFCEF9BFFEE3F
-:1000F3009AFEED99FDD0E0FBEF4E4D4C701222DBE2
-:100103000302040EEC2CFCEF33FFEE33FEED33FD64
-:10011300ED30E7EB0203E9EF2BFFEE3AFEED39FD9D
-:10012300D0E0FB50130BBB0003020411ED13FDEEF3
-:1001330013FEEF13FFEC13FC0203E9EC4D6011E82F
-:10014300497017ED33EC3304600DE4FCFFFEFD2230
-:10015300E933E8330470F80204071203D258046049
-:1001630009E4CC24815006285009020411284003D5
-:1001730002040EC0E0EB4A7044B98006D0E0FB02F3
-:1001830003FDEF4E701CBD8008EBFFEAFEE9FD8026
-:10019300EBE98DF0A4FEE5F0020227E9CDF9EAFED2
-:1001A300EBFFEF89F0A4FCE5F0CE89F0A42EFFE489
-:1001B30035F0CD89F0A42DFEE435F08067EF4E7065
-:1001C30005BD80D780C3EF8BF0A4ACF0EE8BF0A419
-:1001D3002CFCE435F0F8EF8AF0A42CE5F038FCE4CD
-:1001E30033CB8DF0A42CFCE5F03BF8EE8AF0A42C85
-:1001F300FCE5F038F8E433CF89F0A42CFCE5F038C3
-:10020300CF3400CE89F0A42FFFE5F03EFEE433C9DE
-:100213008DF0A42EFEE5F039CD8AF0A42FFFE5F092
-:100223003EFEE43DFD33D0E0FB50070BBB000F0265
-:100233000411EC2CFCEF33FFEE33FEED33FD020330
-:10024300E9020411EC5D046005E85904700302043B
-:10025300071203D2580460F6EC4860F2EC7004FD18
-:10026300FEFF22C860DB2481C85009C39860025096
-:100273000602040E9850CAF582E9294B4A7005AB71
-:10028300820203FD75F0007C1A7880C3EF9BEE9A1F
-:10029300ED99400DC3EF9BFFEE9AFEED99FDE84209
-:1002A300F0DC23ACF0D0E0FFD0E0FED0E0FDAB8289
-:1002B30020E7101BEB60BAEC2CFCEF33FFEE33FEB0
-:1002C300ED33FD0203E9E803F830E705C0F075F00C
-:1002D30000EF2FFFEE33FEED33FD40B830E7C28071
-:1002E300AA74F8CC6480CCC86480C8F58204604FDB
-:1002F300C3EB9FF5F0EA9E42F0E99D42F0E89C458E
-:10030300F0603C501DE5825FFFE582D313CB5BCBEE
-:10031300F42B5582FB50280ABA002409B90020089F
-:10032300801DE5825BFBE582D313CF5FCFF4C3135C
-:100333002F5582FF50090EBE00050DBD00010CC3F1
-:10034300EB9FF5F0EA9E42F0E99D42F0E89C45F010
-:100353006007CC4820E701B3EC2275F020800E75CE
-:10036300F010800575F0087D007E007F003392D584
-:1003730030D5031205A2EC334010EF33FFEE33FE0A
-:10038300ED33FDEC33FCD5F0ED22E5F0247EA2D570
-:1003930013CC92E7CDCEFF22EDD2E7CD33EC3392EF
-:1003A300D524814006E4FFFEFDFC22FCE4CFCECD44
-:1003B300CC24E0501174FF80EDC3CC13CCCD13CD0E
-:1003C300CE13CECF13CF0470F030D5DE0205A2E9F1
-:1003D300D2E7C933E833F892D5EDD2E7CD33EC3326
-:1003E300FC5002B2D522EC30E7100FBF000C0EBE5A
-:1003F30000080DBD00040BEB6014A2D5EB13FCED5C
-:1004030092E7FD2274FFFCFDFEFF22E480F8A2D5F3
-:1004130074FF13FC7D80E480EFC0E0EFFBEEFAEDA8
-:10042300F9ECF812013ED0E0F5F0EFFBEEFAEDF94E
-:10043300ECF81205E2A3A3A3A3E8C0E0E9C0E0EA55
-:10044300C0E0EBC0E0C0F012013E1205F2A3A3A38B
-:10045300A312004DD0F0D0E0FBD0E0FAD0E0F9D009
-:10046300E0F8D5F0D422E709F608DFFA8046E70979
-:10047300F208DFFA803E88828C83E709F0A3DFFA73
-:100483008032E309F608DFFA8078E309F208DFFA3D
-:10049300807088828C83E309F0A3DFFA8064898209
-:1004A3008A83E0A3F608DFFA805889828A83E0A36F
-:1004B300F208DFFA804C80D280FA80C680D480694B
-:1004C30080F28033801080A680EA809A80A880DA48
-:1004D30080E280CA803389828A83ECFAE493A3C8DA
-:1004E300C582C8CCC583CCF0A3C8C582C8CCC5839C
-:1004F300CCDFE9DEE7800D89828A83E493A3F608E3
-:10050300DFF9ECFAA9F0EDFB2289828A83ECFAE0A9
-:10051300A3C8C582C8CCC583CCF0A3C8C582C8CC48
-:10052300C583CCDFEADEE880DB89828A83E493A398
-:10053300F208DFF980CC88F0EF60010E4E60C388CB
-:10054300F0ED2402B4040050B9F582EB2402B404A4
-:100553000050AF23234582239004B973C2D5EC30F6
-:10056300E709B2D5E4C39DFDE49CFCEE30E715B288
-:10057300D5E4C39FFFE49EFE12060EC3E49DFDE493
-:100583009CFC800312060E30D507C3E49FFFE49E54
-:10059300FE22EF4BFFEE4AFEED49FDEC48FC22C381
-:1005A300E49FFFE49EFEE49DFDE49CFC22E8600FD3
-:1005B300ECC313FCED13FDEE13FEEF13FFD8F12292
-:1005C300E8600FEFC333FFEE33FEED33FDEC33FC96
-:1005D300D8F122E6FC08E6FD08E6FE08E6FF22E481
-:1005E30093FC740193FD740293FE740393FF22E45E
-:1005F30093F8740193F9740293FA740393FB22EC56
-:10060300F608EDF608EEF608EFF622BC000BBE0086
-:1006130029EF8DF084FFADF022E4CCF875F008EFFC
-:100623002FFFEE33FEEC33FCEE9DEC984005FCEE21
-:100633009DFE0FD5F0E9E4CEFD22EDF8F5F0EE8452
-:1006430020D21CFEADF075F008EF2FFFED33FD4017
-:1006530007985006D5F0F222C398FD0FD5F0EA2291
-:100663003E9248DA3ECCCCCD3F2AAAAB40000000F4
-:100673003F8000003F9837F03FB504F33FD744FC79
-:100683003E3172173EB172173F0515913EDE5BD9BD
-:10069300D2008002C200EDD2E7F8CD33EC33047010
-:1006A3000BBD800592D502041102040740FBD3144D
-:1006B30060F2F5F07C3FEE7A00C39496C8948B40C9
-:1006C300230AC89469C8941A401A0AC89468C8943B
-:1006D3001F40110AC8945AC89425400805F07A00AF
-:1006E300CDC2E7CDC0F08C2D8D2E8E2F8F30EA2317
-:1006F30023C0E02473F582E43406F5831205F21275
-:10070300004DECC0E0EDC0E0EEC0E0EFC0E012054C
-:10071300E2A82DA92EAA2FAB30120049D0E0FBD0BE
-:10072300E0FAD0E0F9D0E0B2E7F81202478C2D8D61
-:100733002E8E2F8F30900663740312041CA82DA9EC
-:100743002EAA2FAB3012013ED0E0600F247FF5823A
-:10075300E43406F5831205F212004D8C2D8D2E8E96
-:100763002F8F30D0E0C3947FFDE49400FC1203622A
-:100773007B187A727931783F12013EA82DA92EAAEF
-:100783002FAB3012004D30000B7BD97A5B79DE78CA
-:100793003E12013E22787FE4F6D8FD75815F0207A1
-:1007A300DF021E4FE493A3F8E493A34003F6800112
-:1007B300F208DFF48029E493A3F85407240CC8C398
-:1007C30033C4540F4420C8834004F456800146F6D2
-:1007D300DFE4800B0102040810204080900003E452
-:1007E3007E019360BCA3FF543F30E509541FFEE430
-:1007F30093A360010ECF54C025E060A840B8E493F2
-:10080300A3FAE493A3F8E493A3C8C582C8CAC58333
-:10081300CAF0A3C8C582C8CAC583CADFE9DEE780B8
-:10082300BE011C011D011E011F0120012101220126
-:1008330023AD43040007803640B9FF3404033F0669
-:100843007B000800040000FFFAFFF5FFF0FFECFF58
-:10085300EAFFEAFFECFFF2FFFB00060014002200B0
-:100863002E0038003D003A0030001D0003FFE3FF77
-:10087300C1FFA0FF85FF74FF72FF80FFA2FFD400BA
-:1008830014005D00A700E80118012E012300F40005
-:100893009F0029FF9AFEFEFE67FDE5FD8CFD6EFDC0
-:1008A3009AFE1AFEF30022019D0354053007160831
-:1008B300E80A890BDE0CCD0D490082008500AE01EC
-:1008C3000102000208008400000001F000000100A2
-:1008D3000C0000000000180007F0001801000C21B4
-:1008E3000BF83F010C010D010E010F011001110165
-:1008F3001201130115011601170118011902010252
-:1009030002040004010402040304040405040604AD
-:100913000704080409040A040B040C040D040E0460
-:100923004004410442044388E500DE204030420B8A
-:10093300FF0083403203DF00058180280C218C31C6
-:100943008007FF07FF008107FF07FF40000000004B
-:1009530000000007000000000010000000009800E5
-:10096300000002002000000000000000820085005B
-:10097300AE010001010108010C010D011001130179
-:1009830015011902000208040004030407040A0401
-:100993000C00000001F0000000000104260000002C
-:1009A30040001F000C00000000008C20700000407D
-:1009B3000007001000009800080007F0000001186D
-:1009C30001FFFF001A0040001F003CC0008000012F
-:1009D3008CE1706000700007003007C0D8B00000E1
-:1009E30000010ED7010E600204F80204700203B086
-:1009F3000403B00202A00201A00402A00401A0E4C7
-:100A0300F9E925E02424F582E43408120030E925CD
-:100A1300E02434F582E43408121854FDB1B209B964
-:100A230008DF22F1A98E258F26E4F527120025C0C1
-:100A330006C007120025F1ADE52725E024BAF582AB
-:100A4300E43409121854F1FAFFE52725E02494F55C
-:100A530082E43409121F75D007D006B1B20527E529
-:100A630027C3941340C6E4FBFA7D207F0A7E0471FA
-:100A7300977DA67F847E001212B78E278F28AB281E
-:100A8300AA277DA67F847E007197121F8D8F27E58D
-:100A930027B4020D7B017A007DAAF1EEE4FBFA8014
-:100AA30010E527B40311E4FBFA7DAAF1EE7B017A8A
-:100AB300007DBBF1EE80057E007F01227B02718FFA
-:100AC3007D667F1C121D774E70387B01FA7D107F87
-:100AD30020FE7197121BE3C004C005C006C007F1D6
-:100AE3000C121A8CD007D006D005D0041200497816
-:100AF300CB121F42C20091068F24E52460372440A5
-:100B03008047C200121BE88F2A8E298D288C277BF1
-:100B130002718F5102D200F10CAB2AAA29A928A88D
-:100B23002712004D784B121F4291068F24E5246053
-:100B33000424508014AD26AC25B1AE1217FC121854
-:100B4300758F24E52460072430FFE433FE22121856
-:100B530024D200752F40752E54752D09752C4B1218
-:100B63001B01F10A121AEEE5265403640270197B85
-:100B7300017D107F20121F00E4FBFA7D117F82FEAE
-:100B83007197AD26AC25B1AEE4FEFF227A007D104D
-:100B93007F207E008A598B5AA9058F828E83F1ADFF
-:100BA300AD07AC06E9C4540FFFE9540FFBC3EF9B39
-:100BB3001217B6088005C333CE33CED8F9F4FFEE4F
-:100BC300F4FEEFA803088005C333CE33CED8F9F57E
-:100BD3005C8E5BE9540FFFE55AAE59A80708800500
-:100BE300C333CE33CED8F9FFE55B5EFEE55C5FFF32
-:100BF300E55CF4FBE55BF45CFCEB121FAAAF82AE91
-:100C030083A1B2F1A98E2F8F307A003000047B02CA
-:100C130080027B017191753506E535121CC208808F
-:100C230005C333CE33CED8F9FDAC06EC120362AB69
-:100C33002EAA2DA92CA82B121A7D7F667E7F7D629A
-:100C4300121A4F400D7F267EE57DE5121A4F600D87
-:100C5300400B1535C3E5356480948050BCE535FB06
-:100C63003395E0FA7D867F1F121A447E00600640AA
-:100C7300047F0180027F00EF2401FDE43EFC1203A8
-:100C830062121DEC12013E121A8C121A69121D987F
-:100C930012039BE412035D121A8C121D8612004983
-:100CA300E4FBFA79807849121CB5121D8FE4FFFE2C
-:100CB3007D807CC0AB39AA38A937A836121A3EAB5F
-:100CC30007AA067DD47F1E7E017197E53DFFE53CB3
-:100CD300FEE4AB07AA067DF07F1D7E017197121A11
-:100CE300DCAC3A121DAA7F1E121A447A0060064039
-:100CF300047B0180027B007DAA121F23C20178328C
-:100D03007C007D007BFF7A0079201214ECE4F5313E
-:100D1300E531FB3395E07D21121F547F0130000242
-:100D23007F02121097EF70137DA37F21121D77248A
-:100D330080FF74322531F8A607D2010531C3E531AE
-:100D43006480948340CA753102121F34C006C00701
-:100D5300AF32EF121F3BD005D004121F695003E4DA
-:100D6300F531121F34C006C007AF33EF121F3BD05B
-:100D730005D004121F695003753101E531FB33952A
-:100D8300E0FA7D21121F5574322531F8E6FF3395C1
-:100D9300E0FEEF2480FBE43E7DA3121F54AD30AC94
-:100DA3002FB1AE7F002001027F02227F207E00ABA5
-:100DB30005AA04C2A0C2A1EE4480FE121EE1AF0345
-:100DC300AE02121EE1D2A1D2A2227901F1A98E2292
-:100DD3008F23E4F524121F81120030C006C00712CE
-:100DE3001F81120030F1ADE52425E024D8F582E41B
-:100DF3003408121854F1FAFFE52425E024CAF582D9
-:100E0300E43408121F75D007D006121FB3940740AD
-:100E1300C4E4F524E52425E024E6F582E43408124D
-:100E23000030E52425E0242AF582E434091218541D
-:100E3300FD121FB3942240DC121824121875A9075F
-:100E4300E960012285225E85235F7B0112102B124C
-:100E53001BE3C004C005C006C007F10C121A8CD0F6
-:100E630007D006D005D0041200497B007A24797498
-:100E730078C912004D121DA1C200121F4B9106A981
-:100E830007E960042450FF22E52330E109E4FB7DF8
-:100E9300117F82121F0085225E85235F7B02121061
-:100EA3002B7A00121F1FAD23AC22B1AE1217FCD256
-:100EB30000F10C121AF97DBA7F037E011212B78F6B
-:100EC30024E52464016009E524640260037F0522AC
-:100ED300E5242401FBE433FA7D87F1F4E52464037C
-:100EE300FB7A007D65121EF9E52464037D437F0DC3
-:100EF300121D7E7F00227F0C7E047197E4FBFA7D36
-:100F0300777F0C7E047197C200E4FBFA79A07840E6
-:100F1300AF10AE0FAD0EAC0D020247F1A98E228FBA
-:100F23002312002351268F21E521706A1214F31234
-:100F33001F8DBF020DE47D55121EF7E4FBFA7D33CE
-:100F4300800BE47D66121EF7E4FBFA7D44F1F47B2B
-:100F530002718F7D667F1C121D774E7010FA121F6F
-:100F63001F7B01718FE4FBFA7D11121F23AD23ACAC
-:100F730022B1AEAF10AE0FAD0EAC0D121D087B014A
-:100F83007A007DDDD1F97B007A5079C37847121A54
-:100F9300F6C200121423E5216006120024AF2122B9
-:100FA3001200247F00227F207E00E4FBFAC2A0C24D
-:100FB300A1EE547FFE121EE1D2A27D10D2A0EB253A
-:100FC300E0FBEA33FA30A303430301C2A0DDEDD211
-:100FD300A1D2A2AE02AF0322C3EF64809480400289
-:100FE3008008EF121F3BEF4440FF227F037E016125
-:100FF300977F0D7E016197F4FDECF45EFEEF5D22B9
-:101003008E508F51A905120FAD8E528F53AD0151E2
-:10101300FDE4FBFAAF51AE501133AD0151FD7B013D
-:101023007A00AF51AE5080087A007D107F207E0099
-:101033008E598F5AEDC4540FFFED540FFCC3EF9C30
-:10104300F1B6088005C333CE33CED8F9F4FFEEF4FE
-:10105300FEEFA804088005C333CE33CED8F9F5825A
-:101063008E83ED540FFFEBAE02A807088005C33350
-:10107300CE33CED8F9FFEE5583FEEF5582FFE582DE
-:10108300F4FDE583F4555EFCE55F121FAAAF5AAE8B
-:1010930059020DB28F44E5446019E4FBFA7D211235
-:1010A3001F23754D01754E217551A3754F01755061
-:1010B30023801AE4FBFA7D217F86FE120B97754D80
-:1010C30000754E8B755181754F0075508CAF4EAEC8
-:1010D3004D120FAD8E528F5351FDE4FBFA51A7EF22
-:1010E30064034E70037F042251FD7BFF7A0051A7F6
-:1010F300EF4E70037F0422E4F554E554FD3395E08D
-:10110300FCED2401FFE43CFEEF7807C333CE33CE7E
-:10111300D8F9FF5192A60608A607EDAE047807C3D7
-:1011230033CE33CED8F95187A60608A6075188E6F1
-:10113300FA08E6FB51FDF19C7555065188C0001273
-:101143001F5C8005C333CE33CED8F9FFEC4EFEEDE2
-:101153004FD000A60608F65188519C8F56E556B429
-:1011630003185188C000121F5C8005C333CE33CEF1
-:10117300D8F9F1D8D000A60608F6E556640270192E
-:101183005192E6FE08E65187E6FC08E6FDD3D13826
-:1011930050075192A60408A6051555C3E55564806A
-:1011A300948050975188E6FE08E6FF5192E6FC08CA
-:1011B300E6FDD3D1385030AF54EF3395E0FEEF78EE
-:1011C30007C333CE33CED8F9FFD136401A51920834
-:1011D300E61618700116519CEF64024E60C65192D8
-:1011E3000806E6187001060554C3E554648094822A
-:1011F300500201FDE54C24FFFFE54B34FFFEEFB544
-:101203004612EEB5450E854954854A5585475685A0
-:1012130048578034C3E5469548FFE5459547FEC3E7
-:10122300E54A954CFDE549954BFCD1367F004002DC
-:101233007F018F58EF518AE6F55408E6F555EF51D3
-:1012430094E6F55608E6F557F1A4E5572FFBE55666
-:101253003EFA51A1EF64024E6016F1A4E5572FCF79
-:10126300E5563ECF2401FBE43FFA51FDF19C800398
-:101273007F002251AFEF64024E6006E5442421FF54
-:10128300227F0022FFE55425E025E02445F822E5EE
-:101293005425E025E02447F822E6FA08E6FB8552C8
-:1012A3005E85535FAD51AF4EAE4D113351E67DDCDC
-:1012B300AF50AE4FA905120FADAC06AD07E9C4544C
-:1012C3000FF1B6088005C333CE33CED8F9F1D8FF7A
-:1012D300E9540FFDEFA805088005CEC313CE13D83C
-:1012E300F9FF22E4F559FFFEE55925E0F5590FBF53
-:1012F30000010EBE01F2BF90EF2285525E85535F5F
-:10130300228F4074FFF541F542A807E82405F8E66B
-:10131300F54508E6F546A807E82407F8E6F5470883
-:10132300E6F548A807E6F54B08E6F54CA807E824D8
-:1013330002F8E6F54DAF4CAE4B120FAD8E4E8F4F0C
-:10134300A840E6FE08E6FF9009E4740193B5070898
-:10135300E493B50603D38001C39202D155F1088FFC
-:1013630044C3E5489546FFE5479545FEC3EF940121
-:10137300EE64809480404BF1AF8E498F4AF194958F
-:10138300435008D155F1088F44800EAF46AE45D186
-:1013930059113371ED8E418F42E54A45496023F17E
-:1013A300949543500FC3E548954AF548E547954959
-:1013B300F54780ADE54A2546F546E5493545F5450A
-:1013C300809FF19495435006AE45AF468004AE47E7
-:1013D300AF48E5402403F8A60608A607E540240322
-:1013E300F8E6FE08E6FFD1590133F17DF17DF17D89
-:1013F3007DFF7F007E0411037F0F7E04120FADEF8C
-:101403007802C333CE33CED8F9F5828E837F0E7E36
-:1014130004120FADEF5403FFE583FEE5824FFF2275
-:10142300F1EA3000147A0979F691EC7A0979F991A5
-:10143300E4F1CF7A0979F080127A0979FC91EC7A98
-:101443000979FF91E4F1CF7A0979F391EC753100D1
-:10145300753280752FFF7530807F2A71047DBFF14F
-:10146300C67DFFF16A71ED8E3C8F3D7DFFF1C67D38
-:10147300BFF16A71ED8E3E8F3FC3E53D953FE53C7D
-:10148300953E78337C007D007B0050067A007924FA
-:1014930080047A00792791EC7DFF7C07F16A753A25
-:1014A30007753BFF7538057539FF7F337104E52EEA
-:1014B3002410F532E4352DF531E52E24F0F530E531
-:1014C3002D34FFF52F7F2A7104AD37AC36AF34AE20
-:1014D30033120DB2AB2EAA2DAD2CAF2BAE2A020BBD
-:1014E3009778277C007D007BFF7E007F0302053910
-:1014F300D202E4FBFAF1767B017A007D22F124E447
-:10150300FBFA7DEDFF7E04120B977F20120FDBEFBA
-:1015130075F080A4FFAEF0C007C0067F20120FDB7A
-:10152300EFFDD0E0FCD0E04DFD7F0E7E01120DB249
-:10153300F1EA7A0979E491EC782D7C007D007BFF58
-:101543007A0979E791EC75340075353F752B007591
-:101553002C3F7532FF7533C17529FF752AC1F10F11
-:101563002408121F9624F8F1F3E5312408F535E435
-:101573003530F534E53124F8F533E53034FFF53211
-:10158300F10F2404121F9624FCF1F37F247104E469
-:10159300FBFA7D22F124F171C20222F171E47D880C
-:1015A3007F087E02F11AE4FBFA7DF07F047E0212CB
-:1015B3000B9778227C007D007BFF7A0979EA91EC16
-:1015C300752900752A7F7527FF7528807F2271048E
-:1015D300782B7C007D007BFF7A0979ED91EC7532E5
-:1015E3000075337F7530FF7531807F2B7104E526DD
-:1015F3002404F52AE43525F529E52624FCF528E518
-:101603002534FFF5277F227104E52F2404F533E405
-:10161300352EF532E52F24FCF531E52E34FFF53078
-:101623007F2B7104E526FAE52FFB7DF07F047E0214
-:10163300020B97D3ED9FEE6480F8EC648098228EC2
-:10164300508F51300207120FDB7E008004AE50AF83
-:101653005122AF48AE47D142AA06AB07854E5E85FD
-:101663004F5FAD4DAF4CAE4B227522B0752300E4F6
-:10167300FBFA7D22120EF9121CBB12013EF1E1129C
-:101683001AF6F1018E268F277D407F197E0151B70F
-:101693008F24F1BE8F25121FA05018C3E525648047
-:1016A300948F500F0525E5257D527F13121F2AF1D4
-:1016B3000180E3E525640F7032121FA0502DC3E5AE
-:1016C300246480949250240524E5247D407F1912DC
-:1016D3001F2AF101C3E5299527E52895265004150E
-:1016E30024800885282685292780C87B017A00F174
-:1016F300227B017A007D227F0C7E04020B9771ED21
-:101703008E288F2922113371ED8E43227F24710499
-:101713007F2D7104E52822FBFA120B97E4FBFA7D77
-:10172300777F0C7E04020B97120023120DCD8F21BD
-:10173300E5217023D16C91F3120F0AF1E1121AF62D
-:10174300B19EC200752F00752EBA752D5B752C499D
-:10175300121B01D2009123E5216006120024AF2160
-:10176300221200247F0022AF28AE27020DB27B0194
-:101773007A00E4FDFF7E01020B97E4F550FFFEE5DE
-:101783005025E0F5500FBF00010EEF64C84E70EF17
-:1017930022C3E5429544E54122AD51AF4EAE4D0122
-:1017A30033C3E5559557FFE5549556FE7C007D02FE
-:1017B30002055F04FF74FFFEA807227D527F137E9C
-:1017C3000141B77C07AF25AE24020DB2782A7C0015
-:1017D3007D007BFF22F4FFEEF45CFEED5F227B00D5
-:1017E3007ABA795B78492278247C007D007BFF22DA
-:1017F300F52AE52734FFF529227DFF7C7F7F0C7EC8
-:1018030002120DB27D557F007E021210037D007C13
-:10181300807F0C7E02120DB27D667F007E02021075
-:1018230003E4F9115DFEE9114BFD120DB209B93C58
-:10183300F2E9C394785010115DFEC3747799114B8C
-:10184300FD120DB20980EA2225E02444F582E43436
-:1018530008F583E493FC74019322E975F0288475F9
-:10186300F018A4FFE92400FDE43405CD2FFFED3586
-:10187300F0227152311D120247E4FBFAF9783F510D
-:101883003E8F2BE52BC394025003752B02E52BD31C
-:1018930094094009E52B940C5003752B0CE52BD3CD
-:1018A300940D4003752B0DAC2BE4120367311D120D
-:1018B300013E3134EF600122E52B25E025E0F52CD4
-:1018C30091D4EF64014E70117DCB7F89FE1212B764
-:1018D3003126E52C8FF084F52CAC2CE4120367122F
-:1018E3000697C004C005C006C0077F007E007D00C8
-:1018F3007C40120697518CD007D006D005D0041235
-:10190300024712039B3126EF14F52CFB7A007D70FE
-:101913007F077E04120B977F00227B007AC8792F02
-:10192300784C2291C4088005C333CE33CED8F9FF57
-:101933002291DDE4F537F535F536E537C3940350E9
-:1019430056E5362401FFE43535FEEF25E0FDEE33A1
-:10195300FC1203625174517D7F287E6B7DEE7C4EB9
-:10196300515140237FBB7EEE7D20514F60025017C3
-:10197300AF34AE33AD32AC31AB370537EB25E025B1
-:10198300E02438F81206020536E536700205357094
-:1019930004E535640170A3E53770037F0322E5375F
-:1019A300C31325E025E02438F81205D6518051747D
-:1019B30012024791BB12024751378E358F36AB3631
-:1019C300AA357DA37F89515C5137AB07AA067DD425
-:1019D3007F88515C12039BE412035DC004C005C001
-:1019E30006C0075161D003D002D001D000120049D4
-:1019F3008F3A8E398D388C37E4FFFE7D807C49AB7E
-:101A03003AAA39A938A83791B58F3E8E3D8D3C8CC3
-:101A13003BE4AB07AA067DF07F87FE120B97AF3E30
-:101A2300AE3DAD3CAC3BB1AA7F887E00120B97E480
-:101A3300FF021097E4FBFA798078BF12004D02038E
-:101A43009B7E01120B977FAC7EE97DA37C4FAB3469
-:101A5300AA33A932A8310202E47E00120B97AB1419
-:101A6300AA13A912A811AF34AE33AD32AC310202BE
-:101A730047AB30AA2FA92EA82D2212013E8F348EF8
-:101A8300338D328C3122120362A804A905AA06AB56
-:101A930007227152B1987DCB7F897E001212B73134
-:101AA30026AC06AD07E4518951E3B18F91D4EF4ED3
-:101AB300701130010551DCAC3A22E4FBFA798078ED
-:101AC30040801D300104B186800EE4FBFA798078F2
-:101AD3004051DCAC3A12024722AF3DAE3CAD3B2253
-:101AE300AF39AE38AD37AC360202477B007A507956
-:101AF300C378C712004D8F2F8E2E8D2D8C2C7E0414
-:101B03003000027E027F428E308F31A2009201515B
-:101B130095518CAF2FAE2EAD2DAC2C120247E4FBAA
-:101B2300FA7980784F91B58F358E348D338C327836
-:101B3300101205B0AD07AC06AF31AE30120DB2E5F1
-:101B4300312401FFE43530FEAC34AD35020DB27DF6
-:101B5300A37F897E0071D5C004C005C006C007916C
-:101B6300BB91EFD003D002D001D0001202478F41C6
-:101B73008E408D3F8C3E7DD07F887E001212B78EC3
-:101B8300428F437F877E0091E6C004C005C006C034
-:101B930007FEE54391CBD003D002D001D00012055C
-:101BA3009591FAC004C005C006C007E542C4F854C5
-:101BB300F0C868FEE543C4540F4871D9D003D0027E
-:101BC300D001D00012004DAB41AA40A93FA83E026C
-:101BD300013E1212B7EF2401FDE43EFCE40203626E
-:101BE300120A02D200120FA98E318F323000047B09
-:101BF3000280027B01120B8F7DD07F1E7E011212A9
-:101C0300B78E2B8F2C7F1D7E0191E6C004C005C0CB
-:101C130006C007FEE52C91CBD003D002D001D00043
-:101C230012059591DD7D867F1FB17791C2088005EE
-:101C3300C333CE33CED8F9FDAC06EC518991EF9185
-:101C4300AC7DAA7F1C7E0171D5C004C005C006C04F
-:101C530007AF30AE2FAD2EAC2D91FAC004C005C036
-:101C630006C007E52BC4F854F0C868FEE52CC4543D
-:101C73000F48240471DBD003D002D001D00012003E
-:101C83004DAB36AA35A934A83312013ED003D00296
-:101C9300D001D00012013E91ACAD32AC31120DAE89
-:101CA300AF36AE35AD34AC33228F368E358D348CB2
-:101CB300332212013E02039BE4FBFAF9784022042B
-:101CC300FF74017E00A80722540FFFE47810020579
-:101CD300C37DBB7F867E000212B78F308E2F8D2E81
-:101CE3008C2D227DF01212B7E4FCFD22AF14AE134B
-:101CF300AD12AC11020247E412035DE4FBFA7980F2
-:101D03007849020247B1A17528027529021217BE4C
-:101D13008F2A7DFA7F087E011212B78F2BE47DDDB7
-:101D23007F0C7E0412171AC200E4FBFA79A07840F4
-:101D3300AF27AE26AD25AC2412024751EE801FB16A
-:101D43006B4020E528252AF52AD3940F4008E52A7D
-:101D53009528F52A800DE52A7D527F13B17E121353
-:101D6300ED80DCB16B7F0022D39009E07401939F77
-:101D7300E4939E227E011212B7EF22FB7A007E01CA
-:101D8300020B97AF39AE38AD37AC36228F3D8E3C60
-:101D93008D3B8C3A228F398E388D378C36228F27A4
-:101DA3008E268D258C242278101205B0AB07AA0647
-:101DB3007D3022AC09E4120367B1E58C11B1ECC0AC
-:101DC30000C001C002C003D13CD003D002D001D077
-:101DD3000012004DB1E58C11B1F5B1E58C11E4F5BC
-:101DE30090228F148E138D1222AB14AA13A912A85A
-:101DF30011227B007A247974784902013EAC09E40C
-:101E0300120367D1358C0DAB10AA0FA90EA80DC014
-:101E130000C001C002C003D13CD003D002D001D026
-:101E23000012004DD1358C0DB1F5D1358C0DE4F593
-:101E330090228F108E0F8D0E22E50AAD0BFCE4125B
-:101E43000362E4FBFA797A78440202477581D0E4AD
-:101E5300F5A27591FFF59075A10775A9FF75A88087
-:101E6300C2A0D2A185800C3003FDE50814601514CF
-:101E7300601914601D14601E2405601E14701EE496
-:101E8300F590801912172B8F908012120F1E8F90CE
-:101E9300800BD1008007B1B6800375900285080CD2
-:101EA300C20380C3C0E0C0D075D000C000C006C06C
-:101EB300077590FF7F0274082FF8E6FE74092FF868
-:101EC300A606DFF2858009759000D007D006D00002
-:101ED300D0D0D0E0327590FF858008D203327D10D8
-:101EE300C2A0EE3392A2EF25E0FFEE33FED2A0DDD7
-:101EF300EFC2A022FBFA7F0C7E01020B97FAFE12BF
-:101F03000B977B017A00E4FD7F0D7E01120B977B1B
-:101F1300017A007DEE7F007E01020B977B017D66D7
-:101F23007F1C7E01020B97FB3395E0FA7E01020BC7
-:101F33009774322531F8E6FF3395E0FE0200147BF7
-:101F4300407A54790912004D8F2E8E2D8D2C8C2BB7
-:101F530022FA7F217E01020B97E6FC08E6FD74015D
-:101F63007E00A8550822C3EF9DEC6480F8EE6480E0
-:101F73009822F583E4934EFC7401934FFD22E524EC
-:101F830025E024BCF582E43408227D877F0D7E01A1
-:101F93000212B7F52CE43527F52BE52822C3E529F2
-:101FA3009523E5289522225DFDEC4EFCED4FFD22A5
-:091FB300120DB20524E524C3223D
-:00000001FF
diff --git a/mcu_program/calibrationsLMS7_MCU.uvproj b/mcu_program/calibrationsLMS7_MCU.uvproj
index 0d74d4d..2008c77 100644
--- a/mcu_program/calibrationsLMS7_MCU.uvproj
+++ b/mcu_program/calibrationsLMS7_MCU.uvproj
@@ -42,7 +42,7 @@
             <NotGenerated>0</NotGenerated>
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
-          <OutputDirectory>.\</OutputDirectory>
+          <OutputDirectory>..\build\mcu_program\</OutputDirectory>
           <OutputName>calibrationsLMS7_MCU</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
@@ -284,11 +284,11 @@
             <uAregs>0</uAregs>
             <UseInterruptVector>1</UseInterruptVector>
             <Fuzzy>3</Fuzzy>
-            <Optimize>12</Optimize>
+            <Optimize>9</Optimize>
             <WarningLevel>2</WarningLevel>
             <SizeSpeed>0</SizeSpeed>
             <ObjectExtend>1</ObjectExtend>
-            <ACallAJmp>1</ACallAJmp>
+            <ACallAJmp>0</ACallAJmp>
             <InterruptVectorAddress>0</InterruptVectorAddress>
             <VariousControls>
               <MiscControls></MiscControls>
@@ -350,6 +350,46 @@
               <FileName>lms7002m_calibrations.c</FileName>
               <FileType>1</FileType>
               <FilePath>.\common_src\lms7002m_calibrations.c</FilePath>
+              <FileOption>
+                <CommonProperty>
+                  <UseCPPCompiler>2</UseCPPCompiler>
+                  <RVCTCodeConst>0</RVCTCodeConst>
+                  <RVCTZI>0</RVCTZI>
+                  <RVCTOtherData>0</RVCTOtherData>
+                  <ModuleSelection>0</ModuleSelection>
+                  <IncludeInBuild>1</IncludeInBuild>
+                  <AlwaysBuild>2</AlwaysBuild>
+                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
+                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
+                  <PublicsOnly>2</PublicsOnly>
+                  <StopOnExitCode>11</StopOnExitCode>
+                  <CustomArgument></CustomArgument>
+                  <IncludeLibraryModules></IncludeLibraryModules>
+                  <BankNo>65535</BankNo>
+                </CommonProperty>
+                <File51>
+                  <C51>
+                    <RegisterColoring>2</RegisterColoring>
+                    <VariablesInOrder>2</VariablesInOrder>
+                    <IntegerPromotion>2</IntegerPromotion>
+                    <uAregs>2</uAregs>
+                    <UseInterruptVector>2</UseInterruptVector>
+                    <Fuzzy>8</Fuzzy>
+                    <Optimize>10</Optimize>
+                    <WarningLevel>3</WarningLevel>
+                    <SizeSpeed>2</SizeSpeed>
+                    <ObjectExtend>2</ObjectExtend>
+                    <ACallAJmp>2</ACallAJmp>
+                    <InterruptVectorAddress>0</InterruptVectorAddress>
+                    <VariousControls>
+                      <MiscControls></MiscControls>
+                      <Define></Define>
+                      <Undefine></Undefine>
+                      <IncludePath></IncludePath>
+                    </VariousControls>
+                  </C51>
+                </File51>
+              </FileOption>
             </File>
             <File>
               <FileName>lms7002m_calibrations.h</FileName>
@@ -360,6 +400,46 @@
               <FileName>lms7002m_controls.c</FileName>
               <FileType>1</FileType>
               <FilePath>.\common_src\lms7002m_controls.c</FilePath>
+              <FileOption>
+                <CommonProperty>
+                  <UseCPPCompiler>2</UseCPPCompiler>
+                  <RVCTCodeConst>0</RVCTCodeConst>
+                  <RVCTZI>0</RVCTZI>
+                  <RVCTOtherData>0</RVCTOtherData>
+                  <ModuleSelection>0</ModuleSelection>
+                  <IncludeInBuild>1</IncludeInBuild>
+                  <AlwaysBuild>2</AlwaysBuild>
+                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
+                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
+                  <PublicsOnly>2</PublicsOnly>
+                  <StopOnExitCode>11</StopOnExitCode>
+                  <CustomArgument></CustomArgument>
+                  <IncludeLibraryModules></IncludeLibraryModules>
+                  <BankNo>65535</BankNo>
+                </CommonProperty>
+                <File51>
+                  <C51>
+                    <RegisterColoring>2</RegisterColoring>
+                    <VariablesInOrder>2</VariablesInOrder>
+                    <IntegerPromotion>2</IntegerPromotion>
+                    <uAregs>2</uAregs>
+                    <UseInterruptVector>2</UseInterruptVector>
+                    <Fuzzy>8</Fuzzy>
+                    <Optimize>10</Optimize>
+                    <WarningLevel>3</WarningLevel>
+                    <SizeSpeed>2</SizeSpeed>
+                    <ObjectExtend>2</ObjectExtend>
+                    <ACallAJmp>2</ACallAJmp>
+                    <InterruptVectorAddress>0</InterruptVectorAddress>
+                    <VariousControls>
+                      <MiscControls></MiscControls>
+                      <Define></Define>
+                      <Undefine></Undefine>
+                      <IncludePath></IncludePath>
+                    </VariousControls>
+                  </C51>
+                </File51>
+              </FileOption>
             </File>
             <File>
               <FileName>lms7002m_controls.h</FileName>
@@ -370,6 +450,46 @@
               <FileName>LMS7002M_parameters_compact.c</FileName>
               <FileType>1</FileType>
               <FilePath>.\common_src\LMS7002M_parameters_compact.c</FilePath>
+              <FileOption>
+                <CommonProperty>
+                  <UseCPPCompiler>2</UseCPPCompiler>
+                  <RVCTCodeConst>0</RVCTCodeConst>
+                  <RVCTZI>0</RVCTZI>
+                  <RVCTOtherData>0</RVCTOtherData>
+                  <ModuleSelection>0</ModuleSelection>
+                  <IncludeInBuild>1</IncludeInBuild>
+                  <AlwaysBuild>2</AlwaysBuild>
+                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
+                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
+                  <PublicsOnly>2</PublicsOnly>
+                  <StopOnExitCode>11</StopOnExitCode>
+                  <CustomArgument></CustomArgument>
+                  <IncludeLibraryModules></IncludeLibraryModules>
+                  <BankNo>65535</BankNo>
+                </CommonProperty>
+                <File51>
+                  <C51>
+                    <RegisterColoring>2</RegisterColoring>
+                    <VariablesInOrder>2</VariablesInOrder>
+                    <IntegerPromotion>2</IntegerPromotion>
+                    <uAregs>2</uAregs>
+                    <UseInterruptVector>2</UseInterruptVector>
+                    <Fuzzy>8</Fuzzy>
+                    <Optimize>10</Optimize>
+                    <WarningLevel>3</WarningLevel>
+                    <SizeSpeed>2</SizeSpeed>
+                    <ObjectExtend>2</ObjectExtend>
+                    <ACallAJmp>2</ACallAJmp>
+                    <InterruptVectorAddress>0</InterruptVectorAddress>
+                    <VariousControls>
+                      <MiscControls></MiscControls>
+                      <Define></Define>
+                      <Undefine></Undefine>
+                      <IncludePath></IncludePath>
+                    </VariousControls>
+                  </C51>
+                </File51>
+              </FileOption>
             </File>
             <File>
               <FileName>LMS7002M_parameters_compact.h</FileName>
@@ -400,6 +520,46 @@
               <FileName>spi.c</FileName>
               <FileType>1</FileType>
               <FilePath>.\mcu_src\spi.c</FilePath>
+              <FileOption>
+                <CommonProperty>
+                  <UseCPPCompiler>2</UseCPPCompiler>
+                  <RVCTCodeConst>0</RVCTCodeConst>
+                  <RVCTZI>0</RVCTZI>
+                  <RVCTOtherData>0</RVCTOtherData>
+                  <ModuleSelection>0</ModuleSelection>
+                  <IncludeInBuild>1</IncludeInBuild>
+                  <AlwaysBuild>2</AlwaysBuild>
+                  <GenerateAssemblyFile>2</GenerateAssemblyFile>
+                  <AssembleAssemblyFile>2</AssembleAssemblyFile>
+                  <PublicsOnly>2</PublicsOnly>
+                  <StopOnExitCode>11</StopOnExitCode>
+                  <CustomArgument></CustomArgument>
+                  <IncludeLibraryModules></IncludeLibraryModules>
+                  <BankNo>65535</BankNo>
+                </CommonProperty>
+                <File51>
+                  <C51>
+                    <RegisterColoring>2</RegisterColoring>
+                    <VariablesInOrder>2</VariablesInOrder>
+                    <IntegerPromotion>2</IntegerPromotion>
+                    <uAregs>2</uAregs>
+                    <UseInterruptVector>2</UseInterruptVector>
+                    <Fuzzy>8</Fuzzy>
+                    <Optimize>10</Optimize>
+                    <WarningLevel>3</WarningLevel>
+                    <SizeSpeed>2</SizeSpeed>
+                    <ObjectExtend>2</ObjectExtend>
+                    <ACallAJmp>2</ACallAJmp>
+                    <InterruptVectorAddress>0</InterruptVectorAddress>
+                    <VariousControls>
+                      <MiscControls></MiscControls>
+                      <Define></Define>
+                      <Undefine></Undefine>
+                      <IncludePath></IncludePath>
+                    </VariousControls>
+                  </C51>
+                </File51>
+              </FileOption>
             </File>
           </Files>
         </Group>
diff --git a/mcu_program/common_src/lms7002m_calibrations.c b/mcu_program/common_src/lms7002m_calibrations.c
index 5614556..10b1351 100644
--- a/mcu_program/common_src/lms7002m_calibrations.c
+++ b/mcu_program/common_src/lms7002m_calibrations.c
@@ -5,27 +5,27 @@
 #include <math.h>
 
 #ifdef __cplusplus
-    #define VERBOSE 1
-    //#define DRAW_GNU_PLOTS
+#define VERBOSE 1
+//#define DRAW_GNU_PLOTS
 
-    #include <thread>
-    #include <vector>
-    #include <chrono>
-    #include <stdio.h>
+#include <thread>
+#include <vector>
+#include <chrono>
+#include <stdio.h>
 
-    typedef struct
-    {
-        int16_t value;
-        uint32_t signalLevel;
-        std::vector<float> measurements;
-    } BinSearchResults;
-    BinSearchResults results;
-
-    #include <gnuPlotPipe.h>
-    GNUPlotPipe saturationPlot;
-    GNUPlotPipe rxDCPlot;
-    GNUPlotPipe IQImbalancePlot;
-    GNUPlotPipe txDCPlot;
+typedef struct
+{
+    int16_t value;
+    uint32_t signalLevel;
+    std::vector<float> measurements;
+} BinSearchResults;
+BinSearchResults results;
+
+#include <gnuPlotPipe.h>
+GNUPlotPipe saturationPlot;
+GNUPlotPipe rxDCPlot;
+GNUPlotPipe IQImbalancePlot;
+GNUPlotPipe txDCPlot;
 
 ///APPROXIMATE conversion
 float ChipRSSI_2_dBFS(uint32_t rssi)
@@ -43,7 +43,7 @@ int16_t toSigned(int16_t val, uint8_t msblsb)
     return val;
 }
 #else
-    #define VERBOSE 0
+#define VERBOSE 0
 #endif // __cplusplus
 
 float bandwidthRF = 5e6; //Calibration bandwidth
@@ -51,46 +51,30 @@ float bandwidthRF = 5e6; //Calibration bandwidth
 #define offsetNCO 0.1e6
 #define calibUserBwDivider 5
 
-ROM uint16_t addr[1];
-xdata uint16_t regStore[200];
-void BackupRegisters()
-{
-	/*uint8_t i;
-	for(i=0; i<255; ++i)
-		regStore[i] = SPI_read(addr[i]); */
-}
-
-void RestoreRegisters()
+static void SetDefaultsSX()
 {
-	/*uint8_t i;
-	for(i=0; i<255; ++i)
-		SPI_write(addr[i], regStore[i]); */
+    ROM const uint16_t SXAddr[]=    {0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123};
+    ROM const uint16_t SXdefVals[]= {0xAD43, 0x0400, 0x0780, 0x3640, 0xB9FF, 0x3404, 0x033F, 0x067B};
 
+    uint8_t i;
+    for(i=sizeof(SXAddr)/sizeof(uint16_t); i; --i)
+        SPI_write(SXAddr[i-1], SXdefVals[i-1]);
 }
 
-void SetDefaultsSX()
+static uint8_t toDCOffset(const int8_t offset)
 {
-	ROM const uint16_t SXAddr[]=	{0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123};
-	ROM const uint16_t SXdefVals[]={0xAD43, 0x0400, 0x0780, 0x3640, 0xB9FF, 0x3404, 0x033F, 0x067B};
-
-	uint8_t i;
-    for(i=0; i<sizeof(SXAddr)/sizeof(uint16_t); ++i)
-        SPI_write(SXAddr[i], SXdefVals[i]);
-}
-
-uint8_t toDCOffset(const int8_t offset)
-{
-    return offset >= 0 ? offset : (abs(offset) | 0x40);
+    if(offset >= 0)
+        return offset;
+    return abs(offset) | 0x40;
 }
 
-void FlipRisingEdge(const uint16_t addr, const uint8_t bits)
+static void FlipRisingEdge(const uint16_t addr, const uint8_t bits)
 {
-    const uint16_t regVal = SPI_read(addr);
-    Modify_SPI_Reg_bits_WrOnly(addr, bits, 0, regVal);
-    Modify_SPI_Reg_bits_WrOnly(addr, bits, 1, regVal);
+    Modify_SPI_Reg_bits(addr, bits, 0);
+    Modify_SPI_Reg_bits(addr, bits, 1);
 }
 
-void LoadDC_REG_TX_IQ()
+static void LoadDC_REG_TX_IQ()
 {
     SPI_write(0x020C, 0x7FFF);
     FlipRisingEdge(TSGDCLDI_TXTSP);
@@ -101,76 +85,75 @@ void LoadDC_REG_TX_IQ()
 static void Delay()
 {
 #ifdef __cplusplus
-    //std::this_thread::sleep_for(std::chrono::milliseconds(10));
+    std::this_thread::sleep_for(std::chrono::milliseconds(10));
 #else
-	uint16_t i;
-	volatile uint8_t t=0;
-	for(i=0; i<200; ++i)
-		t <<= 1;
+    uint8_t i;
+    volatile uint8_t t;
+    for(i=200; i; --i)
+        t <<= 1;
 #endif
 }
 
 #ifdef __cplusplus
 uint32_t rssiCounter = 0;
 #endif
-uint16_t GetRSSI()
+static uint16_t GetRSSI()
 {
 #ifdef __cplusplus
     ++rssiCounter;
     std::this_thread::sleep_for(std::chrono::milliseconds(10));
 #else
-    #warning TODO: might need to wait until RSSI values refreshes
+#warning TODO: might need to wait until RSSI values refreshes
     Delay();
 #endif // __cplusplus
-Delay();
-Delay();
+    Delay();
     FlipRisingEdge(CAPTURE);
     return ((SPI_read(0x040F) << 2) | (SPI_read(0x040E) & 0x3));
 }
 
-void SetRxGFIR3Coefficients()
+static void SetRxGFIR3Coefficients()
 {
     //FIR coefficients symmetrical, storing only one half
     ROM const int16_t firCoefs[] =
-{
-    8,4,0,-6,-11,-16,-20,-22,-22,-20,-14,-5,6,20,34,46,
-    56,61,58,48,29,3,-29,-63,-96,-123,-140,-142,-128,-94,-44,20,
-    93,167,232,280,302,291,244,159,41,-102,-258,-409,-539,-628,-658,-614,
-    -486,-269,34,413,852,1328,1814,2280,2697,3038,3277,3401,
-};
+    {
+        8,4,0,-6,-11,-16,-20,-22,-22,-20,-14,-5,6,20,34,46,
+        56,61,58,48,29,3,-29,-63,-96,-123,-140,-142,-128,-94,-44,20,
+        93,167,232,280,302,291,244,159,41,-102,-258,-409,-539,-628,-658,-614,
+        -486,-269,34,413,852,1328,1814,2280,2697,3038,3277,3401,
+    };
     uint8_t index = 0;
-    for (;index < sizeof(firCoefs)/sizeof(int16_t); ++index)
+    for (; index < sizeof(firCoefs)/sizeof(int16_t); ++index)
         SPI_write(0x0500 + index + 24 * (index / 40), firCoefs[index]);
-    for (;index < sizeof(firCoefs)/sizeof(int16_t)*2; ++index)
+    for (; index < sizeof(firCoefs)/sizeof(int16_t)*2; ++index)
         SPI_write(0x0500 + index + 24 * (index / 40), firCoefs[119-index]);
 }
 
 void CheckSaturationTxRx()
 {
-	const uint16_t saturationLevel = 0x0B000; //-3dBFS
-	int8_t g_pga;
-	int8_t g_rxloop;
-	uint16_t rssi_prev;
-	uint16_t rssi;
+    const uint16_t saturationLevel = 0x0B000; //-3dBFS
+    uint8_t g_pga;
+    uint8_t g_rxloop;
+    //uint16_t rssi_prev;
+    uint16_t rssi;
 #ifdef DRAW_GNU_PLOTS
-    #define PUSH_PLOT_VALUE(vec, data) vec.push_back(data)
+#define PUSH_PLOT_VALUE(vec, data) vec.push_back(data)
     std::vector<float> g_rxLoopbStage;
     std::vector<float> pgaFirstStage;
     std::vector<float> lnaStage;
     std::vector<float> tiaStage;
     std::vector<float> pgaSecondStage;
 #else
-    #define PUSH_PLOT_VALUE(vec, data)
+#define PUSH_PLOT_VALUE(vec, data)
 #endif
     Modify_SPI_Reg_bits(DC_BYP_RXTSP, 0);
     Modify_SPI_Reg_bits(CMIX_BYP_RXTSP, 0);
     SetNCOFrequency(LMS7002M_Rx, calibrationSXOffset_Hz - offsetNCO + (bandwidthRF / calibUserBwDivider) * 2);
 
-    rssi_prev = rssi = GetRSSI();
+    rssi = GetRSSI();
     PUSH_PLOT_VALUE(g_rxLoopbStage, rssi);
 
-    g_pga = Get_SPI_Reg_bits(G_PGA_RBB);
-    g_rxloop = Get_SPI_Reg_bits(G_RXLOOPB_RFE);
+    g_pga = (uint8_t)Get_SPI_Reg_bits(G_PGA_RBB);
+    g_rxloop = (uint8_t)Get_SPI_Reg_bits(G_RXLOOPB_RFE);
 
 #if VERBOSE
     printf("Receiver saturation search, target level: %i (%2.3f dBFS)\n", saturationLevel, ChipRSSI_2_dBFS(saturationLevel));
@@ -187,7 +170,7 @@ void CheckSaturationTxRx()
         PUSH_PLOT_VALUE(g_rxLoopbStage, rssi);
     }
     PUSH_PLOT_VALUE(pgaFirstStage, rssi);
-    while(g_rxloop == 15 && rssi < saturationLevel)
+    while(rssi < saturationLevel)
     {
         if(g_pga < 18)
             ++g_pga;
@@ -195,12 +178,7 @@ void CheckSaturationTxRx()
             break;
         Modify_SPI_Reg_bits(G_PGA_RBB, g_pga);
         rssi = GetRSSI();
-        if(rssi < rssi_prev)
-        {
-            --g_pga;
-            break;
-        }
-        rssi_prev = rssi;
+        //rssi_prev = rssi;
         PUSH_PLOT_VALUE(pgaFirstStage, rssi);
     }
 #if VERBOSE
@@ -210,28 +188,28 @@ void CheckSaturationTxRx()
     Modify_SPI_Reg_bits(DC_BYP_RXTSP, 1);
 #ifdef DRAW_GNU_PLOTS
     {
-    saturationPlot.write("set yrange [:0]\n");
-    saturationPlot.write("set title 'Rx gains search'\n");
-    saturationPlot.write("set key right bottom\n");
-    saturationPlot.write("set xlabel 'measurement index'\n");
-    saturationPlot.write("set ylabel 'RSSI dbFS'\n");
-    saturationPlot.write("set grid xtics ytics\n");
-    saturationPlot.write("plot\
+        saturationPlot.write("set yrange [:0]\n");
+        saturationPlot.write("set title 'Rx gains search'\n");
+        saturationPlot.write("set key right bottom\n");
+        saturationPlot.write("set xlabel 'measurement index'\n");
+        saturationPlot.write("set ylabel 'RSSI dbFS'\n");
+        saturationPlot.write("set grid xtics ytics\n");
+        saturationPlot.write("plot\
 '-' u 1:2 with lines title 'G_RXLOOPB',\
 '-' u 1:2 with lines title 'PGA',\
 '-' u 1:2 with lines title 'target Level'\n");
-    int index = 1;
-    const auto arrays = {&g_rxLoopbStage, &pgaFirstStage};
-    for(auto a : arrays)
-    {
-        --index;
-        for(size_t i=0; i<a->size(); ++i)
-            saturationPlot.writef("%i %f\n", index++, ChipRSSI_2_dBFS((*a)[i]));
-        saturationPlot.write("e\n");
-    }
-    saturationPlot.writef("%i %f\n%i %f\ne\n", 0, ChipRSSI_2_dBFS(saturationLevel),
-                           index, ChipRSSI_2_dBFS(saturationLevel));
-    saturationPlot.flush();
+        int index = 1;
+        const auto arrays = {&g_rxLoopbStage, &pgaFirstStage};
+        for(auto a : arrays)
+        {
+            --index;
+            for(size_t i=0; i<a->size(); ++i)
+                saturationPlot.writef("%i %f\n", index++, ChipRSSI_2_dBFS((*a)[i]));
+            saturationPlot.write("e\n");
+        }
+        saturationPlot.writef("%i %f\n%i %f\ne\n", 0, ChipRSSI_2_dBFS(saturationLevel),
+                              index, ChipRSSI_2_dBFS(saturationLevel));
+        saturationPlot.flush();
     }
 #endif
 #undef PUSH_PLOT_VALUE
@@ -246,9 +224,11 @@ typedef struct
 } BinSearchParam;
 
 bool ConvertToRxDC = false;
-uint16_t Convert(const uint16_t val)
+uint16_t Convert(const int16_t val)
 {
-	return ConvertToRxDC ? toDCOffset(val) : val;
+    if( !ConvertToRxDC )
+        return val;
+    return toDCOffset(val);
 }
 
 void BinarySearch(BinSearchParam bdata* args)
@@ -260,15 +240,15 @@ void BinarySearch(BinSearchParam bdata* args)
     int16_t step;
     const uint16_t addr = args->param.address;
     const uint8_t msblsb = args->param.msblsb;
-    const uint16_t regValue = SPI_read(addr);
+    //const uint16_t regValue = SPI_read(addr);
     ConvertToRxDC = args->param.address == DCOFFI_RFE.address;
 #ifdef DRAW_GNU_PLOTS
     std::vector<float> searchPoints;
-    #define PUSH_PLOT_VALUE(vec, param, level) vec.push_back(param);vec.push_back(level)
+#define PUSH_PLOT_VALUE(vec, param, level) vec.push_back(param);vec.push_back(level)
 #else
-    #define PUSH_PLOT_VALUE(vec, param, level)
+#define PUSH_PLOT_VALUE(vec, param, level)
 #endif
-    Modify_SPI_Reg_bits_WrOnly(addr, msblsb, Convert(right), regValue);
+    Modify_SPI_Reg_bits(addr, msblsb, Convert(right));
     rssiRight = GetRSSI();
     PUSH_PLOT_VALUE(searchPoints, right, rssiRight);
     while(right-left >= 1)
@@ -276,17 +256,17 @@ void BinarySearch(BinSearchParam bdata* args)
         step = (right-left)/2;
         if(rssiLeft < rssiRight)
         {
-            Modify_SPI_Reg_bits_WrOnly(addr, msblsb, Convert(right), regValue);
+            Modify_SPI_Reg_bits(addr, msblsb, Convert(right));
             rssiRight = GetRSSI();
             PUSH_PLOT_VALUE(searchPoints, right, rssiRight);
         }
         else
         {
-            Modify_SPI_Reg_bits_WrOnly(addr, msblsb, Convert(left), regValue);
+            Modify_SPI_Reg_bits(addr, msblsb, Convert(left));
             rssiLeft = GetRSSI();
             PUSH_PLOT_VALUE(searchPoints, left, rssiLeft);
         }
-        if(step == 0)
+        if(step <= 0)
             break;
         if(rssiLeft < rssiRight)
             right -= step;
@@ -294,26 +274,26 @@ void BinarySearch(BinSearchParam bdata* args)
             left += step;
     }
     args->result = rssiLeft < rssiRight ? left : right;
-    Modify_SPI_Reg_bits_WrOnly(addr, msblsb, Convert(args->result), regValue);
+    Modify_SPI_Reg_bits(addr, msblsb, Convert(args->result));
 
 #ifdef DRAW_GNU_PLOTS
-	results.value = args->result;
+    results.value = args->result;
     results.signalLevel = rssiLeft < rssiRight ? rssiLeft : rssiRight;
     results.measurements.clear();
     results.measurements = searchPoints;
     for(size_t i=0; i<results.measurements.size(); i+=2)
         for(size_t j=i; j<results.measurements.size(); j+=2)
-    {
-        if(results.measurements[i] > results.measurements[j])
         {
-            float temp = results.measurements[i];
-            results.measurements[i] = results.measurements[j];
-            results.measurements[j] = temp;
-            temp = results.measurements[i+1];
-            results.measurements[i+1] = results.measurements[j+1];
-            results.measurements[j+1] = temp;
+            if(results.measurements[i] > results.measurements[j])
+            {
+                float temp = results.measurements[i];
+                results.measurements[i] = results.measurements[j];
+                results.measurements[j] = temp;
+                temp = results.measurements[i+1];
+                results.measurements[i+1] = results.measurements[j+1];
+                results.measurements[j+1] = temp;
+            }
         }
-    }
 #endif //DRAW_GNU_PLOTS
 #undef PUSH_PLOT_VALUE
 }
@@ -335,13 +315,12 @@ void CalibrateRxDC()
     BinSearchParam argsI;
     BinSearchParam argsQ;
 
-	ConvertToRxDC = true;
+    ConvertToRxDC = true;
     Modify_SPI_Reg_bits(EN_G_TRF, 0);
     Modify_SPI_Reg_bits(DC_BYP_RXTSP, 1);
     Modify_SPI_Reg_bits(CAPSEL, 0);
     //SetRxDCOFF(32, 32);
-    SPI_write(0x010E, toDCOffset(32) << 7 | toDCOffset((32)));
-	//return;
+    SPI_write(0x010E, 32 << 7 | 32);
     //find I
     argsI.param = DCOFFI_RFE;
     argsQ.param = DCOFFQ_RFE;
@@ -392,7 +371,7 @@ void CalibrateRxDC()
 #if VERBOSE
     printf("Rx DCOFFI: %i, DCOFFQ: %i\n", argsI.result, argsQ.result);
 #endif
-	ConvertToRxDC = false;
+    ConvertToRxDC = false;
 }
 
 void CalibrateTxDC()
@@ -462,7 +441,7 @@ void CalibrateTxDC()
 #if VERBOSE
     printf("coarse: Tx DCCORRI: %i, DCCORRQ: %i | %2.3f dBFS\n", argsI.result, argsQ.result, ChipRSSI_2_dBFS(results.signalLevel));
 #endif
-    Modify_SPI_Reg_bits(0x0204, 15 << 4 | 0, (argsI.result << 8 | (argsQ.result & 0xFF)));
+    SPI_write(0x0204, (argsI.result << 8 | (argsQ.result & 0xFF)));
 }
 
 void CalibrateIQImbalance(bool tx)
@@ -479,25 +458,24 @@ void CalibrateIQImbalance(bool tx)
 '-' w l t 'phase2'\
 \n");
 #endif // DRAW_GNU_PLOTS
-    LMS7Parameter gcorri;
-    LMS7Parameter gcorrq;
     BinSearchParam argsPhase;
     BinSearchParam argsGain;
+    LMS7Parameter gcorri;
+    LMS7Parameter gcorrq;
+    if(tx)
+    {
+        gcorri = GCORRI_TXTSP;
+        gcorrq = GCORRQ_TXTSP;
+        argsPhase.param = IQCORR_TXTSP;
+    }
+    else
+    {
+        gcorri = GCORRI_RXTSP;
+        gcorrq = GCORRQ_RXTSP;
+        argsPhase.param = IQCORR_RXTSP;
+    }
 
-	if(tx)
-	{
-		gcorri = GCORRI_TXTSP;
-		gcorrq = GCORRQ_TXTSP;
-		argsPhase.param = IQCORR_TXTSP;
-	}
-	else
-	{
-		gcorri = GCORRI_RXTSP;
-		gcorrq = GCORRQ_RXTSP;
-		argsPhase.param = IQCORR_RXTSP;
-	}
-
-   	argsPhase.maxValue = 128;
+    argsPhase.maxValue = 128;
     argsPhase.minValue = -128;
     BinarySearch(&argsPhase);
 #ifdef DRAW_GNU_PLOTS
@@ -559,7 +537,7 @@ uint8_t SetupCGEN()
     uint8_t status;
     uint8_t cgenMultiplier;
     uint8_t gfir3n;
-    cgenMultiplier = (int)((GetFrequencyCGEN() / 46.08e6) + 0.5);
+    cgenMultiplier = (uint8_t)((GetFrequencyCGEN() / 46.08e6) + 0.5);
     if(cgenMultiplier < 2)
         cgenMultiplier = 2;
     if(cgenMultiplier > 9 && cgenMultiplier < 12)
@@ -568,20 +546,18 @@ uint8_t SetupCGEN()
         cgenMultiplier = 13;
     //CGEN VCO is powered up in SetFrequencyCGEN/Tune
     status = SetFrequencyCGEN(46.08e6 * cgenMultiplier);
-    if(status != 0)
-        return status;
 
     gfir3n = 4 * cgenMultiplier;
     if(Get_SPI_Reg_bits(EN_ADCCLKH_CLKGN) == 1)
         gfir3n /= pow2(Get_SPI_Reg_bits(CLKH_OV_CLKL_CGEN));
-    gfir3n = pow2((int)(log(gfir3n)/log(2)))-1; //could be log2(gfir3n)
+    gfir3n = pow2((uint8_t)(log(gfir3n)/log(2)))-1; //could be log2(gfir3n)
     Modify_SPI_Reg_bits(GFIR3_N_RXTSP, gfir3n);
-    return 0;
+    return status;
 }
 
 uint8_t CalibrateTxSetup()
 {
-	uint8_t status = 1;
+    uint8_t status;
     const uint16_t x0020val = SPI_read(0x0020); //remember used channel
 
     /*BeginBatch("TxSetup");
@@ -655,47 +631,42 @@ uint8_t CalibrateTxSetup()
 
     EndBatch();*/
 
-	{
-		ROM const uint16_t TxSetupAddr[] = {0x0082,0x0085,0x00AE,0x0101,0x0200,0x0208, 0x0084};
-		ROM const uint16_t TxSetupData[] = {0x0000,0x0001,0xF000,0x0001,0x000C,0x0000, 0x0000};
-		ROM const uint16_t TxSetupMask[] = {0x0018,0x0007,0xF000,0x1801,0x000C,0x210B, 0xF83F};
-		uint8_t i;
- 	    for(i=0; i<sizeof(TxSetupAddr)/sizeof(uint16_t); ++i)
-        	SPI_write(TxSetupAddr[i], ( SPI_read(TxSetupAddr[i]) & ~TxSetupMask[i] ) | TxSetupData[i]);
-	}
-	{
-		ROM const uint16_t TxSetupAddrWrOnly[] = {0x010C,0x010D,0x010E,0x010F,0x0110,0x0111,0x0112,0x0113,0x0115,0x0116,0x0117,0x0118,0x0119, 0x0201, 0x0202, 0x0400,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040A,0x040B,0x040C,0x040D,0x040E,0x0440,0x0441,0x0442,0x0443};
-		ROM const uint16_t TxSetupDataWrOnly[] = {0x88E5,0x00DE,0x2040,0x3042,0x0BFF,0x0083,0x4032,0x03DF,0x0005,0x8180,0x280C,0x218C,0x3180, 0x07FF, 0x07FF, 0x0081,0x07FF,0x07FF,0x4000,0x0000,0x0000,0x0000,0x0700,0x0000,0x0000,0x1000,0x0000,0x0098,0x0000,0x0002,0x0020,0x0000,0x0000,0x0000};
-
-		uint8_t i;
-	    for(i=0; i<sizeof(TxSetupAddrWrOnly)/sizeof(uint16_t); ++i)
-	        SPI_write(TxSetupAddrWrOnly[i], TxSetupDataWrOnly[i]);
-	}
+    {
+        ROM const uint16_t TxSetupAddr[] = {0x0082,0x0085,0x00AE,0x0101,0x0200,0x0208, 0x0084};
+        ROM const uint16_t TxSetupData[] = {0x0000,0x0001,0xF000,0x0001,0x000C,0x0000, 0x0000};
+        ROM const uint16_t TxSetupMask[] = {0x0018,0x0007,0xF000,0x1801,0x000C,0x210B, 0xF83F};
+        uint8_t i;
+        for(i=sizeof(TxSetupAddr)/sizeof(uint16_t); i; --i)
+            SPI_write(TxSetupAddr[i-1], ( SPI_read(TxSetupAddr[i-1]) & ~TxSetupMask[i-1] ) | TxSetupData[i-1]);
+    }
+    {
+        ROM const uint16_t TxSetupAddrWrOnly[] = {0x010C,0x010D,0x010E,0x010F,0x0110,0x0111,0x0112,0x0113,0x0115,0x0116,0x0117,0x0118,0x0119,0x0201,0x0202,0x0400,0x0401,0x0402,0x0403,0x0407,0x040A,0x040C,0x0440,0x0441,0x0442,0x0443,0x0404,0x0405,0x0406, 0x0408,0x0409, 0x040D};
+        ROM const uint16_t TxSetupDataWrOnly[] = {0x88E5,0x00DE,0x2040,0x3042,0x0BFF,0x0083,0x4032,0x03DF,0x0005,0x8180,0x280C,0x218C,0x3180,0x07FF,0x07FF,0x0081,0x07FF,0x07FF,0x4000,0x0700,0x1000,0x0098,0x0020};//,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000, 0x0000};
+
+        uint8_t i;
+        for(i=sizeof(TxSetupAddrWrOnly)/sizeof(uint16_t); i; --i)
+            if(i<=sizeof(TxSetupDataWrOnly)/sizeof(uint16_t))
+                SPI_write(TxSetupAddrWrOnly[i-1], TxSetupDataWrOnly[i-1]);
+            else
+                SPI_write(TxSetupAddrWrOnly[i-1], 0);
+    }
     SetRxGFIR3Coefficients();
-	status = SetupCGEN();
+    status = SetupCGEN();
     if(status != 0)
         return status;
-   	
+
     //SXR
-    Modify_SPI_Reg_bits_WrOnly(MAC, 1, x0020val); //switch to ch. A
+    Modify_SPI_Reg_bits(MAC, 1); //switch to ch. A
     //SetDefaults(SECTION_SX);
-	SetDefaultsSX();
-	/*{
-		ROM const uint16_t SXAddr[]=	{0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123};
-		ROM const uint16_t SXdefVals[]={0xAD43, 0x0400, 0x0780, 0x3640, 0xB9FF, 0x3404, 0x033F, 0x067B};
-
-		uint8_t i;
-	    for(i=0; i<sizeof(SXAddr)/sizeof(uint16_t); ++i)
-	        SPI_write(SXAddr[i], SXdefVals[i]);
-	}*/
-	{
+    SetDefaultsSX();
+    {
         const float_type SXRfreq = GetFrequencySX(LMS7002M_Tx) - bandwidthRF/ calibUserBwDivider - calibrationSXOffset_Hz;
         //SX VCO is powered up in SetFrequencySX/Tune
         status = SetFrequencySX(LMS7002M_Rx, SXRfreq);
         if(status != 0)
-            return status+0x50;
+            return status+0x60;
     }
-    
+
     //if calibrating ch. B enable buffers
     if(x0020val & 0x2)
     {
@@ -705,7 +676,7 @@ uint8_t CalibrateTxSetup()
     }
 
     //SXT{
-    Modify_SPI_Reg_bits_WrOnly(MAC, 2, x0020val); //switch to ch. B
+    Modify_SPI_Reg_bits(MAC, 2); //switch to ch. B
     Modify_SPI_Reg_bits(PD_LOCH_T2RBUF, 1);
     SPI_write(0x0020, x0020val); //restore used channel
 
@@ -738,24 +709,17 @@ uint8_t CalibrateTx()
     uint8_t ch = (uint8_t)Get_SPI_Reg_bits(MAC);
     uint8_t sel_band1_trf = (uint8_t)Get_SPI_Reg_bits(SEL_BAND1_TRF);
     printf("Tx ch.%s , BW: %g MHz, RF output: %s, Gain: %i\n",
-                    ch == 0x1 ? "A" : "B",
-                    bandwidthRF/1e6,
-                    sel_band1_trf==1 ? "BAND1" : "BAND2",
-                    Get_SPI_Reg_bits(CG_IAMP_TBB));
+           ch == 0x1 ? "A" : "B",
+           bandwidthRF/1e6,
+           sel_band1_trf==1 ? "BAND1" : "BAND2",
+           Get_SPI_Reg_bits(CG_IAMP_TBB));
 #endif
     uint8_t status;
-	BackupRegisters();
+    //BackupRegisters();
     status = CalibrateTxSetup();
-#ifdef __cplusplus
-    printf("Setup duration: %li ms\n",
-        std::chrono::duration_cast<std::chrono::milliseconds>
-        (std::chrono::high_resolution_clock::now()-beginTime).count());
-#endif
     if(status != 0)
-	{
-		goto TxCalibrationEnd; //go to ending stage to restore registers
-	}
-	CheckSaturationTxRx();
+        goto TxCalibrationEnd; //go to ending stage to restore registers
+    CheckSaturationTxRx();
     CalibrateRxDC();
 
     SetNCOFrequency(LMS7002M_Rx, calibrationSXOffset_Hz - offsetNCO + (bandwidthRF/ calibUserBwDivider));
@@ -763,15 +727,15 @@ uint8_t CalibrateTx()
     SetNCOFrequency(LMS7002M_Rx, calibrationSXOffset_Hz - offsetNCO);
     CalibrateIQImbalance(LMS7002M_Tx);
 TxCalibrationEnd:
-	if(status != 0)
+    if(status != 0)
     {
 #if VERBOSE
         printf("Tx calibration failed");
 #endif
-		RestoreRegisters();
+        //RestoreRegisters();
         return status;
-    }    
-	RestoreRegisters();
+    }
+    //RestoreRegisters();
     //Modify_SPI_Reg_bits(MAC, ch);
     //Modify_SPI_Reg_bits(DCCORRI_TXTSP.address, DCCORRI_TXTSP.msblsb, dccorri);
     //Modify_SPI_Reg_bits(DCCORRQ_TXTSP.address, DCCORRQ_TXTSP.msblsb, dccorrq);
@@ -794,20 +758,20 @@ TxCalibrationEnd:
                     );*/
     {
         //Get_SPI_Reg_bits(CG_IAMP_TBB);
-        int8_t dcI = Get_SPI_Reg_bits(DCCORRI_TXTSP.address, DCCORRI_TXTSP.msblsb);
-        int8_t dcIsigned = toSigned(dcI, DCCORRI_TXTSP.msblsb);
-    int8_t dcQsigned = toSigned(Get_SPI_Reg_bits(DCCORRQ_TXTSP.address, DCCORRQ_TXTSP.msblsb), DCCORRQ_TXTSP.msblsb);
-    int16_t phaseSigned = toSigned(Get_SPI_Reg_bits(IQCORR_TXTSP.address, IQCORR_TXTSP.msblsb), IQCORR_TXTSP.msblsb);
-    uint16_t gcorri = Get_SPI_Reg_bits(GCORRI_TXTSP.address, GCORRI_TXTSP.msblsb);
-    uint16_t gcorrq = Get_SPI_Reg_bits(GCORRQ_TXTSP.address, GCORRQ_TXTSP.msblsb);
-    printf("   | DC  | GAIN | PHASE\n");
-    printf("---+-----+------+------\n");
-    printf("I: | %3i | %4i | %i\n", dcIsigned, gcorri, phaseSigned);
-    printf("Q: | %3i | %4i |\n", dcQsigned, gcorrq);
+        int16_t dcI = Get_SPI_Reg_bits(DCCORRI_TXTSP.address, DCCORRI_TXTSP.msblsb);
+        int16_t dcIsigned = toSigned(dcI, DCCORRI_TXTSP.msblsb);
+        int16_t dcQsigned = toSigned(Get_SPI_Reg_bits(DCCORRQ_TXTSP.address, DCCORRQ_TXTSP.msblsb), DCCORRQ_TXTSP.msblsb);
+        int16_t phaseSigned = toSigned(Get_SPI_Reg_bits(IQCORR_TXTSP.address, IQCORR_TXTSP.msblsb), IQCORR_TXTSP.msblsb);
+        uint16_t gcorri = Get_SPI_Reg_bits(GCORRI_TXTSP.address, GCORRI_TXTSP.msblsb);
+        uint16_t gcorrq = Get_SPI_Reg_bits(GCORRQ_TXTSP.address, GCORRQ_TXTSP.msblsb);
+        printf("   | DC  | GAIN | PHASE\n");
+        printf("---+-----+------+------\n");
+        printf("I: | %3i | %4i | %i\n", dcIsigned, gcorri, phaseSigned);
+        printf("Q: | %3i | %4i |\n", dcQsigned, gcorrq);
     }
 #ifdef __cplusplus
     int32_t duration = std::chrono::duration_cast<std::chrono::milliseconds>
-        (std::chrono::high_resolution_clock::now()-beginTime).count();
+                       (std::chrono::high_resolution_clock::now()-beginTime).count();
     printf("Duration: %i ms\n", duration);
 #endif
 #endif //LMS_VERBOSE_OUTPUT
@@ -815,14 +779,14 @@ TxCalibrationEnd:
 }
 #define MSBLSB(x, y) x << 4 | y
 
- /*
+/*
 void SetDefaults(uint16_t start, uint16_t end)
 {
-    ROM const uint16_t defaultAddrs[] = { 0
-//0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002E,0x002F,0x0081,0x0082,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00AA,0x00AB,0x00AD,0x00AE,0x0100,0x0101,0x0102,0x0103,0x0104,0x0105,0x0106,0x0107,0x0108,0x0109,0x010A,0x010C,0x010D,0x010E,0x010F,0x0110,0x0111, [...]
+    ROM const uint16_t defaultAddrs[] = {
+0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002E,0x002F,0x0081,0x0082,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00AA,0x00AB,0x00AD,0x00AE,0x0100,0x0101,0x0102,0x0103,0x0104,0x0105,0x0106,0x0107,0x0108,0x0109,0x010A,0x010C,0x010D,0x010E,0x010F,0x0110,0x0111,0x [...]
 };
-	ROM const uint16_t defaultValues[] = { 0
-//0xFFFF,0x0E9F,0x07DF,0x5559,0xE4E4,0x0101,0x0101,0xE4E4,0x0101,0x0101,0x0086,0x0010,0xFFFF,0x0000,0x3840,0x0000,0x800B,0x0400,0x0001,0x4901,0x0400,0x0780,0x0020,0x0514,0x2100,0x067B,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6565,0x658C,0x6565,0x658C,0x6565,0x658C,0x658C,0x6565,0x6565,0x6565,0x6565,0x6565,0x6565,0x000F,0x6565,0x0000,0x0000,0x0000,0x03FF,0xF000,0x3409,0x7800,0x3180,0x0A12,0x0088,0x0007,0x318C,0x318C,0x9426,0x61C1,0x104C,0x88FD,0x009E,0x2040,0x3042,0x0BF4,0x0083, [...]
+    ROM const uint16_t defaultValues[] = {
+0xFFFF,0x0E9F,0x07DF,0x5559,0xE4E4,0x0101,0x0101,0xE4E4,0x0101,0x0101,0x0086,0x0010,0xFFFF,0x0000,0x3840,0x0000,0x800B,0x0400,0x0001,0x4901,0x0400,0x0780,0x0020,0x0514,0x2100,0x067B,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6565,0x658C,0x6565,0x658C,0x6565,0x658C,0x658C,0x6565,0x6565,0x6565,0x6565,0x6565,0x6565,0x000F,0x6565,0x0000,0x0000,0x0000,0x03FF,0xF000,0x3409,0x7800,0x3180,0x0A12,0x0088,0x0007,0x318C,0x318C,0x9426,0x61C1,0x104C,0x88FD,0x009E,0x2040,0x3042,0x0BF4,0x0083,0x [...]
 };
 #ifdef __cplusplus
     int status = 0;
@@ -833,33 +797,44 @@ void SetDefaults(uint16_t start, uint16_t end)
         int i=0;
         for(i=0; i<sizeof(defaultAddrs)/sizeof(uint16_t); ++i)
         {
-            addrs.push_back(defaultAddrs[i]);
-            values.push_back(defaultValues[i]);
-            break;
+            if(defaultAddrs[i] == address)
+            {
+                addrs.push_back(defaultAddrs[i]);
+                values.push_back(defaultValues[i]);
+                break;
+            }
         }
     }
-    SPI_write_batch(&addrs[0], &values[0], addrs.size());
+    SPI_write_batch(addrs.data(), values.data(), addrs.size());
 #else
 
 #endif
-} */
+}*/
 
-int CalibrateRxSetup()
+uint8_t CalibrateRxSetup()
 {
     uint8_t status;
     const uint16_t x0020val = SPI_read(0x0020);
-
     //rfe
     {
-        ROM const uint16_t RxSetupAddr[] = {0x0082, 0x0085, 0x00AE, 0x0100, 0x0101, 0x0108, 0x010C, 0x010D, 0x0110, 0x0113, 0x0115, 0x0119, 0x0200, 0x0208, 0x0400, 0x0403, 0x0407, 0x040A, 0x040C};
-        ROM const uint16_t RxSetupData[] = {0x0000, 0x0001, 0xF000, 0x0000, 0x0001, 0x0426, 0x0000, 0x0040, 0x001F, 0x000C, 0x0000, 0x0000, 0x008C, 0x2070, 0x0000, 0x4000, 0x0700, 0x1000, 0x0098};
-        ROM const uint16_t RxSetupMask[] = {0x0008, 0x0007, 0xF000, 0x0001, 0x1801, 0xFFFF, 0x001A, 0x0040, 0x001F, 0x003C, 0xC000, 0x8000, 0x018C, 0xE170, 0x6000, 0x7000, 0x0700, 0x3007, 0xC0D8};
-
-		uint8_t i;
- 	    for(i=0; i<sizeof(RxSetupAddr)/sizeof(uint16_t); ++i)
-        	SPI_write(RxSetupAddr[i], ( SPI_read(RxSetupAddr[i]) & ~RxSetupMask[i] ) | RxSetupData[i]);																  	
+        ROM const uint16_t RxSetupAddr[] = {0x0082,0x0085,0x00AE,0x010C,0x010D,0x0110,0x0113,0x0115,0x0119, 0x0840};
+        ROM const uint16_t RxSetupData[] = {0x0000,0x0001,0xF000,0x0000,0x0040,0x001F,0x000C,0x0000,0x0000, 0x0000};
+        ROM const uint16_t RxSetupMask[] = {0x0008,0x0007,0xF000,0x001A,0x0040,0x001F,0x003C,0xC000,0x8000, 0xF83F};
+        uint8_t i;
+        for(i=sizeof(RxSetupAddr)/sizeof(uint16_t); i; --i)
+            SPI_write(RxSetupAddr[i-1], ( SPI_read(RxSetupAddr[i-1]) & ~RxSetupMask[i-1] ) | RxSetupData[i-1]);
+    }
+    {
+        ROM const uint16_t RxSetupAddrWrOnly[] = {0x0100,0x0101,0x0102,0x0103,0x0104,0x0105,0x0106,0x0107,0x0108,0x0109,0x010A,0x0200,0x0201,0x0202,0x0208,0x0240,0x0400,0x0401,0x0402,0x0403,0x0407,0x0440,0x040A,0x040C,0x0404,0x0405,0x0406,0x0408,0x0409,0x040B,0x0203,0x0204,0x0205,0x0206,0x0207};
+        ROM const uint16_t RxSetupDataWrOnly[] = {0x3408,0x6001,0x3180,0x0A12,0x0088,0x0007,0x318C,0x318C,0x0426,0x61C1,0x104C,0x008D,0x07FF,0x07FF,0x2070,0x0020,0x0081,0x07FF,0x07FF,0x4000,0x0700,0x0020,0x1000,0x0098};//,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
+        uint8_t i;
+        for(i=sizeof(RxSetupAddrWrOnly)/sizeof(uint16_t); i; --i)
+            if(i<=sizeof(RxSetupDataWrOnly)/sizeof(uint16_t))
+                SPI_write(RxSetupAddrWrOnly[i-1], RxSetupDataWrOnly[i-1]);
+            else
+                SPI_write(RxSetupAddrWrOnly[i-1], 0);
     }
-   /* BeginBatch("RxSetup.txt");
+    /*BeginBatch("RxSetup.txt");
     Modify_SPI_Reg_bits(EN_DCOFF_RXFE_RFE, 1);
     Modify_SPI_Reg_bits(G_RXLOOPB_RFE, 3);
     Modify_SPI_Reg_bits(0x010C, 4 << 4 | 3, 0); //PD_MXLOBUF_RFE 0, PD_QGEN_RFE 0
@@ -888,7 +863,7 @@ int CalibrateRxSetup()
     //AFE
     Modify_SPI_Reg_bits(PD_RX_AFE2, 0);
 
-    
+
 
     //XBUF
     Modify_SPI_Reg_bits(0x0085, MSBLSB(2, 0), 1); //PD_XBUF_RX 0, PD_XBUF_TX 0, EN_G_XBUF 1
@@ -921,73 +896,62 @@ int CalibrateRxSetup()
     //CDS
     Modify_SPI_Reg_bits(CDS_TXATSP, 3);
     Modify_SPI_Reg_bits(CDS_TXBTSP, 3);
-    EndBatch();	  */
+    EndBatch();*/
     //BIAS
     Modify_SPI_Reg_bits(AGC_AVG_RXTSP, 0);
-    {
+    /*{
         uint16_t rp_calib_bias = Get_SPI_Reg_bits(0x0084, MSBLSB(10, 6));
         //SetDefaults(SECTION_BIAS);
         Modify_SPI_Reg_bits(0x0084, MSBLSB(10, 6), rp_calib_bias);
-    }
+    }*/
     {
-        uint8_t selPath;
-        selPath = Get_SPI_Reg_bits(SEL_PATH_RFE);
-
-        if (selPath == 2)
+        switch(Get_SPI_Reg_bits(SEL_PATH_RFE))
         {
+        case 2:
             Modify_SPI_Reg_bits(SEL_BAND2_TRF, 1);
             Modify_SPI_Reg_bits(SEL_BAND1_TRF, 0);
-        }
-        else if (selPath == 3)
-        {
+            break;
+        case 3:
             Modify_SPI_Reg_bits(SEL_BAND2_TRF, 0);
             Modify_SPI_Reg_bits(SEL_BAND1_TRF, 1);
+            break;
+        default:
+            return 1;
         }
-        else
-            return 1;//ReportError(EINVAL, "CalibrateRxSetup() - SEL_PATH_RFE must be LNAL or LNAW");
     }
 
-    Modify_SPI_Reg_bits(MAC, 2);
+    Modify_SPI_Reg_bits(MAC, 2); //Get freq already changes/restores ch
+
     if(Get_SPI_Reg_bits(PD_LOCH_T2RBUF) == 0) //isTDD
     {
         //in TDD do nothing
         Modify_SPI_Reg_bits(MAC, 1);
-        //SetDefaults(SECTION_SX);
-		SetDefaultsSX();
+        SetDefaultsSX();
         status = SetFrequencySX(LMS7002M_Rx, GetFrequencySX(LMS7002M_Tx) - bandwidthRF/ calibUserBwDivider - 9e6);
-        if(status != 0)
-            return status+0x40;
-        //done in set frequency/tune
-        //Modify_SPI_Reg_bits(PD_VCO, 0);
     }
     else
     {
-        float_type SXRfreqHz;
         //SXR
         //Modify_SPI_Reg_bits(MAC, 1); //Get freq already changes/restores ch
-        SXRfreqHz = GetFrequencySX(LMS7002M_Rx);
+        const float_type SXRfreqHz = GetFrequencySX(LMS7002M_Rx);
 
         //SXT
         Modify_SPI_Reg_bits(MAC, 2);
         SetDefaultsSX();
-
-        //done in set frequency/tune
-        //Modify_SPI_Reg_bits(PD_VCO, 0);
-
         status = SetFrequencySX(LMS7002M_Tx, SXRfreqHz + bandwidthRF/ calibUserBwDivider + 9e6);
-        if(status != 0)
-            return status +0x50;
     }
+    if(status != 0)
+        return status+0x70;
     SPI_write(0x0020, x0020val);
 
     LoadDC_REG_TX_IQ();
 
     //CGEN
-   // SetDefaults(SECTION_CGEN);
+    // SetDefaults(SECTION_CGEN);
     status = SetupCGEN();
     if(status != 0)
         return status +0x30;
-	SetRxGFIR3Coefficients();
+    SetRxGFIR3Coefficients();
     SetNCOFrequency(LMS7002M_Tx, 9e6);
     SetNCOFrequency(LMS7002M_Rx, bandwidthRF/calibUserBwDivider - offsetNCO);
     //modifications when calibrating channel B
@@ -1008,13 +972,13 @@ uint8_t CheckSaturationRx(const float_type bandwidth_Hz)
     uint16_t rssi;
     const uint8_t rxloopbStep = 2;
     const uint8_t cg_iampStep = 2;
-    uint8_t g_rxloopb_rfe = Get_SPI_Reg_bits(G_RXLOOPB_RFE);
-    uint8_t cg_iamp = Get_SPI_Reg_bits(CG_IAMP_TBB);
+    uint8_t g_rxloopb_rfe = (uint8_t)Get_SPI_Reg_bits(G_RXLOOPB_RFE);
+    uint8_t cg_iamp = (uint8_t)Get_SPI_Reg_bits(CG_IAMP_TBB);
 #ifdef DRAW_GNU_PLOTS
     std::vector<uint32_t> firstStage, secondStage;
-    #define PUSH_PLOT_VALUE(vec, data) vec.push_back(data)
+#define PUSH_PLOT_VALUE(vec, data) vec.push_back(data)
 #else
-    #define PUSH_PLOT_VALUE(vec, data)
+#define PUSH_PLOT_VALUE(vec, data)
 #endif
     Modify_SPI_Reg_bits(CMIX_SC_RXTSP, 0);
     Modify_SPI_Reg_bits(CMIX_BYP_RXTSP, 0);
@@ -1031,31 +995,24 @@ uint8_t CheckSaturationRx(const float_type bandwidth_Hz)
     {
         g_rxloopb_rfe += rxloopbStep;
         if(g_rxloopb_rfe > 15)
-        {
-            g_rxloopb_rfe -= rxloopbStep;
             break;
-        }
         Modify_SPI_Reg_bits(G_RXLOOPB_RFE, g_rxloopb_rfe);
         rssi = GetRSSI();
         PUSH_PLOT_VALUE(firstStage, rssi);
     }
 
     PUSH_PLOT_VALUE(secondStage, rssi);
-    while (rssi < target_rssi)
+    while(rssi < target_rssi)
     {
-        break;
-        cg_iamp += 2;
+        cg_iamp += cg_iampStep;
         if(cg_iamp > 20)
-        {
-            cg_iamp -= cg_iampStep;
             break;
-        }
         Modify_SPI_Reg_bits(CG_IAMP_TBB, cg_iamp);
         rssi = GetRSSI();
         PUSH_PLOT_VALUE(secondStage, rssi);
     }
 #if VERBOSE
-    printf("Adjusted gains: G_RXLOOPB: %2i, CG_IAMP: %2i | %2.3f dbFS\n", g_rxloopb_rfe, cg_iamp, ChipRSSI_2_dBFS(rssi));
+    printf("Adjusted gains: G_RXLOOPB: %2i, CG_IAMP: %2i | %2.3f dbFS\n", Get_SPI_Reg_bits(G_RXLOOPB_RFE), Get_SPI_Reg_bits(CG_IAMP_TBB), ChipRSSI_2_dBFS(rssi));
 #endif
 #ifdef DRAW_GNU_PLOTS
     saturationPlot.write("set yrange [:0]\n");
@@ -1068,7 +1025,7 @@ uint8_t CheckSaturationRx(const float_type bandwidth_Hz)
 
     int index = 0;
     saturationPlot.writef(
-"'-' title '%s' with lines\
+        "'-' title '%s' with lines\
 , '-' title 'CG_IAMP' with lines\
 , '-' title 'target Level' with lines\n", "G_RXLOOPB_RFE");
     for(auto value: firstStage)
@@ -1081,7 +1038,7 @@ uint8_t CheckSaturationRx(const float_type bandwidth_Hz)
     saturationPlot.writef("%i %f\n%i %f\ne\n", 0, ChipRSSI_2_dBFS(target_rssi), index, ChipRSSI_2_dBFS(target_rssi));
     saturationPlot.flush();
 #endif
-    #undef PUSH_PLOT_VALUE
+#undef PUSH_PLOT_VALUE
     return 0;
 }
 
@@ -1102,26 +1059,32 @@ uint8_t CalibrateRx()
     const char* lnaName;
     switch(Get_SPI_Reg_bits(SEL_PATH_RFE))
     {
-        case 0: lnaName = "none";
-        case 1: lnaName = "LNAH";
-        case 2: lnaName = "LNAW";
-        case 3: lnaName = "LNAL";
+    case 0:
+        lnaName = "none";
+        break;
+    case 1:
+        lnaName = "LNAH";
+        break;
+    case 2:
+        lnaName = "LNAW";
+        break;
+    case 3:
+        lnaName = "LNAL";
+        break;
     }
     printf("Rx ch.%s @ %4g MHz, BW: %g MHz, RF input: %s, PGA: %i, LNA: %i, TIA: %i\n",
-                (x0020val & 0x3) == 1 ? "A" : "B", rxFreq/1e6,
-                bandwidthRF/1e6, lnaName,
-                Get_SPI_Reg_bits(G_PGA_RBB),
-                Get_SPI_Reg_bits(G_LNA_RFE),
-                Get_SPI_Reg_bits(G_TIA_RFE));
+           (x0020val & 0x3) == 1 ? "A" : "B", rxFreq/1e6,
+           bandwidthRF/1e6, lnaName,
+           Get_SPI_Reg_bits(G_PGA_RBB),
+           Get_SPI_Reg_bits(G_LNA_RFE),
+           Get_SPI_Reg_bits(G_TIA_RFE));
     printf("Rx calibration started\n");
 #endif
-	BackupRegisters();
+    //BackupRegisters();
     status = CalibrateRxSetup();
     if(status != 0)
         goto RxCalibrationEndStage;
-	//return 1;
     CalibrateRxDC();
-	//return 1;
     {
         if ((uint8_t)Get_SPI_Reg_bits(SEL_PATH_RFE) == 2)
         {
@@ -1147,17 +1110,18 @@ uint8_t CalibrateRx()
     CheckSaturationRx(bandwidthRF);
     Modify_SPI_Reg_bits(CMIX_SC_RXTSP, 1);
     Modify_SPI_Reg_bits(CMIX_BYP_RXTSP, 0);
+    Modify_SPI_Reg_bits(GFIR3_BYP_RXTSP, 0);
     SetNCOFrequency(LMS7002M_Rx, bandwidthRF/calibUserBwDivider + offsetNCO);
     CalibrateIQImbalance(LMS7002M_Rx);
 RxCalibrationEndStage:
     if (status != 0)
     {
-		RestoreRegisters();
+        //RestoreRegisters();
         //printf("Rx calibration failed", LOG_WARNING);
         return status;
     }
     //SPI_write(0x0020, x0020val);
-	RestoreRegisters();
+    //RestoreRegisters();
     //SPI_write(0x010E, toDCOffset(dcoffi) << 7 | toDCOffset((dcoffq)));
     //Modify_SPI_Reg_bits(EN_DCOFF_RXFE_RFE, 1);
     //Modify_SPI_Reg_bits(0x040C, MSBLSB(2, 0), 0); //DC_BYP 0, GC_BYP 0, PH_BYP 0
@@ -1166,14 +1130,14 @@ RxCalibrationEndStage:
 #if VERBOSE
     printf("#####Rx calibration RESULTS:###########################\n");
     printf("Method: %s %s loopback\n",
-        "RSSI",
-        "INTERNAL");
+           "RSSI",
+           "INTERNAL");
     printf("Rx ch.%s @ %4g MHz, BW: %g MHz, RF input: %s, PGA: %i, LNA: %i, TIA: %i\n",
-                (x0020val & 3) == 1 ? "A" : "B", rxFreq/1e6,
-                bandwidthRF/1e6, lnaName,
-                Get_SPI_Reg_bits(G_PGA_RBB),
-                Get_SPI_Reg_bits(G_LNA_RFE),
-                Get_SPI_Reg_bits(G_TIA_RFE));
+           (x0020val & 3) == 1 ? "A" : "B", rxFreq/1e6,
+           bandwidthRF/1e6, lnaName,
+           Get_SPI_Reg_bits(G_PGA_RBB),
+           Get_SPI_Reg_bits(G_LNA_RFE),
+           Get_SPI_Reg_bits(G_TIA_RFE));
     {
         /*int8_t dcIsigned = (dcoffi & 0x3f) * (dcoffi&0x40 ? -1 : 1);
         int8_t dcQsigned = (dcoffq & 0x3f) * (dcoffq&0x40 ? -1 : 1);
@@ -1185,7 +1149,7 @@ RxCalibrationEndStage:
         verbose_printf("Q: | %3i | %4i |\n", dcQsigned, gcorrq);*/
     }
     int32_t duration = std::chrono::duration_cast<std::chrono::milliseconds>
-        (std::chrono::high_resolution_clock::now()-beginTime).count();
+                       (std::chrono::high_resolution_clock::now()-beginTime).count();
     printf("Duration: %i ms\n", duration);
 #endif //LMS_VERBOSE_OUTPUT
     return 0;
diff --git a/mcu_program/common_src/lms7002m_controls.c b/mcu_program/common_src/lms7002m_controls.c
index 0d74c4b..cbc40f1 100644
--- a/mcu_program/common_src/lms7002m_controls.c
+++ b/mcu_program/common_src/lms7002m_controls.c
@@ -23,46 +23,43 @@ uint16_t pow2(const uint8_t power)
 
 float_type GetFrequencyCGEN()
 {
-    float_type dMul = (RefClk/2.0)/(Get_SPI_Reg_bits(DIV_OUTCH_CGEN)+1); //DIV_OUTCH_CGEN
-    uint16_t gINT = Get_SPI_Reg_bits(0x0088, 13<<4 | 0); //read whole register to reduce SPI transfers
-    uint32_t gFRAC = ((uint32_t)(gINT & 0xF) << 16) | Get_SPI_Reg_bits(0x0087, 15 << 4 | 0);
+    const float_type dMul = (RefClk/2.0)/(Get_SPI_Reg_bits(DIV_OUTCH_CGEN)+1); //DIV_OUTCH_CGEN
+    const uint16_t gINT = Get_SPI_Reg_bits(0x0088, 13<<4 | 0); //read whole register to reduce SPI transfers
+    const uint32_t gFRAC = ((uint32_t)(gINT & 0xF) << 16) | Get_SPI_Reg_bits(0x0087, 15 << 4 | 0);
     return dMul * (((gINT>>4) + 1 + gFRAC/1048576.0));
 }
 
 uint8_t SetFrequencyCGEN(float_type freq)
 {
     float_type dFvco;
-    int16_t iHdiv;
-
+    uint8_t intpart;
     //VCO frequency selection according to F_CLKH
-	{
-	    uint8_t vcoCnt = 0;
-	    float_type vcoFreqs[3];
-	    for (iHdiv = 0; iHdiv < 256 && vcoCnt < 3; ++iHdiv)
-	    {
-	        dFvco = 2 * (iHdiv + 1) * freq;
-	        if (dFvco >= 2e9 && dFvco <= 2.7e9)
-	            vcoFreqs[vcoCnt++] = dFvco;
-	    }
-	    if (vcoCnt == 0)
-	        return 3;//lime::ReportError(-2, "SetFrequencyCGEN(%g MHz) - cannot deliver requested frequency", freq / 1e6);
-		dFvco = vcoFreqs[vcoCnt / 2];
-    	iHdiv = dFvco / freq / 2 - 1;
-		Modify_SPI_Reg_bits(DIV_OUTCH_CGEN, iHdiv);
-	}
+    {
+        uint8_t iHdiv;
+        for(iHdiv = 255; iHdiv; --iHdiv)
+        {
+            dFvco = 2 * (iHdiv) * freq;
+            if (dFvco >= 2e9 && dFvco <= 2.7e9)
+                goto VCO_FOUND;
+        }
+        return 3;//lime::ReportError(-2, "SetFrequencyCGEN(%g MHz) - cannot deliver requested frequency", freq / 1e6);
+VCO_FOUND:
+        //dFvco = vcoFreqs[vcoCnt / 2];
+        Modify_SPI_Reg_bits(DIV_OUTCH_CGEN, iHdiv - 1);
+    }
     //Integer division
-   	Modify_SPI_Reg_bits(INT_SDM_CGEN, (uint16_t)(dFvco/RefClk - 1)); //INT_SDM_CGEN
-
+    intpart = dFvco/RefClk;
+    Modify_SPI_Reg_bits(INT_SDM_CGEN, intpart - 1); //INT_SDM_CGEN
     //Fractional division
-	{
-    float_type dFrac = dFvco/RefClk - (uint32_t)(dFvco/RefClk);
-    uint32_t gFRAC = (uint32_t)(dFrac * 1048576);
-	Modify_SPI_Reg_bits(0x0087, 15 << 4 | 0, gFRAC&0xFFFF); //INT_SDM_CGEN[15:0]
-    Modify_SPI_Reg_bits(0x0088, 3 << 4 | 0, gFRAC>>16); //INT_SDM_CGEN[19:16]
-	}
+    {
+        const float_type dFrac = intpart - (uint32_t)(dFvco/RefClk);
+        const uint32_t gFRAC = (uint32_t)(dFrac * 1048576);
+        Modify_SPI_Reg_bits(0x0087, 15 << 4 | 0, gFRAC&0xFFFF); //INT_SDM_CGEN[15:0]
+        Modify_SPI_Reg_bits(0x0088, 3 << 4 | 0, gFRAC>>16); //INT_SDM_CGEN[19:16]
+    }
 
 #if VERBOSE
-    printf("CGEN: Freq=%g MHz, VCO=%g GHz, INT=%i, FRAC=%i, DIV_OUTCH_CGEN=%i\n", freq/1e6, dFvco/1e9, gINT, gFRAC, iHdiv);
+    //printf("CGEN: Freq=%g MHz, VCO=%g GHz, INT=%i, FRAC=%i, DIV_OUTCH_CGEN=%i\n", freq/1e6, dFvco/1e9, gINT, gFRAC, iHdiv);
 #endif // NDEBUG
     return TuneVCO(VCO_CGEN);
 }
@@ -70,93 +67,90 @@ uint8_t SetFrequencyCGEN(float_type freq)
 float_type GetReferenceClk_TSP_MHz(bool tx)
 {
     const float_type cgenFreq = GetFrequencyCGEN();
-	const float_type clklfreq = cgenFreq/pow2(Get_SPI_Reg_bits(CLKH_OV_CLKL_CGEN));
+    const float_type clklfreq = cgenFreq/pow2(Get_SPI_Reg_bits(CLKH_OV_CLKL_CGEN));
     if(Get_SPI_Reg_bits(EN_ADCCLKH_CLKGN) == 0)
-        return tx ? clklfreq : cgenFreq/4.0;
+        return tx ? clklfreq : cgenFreq/4;
     else
-        return tx ? cgenFreq : clklfreq/4.0;
+        return tx ? cgenFreq : clklfreq/4;
 }
 
-void SetNCOFrequency(bool tx, float freq)
+void SetNCOFrequency(const bool tx, const float freq)
 {
     const uint16_t addr = tx ? 0x0242 : 0x0442;
-    uint32_t fcw = (uint32_t)((freq/GetReferenceClk_TSP_MHz(tx))*4294967296.0);
+    const uint32_t fcw = (uint32_t)((freq/GetReferenceClk_TSP_MHz(tx))*4294967296.0);
     SPI_write(addr, (fcw >> 16)); //NCO frequency control word register MSB part.
     SPI_write(addr+1, fcw); //NCO frequency control word register LSB part.
 }
 
-float_type GetFrequencySX(bool Tx)
+float_type GetFrequencySX(const bool Tx)
 {
-	uint16_t gINT;
-	uint32_t gFRAC;
     const uint16_t ch = SPI_read(0x0020);//(uint8_t)Get_SPI_Reg_bits(MAC); //remember previously used channel
-	float_type dMul;
-	if(Tx)
-        Modify_SPI_Reg_bits(MAC, 2); // Rx mac = 1, Tx mac = 2
-	else
-        Modify_SPI_Reg_bits(MAC, 1); // Rx mac = 1, Tx mac = 2
-	gINT = Get_SPI_Reg_bits(0x011E, 13 << 4 | 0);	// read whole register to reduce SPI transfers
-    gFRAC = ((uint32_t)(gINT&0xF) << 16) | Get_SPI_Reg_bits(0x011D, 15 << 4 | 0);
-    dMul = (float_type)RefClk/ (1 << (Get_SPI_Reg_bits(DIV_LOCH) + 1));
-    //Calculate real frequency according to the calculated parameters
-    dMul = dMul * ((gINT >> 4) + 4 + ((float_type)gFRAC / 1048576.0)) * (Get_SPI_Reg_bits(EN_DIV2_DIVPROG) + 1);
-    //Modify_SPI_Reg_bits(MAC, ch); //restore used channel
-    SPI_write(0x0020, ch);
-	return dMul;
+    Modify_SPI_Reg_bits(MAC, Tx ? 2 : 1); // Rx mac = 1, Tx mac = 2
+    {
+        const uint16_t gINT = Get_SPI_Reg_bits(0x011E, 13 << 4 | 0);    // read whole register to reduce SPI transfers
+        const uint32_t gFRAC = ((uint32_t)(gINT&0xF) << 16) | SPI_read(0x011D);
+        const uint8_t enDiv2 = Get_SPI_Reg_bits(EN_DIV2_DIVPROG)+1;
+        const uint8_t divLoch = Get_SPI_Reg_bits(DIV_LOCH) + 1;
+        SPI_write(0x0020, ch);
+        //Calculate real frequency according to the calculated parameters
+        return (enDiv2) * (RefClk / pow2(divLoch)) * ((gINT >> 4) + 4 + (gFRAC / 1048576.0));
+    }
 }
 
-uint8_t SetFrequencySX(bool tx, const float_type freq_Hz)
-{
+uint8_t SetFrequencySX(const bool tx, const float_type freq_Hz)
+{
     const uint16_t macBck = SPI_read(0x0020);
     bool canDeliverFrequency;
     Modify_SPI_Reg_bits(MAC, tx?2:1);
     //find required VCO frequency
-	{
-		float_type VCOfreq;
-		int8_t div_loch;
-		float_type temp;
-		uint32_t fractionalPart;
-	    for (div_loch = 6; div_loch >= 0; --div_loch)
-	    {
-	        VCOfreq = (1 << (div_loch + 1)) * freq_Hz;
-	        if ((VCOfreq >= 3800e6) && (VCOfreq <= 7714e6))
-	            break;
-	    }
-		Modify_SPI_Reg_bits(DIV_LOCH, div_loch);
-
-    	temp = VCOfreq / (RefClk * (1 + (VCOfreq > 5500e6)));
-	    fractionalPart = (uint32_t)((temp - (uint32_t)(temp)) * 1048576);
+    {
+        float_type VCOfreq;
+        uint32_t fractionalPart;
+        float_type temp;
+        {
+            uint8_t div_loch;
+            for (div_loch = 7; div_loch; --div_loch)
+            {
+                VCOfreq = pow2(div_loch) * freq_Hz;
+                if ((VCOfreq >= 3800e6) && (VCOfreq <= 7714e6))
+                    break;
+            }
+            Modify_SPI_Reg_bits(DIV_LOCH, div_loch-1);
+        }
+        {
+            const uint8_t enDiv2 = (VCOfreq > 5500e6) ? 1 : 0;
+            Modify_SPI_Reg_bits(EN_DIV2_DIVPROG, enDiv2); //EN_DIV2_DIVPROG
+            temp = VCOfreq / (RefClk * (1 + enDiv2));
+            fractionalPart = (uint32_t)((temp - (uint32_t)(temp)) * 1048576);
 
-		Modify_SPI_Reg_bits(INT_SDM, (uint16_t)(temp - 4)); //INT_SDM
-	    Modify_SPI_Reg_bits(0x011D, 15 << 4 | 0, fractionalPart & 0xFFFF); //FRAC_SDM[15:0]
-	    Modify_SPI_Reg_bits(0x011E, 3 << 4 | 0, (fractionalPart >> 16)); //FRAC_SDM[19:16]
-		Modify_SPI_Reg_bits(EN_DIV2_DIVPROG, (VCOfreq > 5500e6)); //EN_DIV2_DIVPROG
-	}
+            Modify_SPI_Reg_bits(INT_SDM, (uint16_t)(temp - 4)); //INT_SDM
+            Modify_SPI_Reg_bits(0x011E, 3 << 4 | 0, (fractionalPart >> 16)); //FRAC_SDM[19:16]
+            SPI_write(0x011D, fractionalPart & 0xFFFF); //FRAC_SDM[15:0]
+        }
+    }
 
     canDeliverFrequency = false;
-	{
-		int8_t sel_vco;
-	    int8_t tuneScore[3] = { -128, -128, -128 }; //best is closest to 0
-	    for (sel_vco = 0; sel_vco < 3; ++sel_vco)
-	    {
-	        Modify_SPI_Reg_bits(SEL_VCO, sel_vco);
-	        if( TuneVCO(tx ? VCO_SXT : VCO_SXR) == 0)
-	        {
-	            tuneScore[sel_vco] = -128 + Get_SPI_Reg_bits(CSW_VCO);
-	            canDeliverFrequency = true;
-	        }
-	    }
-		sel_vco = 2;
-	    if (abs(tuneScore[0]) < abs(tuneScore[sel_vco]))
-	            sel_vco = 0;
-	    if (abs(tuneScore[1]) < abs(tuneScore[sel_vco]))
-	            sel_vco = 1;
-
-		Modify_SPI_Reg_bits(SEL_VCO, sel_vco);
-	    Modify_SPI_Reg_bits(CSW_VCO, tuneScore[sel_vco] + 128);
-	}
+    {
+        int8_t sel_vco;
+        int8_t tuneScore[3] = { -128, -128, -128 }; //best is closest to 0
+        for (sel_vco = 0; sel_vco < 3; ++sel_vco)
+        {
+            Modify_SPI_Reg_bits(SEL_VCO, sel_vco);
+            if( TuneVCO(tx ? VCO_SXT : VCO_SXR) == 0)
+            {
+                tuneScore[sel_vco] = -128 + Get_SPI_Reg_bits(CSW_VCO);
+                canDeliverFrequency = true;
+            }
+        }
+        sel_vco = 2;
+        if (abs(tuneScore[0]) < abs(tuneScore[sel_vco]))
+            sel_vco = 0;
+        if (abs(tuneScore[1]) < abs(tuneScore[sel_vco]))
+            sel_vco = 1;
 
-    //Modify_SPI_Reg_bits(MAC, macBck);
+        Modify_SPI_Reg_bits(SEL_VCO, sel_vco);
+        Modify_SPI_Reg_bits(CSW_VCO, tuneScore[sel_vco] + 128);
+    }
     SPI_write(0x0020, macBck);
     if (canDeliverFrequency == false)
         return 2;//lime::ReportError(EINVAL, "SetFrequencySX%s(%g MHz) - cannot deliver frequency\n%s", tx?"T":"R", freq_Hz / 1e6, ss.str().c_str());
@@ -169,15 +163,15 @@ typedef struct
     int16_t low;
 } CSWInteval;
 
-void Delay()
+static void Delay()
 {
 #ifdef __cplusplus
     std::this_thread::sleep_for(std::chrono::microseconds(1));
 #else
     uint16_t i;
-	volatile uint8_t t=0;
-	for(i=0; i<400; ++i)
-		t <<= 1;
+    volatile uint16_t t=0;
+    for(i=0; i<200; ++i)
+        t <<= 1;
 #endif
 }
 
@@ -185,104 +179,90 @@ void Delay()
     @param module module selection for tuning 0-cgen, 1-SXR, 2-SXT
     @return 0-success, other-failure
 */
+static uint8_t ReadCMP(const bool SX)
+{
+    Delay();
+    return (uint8_t)Get_SPI_Reg_bits(SX ? 0x0123 : 0x008C, 13 << 4 | 12);
+}
+
 uint8_t TuneVCO(uint8_t module) // 0-cgen, 1-SXR, 2-SXT
 {
+    const bool SX = (module != VCO_CGEN);
+    const uint16_t addrCSW_VCO = SX ? 0x0121 : 0x008B;
+    const uint8_t msblsb = SX ? (10 << 4 | 3) : (8 << 4 | 1); //CSW msb << 4 | lsb index
     CSWInteval cswSearch[2];
-    uint16_t addrCSW_VCO;
-    uint16_t addrCMP; //comparator address
-    uint8_t msblsb; //SWC msb << 4 | lsb index
-    uint16_t cswReg;
 
-    if(module != VCO_CGEN) //set addresses to SX module
-    {
+    if(SX) //set addresses to SX module
         //assuming the active channels is already correct
-        //this->SetActiveChannel(Channel(module));
         Modify_SPI_Reg_bits(0x011C, 2 << 4 | 1, 0); //activate VCO and comparator
-        addrCSW_VCO = 0x0121;
-        msblsb = 10 << 4 | 3;
-        addrCMP = 0x0123;
-    }
     else //set addresses to CGEN module
-    {
         Modify_SPI_Reg_bits(0x0086, 2 << 4 | 1, 0); //activate VCO and comparator
-        addrCSW_VCO = 0x008B;
-        msblsb = 8 << 4 | 1;
-        addrCMP = 0x008C;
-    }
-    cswReg = SPI_read(addrCSW_VCO);
+
     //check if lock is within VCO range
     {
-        Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, 0, cswReg);
-        Delay();
-        if(Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12) == 3) //VCO too high
+        Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, 0);
+        if(ReadCMP(SX) == 3) //VCO too high
             return 4;
-        Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, 255, cswReg);
-        Delay();
-        if(Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12) == 0) //VCO too low
+        Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, 255);
+        if(ReadCMP(SX) == 0) //VCO too low
             return 4;
     }
 
     //search intervals [0-127][128-255]
     {
-    int8_t t;
-    for(t=0; t<2; ++t)
-    {
-        int8_t i;
-        cswSearch[t].low = 128*(t+1);
-        cswSearch[t].high = 128*t; //search interval lowest value
-        Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswSearch[t].high, cswReg);
-
-        for(i=6; i>=0; --i)
+        uint16_t t;
+        for(t=0; t<2; ++t)
         {
-            uint8_t cmphl; //comparators
-            cswSearch[t].high |= (((uint16_t)1) << i); //CSW_VCO<i>=1
-            Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswSearch[t].high, cswReg);
-            Delay();
-            cmphl = (uint8_t)Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12);
-            if(cmphl == 0x03) // reduce CSW
-                cswSearch[t].high &= (~(((uint16_t)1) << i)); //CSW_VCO<i>=0
-            if((cmphl == 0x02) && (cswSearch[t].high <= cswSearch[t].low))
-                cswSearch[t].low = cswSearch[t].high;
-        }
-		while(cswSearch[t].low <= cswSearch[t].high && cswSearch[t].low > t*128)
-        {
-            --cswSearch[t].low;
-            Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswSearch[t].low, cswReg);
-            Delay();
-            if(Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12) != 2)
+            int8_t i;
+            cswSearch[t].low = 128*(t+1);
+            cswSearch[t].high = 128*t; //search interval lowest value
+            Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, cswSearch[t].high);
+
+            for(i=6; i>=0; --i)
             {
-                ++cswSearch[t].low;
-                break;
+                uint8_t cmphl; //comparators
+                cswSearch[t].high |= (1 << i); //CSW_VCO<i>=1
+                Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, cswSearch[t].high);
+                cmphl = ReadCMP(SX);
+                if(cmphl == 0x03) // reduce CSW
+                    cswSearch[t].high &= (~(((uint16_t)1) << i)); //CSW_VCO<i>=0
+                if((cmphl == 0x02) && (cswSearch[t].high <= cswSearch[t].low))
+                    cswSearch[t].low = cswSearch[t].high;
+            }
+            while(cswSearch[t].low <= cswSearch[t].high && cswSearch[t].low > t*128)
+            {
+                --cswSearch[t].low;
+                Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, cswSearch[t].low);
+                if(ReadCMP(SX) != 0x2)
+                {
+                    ++cswSearch[t].low;
+                    break;
+                }
             }
         }
     }
-    }
-	//Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswSearch[0].low+(cswSearch[0].high-cswSearch[0].low)/2, cswReg);
     //check if the intervals are joined
-	{
-	    int16_t cswHigh, cswLow;
-	    if(cswSearch[0].high == cswSearch[1].low-1)
-	    {
-	        cswHigh = cswSearch[1].high;
-	        cswLow = cswSearch[0].low;
-	    }
-	    else //compare which interval is wider
-	    {
-	        const uint8_t intervalIndex = (cswSearch[1].high-cswSearch[1].low > cswSearch[0].high-cswSearch[0].low) ? 1 : 0;
-	        cswHigh = cswSearch[intervalIndex].high;
-	        cswLow = cswSearch[intervalIndex].low;
-	    }
+    {
+        int16_t cswHigh, cswLow;
+        if(cswSearch[0].high == cswSearch[1].low-1)
+        {
+            cswHigh = cswSearch[1].high;
+            cswLow = cswSearch[0].low;
+        }
+        else //compare which interval is wider
+        {
+            const uint8_t intervalIndex = (cswSearch[1].high-cswSearch[1].low > cswSearch[0].high-cswSearch[0].low) ? 1 : 0;
+            cswHigh = cswSearch[intervalIndex].high;
+            cswLow = cswSearch[intervalIndex].low;
+        }
 
-        Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswLow+(cswHigh-cswLow)/2, cswReg);
-        Delay();
-        if(Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12) != 0x2)
+        cswLow = cswLow+(cswHigh-cswLow)/2;
+        Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, cswLow);
+        if(ReadCMP(SX) != 0x2)
             //just in case high-low==1, if low fails, check if high locks
-            Modify_SPI_Reg_bits_WrOnly(addrCSW_VCO, msblsb, cswLow+(cswHigh-cswLow)/2+1, cswReg);
-        else
-            return 0;
-	}
-	Delay();
-	if(Get_SPI_Reg_bits(addrCMP, 13 << 4 | 12) != 0x2)
-		return 0x20 + module + 1;
+            Modify_SPI_Reg_bits(addrCSW_VCO, msblsb, cswLow+1);
+    }
+    if(ReadCMP(SX) != 0x2)
+        return 0x20 + module + 1;
     return 0;
 }
diff --git a/mcu_program/common_src/lms7002m_controls.h b/mcu_program/common_src/lms7002m_controls.h
index 04febaa..b216436 100644
--- a/mcu_program/common_src/lms7002m_controls.h
+++ b/mcu_program/common_src/lms7002m_controls.h
@@ -11,12 +11,12 @@ extern "C"
 {
 #endif
 
-extern void SetNCOFrequency(bool tx, float freq_Hz);
+extern void SetNCOFrequency(const bool tx, const float freq_Hz);
 
 extern float_type GetFrequencyCGEN();
 extern uint8_t SetFrequencyCGEN(const float_type freq);
-extern float_type GetFrequencySX(bool Tx);
-extern uint8_t SetFrequencySX(bool Tx, const float_type freq);
+extern float_type GetFrequencySX(const bool Tx);
+extern uint8_t SetFrequencySX(const bool Tx, const float_type freq);
 
 enum VCO_ID
 {
@@ -25,7 +25,7 @@ enum VCO_ID
     VCO_SXT
 };
 
-extern uint8_t TuneVCO(uint8_t module); // 0-cgen, 1-SXR, 2-SXT
+extern uint8_t TuneVCO(const uint8_t module); // 0-cgen, 1-SXR, 2-SXT
 extern uint16_t pow2(const uint8_t power);
 #ifdef __cplusplus
 }
diff --git a/mcu_program/host_src/main.cpp b/mcu_program/host_src/main.cpp
index 4cdf97d..f365bbd 100644
--- a/mcu_program/host_src/main.cpp
+++ b/mcu_program/host_src/main.cpp
@@ -19,8 +19,8 @@ lime::IConnection *serPort = nullptr;
 lime::LMS7002M lmsControl;
 
 //use the LMS7002M or calibrate directly from Host
-bool useMCU = 1;
-bool tx = 1;
+static bool useMCU = 1;
+static bool tx = 0;
 
 
 //potential list of registers that need to be backed up and restored after calibration
@@ -46,12 +46,12 @@ const uint16_t backupStateAddr[] = {
 0x0594, 0x0595, 0x0596, 0x0597, 0x0598, 0x0599, 0x059A, 0x059B, 0x059C, 0x059D,
 0x059E, 0x059F, 0x05A0, 0x05A1, 0x05A2, 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7,
 };
-const uint16_t backupSXAddr[] = {0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124};
-uint16_t backupRegsSXR[sizeof(backupSXAddr) / sizeof(int16_t)];
-uint16_t backupRegsSXT[sizeof(backupSXAddr) / sizeof(int16_t)];
-uint16_t backupStateValues[sizeof(backupStateAddr)/sizeof(uint16_t)];
-uint16_t backup0x0100;
-uint16_t backup0x010D;
+static const uint16_t backupSXAddr[] = {0x011C, 0x011D, 0x011E, 0x011F, 0x0120, 0x0121, 0x0122, 0x0123, 0x0124};
+static uint16_t backupRegsSXR[sizeof(backupSXAddr) / sizeof(int16_t)];
+static uint16_t backupRegsSXT[sizeof(backupSXAddr) / sizeof(int16_t)];
+static uint16_t backupStateValues[sizeof(backupStateAddr) / sizeof(uint16_t)];
+static uint16_t backup0x0100;
+static uint16_t backup0x010D;
 
 void BackupRegisterState()
 {
@@ -118,9 +118,9 @@ int main(int argc, char** argv)
     //load initial chip config for testing
     string filename;
     if(tx)
-        filename = "TxCalib.ini";
+        filename = "TxTest.ini";
     else
-        filename = "RxMIMO_calibration.ini";
+        filename = "RxTest.ini";
     if(lmsControl.LoadConfig(filename.c_str()) != 0)
     {
         printf("Failed to load .ini file\n");
@@ -138,43 +138,23 @@ int main(int argc, char** argv)
     }
 
     int status;
-    /*
-    status = lmsControl.SetFrequencySX(true, 2140e6);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(ISEL_DAC_AFE), 0);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(CG_IAMP_TBB), 5);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(ICT_IAMP_GG_FRP_TBB), 6);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(SEL_BAND1_TRF), 0);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(SEL_BAND2_TRF), 1);
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(RCAL_LPFH_TBB), 0);
-    */
     //backup chip state
     lime::LMS7002M_RegistersMap *backup;
-
-    float freq = 0.300e9;
     lmsControl.Modify_SPI_Reg_bits(LMS7param(MAC), 1);
 
-    //lmsControl.Modify_SPI_Reg_bits(LMS7param(CP2_PLL), 0);
-    //lmsControl.Modify_SPI_Reg_bits(LMS7param(CP3_PLL), 0);
-
-    lmsControl.Modify_SPI_Reg_bits(LMS7param(CG_IAMP_TBB), 10);
-    //lmsControl.DownloadAll();
-    //lmsControl.Modify_SPI_Reg_bits(LMS7param(ISEL_DAC_AFE), 0);
-    //lmsControl.Modify_SPI_Reg_bits(LMS7param(CG_IAMP_TBB), 25);
-    //if(status != 0)
-      //  printf("PC TUNE ERROR\n");
-
     status = 0;
+    if(useMCU)
     {
         uint8_t mcuImage[8192];
         uint16_t imgSize = 0;
-        status = MCU_HEX2BIN("../calibrationsLMS7_MCU.hex", sizeof(mcuImage), mcuImage, &imgSize);
+        status = MCU_HEX2BIN("calibrationsLMS7_MCU.hex", sizeof(mcuImage), mcuImage, &imgSize);
         if(status != 0)
             return status;
 
         fstream fout;
         fout.open("mcu_bin.txt", ios::out);
         fout << "static const uint8_t mcuImage[] = {";
-        for(int i = 0; i < sizeof(mcuImage); ++i)
+        for(size_t i = 0; i < sizeof(mcuImage); ++i)
         {
             if(i % 16 == 0)
                 fout << endl;
@@ -194,17 +174,17 @@ int main(int argc, char** argv)
         }
     }
 
-    tx = 1;
-    useMCU = 1;
-    float freqStart = 1575e6;
-    float freqEnd = 1600e6;
-    float freqStep = 100e6;
+    float freqStart = 400e6;
+    float freqEnd = 2400e6;
+    float freqStep = 10e6;
 
-    freq = freqStart;
+    float freq = freqStart;
 
     vector<float> vfreqs;
     vector<int> vdci, vdcq, vgi, vgq, vph;
 
+    bool isSetBW = false;
+
     while(freq <= freqEnd)
     {
         vfreqs.push_back(freq);
@@ -232,17 +212,26 @@ int main(int argc, char** argv)
         lmsControl.DownloadAll();
         backup = lmsControl.BackupRegisterMap();
 
+        auto t1 = chrono::high_resolution_clock::now();
         if(useMCU) //using algorithm inside MCU
         {
+            if(!isSetBW)
+            {
             status = MCU_SetParameter(MCU_REF_CLK, 30.72e6);
+            if(status != 0)
+                printf("Failed to set Reference Clk\n");
             status = MCU_SetParameter(MCU_BW, 20e6);
+            if(status != 0)
+                printf("Failed to set Bandwidth\n");
+            isSetBW = true;
+
+            }
 
-            //TODO set desired bandwidth parameter
             if(tx)
                 MCU_RunProcedure(1); //initiate Tx calibration
             else
-                MCU_RunProcedure(2); //initiate Tx calibration
-            status = MCU_WaitForStatus(5000); //wait until MCU finishes
+                MCU_RunProcedure(2); //initiate Rx calibration
+            status = MCU_WaitForStatus(1000); //wait until MCU finishes
             if(status != 0)
             {
                 printf("MCU calibration FAILED : 0x%02X\n", status);
@@ -256,6 +245,8 @@ int main(int argc, char** argv)
             else
                 status = CalibrateRx();
         }
+        auto t2 = chrono::high_resolution_clock::now();
+        long duration = chrono::duration_cast<chrono::milliseconds>(t2 - t1).count();
 
         lmsControl.DownloadAll();
         int16_t dci, dcq, ph, gi, gq;
@@ -280,12 +271,7 @@ int main(int argc, char** argv)
             vgq.push_back(gq);
             vph.push_back(ph);
 
-            printf("F: %4.0f MHz, DCI:%3i DCQ:%3i GI:%4i GQ:%4i PH:%4i - %s\n", freq/1e6, dci, dcq, gi, gq, ph, (status == 0 ? "OK" : "FAIL"));
-
-            /*printf("   | DC  | GAIN | PHASE\n");
-            printf("---+-----+------+------\n");
-            printf("I: | %3i | %4i | %i\n", dci, gi, ph);
-            printf("Q: | %3i | %4i |\n", dcq, gq);*/
+            printf("F: %4.0f MHz, DCI:%3i DCQ:%3i GI:%4i GQ:%4i PH:%4i - %s | %li ms\n", freq/1e6, dci, dcq, gi, gq, ph, (status == 0 ? "OK" : "FAIL"), duration);
         }
         else
         {
@@ -311,12 +297,7 @@ int main(int argc, char** argv)
             vgq.push_back(gq);
             vph.push_back(ph);
 
-            printf("F: %4.0f MHz, DCI:%3i DCQ:%3i GI:%4i GQ:%4i PH:%4i - %s\n", freq/1e6, dci, dcq, gi, gq, ph, (status == 0 ? "OK" : "FAIL"));
-
-            /*printf("   | DC  | GAIN | PHASE\n");
-            printf("---+-----+------+------\n");
-            printf("I: | %3i | %4i | %i\n", rdci, gi, ph);
-            printf("Q: | %3i | %4i |\n", rdcq, gq);*/
+            printf("F: %4.0f MHz, DCI:%3i DCQ:%3i GI:%4i GQ:%4i PH:%4i - %s | %li ms\n", freq/1e6, rdci, rdcq, gi, gq, ph, (status == 0 ? "OK" : "FAIL"), duration);
         }
         //restore chip state and apply calibration values
         //RestoreRegisterState();
@@ -351,35 +332,35 @@ int main(int argc, char** argv)
     }
     lime::ConnectionRegistry::freeConnection(serPort);
 
-    /*GNUPlotPipe plot(true);
-    plot.write("plot '-' u 1:2 w line title 'DC I', '-' u 1:2 w line title 'DC Q', '-' u 1:2 w line title 'Phase'\n");
-    //plot.write("plot '-' u 1:2 w line title 'DC I', '-' u 1:2 w line title 'DC Q', '-' u 1:2 w line title 'Phase', '-' u 1:2 w line title 'GainI', '-' u 1:2 w line title 'GainQ'\n");
+GNUPlotPipe plot(true);
+    //plot.write("plot '-' u 1:2 w line title 'DC I', '-' u 1:2 w line title 'DC Q', '-' u 1:2 w line title 'Phase'\n");
+    plot.write("plot '-' u 1:2 w line title 'DC I', '-' u 1:2 w line title 'DC Q', '-' u 1:2 w line title 'Phase', '-' u 1:2 w line title 'GainI', '-' u 1:2 w line title 'GainQ'\n");
 
-    for(int i = 0; i < vfreqs.size(); ++i)
+    for(size_t i = 0; i < vfreqs.size(); ++i)
     {
         plot.writef("%f %i\n", vfreqs[i] / 1e6, vdci[i]);
     }
     plot.write("e\n");
-    for(int i = 0; i < vfreqs.size(); ++i)
+    for(size_t i = 0; i < vfreqs.size(); ++i)
     {
         plot.writef("%f %i\n", vfreqs[i] / 1e6, vdcq[i]);
     }
     plot.write("e\n");
-    for(int i = 0; i < vfreqs.size(); ++i)
+    for(size_t i = 0; i < vfreqs.size(); ++i)
     {
         plot.writef("%f %i\n", vfreqs[i] / 1e6, vph[i]);
     }
     plot.write("e\n");
-    /*for(int i = 0; i < vfreqs.size(); ++i)
+    for(size_t i = 0; i < vfreqs.size(); ++i)
     {
         plot.writef("%f %i\n", vfreqs[i] / 1e6, vgi[i]);
     }
     plot.write("e\n");
-    for(int i = 0; i < vfreqs.size(); ++i)
+    for(size_t i = 0; i < vfreqs.size(); ++i)
     {
         plot.writef("%f %i\n", vfreqs[i] / 1e6, vgq[i]);
     }
-    plot.write("e\n");*/
+    plot.write("e\n");
 
 
     return 0;
diff --git a/mcu_program/host_src/mcu.c b/mcu_program/host_src/mcu.c
index 67cd74e..1b8c113 100644
--- a/mcu_program/host_src/mcu.c
+++ b/mcu_program/host_src/mcu.c
@@ -11,16 +11,11 @@ using namespace std;
 
 void MCU_RunProcedure(uint8_t id)
 {
-    const uint16_t addrs[2]  = {0x0006, 0x0};
-    const uint16_t values[2] = {id != 0, 0};
-    SPI_write_batch(addrs, values, 2);
-    uint8_t x0002reg = SPI_read(0x0002);
-    const uint8_t interupt6 = 0x08;
-    SPI_write(0x0002, x0002reg | interupt6);
-    SPI_write(0x0002, x0002reg & ~interupt6);
-    SPI_write(0x0000, id);
-    SPI_write(0x0002, x0002reg | interupt6);
-    SPI_write(0x0002, x0002reg & ~interupt6);
+    const uint16_t x0002reg = SPI_read(0x0002) & 0xFF;
+    const uint16_t interupt6 = 0x0008;
+    const uint16_t addrs[5] = {0x0006, 0x0, 0x0002, 0x0002, 0x0002};
+    const uint16_t values[5] = {id != 0, id, x0002reg & ~interupt6, x0002reg | interupt6, x0002reg & ~interupt6};
+    SPI_write_batch(addrs, values, 5);
 }
 
 uint8_t MCU_WaitForStatus(uint16_t timeout_ms)
@@ -28,7 +23,7 @@ uint8_t MCU_WaitForStatus(uint16_t timeout_ms)
     auto t1 = std::chrono::high_resolution_clock::now();
     auto t2 = t1;
     unsigned short value = 0;
-    std::this_thread::sleep_for(std::chrono::milliseconds(10));
+    std::this_thread::sleep_for(std::chrono::milliseconds(1));
     do {
         value = SPI_read(0x0001) & 0xFF;
         if (value != 0xFF) //working
@@ -37,8 +32,6 @@ uint8_t MCU_WaitForStatus(uint16_t timeout_ms)
         t2 = std::chrono::high_resolution_clock::now();
     }while (std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1).count() < timeout_ms);
     SPI_write(0x0006, 0); //return SPI control to PC
-    if((value & 0x7f) != 0)
-        std::printf("MCU algorithm time: %li ms\n", std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1).count());
     return value & 0x7F;
 }
 
@@ -58,16 +51,17 @@ uint8_t MCU_SetParameter(MCU_Parameter param, float value)
         SPI_write(0, inputRegs[2-i]);
         SPI_write(0x0002, x0002reg | interupt7);
         SPI_write(0x0002, x0002reg & ~interupt7);
-        this_thread::sleep_for(chrono::microseconds(5));
-        uint8_t p1 = SPI_read(0x0001);
-        int a = 0;
+        int status = MCU_WaitForStatus(10);
+        if(status != 0)
+            printf("MCU error status 0x%02X\n", status);
     }
-    uint8_t p1 = SPI_read(0x0001);
     if(param==MCU_REF_CLK)
         MCU_RunProcedure(4);
     if(param == MCU_BW)
         MCU_RunProcedure(3);
     int status = MCU_WaitForStatus(100);
+    if(status != 0)
+            printf("MCU error status 0x%02X\n", status);
     return status;
 }
 
diff --git a/mcu_program/host_src/mcuHexBin.cpp b/mcu_program/host_src/mcuHexBin.cpp
index 1423a70..75a3186 100644
--- a/mcu_program/host_src/mcuHexBin.cpp
+++ b/mcu_program/host_src/mcuHexBin.cpp
@@ -233,7 +233,7 @@ int MCU_HEX2BIN(const char* filename, const uint16_t limit, uint8_t *binImage, u
     m_top = 0;
     for (vi = m_chunks.begin(); vi < m_chunks.end(); vi++)
     {
-        m_top = max(m_top, vi->m_startAddress + vi->m_bytes.size() - 1);
+        m_top = std::max<size_t>(m_top, vi->m_startAddress + vi->m_bytes.size() - 1);
     }
     if(binImage)
     {
@@ -241,7 +241,8 @@ int MCU_HEX2BIN(const char* filename, const uint16_t limit, uint8_t *binImage, u
         for(auto i : m_chunks)
         {
             for(size_t j=0; j<i.m_bytes.size(); ++j)
-                binImage[i.m_startAddress+j] = i.m_bytes[j];
+                if(i.m_startAddress+j < limit)
+                    binImage[i.m_startAddress+j] = i.m_bytes[j];
         }
     }
     if(imgSize)
diff --git a/mcu_program/host_src/spi.cpp b/mcu_program/host_src/spi.cpp
index 0e4785c..088ce90 100644
--- a/mcu_program/host_src/spi.cpp
+++ b/mcu_program/host_src/spi.cpp
@@ -39,6 +39,8 @@ void Modify_SPI_Reg_bits_WrOnly(const uint16_t SPI_reg_addr, const uint8_t bits,
     const uint16_t spiMask = (~(~0 << ((bits>>4)-(bits&0xF)+1))) << (bits&0xF); // creates bit mask
     //spiDataReg = (spiDataReg & (~spiMask)) | ((new_bits_data << (bits&0xF)) & spiMask) ;//clear bits
 
+    if(batchActive)
+    {
     bool found = false;
     for(int i=0; i<bAddr.size(); ++i)
     {
@@ -56,6 +58,7 @@ void Modify_SPI_Reg_bits_WrOnly(const uint16_t SPI_reg_addr, const uint8_t bits,
         bData.push_back((new_bits_data << (bits&0xF)) & spiMask);
         bMask.push_back(spiMask);
     }
+    }
     SPI_write(SPI_reg_addr, (spiDataReg & (~spiMask)) | ((new_bits_data << (bits&0xF)) & spiMask)); //write modified data back to SPI reg
 }
 
@@ -65,6 +68,8 @@ void Modify_SPI_Reg_bits(const uint16_t SPI_reg_addr, const uint8_t bits, const
     const uint16_t spiMask = (~(~0 << ((bits>>4)-(bits&0xF)+1))) << (bits&0xF); // creates bit mask
     spiDataReg = (spiDataReg & (~spiMask)) | ((new_bits_data << (bits&0xF)) & spiMask) ;//clear bits
 
+    if(batchActive)
+    {
     bool found = false;
     for(int i=0; i<bAddr.size(); ++i)
     {
@@ -82,6 +87,7 @@ void Modify_SPI_Reg_bits(const uint16_t SPI_reg_addr, const uint8_t bits, const
         bData.push_back((new_bits_data << (bits&0xF)) & spiMask);
         bMask.push_back(spiMask);
     }
+    }
     SPI_write(SPI_reg_addr, spiDataReg); //write modified data back to SPI reg
 }
 
@@ -109,6 +115,26 @@ void SPI_write_batch(const uint16_t *addr, const uint16_t *values, uint8_t cnt)
     for(int i=0; i<cnt; ++i)
     {
         data[i] = addr[i] << 16 | values[i];
+
+        if(batchActive)
+        {
+            bool found = false;
+            for(int i=0; i<bAddr.size(); ++i)
+            {
+                if(bAddr[i] == addr[i])
+                {
+                    found = true;
+                    bData[i] = values[i];
+                    bMask[i] = 0xFFFF;
+                }
+            }
+            if(!found)
+            {
+                bAddr.push_back(addr[i]);
+                bData.push_back(values[i]);
+                bMask.push_back(0xFFFF);
+            }
+        }
     }
     serPort->TransactSPI(0x10, data.data(), nullptr, data.size());
 }
diff --git a/mcu_program/mcu_src/main.c b/mcu_program/mcu_src/main.c
index 8e41d19..f7d39d0 100644
--- a/mcu_program/mcu_src/main.c
+++ b/mcu_program/mcu_src/main.c
@@ -3,10 +3,9 @@
 #include "lms7002m_calibrations.h"
 #include "LMS7002M_parameters_compact.h"
 #include "lms7002m_controls.h"
-
-bit runProcedure = false;
+
+bool runProcedure = false;
 uint8_t currentInstruction;
-uint8_t lastInstruction;
 extern float_type RefClk;
 extern float_type bandwidthRF;
 #define MCU_PARAMETER_ADDRESS 0x002D //register used to pass parameter values to MCU
@@ -21,23 +20,17 @@ enum
 };
 
 /**	@brief Reads reference clock from LMS register
-*/
-void UpdateReferenceClock()
-{	
-	RefClk = inputRegs[0]; //integer part MHz
-	RefClk += (((uint16_t)inputRegs[1] << 8) | inputRegs[2]) / 1000.0; //fractional part MHz
-	RefClk *= 1e6;
-	P1 = MCU_IDLE;
-}
-
-void UpdateBW()
-{	
-	bandwidthRF = inputRegs[0]; //integer part MHz
-	bandwidthRF += (((uint16_t)inputRegs[1] << 8) | inputRegs[2]) / 1000.0; //fractional part MHz
-	bandwidthRF *= 1e6;
-	P1 = MCU_IDLE;
+*/
+void UpdateFreq(bool refClk)
+{
+	const float freq = 1e6*(inputRegs[0] + ((((uint16_t)inputRegs[1] << 8) | inputRegs[2]) / 1000.0)); //integer part MHz
+	if(refClk)
+		RefClk = freq;
+	else
+		bandwidthRF = freq;
+	P1 = MCU_IDLE;
 }
-
+
 void ext2_int() interrupt 7
 {
 	uint8_t i;
@@ -73,16 +66,15 @@ void main()  //main routine
 	ucSEN=1;//
 
 	//P1 returns MCU status
-	lastInstruction = P0;
 	while(1) 
 	{			
 		if(runProcedure)
 		{
 			switch(currentInstruction)
 			{
-			case 0:
-				P1 = MCU_IDLE;
-				break;
+			//case 0:
+			//	P1 = MCU_IDLE;
+			//	break;
 			case 1: //CalibrateTx
 				P1 = MCU_IDLE | CalibrateTx();
 				break;
@@ -90,18 +82,29 @@ void main()  //main routine
                 P1 = MCU_IDLE | CalibrateRx();
 				break;
 			case 3: 
-				UpdateBW();
+				UpdateFreq(0);
+				//UpdateBW();
 				break;
 			case 4: //update ref clk
-				UpdateReferenceClock();
-				break;
+				//UpdateReferenceClock();
+				UpdateFreq(1);
+				break;
+			/*case 5:
+				P1 = SetFrequencySX(1, 900e6);
+				break;
+			case 6:
+			{
+			uint8_t ch = Get_SPI_Reg_bits(MAC); //activate VCO and comparator
+			 Modify_SPI_Reg_bits(MAC, 2); //activate VCO and comparator
+				P1 = TuneVCO(VCO_SXT);
+			Modify_SPI_Reg_bits(MAC, ch); //activate VCO and comparator
+				break;
+			}	*/
 			case 255: //return program ID
 				P1 = 0x02;
 				break;
-			default:
-				break;
+			
 			}
-			lastInstruction = currentInstruction; 
 			runProcedure = false;
 		}
 	}
diff --git a/mcu_program/mcu_src/spi.c b/mcu_program/mcu_src/spi.c
index d696167..c655206 100644
--- a/mcu_program/mcu_src/spi.c
+++ b/mcu_program/mcu_src/spi.c
@@ -48,13 +48,13 @@ unsigned short SPI_read (const unsigned short spiAddrReg)
 	ucSDIN=1;
 	return spiDataReg;
 }
-
+/*
 void Modify_SPI_Reg_bits_WrOnly(const uint16_t SPI_reg_addr, const uint8_t bits, const uint16_t new_bits_data, const uint16_t spiDataReg)
 {
     const uint16_t spiMask = (~(~0 << ((bits>>4)-(bits&0xF)+1))) << (bits&0xF); // creates bit mask
    	SPI_write(SPI_reg_addr, (spiDataReg & (~spiMask)) | ((new_bits_data << (bits&0xF)) & spiMask)); //write modified data back to SPI reg
 }
-
+*/
 void Modify_SPI_Reg_bits(const uint16_t SPI_reg_addr, const uint8_t bits, const uint16_t new_bits_data)
 {
 	uint16_t spiDataReg = SPI_read(SPI_reg_addr); //read current SPI reg data
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1a3e26b..102da5c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,7 +7,6 @@ set(LIME_SUITE_PUBLIC_HEADERS
     ErrorReporting.h
     LimeSuiteConfig.h
     ADF4002/ADF4002.h
-    version.h
     lms7002m_mcu/MCU_BD.h
     lms7002m_mcu/MCU_File.h
     ConnectionRegistry/IConnection.h
@@ -251,15 +250,6 @@ if (ENABLE_GUI)
 endif()
 
 ########################################################################
-## update version.h
-########################################################################
-set(AUTO_UPDATE_VERSION OFF CACHE BOOL "Uses python script to increment version")
-if(AUTO_UPDATE_VERSION)
-	add_custom_target(updateVersion ALL COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/auto_version.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-	add_dependencies(lms7suite updateVersion)
-endif()
-
-########################################################################
 # boardEmulator -- creates serial port and imitates board communications
 ########################################################################
 if(UNIX)
diff --git a/src/ConnectionSTREAM/ConnectionSTREAM.cpp b/src/ConnectionSTREAM/ConnectionSTREAM.cpp
index e8c6b81..3aac10f 100644
--- a/src/ConnectionSTREAM/ConnectionSTREAM.cpp
+++ b/src/ConnectionSTREAM/ConnectionSTREAM.cpp
@@ -97,7 +97,7 @@ ConnectionSTREAM::ConnectionSTREAM(void *arg, const unsigned index, const int vi
     if (info.device == LMS_DEV_LIMESDR)
     {
         versionList = {
-            {4, 2, 2, 1},
+            {4, 2, 2, 2},
             {3, 2, 1, 20},
             {2, 2, 1, 20},
             {1, 6, 1, 20},
diff --git a/src/ConnectionSTREAM/ConnectionSTREAMing.cpp b/src/ConnectionSTREAM/ConnectionSTREAMing.cpp
index ef9bc9c..7246783 100644
--- a/src/ConnectionSTREAM/ConnectionSTREAMing.cpp
+++ b/src/ConnectionSTREAM/ConnectionSTREAMing.cpp
@@ -405,7 +405,7 @@ void ConnectionSTREAM::TransmitPacketsLoop(const ThreadData args)
         }
         int i=0;
 
-        while(i<packetsToBatch)
+        while(i<packetsToBatch && terminate->load() != true)
         {
             IStreamChannel::Metadata meta;
             FPGA_DataPacket* pkt = reinterpret_cast<FPGA_DataPacket*>(&buffers[bi*bufferSize]);
diff --git a/src/LimeUtil.cpp b/src/LimeUtil.cpp
index d1860b5..4fb519e 100644
--- a/src/LimeUtil.cpp
+++ b/src/LimeUtil.cpp
@@ -45,8 +45,10 @@ static int printHelp(void)
  **********************************************************************/
 static int printInfo(void)
 {
-    std::cout << "Library Version: v" << lime::GetLibraryVersion() << std::endl;
+    std::cout << "Library version: v" << lime::GetLibraryVersion() << std::endl;
     std::cout << "Build timestamp: " << lime::GetBuildTimestamp() << std::endl;
+    std::cout << "Interface version: v" << lime::GetAPIVersion() << std::endl;
+    std::cout << "Binary interface: " << lime::GetABIVersion() << std::endl;
     std::cout << "Connections: ";
     for (const auto &name : ConnectionRegistry::moduleNames()) std::cout << name << ", ";
     std::cout << std::endl;
diff --git a/src/VersionInfo.h b/src/VersionInfo.h
index 556de1a..b65effc 100644
--- a/src/VersionInfo.h
+++ b/src/VersionInfo.h
@@ -10,9 +10,24 @@
 #include <LimeSuiteConfig.h>
 #include <string>
 
+/*!
+ * API version number which can be used as a preprocessor check.
+ * The format of the version number is encoded as follows:
+ * <b>(major << 16) | (minor << 8) | (8 bit increment)</b>.
+ * Where the increment can be used to indicate implementation
+ * changes, fixes, or API additions within a minor release series.
+ *
+ * The macro is typically used in an application as follows:
+ * \code
+ * #if defined(LIME_SUITE_API_VERSION) && (LIME_SUITE_API_VERSION >= 0x20161200)
+ * // Use a newer feature from the LimeSuite library API
+ * #endif
+ * \endcode
+ */
+#define LIME_SUITE_API_VERSION 0x20161200
+
 namespace lime
 {
-
     /*!
      * Get the library version as a dotted string.
      * The format is major.minor.patch.build-extra.
@@ -24,6 +39,18 @@ namespace lime
      */
     LIME_API std::string GetBuildTimestamp(void);
 
+    /*!
+     * Get the LimeSuite library API version as a string.
+     * The format of the version string is <b>major.minor.increment</b>,
+     * where the digits are taken directly from <b>LIME_SUITE_API_VERSION</b>.
+     */
+    LIME_API std::string GetAPIVersion(void);
+
+    /*!
+     * Get the ABI/so version of the library.
+     */
+    LIME_API std::string GetABIVersion(void);
+
 }
 
 #endif //LIMESUITE_VERSION_INFO_H
diff --git a/src/VersionInfo.in.cpp b/src/VersionInfo.in.cpp
index da91de2..c576d87 100644
--- a/src/VersionInfo.in.cpp
+++ b/src/VersionInfo.in.cpp
@@ -5,6 +5,10 @@
 */
 
 #include "VersionInfo.h"
+#include <sstream>
+
+#define QUOTE_(x) #x
+#define QUOTE(x) QUOTE_(x)
 
 std::string lime::GetLibraryVersion(void)
 {
@@ -15,3 +19,18 @@ std::string lime::GetBuildTimestamp(void)
 {
     return "@BUILD_TIMESTAMP@";
 }
+
+std::string lime::GetAPIVersion(void)
+{
+    const std::string verStr(QUOTE(LIME_SUITE_API_VERSION));
+    std::stringstream ss;
+    ss << std::stoi(verStr.substr(2, 4)) << "."
+       << std::stoi(verStr.substr(6, 2)) << "."
+       << std::stoi(verStr.substr(8, 2));
+    return ss.str();
+}
+
+std::string lime::GetABIVersion(void)
+{
+    return "@LIME_SUITE_SOVER@";
+}
diff --git a/src/auto_version.py b/src/auto_version.py
deleted file mode 100644
index 60bbd44..0000000
--- a/src/auto_version.py
+++ /dev/null
@@ -1,64 +0,0 @@
-__author__ = 'Lime Microsystems'
-from string import Template
-import datetime
-
-filename = "version.h"
-
-version_file_template = Template(
-"""/**
- at author Lime Microsystems
- at brief  Automatically generated software version
-*/
-#pragma once
-namespace AutoVersion
-{
-    static const int year = $year;
-    static const int month = $month;
-    static const int day = $day;
-    static const int hour = $hour;
-    static const int minutes = $minutes;
-    static const int seconds = $seconds;
-    static const int buildsCounter = $buildsCounter;
-    static const char branchName[] = "$branchName";
-}
-"""
-)
-
-buildCount = 0
-branchName = "";
-try:
-    fin = open(filename, 'r')
-    lines = []
-    for line in fin:
-        lines.append(line)
-        if( line.find("static const int buildsCounter") != -1):
-            start = line.find("=")
-            if(start != -1):
-                buildCount = int( line[start+1:line.find(";", start)])+1
-        if( line.find("static const char branchName[]") != -1):
-            start = line.find("\"")
-            if(start != -1):
-                branchName = line[start+1:line.find("\"", start+1)]
-    fin.close()
-except FileNotFoundError:
-    print("old version file not found, creating new file")
-
-timestamp = datetime.datetime.now()
-
-f = open('version.h', "w")
-f.write(version_file_template.substitute(
-    year=timestamp.year,
-    month=timestamp.month,
-    day=timestamp.day,
-    hour=timestamp.hour,
-    minutes=timestamp.minute,
-    seconds=timestamp.second,
-    buildsCounter = buildCount,
-    branchName = branchName)
-)
-f.close()
-
-
-
-
-
diff --git a/src/fftviewer_wxgui/fftviewer_frFFTviewer.cpp b/src/fftviewer_wxgui/fftviewer_frFFTviewer.cpp
index 5653029..1885c6b 100644
--- a/src/fftviewer_wxgui/fftviewer_frFFTviewer.cpp
+++ b/src/fftviewer_wxgui/fftviewer_frFFTviewer.cpp
@@ -363,7 +363,7 @@ void fftviewer_frFFTviewer::StreamingLoop(fftviewer_frFFTviewer* pthis, const un
 
     while (pthis->stopProcessing.load() == false)
     {
-        for(int a=fftCounter; a<avgCount; ++a)
+        for(int a = fftCounter; a<avgCount && pthis->stopProcessing.load() == false; ++a)
         {
             uint32_t samplesPopped[2] = {0, 0};
             uint64_t ts[2];
@@ -438,12 +438,14 @@ void fftviewer_frFFTviewer::StreamingLoop(fftviewer_frFFTviewer* pthis, const un
                     localDataResults.fftBins_dbFS[ch][s] = (localDataResults.fftBins_dbFS[ch][s] != 0 ? (20 * log10(localDataResults.fftBins_dbFS[ch][s])) - 69.2369 : -300);
                 }
             }
-
-            pthis->streamData = localDataResults;
-            wxThreadEvent evt;
-            evt.SetEventObject(pthis);
-            pthis->updateGUI.store(false);
-            wxPostEvent(pthis, evt);
+            if(pthis->stopProcessing.load() == false)
+            {
+                pthis->streamData = localDataResults;
+                wxThreadEvent* evt = new wxThreadEvent;
+                evt->SetEventObject(pthis);
+                pthis->updateGUI.store(false);
+                pthis->QueueEvent(evt);
+            }
             fftCounter = 0;
         }
         avgCount = pthis->averageCount.load();
diff --git a/src/lms7002m/LMS7002M_parameters.h b/src/lms7002m/LMS7002M_parameters.h
index d318708..fb8a2b8 100644
--- a/src/lms7002m/LMS7002M_parameters.h
+++ b/src/lms7002m/LMS7002M_parameters.h
@@ -189,7 +189,7 @@ static const struct LMS7Parameter LMS7_TST_CGEN = { 0x0089, 2, 0, 0, "TST_CGEN",
 7 - tstdo[0] = High impedance; tstdo[1] = High impedance; tstao = VCO tune through a 10kOhm resistor;\n\
 if TST_SX[2] = 1 --> VCO_TSTBUF active generating VCO_TST_DIV20 and VCO_TST_DIV40"};
 static const struct LMS7Parameter LMS7_REV_CLKDAC_CGEN = { 0x008A, 14, 14, 0, "REV_CLKDAC_CGEN", "Inverts the clock F_CLKL" };
-static const struct LMS7Parameter LMS7_CMPLO_CTRL_CGEN = { 0x008A, 27, 14, 0, "CMPLO_CTRL_CGEN", "" };
+static const struct LMS7Parameter LMS7_CMPLO_CTRL_CGEN = { 0x008B, 14, 14, 0, "CMPLO_CTRL_CGEN", "" };
 static const struct LMS7Parameter LMS7_REV_CLKADC_CGEN = { 0x008A, 13, 13, 0, "REV_CLKADC_CGEN", "Inverts the clock F_CLKL" };
 static const struct LMS7Parameter LMS7_REVPH_PFD_CGEN = { 0x008A, 12, 12, 0, "REVPH_PFD_CGEN", "Reverse the pulses of PFD. It can be used to reverse the polarity of the PLL loop (positive feedback to negative feedback)" };
 static const struct LMS7Parameter LMS7_IOFFSET_CP_CGEN = { 0x008A, 11, 6, 20, "IOFFSET_CP_CGEN", "Scales the offset current of the charge pump, 0-->63. This current is used in Fran-N mode to create an offset in the CP response and avoide the non-linear section" };
diff --git a/src/lms7002m/mcu_dc_iq_calibration.cpp b/src/lms7002m/mcu_dc_iq_calibration.cpp
index 280488a..09635d3 100644
--- a/src/lms7002m/mcu_dc_iq_calibration.cpp
+++ b/src/lms7002m/mcu_dc_iq_calibration.cpp
@@ -1,516 +1,516 @@
 #include "mcu_programs.h"
 
 const uint8_t mcu_program_lms7_dc_iq_calibration_bin[8192] = {
-    0x02, 0x07, 0x98, 0x04, 0x0D, 0x4A, 0x98, 0x96, 0x80, 0xC1, 0x02, 0x04, 0x11, 0x4B, 0xEA, 0x60,
-    0x00, 0xC1, 0x03, 0x00, 0xEE, 0x30, 0xE7, 0x07, 0xC3, 0xE4, 0x9F, 0xFF, 0xE4, 0x9E, 0xFE, 0x22,
-    0x80, 0x80, 0x80, 0x22, 0x22, 0xE5, 0x27, 0x25, 0xE0, 0x24, 0x6E, 0xF5, 0x82, 0xE4, 0x34, 0x09,
-    0xF5, 0x83, 0xE4, 0x93, 0xFE, 0x74, 0x01, 0x93, 0xFF, 0x22, 0x00, 0x02, 0x1E, 0xA7, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x02, 0x1E, 0xD8, 0x02, 0x04, 0x07, 0xE8, 0x64, 0x80, 0xF8, 0xE9, 0x33, 0xE8,
-    0x33, 0x60, 0x11, 0x04, 0x60, 0xF0, 0xED, 0x33, 0xEC, 0x33, 0x70, 0x09, 0xE8, 0xFC, 0xE9, 0xFD,
-    0xEA, 0xFE, 0xEB, 0xFF, 0x22, 0x04, 0x60, 0xDE, 0xD3, 0xEB, 0x9F, 0xEA, 0x9E, 0xE9, 0x9D, 0xE8,
-    0xC2, 0xE7, 0x8C, 0xF0, 0xC2, 0xF7, 0x95, 0xF0, 0x40, 0x0C, 0xE8, 0xCC, 0xF8, 0xE9, 0xCD, 0xF9,
-    0xEA, 0xCE, 0xFA, 0xEB, 0xCF, 0xFB, 0x12, 0x03, 0xD2, 0x85, 0xD0, 0xF0, 0x58, 0x04, 0x70, 0x03,
-    0x20, 0xD5, 0xB3, 0xE8, 0x04, 0x70, 0x07, 0x50, 0x02, 0xB2, 0xD5, 0x02, 0x04, 0x11, 0x92, 0xD5,
-    0xEC, 0x04, 0x60, 0xF7, 0xE4, 0xCC, 0xC0, 0xE0, 0xC3, 0x98, 0xF8, 0x60, 0x3B, 0x94, 0x18, 0x60,
-    0x08, 0x40, 0x0D, 0xD0, 0xE0, 0xFB, 0x02, 0x03, 0xE9, 0xE4, 0xFB, 0xFA, 0xC9, 0xFC, 0x80, 0x28,
-    0xE8, 0x30, 0xE4, 0x06, 0xE4, 0xC9, 0xFB, 0xE4, 0xCA, 0xFC, 0xE8, 0x30, 0xE3, 0x05, 0xE4, 0xC9,
-    0xCA, 0xCB, 0xFC, 0xE8, 0x54, 0x07, 0x60, 0x10, 0xF8, 0xC3, 0xE9, 0x13, 0xF9, 0xEA, 0x13, 0xFA,
-    0xEB, 0x13, 0xFB, 0xEC, 0x13, 0xFC, 0xD8, 0xF1, 0x30, 0xF5, 0x2F, 0xC3, 0xE4, 0x9C, 0xFC, 0xEF,
-    0x9B, 0xFF, 0xEE, 0x9A, 0xFE, 0xED, 0x99, 0xFD, 0xD0, 0xE0, 0xFB, 0xEF, 0x4E, 0x4D, 0x4C, 0x70,
-    0x12, 0x22, 0xDB, 0x03, 0x02, 0x04, 0x0E, 0xEC, 0x2C, 0xFC, 0xEF, 0x33, 0xFF, 0xEE, 0x33, 0xFE,
-    0xED, 0x33, 0xFD, 0xED, 0x30, 0xE7, 0xEB, 0x02, 0x03, 0xE9, 0xEF, 0x2B, 0xFF, 0xEE, 0x3A, 0xFE,
-    0xED, 0x39, 0xFD, 0xD0, 0xE0, 0xFB, 0x50, 0x13, 0x0B, 0xBB, 0x00, 0x03, 0x02, 0x04, 0x11, 0xED,
-    0x13, 0xFD, 0xEE, 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0xEC, 0x13, 0xFC, 0x02, 0x03, 0xE9, 0xEC, 0x4D,
-    0x60, 0x11, 0xE8, 0x49, 0x70, 0x17, 0xED, 0x33, 0xEC, 0x33, 0x04, 0x60, 0x0D, 0xE4, 0xFC, 0xFF,
-    0xFE, 0xFD, 0x22, 0xE9, 0x33, 0xE8, 0x33, 0x04, 0x70, 0xF8, 0x02, 0x04, 0x07, 0x12, 0x03, 0xD2,
-    0x58, 0x04, 0x60, 0x09, 0xE4, 0xCC, 0x24, 0x81, 0x50, 0x06, 0x28, 0x50, 0x09, 0x02, 0x04, 0x11,
-    0x28, 0x40, 0x03, 0x02, 0x04, 0x0E, 0xC0, 0xE0, 0xEB, 0x4A, 0x70, 0x44, 0xB9, 0x80, 0x06, 0xD0,
-    0xE0, 0xFB, 0x02, 0x03, 0xFD, 0xEF, 0x4E, 0x70, 0x1C, 0xBD, 0x80, 0x08, 0xEB, 0xFF, 0xEA, 0xFE,
-    0xE9, 0xFD, 0x80, 0xEB, 0xE9, 0x8D, 0xF0, 0xA4, 0xFE, 0xE5, 0xF0, 0x02, 0x02, 0x27, 0xE9, 0xCD,
-    0xF9, 0xEA, 0xFE, 0xEB, 0xFF, 0xEF, 0x89, 0xF0, 0xA4, 0xFC, 0xE5, 0xF0, 0xCE, 0x89, 0xF0, 0xA4,
-    0x2E, 0xFF, 0xE4, 0x35, 0xF0, 0xCD, 0x89, 0xF0, 0xA4, 0x2D, 0xFE, 0xE4, 0x35, 0xF0, 0x80, 0x67,
-    0xEF, 0x4E, 0x70, 0x05, 0xBD, 0x80, 0xD7, 0x80, 0xC3, 0xEF, 0x8B, 0xF0, 0xA4, 0xAC, 0xF0, 0xEE,
-    0x8B, 0xF0, 0xA4, 0x2C, 0xFC, 0xE4, 0x35, 0xF0, 0xF8, 0xEF, 0x8A, 0xF0, 0xA4, 0x2C, 0xE5, 0xF0,
-    0x38, 0xFC, 0xE4, 0x33, 0xCB, 0x8D, 0xF0, 0xA4, 0x2C, 0xFC, 0xE5, 0xF0, 0x3B, 0xF8, 0xEE, 0x8A,
-    0xF0, 0xA4, 0x2C, 0xFC, 0xE5, 0xF0, 0x38, 0xF8, 0xE4, 0x33, 0xCF, 0x89, 0xF0, 0xA4, 0x2C, 0xFC,
-    0xE5, 0xF0, 0x38, 0xCF, 0x34, 0x00, 0xCE, 0x89, 0xF0, 0xA4, 0x2F, 0xFF, 0xE5, 0xF0, 0x3E, 0xFE,
-    0xE4, 0x33, 0xC9, 0x8D, 0xF0, 0xA4, 0x2E, 0xFE, 0xE5, 0xF0, 0x39, 0xCD, 0x8A, 0xF0, 0xA4, 0x2F,
-    0xFF, 0xE5, 0xF0, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, 0x33, 0xD0, 0xE0, 0xFB, 0x50, 0x07, 0x0B, 0xBB,
-    0x00, 0x0F, 0x02, 0x04, 0x11, 0xEC, 0x2C, 0xFC, 0xEF, 0x33, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33,
-    0xFD, 0x02, 0x03, 0xE9, 0x02, 0x04, 0x11, 0xEC, 0x5D, 0x04, 0x60, 0x05, 0xE8, 0x59, 0x04, 0x70,
-    0x03, 0x02, 0x04, 0x07, 0x12, 0x03, 0xD2, 0x58, 0x04, 0x60, 0xF6, 0xEC, 0x48, 0x60, 0xF2, 0xEC,
-    0x70, 0x04, 0xFD, 0xFE, 0xFF, 0x22, 0xC8, 0x60, 0xDB, 0x24, 0x81, 0xC8, 0x50, 0x09, 0xC3, 0x98,
-    0x60, 0x02, 0x50, 0x06, 0x02, 0x04, 0x0E, 0x98, 0x50, 0xCA, 0xF5, 0x82, 0xE9, 0x29, 0x4B, 0x4A,
-    0x70, 0x05, 0xAB, 0x82, 0x02, 0x03, 0xFD, 0x75, 0xF0, 0x00, 0x7C, 0x1A, 0x78, 0x80, 0xC3, 0xEF,
-    0x9B, 0xEE, 0x9A, 0xED, 0x99, 0x40, 0x0D, 0xC3, 0xEF, 0x9B, 0xFF, 0xEE, 0x9A, 0xFE, 0xED, 0x99,
-    0xFD, 0xE8, 0x42, 0xF0, 0xDC, 0x23, 0xAC, 0xF0, 0xD0, 0xE0, 0xFF, 0xD0, 0xE0, 0xFE, 0xD0, 0xE0,
-    0xFD, 0xAB, 0x82, 0x20, 0xE7, 0x10, 0x1B, 0xEB, 0x60, 0xBA, 0xEC, 0x2C, 0xFC, 0xEF, 0x33, 0xFF,
-    0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0x02, 0x03, 0xE9, 0xE8, 0x03, 0xF8, 0x30, 0xE7, 0x05, 0xC0,
-    0xF0, 0x75, 0xF0, 0x00, 0xEF, 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0x40, 0xB8, 0x30,
-    0xE7, 0xC2, 0x80, 0xAA, 0x74, 0xF8, 0xCC, 0x64, 0x80, 0xCC, 0xC8, 0x64, 0x80, 0xC8, 0xF5, 0x82,
-    0x04, 0x60, 0x4F, 0xC3, 0xEB, 0x9F, 0xF5, 0xF0, 0xEA, 0x9E, 0x42, 0xF0, 0xE9, 0x9D, 0x42, 0xF0,
-    0xE8, 0x9C, 0x45, 0xF0, 0x60, 0x3C, 0x50, 0x1D, 0xE5, 0x82, 0x5F, 0xFF, 0xE5, 0x82, 0xD3, 0x13,
-    0xCB, 0x5B, 0xCB, 0xF4, 0x2B, 0x55, 0x82, 0xFB, 0x50, 0x28, 0x0A, 0xBA, 0x00, 0x24, 0x09, 0xB9,
-    0x00, 0x20, 0x08, 0x80, 0x1D, 0xE5, 0x82, 0x5B, 0xFB, 0xE5, 0x82, 0xD3, 0x13, 0xCF, 0x5F, 0xCF,
-    0xF4, 0xC3, 0x13, 0x2F, 0x55, 0x82, 0xFF, 0x50, 0x09, 0x0E, 0xBE, 0x00, 0x05, 0x0D, 0xBD, 0x00,
-    0x01, 0x0C, 0xC3, 0xEB, 0x9F, 0xF5, 0xF0, 0xEA, 0x9E, 0x42, 0xF0, 0xE9, 0x9D, 0x42, 0xF0, 0xE8,
-    0x9C, 0x45, 0xF0, 0x60, 0x07, 0xCC, 0x48, 0x20, 0xE7, 0x01, 0xB3, 0xEC, 0x22, 0x75, 0xF0, 0x20,
-    0x80, 0x0E, 0x75, 0xF0, 0x10, 0x80, 0x05, 0x75, 0xF0, 0x08, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00,
-    0x33, 0x92, 0xD5, 0x30, 0xD5, 0x03, 0x12, 0x05, 0xA2, 0xEC, 0x33, 0x40, 0x10, 0xEF, 0x33, 0xFF,
-    0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0xEC, 0x33, 0xFC, 0xD5, 0xF0, 0xED, 0x22, 0xE5, 0xF0, 0x24,
-    0x7E, 0xA2, 0xD5, 0x13, 0xCC, 0x92, 0xE7, 0xCD, 0xCE, 0xFF, 0x22, 0xED, 0xD2, 0xE7, 0xCD, 0x33,
-    0xEC, 0x33, 0x92, 0xD5, 0x24, 0x81, 0x40, 0x06, 0xE4, 0xFF, 0xFE, 0xFD, 0xFC, 0x22, 0xFC, 0xE4,
-    0xCF, 0xCE, 0xCD, 0xCC, 0x24, 0xE0, 0x50, 0x11, 0x74, 0xFF, 0x80, 0xED, 0xC3, 0xCC, 0x13, 0xCC,
-    0xCD, 0x13, 0xCD, 0xCE, 0x13, 0xCE, 0xCF, 0x13, 0xCF, 0x04, 0x70, 0xF0, 0x30, 0xD5, 0xDE, 0x02,
-    0x05, 0xA2, 0xE9, 0xD2, 0xE7, 0xC9, 0x33, 0xE8, 0x33, 0xF8, 0x92, 0xD5, 0xED, 0xD2, 0xE7, 0xCD,
-    0x33, 0xEC, 0x33, 0xFC, 0x50, 0x02, 0xB2, 0xD5, 0x22, 0xEC, 0x30, 0xE7, 0x10, 0x0F, 0xBF, 0x00,
-    0x0C, 0x0E, 0xBE, 0x00, 0x08, 0x0D, 0xBD, 0x00, 0x04, 0x0B, 0xEB, 0x60, 0x14, 0xA2, 0xD5, 0xEB,
-    0x13, 0xFC, 0xED, 0x92, 0xE7, 0xFD, 0x22, 0x74, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0x22, 0xE4, 0x80,
-    0xF8, 0xA2, 0xD5, 0x74, 0xFF, 0x13, 0xFC, 0x7D, 0x80, 0xE4, 0x80, 0xEF, 0xC0, 0xE0, 0xEF, 0xFB,
-    0xEE, 0xFA, 0xED, 0xF9, 0xEC, 0xF8, 0x12, 0x01, 0x3E, 0xD0, 0xE0, 0xF5, 0xF0, 0xEF, 0xFB, 0xEE,
-    0xFA, 0xED, 0xF9, 0xEC, 0xF8, 0x12, 0x05, 0xE2, 0xA3, 0xA3, 0xA3, 0xA3, 0xE8, 0xC0, 0xE0, 0xE9,
-    0xC0, 0xE0, 0xEA, 0xC0, 0xE0, 0xEB, 0xC0, 0xE0, 0xC0, 0xF0, 0x12, 0x01, 0x3E, 0x12, 0x05, 0xF2,
-    0xA3, 0xA3, 0xA3, 0xA3, 0x12, 0x00, 0x4D, 0xD0, 0xF0, 0xD0, 0xE0, 0xFB, 0xD0, 0xE0, 0xFA, 0xD0,
-    0xE0, 0xF9, 0xD0, 0xE0, 0xF8, 0xD5, 0xF0, 0xD4, 0x22, 0xE7, 0x09, 0xF6, 0x08, 0xDF, 0xFA, 0x80,
-    0x46, 0xE7, 0x09, 0xF2, 0x08, 0xDF, 0xFA, 0x80, 0x3E, 0x88, 0x82, 0x8C, 0x83, 0xE7, 0x09, 0xF0,
-    0xA3, 0xDF, 0xFA, 0x80, 0x32, 0xE3, 0x09, 0xF6, 0x08, 0xDF, 0xFA, 0x80, 0x78, 0xE3, 0x09, 0xF2,
-    0x08, 0xDF, 0xFA, 0x80, 0x70, 0x88, 0x82, 0x8C, 0x83, 0xE3, 0x09, 0xF0, 0xA3, 0xDF, 0xFA, 0x80,
-    0x64, 0x89, 0x82, 0x8A, 0x83, 0xE0, 0xA3, 0xF6, 0x08, 0xDF, 0xFA, 0x80, 0x58, 0x89, 0x82, 0x8A,
-    0x83, 0xE0, 0xA3, 0xF2, 0x08, 0xDF, 0xFA, 0x80, 0x4C, 0x80, 0xD2, 0x80, 0xFA, 0x80, 0xC6, 0x80,
-    0xD4, 0x80, 0x69, 0x80, 0xF2, 0x80, 0x33, 0x80, 0x10, 0x80, 0xA6, 0x80, 0xEA, 0x80, 0x9A, 0x80,
-    0xA8, 0x80, 0xDA, 0x80, 0xE2, 0x80, 0xCA, 0x80, 0x33, 0x89, 0x82, 0x8A, 0x83, 0xEC, 0xFA, 0xE4,
-    0x93, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCC, 0xC5, 0x83, 0xCC, 0xF0, 0xA3, 0xC8, 0xC5, 0x82, 0xC8,
-    0xCC, 0xC5, 0x83, 0xCC, 0xDF, 0xE9, 0xDE, 0xE7, 0x80, 0x0D, 0x89, 0x82, 0x8A, 0x83, 0xE4, 0x93,
-    0xA3, 0xF6, 0x08, 0xDF, 0xF9, 0xEC, 0xFA, 0xA9, 0xF0, 0xED, 0xFB, 0x22, 0x89, 0x82, 0x8A, 0x83,
-    0xEC, 0xFA, 0xE0, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCC, 0xC5, 0x83, 0xCC, 0xF0, 0xA3, 0xC8, 0xC5,
-    0x82, 0xC8, 0xCC, 0xC5, 0x83, 0xCC, 0xDF, 0xEA, 0xDE, 0xE8, 0x80, 0xDB, 0x89, 0x82, 0x8A, 0x83,
-    0xE4, 0x93, 0xA3, 0xF2, 0x08, 0xDF, 0xF9, 0x80, 0xCC, 0x88, 0xF0, 0xEF, 0x60, 0x01, 0x0E, 0x4E,
-    0x60, 0xC3, 0x88, 0xF0, 0xED, 0x24, 0x02, 0xB4, 0x04, 0x00, 0x50, 0xB9, 0xF5, 0x82, 0xEB, 0x24,
-    0x02, 0xB4, 0x04, 0x00, 0x50, 0xAF, 0x23, 0x23, 0x45, 0x82, 0x23, 0x90, 0x04, 0xB9, 0x73, 0xC2,
-    0xD5, 0xEC, 0x30, 0xE7, 0x09, 0xB2, 0xD5, 0xE4, 0xC3, 0x9D, 0xFD, 0xE4, 0x9C, 0xFC, 0xEE, 0x30,
-    0xE7, 0x15, 0xB2, 0xD5, 0xE4, 0xC3, 0x9F, 0xFF, 0xE4, 0x9E, 0xFE, 0x12, 0x06, 0x0E, 0xC3, 0xE4,
-    0x9D, 0xFD, 0xE4, 0x9C, 0xFC, 0x80, 0x03, 0x12, 0x06, 0x0E, 0x30, 0xD5, 0x07, 0xC3, 0xE4, 0x9F,
-    0xFF, 0xE4, 0x9E, 0xFE, 0x22, 0xEF, 0x4B, 0xFF, 0xEE, 0x4A, 0xFE, 0xED, 0x49, 0xFD, 0xEC, 0x48,
-    0xFC, 0x22, 0xC3, 0xE4, 0x9F, 0xFF, 0xE4, 0x9E, 0xFE, 0xE4, 0x9D, 0xFD, 0xE4, 0x9C, 0xFC, 0x22,
-    0xE8, 0x60, 0x0F, 0xEC, 0xC3, 0x13, 0xFC, 0xED, 0x13, 0xFD, 0xEE, 0x13, 0xFE, 0xEF, 0x13, 0xFF,
-    0xD8, 0xF1, 0x22, 0xE8, 0x60, 0x0F, 0xEF, 0xC3, 0x33, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD,
-    0xEC, 0x33, 0xFC, 0xD8, 0xF1, 0x22, 0xE6, 0xFC, 0x08, 0xE6, 0xFD, 0x08, 0xE6, 0xFE, 0x08, 0xE6,
-    0xFF, 0x22, 0xE4, 0x93, 0xFC, 0x74, 0x01, 0x93, 0xFD, 0x74, 0x02, 0x93, 0xFE, 0x74, 0x03, 0x93,
-    0xFF, 0x22, 0xE4, 0x93, 0xF8, 0x74, 0x01, 0x93, 0xF9, 0x74, 0x02, 0x93, 0xFA, 0x74, 0x03, 0x93,
-    0xFB, 0x22, 0xEC, 0xF6, 0x08, 0xED, 0xF6, 0x08, 0xEE, 0xF6, 0x08, 0xEF, 0xF6, 0x22, 0xBC, 0x00,
-    0x0B, 0xBE, 0x00, 0x29, 0xEF, 0x8D, 0xF0, 0x84, 0xFF, 0xAD, 0xF0, 0x22, 0xE4, 0xCC, 0xF8, 0x75,
-    0xF0, 0x08, 0xEF, 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xEC, 0x33, 0xFC, 0xEE, 0x9D, 0xEC, 0x98, 0x40,
-    0x05, 0xFC, 0xEE, 0x9D, 0xFE, 0x0F, 0xD5, 0xF0, 0xE9, 0xE4, 0xCE, 0xFD, 0x22, 0xED, 0xF8, 0xF5,
-    0xF0, 0xEE, 0x84, 0x20, 0xD2, 0x1C, 0xFE, 0xAD, 0xF0, 0x75, 0xF0, 0x08, 0xEF, 0x2F, 0xFF, 0xED,
-    0x33, 0xFD, 0x40, 0x07, 0x98, 0x50, 0x06, 0xD5, 0xF0, 0xF2, 0x22, 0xC3, 0x98, 0xFD, 0x0F, 0xD5,
-    0xF0, 0xEA, 0x22, 0x3E, 0x92, 0x48, 0xDA, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x2A, 0xAA, 0xAB, 0x40,
-    0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x98, 0x37, 0xF0, 0x3F, 0xB5, 0x04, 0xF3, 0x3F,
-    0xD7, 0x44, 0xFC, 0x3E, 0x31, 0x72, 0x17, 0x3E, 0xB1, 0x72, 0x17, 0x3F, 0x05, 0x15, 0x91, 0x3E,
-    0xDE, 0x5B, 0xD9, 0xD2, 0x00, 0x80, 0x02, 0xC2, 0x00, 0xED, 0xD2, 0xE7, 0xF8, 0xCD, 0x33, 0xEC,
-    0x33, 0x04, 0x70, 0x0B, 0xBD, 0x80, 0x05, 0x92, 0xD5, 0x02, 0x04, 0x11, 0x02, 0x04, 0x07, 0x40,
-    0xFB, 0xD3, 0x14, 0x60, 0xF2, 0xF5, 0xF0, 0x7C, 0x3F, 0xEE, 0x7A, 0x00, 0xC3, 0x94, 0x96, 0xC8,
-    0x94, 0x8B, 0x40, 0x23, 0x0A, 0xC8, 0x94, 0x69, 0xC8, 0x94, 0x1A, 0x40, 0x1A, 0x0A, 0xC8, 0x94,
-    0x68, 0xC8, 0x94, 0x1F, 0x40, 0x11, 0x0A, 0xC8, 0x94, 0x5A, 0xC8, 0x94, 0x25, 0x40, 0x08, 0x05,
-    0xF0, 0x7A, 0x00, 0xCD, 0xC2, 0xE7, 0xCD, 0xC0, 0xF0, 0x8C, 0x2D, 0x8D, 0x2E, 0x8E, 0x2F, 0x8F,
-    0x30, 0xEA, 0x23, 0x23, 0xC0, 0xE0, 0x24, 0x73, 0xF5, 0x82, 0xE4, 0x34, 0x06, 0xF5, 0x83, 0x12,
-    0x05, 0xF2, 0x12, 0x00, 0x4D, 0xEC, 0xC0, 0xE0, 0xED, 0xC0, 0xE0, 0xEE, 0xC0, 0xE0, 0xEF, 0xC0,
-    0xE0, 0x12, 0x05, 0xE2, 0xA8, 0x2D, 0xA9, 0x2E, 0xAA, 0x2F, 0xAB, 0x30, 0x12, 0x00, 0x49, 0xD0,
-    0xE0, 0xFB, 0xD0, 0xE0, 0xFA, 0xD0, 0xE0, 0xF9, 0xD0, 0xE0, 0xB2, 0xE7, 0xF8, 0x12, 0x02, 0x47,
-    0x8C, 0x2D, 0x8D, 0x2E, 0x8E, 0x2F, 0x8F, 0x30, 0x90, 0x06, 0x63, 0x74, 0x03, 0x12, 0x04, 0x1C,
-    0xA8, 0x2D, 0xA9, 0x2E, 0xAA, 0x2F, 0xAB, 0x30, 0x12, 0x01, 0x3E, 0xD0, 0xE0, 0x60, 0x0F, 0x24,
-    0x7F, 0xF5, 0x82, 0xE4, 0x34, 0x06, 0xF5, 0x83, 0x12, 0x05, 0xF2, 0x12, 0x00, 0x4D, 0x8C, 0x2D,
-    0x8D, 0x2E, 0x8E, 0x2F, 0x8F, 0x30, 0xD0, 0xE0, 0xC3, 0x94, 0x7F, 0xFD, 0xE4, 0x94, 0x00, 0xFC,
-    0x12, 0x03, 0x62, 0x7B, 0x18, 0x7A, 0x72, 0x79, 0x31, 0x78, 0x3F, 0x12, 0x01, 0x3E, 0xA8, 0x2D,
-    0xA9, 0x2E, 0xAA, 0x2F, 0xAB, 0x30, 0x12, 0x00, 0x4D, 0x30, 0x00, 0x0B, 0x7B, 0xD9, 0x7A, 0x5B,
-    0x79, 0xDE, 0x78, 0x3E, 0x12, 0x01, 0x3E, 0x22, 0x78, 0x7F, 0xE4, 0xF6, 0xD8, 0xFD, 0x75, 0x81,
-    0x5F, 0x02, 0x07, 0xDF, 0x02, 0x1E, 0x4F, 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,
-    0x00, 0x03, 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, 0x01, 0x1C, 0x01, 0x1D, 0x01, 0x1E, 0x01, 0x1F, 0x01, 0x20, 0x01, 0x21,
-    0x01, 0x22, 0x01, 0x23, 0xAD, 0x43, 0x04, 0x00, 0x07, 0x80, 0x36, 0x40, 0xB9, 0xFF, 0x34, 0x04,
-    0x03, 0x3F, 0x06, 0x7B, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xFA, 0xFF, 0xF5, 0xFF, 0xF0,
-    0xFF, 0xEC, 0xFF, 0xEA, 0xFF, 0xEA, 0xFF, 0xEC, 0xFF, 0xF2, 0xFF, 0xFB, 0x00, 0x06, 0x00, 0x14,
-    0x00, 0x22, 0x00, 0x2E, 0x00, 0x38, 0x00, 0x3D, 0x00, 0x3A, 0x00, 0x30, 0x00, 0x1D, 0x00, 0x03,
-    0xFF, 0xE3, 0xFF, 0xC1, 0xFF, 0xA0, 0xFF, 0x85, 0xFF, 0x74, 0xFF, 0x72, 0xFF, 0x80, 0xFF, 0xA2,
-    0xFF, 0xD4, 0x00, 0x14, 0x00, 0x5D, 0x00, 0xA7, 0x00, 0xE8, 0x01, 0x18, 0x01, 0x2E, 0x01, 0x23,
-    0x00, 0xF4, 0x00, 0x9F, 0x00, 0x29, 0xFF, 0x9A, 0xFE, 0xFE, 0xFE, 0x67, 0xFD, 0xE5, 0xFD, 0x8C,
-    0xFD, 0x6E, 0xFD, 0x9A, 0xFE, 0x1A, 0xFE, 0xF3, 0x00, 0x22, 0x01, 0x9D, 0x03, 0x54, 0x05, 0x30,
-    0x07, 0x16, 0x08, 0xE8, 0x0A, 0x89, 0x0B, 0xDE, 0x0C, 0xCD, 0x0D, 0x49, 0x00, 0x82, 0x00, 0x85,
-    0x00, 0xAE, 0x01, 0x01, 0x02, 0x00, 0x02, 0x08, 0x00, 0x84, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00,
-    0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x07, 0xF0, 0x00, 0x18, 0x01,
-    0x00, 0x0C, 0x21, 0x0B, 0xF8, 0x3F, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x0E, 0x01, 0x0F, 0x01, 0x10,
-    0x01, 0x11, 0x01, 0x12, 0x01, 0x13, 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x01, 0x18, 0x01, 0x19,
-    0x02, 0x01, 0x02, 0x02, 0x04, 0x00, 0x04, 0x01, 0x04, 0x02, 0x04, 0x03, 0x04, 0x04, 0x04, 0x05,
-    0x04, 0x06, 0x04, 0x07, 0x04, 0x08, 0x04, 0x09, 0x04, 0x0A, 0x04, 0x0B, 0x04, 0x0C, 0x04, 0x0D,
-    0x04, 0x0E, 0x04, 0x40, 0x04, 0x41, 0x04, 0x42, 0x04, 0x43, 0x88, 0xE5, 0x00, 0xDE, 0x20, 0x40,
-    0x30, 0x42, 0x0B, 0xFF, 0x00, 0x83, 0x40, 0x32, 0x03, 0xDF, 0x00, 0x05, 0x81, 0x80, 0x28, 0x0C,
-    0x21, 0x8C, 0x31, 0x80, 0x07, 0xFF, 0x07, 0xFF, 0x00, 0x81, 0x07, 0xFF, 0x07, 0xFF, 0x40, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
-    0x00, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82,
-    0x00, 0x85, 0x00, 0xAE, 0x01, 0x00, 0x01, 0x01, 0x01, 0x08, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x10,
-    0x01, 0x13, 0x01, 0x15, 0x01, 0x19, 0x02, 0x00, 0x02, 0x08, 0x04, 0x00, 0x04, 0x03, 0x04, 0x07,
-    0x04, 0x0A, 0x04, 0x0C, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x26,
-    0x00, 0x00, 0x00, 0x40, 0x00, 0x1F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x20, 0x70,
-    0x00, 0x00, 0x40, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x98, 0x00, 0x08, 0x00, 0x07, 0xF0, 0x00,
-    0x00, 0x01, 0x18, 0x01, 0xFF, 0xFF, 0x00, 0x1A, 0x00, 0x40, 0x00, 0x1F, 0x00, 0x3C, 0xC0, 0x00,
-    0x80, 0x00, 0x01, 0x8C, 0xE1, 0x70, 0x60, 0x00, 0x70, 0x00, 0x07, 0x00, 0x30, 0x07, 0xC0, 0xD8,
-    0xB0, 0x00, 0x00, 0x00, 0x01, 0x0E, 0xD7, 0x01, 0x0E, 0x60, 0x02, 0x04, 0xF8, 0x02, 0x04, 0x70,
-    0x02, 0x03, 0xB0, 0x04, 0x03, 0xB0, 0x02, 0x02, 0xA0, 0x02, 0x01, 0xA0, 0x04, 0x02, 0xA0, 0x04,
-    0x01, 0xA0, 0xE4, 0xF9, 0xE9, 0x25, 0xE0, 0x24, 0x24, 0xF5, 0x82, 0xE4, 0x34, 0x08, 0x12, 0x00,
-    0x30, 0xE9, 0x25, 0xE0, 0x24, 0x34, 0xF5, 0x82, 0xE4, 0x34, 0x08, 0x12, 0x18, 0x54, 0xFD, 0xB1,
-    0xB2, 0x09, 0xB9, 0x08, 0xDF, 0x22, 0xF1, 0xA9, 0x8E, 0x25, 0x8F, 0x26, 0xE4, 0xF5, 0x27, 0x12,
-    0x00, 0x25, 0xC0, 0x06, 0xC0, 0x07, 0x12, 0x00, 0x25, 0xF1, 0xAD, 0xE5, 0x27, 0x25, 0xE0, 0x24,
-    0xBA, 0xF5, 0x82, 0xE4, 0x34, 0x09, 0x12, 0x18, 0x54, 0xF1, 0xFA, 0xFF, 0xE5, 0x27, 0x25, 0xE0,
-    0x24, 0x94, 0xF5, 0x82, 0xE4, 0x34, 0x09, 0x12, 0x1F, 0x75, 0xD0, 0x07, 0xD0, 0x06, 0xB1, 0xB2,
-    0x05, 0x27, 0xE5, 0x27, 0xC3, 0x94, 0x13, 0x40, 0xC6, 0xE4, 0xFB, 0xFA, 0x7D, 0x20, 0x7F, 0x0A,
-    0x7E, 0x04, 0x71, 0x97, 0x7D, 0xA6, 0x7F, 0x84, 0x7E, 0x00, 0x12, 0x12, 0xB7, 0x8E, 0x27, 0x8F,
-    0x28, 0xAB, 0x28, 0xAA, 0x27, 0x7D, 0xA6, 0x7F, 0x84, 0x7E, 0x00, 0x71, 0x97, 0x12, 0x1F, 0x8D,
-    0x8F, 0x27, 0xE5, 0x27, 0xB4, 0x02, 0x0D, 0x7B, 0x01, 0x7A, 0x00, 0x7D, 0xAA, 0xF1, 0xEE, 0xE4,
-    0xFB, 0xFA, 0x80, 0x10, 0xE5, 0x27, 0xB4, 0x03, 0x11, 0xE4, 0xFB, 0xFA, 0x7D, 0xAA, 0xF1, 0xEE,
-    0x7B, 0x01, 0x7A, 0x00, 0x7D, 0xBB, 0xF1, 0xEE, 0x80, 0x05, 0x7E, 0x00, 0x7F, 0x01, 0x22, 0x7B,
-    0x02, 0x71, 0x8F, 0x7D, 0x66, 0x7F, 0x1C, 0x12, 0x1D, 0x77, 0x4E, 0x70, 0x38, 0x7B, 0x01, 0xFA,
-    0x7D, 0x10, 0x7F, 0x20, 0xFE, 0x71, 0x97, 0x12, 0x1B, 0xE3, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06,
-    0xC0, 0x07, 0xF1, 0x0C, 0x12, 0x1A, 0x8C, 0xD0, 0x07, 0xD0, 0x06, 0xD0, 0x05, 0xD0, 0x04, 0x12,
-    0x00, 0x49, 0x78, 0xCB, 0x12, 0x1F, 0x42, 0xC2, 0x00, 0x91, 0x06, 0x8F, 0x24, 0xE5, 0x24, 0x60,
-    0x37, 0x24, 0x40, 0x80, 0x47, 0xC2, 0x00, 0x12, 0x1B, 0xE8, 0x8F, 0x2A, 0x8E, 0x29, 0x8D, 0x28,
-    0x8C, 0x27, 0x7B, 0x02, 0x71, 0x8F, 0x51, 0x02, 0xD2, 0x00, 0xF1, 0x0C, 0xAB, 0x2A, 0xAA, 0x29,
-    0xA9, 0x28, 0xA8, 0x27, 0x12, 0x00, 0x4D, 0x78, 0x4B, 0x12, 0x1F, 0x42, 0x91, 0x06, 0x8F, 0x24,
-    0xE5, 0x24, 0x60, 0x04, 0x24, 0x50, 0x80, 0x14, 0xAD, 0x26, 0xAC, 0x25, 0xB1, 0xAE, 0x12, 0x17,
-    0xFC, 0x12, 0x18, 0x75, 0x8F, 0x24, 0xE5, 0x24, 0x60, 0x07, 0x24, 0x30, 0xFF, 0xE4, 0x33, 0xFE,
-    0x22, 0x12, 0x18, 0x24, 0xD2, 0x00, 0x75, 0x2F, 0x40, 0x75, 0x2E, 0x54, 0x75, 0x2D, 0x09, 0x75,
-    0x2C, 0x4B, 0x12, 0x1B, 0x01, 0xF1, 0x0A, 0x12, 0x1A, 0xEE, 0xE5, 0x26, 0x54, 0x03, 0x64, 0x02,
-    0x70, 0x19, 0x7B, 0x01, 0x7D, 0x10, 0x7F, 0x20, 0x12, 0x1F, 0x00, 0xE4, 0xFB, 0xFA, 0x7D, 0x11,
-    0x7F, 0x82, 0xFE, 0x71, 0x97, 0xAD, 0x26, 0xAC, 0x25, 0xB1, 0xAE, 0xE4, 0xFE, 0xFF, 0x22, 0x7A,
-    0x00, 0x7D, 0x10, 0x7F, 0x20, 0x7E, 0x00, 0x8A, 0x59, 0x8B, 0x5A, 0xA9, 0x05, 0x8F, 0x82, 0x8E,
-    0x83, 0xF1, 0xAD, 0xAD, 0x07, 0xAC, 0x06, 0xE9, 0xC4, 0x54, 0x0F, 0xFF, 0xE9, 0x54, 0x0F, 0xFB,
-    0xC3, 0xEF, 0x9B, 0x12, 0x17, 0xB6, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9,
-    0xF4, 0xFF, 0xEE, 0xF4, 0xFE, 0xEF, 0xA8, 0x03, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE,
-    0xD8, 0xF9, 0xF5, 0x5C, 0x8E, 0x5B, 0xE9, 0x54, 0x0F, 0xFF, 0xE5, 0x5A, 0xAE, 0x59, 0xA8, 0x07,
-    0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0xE5, 0x5B, 0x5E, 0xFE, 0xE5,
-    0x5C, 0x5F, 0xFF, 0xE5, 0x5C, 0xF4, 0xFB, 0xE5, 0x5B, 0xF4, 0x5C, 0xFC, 0xEB, 0x12, 0x1F, 0xAA,
-    0xAF, 0x82, 0xAE, 0x83, 0xA1, 0xB2, 0xF1, 0xA9, 0x8E, 0x2F, 0x8F, 0x30, 0x7A, 0x00, 0x30, 0x00,
-    0x04, 0x7B, 0x02, 0x80, 0x02, 0x7B, 0x01, 0x71, 0x91, 0x75, 0x35, 0x06, 0xE5, 0x35, 0x12, 0x1C,
-    0xC2, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFD, 0xAC, 0x06, 0xEC, 0x12,
-    0x03, 0x62, 0xAB, 0x2E, 0xAA, 0x2D, 0xA9, 0x2C, 0xA8, 0x2B, 0x12, 0x1A, 0x7D, 0x7F, 0x66, 0x7E,
-    0x7F, 0x7D, 0x62, 0x12, 0x1A, 0x4F, 0x40, 0x0D, 0x7F, 0x26, 0x7E, 0xE5, 0x7D, 0xE5, 0x12, 0x1A,
-    0x4F, 0x60, 0x0D, 0x40, 0x0B, 0x15, 0x35, 0xC3, 0xE5, 0x35, 0x64, 0x80, 0x94, 0x80, 0x50, 0xBC,
-    0xE5, 0x35, 0xFB, 0x33, 0x95, 0xE0, 0xFA, 0x7D, 0x86, 0x7F, 0x1F, 0x12, 0x1A, 0x44, 0x7E, 0x00,
-    0x60, 0x06, 0x40, 0x04, 0x7F, 0x01, 0x80, 0x02, 0x7F, 0x00, 0xEF, 0x24, 0x01, 0xFD, 0xE4, 0x3E,
-    0xFC, 0x12, 0x03, 0x62, 0x12, 0x1D, 0xEC, 0x12, 0x01, 0x3E, 0x12, 0x1A, 0x8C, 0x12, 0x1A, 0x69,
-    0x12, 0x1D, 0x98, 0x12, 0x03, 0x9B, 0xE4, 0x12, 0x03, 0x5D, 0x12, 0x1A, 0x8C, 0x12, 0x1D, 0x86,
-    0x12, 0x00, 0x49, 0xE4, 0xFB, 0xFA, 0x79, 0x80, 0x78, 0x49, 0x12, 0x1C, 0xB5, 0x12, 0x1D, 0x8F,
-    0xE4, 0xFF, 0xFE, 0x7D, 0x80, 0x7C, 0xC0, 0xAB, 0x39, 0xAA, 0x38, 0xA9, 0x37, 0xA8, 0x36, 0x12,
-    0x1A, 0x3E, 0xAB, 0x07, 0xAA, 0x06, 0x7D, 0xD4, 0x7F, 0x1E, 0x7E, 0x01, 0x71, 0x97, 0xE5, 0x3D,
-    0xFF, 0xE5, 0x3C, 0xFE, 0xE4, 0xAB, 0x07, 0xAA, 0x06, 0x7D, 0xF0, 0x7F, 0x1D, 0x7E, 0x01, 0x71,
-    0x97, 0x12, 0x1A, 0xDC, 0xAC, 0x3A, 0x12, 0x1D, 0xAA, 0x7F, 0x1E, 0x12, 0x1A, 0x44, 0x7A, 0x00,
-    0x60, 0x06, 0x40, 0x04, 0x7B, 0x01, 0x80, 0x02, 0x7B, 0x00, 0x7D, 0xAA, 0x12, 0x1F, 0x23, 0xC2,
-    0x01, 0x78, 0x32, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0xFF, 0x7A, 0x00, 0x79, 0x20, 0x12, 0x14, 0xEC,
-    0xE4, 0xF5, 0x31, 0xE5, 0x31, 0xFB, 0x33, 0x95, 0xE0, 0x7D, 0x21, 0x12, 0x1F, 0x54, 0x7F, 0x01,
-    0x30, 0x00, 0x02, 0x7F, 0x02, 0x12, 0x10, 0x97, 0xEF, 0x70, 0x13, 0x7D, 0xA3, 0x7F, 0x21, 0x12,
-    0x1D, 0x77, 0x24, 0x80, 0xFF, 0x74, 0x32, 0x25, 0x31, 0xF8, 0xA6, 0x07, 0xD2, 0x01, 0x05, 0x31,
-    0xC3, 0xE5, 0x31, 0x64, 0x80, 0x94, 0x83, 0x40, 0xCA, 0x75, 0x31, 0x02, 0x12, 0x1F, 0x34, 0xC0,
-    0x06, 0xC0, 0x07, 0xAF, 0x32, 0xEF, 0x12, 0x1F, 0x3B, 0xD0, 0x05, 0xD0, 0x04, 0x12, 0x1F, 0x69,
-    0x50, 0x03, 0xE4, 0xF5, 0x31, 0x12, 0x1F, 0x34, 0xC0, 0x06, 0xC0, 0x07, 0xAF, 0x33, 0xEF, 0x12,
-    0x1F, 0x3B, 0xD0, 0x05, 0xD0, 0x04, 0x12, 0x1F, 0x69, 0x50, 0x03, 0x75, 0x31, 0x01, 0xE5, 0x31,
-    0xFB, 0x33, 0x95, 0xE0, 0xFA, 0x7D, 0x21, 0x12, 0x1F, 0x55, 0x74, 0x32, 0x25, 0x31, 0xF8, 0xE6,
-    0xFF, 0x33, 0x95, 0xE0, 0xFE, 0xEF, 0x24, 0x80, 0xFB, 0xE4, 0x3E, 0x7D, 0xA3, 0x12, 0x1F, 0x54,
-    0xAD, 0x30, 0xAC, 0x2F, 0xB1, 0xAE, 0x7F, 0x00, 0x20, 0x01, 0x02, 0x7F, 0x02, 0x22, 0x7F, 0x20,
-    0x7E, 0x00, 0xAB, 0x05, 0xAA, 0x04, 0xC2, 0xA0, 0xC2, 0xA1, 0xEE, 0x44, 0x80, 0xFE, 0x12, 0x1E,
-    0xE1, 0xAF, 0x03, 0xAE, 0x02, 0x12, 0x1E, 0xE1, 0xD2, 0xA1, 0xD2, 0xA2, 0x22, 0x79, 0x01, 0xF1,
-    0xA9, 0x8E, 0x22, 0x8F, 0x23, 0xE4, 0xF5, 0x24, 0x12, 0x1F, 0x81, 0x12, 0x00, 0x30, 0xC0, 0x06,
-    0xC0, 0x07, 0x12, 0x1F, 0x81, 0x12, 0x00, 0x30, 0xF1, 0xAD, 0xE5, 0x24, 0x25, 0xE0, 0x24, 0xD8,
-    0xF5, 0x82, 0xE4, 0x34, 0x08, 0x12, 0x18, 0x54, 0xF1, 0xFA, 0xFF, 0xE5, 0x24, 0x25, 0xE0, 0x24,
-    0xCA, 0xF5, 0x82, 0xE4, 0x34, 0x08, 0x12, 0x1F, 0x75, 0xD0, 0x07, 0xD0, 0x06, 0x12, 0x1F, 0xB3,
-    0x94, 0x07, 0x40, 0xC4, 0xE4, 0xF5, 0x24, 0xE5, 0x24, 0x25, 0xE0, 0x24, 0xE6, 0xF5, 0x82, 0xE4,
-    0x34, 0x08, 0x12, 0x00, 0x30, 0xE5, 0x24, 0x25, 0xE0, 0x24, 0x2A, 0xF5, 0x82, 0xE4, 0x34, 0x09,
-    0x12, 0x18, 0x54, 0xFD, 0x12, 0x1F, 0xB3, 0x94, 0x22, 0x40, 0xDC, 0x12, 0x18, 0x24, 0x12, 0x18,
-    0x75, 0xA9, 0x07, 0xE9, 0x60, 0x01, 0x22, 0x85, 0x22, 0x5E, 0x85, 0x23, 0x5F, 0x7B, 0x01, 0x12,
-    0x10, 0x2B, 0x12, 0x1B, 0xE3, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0xF1, 0x0C, 0x12,
-    0x1A, 0x8C, 0xD0, 0x07, 0xD0, 0x06, 0xD0, 0x05, 0xD0, 0x04, 0x12, 0x00, 0x49, 0x7B, 0x00, 0x7A,
-    0x24, 0x79, 0x74, 0x78, 0xC9, 0x12, 0x00, 0x4D, 0x12, 0x1D, 0xA1, 0xC2, 0x00, 0x12, 0x1F, 0x4B,
-    0x91, 0x06, 0xA9, 0x07, 0xE9, 0x60, 0x04, 0x24, 0x50, 0xFF, 0x22, 0xE5, 0x23, 0x30, 0xE1, 0x09,
-    0xE4, 0xFB, 0x7D, 0x11, 0x7F, 0x82, 0x12, 0x1F, 0x00, 0x85, 0x22, 0x5E, 0x85, 0x23, 0x5F, 0x7B,
-    0x02, 0x12, 0x10, 0x2B, 0x7A, 0x00, 0x12, 0x1F, 0x1F, 0xAD, 0x23, 0xAC, 0x22, 0xB1, 0xAE, 0x12,
-    0x17, 0xFC, 0xD2, 0x00, 0xF1, 0x0C, 0x12, 0x1A, 0xF9, 0x7D, 0xBA, 0x7F, 0x03, 0x7E, 0x01, 0x12,
-    0x12, 0xB7, 0x8F, 0x24, 0xE5, 0x24, 0x64, 0x01, 0x60, 0x09, 0xE5, 0x24, 0x64, 0x02, 0x60, 0x03,
-    0x7F, 0x05, 0x22, 0xE5, 0x24, 0x24, 0x01, 0xFB, 0xE4, 0x33, 0xFA, 0x7D, 0x87, 0xF1, 0xF4, 0xE5,
-    0x24, 0x64, 0x03, 0xFB, 0x7A, 0x00, 0x7D, 0x65, 0x12, 0x1E, 0xF9, 0xE5, 0x24, 0x64, 0x03, 0x7D,
-    0x43, 0x7F, 0x0D, 0x12, 0x1D, 0x7E, 0x7F, 0x00, 0x22, 0x7F, 0x0C, 0x7E, 0x04, 0x71, 0x97, 0xE4,
-    0xFB, 0xFA, 0x7D, 0x77, 0x7F, 0x0C, 0x7E, 0x04, 0x71, 0x97, 0xC2, 0x00, 0xE4, 0xFB, 0xFA, 0x79,
-    0xA0, 0x78, 0x40, 0xAF, 0x10, 0xAE, 0x0F, 0xAD, 0x0E, 0xAC, 0x0D, 0x02, 0x02, 0x47, 0xF1, 0xA9,
-    0x8E, 0x22, 0x8F, 0x23, 0x12, 0x00, 0x23, 0x51, 0x26, 0x8F, 0x21, 0xE5, 0x21, 0x70, 0x6A, 0x12,
-    0x14, 0xF3, 0x12, 0x1F, 0x8D, 0xBF, 0x02, 0x0D, 0xE4, 0x7D, 0x55, 0x12, 0x1E, 0xF7, 0xE4, 0xFB,
-    0xFA, 0x7D, 0x33, 0x80, 0x0B, 0xE4, 0x7D, 0x66, 0x12, 0x1E, 0xF7, 0xE4, 0xFB, 0xFA, 0x7D, 0x44,
-    0xF1, 0xF4, 0x7B, 0x02, 0x71, 0x8F, 0x7D, 0x66, 0x7F, 0x1C, 0x12, 0x1D, 0x77, 0x4E, 0x70, 0x10,
-    0xFA, 0x12, 0x1F, 0x1F, 0x7B, 0x01, 0x71, 0x8F, 0xE4, 0xFB, 0xFA, 0x7D, 0x11, 0x12, 0x1F, 0x23,
-    0xAD, 0x23, 0xAC, 0x22, 0xB1, 0xAE, 0xAF, 0x10, 0xAE, 0x0F, 0xAD, 0x0E, 0xAC, 0x0D, 0x12, 0x1D,
-    0x08, 0x7B, 0x01, 0x7A, 0x00, 0x7D, 0xDD, 0xD1, 0xF9, 0x7B, 0x00, 0x7A, 0x50, 0x79, 0xC3, 0x78,
-    0x47, 0x12, 0x1A, 0xF6, 0xC2, 0x00, 0x12, 0x14, 0x23, 0xE5, 0x21, 0x60, 0x06, 0x12, 0x00, 0x24,
-    0xAF, 0x21, 0x22, 0x12, 0x00, 0x24, 0x7F, 0x00, 0x22, 0x7F, 0x20, 0x7E, 0x00, 0xE4, 0xFB, 0xFA,
-    0xC2, 0xA0, 0xC2, 0xA1, 0xEE, 0x54, 0x7F, 0xFE, 0x12, 0x1E, 0xE1, 0xD2, 0xA2, 0x7D, 0x10, 0xD2,
-    0xA0, 0xEB, 0x25, 0xE0, 0xFB, 0xEA, 0x33, 0xFA, 0x30, 0xA3, 0x03, 0x43, 0x03, 0x01, 0xC2, 0xA0,
-    0xDD, 0xED, 0xD2, 0xA1, 0xD2, 0xA2, 0xAE, 0x02, 0xAF, 0x03, 0x22, 0xC3, 0xEF, 0x64, 0x80, 0x94,
-    0x80, 0x40, 0x02, 0x80, 0x08, 0xEF, 0x12, 0x1F, 0x3B, 0xEF, 0x44, 0x40, 0xFF, 0x22, 0x7F, 0x03,
-    0x7E, 0x01, 0x61, 0x97, 0x7F, 0x0D, 0x7E, 0x01, 0x61, 0x97, 0xF4, 0xFD, 0xEC, 0xF4, 0x5E, 0xFE,
-    0xEF, 0x5D, 0x22, 0x8E, 0x50, 0x8F, 0x51, 0xA9, 0x05, 0x12, 0x0F, 0xAD, 0x8E, 0x52, 0x8F, 0x53,
-    0xAD, 0x01, 0x51, 0xFD, 0xE4, 0xFB, 0xFA, 0xAF, 0x51, 0xAE, 0x50, 0x11, 0x33, 0xAD, 0x01, 0x51,
-    0xFD, 0x7B, 0x01, 0x7A, 0x00, 0xAF, 0x51, 0xAE, 0x50, 0x80, 0x08, 0x7A, 0x00, 0x7D, 0x10, 0x7F,
-    0x20, 0x7E, 0x00, 0x8E, 0x59, 0x8F, 0x5A, 0xED, 0xC4, 0x54, 0x0F, 0xFF, 0xED, 0x54, 0x0F, 0xFC,
-    0xC3, 0xEF, 0x9C, 0xF1, 0xB6, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xF4,
-    0xFF, 0xEE, 0xF4, 0xFE, 0xEF, 0xA8, 0x04, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8,
-    0xF9, 0xF5, 0x82, 0x8E, 0x83, 0xED, 0x54, 0x0F, 0xFF, 0xEB, 0xAE, 0x02, 0xA8, 0x07, 0x08, 0x80,
-    0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0xEE, 0x55, 0x83, 0xFE, 0xEF, 0x55, 0x82,
-    0xFF, 0xE5, 0x82, 0xF4, 0xFD, 0xE5, 0x83, 0xF4, 0x55, 0x5E, 0xFC, 0xE5, 0x5F, 0x12, 0x1F, 0xAA,
-    0xAF, 0x5A, 0xAE, 0x59, 0x02, 0x0D, 0xB2, 0x8F, 0x44, 0xE5, 0x44, 0x60, 0x19, 0xE4, 0xFB, 0xFA,
-    0x7D, 0x21, 0x12, 0x1F, 0x23, 0x75, 0x4D, 0x01, 0x75, 0x4E, 0x21, 0x75, 0x51, 0xA3, 0x75, 0x4F,
-    0x01, 0x75, 0x50, 0x23, 0x80, 0x1A, 0xE4, 0xFB, 0xFA, 0x7D, 0x21, 0x7F, 0x86, 0xFE, 0x12, 0x0B,
-    0x97, 0x75, 0x4D, 0x00, 0x75, 0x4E, 0x8B, 0x75, 0x51, 0x81, 0x75, 0x4F, 0x00, 0x75, 0x50, 0x8C,
-    0xAF, 0x4E, 0xAE, 0x4D, 0x12, 0x0F, 0xAD, 0x8E, 0x52, 0x8F, 0x53, 0x51, 0xFD, 0xE4, 0xFB, 0xFA,
-    0x51, 0xA7, 0xEF, 0x64, 0x03, 0x4E, 0x70, 0x03, 0x7F, 0x04, 0x22, 0x51, 0xFD, 0x7B, 0xFF, 0x7A,
-    0x00, 0x51, 0xA7, 0xEF, 0x4E, 0x70, 0x03, 0x7F, 0x04, 0x22, 0xE4, 0xF5, 0x54, 0xE5, 0x54, 0xFD,
-    0x33, 0x95, 0xE0, 0xFC, 0xED, 0x24, 0x01, 0xFF, 0xE4, 0x3C, 0xFE, 0xEF, 0x78, 0x07, 0xC3, 0x33,
-    0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0x51, 0x92, 0xA6, 0x06, 0x08, 0xA6, 0x07, 0xED, 0xAE, 0x04,
-    0x78, 0x07, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0x51, 0x87, 0xA6, 0x06, 0x08, 0xA6, 0x07,
-    0x51, 0x88, 0xE6, 0xFA, 0x08, 0xE6, 0xFB, 0x51, 0xFD, 0xF1, 0x9C, 0x75, 0x55, 0x06, 0x51, 0x88,
-    0xC0, 0x00, 0x12, 0x1F, 0x5C, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0xEC,
-    0x4E, 0xFE, 0xED, 0x4F, 0xD0, 0x00, 0xA6, 0x06, 0x08, 0xF6, 0x51, 0x88, 0x51, 0x9C, 0x8F, 0x56,
-    0xE5, 0x56, 0xB4, 0x03, 0x18, 0x51, 0x88, 0xC0, 0x00, 0x12, 0x1F, 0x5C, 0x80, 0x05, 0xC3, 0x33,
-    0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xF1, 0xD8, 0xD0, 0x00, 0xA6, 0x06, 0x08, 0xF6, 0xE5, 0x56, 0x64,
-    0x02, 0x70, 0x19, 0x51, 0x92, 0xE6, 0xFE, 0x08, 0xE6, 0x51, 0x87, 0xE6, 0xFC, 0x08, 0xE6, 0xFD,
-    0xD3, 0xD1, 0x38, 0x50, 0x07, 0x51, 0x92, 0xA6, 0x04, 0x08, 0xA6, 0x05, 0x15, 0x55, 0xC3, 0xE5,
-    0x55, 0x64, 0x80, 0x94, 0x80, 0x50, 0x97, 0x51, 0x88, 0xE6, 0xFE, 0x08, 0xE6, 0xFF, 0x51, 0x92,
-    0xE6, 0xFC, 0x08, 0xE6, 0xFD, 0xD3, 0xD1, 0x38, 0x50, 0x30, 0xAF, 0x54, 0xEF, 0x33, 0x95, 0xE0,
-    0xFE, 0xEF, 0x78, 0x07, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFF, 0xD1, 0x36, 0x40, 0x1A,
-    0x51, 0x92, 0x08, 0xE6, 0x16, 0x18, 0x70, 0x01, 0x16, 0x51, 0x9C, 0xEF, 0x64, 0x02, 0x4E, 0x60,
-    0xC6, 0x51, 0x92, 0x08, 0x06, 0xE6, 0x18, 0x70, 0x01, 0x06, 0x05, 0x54, 0xC3, 0xE5, 0x54, 0x64,
-    0x80, 0x94, 0x82, 0x50, 0x02, 0x01, 0xFD, 0xE5, 0x4C, 0x24, 0xFF, 0xFF, 0xE5, 0x4B, 0x34, 0xFF,
-    0xFE, 0xEF, 0xB5, 0x46, 0x12, 0xEE, 0xB5, 0x45, 0x0E, 0x85, 0x49, 0x54, 0x85, 0x4A, 0x55, 0x85,
-    0x47, 0x56, 0x85, 0x48, 0x57, 0x80, 0x34, 0xC3, 0xE5, 0x46, 0x95, 0x48, 0xFF, 0xE5, 0x45, 0x95,
-    0x47, 0xFE, 0xC3, 0xE5, 0x4A, 0x95, 0x4C, 0xFD, 0xE5, 0x49, 0x95, 0x4B, 0xFC, 0xD1, 0x36, 0x7F,
-    0x00, 0x40, 0x02, 0x7F, 0x01, 0x8F, 0x58, 0xEF, 0x51, 0x8A, 0xE6, 0xF5, 0x54, 0x08, 0xE6, 0xF5,
-    0x55, 0xEF, 0x51, 0x94, 0xE6, 0xF5, 0x56, 0x08, 0xE6, 0xF5, 0x57, 0xF1, 0xA4, 0xE5, 0x57, 0x2F,
-    0xFB, 0xE5, 0x56, 0x3E, 0xFA, 0x51, 0xA1, 0xEF, 0x64, 0x02, 0x4E, 0x60, 0x16, 0xF1, 0xA4, 0xE5,
-    0x57, 0x2F, 0xCF, 0xE5, 0x56, 0x3E, 0xCF, 0x24, 0x01, 0xFB, 0xE4, 0x3F, 0xFA, 0x51, 0xFD, 0xF1,
-    0x9C, 0x80, 0x03, 0x7F, 0x00, 0x22, 0x51, 0xAF, 0xEF, 0x64, 0x02, 0x4E, 0x60, 0x06, 0xE5, 0x44,
-    0x24, 0x21, 0xFF, 0x22, 0x7F, 0x00, 0x22, 0xFF, 0xE5, 0x54, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x45,
-    0xF8, 0x22, 0xE5, 0x54, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x47, 0xF8, 0x22, 0xE6, 0xFA, 0x08, 0xE6,
-    0xFB, 0x85, 0x52, 0x5E, 0x85, 0x53, 0x5F, 0xAD, 0x51, 0xAF, 0x4E, 0xAE, 0x4D, 0x11, 0x33, 0x51,
-    0xE6, 0x7D, 0xDC, 0xAF, 0x50, 0xAE, 0x4F, 0xA9, 0x05, 0x12, 0x0F, 0xAD, 0xAC, 0x06, 0xAD, 0x07,
-    0xE9, 0xC4, 0x54, 0x0F, 0xF1, 0xB6, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9,
-    0xF1, 0xD8, 0xFF, 0xE9, 0x54, 0x0F, 0xFD, 0xEF, 0xA8, 0x05, 0x08, 0x80, 0x05, 0xCE, 0xC3, 0x13,
-    0xCE, 0x13, 0xD8, 0xF9, 0xFF, 0x22, 0xE4, 0xF5, 0x59, 0xFF, 0xFE, 0xE5, 0x59, 0x25, 0xE0, 0xF5,
-    0x59, 0x0F, 0xBF, 0x00, 0x01, 0x0E, 0xBE, 0x01, 0xF2, 0xBF, 0x90, 0xEF, 0x22, 0x85, 0x52, 0x5E,
-    0x85, 0x53, 0x5F, 0x22, 0x8F, 0x40, 0x74, 0xFF, 0xF5, 0x41, 0xF5, 0x42, 0xA8, 0x07, 0xE8, 0x24,
-    0x05, 0xF8, 0xE6, 0xF5, 0x45, 0x08, 0xE6, 0xF5, 0x46, 0xA8, 0x07, 0xE8, 0x24, 0x07, 0xF8, 0xE6,
-    0xF5, 0x47, 0x08, 0xE6, 0xF5, 0x48, 0xA8, 0x07, 0xE6, 0xF5, 0x4B, 0x08, 0xE6, 0xF5, 0x4C, 0xA8,
-    0x07, 0xE8, 0x24, 0x02, 0xF8, 0xE6, 0xF5, 0x4D, 0xAF, 0x4C, 0xAE, 0x4B, 0x12, 0x0F, 0xAD, 0x8E,
-    0x4E, 0x8F, 0x4F, 0xA8, 0x40, 0xE6, 0xFE, 0x08, 0xE6, 0xFF, 0x90, 0x09, 0xE4, 0x74, 0x01, 0x93,
-    0xB5, 0x07, 0x08, 0xE4, 0x93, 0xB5, 0x06, 0x03, 0xD3, 0x80, 0x01, 0xC3, 0x92, 0x02, 0xD1, 0x55,
-    0xF1, 0x08, 0x8F, 0x44, 0xC3, 0xE5, 0x48, 0x95, 0x46, 0xFF, 0xE5, 0x47, 0x95, 0x45, 0xFE, 0xC3,
-    0xEF, 0x94, 0x01, 0xEE, 0x64, 0x80, 0x94, 0x80, 0x40, 0x4B, 0xF1, 0xAF, 0x8E, 0x49, 0x8F, 0x4A,
-    0xF1, 0x94, 0x95, 0x43, 0x50, 0x08, 0xD1, 0x55, 0xF1, 0x08, 0x8F, 0x44, 0x80, 0x0E, 0xAF, 0x46,
-    0xAE, 0x45, 0xD1, 0x59, 0x11, 0x33, 0x71, 0xED, 0x8E, 0x41, 0x8F, 0x42, 0xE5, 0x4A, 0x45, 0x49,
-    0x60, 0x23, 0xF1, 0x94, 0x95, 0x43, 0x50, 0x0F, 0xC3, 0xE5, 0x48, 0x95, 0x4A, 0xF5, 0x48, 0xE5,
-    0x47, 0x95, 0x49, 0xF5, 0x47, 0x80, 0xAD, 0xE5, 0x4A, 0x25, 0x46, 0xF5, 0x46, 0xE5, 0x49, 0x35,
-    0x45, 0xF5, 0x45, 0x80, 0x9F, 0xF1, 0x94, 0x95, 0x43, 0x50, 0x06, 0xAE, 0x45, 0xAF, 0x46, 0x80,
-    0x04, 0xAE, 0x47, 0xAF, 0x48, 0xE5, 0x40, 0x24, 0x03, 0xF8, 0xA6, 0x06, 0x08, 0xA6, 0x07, 0xE5,
-    0x40, 0x24, 0x03, 0xF8, 0xE6, 0xFE, 0x08, 0xE6, 0xFF, 0xD1, 0x59, 0x01, 0x33, 0xF1, 0x7D, 0xF1,
-    0x7D, 0xF1, 0x7D, 0x7D, 0xFF, 0x7F, 0x00, 0x7E, 0x04, 0x11, 0x03, 0x7F, 0x0F, 0x7E, 0x04, 0x12,
-    0x0F, 0xAD, 0xEF, 0x78, 0x02, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xF5, 0x82, 0x8E, 0x83,
-    0x7F, 0x0E, 0x7E, 0x04, 0x12, 0x0F, 0xAD, 0xEF, 0x54, 0x03, 0xFF, 0xE5, 0x83, 0xFE, 0xE5, 0x82,
-    0x4F, 0xFF, 0x22, 0xF1, 0xEA, 0x30, 0x00, 0x14, 0x7A, 0x09, 0x79, 0xF6, 0x91, 0xEC, 0x7A, 0x09,
-    0x79, 0xF9, 0x91, 0xE4, 0xF1, 0xCF, 0x7A, 0x09, 0x79, 0xF0, 0x80, 0x12, 0x7A, 0x09, 0x79, 0xFC,
-    0x91, 0xEC, 0x7A, 0x09, 0x79, 0xFF, 0x91, 0xE4, 0xF1, 0xCF, 0x7A, 0x09, 0x79, 0xF3, 0x91, 0xEC,
-    0x75, 0x31, 0x00, 0x75, 0x32, 0x80, 0x75, 0x2F, 0xFF, 0x75, 0x30, 0x80, 0x7F, 0x2A, 0x71, 0x04,
-    0x7D, 0xBF, 0xF1, 0xC6, 0x7D, 0xFF, 0xF1, 0x6A, 0x71, 0xED, 0x8E, 0x3C, 0x8F, 0x3D, 0x7D, 0xFF,
-    0xF1, 0xC6, 0x7D, 0xBF, 0xF1, 0x6A, 0x71, 0xED, 0x8E, 0x3E, 0x8F, 0x3F, 0xC3, 0xE5, 0x3D, 0x95,
-    0x3F, 0xE5, 0x3C, 0x95, 0x3E, 0x78, 0x33, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0x00, 0x50, 0x06, 0x7A,
-    0x00, 0x79, 0x24, 0x80, 0x04, 0x7A, 0x00, 0x79, 0x27, 0x91, 0xEC, 0x7D, 0xFF, 0x7C, 0x07, 0xF1,
-    0x6A, 0x75, 0x3A, 0x07, 0x75, 0x3B, 0xFF, 0x75, 0x38, 0x05, 0x75, 0x39, 0xFF, 0x7F, 0x33, 0x71,
-    0x04, 0xE5, 0x2E, 0x24, 0x10, 0xF5, 0x32, 0xE4, 0x35, 0x2D, 0xF5, 0x31, 0xE5, 0x2E, 0x24, 0xF0,
-    0xF5, 0x30, 0xE5, 0x2D, 0x34, 0xFF, 0xF5, 0x2F, 0x7F, 0x2A, 0x71, 0x04, 0xAD, 0x37, 0xAC, 0x36,
-    0xAF, 0x34, 0xAE, 0x33, 0x12, 0x0D, 0xB2, 0xAB, 0x2E, 0xAA, 0x2D, 0xAD, 0x2C, 0xAF, 0x2B, 0xAE,
-    0x2A, 0x02, 0x0B, 0x97, 0x78, 0x27, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0xFF, 0x7E, 0x00, 0x7F, 0x03,
-    0x02, 0x05, 0x39, 0xD2, 0x02, 0xE4, 0xFB, 0xFA, 0xF1, 0x76, 0x7B, 0x01, 0x7A, 0x00, 0x7D, 0x22,
-    0xF1, 0x24, 0xE4, 0xFB, 0xFA, 0x7D, 0xED, 0xFF, 0x7E, 0x04, 0x12, 0x0B, 0x97, 0x7F, 0x20, 0x12,
-    0x0F, 0xDB, 0xEF, 0x75, 0xF0, 0x80, 0xA4, 0xFF, 0xAE, 0xF0, 0xC0, 0x07, 0xC0, 0x06, 0x7F, 0x20,
-    0x12, 0x0F, 0xDB, 0xEF, 0xFD, 0xD0, 0xE0, 0xFC, 0xD0, 0xE0, 0x4D, 0xFD, 0x7F, 0x0E, 0x7E, 0x01,
-    0x12, 0x0D, 0xB2, 0xF1, 0xEA, 0x7A, 0x09, 0x79, 0xE4, 0x91, 0xEC, 0x78, 0x2D, 0x7C, 0x00, 0x7D,
-    0x00, 0x7B, 0xFF, 0x7A, 0x09, 0x79, 0xE7, 0x91, 0xEC, 0x75, 0x34, 0x00, 0x75, 0x35, 0x3F, 0x75,
-    0x2B, 0x00, 0x75, 0x2C, 0x3F, 0x75, 0x32, 0xFF, 0x75, 0x33, 0xC1, 0x75, 0x29, 0xFF, 0x75, 0x2A,
-    0xC1, 0xF1, 0x0F, 0x24, 0x08, 0x12, 0x1F, 0x96, 0x24, 0xF8, 0xF1, 0xF3, 0xE5, 0x31, 0x24, 0x08,
-    0xF5, 0x35, 0xE4, 0x35, 0x30, 0xF5, 0x34, 0xE5, 0x31, 0x24, 0xF8, 0xF5, 0x33, 0xE5, 0x30, 0x34,
-    0xFF, 0xF5, 0x32, 0xF1, 0x0F, 0x24, 0x04, 0x12, 0x1F, 0x96, 0x24, 0xFC, 0xF1, 0xF3, 0x7F, 0x24,
-    0x71, 0x04, 0xE4, 0xFB, 0xFA, 0x7D, 0x22, 0xF1, 0x24, 0xF1, 0x71, 0xC2, 0x02, 0x22, 0xF1, 0x71,
-    0xE4, 0x7D, 0x88, 0x7F, 0x08, 0x7E, 0x02, 0xF1, 0x1A, 0xE4, 0xFB, 0xFA, 0x7D, 0xF0, 0x7F, 0x04,
-    0x7E, 0x02, 0x12, 0x0B, 0x97, 0x78, 0x22, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0xFF, 0x7A, 0x09, 0x79,
-    0xEA, 0x91, 0xEC, 0x75, 0x29, 0x00, 0x75, 0x2A, 0x7F, 0x75, 0x27, 0xFF, 0x75, 0x28, 0x80, 0x7F,
-    0x22, 0x71, 0x04, 0x78, 0x2B, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0xFF, 0x7A, 0x09, 0x79, 0xED, 0x91,
-    0xEC, 0x75, 0x32, 0x00, 0x75, 0x33, 0x7F, 0x75, 0x30, 0xFF, 0x75, 0x31, 0x80, 0x7F, 0x2B, 0x71,
-    0x04, 0xE5, 0x26, 0x24, 0x04, 0xF5, 0x2A, 0xE4, 0x35, 0x25, 0xF5, 0x29, 0xE5, 0x26, 0x24, 0xFC,
-    0xF5, 0x28, 0xE5, 0x25, 0x34, 0xFF, 0xF5, 0x27, 0x7F, 0x22, 0x71, 0x04, 0xE5, 0x2F, 0x24, 0x04,
-    0xF5, 0x33, 0xE4, 0x35, 0x2E, 0xF5, 0x32, 0xE5, 0x2F, 0x24, 0xFC, 0xF5, 0x31, 0xE5, 0x2E, 0x34,
-    0xFF, 0xF5, 0x30, 0x7F, 0x2B, 0x71, 0x04, 0xE5, 0x26, 0xFA, 0xE5, 0x2F, 0xFB, 0x7D, 0xF0, 0x7F,
-    0x04, 0x7E, 0x02, 0x02, 0x0B, 0x97, 0xD3, 0xED, 0x9F, 0xEE, 0x64, 0x80, 0xF8, 0xEC, 0x64, 0x80,
-    0x98, 0x22, 0x8E, 0x50, 0x8F, 0x51, 0x30, 0x02, 0x07, 0x12, 0x0F, 0xDB, 0x7E, 0x00, 0x80, 0x04,
-    0xAE, 0x50, 0xAF, 0x51, 0x22, 0xAF, 0x48, 0xAE, 0x47, 0xD1, 0x42, 0xAA, 0x06, 0xAB, 0x07, 0x85,
-    0x4E, 0x5E, 0x85, 0x4F, 0x5F, 0xAD, 0x4D, 0xAF, 0x4C, 0xAE, 0x4B, 0x22, 0x75, 0x22, 0xB0, 0x75,
-    0x23, 0x00, 0xE4, 0xFB, 0xFA, 0x7D, 0x22, 0x12, 0x0E, 0xF9, 0x12, 0x1C, 0xBB, 0x12, 0x01, 0x3E,
-    0xF1, 0xE1, 0x12, 0x1A, 0xF6, 0xF1, 0x01, 0x8E, 0x26, 0x8F, 0x27, 0x7D, 0x40, 0x7F, 0x19, 0x7E,
-    0x01, 0x51, 0xB7, 0x8F, 0x24, 0xF1, 0xBE, 0x8F, 0x25, 0x12, 0x1F, 0xA0, 0x50, 0x18, 0xC3, 0xE5,
-    0x25, 0x64, 0x80, 0x94, 0x8F, 0x50, 0x0F, 0x05, 0x25, 0xE5, 0x25, 0x7D, 0x52, 0x7F, 0x13, 0x12,
-    0x1F, 0x2A, 0xF1, 0x01, 0x80, 0xE3, 0xE5, 0x25, 0x64, 0x0F, 0x70, 0x32, 0x12, 0x1F, 0xA0, 0x50,
-    0x2D, 0xC3, 0xE5, 0x24, 0x64, 0x80, 0x94, 0x92, 0x50, 0x24, 0x05, 0x24, 0xE5, 0x24, 0x7D, 0x40,
-    0x7F, 0x19, 0x12, 0x1F, 0x2A, 0xF1, 0x01, 0xC3, 0xE5, 0x29, 0x95, 0x27, 0xE5, 0x28, 0x95, 0x26,
-    0x50, 0x04, 0x15, 0x24, 0x80, 0x08, 0x85, 0x28, 0x26, 0x85, 0x29, 0x27, 0x80, 0xC8, 0x7B, 0x01,
-    0x7A, 0x00, 0xF1, 0x22, 0x7B, 0x01, 0x7A, 0x00, 0x7D, 0x22, 0x7F, 0x0C, 0x7E, 0x04, 0x02, 0x0B,
-    0x97, 0x71, 0xED, 0x8E, 0x28, 0x8F, 0x29, 0x22, 0x11, 0x33, 0x71, 0xED, 0x8E, 0x43, 0x22, 0x7F,
-    0x24, 0x71, 0x04, 0x7F, 0x2D, 0x71, 0x04, 0xE5, 0x28, 0x22, 0xFB, 0xFA, 0x12, 0x0B, 0x97, 0xE4,
-    0xFB, 0xFA, 0x7D, 0x77, 0x7F, 0x0C, 0x7E, 0x04, 0x02, 0x0B, 0x97, 0x12, 0x00, 0x23, 0x12, 0x0D,
-    0xCD, 0x8F, 0x21, 0xE5, 0x21, 0x70, 0x23, 0xD1, 0x6C, 0x91, 0xF3, 0x12, 0x0F, 0x0A, 0xF1, 0xE1,
-    0x12, 0x1A, 0xF6, 0xB1, 0x9E, 0xC2, 0x00, 0x75, 0x2F, 0x00, 0x75, 0x2E, 0xBA, 0x75, 0x2D, 0x5B,
-    0x75, 0x2C, 0x49, 0x12, 0x1B, 0x01, 0xD2, 0x00, 0x91, 0x23, 0xE5, 0x21, 0x60, 0x06, 0x12, 0x00,
-    0x24, 0xAF, 0x21, 0x22, 0x12, 0x00, 0x24, 0x7F, 0x00, 0x22, 0xAF, 0x28, 0xAE, 0x27, 0x02, 0x0D,
-    0xB2, 0x7B, 0x01, 0x7A, 0x00, 0xE4, 0xFD, 0xFF, 0x7E, 0x01, 0x02, 0x0B, 0x97, 0xE4, 0xF5, 0x50,
-    0xFF, 0xFE, 0xE5, 0x50, 0x25, 0xE0, 0xF5, 0x50, 0x0F, 0xBF, 0x00, 0x01, 0x0E, 0xEF, 0x64, 0xC8,
-    0x4E, 0x70, 0xEF, 0x22, 0xC3, 0xE5, 0x42, 0x95, 0x44, 0xE5, 0x41, 0x22, 0xAD, 0x51, 0xAF, 0x4E,
-    0xAE, 0x4D, 0x01, 0x33, 0xC3, 0xE5, 0x55, 0x95, 0x57, 0xFF, 0xE5, 0x54, 0x95, 0x56, 0xFE, 0x7C,
-    0x00, 0x7D, 0x02, 0x02, 0x05, 0x5F, 0x04, 0xFF, 0x74, 0xFF, 0xFE, 0xA8, 0x07, 0x22, 0x7D, 0x52,
-    0x7F, 0x13, 0x7E, 0x01, 0x41, 0xB7, 0x7C, 0x07, 0xAF, 0x25, 0xAE, 0x24, 0x02, 0x0D, 0xB2, 0x78,
-    0x2A, 0x7C, 0x00, 0x7D, 0x00, 0x7B, 0xFF, 0x22, 0xF4, 0xFF, 0xEE, 0xF4, 0x5C, 0xFE, 0xED, 0x5F,
-    0x22, 0x7B, 0x00, 0x7A, 0xBA, 0x79, 0x5B, 0x78, 0x49, 0x22, 0x78, 0x24, 0x7C, 0x00, 0x7D, 0x00,
-    0x7B, 0xFF, 0x22, 0xF5, 0x2A, 0xE5, 0x27, 0x34, 0xFF, 0xF5, 0x29, 0x22, 0x7D, 0xFF, 0x7C, 0x7F,
-    0x7F, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0xB2, 0x7D, 0x55, 0x7F, 0x00, 0x7E, 0x02, 0x12, 0x10, 0x03,
-    0x7D, 0x00, 0x7C, 0x80, 0x7F, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0xB2, 0x7D, 0x66, 0x7F, 0x00, 0x7E,
-    0x02, 0x02, 0x10, 0x03, 0xE4, 0xF9, 0x11, 0x5D, 0xFE, 0xE9, 0x11, 0x4B, 0xFD, 0x12, 0x0D, 0xB2,
-    0x09, 0xB9, 0x3C, 0xF2, 0xE9, 0xC3, 0x94, 0x78, 0x50, 0x10, 0x11, 0x5D, 0xFE, 0xC3, 0x74, 0x77,
-    0x99, 0x11, 0x4B, 0xFD, 0x12, 0x0D, 0xB2, 0x09, 0x80, 0xEA, 0x22, 0x25, 0xE0, 0x24, 0x44, 0xF5,
-    0x82, 0xE4, 0x34, 0x08, 0xF5, 0x83, 0xE4, 0x93, 0xFC, 0x74, 0x01, 0x93, 0x22, 0xE9, 0x75, 0xF0,
-    0x28, 0x84, 0x75, 0xF0, 0x18, 0xA4, 0xFF, 0xE9, 0x24, 0x00, 0xFD, 0xE4, 0x34, 0x05, 0xCD, 0x2F,
-    0xFF, 0xED, 0x35, 0xF0, 0x22, 0x71, 0x52, 0x31, 0x1D, 0x12, 0x02, 0x47, 0xE4, 0xFB, 0xFA, 0xF9,
-    0x78, 0x3F, 0x51, 0x3E, 0x8F, 0x2B, 0xE5, 0x2B, 0xC3, 0x94, 0x02, 0x50, 0x03, 0x75, 0x2B, 0x02,
-    0xE5, 0x2B, 0xD3, 0x94, 0x09, 0x40, 0x09, 0xE5, 0x2B, 0x94, 0x0C, 0x50, 0x03, 0x75, 0x2B, 0x0C,
-    0xE5, 0x2B, 0xD3, 0x94, 0x0D, 0x40, 0x03, 0x75, 0x2B, 0x0D, 0xAC, 0x2B, 0xE4, 0x12, 0x03, 0x67,
-    0x31, 0x1D, 0x12, 0x01, 0x3E, 0x31, 0x34, 0xEF, 0x60, 0x01, 0x22, 0xE5, 0x2B, 0x25, 0xE0, 0x25,
-    0xE0, 0xF5, 0x2C, 0x91, 0xD4, 0xEF, 0x64, 0x01, 0x4E, 0x70, 0x11, 0x7D, 0xCB, 0x7F, 0x89, 0xFE,
-    0x12, 0x12, 0xB7, 0x31, 0x26, 0xE5, 0x2C, 0x8F, 0xF0, 0x84, 0xF5, 0x2C, 0xAC, 0x2C, 0xE4, 0x12,
-    0x03, 0x67, 0x12, 0x06, 0x97, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0x7F, 0x00, 0x7E,
-    0x00, 0x7D, 0x00, 0x7C, 0x40, 0x12, 0x06, 0x97, 0x51, 0x8C, 0xD0, 0x07, 0xD0, 0x06, 0xD0, 0x05,
-    0xD0, 0x04, 0x12, 0x02, 0x47, 0x12, 0x03, 0x9B, 0x31, 0x26, 0xEF, 0x14, 0xF5, 0x2C, 0xFB, 0x7A,
-    0x00, 0x7D, 0x70, 0x7F, 0x07, 0x7E, 0x04, 0x12, 0x0B, 0x97, 0x7F, 0x00, 0x22, 0x7B, 0x00, 0x7A,
-    0xC8, 0x79, 0x2F, 0x78, 0x4C, 0x22, 0x91, 0xC4, 0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE,
-    0xD8, 0xF9, 0xFF, 0x22, 0x91, 0xDD, 0xE4, 0xF5, 0x37, 0xF5, 0x35, 0xF5, 0x36, 0xE5, 0x37, 0xC3,
-    0x94, 0x03, 0x50, 0x56, 0xE5, 0x36, 0x24, 0x01, 0xFF, 0xE4, 0x35, 0x35, 0xFE, 0xEF, 0x25, 0xE0,
-    0xFD, 0xEE, 0x33, 0xFC, 0x12, 0x03, 0x62, 0x51, 0x74, 0x51, 0x7D, 0x7F, 0x28, 0x7E, 0x6B, 0x7D,
-    0xEE, 0x7C, 0x4E, 0x51, 0x51, 0x40, 0x23, 0x7F, 0xBB, 0x7E, 0xEE, 0x7D, 0x20, 0x51, 0x4F, 0x60,
-    0x02, 0x50, 0x17, 0xAF, 0x34, 0xAE, 0x33, 0xAD, 0x32, 0xAC, 0x31, 0xAB, 0x37, 0x05, 0x37, 0xEB,
-    0x25, 0xE0, 0x25, 0xE0, 0x24, 0x38, 0xF8, 0x12, 0x06, 0x02, 0x05, 0x36, 0xE5, 0x36, 0x70, 0x02,
-    0x05, 0x35, 0x70, 0x04, 0xE5, 0x35, 0x64, 0x01, 0x70, 0xA3, 0xE5, 0x37, 0x70, 0x03, 0x7F, 0x03,
-    0x22, 0xE5, 0x37, 0xC3, 0x13, 0x25, 0xE0, 0x25, 0xE0, 0x24, 0x38, 0xF8, 0x12, 0x05, 0xD6, 0x51,
-    0x80, 0x51, 0x74, 0x12, 0x02, 0x47, 0x91, 0xBB, 0x12, 0x02, 0x47, 0x51, 0x37, 0x8E, 0x35, 0x8F,
-    0x36, 0xAB, 0x36, 0xAA, 0x35, 0x7D, 0xA3, 0x7F, 0x89, 0x51, 0x5C, 0x51, 0x37, 0xAB, 0x07, 0xAA,
-    0x06, 0x7D, 0xD4, 0x7F, 0x88, 0x51, 0x5C, 0x12, 0x03, 0x9B, 0xE4, 0x12, 0x03, 0x5D, 0xC0, 0x04,
-    0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0x51, 0x61, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00,
-    0x12, 0x00, 0x49, 0x8F, 0x3A, 0x8E, 0x39, 0x8D, 0x38, 0x8C, 0x37, 0xE4, 0xFF, 0xFE, 0x7D, 0x80,
-    0x7C, 0x49, 0xAB, 0x3A, 0xAA, 0x39, 0xA9, 0x38, 0xA8, 0x37, 0x91, 0xB5, 0x8F, 0x3E, 0x8E, 0x3D,
-    0x8D, 0x3C, 0x8C, 0x3B, 0xE4, 0xAB, 0x07, 0xAA, 0x06, 0x7D, 0xF0, 0x7F, 0x87, 0xFE, 0x12, 0x0B,
-    0x97, 0xAF, 0x3E, 0xAE, 0x3D, 0xAD, 0x3C, 0xAC, 0x3B, 0xB1, 0xAA, 0x7F, 0x88, 0x7E, 0x00, 0x12,
-    0x0B, 0x97, 0xE4, 0xFF, 0x02, 0x10, 0x97, 0xE4, 0xFB, 0xFA, 0x79, 0x80, 0x78, 0xBF, 0x12, 0x00,
-    0x4D, 0x02, 0x03, 0x9B, 0x7E, 0x01, 0x12, 0x0B, 0x97, 0x7F, 0xAC, 0x7E, 0xE9, 0x7D, 0xA3, 0x7C,
-    0x4F, 0xAB, 0x34, 0xAA, 0x33, 0xA9, 0x32, 0xA8, 0x31, 0x02, 0x02, 0xE4, 0x7E, 0x00, 0x12, 0x0B,
-    0x97, 0xAB, 0x14, 0xAA, 0x13, 0xA9, 0x12, 0xA8, 0x11, 0xAF, 0x34, 0xAE, 0x33, 0xAD, 0x32, 0xAC,
-    0x31, 0x02, 0x02, 0x47, 0xAB, 0x30, 0xAA, 0x2F, 0xA9, 0x2E, 0xA8, 0x2D, 0x22, 0x12, 0x01, 0x3E,
-    0x8F, 0x34, 0x8E, 0x33, 0x8D, 0x32, 0x8C, 0x31, 0x22, 0x12, 0x03, 0x62, 0xA8, 0x04, 0xA9, 0x05,
-    0xAA, 0x06, 0xAB, 0x07, 0x22, 0x71, 0x52, 0xB1, 0x98, 0x7D, 0xCB, 0x7F, 0x89, 0x7E, 0x00, 0x12,
-    0x12, 0xB7, 0x31, 0x26, 0xAC, 0x06, 0xAD, 0x07, 0xE4, 0x51, 0x89, 0x51, 0xE3, 0xB1, 0x8F, 0x91,
-    0xD4, 0xEF, 0x4E, 0x70, 0x11, 0x30, 0x01, 0x05, 0x51, 0xDC, 0xAC, 0x3A, 0x22, 0xE4, 0xFB, 0xFA,
-    0x79, 0x80, 0x78, 0x40, 0x80, 0x1D, 0x30, 0x01, 0x04, 0xB1, 0x86, 0x80, 0x0E, 0xE4, 0xFB, 0xFA,
-    0x79, 0x80, 0x78, 0x40, 0x51, 0xDC, 0xAC, 0x3A, 0x12, 0x02, 0x47, 0x22, 0xAF, 0x3D, 0xAE, 0x3C,
-    0xAD, 0x3B, 0x22, 0xAF, 0x39, 0xAE, 0x38, 0xAD, 0x37, 0xAC, 0x36, 0x02, 0x02, 0x47, 0x7B, 0x00,
-    0x7A, 0x50, 0x79, 0xC3, 0x78, 0xC7, 0x12, 0x00, 0x4D, 0x8F, 0x2F, 0x8E, 0x2E, 0x8D, 0x2D, 0x8C,
-    0x2C, 0x7E, 0x04, 0x30, 0x00, 0x02, 0x7E, 0x02, 0x7F, 0x42, 0x8E, 0x30, 0x8F, 0x31, 0xA2, 0x00,
-    0x92, 0x01, 0x51, 0x95, 0x51, 0x8C, 0xAF, 0x2F, 0xAE, 0x2E, 0xAD, 0x2D, 0xAC, 0x2C, 0x12, 0x02,
-    0x47, 0xE4, 0xFB, 0xFA, 0x79, 0x80, 0x78, 0x4F, 0x91, 0xB5, 0x8F, 0x35, 0x8E, 0x34, 0x8D, 0x33,
-    0x8C, 0x32, 0x78, 0x10, 0x12, 0x05, 0xB0, 0xAD, 0x07, 0xAC, 0x06, 0xAF, 0x31, 0xAE, 0x30, 0x12,
-    0x0D, 0xB2, 0xE5, 0x31, 0x24, 0x01, 0xFF, 0xE4, 0x35, 0x30, 0xFE, 0xAC, 0x34, 0xAD, 0x35, 0x02,
-    0x0D, 0xB2, 0x7D, 0xA3, 0x7F, 0x89, 0x7E, 0x00, 0x71, 0xD5, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06,
-    0xC0, 0x07, 0x91, 0xBB, 0x91, 0xEF, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00, 0x12, 0x02,
-    0x47, 0x8F, 0x41, 0x8E, 0x40, 0x8D, 0x3F, 0x8C, 0x3E, 0x7D, 0xD0, 0x7F, 0x88, 0x7E, 0x00, 0x12,
-    0x12, 0xB7, 0x8E, 0x42, 0x8F, 0x43, 0x7F, 0x87, 0x7E, 0x00, 0x91, 0xE6, 0xC0, 0x04, 0xC0, 0x05,
-    0xC0, 0x06, 0xC0, 0x07, 0xFE, 0xE5, 0x43, 0x91, 0xCB, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0,
-    0x00, 0x12, 0x05, 0x95, 0x91, 0xFA, 0xC0, 0x04, 0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0xE5, 0x42,
-    0xC4, 0xF8, 0x54, 0xF0, 0xC8, 0x68, 0xFE, 0xE5, 0x43, 0xC4, 0x54, 0x0F, 0x48, 0x71, 0xD9, 0xD0,
-    0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00, 0x12, 0x00, 0x4D, 0xAB, 0x41, 0xAA, 0x40, 0xA9, 0x3F,
-    0xA8, 0x3E, 0x02, 0x01, 0x3E, 0x12, 0x12, 0xB7, 0xEF, 0x24, 0x01, 0xFD, 0xE4, 0x3E, 0xFC, 0xE4,
-    0x02, 0x03, 0x62, 0x12, 0x0A, 0x02, 0xD2, 0x00, 0x12, 0x0F, 0xA9, 0x8E, 0x31, 0x8F, 0x32, 0x30,
-    0x00, 0x04, 0x7B, 0x02, 0x80, 0x02, 0x7B, 0x01, 0x12, 0x0B, 0x8F, 0x7D, 0xD0, 0x7F, 0x1E, 0x7E,
-    0x01, 0x12, 0x12, 0xB7, 0x8E, 0x2B, 0x8F, 0x2C, 0x7F, 0x1D, 0x7E, 0x01, 0x91, 0xE6, 0xC0, 0x04,
-    0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0xFE, 0xE5, 0x2C, 0x91, 0xCB, 0xD0, 0x03, 0xD0, 0x02, 0xD0,
-    0x01, 0xD0, 0x00, 0x12, 0x05, 0x95, 0x91, 0xDD, 0x7D, 0x86, 0x7F, 0x1F, 0xB1, 0x77, 0x91, 0xC2,
-    0x08, 0x80, 0x05, 0xC3, 0x33, 0xCE, 0x33, 0xCE, 0xD8, 0xF9, 0xFD, 0xAC, 0x06, 0xEC, 0x51, 0x89,
-    0x91, 0xEF, 0x91, 0xAC, 0x7D, 0xAA, 0x7F, 0x1C, 0x7E, 0x01, 0x71, 0xD5, 0xC0, 0x04, 0xC0, 0x05,
-    0xC0, 0x06, 0xC0, 0x07, 0xAF, 0x30, 0xAE, 0x2F, 0xAD, 0x2E, 0xAC, 0x2D, 0x91, 0xFA, 0xC0, 0x04,
-    0xC0, 0x05, 0xC0, 0x06, 0xC0, 0x07, 0xE5, 0x2B, 0xC4, 0xF8, 0x54, 0xF0, 0xC8, 0x68, 0xFE, 0xE5,
-    0x2C, 0xC4, 0x54, 0x0F, 0x48, 0x24, 0x04, 0x71, 0xDB, 0xD0, 0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0,
-    0x00, 0x12, 0x00, 0x4D, 0xAB, 0x36, 0xAA, 0x35, 0xA9, 0x34, 0xA8, 0x33, 0x12, 0x01, 0x3E, 0xD0,
-    0x03, 0xD0, 0x02, 0xD0, 0x01, 0xD0, 0x00, 0x12, 0x01, 0x3E, 0x91, 0xAC, 0xAD, 0x32, 0xAC, 0x31,
-    0x12, 0x0D, 0xAE, 0xAF, 0x36, 0xAE, 0x35, 0xAD, 0x34, 0xAC, 0x33, 0x22, 0x8F, 0x36, 0x8E, 0x35,
-    0x8D, 0x34, 0x8C, 0x33, 0x22, 0x12, 0x01, 0x3E, 0x02, 0x03, 0x9B, 0xE4, 0xFB, 0xFA, 0xF9, 0x78,
-    0x40, 0x22, 0x04, 0xFF, 0x74, 0x01, 0x7E, 0x00, 0xA8, 0x07, 0x22, 0x54, 0x0F, 0xFF, 0xE4, 0x78,
-    0x10, 0x02, 0x05, 0xC3, 0x7D, 0xBB, 0x7F, 0x86, 0x7E, 0x00, 0x02, 0x12, 0xB7, 0x8F, 0x30, 0x8E,
-    0x2F, 0x8D, 0x2E, 0x8C, 0x2D, 0x22, 0x7D, 0xF0, 0x12, 0x12, 0xB7, 0xE4, 0xFC, 0xFD, 0x22, 0xAF,
-    0x14, 0xAE, 0x13, 0xAD, 0x12, 0xAC, 0x11, 0x02, 0x02, 0x47, 0xE4, 0x12, 0x03, 0x5D, 0xE4, 0xFB,
-    0xFA, 0x79, 0x80, 0x78, 0x49, 0x02, 0x02, 0x47, 0xB1, 0xA1, 0x75, 0x28, 0x02, 0x75, 0x29, 0x02,
-    0x12, 0x17, 0xBE, 0x8F, 0x2A, 0x7D, 0xFA, 0x7F, 0x08, 0x7E, 0x01, 0x12, 0x12, 0xB7, 0x8F, 0x2B,
-    0xE4, 0x7D, 0xDD, 0x7F, 0x0C, 0x7E, 0x04, 0x12, 0x17, 0x1A, 0xC2, 0x00, 0xE4, 0xFB, 0xFA, 0x79,
-    0xA0, 0x78, 0x40, 0xAF, 0x27, 0xAE, 0x26, 0xAD, 0x25, 0xAC, 0x24, 0x12, 0x02, 0x47, 0x51, 0xEE,
-    0x80, 0x1F, 0xB1, 0x6B, 0x40, 0x20, 0xE5, 0x28, 0x25, 0x2A, 0xF5, 0x2A, 0xD3, 0x94, 0x0F, 0x40,
-    0x08, 0xE5, 0x2A, 0x95, 0x28, 0xF5, 0x2A, 0x80, 0x0D, 0xE5, 0x2A, 0x7D, 0x52, 0x7F, 0x13, 0xB1,
-    0x7E, 0x12, 0x13, 0xED, 0x80, 0xDC, 0xB1, 0x6B, 0x7F, 0x00, 0x22, 0xD3, 0x90, 0x09, 0xE0, 0x74,
-    0x01, 0x93, 0x9F, 0xE4, 0x93, 0x9E, 0x22, 0x7E, 0x01, 0x12, 0x12, 0xB7, 0xEF, 0x22, 0xFB, 0x7A,
-    0x00, 0x7E, 0x01, 0x02, 0x0B, 0x97, 0xAF, 0x39, 0xAE, 0x38, 0xAD, 0x37, 0xAC, 0x36, 0x22, 0x8F,
-    0x3D, 0x8E, 0x3C, 0x8D, 0x3B, 0x8C, 0x3A, 0x22, 0x8F, 0x39, 0x8E, 0x38, 0x8D, 0x37, 0x8C, 0x36,
-    0x22, 0x8F, 0x27, 0x8E, 0x26, 0x8D, 0x25, 0x8C, 0x24, 0x22, 0x78, 0x10, 0x12, 0x05, 0xB0, 0xAB,
-    0x07, 0xAA, 0x06, 0x7D, 0x30, 0x22, 0xAC, 0x09, 0xE4, 0x12, 0x03, 0x67, 0xB1, 0xE5, 0x8C, 0x11,
-    0xB1, 0xEC, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x02, 0xC0, 0x03, 0xD1, 0x3C, 0xD0, 0x03, 0xD0, 0x02,
-    0xD0, 0x01, 0xD0, 0x00, 0x12, 0x00, 0x4D, 0xB1, 0xE5, 0x8C, 0x11, 0xB1, 0xF5, 0xB1, 0xE5, 0x8C,
-    0x11, 0xE4, 0xF5, 0x90, 0x22, 0x8F, 0x14, 0x8E, 0x13, 0x8D, 0x12, 0x22, 0xAB, 0x14, 0xAA, 0x13,
-    0xA9, 0x12, 0xA8, 0x11, 0x22, 0x7B, 0x00, 0x7A, 0x24, 0x79, 0x74, 0x78, 0x49, 0x02, 0x01, 0x3E,
-    0xAC, 0x09, 0xE4, 0x12, 0x03, 0x67, 0xD1, 0x35, 0x8C, 0x0D, 0xAB, 0x10, 0xAA, 0x0F, 0xA9, 0x0E,
-    0xA8, 0x0D, 0xC0, 0x00, 0xC0, 0x01, 0xC0, 0x02, 0xC0, 0x03, 0xD1, 0x3C, 0xD0, 0x03, 0xD0, 0x02,
-    0xD0, 0x01, 0xD0, 0x00, 0x12, 0x00, 0x4D, 0xD1, 0x35, 0x8C, 0x0D, 0xB1, 0xF5, 0xD1, 0x35, 0x8C,
-    0x0D, 0xE4, 0xF5, 0x90, 0x22, 0x8F, 0x10, 0x8E, 0x0F, 0x8D, 0x0E, 0x22, 0xE5, 0x0A, 0xAD, 0x0B,
-    0xFC, 0xE4, 0x12, 0x03, 0x62, 0xE4, 0xFB, 0xFA, 0x79, 0x7A, 0x78, 0x44, 0x02, 0x02, 0x47, 0x75,
-    0x81, 0xD0, 0xE4, 0xF5, 0xA2, 0x75, 0x91, 0xFF, 0xF5, 0x90, 0x75, 0xA1, 0x07, 0x75, 0xA9, 0xFF,
-    0x75, 0xA8, 0x80, 0xC2, 0xA0, 0xD2, 0xA1, 0x85, 0x80, 0x0C, 0x30, 0x03, 0xFD, 0xE5, 0x08, 0x14,
-    0x60, 0x15, 0x14, 0x60, 0x19, 0x14, 0x60, 0x1D, 0x14, 0x60, 0x1E, 0x24, 0x05, 0x60, 0x1E, 0x14,
-    0x70, 0x1E, 0xE4, 0xF5, 0x90, 0x80, 0x19, 0x12, 0x17, 0x2B, 0x8F, 0x90, 0x80, 0x12, 0x12, 0x0F,
-    0x1E, 0x8F, 0x90, 0x80, 0x0B, 0xD1, 0x00, 0x80, 0x07, 0xB1, 0xB6, 0x80, 0x03, 0x75, 0x90, 0x02,
-    0x85, 0x08, 0x0C, 0xC2, 0x03, 0x80, 0xC3, 0xC0, 0xE0, 0xC0, 0xD0, 0x75, 0xD0, 0x00, 0xC0, 0x00,
-    0xC0, 0x06, 0xC0, 0x07, 0x75, 0x90, 0xFF, 0x7F, 0x02, 0x74, 0x08, 0x2F, 0xF8, 0xE6, 0xFE, 0x74,
-    0x09, 0x2F, 0xF8, 0xA6, 0x06, 0xDF, 0xF2, 0x85, 0x80, 0x09, 0x75, 0x90, 0x00, 0xD0, 0x07, 0xD0,
-    0x06, 0xD0, 0x00, 0xD0, 0xD0, 0xD0, 0xE0, 0x32, 0x75, 0x90, 0xFF, 0x85, 0x80, 0x08, 0xD2, 0x03,
-    0x32, 0x7D, 0x10, 0xC2, 0xA0, 0xEE, 0x33, 0x92, 0xA2, 0xEF, 0x25, 0xE0, 0xFF, 0xEE, 0x33, 0xFE,
-    0xD2, 0xA0, 0xDD, 0xEF, 0xC2, 0xA0, 0x22, 0xFB, 0xFA, 0x7F, 0x0C, 0x7E, 0x01, 0x02, 0x0B, 0x97,
-    0xFA, 0xFE, 0x12, 0x0B, 0x97, 0x7B, 0x01, 0x7A, 0x00, 0xE4, 0xFD, 0x7F, 0x0D, 0x7E, 0x01, 0x12,
-    0x0B, 0x97, 0x7B, 0x01, 0x7A, 0x00, 0x7D, 0xEE, 0x7F, 0x00, 0x7E, 0x01, 0x02, 0x0B, 0x97, 0x7B,
-    0x01, 0x7D, 0x66, 0x7F, 0x1C, 0x7E, 0x01, 0x02, 0x0B, 0x97, 0xFB, 0x33, 0x95, 0xE0, 0xFA, 0x7E,
-    0x01, 0x02, 0x0B, 0x97, 0x74, 0x32, 0x25, 0x31, 0xF8, 0xE6, 0xFF, 0x33, 0x95, 0xE0, 0xFE, 0x02,
-    0x00, 0x14, 0x7B, 0x40, 0x7A, 0x54, 0x79, 0x09, 0x12, 0x00, 0x4D, 0x8F, 0x2E, 0x8E, 0x2D, 0x8D,
-    0x2C, 0x8C, 0x2B, 0x22, 0xFA, 0x7F, 0x21, 0x7E, 0x01, 0x02, 0x0B, 0x97, 0xE6, 0xFC, 0x08, 0xE6,
-    0xFD, 0x74, 0x01, 0x7E, 0x00, 0xA8, 0x55, 0x08, 0x22, 0xC3, 0xEF, 0x9D, 0xEC, 0x64, 0x80, 0xF8,
-    0xEE, 0x64, 0x80, 0x98, 0x22, 0xF5, 0x83, 0xE4, 0x93, 0x4E, 0xFC, 0x74, 0x01, 0x93, 0x4F, 0xFD,
-    0x22, 0xE5, 0x24, 0x25, 0xE0, 0x24, 0xBC, 0xF5, 0x82, 0xE4, 0x34, 0x08, 0x22, 0x7D, 0x87, 0x7F,
-    0x0D, 0x7E, 0x01, 0x02, 0x12, 0xB7, 0xF5, 0x2C, 0xE4, 0x35, 0x27, 0xF5, 0x2B, 0xE5, 0x28, 0x22,
-    0xC3, 0xE5, 0x29, 0x95, 0x23, 0xE5, 0x28, 0x95, 0x22, 0x22, 0x5D, 0xFD, 0xEC, 0x4E, 0xFC, 0xED,
-    0x4F, 0xFD, 0x22, 0x12, 0x0D, 0xB2, 0x05, 0x24, 0xE5, 0x24, 0xC3, 0x22, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+0x02,0x18,0xBE,0x12,0x1D,0xC4,0x12,0x1D,0xC4,0x7D,0xFF,0x7F,0x00,0x7E,0x04,0x12,
+0x1D,0x3A,0x7F,0x0F,0x7E,0x04,0x12,0x1C,0x5F,0xEF,0x78,0x02,0xC3,0x33,0xCE,0x33,
+0xCE,0xD8,0xF9,0xF5,0x82,0x8E,0x83,0x7F,0x0E,0x7E,0x04,0x12,0x1C,0x5F,0xEF,0x54,
+0x03,0xFF,0xE5,0x83,0xFE,0xE5,0x82,0x4F,0xFF,0x22,0x00,0x02,0x1C,0x2E,0x80,0x80,
+0x80,0x00,0x00,0x02,0x1D,0xD9,0x02,0x04,0x07,0xE8,0x64,0x80,0xF8,0xE9,0x33,0xE8,
+0x33,0x60,0x11,0x04,0x60,0xF0,0xED,0x33,0xEC,0x33,0x70,0x09,0xE8,0xFC,0xE9,0xFD,
+0xEA,0xFE,0xEB,0xFF,0x22,0x04,0x60,0xDE,0xD3,0xEB,0x9F,0xEA,0x9E,0xE9,0x9D,0xE8,
+0xC2,0xE7,0x8C,0xF0,0xC2,0xF7,0x95,0xF0,0x40,0x0C,0xE8,0xCC,0xF8,0xE9,0xCD,0xF9,
+0xEA,0xCE,0xFA,0xEB,0xCF,0xFB,0x12,0x03,0xD2,0x85,0xD0,0xF0,0x58,0x04,0x70,0x03,
+0x20,0xD5,0xB3,0xE8,0x04,0x70,0x07,0x50,0x02,0xB2,0xD5,0x02,0x04,0x11,0x92,0xD5,
+0xEC,0x04,0x60,0xF7,0xE4,0xCC,0xC0,0xE0,0xC3,0x98,0xF8,0x60,0x3B,0x94,0x18,0x60,
+0x08,0x40,0x0D,0xD0,0xE0,0xFB,0x02,0x03,0xE9,0xE4,0xFB,0xFA,0xC9,0xFC,0x80,0x28,
+0xE8,0x30,0xE4,0x06,0xE4,0xC9,0xFB,0xE4,0xCA,0xFC,0xE8,0x30,0xE3,0x05,0xE4,0xC9,
+0xCA,0xCB,0xFC,0xE8,0x54,0x07,0x60,0x10,0xF8,0xC3,0xE9,0x13,0xF9,0xEA,0x13,0xFA,
+0xEB,0x13,0xFB,0xEC,0x13,0xFC,0xD8,0xF1,0x30,0xF5,0x2F,0xC3,0xE4,0x9C,0xFC,0xEF,
+0x9B,0xFF,0xEE,0x9A,0xFE,0xED,0x99,0xFD,0xD0,0xE0,0xFB,0xEF,0x4E,0x4D,0x4C,0x70,
+0x12,0x22,0xDB,0x03,0x02,0x04,0x0E,0xEC,0x2C,0xFC,0xEF,0x33,0xFF,0xEE,0x33,0xFE,
+0xED,0x33,0xFD,0xED,0x30,0xE7,0xEB,0x02,0x03,0xE9,0xEF,0x2B,0xFF,0xEE,0x3A,0xFE,
+0xED,0x39,0xFD,0xD0,0xE0,0xFB,0x50,0x13,0x0B,0xBB,0x00,0x03,0x02,0x04,0x11,0xED,
+0x13,0xFD,0xEE,0x13,0xFE,0xEF,0x13,0xFF,0xEC,0x13,0xFC,0x02,0x03,0xE9,0xEC,0x4D,
+0x60,0x11,0xE8,0x49,0x70,0x17,0xED,0x33,0xEC,0x33,0x04,0x60,0x0D,0xE4,0xFC,0xFF,
+0xFE,0xFD,0x22,0xE9,0x33,0xE8,0x33,0x04,0x70,0xF8,0x02,0x04,0x07,0x12,0x03,0xD2,
+0x58,0x04,0x60,0x09,0xE4,0xCC,0x24,0x81,0x50,0x06,0x28,0x50,0x09,0x02,0x04,0x11,
+0x28,0x40,0x03,0x02,0x04,0x0E,0xC0,0xE0,0xEB,0x4A,0x70,0x44,0xB9,0x80,0x06,0xD0,
+0xE0,0xFB,0x02,0x03,0xFD,0xEF,0x4E,0x70,0x1C,0xBD,0x80,0x08,0xEB,0xFF,0xEA,0xFE,
+0xE9,0xFD,0x80,0xEB,0xE9,0x8D,0xF0,0xA4,0xFE,0xE5,0xF0,0x02,0x02,0x27,0xE9,0xCD,
+0xF9,0xEA,0xFE,0xEB,0xFF,0xEF,0x89,0xF0,0xA4,0xFC,0xE5,0xF0,0xCE,0x89,0xF0,0xA4,
+0x2E,0xFF,0xE4,0x35,0xF0,0xCD,0x89,0xF0,0xA4,0x2D,0xFE,0xE4,0x35,0xF0,0x80,0x67,
+0xEF,0x4E,0x70,0x05,0xBD,0x80,0xD7,0x80,0xC3,0xEF,0x8B,0xF0,0xA4,0xAC,0xF0,0xEE,
+0x8B,0xF0,0xA4,0x2C,0xFC,0xE4,0x35,0xF0,0xF8,0xEF,0x8A,0xF0,0xA4,0x2C,0xE5,0xF0,
+0x38,0xFC,0xE4,0x33,0xCB,0x8D,0xF0,0xA4,0x2C,0xFC,0xE5,0xF0,0x3B,0xF8,0xEE,0x8A,
+0xF0,0xA4,0x2C,0xFC,0xE5,0xF0,0x38,0xF8,0xE4,0x33,0xCF,0x89,0xF0,0xA4,0x2C,0xFC,
+0xE5,0xF0,0x38,0xCF,0x34,0x00,0xCE,0x89,0xF0,0xA4,0x2F,0xFF,0xE5,0xF0,0x3E,0xFE,
+0xE4,0x33,0xC9,0x8D,0xF0,0xA4,0x2E,0xFE,0xE5,0xF0,0x39,0xCD,0x8A,0xF0,0xA4,0x2F,
+0xFF,0xE5,0xF0,0x3E,0xFE,0xE4,0x3D,0xFD,0x33,0xD0,0xE0,0xFB,0x50,0x07,0x0B,0xBB,
+0x00,0x0F,0x02,0x04,0x11,0xEC,0x2C,0xFC,0xEF,0x33,0xFF,0xEE,0x33,0xFE,0xED,0x33,
+0xFD,0x02,0x03,0xE9,0x02,0x04,0x11,0xEC,0x5D,0x04,0x60,0x05,0xE8,0x59,0x04,0x70,
+0x03,0x02,0x04,0x07,0x12,0x03,0xD2,0x58,0x04,0x60,0xF6,0xEC,0x48,0x60,0xF2,0xEC,
+0x70,0x04,0xFD,0xFE,0xFF,0x22,0xC8,0x60,0xDB,0x24,0x81,0xC8,0x50,0x09,0xC3,0x98,
+0x60,0x02,0x50,0x06,0x02,0x04,0x0E,0x98,0x50,0xCA,0xF5,0x82,0xE9,0x29,0x4B,0x4A,
+0x70,0x05,0xAB,0x82,0x02,0x03,0xFD,0x75,0xF0,0x00,0x7C,0x1A,0x78,0x80,0xC3,0xEF,
+0x9B,0xEE,0x9A,0xED,0x99,0x40,0x0D,0xC3,0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,0x99,
+0xFD,0xE8,0x42,0xF0,0xDC,0x23,0xAC,0xF0,0xD0,0xE0,0xFF,0xD0,0xE0,0xFE,0xD0,0xE0,
+0xFD,0xAB,0x82,0x20,0xE7,0x10,0x1B,0xEB,0x60,0xBA,0xEC,0x2C,0xFC,0xEF,0x33,0xFF,
+0xEE,0x33,0xFE,0xED,0x33,0xFD,0x02,0x03,0xE9,0xE8,0x03,0xF8,0x30,0xE7,0x05,0xC0,
+0xF0,0x75,0xF0,0x00,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,0x40,0xB8,0x30,
+0xE7,0xC2,0x80,0xAA,0x74,0xF8,0xCC,0x64,0x80,0xCC,0xC8,0x64,0x80,0xC8,0xF5,0x82,
+0x04,0x60,0x4F,0xC3,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,0x42,0xF0,0xE9,0x9D,0x42,0xF0,
+0xE8,0x9C,0x45,0xF0,0x60,0x3C,0x50,0x1D,0xE5,0x82,0x5F,0xFF,0xE5,0x82,0xD3,0x13,
+0xCB,0x5B,0xCB,0xF4,0x2B,0x55,0x82,0xFB,0x50,0x28,0x0A,0xBA,0x00,0x24,0x09,0xB9,
+0x00,0x20,0x08,0x80,0x1D,0xE5,0x82,0x5B,0xFB,0xE5,0x82,0xD3,0x13,0xCF,0x5F,0xCF,
+0xF4,0xC3,0x13,0x2F,0x55,0x82,0xFF,0x50,0x09,0x0E,0xBE,0x00,0x05,0x0D,0xBD,0x00,
+0x01,0x0C,0xC3,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xE8,
+0x9C,0x45,0xF0,0x60,0x07,0xCC,0x48,0x20,0xE7,0x01,0xB3,0xEC,0x22,0x75,0xF0,0x20,
+0x80,0x0E,0x75,0xF0,0x10,0x80,0x05,0x75,0xF0,0x08,0x7D,0x00,0x7E,0x00,0x7F,0x00,
+0x33,0x92,0xD5,0x30,0xD5,0x03,0x12,0x05,0xB0,0xEC,0x33,0x40,0x10,0xEF,0x33,0xFF,
+0xEE,0x33,0xFE,0xED,0x33,0xFD,0xEC,0x33,0xFC,0xD5,0xF0,0xED,0x22,0xE5,0xF0,0x24,
+0x7E,0xA2,0xD5,0x13,0xCC,0x92,0xE7,0xCD,0xCE,0xFF,0x22,0xED,0xD2,0xE7,0xCD,0x33,
+0xEC,0x33,0x92,0xD5,0x24,0x81,0x40,0x06,0xE4,0xFF,0xFE,0xFD,0xFC,0x22,0xFC,0xE4,
+0xCF,0xCE,0xCD,0xCC,0x24,0xE0,0x50,0x11,0x74,0xFF,0x80,0xED,0xC3,0xCC,0x13,0xCC,
+0xCD,0x13,0xCD,0xCE,0x13,0xCE,0xCF,0x13,0xCF,0x04,0x70,0xF0,0x30,0xD5,0xDE,0x02,
+0x05,0xB0,0xE9,0xD2,0xE7,0xC9,0x33,0xE8,0x33,0xF8,0x92,0xD5,0xED,0xD2,0xE7,0xCD,
+0x33,0xEC,0x33,0xFC,0x50,0x02,0xB2,0xD5,0x22,0xEC,0x30,0xE7,0x10,0x0F,0xBF,0x00,
+0x0C,0x0E,0xBE,0x00,0x08,0x0D,0xBD,0x00,0x04,0x0B,0xEB,0x60,0x14,0xA2,0xD5,0xEB,
+0x13,0xFC,0xED,0x92,0xE7,0xFD,0x22,0x74,0xFF,0xFC,0xFD,0xFE,0xFF,0x22,0xE4,0x80,
+0xF8,0xA2,0xD5,0x74,0xFF,0x13,0xFC,0x7D,0x80,0xE4,0x80,0xEF,0xC0,0xE0,0xEF,0xFB,
+0xEE,0xFA,0xED,0xF9,0xEC,0xF8,0x12,0x01,0x3E,0xD0,0xE0,0xF5,0xF0,0xEF,0xFB,0xEE,
+0xFA,0xED,0xF9,0xEC,0xF8,0x12,0x05,0xE4,0xA3,0xA3,0xA3,0xA3,0xE8,0xC0,0xE0,0xE9,
+0xC0,0xE0,0xEA,0xC0,0xE0,0xEB,0xC0,0xE0,0xC0,0xF0,0x12,0x01,0x3E,0x12,0x05,0xF4,
+0xA3,0xA3,0xA3,0xA3,0x12,0x00,0x4D,0xD0,0xF0,0xD0,0xE0,0xFB,0xD0,0xE0,0xFA,0xD0,
+0xE0,0xF9,0xD0,0xE0,0xF8,0xD5,0xF0,0xD4,0x22,0xE7,0x09,0xF6,0x08,0xDF,0xFA,0x80,
+0x46,0xE7,0x09,0xF2,0x08,0xDF,0xFA,0x80,0x3E,0x88,0x82,0x8C,0x83,0xE7,0x09,0xF0,
+0xA3,0xDF,0xFA,0x80,0x32,0xE3,0x09,0xF6,0x08,0xDF,0xFA,0x80,0x78,0xE3,0x09,0xF2,
+0x08,0xDF,0xFA,0x80,0x70,0x88,0x82,0x8C,0x83,0xE3,0x09,0xF0,0xA3,0xDF,0xFA,0x80,
+0x64,0x89,0x82,0x8A,0x83,0xE0,0xA3,0xF6,0x08,0xDF,0xFA,0x80,0x58,0x89,0x82,0x8A,
+0x83,0xE0,0xA3,0xF2,0x08,0xDF,0xFA,0x80,0x4C,0x80,0xD2,0x80,0xFA,0x80,0xC6,0x80,
+0xD4,0x80,0x69,0x80,0xF2,0x80,0x33,0x80,0x10,0x80,0xA6,0x80,0xEA,0x80,0x9A,0x80,
+0xA8,0x80,0xDA,0x80,0xE2,0x80,0xCA,0x80,0x33,0x89,0x82,0x8A,0x83,0xEC,0xFA,0xE4,
+0x93,0xA3,0xC8,0xC5,0x82,0xC8,0xCC,0xC5,0x83,0xCC,0xF0,0xA3,0xC8,0xC5,0x82,0xC8,
+0xCC,0xC5,0x83,0xCC,0xDF,0xE9,0xDE,0xE7,0x80,0x0D,0x89,0x82,0x8A,0x83,0xE4,0x93,
+0xA3,0xF6,0x08,0xDF,0xF9,0xEC,0xFA,0xA9,0xF0,0xED,0xFB,0x22,0x89,0x82,0x8A,0x83,
+0xEC,0xFA,0xE0,0xA3,0xC8,0xC5,0x82,0xC8,0xCC,0xC5,0x83,0xCC,0xF0,0xA3,0xC8,0xC5,
+0x82,0xC8,0xCC,0xC5,0x83,0xCC,0xDF,0xEA,0xDE,0xE8,0x80,0xDB,0x89,0x82,0x8A,0x83,
+0xE4,0x93,0xA3,0xF2,0x08,0xDF,0xF9,0x80,0xCC,0x88,0xF0,0xEF,0x60,0x01,0x0E,0x4E,
+0x60,0xC3,0x88,0xF0,0xED,0x24,0x02,0xB4,0x04,0x00,0x50,0xB9,0xF5,0x82,0xEB,0x24,
+0x02,0xB4,0x04,0x00,0x50,0xAF,0x23,0x23,0x45,0x82,0x23,0x90,0x04,0xB9,0x73,0xC2,
+0xD5,0xEC,0x30,0xE7,0x09,0xB2,0xD5,0xE4,0xC3,0x9D,0xFD,0xE4,0x9C,0xFC,0xEE,0x30,
+0xE7,0x15,0xB2,0xD5,0xE4,0xC3,0x9F,0xFF,0xE4,0x9E,0xFE,0x12,0x06,0x04,0xC3,0xE4,
+0x9D,0xFD,0xE4,0x9C,0xFC,0x80,0x03,0x12,0x06,0x04,0x30,0xD5,0x07,0xC3,0xE4,0x9F,
+0xFF,0xE4,0x9E,0xFE,0x22,0xC3,0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,0x99,0xFD,0xEC,
+0x98,0xFC,0x22,0xEF,0x4B,0xFF,0xEE,0x4A,0xFE,0xED,0x49,0xFD,0xEC,0x48,0xFC,0x22,
+0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,0xE4,0x9D,0xFD,0xE4,0x9C,0xFC,0x22,0xE8,0x60,
+0x0F,0xEC,0xC3,0x13,0xFC,0xED,0x13,0xFD,0xEE,0x13,0xFE,0xEF,0x13,0xFF,0xD8,0xF1,
+0x22,0xE8,0x60,0x0F,0xEF,0xC3,0x33,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,0xEC,0x33,
+0xFC,0xD8,0xF1,0x22,0xE4,0x93,0xFC,0x74,0x01,0x93,0xFD,0x74,0x02,0x93,0xFE,0x74,
+0x03,0x93,0xFF,0x22,0xE4,0x93,0xF8,0x74,0x01,0x93,0xF9,0x74,0x02,0x93,0xFA,0x74,
+0x03,0x93,0xFB,0x22,0xBC,0x00,0x0B,0xBE,0x00,0x29,0xEF,0x8D,0xF0,0x84,0xFF,0xAD,
+0xF0,0x22,0xE4,0xCC,0xF8,0x75,0xF0,0x08,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xEC,0x33,
+0xFC,0xEE,0x9D,0xEC,0x98,0x40,0x05,0xFC,0xEE,0x9D,0xFE,0x0F,0xD5,0xF0,0xE9,0xE4,
+0xCE,0xFD,0x22,0xED,0xF8,0xF5,0xF0,0xEE,0x84,0x20,0xD2,0x1C,0xFE,0xAD,0xF0,0x75,
+0xF0,0x08,0xEF,0x2F,0xFF,0xED,0x33,0xFD,0x40,0x07,0x98,0x50,0x06,0xD5,0xF0,0xF2,
+0x22,0xC3,0x98,0xFD,0x0F,0xD5,0xF0,0xEA,0x22,0x8F,0x3F,0xEF,0xC3,0x60,0x01,0xD3,
+0x92,0x02,0x30,0x02,0x06,0x7E,0x01,0x7F,0x21,0x80,0x04,0x7E,0x00,0x7F,0x8B,0x8E,
+0x40,0x8F,0x41,0x7F,0x81,0x30,0x02,0x02,0x7F,0xA3,0x8F,0x42,0xE4,0xFB,0xFA,0x7D,
+0x21,0x30,0x02,0x06,0x7F,0x1C,0x7E,0x01,0x80,0x03,0x7F,0x86,0xFE,0x12,0x19,0xD4,
+0xE4,0xFB,0x12,0x08,0x9B,0xBF,0x03,0x03,0x7F,0x04,0x22,0x7B,0xFF,0x7A,0x00,0x12,
+0x08,0xAD,0xA2,0x02,0x92,0x03,0x12,0x1D,0x69,0xEF,0x70,0x03,0x7F,0x04,0x22,0xE4,
+0xF5,0x4B,0xF5,0x4C,0xE5,0x4C,0x24,0x01,0xFF,0xE4,0x35,0x4B,0xFE,0xEF,0x78,0x07,
+0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xFF,0xAD,0x4C,0xED,0x12,0x17,0x0C,0xA6,0x06,
+0x08,0xA6,0x07,0xE5,0x4C,0xAE,0x4B,0x78,0x07,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,
+0xFF,0xED,0x12,0x16,0xEE,0xA6,0x06,0x08,0xA6,0x07,0xED,0x12,0x16,0xEE,0xE6,0xFA,
+0x08,0xE6,0xFB,0x12,0x08,0xAD,0x75,0x4D,0x06,0x12,0x16,0xEC,0xC0,0x00,0x12,0x17,
+0x4E,0x80,0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xFF,0xEC,0x4E,0xFE,0xED,0x4F,
+0xD0,0x00,0xA6,0x06,0x08,0xF6,0x12,0x16,0xEC,0x12,0x08,0x85,0x8F,0x4E,0xE5,0x4E,
+0xB4,0x03,0x1F,0x12,0x16,0xEC,0xC0,0x00,0x12,0x17,0x4E,0x80,0x05,0xC3,0x33,0xCE,
+0x33,0xCE,0xD8,0xF9,0xF4,0xFF,0xEE,0xF4,0x5C,0xFE,0xED,0x5F,0xD0,0x00,0xA6,0x06,
+0x08,0xF6,0xE5,0x4E,0xB4,0x02,0x22,0xAF,0x4C,0xEF,0x12,0x17,0x0C,0xE6,0xFC,0x08,
+0xE6,0xFD,0xEF,0x12,0x16,0xEE,0xE6,0xFE,0x08,0xE6,0xFF,0xD3,0x12,0x17,0x2E,0x50,
+0x08,0x12,0x17,0x0A,0xA6,0x06,0x08,0xA6,0x07,0x15,0x4D,0xC3,0xE5,0x4D,0x64,0x80,
+0x94,0x80,0x50,0x85,0xAF,0x4C,0xEF,0x12,0x16,0xEE,0xE6,0xFC,0x08,0xE6,0xFD,0xEF,
+0x12,0x17,0x0C,0xE6,0xFA,0x08,0xE6,0xFB,0xD3,0x9D,0xEC,0x64,0x80,0xF8,0xEA,0x64,
+0x80,0x98,0x50,0x31,0xE5,0x4C,0xAE,0x4B,0x78,0x07,0xC3,0x33,0xCE,0x33,0xCE,0xD8,
+0xF9,0xFF,0xD3,0xEB,0x9F,0xEA,0x9E,0x40,0x1C,0x12,0x17,0x0A,0x08,0xE6,0x16,0x18,
+0x70,0x01,0x16,0x12,0x08,0x85,0xEF,0x64,0x02,0x60,0xB9,0x12,0x17,0x0A,0x08,0x06,
+0xE6,0x18,0x70,0x01,0x06,0x05,0x4C,0xE5,0x4C,0x70,0x02,0x05,0x4B,0xC3,0x94,0x02,
+0xE5,0x4B,0x94,0x00,0x50,0x03,0x02,0x06,0xB4,0xE5,0x4A,0x24,0xFF,0xFF,0xE5,0x49,
+0x34,0xFF,0xFE,0xEF,0xB5,0x44,0x12,0xEE,0xB5,0x43,0x0E,0x85,0x47,0x4B,0x85,0x48,
+0x4C,0x85,0x45,0x4D,0x85,0x46,0x4E,0x80,0x3F,0xC3,0xE5,0x44,0x95,0x46,0xFF,0xE5,
+0x43,0x95,0x45,0xFE,0xC3,0xE5,0x48,0x95,0x4A,0xFD,0xE5,0x47,0x95,0x49,0xFC,0xD3,
+0xED,0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,0x7F,0x00,0x40,0x02,0x7F,0x01,
+0x8F,0x4F,0xEF,0x12,0x16,0xEE,0xE6,0xF5,0x4B,0x08,0xE6,0xF5,0x4C,0xEF,0x12,0x17,
+0x0C,0xE6,0xF5,0x4D,0x08,0xE6,0xF5,0x4E,0xC3,0xE5,0x4C,0x95,0x4E,0xFF,0xE5,0x4B,
+0x95,0x4D,0xFE,0x7C,0x00,0x7D,0x02,0x12,0x05,0x5F,0xEF,0x25,0x4E,0xF5,0x4E,0xEE,
+0x35,0x4D,0xF5,0x4D,0xAB,0x4E,0x12,0x08,0x9B,0xEF,0x64,0x02,0x60,0x12,0xE5,0x4E,
+0x24,0x01,0xFB,0xE4,0x35,0x4D,0xFA,0xAD,0x42,0xAF,0x41,0xAE,0x40,0x12,0x19,0xD4,
+0xA2,0x02,0x92,0x03,0x12,0x1D,0x69,0xEF,0x64,0x02,0x60,0x06,0xE5,0x3F,0x24,0x21,
+0xFF,0x22,0x7F,0x00,0x22,0xE6,0xFA,0x08,0xE6,0xFB,0xAD,0x42,0xAF,0x41,0xAE,0x40,
+0x12,0x19,0xD4,0xA2,0x02,0x92,0x03,0x12,0x1D,0x69,0x22,0xFA,0xAD,0x42,0xAF,0x41,
+0xAE,0x40,0x12,0x19,0xD4,0xA2,0x02,0x92,0x03,0x12,0x1D,0x69,0x22,0xAD,0x42,0xAF,
+0x41,0xAE,0x40,0x12,0x19,0xD4,0x22,0x7F,0x20,0x7E,0x00,0x12,0x1C,0x5F,0x8E,0x2F,
+0x8F,0x30,0x7A,0x00,0x30,0x00,0x04,0x7B,0x02,0x80,0x02,0x7B,0x01,0x7D,0x10,0x7F,
+0x20,0x7E,0x00,0x12,0x19,0xD4,0x75,0x3D,0x07,0xAF,0x3D,0x12,0x1D,0x95,0xAC,0x06,
+0xAD,0x07,0xE4,0x12,0x03,0x62,0xAB,0x2E,0xAA,0x2D,0xA9,0x2C,0xA8,0x2B,0x12,0x01,
+0x3E,0x8F,0x34,0x8E,0x33,0x8D,0x32,0x8C,0x31,0x7F,0x66,0x7E,0x7F,0x7D,0x62,0x12,
+0x17,0x14,0x40,0x0D,0x7F,0x26,0x7E,0xE5,0x7D,0xE5,0x12,0x17,0x14,0x60,0x05,0x40,
+0x03,0xD5,0x3D,0xC5,0xE5,0x3D,0x24,0xFF,0xFB,0xE4,0x34,0xFF,0xFA,0x7D,0x86,0x7F,
+0x1F,0x7E,0x01,0x12,0x19,0xD4,0x7F,0xAC,0x7E,0xE9,0x7D,0xA3,0x12,0x17,0x14,0x7F,
+0x00,0x60,0x04,0x40,0x02,0x7F,0x01,0x8F,0x3D,0xEF,0xFB,0x7A,0x00,0x7D,0xAA,0x7F,
+0x1C,0x7E,0x01,0x12,0x19,0xD4,0xE5,0x3D,0x24,0x01,0xFD,0xE4,0x33,0xFC,0xE4,0x12,
+0x03,0x62,0xAB,0x0F,0xAA,0x0E,0xA9,0x0D,0xA8,0x0C,0x12,0x01,0x3E,0x12,0x17,0x01,
+0xAF,0x34,0xAE,0x33,0xAD,0x32,0xAC,0x31,0x12,0x02,0x47,0x8F,0x3C,0x8E,0x3B,0x8D,
+0x3A,0x8C,0x39,0x12,0x03,0x9B,0xE4,0x12,0x03,0x5D,0x12,0x17,0x01,0xAF,0x3C,0xAE,
+0x3B,0xAD,0x3A,0xAC,0x39,0x12,0x00,0x49,0x12,0x17,0x46,0x12,0x17,0x86,0x8F,0x38,
+0x8E,0x37,0x8D,0x36,0x8C,0x35,0xE4,0xFF,0xFE,0x7D,0x80,0x7C,0xC0,0xAB,0x3C,0xAA,
+0x3B,0xA9,0x3A,0xA8,0x39,0x12,0x00,0x4D,0x12,0x03,0x9B,0xAB,0x07,0xAA,0x06,0x7D,
+0xD4,0x7F,0x1E,0x7E,0x01,0x12,0x19,0xD4,0xAF,0x38,0xAE,0x37,0xAD,0x36,0xAC,0x35,
+0x12,0x17,0x71,0x7F,0x1E,0x7E,0x01,0x12,0x19,0xD4,0xE5,0x38,0xFF,0xE5,0x37,0xFE,
+0xAD,0x07,0xAC,0x06,0x7F,0x1D,0x7E,0x01,0x12,0x1D,0x1F,0xC2,0x01,0x78,0x32,0x7C,
+0x00,0x7D,0x00,0x7B,0xFF,0x7A,0x00,0x79,0x3E,0x7E,0x00,0x7F,0x03,0x12,0x05,0x39,
+0xE4,0xF5,0x31,0x12,0x0A,0x92,0x7F,0x01,0x30,0x00,0x02,0x7F,0x02,0x12,0x06,0x59,
+0xEF,0x70,0x16,0x7D,0xA3,0x7F,0x21,0x7E,0x01,0x12,0x1B,0xF4,0xEF,0x24,0x80,0xFF,
+0x74,0x32,0x25,0x31,0xF8,0xA6,0x07,0xD2,0x01,0x05,0x31,0xC3,0xE5,0x31,0x64,0x80,
+0x94,0x83,0x40,0xCF,0x75,0x31,0x02,0x12,0x0A,0xA3,0xC0,0x06,0xC0,0x07,0xAF,0x32,
+0xEF,0x33,0x95,0xE0,0xFE,0x12,0x1D,0xB8,0xD0,0x05,0xD0,0x04,0x12,0x17,0x2C,0x50,
+0x03,0xE4,0xF5,0x31,0x12,0x0A,0xA3,0xC0,0x06,0xC0,0x07,0xAF,0x33,0xEF,0x33,0x95,
+0xE0,0xFE,0x12,0x1D,0xB8,0xD0,0x05,0xD0,0x04,0x12,0x17,0x2C,0x50,0x03,0x75,0x31,
+0x01,0x12,0x0A,0x92,0x74,0x32,0x25,0x31,0xF8,0xE6,0xFF,0x33,0x95,0xE0,0xFE,0xEF,
+0x24,0x80,0xFB,0xE4,0x3E,0xFA,0x7D,0xA3,0x7F,0x21,0x7E,0x01,0x12,0x19,0xD4,0xAD,
+0x30,0xAC,0x2F,0x7F,0x20,0x7E,0x00,0x12,0x1D,0x1F,0x7F,0x00,0x20,0x01,0x02,0x7F,
+0x02,0x22,0xE5,0x31,0xFB,0x33,0x95,0xE0,0xFA,0x7D,0x21,0x7F,0x21,0x7E,0x01,0x12,
+0x19,0xD4,0x22,0x74,0x32,0x25,0x31,0xF8,0xE6,0xFF,0x33,0x95,0xE0,0xFE,0x12,0x1D,
+0xB8,0x22,0x7F,0x20,0x7E,0x00,0x12,0x1C,0x5F,0x8E,0x25,0x8F,0x26,0x75,0x27,0x0A,
+0x12,0x0E,0x9A,0x12,0x0D,0xE8,0xC0,0x06,0xC0,0x07,0x12,0x0E,0x9A,0x12,0x0D,0xE8,
+0x12,0x1C,0x5F,0xE5,0x27,0x25,0xE0,0x24,0x38,0xF5,0x82,0xE4,0x34,0x1F,0x12,0x0E,
+0x0F,0x12,0x0E,0xD8,0xE5,0x27,0x25,0xE0,0x24,0x24,0xF5,0x82,0xE4,0x34,0x1F,0x12,
+0x0E,0x8E,0xD0,0x07,0xD0,0x06,0x12,0x1D,0x1F,0xD5,0x27,0xC4,0x75,0x27,0x23,0xE5,
+0x27,0xD3,0x94,0x18,0xE5,0x27,0x50,0x17,0x12,0x0E,0xF3,0x12,0x0D,0xE8,0xE5,0x27,
+0x25,0xE0,0x24,0x92,0xF5,0x82,0xE4,0x34,0x1F,0x12,0x0E,0x0F,0xFD,0x80,0x09,0x12,
+0x0E,0xF3,0x12,0x0D,0xE8,0xE4,0xFD,0xFC,0x12,0x1D,0x1F,0xD5,0x27,0xD1,0xE4,0xFB,
+0xFA,0x7D,0x20,0x7F,0x0A,0x7E,0x04,0x12,0x19,0xD4,0x12,0x0E,0xEC,0x12,0x1B,0xF4,
+0xEE,0x70,0x29,0xEF,0x24,0xFD,0x60,0x0F,0x04,0x70,0x21,0x7B,0x01,0x7A,0x00,0x12,
+0x0C,0x40,0xE4,0xFB,0xFA,0x80,0x0A,0xE4,0xFB,0xFA,0x12,0x0C,0x40,0x7B,0x01,0x7A,
+0x00,0x7D,0xBB,0x7F,0x03,0x7E,0x01,0x12,0x19,0xD4,0x80,0x03,0x7F,0x01,0x22,0x12,
+0x0E,0x22,0x12,0x19,0xD4,0x12,0x0E,0x53,0x12,0x1B,0xF4,0xEF,0x4E,0x70,0x2D,0x12,
+0x0C,0x4A,0x12,0x1C,0xDE,0xD2,0x00,0x12,0x12,0x39,0xC0,0x04,0xC0,0x05,0xC0,0x06,
+0xC0,0x07,0x12,0x0D,0xBC,0x12,0x0E,0x7E,0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,0x04,
+0x12,0x00,0x49,0x78,0xCB,0x12,0x0E,0x5A,0xC2,0x00,0x80,0x2B,0xC2,0x00,0x12,0x12,
+0x39,0x8F,0x2A,0x8E,0x29,0x8D,0x28,0x8C,0x27,0x12,0x0E,0x22,0x12,0x19,0xD4,0x12,
+0x1C,0xDE,0xD2,0x00,0x12,0x0D,0xBC,0xAB,0x2A,0xAA,0x29,0xA9,0x28,0xA8,0x27,0x12,
+0x00,0x4D,0x78,0x4B,0x12,0x0E,0x5A,0x12,0x08,0xB7,0x8F,0x24,0xE5,0x24,0x60,0x04,
+0x24,0x70,0xFF,0x22,0x12,0x0C,0x56,0x12,0x1C,0xB6,0x12,0x14,0xC0,0x8F,0x24,0xE5,
+0x24,0x60,0x04,0x24,0x30,0xFF,0x22,0x12,0x1C,0x8D,0xD2,0x00,0x75,0x2F,0x40,0x75,
+0x2E,0x54,0x75,0x2D,0x09,0x75,0x2C,0x4B,0x12,0x1B,0x10,0x12,0x0D,0xBA,0x12,0x0D,
+0xF2,0x12,0x1B,0x10,0xE5,0x26,0x54,0x03,0x64,0x02,0x70,0x21,0x12,0x0C,0x4A,0x12,
+0x0E,0x87,0x7F,0x0D,0x7E,0x01,0x12,0x19,0xD4,0x12,0x0E,0xB2,0x12,0x19,0xD4,0xE4,
+0xFB,0xFA,0x7D,0x11,0x7F,0x82,0xFE,0x12,0x19,0xD4,0x12,0x0C,0x56,0x7F,0x00,0x22,
+0x7D,0xAA,0x7F,0x03,0x7E,0x01,0x12,0x19,0xD4,0x22,0x7B,0x01,0xFA,0x7D,0x10,0x7F,
+0x20,0xFE,0x12,0x19,0xD4,0x22,0xAD,0x26,0xAC,0x25,0x7F,0x20,0x7E,0x00,0x12,0x1D,
+0x1F,0x22,0x7F,0x20,0x7E,0x00,0x12,0x1C,0x5F,0x8E,0x22,0x8F,0x23,0x75,0x24,0x07,
+0x12,0x0D,0xDD,0xC0,0x06,0xC0,0x07,0x12,0x0D,0xDD,0x12,0x1C,0x5F,0xE5,0x24,0x25,
+0xE0,0x24,0x94,0xF5,0x82,0xE4,0x34,0x1E,0x12,0x0E,0x0F,0x12,0x0E,0xD8,0xE5,0x24,
+0x25,0xE0,0x24,0x86,0xF5,0x82,0xE4,0x34,0x1E,0x12,0x0E,0x8E,0xD0,0x07,0xD0,0x06,
+0x12,0x1D,0x1F,0xD5,0x24,0xCA,0x75,0x24,0x20,0xE5,0x24,0xD3,0x94,0x17,0xE5,0x24,
+0x50,0x17,0x12,0x0E,0xE2,0x12,0x0D,0xE8,0xE5,0x24,0x25,0xE0,0x24,0xE2,0xF5,0x82,
+0xE4,0x34,0x1E,0x12,0x0E,0x0F,0xFD,0x80,0x09,0x12,0x0E,0xE2,0x12,0x0D,0xE8,0xE4,
+0xFD,0xFC,0x12,0x1D,0x1F,0xD5,0x24,0xD1,0x12,0x1C,0x8D,0x12,0x14,0xC0,0xEF,0x60,
+0x01,0x22,0x7B,0x01,0x12,0x0E,0x24,0x12,0x19,0xD4,0x12,0x1C,0xDE,0xD2,0x00,0x12,
+0x12,0x39,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0x12,0x0D,0xBC,0x12,0x0E,0x7E,
+0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,0x04,0x12,0x00,0x49,0x7B,0x00,0x7A,0x24,0x79,
+0x74,0x78,0xC9,0x12,0x00,0x4D,0x8F,0x27,0x8E,0x26,0x8D,0x25,0x8C,0x24,0xC2,0x00,
+0x12,0x0E,0x63,0x12,0x08,0xB7,0xEF,0x60,0x04,0x24,0x60,0xFF,0x22,0xE5,0x23,0x30,
+0xE1,0x1B,0xE4,0xFB,0xFA,0x7D,0x11,0x7F,0x82,0xFE,0x12,0x19,0xD4,0x12,0x0E,0x87,
+0x7F,0x0D,0x7E,0x01,0x12,0x19,0xD4,0x12,0x0E,0xB2,0x12,0x19,0xD4,0x12,0x0E,0x22,
+0x12,0x19,0xD4,0x7A,0x00,0x12,0x0E,0x51,0x12,0x19,0xD4,0xAD,0x23,0xAC,0x22,0x7F,
+0x20,0x7E,0x00,0x12,0x1D,0x1F,0x12,0x1C,0xB6,0xD2,0x00,0x12,0x0D,0xBC,0x12,0x0D,
+0xFD,0x12,0x1B,0x10,0x7D,0xBA,0x7F,0x03,0x7E,0x01,0x12,0x1B,0xF4,0x8F,0x24,0xE5,
+0x24,0x64,0x01,0x60,0x09,0xE5,0x24,0x64,0x02,0x60,0x03,0x7F,0x05,0x22,0xE5,0x24,
+0x24,0x01,0xFB,0xE4,0x33,0xFA,0x12,0x0E,0xEC,0x12,0x19,0xD4,0x7D,0x65,0x7F,0x0C,
+0x12,0x0D,0xAD,0x7D,0x43,0x7F,0x0D,0x12,0x0D,0xAD,0x7F,0x00,0x22,0xE5,0x24,0x64,
+0x03,0xFB,0x7A,0x00,0x7E,0x01,0x12,0x19,0xD4,0x22,0xC2,0x00,0xAF,0x0B,0xAE,0x0A,
+0xAD,0x09,0xAC,0x08,0xE4,0xFB,0xFA,0x79,0xA0,0x78,0x40,0x02,0x02,0x47,0x78,0x39,
+0x7C,0x00,0x7D,0x00,0x7B,0xFF,0x7E,0x00,0x7F,0x03,0x02,0x05,0x39,0xE5,0x24,0x25,
+0xE0,0x24,0x78,0xF5,0x82,0xE4,0x34,0x1E,0xF5,0x83,0xE4,0x93,0xFE,0x74,0x01,0x93,
+0xFF,0x22,0x78,0xC7,0x7B,0x00,0x7A,0x50,0x79,0xC3,0x12,0x00,0x4D,0x8F,0x2F,0x8E,
+0x2E,0x8D,0x2D,0x8C,0x2C,0x22,0x25,0xE0,0x24,0x02,0xF5,0x82,0xE4,0x34,0x1E,0xF5,
+0x83,0xE4,0x93,0xFC,0x74,0x01,0x93,0x22,0x7D,0x77,0xE4,0xFB,0xFA,0x7F,0x0C,0x7E,
+0x04,0x22,0x7B,0x02,0x7A,0x00,0x7D,0x10,0x7F,0x20,0x7E,0x00,0x22,0xE9,0x75,0xF0,
+0x28,0x84,0x75,0xF0,0x18,0xA4,0xFF,0xE9,0x24,0x00,0xFD,0xE4,0x34,0x05,0xCD,0x2F,
+0xFF,0xED,0x35,0xF0,0xFE,0x22,0x7D,0x22,0x7B,0x01,0x7A,0x00,0x7F,0x0C,0x7E,0x04,
+0x22,0x7B,0x01,0x7D,0x66,0x7F,0x1C,0x7E,0x01,0x22,0x7B,0x40,0x7A,0x54,0x79,0x09,
+0x12,0x00,0x4D,0x8F,0x2E,0x8E,0x2D,0x8D,0x2C,0x8C,0x2B,0x22,0xC3,0xE5,0x42,0x95,
+0x44,0xE5,0x41,0x95,0x43,0x22,0xE4,0xFB,0xFA,0x7F,0x0C,0x7E,0x04,0x22,0xA8,0x04,
+0xA9,0x05,0xAA,0x06,0xAB,0x07,0x22,0x7B,0x01,0x7A,0x00,0xE4,0xFD,0x22,0xF5,0x83,
+0xE4,0x93,0x4E,0xFC,0x74,0x01,0x93,0x4F,0xFD,0x22,0xE5,0x27,0x25,0xE0,0x24,0x10,
+0xF5,0x82,0xE4,0x34,0x1F,0x22,0xD3,0x90,0x1F,0xC4,0x74,0x01,0x93,0x9F,0xE4,0x93,
+0x9E,0x22,0x7B,0x01,0x7A,0x00,0x7D,0xEE,0x7F,0x00,0x7E,0x01,0x22,0x7D,0x52,0x7F,
+0x13,0x7E,0x01,0x22,0xC3,0xE5,0x27,0x95,0x23,0xE5,0x26,0x95,0x22,0x22,0xF5,0x2C,
+0xE4,0x35,0x27,0xF5,0x2B,0xE5,0x28,0x22,0xF4,0xFD,0xEC,0xF4,0x5E,0xFE,0xEF,0x5D,
+0xFF,0x22,0x25,0xE0,0x24,0xA2,0xF5,0x82,0xE4,0x34,0x1E,0x22,0x7D,0x87,0x7F,0x0D,
+0x7E,0x01,0x22,0x25,0xE0,0x24,0x4C,0xF5,0x82,0xE4,0x34,0x1F,0x22,0x3E,0x92,0x48,
+0xDA,0x3E,0xCC,0xCC,0xCD,0x3F,0x2A,0xAA,0xAB,0x40,0x00,0x00,0x00,0x3F,0x80,0x00,
+0x00,0x3F,0x98,0x37,0xF0,0x3F,0xB5,0x04,0xF3,0x3F,0xD7,0x44,0xFC,0x3E,0x31,0x72,
+0x17,0x3E,0xB1,0x72,0x17,0x3F,0x05,0x15,0x91,0x3E,0xDE,0x5B,0xD9,0xD2,0x00,0x80,
+0x02,0xC2,0x00,0xED,0xD2,0xE7,0xF8,0xCD,0x33,0xEC,0x33,0x04,0x70,0x0B,0xBD,0x80,
+0x05,0x92,0xD5,0x02,0x04,0x11,0x02,0x04,0x07,0x40,0xFB,0xD3,0x14,0x60,0xF2,0xF5,
+0xF0,0x7C,0x3F,0xEE,0x7A,0x00,0xC3,0x94,0x96,0xC8,0x94,0x8B,0x40,0x23,0x0A,0xC8,
+0x94,0x69,0xC8,0x94,0x1A,0x40,0x1A,0x0A,0xC8,0x94,0x68,0xC8,0x94,0x1F,0x40,0x11,
+0x0A,0xC8,0x94,0x5A,0xC8,0x94,0x25,0x40,0x08,0x05,0xF0,0x7A,0x00,0xCD,0xC2,0xE7,
+0xCD,0xC0,0xF0,0x8C,0x2E,0x8D,0x2F,0x8E,0x30,0x8F,0x31,0xEA,0x23,0x23,0xC0,0xE0,
+0x24,0x0D,0xF5,0x82,0xE4,0x34,0x0F,0xF5,0x83,0x12,0x05,0xF4,0x12,0x00,0x4D,0xEC,
+0xC0,0xE0,0xED,0xC0,0xE0,0xEE,0xC0,0xE0,0xEF,0xC0,0xE0,0x12,0x05,0xE4,0xA8,0x2E,
+0xA9,0x2F,0xAA,0x30,0xAB,0x31,0x12,0x00,0x49,0xD0,0xE0,0xFB,0xD0,0xE0,0xFA,0xD0,
+0xE0,0xF9,0xD0,0xE0,0xB2,0xE7,0xF8,0x12,0x02,0x47,0x8C,0x2E,0x8D,0x2F,0x8E,0x30,
+0x8F,0x31,0x90,0x0E,0xFD,0x74,0x03,0x12,0x04,0x1C,0xA8,0x2E,0xA9,0x2F,0xAA,0x30,
+0xAB,0x31,0x12,0x01,0x3E,0xD0,0xE0,0x60,0x0F,0x24,0x19,0xF5,0x82,0xE4,0x34,0x0F,
+0xF5,0x83,0x12,0x05,0xF4,0x12,0x00,0x4D,0x8C,0x2E,0x8D,0x2F,0x8E,0x30,0x8F,0x31,
+0xD0,0xE0,0xC3,0x94,0x7F,0xFD,0xE4,0x94,0x00,0xFC,0x12,0x03,0x62,0x7B,0x18,0x7A,
+0x72,0x79,0x31,0x78,0x3F,0x12,0x01,0x3E,0xA8,0x2E,0xA9,0x2F,0xAA,0x30,0xAB,0x31,
+0x12,0x00,0x4D,0x30,0x00,0x0B,0x7B,0xD9,0x7A,0x5B,0x79,0xDE,0x78,0x3E,0x12,0x01,
+0x3E,0x22,0x8F,0x40,0x74,0xFF,0xF5,0x41,0xF5,0x42,0xA8,0x07,0xE8,0x24,0x05,0xF8,
+0xE6,0xF5,0x45,0x08,0xE6,0xF5,0x46,0xA8,0x07,0xE8,0x24,0x07,0xF8,0xE6,0xF5,0x47,
+0x08,0xE6,0xF5,0x48,0xA8,0x07,0xE6,0xFE,0x08,0xE6,0xFF,0x8E,0x4B,0xF5,0x4C,0xE5,
+0x40,0x24,0x02,0xF8,0xE6,0xF5,0x4D,0x90,0x1F,0xC6,0x74,0x01,0x93,0xB5,0x07,0x08,
+0xE4,0x93,0xB5,0x06,0x03,0xD3,0x80,0x01,0xC3,0x92,0x04,0x12,0x11,0x1A,0x8E,0x43,
+0x8F,0x44,0xC3,0xE5,0x48,0x95,0x46,0xFF,0xE5,0x47,0x95,0x45,0xFE,0xC3,0xEF,0x94,
+0x01,0xEE,0x64,0x80,0x94,0x80,0x40,0x59,0x7C,0x00,0x7D,0x02,0x12,0x05,0x5F,0x8E,
+0x49,0x8F,0x4A,0x12,0x0E,0x6C,0x50,0x09,0x12,0x11,0x1A,0x8E,0x43,0x8F,0x44,0x80,
+0x11,0xAF,0x46,0xAE,0x45,0x12,0x11,0x32,0x12,0x19,0xD4,0x12,0x00,0x03,0x8E,0x41,
+0x8F,0x42,0xD3,0xE5,0x4A,0x94,0x00,0xE5,0x49,0x64,0x80,0x94,0x80,0x40,0x22,0x12,
+0x0E,0x6C,0x50,0x0F,0xC3,0xE5,0x48,0x95,0x4A,0xF5,0x48,0xE5,0x47,0x95,0x49,0xF5,
+0x47,0x80,0x9F,0xE5,0x4A,0x25,0x46,0xF5,0x46,0xE5,0x49,0x35,0x45,0xF5,0x45,0x80,
+0x91,0x12,0x0E,0x6C,0x50,0x06,0xAE,0x45,0xAF,0x46,0x80,0x04,0xAE,0x47,0xAF,0x48,
+0xE5,0x40,0x24,0x03,0xF8,0xA6,0x06,0x08,0xA6,0x07,0xE5,0x40,0x24,0x03,0xF8,0xE6,
+0xFE,0x08,0xE6,0xFF,0x12,0x11,0x32,0x02,0x19,0xD4,0xAF,0x48,0xAE,0x47,0x12,0x1D,
+0xCF,0xAA,0x06,0xAB,0x07,0xAD,0x4D,0xAF,0x4C,0xAE,0x4B,0x12,0x19,0xD4,0x12,0x00,
+0x03,0x22,0x12,0x1D,0xCF,0xAA,0x06,0xAB,0x07,0xAD,0x4D,0xAF,0x4C,0xAE,0x4B,0x22,
+0x78,0x36,0x7C,0x00,0x7D,0x00,0x7B,0xFF,0x30,0x00,0x1C,0x7A,0x1F,0x79,0xD8,0x12,
+0x0D,0xD6,0x7A,0x1F,0x79,0xDB,0x12,0x0D,0xCE,0x78,0x24,0x7C,0x00,0x7D,0x00,0x7B,
+0xFF,0x7A,0x1F,0x79,0xD2,0x80,0x1A,0x7A,0x1F,0x79,0xDE,0x12,0x0D,0xD6,0x7A,0x1F,
+0x79,0xE1,0x12,0x0D,0xCE,0x78,0x24,0x7C,0x00,0x7D,0x00,0x7B,0xFF,0x7A,0x1F,0x79,
+0xD5,0x12,0x0D,0xD6,0x75,0x2B,0x00,0x75,0x2C,0x80,0x75,0x29,0xFF,0x75,0x2A,0x80,
+0x7F,0x24,0x12,0x10,0x32,0x7D,0xBF,0x12,0x12,0x2F,0x7D,0xFF,0x12,0x12,0x27,0x12,
+0x00,0x03,0x8E,0x3C,0x8F,0x3D,0x7D,0xFF,0x12,0x12,0x2F,0x7D,0xBF,0xAF,0x3A,0xAE,
+0x39,0x12,0x1D,0x1F,0x12,0x00,0x03,0x8E,0x3E,0x8F,0x3F,0xC3,0xE5,0x3D,0x95,0x3F,
+0xE5,0x3C,0x95,0x3E,0x78,0x2D,0x7C,0x00,0x7D,0x00,0x7B,0x00,0x50,0x06,0x7A,0x00,
+0x79,0x36,0x80,0x04,0x7A,0x00,0x79,0x39,0x12,0x0D,0xD6,0x7D,0xFF,0x7C,0x07,0x12,
+0x12,0x27,0x75,0x34,0x07,0x75,0x35,0xFF,0x75,0x32,0x05,0x75,0x33,0xFF,0x7F,0x2D,
+0x12,0x10,0x32,0xE5,0x28,0x24,0x10,0xF5,0x2C,0xE4,0x35,0x27,0xF5,0x2B,0xE5,0x28,
+0x24,0xF0,0xF5,0x2A,0xE5,0x27,0x34,0xFF,0xF5,0x29,0x7F,0x24,0x12,0x10,0x32,0xAD,
+0x31,0xAC,0x30,0xAF,0x2E,0xAE,0x2D,0x12,0x1D,0x1F,0xAB,0x28,0xAA,0x27,0xAD,0x26,
+0xAF,0x25,0xAE,0x24,0x02,0x19,0xD4,0xAF,0x3A,0xAE,0x39,0x12,0x1D,0x1F,0x22,0x7C,
+0x07,0xAF,0x37,0xAE,0x36,0x12,0x1D,0x1F,0x22,0x7F,0x20,0x7E,0x00,0x12,0x1C,0x5F,
+0x8E,0x2B,0x8F,0x2C,0x7A,0x00,0x30,0x00,0x04,0x7B,0x02,0x80,0x02,0x7B,0x01,0x7D,
+0x10,0x7F,0x20,0x7E,0x00,0x12,0x19,0xD4,0x7D,0xD0,0x7F,0x1E,0x7E,0x01,0x12,0x1B,
+0xF4,0x8E,0x2D,0x8F,0x2E,0x7F,0x1D,0x7E,0x01,0x12,0x1C,0x5F,0xE4,0xFC,0xFD,0xC0,
+0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0xFE,0xE5,0x2E,0x12,0x17,0x7D,0xD0,0x03,0xD0,
+0x02,0xD0,0x01,0xD0,0x00,0x12,0x05,0xA3,0x8F,0x32,0x8E,0x31,0x8D,0x30,0x8C,0x2F,
+0x7D,0xAA,0x7F,0x1C,0x7E,0x01,0x12,0x1B,0xF4,0xEF,0x04,0xF5,0x33,0x7D,0x86,0x7F,
+0x1F,0x7E,0x01,0x12,0x1B,0xF4,0xEF,0x04,0xF5,0x34,0xAD,0x2C,0xAC,0x2B,0x7F,0x20,
+0x7E,0x00,0x12,0x1D,0x1F,0xAF,0x34,0x12,0x16,0xF6,0x12,0x17,0x5B,0xC0,0x04,0xC0,
+0x05,0xC0,0x06,0xC0,0x07,0xAC,0x33,0xE4,0x12,0x03,0x67,0xD0,0x03,0xD0,0x02,0xD0,
+0x01,0xD0,0x00,0x12,0x01,0x3E,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0xAF,0x32,
+0xAE,0x31,0xAD,0x30,0xAC,0x2F,0x12,0x17,0x42,0x12,0x02,0x47,0xC0,0x04,0xC0,0x05,
+0xC0,0x06,0xC0,0x07,0xE5,0x2D,0xC4,0xF8,0x54,0xF0,0xC8,0x68,0xFE,0xE5,0x2E,0xC4,
+0x54,0x0F,0x48,0x24,0x04,0x12,0x17,0x3A,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,
+0x12,0x00,0x4D,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,0x12,0x01,0x3E,0x22,0x8F,
+0x31,0x8E,0x30,0x8D,0x2F,0x8C,0x2E,0x75,0x37,0xFF,0xE5,0x37,0x25,0xE0,0xFD,0xE4,
+0x33,0xFC,0xE4,0x12,0x03,0x62,0xAB,0x31,0xAA,0x30,0xA9,0x2F,0xA8,0x2E,0x12,0x01,
+0x3E,0x8F,0x35,0x8E,0x34,0x8D,0x33,0x8C,0x32,0x7F,0x28,0x7E,0x6B,0x7D,0xEE,0x7C,
+0x4E,0x12,0x17,0x66,0x40,0x0F,0x7F,0xBB,0x7E,0xEE,0x7D,0x20,0x7C,0x4F,0x12,0x17,
+0x66,0x60,0x08,0x40,0x06,0xD5,0x37,0xC2,0x7F,0x03,0x22,0xE5,0x37,0x7D,0xA3,0x7F,
+0x89,0x12,0x13,0xDA,0x8F,0x36,0xEF,0x7D,0xD4,0x7F,0x88,0x12,0x13,0xDA,0xAB,0x07,
+0xAA,0x06,0xA9,0x05,0xA8,0x04,0xAF,0x36,0xE4,0xFC,0xFD,0xFE,0x12,0x05,0x95,0xE4,
+0x12,0x03,0x5D,0x8F,0x3A,0x8E,0x39,0x8D,0x38,0x8C,0x37,0xE4,0xFF,0xFE,0x7D,0x80,
+0x7C,0x49,0xAB,0x3A,0xAA,0x39,0xA9,0x38,0xA8,0x37,0x12,0x17,0x86,0x8F,0x3E,0x8E,
+0x3D,0x8D,0x3C,0x8C,0x3B,0xE4,0xAB,0x07,0xAA,0x06,0x7D,0xF0,0x7F,0x87,0xFE,0x12,
+0x19,0xD4,0xAF,0x3E,0xAE,0x3D,0xAD,0x3C,0xAC,0x3B,0x12,0x17,0x71,0x7F,0x88,0x7E,
+0x00,0x12,0x19,0xD4,0xE4,0xFF,0x12,0x06,0x59,0x22,0x24,0xFF,0xFB,0xE4,0x34,0xFF,
+0xFA,0x7E,0x00,0x12,0x19,0xD4,0xAB,0x0F,0xAA,0x0E,0xA9,0x0D,0xA8,0x0C,0xAF,0x35,
+0xAE,0x34,0xAD,0x33,0xAC,0x32,0x12,0x02,0x47,0x12,0x03,0x9B,0x22,0x7F,0x20,0x7E,
+0x00,0x12,0x1C,0x5F,0x8E,0x22,0x8F,0x23,0x12,0x0A,0xB2,0x8F,0x21,0xE5,0x21,0x60,
+0x03,0x02,0x14,0xA5,0x12,0x15,0x82,0x12,0x0E,0xEC,0x12,0x1B,0xF4,0xBF,0x02,0x0C,
+0x7D,0x55,0x12,0x14,0xAD,0xE4,0xFB,0xFA,0x7D,0x33,0x80,0x0A,0x7D,0x66,0x12,0x14,
+0xAD,0xE4,0xFB,0xFA,0x7D,0x44,0x7F,0x0D,0x7E,0x01,0x12,0x19,0xD4,0x12,0x0E,0x22,
+0x12,0x19,0xD4,0x12,0x0E,0x53,0x12,0x1B,0xF4,0xEF,0x4E,0x70,0x1B,0xFA,0x12,0x0E,
+0x51,0x12,0x19,0xD4,0x7B,0x01,0x12,0x0E,0x24,0x12,0x19,0xD4,0xE4,0xFB,0xFA,0x7D,
+0x11,0x7F,0x1C,0x7E,0x01,0x12,0x19,0xD4,0xAD,0x23,0xAC,0x22,0x7F,0x20,0x7E,0x00,
+0x12,0x1D,0x1F,0xAF,0x0B,0xAE,0x0A,0xAD,0x09,0xAC,0x08,0x12,0x19,0x4A,0x7B,0x01,
+0x7A,0x00,0x7D,0xDD,0x12,0x14,0xB8,0x12,0x0E,0x18,0x12,0x19,0xD4,0xE4,0xFB,0xFA,
+0x7D,0x55,0x12,0x14,0xB8,0x12,0x0D,0xBA,0x78,0x47,0x12,0x0D,0xF4,0x12,0x1B,0x10,
+0xC2,0x00,0x12,0x11,0x40,0xE5,0x21,0x7F,0x00,0x60,0x01,0xFF,0x22,0xE4,0xFB,0xFA,
+0x7F,0x0C,0x7E,0x01,0x12,0x19,0xD4,0x22,0x7F,0x0C,0x7E,0x04,0x12,0x19,0xD4,0x22,
+0x12,0x17,0x8C,0x7B,0x00,0x7A,0xC8,0x79,0x2F,0x78,0x4C,0x12,0x02,0x47,0xE4,0xFB,
+0xFA,0xF9,0x78,0x3F,0x12,0x00,0x4D,0x12,0x03,0x9B,0x8F,0x2C,0xE5,0x2C,0xC3,0x94,
+0x02,0x50,0x03,0x75,0x2C,0x02,0xE5,0x2C,0xD3,0x94,0x09,0x40,0x09,0xE5,0x2C,0x94,
+0x0C,0x50,0x03,0x75,0x2C,0x0C,0xE5,0x2C,0xD3,0x94,0x0D,0x40,0x03,0x75,0x2C,0x0D,
+0xAC,0x2C,0xE4,0x12,0x03,0x67,0x7B,0x00,0x7A,0xC8,0x79,0x2F,0x78,0x4C,0x12,0x01,
+0x3E,0x12,0x13,0x1F,0x8F,0x2B,0xE5,0x2C,0x25,0xE0,0x25,0xE0,0xF5,0x2D,0x7D,0xBB,
+0x7F,0x86,0x7E,0x00,0x12,0x1B,0xF4,0xEF,0x64,0x01,0x4E,0x70,0x12,0x7D,0xCB,0x7F,
+0x89,0xFE,0x12,0x1B,0xF4,0x12,0x1D,0x95,0xE5,0x2D,0x8F,0xF0,0x84,0xF5,0x2D,0xAC,
+0x2D,0xE4,0x12,0x03,0x67,0x12,0x0F,0x31,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,
+0x7F,0x00,0x7E,0x00,0x7D,0x00,0x7C,0x40,0x12,0x0F,0x31,0x12,0x0E,0x7E,0xD0,0x07,
+0xD0,0x06,0xD0,0x05,0xD0,0x04,0x12,0x02,0x47,0x12,0x03,0x9B,0x12,0x1D,0x95,0xEF,
+0x14,0xF5,0x2D,0xFB,0x7A,0x00,0x7D,0x70,0x7F,0x07,0x7E,0x04,0x12,0x19,0xD4,0xAF,
+0x2B,0x22,0xD2,0x04,0xE4,0xFB,0xFA,0xFD,0xFF,0x7E,0x01,0x12,0x19,0xD4,0x12,0x0E,
+0x46,0x12,0x19,0xD4,0xE4,0xFB,0xFA,0x7D,0xED,0xFF,0x7E,0x04,0x12,0x19,0xD4,0x7D,
+0x20,0x7C,0x10,0x7F,0x0E,0x7E,0x01,0x12,0x1D,0x1F,0x78,0x24,0x7C,0x00,0x7D,0x00,
+0x7B,0xFF,0x7A,0x1F,0x79,0xC6,0x12,0x0D,0xD6,0x78,0x2D,0x7C,0x00,0x7D,0x00,0x7B,
+0xFF,0x7A,0x1F,0x79,0xC9,0x12,0x0D,0xD6,0x75,0x34,0x00,0x75,0x35,0x3F,0x75,0x2B,
+0x00,0x75,0x2C,0x3F,0x75,0x32,0xFF,0x75,0x33,0xC1,0x75,0x29,0xFF,0x75,0x2A,0xC1,
+0x12,0x16,0x34,0x24,0x08,0x12,0x0E,0xCE,0x24,0xF8,0xF5,0x2A,0xE5,0x27,0x34,0xFF,
+0xF5,0x29,0xE5,0x31,0x24,0x08,0xF5,0x35,0xE4,0x35,0x30,0xF5,0x34,0xE5,0x31,0x24,
+0xF8,0xF5,0x33,0xE5,0x30,0x34,0xFF,0xF5,0x32,0x12,0x16,0x34,0x24,0x04,0x12,0x0E,
+0xCE,0x24,0xFC,0xF5,0x2A,0xE5,0x27,0x34,0xFF,0xF5,0x29,0x7F,0x24,0x12,0x10,0x32,
+0x7D,0x22,0x12,0x0E,0x76,0x12,0x19,0xD4,0x12,0x0E,0x87,0xFF,0x7E,0x01,0x12,0x19,
+0xD4,0xC2,0x04,0x22,0x7F,0x24,0x12,0x10,0x32,0x7F,0x2D,0x12,0x10,0x32,0xE5,0x28,
+0x22,0x12,0x0E,0x87,0xFF,0x7E,0x01,0x12,0x19,0xD4,0xE4,0xFB,0xFA,0x7D,0x88,0x7F,
+0x08,0x7E,0x02,0x12,0x19,0xD4,0x12,0x0E,0x18,0x12,0x19,0xD4,0xE4,0xFB,0xFA,0x7D,
+0xF0,0x7F,0x04,0x7E,0x02,0x12,0x19,0xD4,0x78,0x22,0x7C,0x00,0x7D,0x00,0x7B,0xFF,
+0x7A,0x1F,0x79,0xCC,0x12,0x0D,0xD6,0x75,0x29,0x00,0x75,0x2A,0x7F,0x75,0x27,0xFF,
+0x75,0x28,0x80,0x7F,0x22,0x12,0x10,0x32,0x78,0x2B,0x7C,0x00,0x7D,0x00,0x7B,0xFF,
+0x7A,0x1F,0x79,0xCF,0x12,0x0D,0xD6,0x75,0x32,0x00,0x75,0x33,0x7F,0x75,0x30,0xFF,
+0x75,0x31,0x80,0x7F,0x2B,0x12,0x10,0x32,0xE5,0x26,0x24,0x04,0xF5,0x2A,0xE4,0x35,
+0x25,0xF5,0x29,0xE5,0x26,0x24,0xFC,0xF5,0x28,0xE5,0x25,0x34,0xFF,0xF5,0x27,0x7F,
+0x22,0x12,0x10,0x32,0xE5,0x2F,0x24,0x04,0xF5,0x33,0xE4,0x35,0x2E,0xF5,0x32,0xE5,
+0x2F,0x24,0xFC,0xF5,0x31,0xE5,0x2E,0x34,0xFF,0xF5,0x30,0x7F,0x2B,0x12,0x10,0x32,
+0xE5,0x26,0xAD,0x2F,0xFC,0x7F,0x04,0x7E,0x02,0x02,0x1D,0x1F,0xE5,0x4C,0x25,0xE0,
+0x25,0xE0,0x24,0x43,0xF8,0x22,0x12,0x1D,0x95,0xAC,0x06,0xAD,0x07,0xE4,0x12,0x03,
+0x62,0xA8,0x04,0xA9,0x05,0xAA,0x06,0xAB,0x07,0x22,0xE5,0x4C,0x25,0xE0,0x25,0xE0,
+0x24,0x45,0xF8,0x22,0x7C,0x4F,0xAB,0x34,0xAA,0x33,0xA9,0x32,0xA8,0x31,0x02,0x02,
+0xE4,0xAF,0x39,0xAE,0x38,0xAD,0x37,0xAC,0x36,0x02,0x02,0x47,0xC3,0xEF,0x9D,0xEC,
+0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,0x22,0x24,0x01,0xFD,0xE4,0x3E,0xFC,0xE4,0x02,
+0x03,0x62,0xE4,0x12,0x03,0x5D,0xE4,0xFB,0xFA,0x79,0x80,0x78,0x49,0x22,0xE6,0xFC,
+0x08,0xE6,0xFD,0x74,0x01,0x7E,0x00,0xA8,0x4D,0x08,0x22,0xAF,0x0F,0xAE,0x0E,0xAD,
+0x0D,0xAC,0x0C,0x02,0x02,0x47,0xAB,0x35,0xAA,0x34,0xA9,0x33,0xA8,0x32,0x02,0x02,
+0xE4,0x78,0x10,0x12,0x05,0xBE,0xAB,0x07,0xAA,0x06,0x7D,0x30,0x22,0x54,0x0F,0xFF,
+0xE4,0x78,0x10,0x02,0x05,0xD1,0x12,0x01,0x3E,0x02,0x03,0x9B,0x7D,0xA3,0x7F,0x89,
+0x7E,0x00,0x12,0x1B,0xF4,0xEF,0x12,0x17,0x38,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,
+0x07,0xE4,0xFB,0xFA,0xF9,0x78,0x40,0x12,0x17,0x5B,0xD0,0x03,0xD0,0x02,0xD0,0x01,
+0xD0,0x00,0x12,0x02,0x47,0x8F,0x41,0x8E,0x40,0x8D,0x3F,0x8C,0x3E,0x7D,0xD0,0x7F,
+0x88,0x7E,0x00,0x12,0x1B,0xF4,0x8E,0x42,0x8F,0x43,0x7D,0xF0,0x7F,0x87,0x7E,0x00,
+0x12,0x1B,0xF4,0xE4,0xFC,0xFD,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0xFE,0xE5,
+0x43,0x12,0x17,0x7D,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,0x12,0x05,0xA3,0x12,
+0x17,0x42,0x12,0x02,0x47,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0xE5,0x42,0xC4,
+0xF8,0x54,0xF0,0xC8,0x68,0xFE,0xE5,0x43,0xC4,0x54,0x0F,0x48,0x12,0x17,0x38,0xD0,
+0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,0x12,0x00,0x4D,0xAB,0x41,0xAA,0x40,0xA9,0x3F,
+0xA8,0x3E,0x12,0x01,0x3E,0x22,0x75,0x22,0xB0,0x75,0x23,0x00,0x7D,0x22,0x12,0x0E,
+0x1A,0x12,0x19,0xD4,0x12,0x0E,0x18,0x12,0x19,0xD4,0x12,0x0D,0xBA,0xE4,0xFB,0xFA,
+0xF9,0x78,0x40,0x12,0x01,0x3E,0x7B,0x00,0x7A,0xBA,0x79,0x5B,0x78,0x49,0x12,0x0D,
+0xFA,0x12,0x1B,0x10,0x12,0x00,0x03,0x8E,0x26,0x8F,0x27,0x7D,0x40,0x7F,0x19,0x7E,
+0x01,0x12,0x1B,0xF4,0x8F,0x24,0x12,0x0E,0xBD,0x12,0x1B,0xF4,0x8F,0x25,0x12,0x0E,
+0xC4,0x50,0x14,0xE5,0x25,0xC3,0x94,0x0F,0x50,0x0D,0x05,0x25,0xE5,0x25,0x7D,0x52,
+0x7F,0x13,0x12,0x18,0xAE,0x80,0xE7,0x12,0x0E,0xC4,0x50,0x14,0xE5,0x24,0xC3,0x94,
+0x12,0x50,0x0D,0x05,0x24,0xE5,0x24,0x7D,0x40,0x7F,0x19,0x12,0x18,0xAE,0x80,0xE7,
+0x7D,0x77,0x12,0x0E,0x48,0x12,0x19,0xD4,0x12,0x0E,0x46,0x02,0x19,0xD4,0xFB,0x7A,
+0x00,0x7E,0x01,0x12,0x19,0xD4,0x12,0x00,0x03,0x8E,0x26,0x8F,0x27,0x22,0x78,0x7F,
+0xE4,0xF6,0xD8,0xFD,0x75,0x81,0x54,0x02,0x19,0x05,0x02,0x1B,0x64,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,0x1D,0xA7,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,0x8F,0x27,0x8E,0x26,0x8D,0x25,
+0x8C,0x24,0x75,0x28,0x02,0x75,0x29,0x02,0x12,0x0E,0xBD,0x12,0x1B,0xF4,0x8F,0x2A,
+0x7D,0xFA,0x7F,0x08,0x7E,0x01,0x12,0x1B,0xF4,0x8F,0x2B,0x7D,0xDD,0x12,0x0E,0x76,
+0x12,0x19,0xD4,0x12,0x0E,0x18,0x12,0x19,0xD4,0xC2,0x00,0xAF,0x27,0xAE,0x26,0xAD,
+0x25,0xAC,0x24,0x12,0x0D,0xC4,0x12,0x0D,0xF2,0x12,0x1B,0x10,0x80,0x1B,0x12,0x0E,
+0xA6,0x40,0x1B,0xE5,0x28,0x25,0x2A,0xF5,0x2A,0xD3,0x94,0x0F,0x50,0x10,0xE5,0x2A,
+0xFB,0x7A,0x00,0x12,0x0E,0xBD,0x12,0x19,0xD4,0x12,0x00,0x03,0x80,0xE0,0x12,0x0E,
+0xA6,0x40,0x1E,0xE5,0x29,0x25,0x2B,0xF5,0x2B,0xD3,0x94,0x14,0x50,0x13,0xE5,0x2B,
+0xFB,0x7A,0x00,0x7D,0xFA,0x7F,0x08,0x7E,0x01,0x12,0x19,0xD4,0x12,0x00,0x03,0x80,
+0xDD,0x7F,0x00,0x22,0x8A,0x51,0x8B,0x52,0xA9,0x05,0x8F,0x82,0x8E,0x83,0x12,0x1C,
+0x5F,0xAD,0x07,0xAC,0x06,0xE9,0xC4,0x54,0x0F,0xFF,0xE9,0x54,0x0F,0xFB,0xC3,0xEF,
+0x9B,0x04,0xFF,0x74,0xFF,0xFE,0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,0xCE,0x33,0xCE,
+0xD8,0xF9,0xF4,0xFF,0xEE,0xF4,0xFE,0xEF,0xA8,0x03,0x08,0x80,0x05,0xC3,0x33,0xCE,
+0x33,0xCE,0xD8,0xF9,0xF5,0x54,0x8E,0x53,0xE9,0x54,0x0F,0xFF,0xE5,0x52,0xAE,0x51,
+0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xFF,0xE5,0x53,0x5E,
+0xFE,0xE5,0x54,0x5F,0xFF,0xE5,0x54,0xF4,0xFB,0xE5,0x53,0xF4,0x5C,0xFC,0xEB,0x5D,
+0xFD,0xEC,0x4E,0xFC,0xED,0x4F,0xFD,0xAF,0x82,0xAE,0x83,0x02,0x1D,0x1F,0x12,0x17,
+0x8C,0x8F,0x39,0x8E,0x38,0x8D,0x37,0x8C,0x36,0x7D,0xCB,0x7F,0x89,0x7E,0x00,0x12,
+0x1B,0xF4,0x12,0x16,0xF6,0x12,0x17,0x21,0x8F,0x3D,0x8E,0x3C,0x8D,0x3B,0x8C,0x3A,
+0x7D,0xBB,0x7F,0x86,0x7E,0x00,0x12,0x1B,0xF4,0xEF,0x4E,0x70,0x17,0x30,0x01,0x09,
+0xAF,0x3D,0xAE,0x3C,0xAD,0x3B,0xAC,0x3A,0x22,0xE4,0xFB,0xFA,0x79,0x80,0x78,0x40,
+0x12,0x17,0x21,0x22,0x30,0x01,0x0A,0xAF,0x39,0xAE,0x38,0xAD,0x37,0xAC,0x36,0x80,
+0x12,0xE4,0xFB,0xFA,0x79,0x80,0x78,0x40,0xAF,0x3D,0xAE,0x3C,0xAD,0x3B,0xAC,0x3A,
+0x12,0x02,0x47,0x22,0xE5,0x12,0xAD,0x13,0xFC,0xE4,0x12,0x03,0x62,0xE4,0xFB,0xFA,
+0x79,0x7A,0x78,0x44,0x12,0x02,0x47,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0,0x07,0xAC,
+0x11,0xE4,0x12,0x03,0x67,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,0x12,0x00,0x4D,
+0x7B,0x00,0x7A,0x24,0x79,0x74,0x78,0x49,0x12,0x01,0x3E,0x8F,0x24,0x8E,0x23,0x8D,
+0x22,0x8C,0x21,0x30,0x00,0x0A,0x8F,0x0F,0x8E,0x0E,0x8D,0x0D,0x8C,0x0C,0x80,0x0C,
+0x85,0x24,0x0B,0x85,0x23,0x0A,0x85,0x22,0x09,0x85,0x21,0x08,0xE4,0xF5,0x90,0x22,
+0x7E,0x04,0x30,0x00,0x02,0x7E,0x02,0x7F,0x42,0x8E,0x30,0x8F,0x31,0xA2,0x00,0x92,
+0x01,0x12,0x1A,0x4E,0x12,0x17,0x01,0xAF,0x2F,0xAE,0x2E,0xAD,0x2D,0xAC,0x2C,0x12,
+0x02,0x47,0xE4,0xFB,0xFA,0x79,0x80,0x78,0x4F,0x12,0x17,0x86,0x8F,0x35,0x8E,0x34,
+0x8D,0x33,0x8C,0x32,0x78,0x10,0x12,0x05,0xBE,0xAD,0x07,0xAC,0x06,0xAF,0x31,0xAE,
+0x30,0x12,0x1D,0x1F,0xE5,0x31,0x24,0x01,0xFF,0xE4,0x35,0x30,0xFE,0xAC,0x34,0xAD,
+0x35,0x02,0x1D,0x1F,0x75,0x81,0xD0,0xE4,0xF5,0xA2,0x75,0x91,0xFF,0xF5,0x90,0x75,
+0xA1,0x07,0x75,0xA9,0xFF,0x75,0xA8,0x80,0xC2,0xA0,0xD2,0xA1,0x30,0x05,0xFD,0xE5,
+0x10,0x24,0xFE,0x60,0x15,0x14,0x60,0x19,0x14,0x60,0x1A,0x24,0x05,0x60,0x1D,0x24,
+0xFE,0x70,0x1C,0x12,0x1B,0xB3,0x8F,0x90,0x80,0x15,0x12,0x13,0xFD,0x8F,0x90,0x80,
+0x0E,0xC2,0x00,0x80,0x02,0xD2,0x00,0x12,0x1A,0xB4,0x80,0x03,0x75,0x90,0x02,0xC2,
+0x05,0x80,0xC9,0x12,0x0C,0x62,0x8F,0x21,0xE5,0x21,0x70,0x30,0x12,0x18,0x26,0x12,
+0x15,0x82,0x12,0x0D,0xBA,0x7B,0x00,0x7A,0xBA,0x79,0x5B,0x78,0x49,0x12,0x0D,0xFA,
+0x12,0x1B,0x10,0x12,0x16,0x41,0xC2,0x00,0x75,0x2F,0x00,0x75,0x2E,0xBA,0x75,0x2D,
+0x5B,0x75,0x2C,0x49,0x12,0x1B,0x10,0xD2,0x00,0x12,0x11,0x40,0xE5,0x21,0x7F,0x00,
+0x60,0x01,0xFF,0x22,0xA9,0x05,0x12,0x1C,0x5F,0xAC,0x06,0xAD,0x07,0xE9,0xC4,0x54,
+0x0F,0x04,0xFF,0x74,0xFF,0xFE,0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,0xCE,0x33,0xCE,
+0xD8,0xF9,0xF4,0xFF,0xEE,0xF4,0x5C,0xFE,0xED,0x5F,0xFF,0xE9,0x54,0x0F,0xFD,0xEF,
+0xA8,0x05,0x08,0x80,0x05,0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0xFF,0x22,0xC0,0xE0,
+0xC0,0xD0,0x75,0xD0,0x00,0xC0,0x00,0xC0,0x06,0xC0,0x07,0x75,0x90,0xFF,0x7F,0x02,
+0x74,0x10,0x2F,0xF8,0xE6,0xFE,0x74,0x11,0x2F,0xF8,0xA6,0x06,0xDF,0xF2,0x85,0x80,
+0x11,0x75,0x90,0x00,0xD0,0x07,0xD0,0x06,0xD0,0x00,0xD0,0xD0,0xD0,0xE0,0x32,0xE4,
+0xFB,0xFA,0xC2,0xA0,0xC2,0xA1,0xEE,0x54,0x7F,0xFE,0x12,0x1D,0x7F,0xD2,0xA2,0x7D,
+0x10,0xD2,0xA0,0xEB,0x25,0xE0,0xFB,0xEA,0x33,0xFA,0x30,0xA3,0x03,0x43,0x03,0x01,
+0xC2,0xA0,0xDD,0xED,0xD2,0xA1,0xD2,0xA2,0xAE,0x02,0xAF,0x03,0x22,0xE4,0xF9,0x12,
+0x0E,0x2D,0xE9,0x12,0x0E,0x06,0xFD,0x12,0x1D,0x1F,0x09,0xB9,0x3C,0xF1,0xE9,0xC3,
+0x94,0x78,0x50,0x11,0x12,0x0E,0x2D,0xC3,0x74,0x77,0x99,0x12,0x0E,0x06,0xFD,0x12,
+0x1D,0x1F,0x09,0x80,0xE9,0x22,0x7D,0xFF,0x7C,0x7F,0x7F,0x0C,0x7E,0x02,0x12,0x1D,
+0x1F,0x7D,0x55,0x7F,0x00,0x7E,0x02,0x12,0x1D,0x3A,0x7D,0x00,0x7C,0x80,0x7F,0x0C,
+0x7E,0x02,0x12,0x1D,0x1F,0x7D,0x66,0x7F,0x00,0x7E,0x02,0x02,0x1D,0x3A,0x79,0x08,
+0xE9,0x25,0xE0,0x24,0xE0,0xF5,0x82,0xE4,0x34,0x1D,0x12,0x0D,0xE8,0xE9,0x25,0xE0,
+0x24,0xF0,0xF5,0x82,0xE4,0x34,0x1D,0x12,0x0E,0x0F,0xFD,0x12,0x1D,0x1F,0xD9,0xE0,
+0x22,0xE4,0xF5,0x50,0xF5,0x51,0xFD,0xFC,0xE5,0x51,0x25,0xE0,0xF5,0x51,0xE5,0x50,
+0x33,0xF5,0x50,0x0D,0xBD,0x00,0x01,0x0C,0xED,0x64,0xC8,0x4C,0x70,0xEA,0x22,0xAB,
+0x05,0xAA,0x04,0xC2,0xA0,0xC2,0xA1,0xEE,0x44,0x80,0xFE,0x12,0x1D,0x7F,0xAF,0x03,
+0xAE,0x02,0x12,0x1D,0x7F,0xD2,0xA1,0xD2,0xA2,0x22,0x8E,0x4E,0x8F,0x4F,0x8D,0x50,
+0xE4,0xFB,0xFA,0x12,0x19,0xD4,0x7B,0x01,0x7A,0x00,0xAD,0x50,0xAF,0x4F,0xAE,0x4E,
+0x02,0x19,0xD4,0xC3,0xEF,0x64,0x80,0x94,0x80,0x40,0x01,0x22,0xEF,0x33,0x95,0xE0,
+0xFE,0x12,0x1D,0xB8,0xEF,0x44,0x40,0xFF,0x22,0x12,0x1D,0x01,0x30,0x03,0x06,0x7E,
+0x01,0x7F,0x23,0x80,0x04,0x7E,0x00,0x7F,0x8C,0x7D,0xDC,0x12,0x1B,0xF4,0x22,0x7D,
+0x10,0xC2,0xA0,0xEE,0x33,0x92,0xA2,0xEF,0x25,0xE0,0xFF,0xEE,0x33,0xFE,0xD2,0xA0,
+0xDD,0xEF,0xC2,0xA0,0x22,0x74,0x01,0x7E,0x00,0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,
+0xCE,0x33,0xCE,0xD8,0xF9,0xFF,0x22,0x04,0x08,0x4A,0x98,0x96,0x80,0xC1,0x04,0x04,
+0x0C,0x4B,0xEA,0x60,0x00,0xC1,0x05,0x00,0xEE,0x30,0xE7,0x07,0xC3,0xE4,0x9F,0xFF,
+0xE4,0x9E,0xFE,0x22,0x7F,0xC8,0xE5,0x4E,0x25,0xE0,0xF5,0x4E,0xDF,0xF8,0x22,0x20,
+0x04,0x01,0x22,0x12,0x1D,0x53,0x7E,0x00,0x22,0x75,0x90,0xFF,0x85,0x80,0x10,0xD2,
+0x05,0x32,0x01,0x1C,0x01,0x1D,0x01,0x1E,0x01,0x1F,0x01,0x20,0x01,0x21,0x01,0x22,
+0x01,0x23,0xAD,0x43,0x04,0x00,0x07,0x80,0x36,0x40,0xB9,0xFF,0x34,0x04,0x03,0x3F,
+0x06,0x7B,0x00,0x08,0x00,0x04,0x00,0x00,0xFF,0xFA,0xFF,0xF5,0xFF,0xF0,0xFF,0xEC,
+0xFF,0xEA,0xFF,0xEA,0xFF,0xEC,0xFF,0xF2,0xFF,0xFB,0x00,0x06,0x00,0x14,0x00,0x22,
+0x00,0x2E,0x00,0x38,0x00,0x3D,0x00,0x3A,0x00,0x30,0x00,0x1D,0x00,0x03,0xFF,0xE3,
+0xFF,0xC1,0xFF,0xA0,0xFF,0x85,0xFF,0x74,0xFF,0x72,0xFF,0x80,0xFF,0xA2,0xFF,0xD4,
+0x00,0x14,0x00,0x5D,0x00,0xA7,0x00,0xE8,0x01,0x18,0x01,0x2E,0x01,0x23,0x00,0xF4,
+0x00,0x9F,0x00,0x29,0xFF,0x9A,0xFE,0xFE,0xFE,0x67,0xFD,0xE5,0xFD,0x8C,0xFD,0x6E,
+0xFD,0x9A,0xFE,0x1A,0xFE,0xF3,0x00,0x22,0x01,0x9D,0x03,0x54,0x05,0x30,0x07,0x16,
+0x08,0xE8,0x0A,0x89,0x0B,0xDE,0x0C,0xCD,0x0D,0x49,0x00,0x82,0x00,0x85,0x00,0xAE,
+0x01,0x01,0x02,0x00,0x02,0x08,0x00,0x84,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,
+0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x07,0xF0,0x00,0x18,0x01,0x00,0x0C,
+0x21,0x0B,0xF8,0x3F,0x01,0x0C,0x01,0x0D,0x01,0x0E,0x01,0x0F,0x01,0x10,0x01,0x11,
+0x01,0x12,0x01,0x13,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x02,0x01,
+0x02,0x02,0x04,0x00,0x04,0x01,0x04,0x02,0x04,0x03,0x04,0x07,0x04,0x0A,0x04,0x0C,
+0x04,0x40,0x04,0x41,0x04,0x42,0x04,0x43,0x04,0x04,0x04,0x05,0x04,0x06,0x04,0x08,
+0x04,0x09,0x04,0x0D,0x88,0xE5,0x00,0xDE,0x20,0x40,0x30,0x42,0x0B,0xFF,0x00,0x83,
+0x40,0x32,0x03,0xDF,0x00,0x05,0x81,0x80,0x28,0x0C,0x21,0x8C,0x31,0x80,0x07,0xFF,
+0x07,0xFF,0x00,0x81,0x07,0xFF,0x07,0xFF,0x40,0x00,0x07,0x00,0x10,0x00,0x00,0x98,
+0x00,0x20,0x00,0x82,0x00,0x85,0x00,0xAE,0x01,0x0C,0x01,0x0D,0x01,0x10,0x01,0x13,
+0x01,0x15,0x01,0x19,0x08,0x40,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x40,
+0x00,0x1F,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x07,0xF0,0x00,
+0x00,0x1A,0x00,0x40,0x00,0x1F,0x00,0x3C,0xC0,0x00,0x80,0x00,0xF8,0x3F,0x01,0x00,
+0x01,0x01,0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,
+0x01,0x09,0x01,0x0A,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x08,0x02,0x40,0x04,0x00,
+0x04,0x01,0x04,0x02,0x04,0x03,0x04,0x07,0x04,0x40,0x04,0x0A,0x04,0x0C,0x04,0x04,
+0x04,0x05,0x04,0x06,0x04,0x08,0x04,0x09,0x04,0x0B,0x02,0x03,0x02,0x04,0x02,0x05,
+0x02,0x06,0x02,0x07,0x34,0x08,0x60,0x01,0x31,0x80,0x0A,0x12,0x00,0x88,0x00,0x07,
+0x31,0x8C,0x31,0x8C,0x04,0x26,0x61,0xC1,0x10,0x4C,0x00,0x8D,0x07,0xFF,0x07,0xFF,
+0x20,0x70,0x00,0x20,0x00,0x81,0x07,0xFF,0x07,0xFF,0x40,0x00,0x07,0x00,0x00,0x20,
+0x10,0x00,0x00,0x98,0xB0,0x00,0x01,0x0E,0xD7,0x01,0x0E,0x60,0x02,0x04,0xF8,0x02,
+0x04,0x70,0x02,0x03,0xB0,0x04,0x03,0xB0,0x02,0x02,0xA0,0x02,0x01,0xA0,0x04,0x02,
+0xA0,0x04,0x01,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
 };
diff --git a/src/version.h b/src/version.h
deleted file mode 100644
index 76b192f..0000000
--- a/src/version.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- at author Lime Microsystems
- at brief  Automatically generated software version
-*/
-#pragma once
-namespace AutoVersion
-{
-    static const int year = 2016;
-    static const int month = 8;
-    static const int day = 23;
-    static const int hour = 17;
-    static const int minutes = 0;
-    static const int seconds = 27;
-    static const int buildsCounter = 819;
-    static const char branchName[] = "";
-}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/limesuite.git



More information about the pkg-hamradio-commits mailing list