From dd732c788e69033321ee78059b8bba1f6a376a79 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 14:20:56 -0800 Subject: [PATCH 01/13] Remove MotionDriver. --- cmake/modules/FindMotionDriver.cmake | 44 - interface/CMakeLists.txt | 4 - .../external/MotionDriver/CMakeLists.txt | 14 - interface/external/MotionDriver/License.txt | 218 -- .../external/MotionDriver/include/dmpKey.h | 494 --- .../external/MotionDriver/include/dmpmap.h | 264 -- .../external/MotionDriver/include/inv_mpu.h | 127 - .../include/inv_mpu_dmp_motion_driver.h | 97 - .../external/MotionDriver/include/inv_tty.h | 22 - .../MotionDriver/lib/MacOS/libMotionDriver.a | Bin 59312 -> 0 bytes .../MotionDriver/lib/UNIX/libMotionDriver.a | Bin 62086 -> 0 bytes interface/external/MotionDriver/src/inv_mpu.c | 2798 ----------------- .../src/inv_mpu_dmp_motion_driver.c | 1373 -------- interface/external/MotionDriver/src/inv_tty.c | 113 - 14 files changed, 5568 deletions(-) delete mode 100644 cmake/modules/FindMotionDriver.cmake delete mode 100644 interface/external/MotionDriver/CMakeLists.txt delete mode 100644 interface/external/MotionDriver/License.txt delete mode 100644 interface/external/MotionDriver/include/dmpKey.h delete mode 100644 interface/external/MotionDriver/include/dmpmap.h delete mode 100644 interface/external/MotionDriver/include/inv_mpu.h delete mode 100644 interface/external/MotionDriver/include/inv_mpu_dmp_motion_driver.h delete mode 100644 interface/external/MotionDriver/include/inv_tty.h delete mode 100644 interface/external/MotionDriver/lib/MacOS/libMotionDriver.a delete mode 100644 interface/external/MotionDriver/lib/UNIX/libMotionDriver.a delete mode 100644 interface/external/MotionDriver/src/inv_mpu.c delete mode 100644 interface/external/MotionDriver/src/inv_mpu_dmp_motion_driver.c delete mode 100644 interface/external/MotionDriver/src/inv_tty.c diff --git a/cmake/modules/FindMotionDriver.cmake b/cmake/modules/FindMotionDriver.cmake deleted file mode 100644 index b24511161b..0000000000 --- a/cmake/modules/FindMotionDriver.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Try to find the MotionDriver library to access the InvenSense gyros -# -# You must provide a MOTIONDRIVER_ROOT_DIR which contains lib and include directories -# -# Once done this will define -# -# MOTIONDRIVER_FOUND - system found MotionDriver -# MOTIONDRIVER_INCLUDE_DIRS - the MotionDriver include directory -# MOTIONDRIVER_LIBRARIES - Link this to use MotionDriver -# -# Created on 7/9/2013 by Andrzej Kapolka -# Copyright (c) 2013 High Fidelity -# - -if (MOTIONDRIVER_LIBRARIES AND MOTIONDRIVER_INCLUDE_DIRS) - # in cache already - set(MOTIONDRIVER_FOUND TRUE) -else (MOTIONDRIVER_LIBRARIES AND MOTIONDRIVER_INCLUDE_DIRS) - find_path(MOTIONDRIVER_INCLUDE_DIRS inv_mpu.h ${MOTIONDRIVER_ROOT_DIR}/include) - - if (APPLE) - find_library(MOTIONDRIVER_LIBRARIES libMotionDriver.a ${MOTIONDRIVER_ROOT_DIR}/lib/MacOS/) - elseif (UNIX) - find_library(MOTIONDRIVER_LIBRARIES libMotionDriver.a ${MOTIONDRIVER_ROOT_DIR}/lib/UNIX/) - endif () - - if (MOTIONDRIVER_INCLUDE_DIRS AND MOTIONDRIVER_LIBRARIES) - set(MOTIONDRIVER_FOUND TRUE) - endif (MOTIONDRIVER_INCLUDE_DIRS AND MOTIONDRIVER_LIBRARIES) - - if (MOTIONDRIVER_FOUND) - if (NOT MOTIONDRIVER_FIND_QUIETLY) - message(STATUS "Found MotionDriver: ${MOTIONDRIVER_LIBRARIES}") - endif (NOT MOTIONDRIVER_FIND_QUIETLY) - else (MOTIONDRIVER_FOUND) - if (MOTIONDRIVER_FIND_REQUIRED) - message(FATAL_ERROR "Could not find MotionDriver") - endif (MOTIONDRIVER_FIND_REQUIRED) - endif (MOTIONDRIVER_FOUND) - - # show the MOTIONDRIVER_INCLUDE_DIRS and MOTIONDRIVER_LIBRARIES variables only in the advanced view - mark_as_advanced(MOTIONDRIVER_INCLUDE_DIRS MOTIONDRIVER_LIBRARIES) - -endif (MOTIONDRIVER_LIBRARIES AND MOTIONDRIVER_INCLUDE_DIRS) diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 65fd74bc98..b1e4305cbf 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -10,7 +10,6 @@ project(${TARGET_NAME}) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") set(FACESHIFT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/faceshift) set(LIBOVR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LibOVR) -set(MOTIONDRIVER_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/MotionDriver) set(SIXENSE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/Sixense) if (DEFINED ENV{JOB_ID}) @@ -128,7 +127,6 @@ link_hifi_library(script-engine ${TARGET_NAME} ${ROOT_DIR}) find_package(Faceshift) find_package(GLM REQUIRED) find_package(LibOVR) -find_package(MotionDriver) find_package(Sixense) find_package(ZLIB) @@ -166,7 +164,6 @@ include_directories( SYSTEM ${FACESHIFT_INCLUDE_DIRS} ${GLM_INCLUDE_DIRS} - ${MOTIONDRIVER_INCLUDE_DIRS} ) MESSAGE("here..." ${FACESHIFT_LIBRARIES} ) @@ -174,7 +171,6 @@ MESSAGE("here..." ${FACESHIFT_LIBRARIES} ) target_link_libraries( ${TARGET_NAME} ${FACESHIFT_LIBRARIES} - ${MOTIONDRIVER_LIBRARIES} ${ZLIB_LIBRARIES} ) diff --git a/interface/external/MotionDriver/CMakeLists.txt b/interface/external/MotionDriver/CMakeLists.txt deleted file mode 100644 index 521f3f8096..0000000000 --- a/interface/external/MotionDriver/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -set(TARGET_NAME MotionDriver) -project(${TARGET_NAME}) - -# let the library know which device we're using -add_definitions(-DMPU9150) - -# grab the implemenation and header files -file(GLOB MOTION_DRIVER_SRCS include/*.h src/*.c) - -include_directories(include) - -add_library(${TARGET_NAME} ${MOTION_DRIVER_SRCS}) diff --git a/interface/external/MotionDriver/License.txt b/interface/external/MotionDriver/License.txt deleted file mode 100644 index ed2e2e1f24..0000000000 --- a/interface/external/MotionDriver/License.txt +++ /dev/null @@ -1,218 +0,0 @@ -SOFTWARE LICENSE AGREEMENT - -Unless you and InvenSense Corporation ("InvenSense") execute a separate written -software license agreement governing use of the accompanying software, this -software is licensed to you under the terms of this Software License -Agreement ("Agreement"). - -ANY USE, REPRODUCTION OR DISTRIBUTION OF THE SOFTWARE CONSTITUTES YOUR -ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS. - -1.1. "InvenSense Product" means any of the proprietary integrated circuit -product(s) sold by InvenSense with which the Software was designed to be used, -or their successors. - -1.2. "Licensee" means you or if you are accepting on behalf of an entity -then the entity and its affiliates exercising rights under, and complying -with all of the terms of this Agreement. - -1.3. "Software" shall mean that software made available by InvenSense to -Licensee in binary code form with this Agreement. - -2. LICENSE GRANT; OWNERSHIP - -2.1. License Grants. Subject to the terms and conditions of this Agreement, -InvenSense hereby grants to Licensee a non-exclusive, non-transferable, -royalty-free license (i) to use and integrate the Software in conjunction -with any other software; and (ii) to reproduce and distribute the Software -complete, unmodified and only for use with a InvenSense Product. - -2.2. Restriction on Modification. If and to the extent that the Software is -designed to be compliant with any published communications standard -(including, without limitation, DOCSIS, HomePNA, IEEE, and ITU standards), -Licensee may not make any modifications to the Software that would cause the -Software or the accompanying InvenSense Products to be incompatible with such -standard. - -2.3. Restriction on Distribution. Licensee shall only distribute the -Software (a) under the terms of this Agreement and a copy of this Agreement -accompanies such distribution, and (b) agrees to defend and indemnify -InvenSense and its licensors from and against any damages, costs, liabilities, -settlement amounts and/or expenses (including attorneys' fees) incurred in -connection with any claim, lawsuit or action by any third party that arises -or results from the use or distribution of any and all Software by the -Licensee except as contemplated herein. - -2.4. Proprietary Notices. Licensee shall not remove, efface or obscure any -copyright or trademark notices from the Software. Licensee shall include -reproductions of the InvenSense copyright notice with each copy of the -Software, except where such Software is embedded in a manner not readily -accessible to the end user. Licensee acknowledges that any symbols, -trademarks, tradenames, and service marks adopted by InvenSense to identify the -Software belong to InvenSense and that Licensee shall have no rights therein. - -2.5. Ownership. InvenSense shall retain all right, title and interest, -including all intellectual property rights, in and to the Software. Licensee -hereby covenants that it will not assert any claim that the Software created -by or for InvenSense infringe any intellectual property right owned or -controlled by Licensee. - -2.6. No Other Rights Granted; Restrictions. Apart from the license rights -expressly set forth in this Agreement, InvenSense does not grant and Licensee -does not receive any ownership right, title or interest nor any security -interest or other interest in any intellectual property rights relating to -the Software, nor in any copy of any part of the foregoing. No license is -granted to Licensee in any human readable code of the Software (source code). -Licensee shall not (i) use, license, sell or otherwise distribute the -Software except as provided in this Agreement, (ii) attempt to reverse -engineer, decompile or disassemble any portion of the Software; or (iii) use -the Software or other material in violation of any applicable law or -regulation, including but not limited to any regulatory agency, such as FCC, -rules. - -3. NO WARRANTY OR SUPPORT - -3.1. No Warranty. THE SOFTWARE IS OFFERED "AS IS," AND INVENSENSE GRANTS AND -LICENSEE RECEIVES NO WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, BY STATUTE, -COMMUNICATION OR CONDUCT WITH LICENSEE, OR OTHERWISE. INVENSENSE SPECIFICALLY -DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A SPECIFIC -PURPOSE OR NONINFRINGEMENT CONCERNING THE SOFTWARE OR ANY UPGRADES TO OR -DOCUMENTATION FOR THE SOFTWARE. WITHOUT LIMITATION OF THE ABOVE, INVENSENSE -GRANTS NO WARRANTY THAT THE SOFTWARE IS ERROR-FREE OR WILL OPERATE WITHOUT -INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS USE OR THE RESULTS -THEREFROM INCLUDING, WITHOUT LIMITATION, ITS CORRECTNESS, ACCURACY OR -RELIABILITY. - -3.2. No Support. Nothing in this agreement shall obligate InvenSense to -provide any support for the Software. InvenSense may, but shall be under no -obligation to, correct any defects in the Software and/or provide updates to -licensees of the Software. Licensee shall make reasonable efforts to -promptly report to InvenSense any defects it finds in the Software, as an aid -to creating improved revisions of the Software. - -3.3. Dangerous Applications. The Software is not designed, intended, or -certified for use in components of systems intended for the operation of -weapons, weapons systems, nuclear installations, means of mass -transportation, aviation, life-support computers or equipment (including -resuscitation equipment and surgical implants), pollution control, hazardous -substances management, or for any other dangerous application in which the -failure of the Software could create a situation where personal injury or -death may occur. Licensee understands that use of the Software in such -applications is fully at the risk of Licensee. - -4. TERM AND TERMINATION - -4.1. Termination. This Agreement will automatically terminate if Licensee -fails to comply with any of the terms and conditions hereof. In such event, -Licensee must destroy all copies of the Software and all of its component -parts. - -4.2. Effect Of Termination. Upon any termination of this Agreement, the -rights and licenses granted to Licensee under this Agreement shall -immediately terminate. - -4.3. Survival. The rights and obligations under this Agreement which by -their nature should survive termination will remain in effect after -expiration or termination of this Agreement. - -5. CONFIDENTIALITY - -5.1. Obligations. Licensee acknowledges and agrees that any documentation -relating to the Software, and any other information (if such other -information is identified as confidential or should be recognized as -confidential under the circumstances) provided to Licensee by InvenSense -hereunder (collectively, "Confidential Information") constitute the -confidential and proprietary information of InvenSense, and that Licensee's -protection thereof is an essential condition to Licensee's use and possession -of the Software. Licensee shall retain all Confidential Information in -strict confidence and not disclose it to any third party or use it in any way -except under a written agreement with terms and conditions at least as -protective as the terms of this Section. Licensee will exercise at least the -same amount of diligence in preserving the secrecy of the Confidential -Information as it uses in preserving the secrecy of its own most valuable -confidential information, but in no event less than reasonable diligence. -Information shall not be considered Confidential Information if and to the -extent that it: (i) was in the public domain at the time it was disclosed or -has entered the public domain through no fault of Licensee; (ii) was known to -Licensee, without restriction, at the time of disclosure as proven by the -files of Licensee in existence at the time of disclosure; or (iii) becomes -known to Licensee, without restriction, from a source other than InvenSense -without breach of this Agreement by Licensee and otherwise not in violation -of InvenSense's rights. - -5.2. Return of Confidential Information. Notwithstanding the foregoing, all -documents and other tangible objects containing or representing InvenSense -Confidential Information and all copies thereof which are in the possession -of Licensee shall be and remain the property of InvenSense, and shall be -promptly returned to InvenSense upon written request by InvenSense or upon -termination of this Agreement. - -6. LIMITATION OF LIABILITY -TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL INVENSENSE OR ANY OF -INVENSENSE'S LICENSORS HAVE ANY LIABILITY FOR ANY INDIRECT, INCIDENTAL, -SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER FOR BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR -OTHERWISE, ARISING OUT OF THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO LOSS -OF PROFITS, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. IN NO EVENT WILL INVENSENSE'S LIABILITY WHETHER IN CONTRACT, TORT -(INCLUDING NEGLIGENCE), OR OTHERWISE, EXCEED THE AMOUNT PAID BY LICENSEE FOR -SOFTWARE UNDER THIS AGREEMENT. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING -ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. - -7. MISCELLANEOUS - -7.1. Export Regulations. YOU UNDERSTAND AND AGREE THAT THE SOFTWARE IS -SUBJECT TO UNITED STATES AND OTHER APPLICABLE EXPORT-RELATED LAWS AND -REGULATIONS AND THAT YOU MAY NOT EXPORT, RE-EXPORT OR TRANSFER THE SOFTWARE -OR ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER THOSE LAWS. -WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT OR TRANSFER OF THE SOFTWARE -TO CUBA, IRAN, NORTH KOREA, SUDAN AND SYRIA IS PROHIBITED. - -7.2 Assignment. This Agreement shall be binding upon and inure to the -benefit of the parties and their respective successors and assigns, provided, -however that Licensee may not assign this Agreement or any rights or -obligation hereunder, directly or indirectly, by operation of law or -otherwise, without the prior written consent of InvenSense, and any such -attempted assignment shall be void. Notwithstanding the foregoing, Licensee -may assign this Agreement to a successor to all or substantially all of its -business or assets to which this Agreement relates that is not a competitor -of InvenSense. - -7.3. Governing Law; Venue. This Agreement shall be governed by the laws of -California without regard to any conflict-of-laws rules, and the United -Nations Convention on Contracts for the International Sale of Goods is hereby -excluded. The sole jurisdiction and venue for actions related to the subject -matter hereof shall be the state and federal courts located in the County of -Orange, California, and both parties hereby consent to such jurisdiction and -venue. - -7.4. Severability. All terms and provisions of this Agreement shall, if -possible, be construed in a manner which makes them valid, but in the event -any term or provision of this Agreement is found by a court of competent -jurisdiction to be illegal or unenforceable, the validity or enforceability -of the remainder of this Agreement shall not be affected if the illegal or -unenforceable provision does not materially affect the intent of this -Agreement. If the illegal or unenforceable provision materially affects the -intent of the parties to this Agreement, this Agreement shall become -terminated. - -7.5. Equitable Relief. Licensee hereby acknowledges that its breach of this -Agreement would cause irreparable harm and significant injury to InvenSense -that may be difficult to ascertain and that a remedy at law would be -inadequate. Accordingly, Licensee agrees that InvenSense shall have the right -to seek and obtain immediate injunctive relief to enforce obligations under -the Agreement in addition to any other rights and remedies it may have. - -7.6. Waiver. The waiver of, or failure to enforce, any breach or default -hereunder shall not constitute the waiver of any other or subsequent breach -or default. - -7.7. Entire Agreement. This Agreement sets forth the entire Agreement -between the parties and supersedes any and all prior proposals, agreements -and representations between them, whether written or oral concerning the -Software. This Agreement may be changed only by mutual agreement of the -parties in writing. - - diff --git a/interface/external/MotionDriver/include/dmpKey.h b/interface/external/MotionDriver/include/dmpKey.h deleted file mode 100644 index 72f95d69d4..0000000000 --- a/interface/external/MotionDriver/include/dmpKey.h +++ /dev/null @@ -1,494 +0,0 @@ -/* - $License: - Copyright (C) 2011 InvenSense Corporation, All Rights Reserved. - $ - */ -#ifndef DMPKEY_H__ -#define DMPKEY_H__ - -#define KEY_CFG_25 (0) -#define KEY_CFG_24 (KEY_CFG_25 + 1) -#define KEY_CFG_26 (KEY_CFG_24 + 1) -#define KEY_CFG_27 (KEY_CFG_26 + 1) -#define KEY_CFG_21 (KEY_CFG_27 + 1) -#define KEY_CFG_20 (KEY_CFG_21 + 1) -#define KEY_CFG_TAP4 (KEY_CFG_20 + 1) -#define KEY_CFG_TAP5 (KEY_CFG_TAP4 + 1) -#define KEY_CFG_TAP6 (KEY_CFG_TAP5 + 1) -#define KEY_CFG_TAP7 (KEY_CFG_TAP6 + 1) -#define KEY_CFG_TAP0 (KEY_CFG_TAP7 + 1) -#define KEY_CFG_TAP1 (KEY_CFG_TAP0 + 1) -#define KEY_CFG_TAP2 (KEY_CFG_TAP1 + 1) -#define KEY_CFG_TAP3 (KEY_CFG_TAP2 + 1) -#define KEY_CFG_TAP_QUANTIZE (KEY_CFG_TAP3 + 1) -#define KEY_CFG_TAP_JERK (KEY_CFG_TAP_QUANTIZE + 1) -#define KEY_CFG_DR_INT (KEY_CFG_TAP_JERK + 1) -#define KEY_CFG_AUTH (KEY_CFG_DR_INT + 1) -#define KEY_CFG_TAP_SAVE_ACCB (KEY_CFG_AUTH + 1) -#define KEY_CFG_TAP_CLEAR_STICKY (KEY_CFG_TAP_SAVE_ACCB + 1) -#define KEY_CFG_FIFO_ON_EVENT (KEY_CFG_TAP_CLEAR_STICKY + 1) -#define KEY_FCFG_ACCEL_INPUT (KEY_CFG_FIFO_ON_EVENT + 1) -#define KEY_FCFG_ACCEL_INIT (KEY_FCFG_ACCEL_INPUT + 1) -#define KEY_CFG_23 (KEY_FCFG_ACCEL_INIT + 1) -#define KEY_FCFG_1 (KEY_CFG_23 + 1) -#define KEY_FCFG_3 (KEY_FCFG_1 + 1) -#define KEY_FCFG_2 (KEY_FCFG_3 + 1) -#define KEY_CFG_3D (KEY_FCFG_2 + 1) -#define KEY_CFG_3B (KEY_CFG_3D + 1) -#define KEY_CFG_3C (KEY_CFG_3B + 1) -#define KEY_FCFG_5 (KEY_CFG_3C + 1) -#define KEY_FCFG_4 (KEY_FCFG_5 + 1) -#define KEY_FCFG_7 (KEY_FCFG_4 + 1) -#define KEY_FCFG_FSCALE (KEY_FCFG_7 + 1) -#define KEY_FCFG_AZ (KEY_FCFG_FSCALE + 1) -#define KEY_FCFG_6 (KEY_FCFG_AZ + 1) -#define KEY_FCFG_LSB4 (KEY_FCFG_6 + 1) -#define KEY_CFG_12 (KEY_FCFG_LSB4 + 1) -#define KEY_CFG_14 (KEY_CFG_12 + 1) -#define KEY_CFG_15 (KEY_CFG_14 + 1) -#define KEY_CFG_16 (KEY_CFG_15 + 1) -#define KEY_CFG_18 (KEY_CFG_16 + 1) -#define KEY_CFG_6 (KEY_CFG_18 + 1) -#define KEY_CFG_7 (KEY_CFG_6 + 1) -#define KEY_CFG_4 (KEY_CFG_7 + 1) -#define KEY_CFG_5 (KEY_CFG_4 + 1) -#define KEY_CFG_2 (KEY_CFG_5 + 1) -#define KEY_CFG_3 (KEY_CFG_2 + 1) -#define KEY_CFG_1 (KEY_CFG_3 + 1) -#define KEY_CFG_EXTERNAL (KEY_CFG_1 + 1) -#define KEY_CFG_8 (KEY_CFG_EXTERNAL + 1) -#define KEY_CFG_9 (KEY_CFG_8 + 1) -#define KEY_CFG_ORIENT_3 (KEY_CFG_9 + 1) -#define KEY_CFG_ORIENT_2 (KEY_CFG_ORIENT_3 + 1) -#define KEY_CFG_ORIENT_1 (KEY_CFG_ORIENT_2 + 1) -#define KEY_CFG_GYRO_SOURCE (KEY_CFG_ORIENT_1 + 1) -#define KEY_CFG_ORIENT_IRQ_1 (KEY_CFG_GYRO_SOURCE + 1) -#define KEY_CFG_ORIENT_IRQ_2 (KEY_CFG_ORIENT_IRQ_1 + 1) -#define KEY_CFG_ORIENT_IRQ_3 (KEY_CFG_ORIENT_IRQ_2 + 1) -#define KEY_FCFG_MAG_VAL (KEY_CFG_ORIENT_IRQ_3 + 1) -#define KEY_FCFG_MAG_MOV (KEY_FCFG_MAG_VAL + 1) -#define KEY_CFG_LP_QUAT (KEY_FCFG_MAG_MOV + 1) - -/* MPU6050 keys */ -#define KEY_CFG_ACCEL_FILTER (KEY_CFG_LP_QUAT + 1) -#define KEY_CFG_MOTION_BIAS (KEY_CFG_ACCEL_FILTER + 1) -#define KEY_TEMPLABEL (KEY_CFG_MOTION_BIAS + 1) - -#define KEY_D_0_22 (KEY_TEMPLABEL + 1) -#define KEY_D_0_24 (KEY_D_0_22 + 1) -#define KEY_D_0_36 (KEY_D_0_24 + 1) -#define KEY_D_0_52 (KEY_D_0_36 + 1) -#define KEY_D_0_96 (KEY_D_0_52 + 1) -#define KEY_D_0_104 (KEY_D_0_96 + 1) -#define KEY_D_0_108 (KEY_D_0_104 + 1) -#define KEY_D_0_163 (KEY_D_0_108 + 1) -#define KEY_D_0_188 (KEY_D_0_163 + 1) -#define KEY_D_0_192 (KEY_D_0_188 + 1) -#define KEY_D_0_224 (KEY_D_0_192 + 1) -#define KEY_D_0_228 (KEY_D_0_224 + 1) -#define KEY_D_0_232 (KEY_D_0_228 + 1) -#define KEY_D_0_236 (KEY_D_0_232 + 1) - -#define KEY_DMP_PREVPTAT (KEY_D_0_236 + 1) -#define KEY_D_1_2 (KEY_DMP_PREVPTAT + 1) -#define KEY_D_1_4 (KEY_D_1_2 + 1) -#define KEY_D_1_8 (KEY_D_1_4 + 1) -#define KEY_D_1_10 (KEY_D_1_8 + 1) -#define KEY_D_1_24 (KEY_D_1_10 + 1) -#define KEY_D_1_28 (KEY_D_1_24 + 1) -#define KEY_D_1_36 (KEY_D_1_28 + 1) -#define KEY_D_1_40 (KEY_D_1_36 + 1) -#define KEY_D_1_44 (KEY_D_1_40 + 1) -#define KEY_D_1_72 (KEY_D_1_44 + 1) -#define KEY_D_1_74 (KEY_D_1_72 + 1) -#define KEY_D_1_79 (KEY_D_1_74 + 1) -#define KEY_D_1_88 (KEY_D_1_79 + 1) -#define KEY_D_1_90 (KEY_D_1_88 + 1) -#define KEY_D_1_92 (KEY_D_1_90 + 1) -#define KEY_D_1_96 (KEY_D_1_92 + 1) -#define KEY_D_1_98 (KEY_D_1_96 + 1) -#define KEY_D_1_100 (KEY_D_1_98 + 1) -#define KEY_D_1_106 (KEY_D_1_100 + 1) -#define KEY_D_1_108 (KEY_D_1_106 + 1) -#define KEY_D_1_112 (KEY_D_1_108 + 1) -#define KEY_D_1_128 (KEY_D_1_112 + 1) -#define KEY_D_1_152 (KEY_D_1_128 + 1) -#define KEY_D_1_160 (KEY_D_1_152 + 1) -#define KEY_D_1_168 (KEY_D_1_160 + 1) -#define KEY_D_1_175 (KEY_D_1_168 + 1) -#define KEY_D_1_176 (KEY_D_1_175 + 1) -#define KEY_D_1_178 (KEY_D_1_176 + 1) -#define KEY_D_1_179 (KEY_D_1_178 + 1) -#define KEY_D_1_218 (KEY_D_1_179 + 1) -#define KEY_D_1_232 (KEY_D_1_218 + 1) -#define KEY_D_1_236 (KEY_D_1_232 + 1) -#define KEY_D_1_240 (KEY_D_1_236 + 1) -#define KEY_D_1_244 (KEY_D_1_240 + 1) -#define KEY_D_1_250 (KEY_D_1_244 + 1) -#define KEY_D_1_252 (KEY_D_1_250 + 1) -#define KEY_D_2_12 (KEY_D_1_252 + 1) -#define KEY_D_2_96 (KEY_D_2_12 + 1) -#define KEY_D_2_108 (KEY_D_2_96 + 1) -#define KEY_D_2_208 (KEY_D_2_108 + 1) -#define KEY_FLICK_MSG (KEY_D_2_208 + 1) -#define KEY_FLICK_COUNTER (KEY_FLICK_MSG + 1) -#define KEY_FLICK_LOWER (KEY_FLICK_COUNTER + 1) -#define KEY_CFG_FLICK_IN (KEY_FLICK_LOWER + 1) -#define KEY_FLICK_UPPER (KEY_CFG_FLICK_IN + 1) -#define KEY_CGNOTICE_INTR (KEY_FLICK_UPPER + 1) -#define KEY_D_2_224 (KEY_CGNOTICE_INTR + 1) -#define KEY_D_2_244 (KEY_D_2_224 + 1) -#define KEY_D_2_248 (KEY_D_2_244 + 1) -#define KEY_D_2_252 (KEY_D_2_248 + 1) - -#define KEY_D_GYRO_BIAS_X (KEY_D_2_252 + 1) -#define KEY_D_GYRO_BIAS_Y (KEY_D_GYRO_BIAS_X + 1) -#define KEY_D_GYRO_BIAS_Z (KEY_D_GYRO_BIAS_Y + 1) -#define KEY_D_ACC_BIAS_X (KEY_D_GYRO_BIAS_Z + 1) -#define KEY_D_ACC_BIAS_Y (KEY_D_ACC_BIAS_X + 1) -#define KEY_D_ACC_BIAS_Z (KEY_D_ACC_BIAS_Y + 1) -#define KEY_D_GYRO_ENABLE (KEY_D_ACC_BIAS_Z + 1) -#define KEY_D_ACCEL_ENABLE (KEY_D_GYRO_ENABLE + 1) -#define KEY_D_QUAT_ENABLE (KEY_D_ACCEL_ENABLE +1) -#define KEY_D_OUTPUT_ENABLE (KEY_D_QUAT_ENABLE + 1) -#define KEY_D_CR_TIME_G (KEY_D_OUTPUT_ENABLE + 1) -#define KEY_D_CR_TIME_A (KEY_D_CR_TIME_G + 1) -#define KEY_D_CR_TIME_Q (KEY_D_CR_TIME_A + 1) -#define KEY_D_CS_TAX (KEY_D_CR_TIME_Q + 1) -#define KEY_D_CS_TAY (KEY_D_CS_TAX + 1) -#define KEY_D_CS_TAZ (KEY_D_CS_TAY + 1) -#define KEY_D_CS_TGX (KEY_D_CS_TAZ + 1) -#define KEY_D_CS_TGY (KEY_D_CS_TGX + 1) -#define KEY_D_CS_TGZ (KEY_D_CS_TGY + 1) -#define KEY_D_CS_TQ0 (KEY_D_CS_TGZ + 1) -#define KEY_D_CS_TQ1 (KEY_D_CS_TQ0 + 1) -#define KEY_D_CS_TQ2 (KEY_D_CS_TQ1 + 1) -#define KEY_D_CS_TQ3 (KEY_D_CS_TQ2 + 1) - -/* Compass keys */ -#define KEY_CPASS_BIAS_X (KEY_D_CS_TQ3 + 1) -#define KEY_CPASS_BIAS_Y (KEY_CPASS_BIAS_X + 1) -#define KEY_CPASS_BIAS_Z (KEY_CPASS_BIAS_Y + 1) -#define KEY_CPASS_MTX_00 (KEY_CPASS_BIAS_Z + 1) -#define KEY_CPASS_MTX_01 (KEY_CPASS_MTX_00 + 1) -#define KEY_CPASS_MTX_02 (KEY_CPASS_MTX_01 + 1) -#define KEY_CPASS_MTX_10 (KEY_CPASS_MTX_02 + 1) -#define KEY_CPASS_MTX_11 (KEY_CPASS_MTX_10 + 1) -#define KEY_CPASS_MTX_12 (KEY_CPASS_MTX_11 + 1) -#define KEY_CPASS_MTX_20 (KEY_CPASS_MTX_12 + 1) -#define KEY_CPASS_MTX_21 (KEY_CPASS_MTX_20 + 1) -#define KEY_CPASS_MTX_22 (KEY_CPASS_MTX_21 + 1) - -/* Gesture Keys */ -#define KEY_DMP_TAPW_MIN (KEY_CPASS_MTX_22 + 1) -#define KEY_DMP_TAP_THR_X (KEY_DMP_TAPW_MIN + 1) -#define KEY_DMP_TAP_THR_Y (KEY_DMP_TAP_THR_X + 1) -#define KEY_DMP_TAP_THR_Z (KEY_DMP_TAP_THR_Y + 1) -#define KEY_DMP_SH_TH_Y (KEY_DMP_TAP_THR_Z + 1) -#define KEY_DMP_SH_TH_X (KEY_DMP_SH_TH_Y + 1) -#define KEY_DMP_SH_TH_Z (KEY_DMP_SH_TH_X + 1) -#define KEY_DMP_ORIENT (KEY_DMP_SH_TH_Z + 1) -#define KEY_D_ACT0 (KEY_DMP_ORIENT + 1) -#define KEY_D_ACSX (KEY_D_ACT0 + 1) -#define KEY_D_ACSY (KEY_D_ACSX + 1) -#define KEY_D_ACSZ (KEY_D_ACSY + 1) - -#define KEY_X_GRT_Y_TMP (KEY_D_ACSZ + 1) -#define KEY_SKIP_X_GRT_Y_TMP (KEY_X_GRT_Y_TMP + 1) -#define KEY_SKIP_END_COMPARE (KEY_SKIP_X_GRT_Y_TMP + 1) -#define KEY_END_COMPARE_Y_X_TMP2 (KEY_SKIP_END_COMPARE + 1) -#define KEY_CFG_ANDROID_ORIENT_INT (KEY_END_COMPARE_Y_X_TMP2 + 1) -#define KEY_NO_ORIENT_INTERRUPT (KEY_CFG_ANDROID_ORIENT_INT + 1) -#define KEY_END_COMPARE_Y_X_TMP (KEY_NO_ORIENT_INTERRUPT + 1) -#define KEY_END_ORIENT_1 (KEY_END_COMPARE_Y_X_TMP + 1) -#define KEY_END_COMPARE_Y_X (KEY_END_ORIENT_1 + 1) -#define KEY_END_ORIENT (KEY_END_COMPARE_Y_X + 1) -#define KEY_X_GRT_Y (KEY_END_ORIENT + 1) -#define KEY_NOT_TIME_MINUS_1 (KEY_X_GRT_Y + 1) -#define KEY_END_COMPARE_Y_X_TMP3 (KEY_NOT_TIME_MINUS_1 + 1) -#define KEY_X_GRT_Y_TMP2 (KEY_END_COMPARE_Y_X_TMP3 + 1) - -/* Authenticate Keys */ -#define KEY_D_AUTH_OUT (KEY_X_GRT_Y_TMP2 + 1) -#define KEY_D_AUTH_IN (KEY_D_AUTH_OUT + 1) -#define KEY_D_AUTH_A (KEY_D_AUTH_IN + 1) -#define KEY_D_AUTH_B (KEY_D_AUTH_A + 1) - -/* Pedometer standalone only keys */ -#define KEY_D_PEDSTD_BP_B (KEY_D_AUTH_B + 1) -#define KEY_D_PEDSTD_HP_A (KEY_D_PEDSTD_BP_B + 1) -#define KEY_D_PEDSTD_HP_B (KEY_D_PEDSTD_HP_A + 1) -#define KEY_D_PEDSTD_BP_A4 (KEY_D_PEDSTD_HP_B + 1) -#define KEY_D_PEDSTD_BP_A3 (KEY_D_PEDSTD_BP_A4 + 1) -#define KEY_D_PEDSTD_BP_A2 (KEY_D_PEDSTD_BP_A3 + 1) -#define KEY_D_PEDSTD_BP_A1 (KEY_D_PEDSTD_BP_A2 + 1) -#define KEY_D_PEDSTD_INT_THRSH (KEY_D_PEDSTD_BP_A1 + 1) -#define KEY_D_PEDSTD_CLIP (KEY_D_PEDSTD_INT_THRSH + 1) -#define KEY_D_PEDSTD_SB (KEY_D_PEDSTD_CLIP + 1) -#define KEY_D_PEDSTD_SB_TIME (KEY_D_PEDSTD_SB + 1) -#define KEY_D_PEDSTD_PEAKTHRSH (KEY_D_PEDSTD_SB_TIME + 1) -#define KEY_D_PEDSTD_TIML (KEY_D_PEDSTD_PEAKTHRSH + 1) -#define KEY_D_PEDSTD_TIMH (KEY_D_PEDSTD_TIML + 1) -#define KEY_D_PEDSTD_PEAK (KEY_D_PEDSTD_TIMH + 1) -#define KEY_D_PEDSTD_TIMECTR (KEY_D_PEDSTD_PEAK + 1) -#define KEY_D_PEDSTD_STEPCTR (KEY_D_PEDSTD_TIMECTR + 1) -#define KEY_D_PEDSTD_WALKTIME (KEY_D_PEDSTD_STEPCTR + 1) -#define KEY_D_PEDSTD_DECI (KEY_D_PEDSTD_WALKTIME + 1) - -/*Host Based No Motion*/ -#define KEY_D_HOST_NO_MOT (KEY_D_PEDSTD_DECI + 1) - -/* EIS keys */ -#define KEY_P_EIS_FIFO_FOOTER (KEY_D_HOST_NO_MOT + 1) -#define KEY_P_EIS_FIFO_YSHIFT (KEY_P_EIS_FIFO_FOOTER + 1) -#define KEY_P_EIS_DATA_RATE (KEY_P_EIS_FIFO_YSHIFT + 1) -#define KEY_P_EIS_FIFO_XSHIFT (KEY_P_EIS_DATA_RATE + 1) -#define KEY_P_EIS_FIFO_SYNC (KEY_P_EIS_FIFO_XSHIFT + 1) -#define KEY_P_EIS_FIFO_ZSHIFT (KEY_P_EIS_FIFO_SYNC + 1) -#define KEY_P_EIS_FIFO_READY (KEY_P_EIS_FIFO_ZSHIFT + 1) -#define KEY_DMP_FOOTER (KEY_P_EIS_FIFO_READY + 1) -#define KEY_DMP_INTX_HC (KEY_DMP_FOOTER + 1) -#define KEY_DMP_INTX_PH (KEY_DMP_INTX_HC + 1) -#define KEY_DMP_INTX_SH (KEY_DMP_INTX_PH + 1) -#define KEY_DMP_AINV_SH (KEY_DMP_INTX_SH + 1) -#define KEY_DMP_A_INV_XH (KEY_DMP_AINV_SH + 1) -#define KEY_DMP_AINV_PH (KEY_DMP_A_INV_XH + 1) -#define KEY_DMP_CTHX_H (KEY_DMP_AINV_PH + 1) -#define KEY_DMP_CTHY_H (KEY_DMP_CTHX_H + 1) -#define KEY_DMP_CTHZ_H (KEY_DMP_CTHY_H + 1) -#define KEY_DMP_NCTHX_H (KEY_DMP_CTHZ_H + 1) -#define KEY_DMP_NCTHY_H (KEY_DMP_NCTHX_H + 1) -#define KEY_DMP_NCTHZ_H (KEY_DMP_NCTHY_H + 1) -#define KEY_DMP_CTSQ_XH (KEY_DMP_NCTHZ_H + 1) -#define KEY_DMP_CTSQ_YH (KEY_DMP_CTSQ_XH + 1) -#define KEY_DMP_CTSQ_ZH (KEY_DMP_CTSQ_YH + 1) -#define KEY_DMP_INTX_H (KEY_DMP_CTSQ_ZH + 1) -#define KEY_DMP_INTY_H (KEY_DMP_INTX_H + 1) -#define KEY_DMP_INTZ_H (KEY_DMP_INTY_H + 1) -//#define KEY_DMP_HPX_H (KEY_DMP_INTZ_H + 1) -//#define KEY_DMP_HPY_H (KEY_DMP_HPX_H + 1) -//#define KEY_DMP_HPZ_H (KEY_DMP_HPY_H + 1) - -/* Stream keys */ -#define KEY_STREAM_P_GYRO_Z (KEY_DMP_INTZ_H + 1) -#define KEY_STREAM_P_GYRO_Y (KEY_STREAM_P_GYRO_Z + 1) -#define KEY_STREAM_P_GYRO_X (KEY_STREAM_P_GYRO_Y + 1) -#define KEY_STREAM_P_TEMP (KEY_STREAM_P_GYRO_X + 1) -#define KEY_STREAM_P_AUX_Y (KEY_STREAM_P_TEMP + 1) -#define KEY_STREAM_P_AUX_X (KEY_STREAM_P_AUX_Y + 1) -#define KEY_STREAM_P_AUX_Z (KEY_STREAM_P_AUX_X + 1) -#define KEY_STREAM_P_ACCEL_Y (KEY_STREAM_P_AUX_Z + 1) -#define KEY_STREAM_P_ACCEL_X (KEY_STREAM_P_ACCEL_Y + 1) -#define KEY_STREAM_P_FOOTER (KEY_STREAM_P_ACCEL_X + 1) -#define KEY_STREAM_P_ACCEL_Z (KEY_STREAM_P_FOOTER + 1) - -#define NUM_KEYS (KEY_STREAM_P_ACCEL_Z + 1) - -typedef struct { - unsigned short key; - unsigned short addr; -} tKeyLabel; - -#define DINA0A 0x0a -#define DINA22 0x22 -#define DINA42 0x42 -#define DINA5A 0x5a - -#define DINA06 0x06 -#define DINA0E 0x0e -#define DINA16 0x16 -#define DINA1E 0x1e -#define DINA26 0x26 -#define DINA2E 0x2e -#define DINA36 0x36 -#define DINA3E 0x3e -#define DINA46 0x46 -#define DINA4E 0x4e -#define DINA56 0x56 -#define DINA5E 0x5e -#define DINA66 0x66 -#define DINA6E 0x6e -#define DINA76 0x76 -#define DINA7E 0x7e - -#define DINA00 0x00 -#define DINA08 0x08 -#define DINA10 0x10 -#define DINA18 0x18 -#define DINA20 0x20 -#define DINA28 0x28 -#define DINA30 0x30 -#define DINA38 0x38 -#define DINA40 0x40 -#define DINA48 0x48 -#define DINA50 0x50 -#define DINA58 0x58 -#define DINA60 0x60 -#define DINA68 0x68 -#define DINA70 0x70 -#define DINA78 0x78 - -#define DINA04 0x04 -#define DINA0C 0x0c -#define DINA14 0x14 -#define DINA1C 0x1C -#define DINA24 0x24 -#define DINA2C 0x2c -#define DINA34 0x34 -#define DINA3C 0x3c -#define DINA44 0x44 -#define DINA4C 0x4c -#define DINA54 0x54 -#define DINA5C 0x5c -#define DINA64 0x64 -#define DINA6C 0x6c -#define DINA74 0x74 -#define DINA7C 0x7c - -#define DINA01 0x01 -#define DINA09 0x09 -#define DINA11 0x11 -#define DINA19 0x19 -#define DINA21 0x21 -#define DINA29 0x29 -#define DINA31 0x31 -#define DINA39 0x39 -#define DINA41 0x41 -#define DINA49 0x49 -#define DINA51 0x51 -#define DINA59 0x59 -#define DINA61 0x61 -#define DINA69 0x69 -#define DINA71 0x71 -#define DINA79 0x79 - -#define DINA25 0x25 -#define DINA2D 0x2d -#define DINA35 0x35 -#define DINA3D 0x3d -#define DINA4D 0x4d -#define DINA55 0x55 -#define DINA5D 0x5D -#define DINA6D 0x6d -#define DINA75 0x75 -#define DINA7D 0x7d - -#define DINADC 0xdc -#define DINAF2 0xf2 -#define DINAAB 0xab -#define DINAAA 0xaa -#define DINAF1 0xf1 -#define DINADF 0xdf -#define DINADA 0xda -#define DINAB1 0xb1 -#define DINAB9 0xb9 -#define DINAF3 0xf3 -#define DINA8B 0x8b -#define DINAA3 0xa3 -#define DINA91 0x91 -#define DINAB6 0xb6 -#define DINAB4 0xb4 - - -#define DINC00 0x00 -#define DINC01 0x01 -#define DINC02 0x02 -#define DINC03 0x03 -#define DINC08 0x08 -#define DINC09 0x09 -#define DINC0A 0x0a -#define DINC0B 0x0b -#define DINC10 0x10 -#define DINC11 0x11 -#define DINC12 0x12 -#define DINC13 0x13 -#define DINC18 0x18 -#define DINC19 0x19 -#define DINC1A 0x1a -#define DINC1B 0x1b - -#define DINC20 0x20 -#define DINC21 0x21 -#define DINC22 0x22 -#define DINC23 0x23 -#define DINC28 0x28 -#define DINC29 0x29 -#define DINC2A 0x2a -#define DINC2B 0x2b -#define DINC30 0x30 -#define DINC31 0x31 -#define DINC32 0x32 -#define DINC33 0x33 -#define DINC38 0x38 -#define DINC39 0x39 -#define DINC3A 0x3a -#define DINC3B 0x3b - -#define DINC40 0x40 -#define DINC41 0x41 -#define DINC42 0x42 -#define DINC43 0x43 -#define DINC48 0x48 -#define DINC49 0x49 -#define DINC4A 0x4a -#define DINC4B 0x4b -#define DINC50 0x50 -#define DINC51 0x51 -#define DINC52 0x52 -#define DINC53 0x53 -#define DINC58 0x58 -#define DINC59 0x59 -#define DINC5A 0x5a -#define DINC5B 0x5b - -#define DINC60 0x60 -#define DINC61 0x61 -#define DINC62 0x62 -#define DINC63 0x63 -#define DINC68 0x68 -#define DINC69 0x69 -#define DINC6A 0x6a -#define DINC6B 0x6b -#define DINC70 0x70 -#define DINC71 0x71 -#define DINC72 0x72 -#define DINC73 0x73 -#define DINC78 0x78 -#define DINC79 0x79 -#define DINC7A 0x7a -#define DINC7B 0x7b - -#define DIND40 0x40 - - -#define DINA80 0x80 -#define DINA90 0x90 -#define DINAA0 0xa0 -#define DINAC9 0xc9 -#define DINACB 0xcb -#define DINACD 0xcd -#define DINACF 0xcf -#define DINAC8 0xc8 -#define DINACA 0xca -#define DINACC 0xcc -#define DINACE 0xce -#define DINAD8 0xd8 -#define DINADD 0xdd -#define DINAF8 0xf0 -#define DINAFE 0xfe - -#define DINBF8 0xf8 -#define DINAC0 0xb0 -#define DINAC1 0xb1 -#define DINAC2 0xb4 -#define DINAC3 0xb5 -#define DINAC4 0xb8 -#define DINAC5 0xb9 -#define DINBC0 0xc0 -#define DINBC2 0xc2 -#define DINBC4 0xc4 -#define DINBC6 0xc6 - - - -#endif // DMPKEY_H__ diff --git a/interface/external/MotionDriver/include/dmpmap.h b/interface/external/MotionDriver/include/dmpmap.h deleted file mode 100644 index f63e140398..0000000000 --- a/interface/external/MotionDriver/include/dmpmap.h +++ /dev/null @@ -1,264 +0,0 @@ -/* - $License: - Copyright (C) 2011 InvenSense Corporation, All Rights Reserved. - $ - */ -#ifndef DMPMAP_H -#define DMPMAP_H - -#ifdef __cplusplus -extern "C" -{ -#endif - -#define DMP_PTAT 0 -#define DMP_XGYR 2 -#define DMP_YGYR 4 -#define DMP_ZGYR 6 -#define DMP_XACC 8 -#define DMP_YACC 10 -#define DMP_ZACC 12 -#define DMP_ADC1 14 -#define DMP_ADC2 16 -#define DMP_ADC3 18 -#define DMP_BIASUNC 20 -#define DMP_FIFORT 22 -#define DMP_INVGSFH 24 -#define DMP_INVGSFL 26 -#define DMP_1H 28 -#define DMP_1L 30 -#define DMP_BLPFSTCH 32 -#define DMP_BLPFSTCL 34 -#define DMP_BLPFSXH 36 -#define DMP_BLPFSXL 38 -#define DMP_BLPFSYH 40 -#define DMP_BLPFSYL 42 -#define DMP_BLPFSZH 44 -#define DMP_BLPFSZL 46 -#define DMP_BLPFMTC 48 -#define DMP_SMC 50 -#define DMP_BLPFMXH 52 -#define DMP_BLPFMXL 54 -#define DMP_BLPFMYH 56 -#define DMP_BLPFMYL 58 -#define DMP_BLPFMZH 60 -#define DMP_BLPFMZL 62 -#define DMP_BLPFC 64 -#define DMP_SMCTH 66 -#define DMP_0H2 68 -#define DMP_0L2 70 -#define DMP_BERR2H 72 -#define DMP_BERR2L 74 -#define DMP_BERR2NH 76 -#define DMP_SMCINC 78 -#define DMP_ANGVBXH 80 -#define DMP_ANGVBXL 82 -#define DMP_ANGVBYH 84 -#define DMP_ANGVBYL 86 -#define DMP_ANGVBZH 88 -#define DMP_ANGVBZL 90 -#define DMP_BERR1H 92 -#define DMP_BERR1L 94 -#define DMP_ATCH 96 -#define DMP_BIASUNCSF 98 -#define DMP_ACT2H 100 -#define DMP_ACT2L 102 -#define DMP_GSFH 104 -#define DMP_GSFL 106 -#define DMP_GH 108 -#define DMP_GL 110 -#define DMP_0_5H 112 -#define DMP_0_5L 114 -#define DMP_0_0H 116 -#define DMP_0_0L 118 -#define DMP_1_0H 120 -#define DMP_1_0L 122 -#define DMP_1_5H 124 -#define DMP_1_5L 126 -#define DMP_TMP1AH 128 -#define DMP_TMP1AL 130 -#define DMP_TMP2AH 132 -#define DMP_TMP2AL 134 -#define DMP_TMP3AH 136 -#define DMP_TMP3AL 138 -#define DMP_TMP4AH 140 -#define DMP_TMP4AL 142 -#define DMP_XACCW 144 -#define DMP_TMP5 146 -#define DMP_XACCB 148 -#define DMP_TMP8 150 -#define DMP_YACCB 152 -#define DMP_TMP9 154 -#define DMP_ZACCB 156 -#define DMP_TMP10 158 -#define DMP_DZH 160 -#define DMP_DZL 162 -#define DMP_XGCH 164 -#define DMP_XGCL 166 -#define DMP_YGCH 168 -#define DMP_YGCL 170 -#define DMP_ZGCH 172 -#define DMP_ZGCL 174 -#define DMP_YACCW 176 -#define DMP_TMP7 178 -#define DMP_AFB1H 180 -#define DMP_AFB1L 182 -#define DMP_AFB2H 184 -#define DMP_AFB2L 186 -#define DMP_MAGFBH 188 -#define DMP_MAGFBL 190 -#define DMP_QT1H 192 -#define DMP_QT1L 194 -#define DMP_QT2H 196 -#define DMP_QT2L 198 -#define DMP_QT3H 200 -#define DMP_QT3L 202 -#define DMP_QT4H 204 -#define DMP_QT4L 206 -#define DMP_CTRL1H 208 -#define DMP_CTRL1L 210 -#define DMP_CTRL2H 212 -#define DMP_CTRL2L 214 -#define DMP_CTRL3H 216 -#define DMP_CTRL3L 218 -#define DMP_CTRL4H 220 -#define DMP_CTRL4L 222 -#define DMP_CTRLS1 224 -#define DMP_CTRLSF1 226 -#define DMP_CTRLS2 228 -#define DMP_CTRLSF2 230 -#define DMP_CTRLS3 232 -#define DMP_CTRLSFNLL 234 -#define DMP_CTRLS4 236 -#define DMP_CTRLSFNL2 238 -#define DMP_CTRLSFNL 240 -#define DMP_TMP30 242 -#define DMP_CTRLSFJT 244 -#define DMP_TMP31 246 -#define DMP_TMP11 248 -#define DMP_CTRLSF2_2 250 -#define DMP_TMP12 252 -#define DMP_CTRLSF1_2 254 -#define DMP_PREVPTAT 256 -#define DMP_ACCZB 258 -#define DMP_ACCXB 264 -#define DMP_ACCYB 266 -#define DMP_1HB 272 -#define DMP_1LB 274 -#define DMP_0H 276 -#define DMP_0L 278 -#define DMP_ASR22H 280 -#define DMP_ASR22L 282 -#define DMP_ASR6H 284 -#define DMP_ASR6L 286 -#define DMP_TMP13 288 -#define DMP_TMP14 290 -#define DMP_FINTXH 292 -#define DMP_FINTXL 294 -#define DMP_FINTYH 296 -#define DMP_FINTYL 298 -#define DMP_FINTZH 300 -#define DMP_FINTZL 302 -#define DMP_TMP1BH 304 -#define DMP_TMP1BL 306 -#define DMP_TMP2BH 308 -#define DMP_TMP2BL 310 -#define DMP_TMP3BH 312 -#define DMP_TMP3BL 314 -#define DMP_TMP4BH 316 -#define DMP_TMP4BL 318 -#define DMP_STXG 320 -#define DMP_ZCTXG 322 -#define DMP_STYG 324 -#define DMP_ZCTYG 326 -#define DMP_STZG 328 -#define DMP_ZCTZG 330 -#define DMP_CTRLSFJT2 332 -#define DMP_CTRLSFJTCNT 334 -#define DMP_PVXG 336 -#define DMP_TMP15 338 -#define DMP_PVYG 340 -#define DMP_TMP16 342 -#define DMP_PVZG 344 -#define DMP_TMP17 346 -#define DMP_MNMFLAGH 352 -#define DMP_MNMFLAGL 354 -#define DMP_MNMTMH 356 -#define DMP_MNMTML 358 -#define DMP_MNMTMTHRH 360 -#define DMP_MNMTMTHRL 362 -#define DMP_MNMTHRH 364 -#define DMP_MNMTHRL 366 -#define DMP_ACCQD4H 368 -#define DMP_ACCQD4L 370 -#define DMP_ACCQD5H 372 -#define DMP_ACCQD5L 374 -#define DMP_ACCQD6H 376 -#define DMP_ACCQD6L 378 -#define DMP_ACCQD7H 380 -#define DMP_ACCQD7L 382 -#define DMP_ACCQD0H 384 -#define DMP_ACCQD0L 386 -#define DMP_ACCQD1H 388 -#define DMP_ACCQD1L 390 -#define DMP_ACCQD2H 392 -#define DMP_ACCQD2L 394 -#define DMP_ACCQD3H 396 -#define DMP_ACCQD3L 398 -#define DMP_XN2H 400 -#define DMP_XN2L 402 -#define DMP_XN1H 404 -#define DMP_XN1L 406 -#define DMP_YN2H 408 -#define DMP_YN2L 410 -#define DMP_YN1H 412 -#define DMP_YN1L 414 -#define DMP_YH 416 -#define DMP_YL 418 -#define DMP_B0H 420 -#define DMP_B0L 422 -#define DMP_A1H 424 -#define DMP_A1L 426 -#define DMP_A2H 428 -#define DMP_A2L 430 -#define DMP_SEM1 432 -#define DMP_FIFOCNT 434 -#define DMP_SH_TH_X 436 -#define DMP_PACKET 438 -#define DMP_SH_TH_Y 440 -#define DMP_FOOTER 442 -#define DMP_SH_TH_Z 444 -#define DMP_TEMP29 448 -#define DMP_TEMP30 450 -#define DMP_XACCB_PRE 452 -#define DMP_XACCB_PREL 454 -#define DMP_YACCB_PRE 456 -#define DMP_YACCB_PREL 458 -#define DMP_ZACCB_PRE 460 -#define DMP_ZACCB_PREL 462 -#define DMP_TMP22 464 -#define DMP_TAP_TIMER 466 -#define DMP_TAP_THX 468 -#define DMP_TAP_THY 472 -#define DMP_TAP_THZ 476 -#define DMP_TAPW_MIN 478 -#define DMP_TMP25 480 -#define DMP_TMP26 482 -#define DMP_TMP27 484 -#define DMP_TMP28 486 -#define DMP_ORIENT 488 -#define DMP_THRSH 490 -#define DMP_ENDIANH 492 -#define DMP_ENDIANL 494 -#define DMP_BLPFNMTCH 496 -#define DMP_BLPFNMTCL 498 -#define DMP_BLPFNMXH 500 -#define DMP_BLPFNMXL 502 -#define DMP_BLPFNMYH 504 -#define DMP_BLPFNMYL 506 -#define DMP_BLPFNMZH 508 -#define DMP_BLPFNMZL 510 -#ifdef __cplusplus -} -#endif -#endif // DMPMAP_H diff --git a/interface/external/MotionDriver/include/inv_mpu.h b/interface/external/MotionDriver/include/inv_mpu.h deleted file mode 100644 index 9610124f04..0000000000 --- a/interface/external/MotionDriver/include/inv_mpu.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - $License: - Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved. - See included License.txt for License information. - $ - */ -/** - * @addtogroup DRIVERS Sensor Driver Layer - * @brief Hardware drivers to communicate with sensors via I2C. - * - * @{ - * @file inv_mpu.h - * @brief An I2C-based driver for Invensense gyroscopes. - * @details This driver currently works for the following devices: - * MPU6050 - * MPU6500 - * MPU9150 (or MPU6050 w/ AK8975 on the auxiliary bus) - * MPU9250 (or MPU6500 w/ AK8963 on the auxiliary bus) - */ - -#ifndef _INV_MPU_H_ -#define _INV_MPU_H_ - -#define INV_X_GYRO (0x40) -#define INV_Y_GYRO (0x20) -#define INV_Z_GYRO (0x10) -#define INV_XYZ_GYRO (INV_X_GYRO | INV_Y_GYRO | INV_Z_GYRO) -#define INV_XYZ_ACCEL (0x08) -#define INV_XYZ_COMPASS (0x01) - -struct int_param_s { -#if defined EMPL_TARGET_MSP430 || defined MOTION_DRIVER_TARGET_MSP430 - void (*cb)(void); - unsigned short pin; - unsigned char lp_exit; - unsigned char active_low; -#elif defined EMPL_TARGET_UC3L0 - unsigned long pin; - void (*cb)(volatile void*); - void *arg; -#endif -}; - -#define MPU_INT_STATUS_DATA_READY (0x0001) -#define MPU_INT_STATUS_DMP (0x0002) -#define MPU_INT_STATUS_PLL_READY (0x0004) -#define MPU_INT_STATUS_I2C_MST (0x0008) -#define MPU_INT_STATUS_FIFO_OVERFLOW (0x0010) -#define MPU_INT_STATUS_ZMOT (0x0020) -#define MPU_INT_STATUS_MOT (0x0040) -#define MPU_INT_STATUS_FREE_FALL (0x0080) -#define MPU_INT_STATUS_DMP_0 (0x0100) -#define MPU_INT_STATUS_DMP_1 (0x0200) -#define MPU_INT_STATUS_DMP_2 (0x0400) -#define MPU_INT_STATUS_DMP_3 (0x0800) -#define MPU_INT_STATUS_DMP_4 (0x1000) -#define MPU_INT_STATUS_DMP_5 (0x2000) - -/* Set up APIs */ -int mpu_init(struct int_param_s *int_param); -int mpu_init_slave(void); -int mpu_set_bypass(unsigned char bypass_on); - -/* Configuration APIs */ -int mpu_lp_accel_mode(unsigned char rate); -int mpu_lp_motion_interrupt(unsigned short thresh, unsigned char time, - unsigned char lpa_freq); -int mpu_set_int_level(unsigned char active_low); -int mpu_set_int_latched(unsigned char enable); - -int mpu_set_dmp_state(unsigned char enable); -int mpu_get_dmp_state(unsigned char *enabled); - -int mpu_get_lpf(unsigned short *lpf); -int mpu_set_lpf(unsigned short lpf); - -int mpu_get_gyro_fsr(unsigned short *fsr); -int mpu_set_gyro_fsr(unsigned short fsr); - -int mpu_get_accel_fsr(unsigned char *fsr); -int mpu_set_accel_fsr(unsigned char fsr); - -int mpu_get_compass_fsr(unsigned short *fsr); - -int mpu_get_gyro_sens(float *sens); -int mpu_get_accel_sens(unsigned short *sens); - -int mpu_get_sample_rate(unsigned short *rate); -int mpu_set_sample_rate(unsigned short rate); -int mpu_get_compass_sample_rate(unsigned short *rate); -int mpu_set_compass_sample_rate(unsigned short rate); - -int mpu_get_fifo_config(unsigned char *sensors); -int mpu_configure_fifo(unsigned char sensors); - -int mpu_get_power_state(unsigned char *power_on); -int mpu_set_sensors(unsigned char sensors); - -int mpu_set_accel_bias(const long *accel_bias); - -/* Data getter/setter APIs */ -int mpu_get_gyro_reg(short *data, unsigned long *timestamp); -int mpu_get_accel_reg(short *data, unsigned long *timestamp); -int mpu_get_compass_reg(short *data, unsigned long *timestamp); -int mpu_get_temperature(long *data, unsigned long *timestamp); - -int mpu_get_int_status(short *status); -int mpu_read_fifo(short *gyro, short *accel, unsigned long *timestamp, - unsigned char *sensors, unsigned char *more); -int mpu_read_fifo_stream(unsigned short length, unsigned char *data, - unsigned char *more); -int mpu_reset_fifo(void); - -int mpu_write_mem(unsigned short mem_addr, unsigned short length, - unsigned char *data); -int mpu_read_mem(unsigned short mem_addr, unsigned short length, - unsigned char *data); -int mpu_load_firmware(unsigned short length, const unsigned char *firmware, - unsigned short start_addr, unsigned short sample_rate); - -int mpu_reg_dump(void); -int mpu_read_reg(unsigned char reg, unsigned char *data); -int mpu_run_self_test(long *gyro, long *accel); -int mpu_register_tap_cb(void (*func)(unsigned char, unsigned char)); - -#endif /* #ifndef _INV_MPU_H_ */ - diff --git a/interface/external/MotionDriver/include/inv_mpu_dmp_motion_driver.h b/interface/external/MotionDriver/include/inv_mpu_dmp_motion_driver.h deleted file mode 100644 index b0afea6caf..0000000000 --- a/interface/external/MotionDriver/include/inv_mpu_dmp_motion_driver.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - $License: - Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved. - See included License.txt for License information. - $ - */ -/** - * @addtogroup DRIVERS Sensor Driver Layer - * @brief Hardware drivers to communicate with sensors via I2C. - * - * @{ - * @file inv_mpu_dmp_motion_driver.h - * @brief DMP image and interface functions. - * @details All functions are preceded by the dmp_ prefix to - * differentiate among MPL and general driver function calls. - */ -#ifndef _INV_MPU_DMP_MOTION_DRIVER_H_ -#define _INV_MPU_DMP_MOTION_DRIVER_H_ - -#define TAP_X (0x01) -#define TAP_Y (0x02) -#define TAP_Z (0x04) -#define TAP_XYZ (0x07) - -#define TAP_X_UP (0x01) -#define TAP_X_DOWN (0x02) -#define TAP_Y_UP (0x03) -#define TAP_Y_DOWN (0x04) -#define TAP_Z_UP (0x05) -#define TAP_Z_DOWN (0x06) - -#define ANDROID_ORIENT_PORTRAIT (0x00) -#define ANDROID_ORIENT_LANDSCAPE (0x01) -#define ANDROID_ORIENT_REVERSE_PORTRAIT (0x02) -#define ANDROID_ORIENT_REVERSE_LANDSCAPE (0x03) - -#define DMP_INT_GESTURE (0x01) -#define DMP_INT_CONTINUOUS (0x02) - -#define DMP_FEATURE_TAP (0x001) -#define DMP_FEATURE_ANDROID_ORIENT (0x002) -#define DMP_FEATURE_LP_QUAT (0x004) -#define DMP_FEATURE_PEDOMETER (0x008) -#define DMP_FEATURE_6X_LP_QUAT (0x010) -#define DMP_FEATURE_GYRO_CAL (0x020) -#define DMP_FEATURE_SEND_RAW_ACCEL (0x040) -#define DMP_FEATURE_SEND_RAW_GYRO (0x080) -#define DMP_FEATURE_SEND_CAL_GYRO (0x100) - -#define INV_WXYZ_QUAT (0x100) - -/* Set up functions. */ -int dmp_load_motion_driver_firmware(void); -int dmp_set_fifo_rate(unsigned short rate); -int dmp_get_fifo_rate(unsigned short *rate); -int dmp_enable_feature(unsigned short mask); -int dmp_get_enabled_features(unsigned short *mask); -int dmp_set_interrupt_mode(unsigned char mode); -int dmp_set_orientation(unsigned short orient); -int dmp_set_gyro_bias(long *bias); -int dmp_set_accel_bias(long *bias); - -/* Tap functions. */ -int dmp_register_tap_cb(void (*func)(unsigned char, unsigned char)); -int dmp_set_tap_thresh(unsigned char axis, unsigned short thresh); -int dmp_set_tap_axes(unsigned char axis); -int dmp_set_tap_count(unsigned char min_taps); -int dmp_set_tap_time(unsigned short time); -int dmp_set_tap_time_multi(unsigned short time); -int dmp_set_shake_reject_thresh(long sf, unsigned short thresh); -int dmp_set_shake_reject_time(unsigned short time); -int dmp_set_shake_reject_timeout(unsigned short time); - -/* Android orientation functions. */ -int dmp_register_android_orient_cb(void (*func)(unsigned char)); - -/* LP quaternion functions. */ -int dmp_enable_lp_quat(unsigned char enable); -int dmp_enable_6x_lp_quat(unsigned char enable); - -/* Pedometer functions. */ -int dmp_get_pedometer_step_count(unsigned long *count); -int dmp_set_pedometer_step_count(unsigned long count); -int dmp_get_pedometer_walk_time(unsigned long *time); -int dmp_set_pedometer_walk_time(unsigned long time); - -/* DMP gyro calibration functions. */ -int dmp_enable_gyro_cal(unsigned char enable); - -/* Read function. This function should be called whenever the MPU interrupt is - * detected. - */ -int dmp_read_fifo(short *gyro, short *accel, long *quat, - unsigned long *timestamp, short *sensors, unsigned char *more); - -#endif /* #ifndef _INV_MPU_DMP_MOTION_DRIVER_H_ */ - diff --git a/interface/external/MotionDriver/include/inv_tty.h b/interface/external/MotionDriver/include/inv_tty.h deleted file mode 100644 index d92ece2017..0000000000 --- a/interface/external/MotionDriver/include/inv_tty.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// inv_tty.h -// interface -// -// Created by Andrzej Kapolka on 7/9/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -#ifndef __interface__inv_tty__ -#define __interface__inv_tty__ - -void tty_set_file_descriptor(int file_descriptor); - -int tty_i2c_write(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char const *data); - -int tty_i2c_read(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char *data); - -void tty_delay_ms(unsigned long num_ms); - -void tty_get_ms(unsigned long *count); - -#endif /* defined(__interface__inv_tty__) */ diff --git a/interface/external/MotionDriver/lib/MacOS/libMotionDriver.a b/interface/external/MotionDriver/lib/MacOS/libMotionDriver.a deleted file mode 100644 index 5911eb9f9994aa7b4da6b094995ef41ff39a4910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59312 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 z 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 diff --git a/interface/external/MotionDriver/src/inv_mpu.c b/interface/external/MotionDriver/src/inv_mpu.c deleted file mode 100644 index 9969465596..0000000000 --- a/interface/external/MotionDriver/src/inv_mpu.c +++ /dev/null @@ -1,2798 +0,0 @@ -/* - $License: - Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved. - See included License.txt for License information. - $ - */ -/** - * @addtogroup DRIVERS Sensor Driver Layer - * @brief Hardware drivers to communicate with sensors via I2C. - * - * @{ - * @file inv_mpu.c - * @brief An I2C-based driver for Invensense gyroscopes. - * @details This driver currently works for the following devices: - * MPU6050 - * MPU6500 - * MPU9150 (or MPU6050 w/ AK8975 on the auxiliary bus) - * MPU9250 (or MPU6500 w/ AK8963 on the auxiliary bus) - */ -#include -#include -#include -#include -#include -#include "inv_mpu.h" -#include "inv_tty.h" - -/* The following functions must be defined for this platform: - * i2c_write(unsigned char slave_addr, unsigned char reg_addr, - * unsigned char length, unsigned char const *data) - * i2c_read(unsigned char slave_addr, unsigned char reg_addr, - * unsigned char length, unsigned char *data) - * delay_ms(unsigned long num_ms) - * get_ms(unsigned long *count) - * reg_int_cb(void (*cb)(void), unsigned char port, unsigned char pin) - * labs(long x) - * fabsf(float x) - * min(int a, int b) - */ -#if defined MOTION_DRIVER_TARGET_MSP430 -#include "msp430.h" -#include "msp430_i2c.h" -#include "msp430_clock.h" -#include "msp430_interrupt.h" -#define i2c_write msp430_i2c_write -#define i2c_read msp430_i2c_read -#define delay_ms msp430_delay_ms -#define get_ms msp430_get_clock_ms -static inline int reg_int_cb(struct int_param_s *int_param) -{ - return msp430_reg_int_cb(int_param->cb, int_param->pin, int_param->lp_exit, - int_param->active_low); -} -#define log_i(...) do {} while (0) -#define log_e(...) do {} while (0) -/* labs is already defined by TI's toolchain. */ -/* fabs is for doubles. fabsf is for floats. */ -#define fabs fabsf -#define min(a,b) ((acb, int_param->pin, int_param->lp_exit, - int_param->active_low); -} -#define log_i MPL_LOGI -#define log_e MPL_LOGE -/* labs is already defined by TI's toolchain. */ -/* fabs is for doubles. fabsf is for floats. */ -#define fabs fabsf -#define min(a,b) ((apin, int_param->cb, int_param->arg); - return 0; -} -#define log_i MPL_LOGI -#define log_e MPL_LOGE -/* UC3 is a 32-bit processor, so abs and labs are equivalent. */ -#define labs abs -#define fabs(x) (((x)>0)?(x):-(x)) -#else -#define i2c_write tty_i2c_write -#define i2c_read tty_i2c_read -#define delay_ms tty_delay_ms -#define get_ms tty_get_ms -#define min(a,b) ((a> 3 & 0x03 */ - unsigned char gyro_fsr; - /* Matches accel_cfg >> 3 & 0x03 */ - unsigned char accel_fsr; - /* Enabled sensors. Uses same masks as fifo_en, NOT pwr_mgmt_2. */ - unsigned char sensors; - /* Matches config register. */ - unsigned char lpf; - unsigned char clk_src; - /* Sample rate, NOT rate divider. */ - unsigned short sample_rate; - /* Matches fifo_en register. */ - unsigned char fifo_enable; - /* Matches int enable register. */ - unsigned char int_enable; - /* 1 if devices on auxiliary I2C bus appear on the primary. */ - unsigned char bypass_mode; - /* 1 if half-sensitivity. - * NOTE: This doesn't belong here, but everything else in hw_s is const, - * and this allows us to save some precious RAM. - */ - unsigned char accel_half; - /* 1 if device in low-power accel-only mode. */ - unsigned char lp_accel_mode; - /* 1 if interrupts are only triggered on motion events. */ - unsigned char int_motion_only; - struct motion_int_cache_s cache; - /* 1 for active low interrupts. */ - unsigned char active_low_int; - /* 1 for latched interrupts. */ - unsigned char latched_int; - /* 1 if DMP is enabled. */ - unsigned char dmp_on; - /* Ensures that DMP will only be loaded once. */ - unsigned char dmp_loaded; - /* Sampling rate used when DMP is enabled. */ - unsigned short dmp_sample_rate; -#ifdef AK89xx_SECONDARY - /* Compass sample rate. */ - unsigned short compass_sample_rate; - unsigned char compass_addr; - short mag_sens_adj[3]; -#endif -}; - -/* Information for self-test. */ -struct test_s { - unsigned long gyro_sens; - unsigned long accel_sens; - unsigned char reg_rate_div; - unsigned char reg_lpf; - unsigned char reg_gyro_fsr; - unsigned char reg_accel_fsr; - unsigned short wait_ms; - unsigned char packet_thresh; - float min_dps; - float max_dps; - float max_gyro_var; - float min_g; - float max_g; - float max_accel_var; -}; - -/* Gyro driver state variables. */ -struct gyro_state_s { - const struct gyro_reg_s *reg; - const struct hw_s *hw; - struct chip_cfg_s chip_cfg; - const struct test_s *test; -}; - -/* Filter configurations. */ -enum lpf_e { - INV_FILTER_256HZ_NOLPF2 = 0, - INV_FILTER_188HZ, - INV_FILTER_98HZ, - INV_FILTER_42HZ, - INV_FILTER_20HZ, - INV_FILTER_10HZ, - INV_FILTER_5HZ, - INV_FILTER_2100HZ_NOLPF, - NUM_FILTER -}; - -/* Full scale ranges. */ -enum gyro_fsr_e { - INV_FSR_250DPS = 0, - INV_FSR_500DPS, - INV_FSR_1000DPS, - INV_FSR_2000DPS, - NUM_GYRO_FSR -}; - -/* Full scale ranges. */ -enum accel_fsr_e { - INV_FSR_2G = 0, - INV_FSR_4G, - INV_FSR_8G, - INV_FSR_16G, - NUM_ACCEL_FSR -}; - -/* Clock sources. */ -enum clock_sel_e { - INV_CLK_INTERNAL = 0, - INV_CLK_PLL, - NUM_CLK -}; - -/* Low-power accel wakeup rates. */ -enum lp_accel_rate_e { -#if defined MPU6050 - INV_LPA_1_25HZ, - INV_LPA_5HZ, - INV_LPA_20HZ, - INV_LPA_40HZ -#elif defined MPU6500 - INV_LPA_0_3125HZ, - INV_LPA_0_625HZ, - INV_LPA_1_25HZ, - INV_LPA_2_5HZ, - INV_LPA_5HZ, - INV_LPA_10HZ, - INV_LPA_20HZ, - INV_LPA_40HZ, - INV_LPA_80HZ, - INV_LPA_160HZ, - INV_LPA_320HZ, - INV_LPA_640HZ -#endif -}; - -#define BIT_I2C_MST_VDDIO (0x80) -#define BIT_FIFO_EN (0x40) -#define BIT_DMP_EN (0x80) -#define BIT_FIFO_RST (0x04) -#define BIT_DMP_RST (0x08) -#define BIT_FIFO_OVERFLOW (0x10) -#define BIT_DATA_RDY_EN (0x01) -#define BIT_DMP_INT_EN (0x02) -#define BIT_MOT_INT_EN (0x40) -#define BITS_FSR (0x18) -#define BITS_LPF (0x07) -#define BITS_HPF (0x07) -#define BITS_CLK (0x07) -#define BIT_FIFO_SIZE_1024 (0x40) -#define BIT_FIFO_SIZE_2048 (0x80) -#define BIT_FIFO_SIZE_4096 (0xC0) -#define BIT_RESET (0x80) -#define BIT_SLEEP (0x40) -#define BIT_S0_DELAY_EN (0x01) -#define BIT_S2_DELAY_EN (0x04) -#define BITS_SLAVE_LENGTH (0x0F) -#define BIT_SLAVE_BYTE_SW (0x40) -#define BIT_SLAVE_GROUP (0x10) -#define BIT_SLAVE_EN (0x80) -#define BIT_I2C_READ (0x80) -#define BITS_I2C_MASTER_DLY (0x1F) -#define BIT_AUX_IF_EN (0x20) -#define BIT_ACTL (0x80) -#define BIT_LATCH_EN (0x20) -#define BIT_ANY_RD_CLR (0x10) -#define BIT_BYPASS_EN (0x02) -#define BITS_WOM_EN (0xC0) -#define BIT_LPA_CYCLE (0x20) -#define BIT_STBY_XA (0x20) -#define BIT_STBY_YA (0x10) -#define BIT_STBY_ZA (0x08) -#define BIT_STBY_XG (0x04) -#define BIT_STBY_YG (0x02) -#define BIT_STBY_ZG (0x01) -#define BIT_STBY_XYZA (BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA) -#define BIT_STBY_XYZG (BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG) - -#if defined AK8975_SECONDARY -#define SUPPORTS_AK89xx_HIGH_SENS (0x00) -#define AK89xx_FSR (9830) -#elif defined AK8963_SECONDARY -#define SUPPORTS_AK89xx_HIGH_SENS (0x10) -#define AK89xx_FSR (4915) -#endif - -#ifdef AK89xx_SECONDARY -#define AKM_REG_WHOAMI (0x00) - -#define AKM_REG_ST1 (0x02) -#define AKM_REG_HXL (0x03) -#define AKM_REG_ST2 (0x09) - -#define AKM_REG_CNTL (0x0A) -#define AKM_REG_ASTC (0x0C) -#define AKM_REG_ASAX (0x10) -#define AKM_REG_ASAY (0x11) -#define AKM_REG_ASAZ (0x12) - -#define AKM_DATA_READY (0x01) -#define AKM_DATA_OVERRUN (0x02) -#define AKM_OVERFLOW (0x80) -#define AKM_DATA_ERROR (0x40) - -#define AKM_BIT_SELF_TEST (0x40) - -#define AKM_POWER_DOWN (0x00 | SUPPORTS_AK89xx_HIGH_SENS) -#define AKM_SINGLE_MEASUREMENT (0x01 | SUPPORTS_AK89xx_HIGH_SENS) -#define AKM_FUSE_ROM_ACCESS (0x0F | SUPPORTS_AK89xx_HIGH_SENS) -#define AKM_MODE_SELF_TEST (0x08 | SUPPORTS_AK89xx_HIGH_SENS) - -#define AKM_WHOAMI (0x48) -#endif - -#if defined MPU6050 -const struct gyro_reg_s reg = { - .who_am_i = 0x75, - .rate_div = 0x19, - .lpf = 0x1A, - .prod_id = 0x0C, - .user_ctrl = 0x6A, - .fifo_en = 0x23, - .gyro_cfg = 0x1B, - .accel_cfg = 0x1C, - .motion_thr = 0x1F, - .motion_dur = 0x20, - .fifo_count_h = 0x72, - .fifo_r_w = 0x74, - .raw_gyro = 0x43, - .raw_accel = 0x3B, - .temp = 0x41, - .int_enable = 0x38, - .dmp_int_status = 0x39, - .int_status = 0x3A, - .pwr_mgmt_1 = 0x6B, - .pwr_mgmt_2 = 0x6C, - .int_pin_cfg = 0x37, - .mem_r_w = 0x6F, - .accel_offs = 0x06, - .i2c_mst = 0x24, - .bank_sel = 0x6D, - .mem_start_addr = 0x6E, - .prgm_start_h = 0x70 -#ifdef AK89xx_SECONDARY - ,.raw_compass = 0x49, - .yg_offs_tc = 0x01, - .s0_addr = 0x25, - .s0_reg = 0x26, - .s0_ctrl = 0x27, - .s1_addr = 0x28, - .s1_reg = 0x29, - .s1_ctrl = 0x2A, - .s4_ctrl = 0x34, - .s0_do = 0x63, - .s1_do = 0x64, - .i2c_delay_ctrl = 0x67 -#endif -}; -const struct hw_s hw = { - .addr = 0x68, - .max_fifo = 1024, - .num_reg = 118, - .temp_sens = 340, - .temp_offset = -521, - .bank_size = 256 -#if defined AK89xx_SECONDARY - ,.compass_fsr = AK89xx_FSR -#endif -}; - -const struct test_s test = { - .gyro_sens = 32768/250, - .accel_sens = 32768/16, - .reg_rate_div = 0, /* 1kHz. */ - .reg_lpf = 1, /* 188Hz. */ - .reg_gyro_fsr = 0, /* 250dps. */ - .reg_accel_fsr = 0x18, /* 16g. */ - .wait_ms = 50, - .packet_thresh = 5, /* 5% */ - .min_dps = 10.f, - .max_dps = 105.f, - .max_gyro_var = 0.14f, - .min_g = 0.3f, - .max_g = 0.95f, - .max_accel_var = 0.14f -}; - -static struct gyro_state_s st = { - .reg = ®, - .hw = &hw, - .test = &test -}; -#elif defined MPU6500 -const struct gyro_reg_s reg = { - .who_am_i = 0x75, - .rate_div = 0x19, - .lpf = 0x1A, - .prod_id = 0x0C, - .user_ctrl = 0x6A, - .fifo_en = 0x23, - .gyro_cfg = 0x1B, - .accel_cfg = 0x1C, - .accel_cfg2 = 0x1D, - .lp_accel_odr = 0x1E, - .motion_thr = 0x1F, - .motion_dur = 0x20, - .fifo_count_h = 0x72, - .fifo_r_w = 0x74, - .raw_gyro = 0x43, - .raw_accel = 0x3B, - .temp = 0x41, - .int_enable = 0x38, - .dmp_int_status = 0x39, - .int_status = 0x3A, - .accel_intel = 0x69, - .pwr_mgmt_1 = 0x6B, - .pwr_mgmt_2 = 0x6C, - .int_pin_cfg = 0x37, - .mem_r_w = 0x6F, - .accel_offs = 0x77, - .i2c_mst = 0x24, - .bank_sel = 0x6D, - .mem_start_addr = 0x6E, - .prgm_start_h = 0x70 -#ifdef AK89xx_SECONDARY - ,.raw_compass = 0x49, - .s0_addr = 0x25, - .s0_reg = 0x26, - .s0_ctrl = 0x27, - .s1_addr = 0x28, - .s1_reg = 0x29, - .s1_ctrl = 0x2A, - .s4_ctrl = 0x34, - .s0_do = 0x63, - .s1_do = 0x64, - .i2c_delay_ctrl = 0x67 -#endif -}; -const struct hw_s hw = { - .addr = 0x68, - .max_fifo = 1024, - .num_reg = 128, - .temp_sens = 321, - .temp_offset = 0, - .bank_size = 256 -#if defined AK89xx_SECONDARY - ,.compass_fsr = AK89xx_FSR -#endif -}; - -const struct test_s test = { - .gyro_sens = 32768/250, - .accel_sens = 32768/16, - .reg_rate_div = 0, /* 1kHz. */ - .reg_lpf = 1, /* 188Hz. */ - .reg_gyro_fsr = 0, /* 250dps. */ - .reg_accel_fsr = 0x18, /* 16g. */ - .wait_ms = 50, - .packet_thresh = 5, /* 5% */ - .min_dps = 10.f, - .max_dps = 105.f, - .max_gyro_var = 0.14f, - .min_g = 0.3f, - .max_g = 0.95f, - .max_accel_var = 0.14f -}; - -static struct gyro_state_s st = { - .reg = ®, - .hw = &hw, - .test = &test -}; -#endif - -#define MAX_PACKET_LENGTH (12) - -#ifdef AK89xx_SECONDARY -static int setup_compass(void); -#define MAX_COMPASS_SAMPLE_RATE (100) -#endif - -/** - * @brief Enable/disable data ready interrupt. - * If the DMP is on, the DMP interrupt is enabled. Otherwise, the data ready - * interrupt is used. - * @param[in] enable 1 to enable interrupt. - * @return 0 if successful. - */ -static int set_int_enable(unsigned char enable) -{ - unsigned char tmp; - - if (st.chip_cfg.dmp_on) { - if (enable) - tmp = BIT_DMP_INT_EN; - else - tmp = 0x00; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, &tmp)) - return -1; - st.chip_cfg.int_enable = tmp; - } else { - if (!st.chip_cfg.sensors) - return -1; - if (enable && st.chip_cfg.int_enable) - return 0; - if (enable) - tmp = BIT_DATA_RDY_EN; - else - tmp = 0x00; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, &tmp)) - return -1; - st.chip_cfg.int_enable = tmp; - } - return 0; -} - -/** - * @brief Register dump for testing. - * @return 0 if successful. - */ -int mpu_reg_dump(void) -{ - unsigned char ii; - unsigned char data; - - for (ii = 0; ii < st.hw->num_reg; ii++) { - if (ii == st.reg->fifo_r_w || ii == st.reg->mem_r_w) - continue; - if (i2c_read(st.hw->addr, ii, 1, &data)) - return -1; - log_i("%#5x: %#5x\r\n", ii, data); - } - return 0; -} - -/** - * @brief Read from a single register. - * NOTE: The memory and FIFO read/write registers cannot be accessed. - * @param[in] reg Register address. - * @param[out] data Register data. - * @return 0 if successful. - */ -int mpu_read_reg(unsigned char reg, unsigned char *data) -{ - if (reg == st.reg->fifo_r_w || reg == st.reg->mem_r_w) - return -1; - if (reg >= st.hw->num_reg) - return -1; - return i2c_read(st.hw->addr, reg, 1, data); -} - -/** - * @brief Initialize hardware. - * Initial configuration:\n - * Gyro FSR: +/- 2000DPS\n - * Accel FSR +/- 2G\n - * DLPF: 42Hz\n - * FIFO rate: 50Hz\n - * Clock source: Gyro PLL\n - * FIFO: Disabled.\n - * Data ready interrupt: Disabled, active low, unlatched. - * @param[in] int_param Platform-specific parameters to interrupt API. - * @return 0 if successful. - */ -int mpu_init(struct int_param_s *int_param) -{ - unsigned char data[6], rev; - - /* Reset device. */ - data[0] = BIT_RESET; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, data)) - return -1; - delay_ms(100); - - /* Wake up chip. */ - data[0] = 0x00; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, data)) - return -1; - -#if defined MPU6050 - /* Check product revision. */ - if (i2c_read(st.hw->addr, st.reg->accel_offs, 6, data)) - return -1; - rev = ((data[5] & 0x01) << 2) | ((data[3] & 0x01) << 1) | - (data[1] & 0x01); - - if (rev) { - /* Congrats, these parts are better. */ - if (rev == 1) - st.chip_cfg.accel_half = 1; - else if (rev == 2) - st.chip_cfg.accel_half = 0; - else { - log_e("Unsupported software product rev %d.\n", rev); - return -1; - } - } else { - if (i2c_read(st.hw->addr, st.reg->prod_id, 1, data)) - return -1; - rev = data[0] & 0x0F; - if (!rev) { - log_e("Product ID read as 0 indicates device is either " - "incompatible or an MPU3050.\n"); - return -1; - } else if (rev == 4) { - log_i("Half sensitivity part found.\n"); - st.chip_cfg.accel_half = 1; - } else - st.chip_cfg.accel_half = 0; - } -#elif defined MPU6500 -#define MPU6500_MEM_REV_ADDR (0x17) - if (mpu_read_mem(MPU6500_MEM_REV_ADDR, 1, &rev)) - return -1; - if (rev == 0x1) - st.chip_cfg.accel_half = 0; - else { - log_e("Unsupported software product rev %d.\n", rev); - return -1; - } - - /* MPU6500 shares 4kB of memory between the DMP and the FIFO. Since the - * first 3kB are needed by the DMP, we'll use the last 1kB for the FIFO. - */ - data[0] = BIT_FIFO_SIZE_1024 | 0x8; - if (i2c_write(st.hw->addr, st.reg->accel_cfg2, 1, data)) - return -1; -#endif - - /* Set to invalid values to ensure no I2C writes are skipped. */ - st.chip_cfg.sensors = 0xFF; - st.chip_cfg.gyro_fsr = 0xFF; - st.chip_cfg.accel_fsr = 0xFF; - st.chip_cfg.lpf = 0xFF; - st.chip_cfg.sample_rate = 0xFFFF; - st.chip_cfg.fifo_enable = 0xFF; - st.chip_cfg.bypass_mode = 0xFF; -#ifdef AK89xx_SECONDARY - st.chip_cfg.compass_sample_rate = 0xFFFF; -#endif - /* mpu_set_sensors always preserves this setting. */ - st.chip_cfg.clk_src = INV_CLK_PLL; - /* Handled in next call to mpu_set_bypass. */ - st.chip_cfg.active_low_int = 1; - st.chip_cfg.latched_int = 0; - st.chip_cfg.int_motion_only = 0; - st.chip_cfg.lp_accel_mode = 0; - memset(&st.chip_cfg.cache, 0, sizeof(st.chip_cfg.cache)); - st.chip_cfg.dmp_on = 0; - st.chip_cfg.dmp_loaded = 0; - st.chip_cfg.dmp_sample_rate = 0; - - if (mpu_set_gyro_fsr(2000)) - return -1; - if (mpu_set_accel_fsr(2)) - return -1; - if (mpu_set_lpf(42)) - return -1; - if (mpu_set_sample_rate(50)) - return -1; - if (mpu_configure_fifo(0)) - return -1; - - if (int_param) - reg_int_cb(int_param); - -#ifdef AK89xx_SECONDARY - setup_compass(); - if (mpu_set_compass_sample_rate(10)) - return -1; -#else - /* Already disabled by setup_compass. */ - if (mpu_set_bypass(0)) - return -1; -#endif - - mpu_set_sensors(0); - return 0; -} - -/** - * @brief Enter low-power accel-only mode. - * In low-power accel mode, the chip goes to sleep and only wakes up to sample - * the accelerometer at one of the following frequencies: - * \n MPU6050: 1.25Hz, 5Hz, 20Hz, 40Hz - * \n MPU6500: 1.25Hz, 2.5Hz, 5Hz, 10Hz, 20Hz, 40Hz, 80Hz, 160Hz, 320Hz, 640Hz - * \n If the requested rate is not one listed above, the device will be set to - * the next highest rate. Requesting a rate above the maximum supported - * frequency will result in an error. - * \n To select a fractional wake-up frequency, round down the value passed to - * @e rate. - * @param[in] rate Minimum sampling rate, or zero to disable LP - * accel mode. - * @return 0 if successful. - */ -int mpu_lp_accel_mode(unsigned char rate) -{ - unsigned char tmp[2]; - - if (rate > 40) - return -1; - - if (!rate) { - mpu_set_int_latched(0); - tmp[0] = 0; - tmp[1] = BIT_STBY_XYZG; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 2, tmp)) - return -1; - st.chip_cfg.lp_accel_mode = 0; - return 0; - } - /* For LP accel, we automatically configure the hardware to produce latched - * interrupts. In LP accel mode, the hardware cycles into sleep mode before - * it gets a chance to deassert the interrupt pin; therefore, we shift this - * responsibility over to the MCU. - * - * Any register read will clear the interrupt. - */ - mpu_set_int_latched(1); -#if defined MPU6050 - tmp[0] = BIT_LPA_CYCLE; - if (rate == 1) { - tmp[1] = INV_LPA_1_25HZ; - mpu_set_lpf(5); - } else if (rate <= 5) { - tmp[1] = INV_LPA_5HZ; - mpu_set_lpf(5); - } else if (rate <= 20) { - tmp[1] = INV_LPA_20HZ; - mpu_set_lpf(10); - } else { - tmp[1] = INV_LPA_40HZ; - mpu_set_lpf(20); - } - tmp[1] = (tmp[1] << 6) | BIT_STBY_XYZG; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 2, tmp)) - return -1; -#elif defined MPU6500 - /* Set wake frequency. */ - if (rate == 1) - tmp[0] = INV_LPA_1_25HZ; - else if (rate == 2) - tmp[0] = INV_LPA_2_5HZ; - else if (rate <= 5) - tmp[0] = INV_LPA_5HZ; - else if (rate <= 10) - tmp[0] = INV_LPA_10HZ; - else if (rate <= 20) - tmp[0] = INV_LPA_20HZ; - else if (rate <= 40) - tmp[0] = INV_LPA_40HZ; - else if (rate <= 80) - tmp[0] = INV_LPA_80HZ; - else if (rate <= 160) - tmp[0] = INV_LPA_160HZ; - else if (rate <= 320) - tmp[0] = INV_LPA_320HZ; - else - tmp[0] = INV_LPA_640HZ; - if (i2c_write(st.hw->addr, st.reg->lp_accel_odr, 1, tmp)) - return -1; - tmp[0] = BIT_LPA_CYCLE; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, tmp)) - return -1; -#endif - st.chip_cfg.sensors = INV_XYZ_ACCEL; - st.chip_cfg.clk_src = 0; - st.chip_cfg.lp_accel_mode = 1; - mpu_configure_fifo(0); - - return 0; -} - -/** - * @brief Read raw gyro data directly from the registers. - * @param[out] data Raw data in hardware units. - * @param[out] timestamp Timestamp in milliseconds. Null if not needed. - * @return 0 if successful. - */ -int mpu_get_gyro_reg(short *data, unsigned long *timestamp) -{ - unsigned char tmp[6]; - - if (!(st.chip_cfg.sensors & INV_XYZ_GYRO)) - return -1; - - if (i2c_read(st.hw->addr, st.reg->raw_gyro, 6, tmp)) - return -1; - data[0] = (tmp[0] << 8) | tmp[1]; - data[1] = (tmp[2] << 8) | tmp[3]; - data[2] = (tmp[4] << 8) | tmp[5]; - if (timestamp) - get_ms(timestamp); - return 0; -} - -/** - * @brief Read raw accel data directly from the registers. - * @param[out] data Raw data in hardware units. - * @param[out] timestamp Timestamp in milliseconds. Null if not needed. - * @return 0 if successful. - */ -int mpu_get_accel_reg(short *data, unsigned long *timestamp) -{ - unsigned char tmp[6]; - - if (!(st.chip_cfg.sensors & INV_XYZ_ACCEL)) - return -1; - - if (i2c_read(st.hw->addr, st.reg->raw_accel, 6, tmp)) - return -1; - data[0] = (tmp[0] << 8) | tmp[1]; - data[1] = (tmp[2] << 8) | tmp[3]; - data[2] = (tmp[4] << 8) | tmp[5]; - if (timestamp) - get_ms(timestamp); - return 0; -} - -/** - * @brief Read temperature data directly from the registers. - * @param[out] data Data in q16 format. - * @param[out] timestamp Timestamp in milliseconds. Null if not needed. - * @return 0 if successful. - */ -int mpu_get_temperature(long *data, unsigned long *timestamp) -{ - unsigned char tmp[2]; - short raw; - - if (!(st.chip_cfg.sensors)) - return -1; - - if (i2c_read(st.hw->addr, st.reg->temp, 2, tmp)) - return -1; - raw = (tmp[0] << 8) | tmp[1]; - if (timestamp) - get_ms(timestamp); - - data[0] = (long)((35 + ((raw - (float)st.hw->temp_offset) / st.hw->temp_sens)) * 65536L); - return 0; -} - -/** - * @brief Push biases to the accel bias registers. - * This function expects biases relative to the current sensor output, and - * these biases will be added to the factory-supplied values. - * @param[in] accel_bias New biases. - * @return 0 if successful. - */ -int mpu_set_accel_bias(const long *accel_bias) -{ - unsigned char data[6]; - short accel_hw[3]; - short got_accel[3]; - short fg[3]; - - if (!accel_bias) - return -1; - if (!accel_bias[0] && !accel_bias[1] && !accel_bias[2]) - return 0; - - if (i2c_read(st.hw->addr, 3, 3, data)) - return -1; - fg[0] = ((data[0] >> 4) + 8) & 0xf; - fg[1] = ((data[1] >> 4) + 8) & 0xf; - fg[2] = ((data[2] >> 4) + 8) & 0xf; - - accel_hw[0] = (short)(accel_bias[0] * 2 / (64 + fg[0])); - accel_hw[1] = (short)(accel_bias[1] * 2 / (64 + fg[1])); - accel_hw[2] = (short)(accel_bias[2] * 2 / (64 + fg[2])); - - if (i2c_read(st.hw->addr, 0x06, 6, data)) - return -1; - - got_accel[0] = ((short)data[0] << 8) | data[1]; - got_accel[1] = ((short)data[2] << 8) | data[3]; - got_accel[2] = ((short)data[4] << 8) | data[5]; - - accel_hw[0] += got_accel[0]; - accel_hw[1] += got_accel[1]; - accel_hw[2] += got_accel[2]; - - data[0] = (accel_hw[0] >> 8) & 0xff; - data[1] = (accel_hw[0]) & 0xff; - data[2] = (accel_hw[1] >> 8) & 0xff; - data[3] = (accel_hw[1]) & 0xff; - data[4] = (accel_hw[2] >> 8) & 0xff; - data[5] = (accel_hw[2]) & 0xff; - - if (i2c_write(st.hw->addr, 0x06, 6, data)) - return -1; - return 0; -} - -/** - * @brief Reset FIFO read/write pointers. - * @return 0 if successful. - */ -int mpu_reset_fifo(void) -{ - unsigned char data; - - if (!(st.chip_cfg.sensors)) - return -1; - - data = 0; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, &data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, &data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &data)) - return -1; - - if (st.chip_cfg.dmp_on) { - data = BIT_FIFO_RST | BIT_DMP_RST; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &data)) - return -1; - delay_ms(50); - data = BIT_DMP_EN | BIT_FIFO_EN; - if (st.chip_cfg.sensors & INV_XYZ_COMPASS) - data |= BIT_AUX_IF_EN; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &data)) - return -1; - if (st.chip_cfg.int_enable) - data = BIT_DMP_INT_EN; - else - data = 0; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, &data)) - return -1; - data = 0; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, &data)) - return -1; - } else { - data = BIT_FIFO_RST; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &data)) - return -1; - if (st.chip_cfg.bypass_mode || !(st.chip_cfg.sensors & INV_XYZ_COMPASS)) - data = BIT_FIFO_EN; - else - data = BIT_FIFO_EN | BIT_AUX_IF_EN; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &data)) - return -1; - delay_ms(50); - if (st.chip_cfg.int_enable) - data = BIT_DATA_RDY_EN; - else - data = 0; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, &data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, &st.chip_cfg.fifo_enable)) - return -1; - } - return 0; -} - -/** - * @brief Get the gyro full-scale range. - * @param[out] fsr Current full-scale range. - * @return 0 if successful. - */ -int mpu_get_gyro_fsr(unsigned short *fsr) -{ - switch (st.chip_cfg.gyro_fsr) { - case INV_FSR_250DPS: - fsr[0] = 250; - break; - case INV_FSR_500DPS: - fsr[0] = 500; - break; - case INV_FSR_1000DPS: - fsr[0] = 1000; - break; - case INV_FSR_2000DPS: - fsr[0] = 2000; - break; - default: - fsr[0] = 0; - break; - } - return 0; -} - -/** - * @brief Set the gyro full-scale range. - * @param[in] fsr Desired full-scale range. - * @return 0 if successful. - */ -int mpu_set_gyro_fsr(unsigned short fsr) -{ - unsigned char data; - - if (!(st.chip_cfg.sensors)) - return -1; - - switch (fsr) { - case 250: - data = INV_FSR_250DPS << 3; - break; - case 500: - data = INV_FSR_500DPS << 3; - break; - case 1000: - data = INV_FSR_1000DPS << 3; - break; - case 2000: - data = INV_FSR_2000DPS << 3; - break; - default: - return -1; - } - - if (st.chip_cfg.gyro_fsr == (data >> 3)) - return 0; - if (i2c_write(st.hw->addr, st.reg->gyro_cfg, 1, &data)) - return -1; - st.chip_cfg.gyro_fsr = data >> 3; - return 0; -} - -/** - * @brief Get the accel full-scale range. - * @param[out] fsr Current full-scale range. - * @return 0 if successful. - */ -int mpu_get_accel_fsr(unsigned char *fsr) -{ - switch (st.chip_cfg.accel_fsr) { - case INV_FSR_2G: - fsr[0] = 2; - break; - case INV_FSR_4G: - fsr[0] = 4; - break; - case INV_FSR_8G: - fsr[0] = 8; - break; - case INV_FSR_16G: - fsr[0] = 16; - break; - default: - return -1; - } - if (st.chip_cfg.accel_half) - fsr[0] <<= 1; - return 0; -} - -/** - * @brief Set the accel full-scale range. - * @param[in] fsr Desired full-scale range. - * @return 0 if successful. - */ -int mpu_set_accel_fsr(unsigned char fsr) -{ - unsigned char data; - - if (!(st.chip_cfg.sensors)) - return -1; - - switch (fsr) { - case 2: - data = INV_FSR_2G << 3; - break; - case 4: - data = INV_FSR_4G << 3; - break; - case 8: - data = INV_FSR_8G << 3; - break; - case 16: - data = INV_FSR_16G << 3; - break; - default: - return -1; - } - - if (st.chip_cfg.accel_fsr == (data >> 3)) - return 0; - if (i2c_write(st.hw->addr, st.reg->accel_cfg, 1, &data)) - return -1; - st.chip_cfg.accel_fsr = data >> 3; - return 0; -} - -/** - * @brief Get the current DLPF setting. - * @param[out] lpf Current LPF setting. - * 0 if successful. - */ -int mpu_get_lpf(unsigned short *lpf) -{ - switch (st.chip_cfg.lpf) { - case INV_FILTER_188HZ: - lpf[0] = 188; - break; - case INV_FILTER_98HZ: - lpf[0] = 98; - break; - case INV_FILTER_42HZ: - lpf[0] = 42; - break; - case INV_FILTER_20HZ: - lpf[0] = 20; - break; - case INV_FILTER_10HZ: - lpf[0] = 10; - break; - case INV_FILTER_5HZ: - lpf[0] = 5; - break; - case INV_FILTER_256HZ_NOLPF2: - case INV_FILTER_2100HZ_NOLPF: - default: - lpf[0] = 0; - break; - } - return 0; -} - -/** - * @brief Set digital low pass filter. - * The following LPF settings are supported: 188, 98, 42, 20, 10, 5. - * @param[in] lpf Desired LPF setting. - * @return 0 if successful. - */ -int mpu_set_lpf(unsigned short lpf) -{ - unsigned char data; - - if (!(st.chip_cfg.sensors)) - return -1; - - if (lpf >= 188) - data = INV_FILTER_188HZ; - else if (lpf >= 98) - data = INV_FILTER_98HZ; - else if (lpf >= 42) - data = INV_FILTER_42HZ; - else if (lpf >= 20) - data = INV_FILTER_20HZ; - else if (lpf >= 10) - data = INV_FILTER_10HZ; - else - data = INV_FILTER_5HZ; - - if (st.chip_cfg.lpf == data) - return 0; - if (i2c_write(st.hw->addr, st.reg->lpf, 1, &data)) - return -1; - st.chip_cfg.lpf = data; - return 0; -} - -/** - * @brief Get sampling rate. - * @param[out] rate Current sampling rate (Hz). - * @return 0 if successful. - */ -int mpu_get_sample_rate(unsigned short *rate) -{ - if (st.chip_cfg.dmp_on) - return -1; - else - rate[0] = st.chip_cfg.sample_rate; - return 0; -} - -/** - * @brief Set sampling rate. - * Sampling rate must be between 4Hz and 1kHz. - * @param[in] rate Desired sampling rate (Hz). - * @return 0 if successful. - */ -int mpu_set_sample_rate(unsigned short rate) -{ - unsigned char data; - - if (!(st.chip_cfg.sensors)) - return -1; - - if (st.chip_cfg.dmp_on) - return -1; - else { - if (st.chip_cfg.lp_accel_mode) { - if (rate && (rate <= 40)) { - /* Just stay in low-power accel mode. */ - mpu_lp_accel_mode(rate); - return 0; - } - /* Requested rate exceeds the allowed frequencies in LP accel mode, - * switch back to full-power mode. - */ - mpu_lp_accel_mode(0); - } - if (rate < 4) - rate = 4; - else if (rate > 1000) - rate = 1000; - - data = 1000 / rate - 1; - if (i2c_write(st.hw->addr, st.reg->rate_div, 1, &data)) - return -1; - - st.chip_cfg.sample_rate = 1000 / (1 + data); - -#ifdef AK89xx_SECONDARY - mpu_set_compass_sample_rate(min(st.chip_cfg.compass_sample_rate, MAX_COMPASS_SAMPLE_RATE)); -#endif - - /* Automatically set LPF to 1/2 sampling rate. */ - mpu_set_lpf(st.chip_cfg.sample_rate >> 1); - return 0; - } -} - -/** - * @brief Get compass sampling rate. - * @param[out] rate Current compass sampling rate (Hz). - * @return 0 if successful. - */ -int mpu_get_compass_sample_rate(unsigned short *rate) -{ -#ifdef AK89xx_SECONDARY - rate[0] = st.chip_cfg.compass_sample_rate; - return 0; -#else - rate[0] = 0; - return -1; -#endif -} - -/** - * @brief Set compass sampling rate. - * The compass on the auxiliary I2C bus is read by the MPU hardware at a - * maximum of 100Hz. The actual rate can be set to a fraction of the gyro - * sampling rate. - * - * \n WARNING: The new rate may be different than what was requested. Call - * mpu_get_compass_sample_rate to check the actual setting. - * @param[in] rate Desired compass sampling rate (Hz). - * @return 0 if successful. - */ -int mpu_set_compass_sample_rate(unsigned short rate) -{ -#ifdef AK89xx_SECONDARY - unsigned char div; - if (!rate || rate > st.chip_cfg.sample_rate || rate > MAX_COMPASS_SAMPLE_RATE) - return -1; - - div = st.chip_cfg.sample_rate / rate - 1; - if (i2c_write(st.hw->addr, st.reg->s4_ctrl, 1, &div)) - return -1; - st.chip_cfg.compass_sample_rate = st.chip_cfg.sample_rate / (div + 1); - return 0; -#else - return -1; -#endif -} - -/** - * @brief Get gyro sensitivity scale factor. - * @param[out] sens Conversion from hardware units to dps. - * @return 0 if successful. - */ -int mpu_get_gyro_sens(float *sens) -{ - switch (st.chip_cfg.gyro_fsr) { - case INV_FSR_250DPS: - sens[0] = 131.f; - break; - case INV_FSR_500DPS: - sens[0] = 65.5f; - break; - case INV_FSR_1000DPS: - sens[0] = 32.8f; - break; - case INV_FSR_2000DPS: - sens[0] = 16.4f; - break; - default: - return -1; - } - return 0; -} - -/** - * @brief Get accel sensitivity scale factor. - * @param[out] sens Conversion from hardware units to g's. - * @return 0 if successful. - */ -int mpu_get_accel_sens(unsigned short *sens) -{ - switch (st.chip_cfg.accel_fsr) { - case INV_FSR_2G: - sens[0] = 16384; - break; - case INV_FSR_4G: - sens[0] = 8092; - break; - case INV_FSR_8G: - sens[0] = 4096; - break; - case INV_FSR_16G: - sens[0] = 2048; - break; - default: - return -1; - } - if (st.chip_cfg.accel_half) - sens[0] >>= 1; - return 0; -} - -/** - * @brief Get current FIFO configuration. - * @e sensors can contain a combination of the following flags: - * \n INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO - * \n INV_XYZ_GYRO - * \n INV_XYZ_ACCEL - * @param[out] sensors Mask of sensors in FIFO. - * @return 0 if successful. - */ -int mpu_get_fifo_config(unsigned char *sensors) -{ - sensors[0] = st.chip_cfg.fifo_enable; - return 0; -} - -/** - * @brief Select which sensors are pushed to FIFO. - * @e sensors can contain a combination of the following flags: - * \n INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO - * \n INV_XYZ_GYRO - * \n INV_XYZ_ACCEL - * @param[in] sensors Mask of sensors to push to FIFO. - * @return 0 if successful. - */ -int mpu_configure_fifo(unsigned char sensors) -{ - unsigned char prev; - int result = 0; - - /* Compass data isn't going into the FIFO. Stop trying. */ - sensors &= ~INV_XYZ_COMPASS; - - if (st.chip_cfg.dmp_on) - return 0; - else { - if (!(st.chip_cfg.sensors)) - return -1; - prev = st.chip_cfg.fifo_enable; - st.chip_cfg.fifo_enable = sensors & st.chip_cfg.sensors; - if (st.chip_cfg.fifo_enable != sensors) - /* You're not getting what you asked for. Some sensors are - * asleep. - */ - result = -1; - else - result = 0; - if (sensors || st.chip_cfg.lp_accel_mode) - set_int_enable(1); - else - set_int_enable(0); - if (sensors) { - if (mpu_reset_fifo()) { - st.chip_cfg.fifo_enable = prev; - return -1; - } - } - } - - return result; -} - -/** - * @brief Get current power state. - * @param[in] power_on 1 if turned on, 0 if suspended. - * @return 0 if successful. - */ -int mpu_get_power_state(unsigned char *power_on) -{ - if (st.chip_cfg.sensors) - power_on[0] = 1; - else - power_on[0] = 0; - return 0; -} - -/** - * @brief Turn specific sensors on/off. - * @e sensors can contain a combination of the following flags: - * \n INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO - * \n INV_XYZ_GYRO - * \n INV_XYZ_ACCEL - * \n INV_XYZ_COMPASS - * @param[in] sensors Mask of sensors to wake. - * @return 0 if successful. - */ -int mpu_set_sensors(unsigned char sensors) -{ - unsigned char data; -#ifdef AK89xx_SECONDARY - unsigned char user_ctrl; -#endif - - if (sensors & INV_XYZ_GYRO) - data = INV_CLK_PLL; - else if (sensors) - data = 0; - else - data = BIT_SLEEP; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, &data)) { - st.chip_cfg.sensors = 0; - return -1; - } - st.chip_cfg.clk_src = data & ~BIT_SLEEP; - - data = 0; - if (!(sensors & INV_X_GYRO)) - data |= BIT_STBY_XG; - if (!(sensors & INV_Y_GYRO)) - data |= BIT_STBY_YG; - if (!(sensors & INV_Z_GYRO)) - data |= BIT_STBY_ZG; - if (!(sensors & INV_XYZ_ACCEL)) - data |= BIT_STBY_XYZA; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_2, 1, &data)) { - st.chip_cfg.sensors = 0; - return -1; - } - - if (sensors && (sensors != INV_XYZ_ACCEL)) - /* Latched interrupts only used in LP accel mode. */ - mpu_set_int_latched(0); - -#ifdef AK89xx_SECONDARY -#ifdef AK89xx_BYPASS - if (sensors & INV_XYZ_COMPASS) - mpu_set_bypass(1); - else - mpu_set_bypass(0); -#else - if (i2c_read(st.hw->addr, st.reg->user_ctrl, 1, &user_ctrl)) - return -1; - /* Handle AKM power management. */ - if (sensors & INV_XYZ_COMPASS) { - data = AKM_SINGLE_MEASUREMENT; - user_ctrl |= BIT_AUX_IF_EN; - } else { - data = AKM_POWER_DOWN; - user_ctrl &= ~BIT_AUX_IF_EN; - } - if (st.chip_cfg.dmp_on) - user_ctrl |= BIT_DMP_EN; - else - user_ctrl &= ~BIT_DMP_EN; - if (i2c_write(st.hw->addr, st.reg->s1_do, 1, &data)) - return -1; - /* Enable/disable I2C master mode. */ - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &user_ctrl)) - return -1; -#endif -#endif - - st.chip_cfg.sensors = sensors; - st.chip_cfg.lp_accel_mode = 0; - delay_ms(50); - return 0; -} - -/** - * @brief Read the MPU interrupt status registers. - * @param[out] status Mask of interrupt bits. - * @return 0 if successful. - */ -int mpu_get_int_status(short *status) -{ - unsigned char tmp[2]; - if (!st.chip_cfg.sensors) - return -1; - if (i2c_read(st.hw->addr, st.reg->dmp_int_status, 2, tmp)) - return -1; - status[0] = (tmp[0] << 8) | tmp[1]; - return 0; -} - -/** - * @brief Get one packet from the FIFO. - * If @e sensors does not contain a particular sensor, disregard the data - * returned to that pointer. - * \n @e sensors can contain a combination of the following flags: - * \n INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO - * \n INV_XYZ_GYRO - * \n INV_XYZ_ACCEL - * \n If the FIFO has no new data, @e sensors will be zero. - * \n If the FIFO is disabled, @e sensors will be zero and this function will - * return a non-zero error code. - * @param[out] gyro Gyro data in hardware units. - * @param[out] accel Accel data in hardware units. - * @param[out] timestamp Timestamp in milliseconds. - * @param[out] sensors Mask of sensors read from FIFO. - * @param[out] more Number of remaining packets. - * @return 0 if successful. - */ -int mpu_read_fifo(short *gyro, short *accel, unsigned long *timestamp, - unsigned char *sensors, unsigned char *more) -{ - /* Assumes maximum packet size is gyro (6) + accel (6). */ - unsigned char data[MAX_PACKET_LENGTH]; - unsigned char packet_size = 0; - unsigned short fifo_count, index = 0; - - if (st.chip_cfg.dmp_on) - return -1; - - sensors[0] = 0; - if (!st.chip_cfg.sensors) - return -1; - if (!st.chip_cfg.fifo_enable) - return -1; - - if (st.chip_cfg.fifo_enable & INV_X_GYRO) - packet_size += 2; - if (st.chip_cfg.fifo_enable & INV_Y_GYRO) - packet_size += 2; - if (st.chip_cfg.fifo_enable & INV_Z_GYRO) - packet_size += 2; - if (st.chip_cfg.fifo_enable & INV_XYZ_ACCEL) - packet_size += 6; - - if (i2c_read(st.hw->addr, st.reg->fifo_count_h, 2, data)) - return -1; - fifo_count = (data[0] << 8) | data[1]; - if (fifo_count < packet_size) - return 0; -// log_i("FIFO count: %hd\n", fifo_count); - if (fifo_count > (st.hw->max_fifo >> 1)) { - /* FIFO is 50% full, better check overflow bit. */ - if (i2c_read(st.hw->addr, st.reg->int_status, 1, data)) - return -1; - if (data[0] & BIT_FIFO_OVERFLOW) { - mpu_reset_fifo(); - return -2; - } - } - get_ms((unsigned long*)timestamp); - - if (i2c_read(st.hw->addr, st.reg->fifo_r_w, packet_size, data)) - return -1; - more[0] = fifo_count / packet_size - 1; - sensors[0] = 0; - - if ((index != packet_size) && st.chip_cfg.fifo_enable & INV_XYZ_ACCEL) { - accel[0] = (data[index+0] << 8) | data[index+1]; - accel[1] = (data[index+2] << 8) | data[index+3]; - accel[2] = (data[index+4] << 8) | data[index+5]; - sensors[0] |= INV_XYZ_ACCEL; - index += 6; - } - if ((index != packet_size) && st.chip_cfg.fifo_enable & INV_X_GYRO) { - gyro[0] = (data[index+0] << 8) | data[index+1]; - sensors[0] |= INV_X_GYRO; - index += 2; - } - if ((index != packet_size) && st.chip_cfg.fifo_enable & INV_Y_GYRO) { - gyro[1] = (data[index+0] << 8) | data[index+1]; - sensors[0] |= INV_Y_GYRO; - index += 2; - } - if ((index != packet_size) && st.chip_cfg.fifo_enable & INV_Z_GYRO) { - gyro[2] = (data[index+0] << 8) | data[index+1]; - sensors[0] |= INV_Z_GYRO; - index += 2; - } - - return 0; -} - -/** - * @brief Get one unparsed packet from the FIFO. - * This function should be used if the packet is to be parsed elsewhere. - * @param[in] length Length of one FIFO packet. - * @param[in] data FIFO packet. - * @param[in] more Number of remaining packets. - */ -int mpu_read_fifo_stream(unsigned short length, unsigned char *data, - unsigned char *more) -{ - unsigned char tmp[2]; - unsigned short fifo_count; - if (!st.chip_cfg.dmp_on) - return -1; - if (!st.chip_cfg.sensors) - return -1; - - if (i2c_read(st.hw->addr, st.reg->fifo_count_h, 2, tmp)) - return -1; - fifo_count = (tmp[0] << 8) | tmp[1]; - if (fifo_count < length) { - more[0] = 0; - return -1; - } - if (fifo_count > (st.hw->max_fifo >> 1)) { - /* FIFO is 50% full, better check overflow bit. */ - if (i2c_read(st.hw->addr, st.reg->int_status, 1, tmp)) - return -1; - if (tmp[0] & BIT_FIFO_OVERFLOW) { - mpu_reset_fifo(); - return -2; - } - } - - if (i2c_read(st.hw->addr, st.reg->fifo_r_w, length, data)) - return -1; - more[0] = fifo_count / length - 1; - return 0; -} - -/** - * @brief Set device to bypass mode. - * @param[in] bypass_on 1 to enable bypass mode. - * @return 0 if successful. - */ -int mpu_set_bypass(unsigned char bypass_on) -{ - unsigned char tmp; - - if (st.chip_cfg.bypass_mode == bypass_on) - return 0; - - if (bypass_on) { - if (i2c_read(st.hw->addr, st.reg->user_ctrl, 1, &tmp)) - return -1; - tmp &= ~BIT_AUX_IF_EN; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &tmp)) - return -1; - delay_ms(3); - tmp = BIT_BYPASS_EN; - if (st.chip_cfg.active_low_int) - tmp |= BIT_ACTL; - if (st.chip_cfg.latched_int) - tmp |= BIT_LATCH_EN | BIT_ANY_RD_CLR; - if (i2c_write(st.hw->addr, st.reg->int_pin_cfg, 1, &tmp)) - return -1; - } else { - /* Enable I2C master mode if compass is being used. */ - if (i2c_read(st.hw->addr, st.reg->user_ctrl, 1, &tmp)) - return -1; - if (st.chip_cfg.sensors & INV_XYZ_COMPASS) - tmp |= BIT_AUX_IF_EN; - else - tmp &= ~BIT_AUX_IF_EN; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, &tmp)) - return -1; - delay_ms(3); - if (st.chip_cfg.active_low_int) - tmp = BIT_ACTL; - else - tmp = 0; - if (st.chip_cfg.latched_int) - tmp |= BIT_LATCH_EN | BIT_ANY_RD_CLR; - if (i2c_write(st.hw->addr, st.reg->int_pin_cfg, 1, &tmp)) - return -1; - } - st.chip_cfg.bypass_mode = bypass_on; - return 0; -} - -/** - * @brief Set interrupt level. - * @param[in] active_low 1 for active low, 0 for active high. - * @return 0 if successful. - */ -int mpu_set_int_level(unsigned char active_low) -{ - st.chip_cfg.active_low_int = active_low; - return 0; -} - -/** - * @brief Enable latched interrupts. - * Any MPU register will clear the interrupt. - * @param[in] enable 1 to enable, 0 to disable. - * @return 0 if successful. - */ -int mpu_set_int_latched(unsigned char enable) -{ - unsigned char tmp; - if (st.chip_cfg.latched_int == enable) - return 0; - - if (enable) - tmp = BIT_LATCH_EN | BIT_ANY_RD_CLR; - else - tmp = 0; - if (st.chip_cfg.bypass_mode) - tmp |= BIT_BYPASS_EN; - if (st.chip_cfg.active_low_int) - tmp |= BIT_ACTL; - if (i2c_write(st.hw->addr, st.reg->int_pin_cfg, 1, &tmp)) - return -1; - st.chip_cfg.latched_int = enable; - return 0; -} - -#ifdef MPU6050 -static int get_accel_prod_shift(float *st_shift) -{ - unsigned char tmp[4], shift_code[3], ii; - - if (i2c_read(st.hw->addr, 0x0D, 4, tmp)) - return 0x07; - - shift_code[0] = ((tmp[0] & 0xE0) >> 3) | ((tmp[3] & 0x30) >> 4); - shift_code[1] = ((tmp[1] & 0xE0) >> 3) | ((tmp[3] & 0x0C) >> 2); - shift_code[2] = ((tmp[2] & 0xE0) >> 3) | (tmp[3] & 0x03); - for (ii = 0; ii < 3; ii++) { - if (!shift_code[ii]) { - st_shift[ii] = 0.f; - continue; - } - /* Equivalent to.. - * st_shift[ii] = 0.34f * powf(0.92f/0.34f, (shift_code[ii]-1) / 30.f) - */ - st_shift[ii] = 0.34f; - while (--shift_code[ii]) - st_shift[ii] *= 1.034f; - } - return 0; -} - -static int accel_self_test(long *bias_regular, long *bias_st) -{ - int jj, result = 0; - float st_shift[3], st_shift_cust, st_shift_var; - - get_accel_prod_shift(st_shift); - for(jj = 0; jj < 3; jj++) { - st_shift_cust = labs(bias_regular[jj] - bias_st[jj]) / 65536.f; - if (st_shift[jj]) { - st_shift_var = st_shift_cust / st_shift[jj] - 1.f; - if (fabs(st_shift_var) > test.max_accel_var) - result |= 1 << jj; - } else if ((st_shift_cust < test.min_g) || - (st_shift_cust > test.max_g)) - result |= 1 << jj; - } - - return result; -} - -static int gyro_self_test(long *bias_regular, long *bias_st) -{ - int jj, result = 0; - unsigned char tmp[3]; - float st_shift, st_shift_cust, st_shift_var; - - if (i2c_read(st.hw->addr, 0x0D, 3, tmp)) - return 0x07; - - tmp[0] &= 0x1F; - tmp[1] &= 0x1F; - tmp[2] &= 0x1F; - - for (jj = 0; jj < 3; jj++) { - st_shift_cust = labs(bias_regular[jj] - bias_st[jj]) / 65536.f; - if (tmp[jj]) { - st_shift = 3275.f / test.gyro_sens; - while (--tmp[jj]) - st_shift *= 1.046f; - st_shift_var = st_shift_cust / st_shift - 1.f; - if (fabs(st_shift_var) > test.max_gyro_var) - result |= 1 << jj; - } else if ((st_shift_cust < test.min_dps) || - (st_shift_cust > test.max_dps)) - result |= 1 << jj; - } - return result; -} - -#ifdef AK89xx_SECONDARY -static int compass_self_test(void) -{ - unsigned char tmp[6]; - unsigned char tries = 10; - int result = 0x07; - short data; - - mpu_set_bypass(1); - - tmp[0] = AKM_POWER_DOWN; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, tmp)) - return 0x07; - tmp[0] = AKM_BIT_SELF_TEST; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_ASTC, 1, tmp)) - goto AKM_restore; - tmp[0] = AKM_MODE_SELF_TEST; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, tmp)) - goto AKM_restore; - - do { - delay_ms(10); - if (i2c_read(st.chip_cfg.compass_addr, AKM_REG_ST1, 1, tmp)) - goto AKM_restore; - if (tmp[0] & AKM_DATA_READY) - break; - } while (tries--); - if (!(tmp[0] & AKM_DATA_READY)) - goto AKM_restore; - - if (i2c_read(st.chip_cfg.compass_addr, AKM_REG_HXL, 6, tmp)) - goto AKM_restore; - - result = 0; - data = (short)(tmp[1] << 8) | tmp[0]; - if ((data > 100) || (data < -100)) - result |= 0x01; - data = (short)(tmp[3] << 8) | tmp[2]; - if ((data > 100) || (data < -100)) - result |= 0x02; - data = (short)(tmp[5] << 8) | tmp[4]; - if ((data > -300) || (data < -1000)) - result |= 0x04; - -AKM_restore: - tmp[0] = 0 | SUPPORTS_AK89xx_HIGH_SENS; - i2c_write(st.chip_cfg.compass_addr, AKM_REG_ASTC, 1, tmp); - tmp[0] = SUPPORTS_AK89xx_HIGH_SENS; - i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, tmp); - mpu_set_bypass(0); - return result; -} -#endif -#endif - -static int get_st_biases(long *gyro, long *accel, unsigned char hw_test) -{ - unsigned char data[MAX_PACKET_LENGTH]; - unsigned char packet_count, ii; - unsigned short fifo_count; - - data[0] = 0x01; - data[1] = 0; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 2, data)) - return -1; - delay_ms(200); - data[0] = 0; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->i2c_mst, 1, data)) - return -1; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, data)) - return -1; - data[0] = BIT_FIFO_RST | BIT_DMP_RST; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, data)) - return -1; - delay_ms(15); - data[0] = st.test->reg_lpf; - if (i2c_write(st.hw->addr, st.reg->lpf, 1, data)) - return -1; - data[0] = st.test->reg_rate_div; - if (i2c_write(st.hw->addr, st.reg->rate_div, 1, data)) - return -1; - if (hw_test) - data[0] = st.test->reg_gyro_fsr | 0xE0; - else - data[0] = st.test->reg_gyro_fsr; - if (i2c_write(st.hw->addr, st.reg->gyro_cfg, 1, data)) - return -1; - - if (hw_test) - data[0] = st.test->reg_accel_fsr | 0xE0; - else - data[0] = test.reg_accel_fsr; - if (i2c_write(st.hw->addr, st.reg->accel_cfg, 1, data)) - return -1; - if (hw_test) - delay_ms(200); - - /* Fill FIFO for test.wait_ms milliseconds. */ - data[0] = BIT_FIFO_EN; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 1, data)) - return -1; - - data[0] = INV_XYZ_GYRO | INV_XYZ_ACCEL; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, data)) - return -1; - delay_ms(test.wait_ms); - data[0] = 0; - if (i2c_write(st.hw->addr, st.reg->fifo_en, 1, data)) - return -1; - - if (i2c_read(st.hw->addr, st.reg->fifo_count_h, 2, data)) - return -1; - - fifo_count = (data[0] << 8) | data[1]; - packet_count = fifo_count / MAX_PACKET_LENGTH; - gyro[0] = gyro[1] = gyro[2] = 0; - accel[0] = accel[1] = accel[2] = 0; - - for (ii = 0; ii < packet_count; ii++) { - short accel_cur[3], gyro_cur[3]; - if (i2c_read(st.hw->addr, st.reg->fifo_r_w, MAX_PACKET_LENGTH, data)) - return -1; - accel_cur[0] = ((short)data[0] << 8) | data[1]; - accel_cur[1] = ((short)data[2] << 8) | data[3]; - accel_cur[2] = ((short)data[4] << 8) | data[5]; - accel[0] += (long)accel_cur[0]; - accel[1] += (long)accel_cur[1]; - accel[2] += (long)accel_cur[2]; - gyro_cur[0] = (((short)data[6] << 8) | data[7]); - gyro_cur[1] = (((short)data[8] << 8) | data[9]); - gyro_cur[2] = (((short)data[10] << 8) | data[11]); - gyro[0] += (long)gyro_cur[0]; - gyro[1] += (long)gyro_cur[1]; - gyro[2] += (long)gyro_cur[2]; - } -#ifdef EMPL_NO_64BIT - gyro[0] = (long)(((float)gyro[0]*65536.f) / test.gyro_sens / packet_count); - gyro[1] = (long)(((float)gyro[1]*65536.f) / test.gyro_sens / packet_count); - gyro[2] = (long)(((float)gyro[2]*65536.f) / test.gyro_sens / packet_count); - if (has_accel) { - accel[0] = (long)(((float)accel[0]*65536.f) / test.accel_sens / - packet_count); - accel[1] = (long)(((float)accel[1]*65536.f) / test.accel_sens / - packet_count); - accel[2] = (long)(((float)accel[2]*65536.f) / test.accel_sens / - packet_count); - /* Don't remove gravity! */ - accel[2] -= 65536L; - } -#else - gyro[0] = (long)(((long long)gyro[0]<<16) / test.gyro_sens / packet_count); - gyro[1] = (long)(((long long)gyro[1]<<16) / test.gyro_sens / packet_count); - gyro[2] = (long)(((long long)gyro[2]<<16) / test.gyro_sens / packet_count); - accel[0] = (long)(((long long)accel[0]<<16) / test.accel_sens / - packet_count); - accel[1] = (long)(((long long)accel[1]<<16) / test.accel_sens / - packet_count); - accel[2] = (long)(((long long)accel[2]<<16) / test.accel_sens / - packet_count); - /* Don't remove gravity! */ - if (accel[2] > 0L) - accel[2] -= 65536L; - else - accel[2] += 65536L; -#endif - - return 0; -} - -/** - * @brief Trigger gyro/accel/compass self-test. - * On success/error, the self-test returns a mask representing the sensor(s) - * that failed. For each bit, a one (1) represents a "pass" case; conversely, - * a zero (0) indicates a failure. - * - * \n The mask is defined as follows: - * \n Bit 0: Gyro. - * \n Bit 1: Accel. - * \n Bit 2: Compass. - * - * \n Currently, the hardware self-test is unsupported for MPU6500. However, - * this function can still be used to obtain the accel and gyro biases. - * - * \n This function must be called with the device either face-up or face-down - * (z-axis is parallel to gravity). - * @param[out] gyro Gyro biases in q16 format. - * @param[out] accel Accel biases (if applicable) in q16 format. - * @return Result mask (see above). - */ -int mpu_run_self_test(long *gyro, long *accel) -{ -#ifdef MPU6050 - const unsigned char tries = 2; - long gyro_st[3], accel_st[3]; - unsigned char accel_result, gyro_result; -#ifdef AK89xx_SECONDARY - unsigned char compass_result; -#endif - int ii; -#endif - int result; - unsigned char accel_fsr, fifo_sensors, sensors_on; - unsigned short gyro_fsr, sample_rate, lpf; - unsigned char dmp_was_on; - - if (st.chip_cfg.dmp_on) { - mpu_set_dmp_state(0); - dmp_was_on = 1; - } else - dmp_was_on = 0; - - /* Get initial settings. */ - mpu_get_gyro_fsr(&gyro_fsr); - mpu_get_accel_fsr(&accel_fsr); - mpu_get_lpf(&lpf); - mpu_get_sample_rate(&sample_rate); - sensors_on = st.chip_cfg.sensors; - mpu_get_fifo_config(&fifo_sensors); - - /* For older chips, the self-test will be different. */ -#if defined MPU6050 - for (ii = 0; ii < tries; ii++) - if (!get_st_biases(gyro, accel, 0)) - break; - if (ii == tries) { - /* If we reach this point, we most likely encountered an I2C error. - * We'll just report an error for all three sensors. - */ - result = 0; - goto restore; - } - for (ii = 0; ii < tries; ii++) - if (!get_st_biases(gyro_st, accel_st, 1)) - break; - if (ii == tries) { - /* Again, probably an I2C error. */ - result = 0; - goto restore; - } - accel_result = accel_self_test(accel, accel_st); - gyro_result = gyro_self_test(gyro, gyro_st); - - result = 0; - if (!gyro_result) - result |= 0x01; - if (!accel_result) - result |= 0x02; - -#ifdef AK89xx_SECONDARY - compass_result = compass_self_test(); - if (!compass_result) - result |= 0x04; -#endif -restore: -#elif defined MPU6500 - /* For now, this function will return a "pass" result for all three sensors - * for compatibility with current test applications. - */ - get_st_biases(gyro, accel, 0); - result = 0x7; -#endif - /* Set to invalid values to ensure no I2C writes are skipped. */ - st.chip_cfg.gyro_fsr = 0xFF; - st.chip_cfg.accel_fsr = 0xFF; - st.chip_cfg.lpf = 0xFF; - st.chip_cfg.sample_rate = 0xFFFF; - st.chip_cfg.sensors = 0xFF; - st.chip_cfg.fifo_enable = 0xFF; - st.chip_cfg.clk_src = INV_CLK_PLL; - mpu_set_gyro_fsr(gyro_fsr); - mpu_set_accel_fsr(accel_fsr); - mpu_set_lpf(lpf); - mpu_set_sample_rate(sample_rate); - mpu_set_sensors(sensors_on); - mpu_configure_fifo(fifo_sensors); - - if (dmp_was_on) - mpu_set_dmp_state(1); - - return result; -} - -/** - * @brief Write to the DMP memory. - * This function prevents I2C writes past the bank boundaries. The DMP memory - * is only accessible when the chip is awake. - * @param[in] mem_addr Memory location (bank << 8 | start address) - * @param[in] length Number of bytes to write. - * @param[in] data Bytes to write to memory. - * @return 0 if successful. - */ -int mpu_write_mem(unsigned short mem_addr, unsigned short length, - unsigned char *data) -{ - unsigned char tmp[2]; - - if (!data) - return -1; - if (!st.chip_cfg.sensors) - return -1; - - tmp[0] = (unsigned char)(mem_addr >> 8); - tmp[1] = (unsigned char)(mem_addr & 0xFF); - - /* Check bank boundaries. */ - if (tmp[1] + length > st.hw->bank_size) - return -1; - - if (i2c_write(st.hw->addr, st.reg->bank_sel, 2, tmp)) - return -1; - if (i2c_write(st.hw->addr, st.reg->mem_r_w, length, data)) - return -1; - return 0; -} - -/** - * @brief Read from the DMP memory. - * This function prevents I2C reads past the bank boundaries. The DMP memory - * is only accessible when the chip is awake. - * @param[in] mem_addr Memory location (bank << 8 | start address) - * @param[in] length Number of bytes to read. - * @param[out] data Bytes read from memory. - * @return 0 if successful. - */ -int mpu_read_mem(unsigned short mem_addr, unsigned short length, - unsigned char *data) -{ - unsigned char tmp[2]; - - if (!data) - return -1; - if (!st.chip_cfg.sensors) - return -1; - - tmp[0] = (unsigned char)(mem_addr >> 8); - tmp[1] = (unsigned char)(mem_addr & 0xFF); - - /* Check bank boundaries. */ - if (tmp[1] + length > st.hw->bank_size) - return -1; - - if (i2c_write(st.hw->addr, st.reg->bank_sel, 2, tmp)) - return -1; - if (i2c_read(st.hw->addr, st.reg->mem_r_w, length, data)) - return -1; - return 0; -} - -/** - * @brief Load and verify DMP image. - * @param[in] length Length of DMP image. - * @param[in] firmware DMP code. - * @param[in] start_addr Starting address of DMP code memory. - * @param[in] sample_rate Fixed sampling rate used when DMP is enabled. - * @return 0 if successful. - */ -int mpu_load_firmware(unsigned short length, const unsigned char *firmware, - unsigned short start_addr, unsigned short sample_rate) -{ - unsigned short ii; - unsigned short this_write; - /* Must divide evenly into st.hw->bank_size to avoid bank crossings. */ -#define LOAD_CHUNK (16) - unsigned char cur[LOAD_CHUNK], tmp[2]; - - if (st.chip_cfg.dmp_loaded) - /* DMP should only be loaded once. */ - return -1; - - if (!firmware) - return -1; - for (ii = 0; ii < length; ii += this_write) { - this_write = min(LOAD_CHUNK, length - ii); - if (mpu_write_mem(ii, this_write, (unsigned char*)&firmware[ii])) - return -1; - if (mpu_read_mem(ii, this_write, cur)) - return -1; - if (memcmp(firmware+ii, cur, this_write)) - return -2; - } - - /* Set program start address. */ - tmp[0] = start_addr >> 8; - tmp[1] = start_addr & 0xFF; - if (i2c_write(st.hw->addr, st.reg->prgm_start_h, 2, tmp)) - return -1; - - st.chip_cfg.dmp_loaded = 1; - st.chip_cfg.dmp_sample_rate = sample_rate; - return 0; -} - -/** - * @brief Enable/disable DMP support. - * @param[in] enable 1 to turn on the DMP. - * @return 0 if successful. - */ -int mpu_set_dmp_state(unsigned char enable) -{ - unsigned char tmp; - if (st.chip_cfg.dmp_on == enable) - return 0; - - if (enable) { - if (!st.chip_cfg.dmp_loaded) - return -1; - /* Disable data ready interrupt. */ - set_int_enable(0); - /* Disable bypass mode. */ - mpu_set_bypass(0); - /* Keep constant sample rate, FIFO rate controlled by DMP. */ - mpu_set_sample_rate(st.chip_cfg.dmp_sample_rate); - /* Remove FIFO elements. */ - tmp = 0; - i2c_write(st.hw->addr, 0x23, 1, &tmp); - st.chip_cfg.dmp_on = 1; - /* Enable DMP interrupt. */ - set_int_enable(1); - mpu_reset_fifo(); - } else { - /* Disable DMP interrupt. */ - set_int_enable(0); - /* Restore FIFO settings. */ - tmp = st.chip_cfg.fifo_enable; - i2c_write(st.hw->addr, 0x23, 1, &tmp); - st.chip_cfg.dmp_on = 0; - mpu_reset_fifo(); - } - return 0; -} - -/** - * @brief Get DMP state. - * @param[out] enabled 1 if enabled. - * @return 0 if successful. - */ -int mpu_get_dmp_state(unsigned char *enabled) -{ - enabled[0] = st.chip_cfg.dmp_on; - return 0; -} - - -/* This initialization is similar to the one in ak8975.c. */ -int setup_compass(void) -{ -#ifdef AK89xx_SECONDARY - unsigned char data[4], akm_addr; - - mpu_set_bypass(1); - - /* Find compass. Possible addresses range from 0x0C to 0x0F. */ - for (akm_addr = 0x0C; akm_addr <= 0x0F; akm_addr++) { - int result; - result = i2c_read(akm_addr, AKM_REG_WHOAMI, 1, data); - if (!result && (data[0] == AKM_WHOAMI)) - break; - } - - if (akm_addr > 0x0F) { - /* TODO: Handle this case in all compass-related functions. */ - log_e("Compass not found.\n"); - return -1; - } - - st.chip_cfg.compass_addr = akm_addr; - - data[0] = AKM_POWER_DOWN; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, data)) - return -1; - delay_ms(1); - - data[0] = AKM_FUSE_ROM_ACCESS; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, data)) - return -1; - delay_ms(1); - - /* Get sensitivity adjustment data from fuse ROM. */ - if (i2c_read(st.chip_cfg.compass_addr, AKM_REG_ASAX, 3, data)) - return -1; - st.chip_cfg.mag_sens_adj[0] = (long)data[0] + 128; - st.chip_cfg.mag_sens_adj[1] = (long)data[1] + 128; - st.chip_cfg.mag_sens_adj[2] = (long)data[2] + 128; - - data[0] = AKM_POWER_DOWN; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, data)) - return -1; - delay_ms(1); - - mpu_set_bypass(0); - - /* Set up master mode, master clock, and ES bit. */ - data[0] = 0x40; - if (i2c_write(st.hw->addr, st.reg->i2c_mst, 1, data)) - return -1; - - /* Slave 0 reads from AKM data registers. */ - data[0] = BIT_I2C_READ | st.chip_cfg.compass_addr; - if (i2c_write(st.hw->addr, st.reg->s0_addr, 1, data)) - return -1; - - /* Compass reads start at this register. */ - data[0] = AKM_REG_ST1; - if (i2c_write(st.hw->addr, st.reg->s0_reg, 1, data)) - return -1; - - /* Enable slave 0, 8-byte reads. */ - data[0] = BIT_SLAVE_EN | 8; - if (i2c_write(st.hw->addr, st.reg->s0_ctrl, 1, data)) - return -1; - - /* Slave 1 changes AKM measurement mode. */ - data[0] = st.chip_cfg.compass_addr; - if (i2c_write(st.hw->addr, st.reg->s1_addr, 1, data)) - return -1; - - /* AKM measurement mode register. */ - data[0] = AKM_REG_CNTL; - if (i2c_write(st.hw->addr, st.reg->s1_reg, 1, data)) - return -1; - - /* Enable slave 1, 1-byte writes. */ - data[0] = BIT_SLAVE_EN | 1; - if (i2c_write(st.hw->addr, st.reg->s1_ctrl, 1, data)) - return -1; - - /* Set slave 1 data. */ - data[0] = AKM_SINGLE_MEASUREMENT; - if (i2c_write(st.hw->addr, st.reg->s1_do, 1, data)) - return -1; - - /* Trigger slave 0 and slave 1 actions at each sample. */ - data[0] = 0x03; - if (i2c_write(st.hw->addr, st.reg->i2c_delay_ctrl, 1, data)) - return -1; - -#ifdef MPU9150 - /* For the MPU9150, the auxiliary I2C bus needs to be set to VDD. */ - data[0] = BIT_I2C_MST_VDDIO; - if (i2c_write(st.hw->addr, st.reg->yg_offs_tc, 1, data)) - return -1; -#endif - - return 0; -#else - return -1; -#endif -} - -/** - * @brief Read raw compass data. - * @param[out] data Raw data in hardware units. - * @param[out] timestamp Timestamp in milliseconds. Null if not needed. - * @return 0 if successful. - */ -int mpu_get_compass_reg(short *data, unsigned long *timestamp) -{ -#ifdef AK89xx_SECONDARY - unsigned char tmp[9]; - - if (!(st.chip_cfg.sensors & INV_XYZ_COMPASS)) - return -1; - -#ifdef AK89xx_BYPASS - if (i2c_read(st.chip_cfg.compass_addr, AKM_REG_ST1, 8, tmp)) - return -1; - tmp[8] = AKM_SINGLE_MEASUREMENT; - if (i2c_write(st.chip_cfg.compass_addr, AKM_REG_CNTL, 1, tmp+8)) - return -1; -#else - if (i2c_read(st.hw->addr, st.reg->raw_compass, 8, tmp)) - return -1; -#endif - -#if defined AK8975_SECONDARY - /* AK8975 doesn't have the overrun error bit. */ - if (!(tmp[0] & AKM_DATA_READY)) - return -2; - if ((tmp[7] & AKM_OVERFLOW) || (tmp[7] & AKM_DATA_ERROR)) - return -3; -#elif defined AK8963_SECONDARY - /* AK8963 doesn't have the data read error bit. */ - if (!(tmp[0] & AKM_DATA_READY) || (tmp[0] & AKM_DATA_OVERRUN)) - return -2; - if (tmp[7] & AKM_OVERFLOW) - return -3; -#endif - data[0] = (tmp[2] << 8) | tmp[1]; - data[1] = (tmp[4] << 8) | tmp[3]; - data[2] = (tmp[6] << 8) | tmp[5]; - - data[0] = ((long)data[0] * st.chip_cfg.mag_sens_adj[0]) >> 8; - data[1] = ((long)data[1] * st.chip_cfg.mag_sens_adj[1]) >> 8; - data[2] = ((long)data[2] * st.chip_cfg.mag_sens_adj[2]) >> 8; - - if (timestamp) - get_ms(timestamp); - return 0; -#else - return -1; -#endif -} - -/** - * @brief Get the compass full-scale range. - * @param[out] fsr Current full-scale range. - * @return 0 if successful. - */ -int mpu_get_compass_fsr(unsigned short *fsr) -{ -#ifdef AK89xx_SECONDARY - fsr[0] = st.hw->compass_fsr; - return 0; -#else - return -1; -#endif -} - -/** - * @brief Enters LP accel motion interrupt mode. - * The behavior of this feature is very different between the MPU6050 and the - * MPU6500. Each chip's version of this feature is explained below. - * - * \n MPU6050: - * \n When this mode is first enabled, the hardware captures a single accel - * sample, and subsequent samples are compared with this one to determine if - * the device is in motion. Therefore, whenever this "locked" sample needs to - * be changed, this function must be called again. - * - * \n The hardware motion threshold can be between 32mg and 8160mg in 32mg - * increments. - * - * \n Low-power accel mode supports the following frequencies: - * \n 1.25Hz, 5Hz, 20Hz, 40Hz - * - * \n MPU6500: - * \n Unlike the MPU6050 version, the hardware does not "lock in" a reference - * sample. The hardware monitors the accel data and detects any large change - * over a short period of time. - * - * \n The hardware motion threshold can be between 4mg and 1020mg in 4mg - * increments. - * - * \n MPU6500 Low-power accel mode supports the following frequencies: - * \n 1.25Hz, 2.5Hz, 5Hz, 10Hz, 20Hz, 40Hz, 80Hz, 160Hz, 320Hz, 640Hz - * - * \n\n NOTES: - * \n The driver will round down @e thresh to the nearest supported value if - * an unsupported threshold is selected. - * \n To select a fractional wake-up frequency, round down the value passed to - * @e lpa_freq. - * \n The MPU6500 does not support a delay parameter. If this function is used - * for the MPU6500, the value passed to @e time will be ignored. - * \n To disable this mode, set @e lpa_freq to zero. The driver will restore - * the previous configuration. - * - * @param[in] thresh Motion threshold in mg. - * @param[in] time Duration in milliseconds that the accel data must - * exceed @e thresh before motion is reported. - * @param[in] lpa_freq Minimum sampling rate, or zero to disable. - * @return 0 if successful. - */ -int mpu_lp_motion_interrupt(unsigned short thresh, unsigned char time, - unsigned char lpa_freq) -{ - unsigned char data[3]; - - if (lpa_freq) { - unsigned char thresh_hw; - -#if defined MPU6050 - /* TODO: Make these const/#defines. */ - /* 1LSb = 32mg. */ - if (thresh > 8160) - thresh_hw = 255; - else if (thresh < 32) - thresh_hw = 1; - else - thresh_hw = thresh >> 5; -#elif defined MPU6500 - /* 1LSb = 4mg. */ - if (thresh > 1020) - thresh_hw = 255; - else if (thresh < 4) - thresh_hw = 1; - else - thresh_hw = thresh >> 2; -#endif - - if (!time) - /* Minimum duration must be 1ms. */ - time = 1; - -#if defined MPU6050 - if (lpa_freq > 40) -#elif defined MPU6500 - if (lpa_freq > 640) -#endif - /* At this point, the chip has not been re-configured, so the - * function can safely exit. - */ - return -1; - - if (!st.chip_cfg.int_motion_only) { - /* Store current settings for later. */ - if (st.chip_cfg.dmp_on) { - mpu_set_dmp_state(0); - st.chip_cfg.cache.dmp_on = 1; - } else - st.chip_cfg.cache.dmp_on = 0; - mpu_get_gyro_fsr(&st.chip_cfg.cache.gyro_fsr); - mpu_get_accel_fsr(&st.chip_cfg.cache.accel_fsr); - mpu_get_lpf(&st.chip_cfg.cache.lpf); - mpu_get_sample_rate(&st.chip_cfg.cache.sample_rate); - st.chip_cfg.cache.sensors_on = st.chip_cfg.sensors; - mpu_get_fifo_config(&st.chip_cfg.cache.fifo_sensors); - } - -#ifdef MPU6050 - /* Disable hardware interrupts for now. */ - set_int_enable(0); - - /* Enter full-power accel-only mode. */ - mpu_lp_accel_mode(0); - - /* Override current LPF (and HPF) settings to obtain a valid accel - * reading. - */ - data[0] = INV_FILTER_256HZ_NOLPF2; - if (i2c_write(st.hw->addr, st.reg->lpf, 1, data)) - return -1; - - /* NOTE: Digital high pass filter should be configured here. Since this - * driver doesn't modify those bits anywhere, they should already be - * cleared by default. - */ - - /* Configure the device to send motion interrupts. */ - /* Enable motion interrupt. */ - data[0] = BIT_MOT_INT_EN; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, data)) - goto lp_int_restore; - - /* Set motion interrupt parameters. */ - data[0] = thresh_hw; - data[1] = time; - if (i2c_write(st.hw->addr, st.reg->motion_thr, 2, data)) - goto lp_int_restore; - - /* Force hardware to "lock" current accel sample. */ - delay_ms(5); - data[0] = (st.chip_cfg.accel_fsr << 3) | BITS_HPF; - if (i2c_write(st.hw->addr, st.reg->accel_cfg, 1, data)) - goto lp_int_restore; - - /* Set up LP accel mode. */ - data[0] = BIT_LPA_CYCLE; - if (lpa_freq == 1) - data[1] = INV_LPA_1_25HZ; - else if (lpa_freq <= 5) - data[1] = INV_LPA_5HZ; - else if (lpa_freq <= 20) - data[1] = INV_LPA_20HZ; - else - data[1] = INV_LPA_40HZ; - data[1] = (data[1] << 6) | BIT_STBY_XYZG; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 2, data)) - goto lp_int_restore; - - st.chip_cfg.int_motion_only = 1; - return 0; -#elif defined MPU6500 - /* Disable hardware interrupts. */ - set_int_enable(0); - - /* Enter full-power accel-only mode, no FIFO/DMP. */ - data[0] = 0; - data[1] = 0; - data[2] = BIT_STBY_XYZG; - if (i2c_write(st.hw->addr, st.reg->user_ctrl, 3, data)) - goto lp_int_restore; - - /* Set motion threshold. */ - data[0] = thresh_hw; - if (i2c_write(st.hw->addr, st.reg->motion_thr, 1, data)) - goto lp_int_restore; - - /* Set wake frequency. */ - if (lpa_freq == 1) - data[0] = INV_LPA_1_25HZ; - else if (lpa_freq == 2) - data[0] = INV_LPA_2_5HZ; - else if (lpa_freq <= 5) - data[0] = INV_LPA_5HZ; - else if (lpa_freq <= 10) - data[0] = INV_LPA_10HZ; - else if (lpa_freq <= 20) - data[0] = INV_LPA_20HZ; - else if (lpa_freq <= 40) - data[0] = INV_LPA_40HZ; - else if (lpa_freq <= 80) - data[0] = INV_LPA_80HZ; - else if (lpa_freq <= 160) - data[0] = INV_LPA_160HZ; - else if (lpa_freq <= 320) - data[0] = INV_LPA_320HZ; - else - data[0] = INV_LPA_640HZ; - if (i2c_write(st.hw->addr, st.reg->lp_accel_odr, 1, data)) - goto lp_int_restore; - - /* Enable motion interrupt (MPU6500 version). */ - data[0] = BITS_WOM_EN; - if (i2c_write(st.hw->addr, st.reg->accel_intel, 1, data)) - goto lp_int_restore; - - /* Enable cycle mode. */ - data[0] = BIT_LPA_CYCLE; - if (i2c_write(st.hw->addr, st.reg->pwr_mgmt_1, 1, data)) - goto lp_int_restore; - - /* Enable interrupt. */ - data[0] = BIT_MOT_INT_EN; - if (i2c_write(st.hw->addr, st.reg->int_enable, 1, data)) - goto lp_int_restore; - - st.chip_cfg.int_motion_only = 1; - return 0; -#endif - } else { - /* Don't "restore" the previous state if no state has been saved. */ - int ii; - char *cache_ptr = (char*)&st.chip_cfg.cache; - for (ii = 0; ii < sizeof(st.chip_cfg.cache); ii++) { - if (cache_ptr[ii] != 0) - goto lp_int_restore; - } - /* If we reach this point, motion interrupt mode hasn't been used yet. */ - return -1; - } -lp_int_restore: - /* Set to invalid values to ensure no I2C writes are skipped. */ - st.chip_cfg.gyro_fsr = 0xFF; - st.chip_cfg.accel_fsr = 0xFF; - st.chip_cfg.lpf = 0xFF; - st.chip_cfg.sample_rate = 0xFFFF; - st.chip_cfg.sensors = 0xFF; - st.chip_cfg.fifo_enable = 0xFF; - st.chip_cfg.clk_src = INV_CLK_PLL; - mpu_set_sensors(st.chip_cfg.cache.sensors_on); - mpu_set_gyro_fsr(st.chip_cfg.cache.gyro_fsr); - mpu_set_accel_fsr(st.chip_cfg.cache.accel_fsr); - mpu_set_lpf(st.chip_cfg.cache.lpf); - mpu_set_sample_rate(st.chip_cfg.cache.sample_rate); - mpu_configure_fifo(st.chip_cfg.cache.fifo_sensors); - - if (st.chip_cfg.cache.dmp_on) - mpu_set_dmp_state(1); - -#ifdef MPU6500 - /* Disable motion interrupt (MPU6500 version). */ - data[0] = 0; - if (i2c_write(st.hw->addr, st.reg->accel_intel, 1, data)) - goto lp_int_restore; -#endif - - st.chip_cfg.int_motion_only = 0; - return 0; -} - -/** - * @} - */ - diff --git a/interface/external/MotionDriver/src/inv_mpu_dmp_motion_driver.c b/interface/external/MotionDriver/src/inv_mpu_dmp_motion_driver.c deleted file mode 100644 index db71b4b74c..0000000000 --- a/interface/external/MotionDriver/src/inv_mpu_dmp_motion_driver.c +++ /dev/null @@ -1,1373 +0,0 @@ -/* - $License: - Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved. - See included License.txt for License information. - $ - */ -/** - * @addtogroup DRIVERS Sensor Driver Layer - * @brief Hardware drivers to communicate with sensors via I2C. - * - * @{ - * @file inv_mpu_dmp_motion_driver.c - * @brief DMP image and interface functions. - * @details All functions are preceded by the dmp_ prefix to - * differentiate among MPL and general driver function calls. - */ -#include -#include -#include -#include -#include -#include "inv_mpu.h" -#include "inv_mpu_dmp_motion_driver.h" -#include "dmpKey.h" -#include "dmpmap.h" -#include "inv_tty.h" - -/* The following functions must be defined for this platform: - * i2c_write(unsigned char slave_addr, unsigned char reg_addr, - * unsigned char length, unsigned char const *data) - * i2c_read(unsigned char slave_addr, unsigned char reg_addr, - * unsigned char length, unsigned char *data) - * delay_ms(unsigned long num_ms) - * get_ms(unsigned long *count) - */ -#if defined MOTION_DRIVER_TARGET_MSP430 -#include "msp430.h" -#include "msp430_clock.h" -#define delay_ms msp430_delay_ms -#define get_ms msp430_get_clock_ms -#define log_i(...) do {} while (0) -#define log_e(...) do {} while (0) - -#elif defined EMPL_TARGET_MSP430 -#include "msp430.h" -#include "msp430_clock.h" -#include "log.h" -#define delay_ms msp430_delay_ms -#define get_ms msp430_get_clock_ms -#define log_i MPL_LOGI -#define log_e MPL_LOGE - -#elif defined EMPL_TARGET_UC3L0 -/* Instead of using the standard TWI driver from the ASF library, we're using - * a TWI driver that follows the slave address + register address convention. - */ -#include "delay.h" -#include "sysclk.h" -#include "log.h" -#include "uc3l0_clock.h" -/* delay_ms is a function already defined in ASF. */ -#define get_ms uc3l0_get_clock_ms -#define log_i MPL_LOGI -#define log_e MPL_LOGE - -#else -#define i2c_write tty_i2c_write -#define i2c_read tty_i2c_read -#define delay_ms tty_delay_ms -#define get_ms tty_get_clock_ms -#endif - -/* These defines are copied from dmpDefaultMPU6050.c in the general MPL - * releases. These defines may change for each DMP image, so be sure to modify - * these values when switching to a new image. - */ -#define CFG_LP_QUAT (2712) -#define END_ORIENT_TEMP (1866) -#define CFG_27 (2742) -#define CFG_20 (2224) -#define CFG_23 (2745) -#define CFG_FIFO_ON_EVENT (2690) -#define END_PREDICTION_UPDATE (1761) -#define CGNOTICE_INTR (2620) -#define X_GRT_Y_TMP (1358) -#define CFG_DR_INT (1029) -#define CFG_AUTH (1035) -#define UPDATE_PROP_ROT (1835) -#define END_COMPARE_Y_X_TMP2 (1455) -#define SKIP_X_GRT_Y_TMP (1359) -#define SKIP_END_COMPARE (1435) -#define FCFG_3 (1088) -#define FCFG_2 (1066) -#define FCFG_1 (1062) -#define END_COMPARE_Y_X_TMP3 (1434) -#define FCFG_7 (1073) -#define FCFG_6 (1106) -#define FLAT_STATE_END (1713) -#define SWING_END_4 (1616) -#define SWING_END_2 (1565) -#define SWING_END_3 (1587) -#define SWING_END_1 (1550) -#define CFG_8 (2718) -#define CFG_15 (2727) -#define CFG_16 (2746) -#define CFG_EXT_GYRO_BIAS (1189) -#define END_COMPARE_Y_X_TMP (1407) -#define DO_NOT_UPDATE_PROP_ROT (1839) -#define CFG_7 (1205) -#define FLAT_STATE_END_TEMP (1683) -#define END_COMPARE_Y_X (1484) -#define SKIP_SWING_END_1 (1551) -#define SKIP_SWING_END_3 (1588) -#define SKIP_SWING_END_2 (1566) -#define TILTG75_START (1672) -#define CFG_6 (2753) -#define TILTL75_END (1669) -#define END_ORIENT (1884) -#define CFG_FLICK_IN (2573) -#define TILTL75_START (1643) -#define CFG_MOTION_BIAS (1208) -#define X_GRT_Y (1408) -#define TEMPLABEL (2324) -#define CFG_ANDROID_ORIENT_INT (1853) -#define CFG_GYRO_RAW_DATA (2722) -#define X_GRT_Y_TMP2 (1379) - -#define D_0_22 (22+512) -#define D_0_24 (24+512) - -#define D_0_36 (36) -#define D_0_52 (52) -#define D_0_96 (96) -#define D_0_104 (104) -#define D_0_108 (108) -#define D_0_163 (163) -#define D_0_188 (188) -#define D_0_192 (192) -#define D_0_224 (224) -#define D_0_228 (228) -#define D_0_232 (232) -#define D_0_236 (236) - -#define D_1_2 (256 + 2) -#define D_1_4 (256 + 4) -#define D_1_8 (256 + 8) -#define D_1_10 (256 + 10) -#define D_1_24 (256 + 24) -#define D_1_28 (256 + 28) -#define D_1_36 (256 + 36) -#define D_1_40 (256 + 40) -#define D_1_44 (256 + 44) -#define D_1_72 (256 + 72) -#define D_1_74 (256 + 74) -#define D_1_79 (256 + 79) -#define D_1_88 (256 + 88) -#define D_1_90 (256 + 90) -#define D_1_92 (256 + 92) -#define D_1_96 (256 + 96) -#define D_1_98 (256 + 98) -#define D_1_106 (256 + 106) -#define D_1_108 (256 + 108) -#define D_1_112 (256 + 112) -#define D_1_128 (256 + 144) -#define D_1_152 (256 + 12) -#define D_1_160 (256 + 160) -#define D_1_176 (256 + 176) -#define D_1_178 (256 + 178) -#define D_1_218 (256 + 218) -#define D_1_232 (256 + 232) -#define D_1_236 (256 + 236) -#define D_1_240 (256 + 240) -#define D_1_244 (256 + 244) -#define D_1_250 (256 + 250) -#define D_1_252 (256 + 252) -#define D_2_12 (512 + 12) -#define D_2_96 (512 + 96) -#define D_2_108 (512 + 108) -#define D_2_208 (512 + 208) -#define D_2_224 (512 + 224) -#define D_2_236 (512 + 236) -#define D_2_244 (512 + 244) -#define D_2_248 (512 + 248) -#define D_2_252 (512 + 252) - -#define CPASS_BIAS_X (35 * 16 + 4) -#define CPASS_BIAS_Y (35 * 16 + 8) -#define CPASS_BIAS_Z (35 * 16 + 12) -#define CPASS_MTX_00 (36 * 16) -#define CPASS_MTX_01 (36 * 16 + 4) -#define CPASS_MTX_02 (36 * 16 + 8) -#define CPASS_MTX_10 (36 * 16 + 12) -#define CPASS_MTX_11 (37 * 16) -#define CPASS_MTX_12 (37 * 16 + 4) -#define CPASS_MTX_20 (37 * 16 + 8) -#define CPASS_MTX_21 (37 * 16 + 12) -#define CPASS_MTX_22 (43 * 16 + 12) -#define D_EXT_GYRO_BIAS_X (61 * 16) -#define D_EXT_GYRO_BIAS_Y (61 * 16) + 4 -#define D_EXT_GYRO_BIAS_Z (61 * 16) + 8 -#define D_ACT0 (40 * 16) -#define D_ACSX (40 * 16 + 4) -#define D_ACSY (40 * 16 + 8) -#define D_ACSZ (40 * 16 + 12) - -#define FLICK_MSG (45 * 16 + 4) -#define FLICK_COUNTER (45 * 16 + 8) -#define FLICK_LOWER (45 * 16 + 12) -#define FLICK_UPPER (46 * 16 + 12) - -#define D_AUTH_OUT (992) -#define D_AUTH_IN (996) -#define D_AUTH_A (1000) -#define D_AUTH_B (1004) - -#define D_PEDSTD_BP_B (768 + 0x1C) -#define D_PEDSTD_HP_A (768 + 0x78) -#define D_PEDSTD_HP_B (768 + 0x7C) -#define D_PEDSTD_BP_A4 (768 + 0x40) -#define D_PEDSTD_BP_A3 (768 + 0x44) -#define D_PEDSTD_BP_A2 (768 + 0x48) -#define D_PEDSTD_BP_A1 (768 + 0x4C) -#define D_PEDSTD_INT_THRSH (768 + 0x68) -#define D_PEDSTD_CLIP (768 + 0x6C) -#define D_PEDSTD_SB (768 + 0x28) -#define D_PEDSTD_SB_TIME (768 + 0x2C) -#define D_PEDSTD_PEAKTHRSH (768 + 0x98) -#define D_PEDSTD_TIML (768 + 0x2A) -#define D_PEDSTD_TIMH (768 + 0x2E) -#define D_PEDSTD_PEAK (768 + 0X94) -#define D_PEDSTD_STEPCTR (768 + 0x60) -#define D_PEDSTD_TIMECTR (964) -#define D_PEDSTD_DECI (768 + 0xA0) - -#define D_HOST_NO_MOT (976) -#define D_ACCEL_BIAS (660) - -#define D_ORIENT_GAP (76) - -#define D_TILT0_H (48) -#define D_TILT0_L (50) -#define D_TILT1_H (52) -#define D_TILT1_L (54) -#define D_TILT2_H (56) -#define D_TILT2_L (58) -#define D_TILT3_H (60) -#define D_TILT3_L (62) - -#define DMP_CODE_SIZE (3062) - -static const unsigned char dmp_memory[DMP_CODE_SIZE] = { - /* bank # 0 */ - 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0xfa, 0x80, 0x00, 0x0b, 0x12, 0x82, 0x00, 0x01, - 0x03, 0x0c, 0x30, 0xc3, 0x0e, 0x8c, 0x8c, 0xe9, 0x14, 0xd5, 0x40, 0x02, 0x13, 0x71, 0x0f, 0x8e, - 0x38, 0x83, 0xf8, 0x83, 0x30, 0x00, 0xf8, 0x83, 0x25, 0x8e, 0xf8, 0x83, 0x30, 0x00, 0xf8, 0x83, - 0xff, 0xff, 0xff, 0xff, 0x0f, 0xfe, 0xa9, 0xd6, 0x24, 0x00, 0x04, 0x00, 0x1a, 0x82, 0x79, 0xa1, - 0x00, 0x00, 0x00, 0x3c, 0xff, 0xff, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x38, 0x83, 0x6f, 0xa2, - 0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x6e, 0x00, 0x00, 0x06, 0x92, 0x0a, 0x16, 0xc0, 0xdf, - 0xff, 0xff, 0x02, 0x56, 0xfd, 0x8c, 0xd3, 0x77, 0xff, 0xe1, 0xc4, 0x96, 0xe0, 0xc5, 0xbe, 0xaa, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x2b, 0x00, 0x00, 0x16, 0x57, 0x00, 0x00, 0x03, 0x59, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xfa, 0x00, 0x02, 0x6c, 0x1d, 0x00, 0x00, 0x00, 0x00, - 0x3f, 0xff, 0xdf, 0xeb, 0x00, 0x3e, 0xb3, 0xb6, 0x00, 0x0d, 0x22, 0x78, 0x00, 0x00, 0x2f, 0x3c, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x42, 0xb5, 0x00, 0x00, 0x39, 0xa2, 0x00, 0x00, 0xb3, 0x65, - 0xd9, 0x0e, 0x9f, 0xc9, 0x1d, 0xcf, 0x4c, 0x34, 0x30, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x3b, 0xb6, 0x7a, 0xe8, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* bank # 1 */ - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0xfa, 0x92, 0x10, 0x00, 0x22, 0x5e, 0x00, 0x0d, 0x22, 0x9f, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xff, 0x46, 0x00, 0x00, 0x63, 0xd4, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x04, 0xd6, 0x00, 0x00, 0x04, 0xcc, 0x00, 0x00, 0x04, 0xcc, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x72, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x02, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x64, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x32, 0xf8, 0x98, 0x00, 0x00, 0xff, 0x65, 0x00, 0x00, 0x83, 0x0f, 0x00, 0x00, - 0xff, 0x9b, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x01, 0xfb, 0x83, 0x00, 0x68, 0x00, 0x00, 0x00, 0xd9, 0xfc, 0x00, 0x7c, 0xf1, 0xff, 0x83, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x64, 0x03, 0xe8, 0x00, 0x64, 0x00, 0x28, - 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x16, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf4, 0x00, 0x00, 0x10, 0x00, - /* bank # 2 */ - 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x45, 0x81, 0xff, 0xff, 0xfa, 0x72, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x05, 0x00, 0x05, 0xba, 0xc6, 0x00, 0x47, 0x78, 0xa2, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x00, 0x00, 0x25, 0x4d, 0x00, 0x2f, 0x70, 0x6d, 0x00, 0x00, 0x05, 0xae, 0x00, 0x0c, 0x02, 0xd0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x64, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, - 0x00, 0x00, 0x0a, 0xc7, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xff, 0xff, 0xff, 0x9c, - 0x00, 0x00, 0x0b, 0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, - 0xff, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* bank # 3 */ - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x24, 0x26, 0xd3, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x96, 0x00, 0x3c, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x0a, 0x4e, 0x68, 0xcd, 0xcf, 0x77, 0x09, 0x50, 0x16, 0x67, 0x59, 0xc6, 0x19, 0xce, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xd7, 0x84, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x93, 0x8f, 0x9d, 0x1e, 0x1b, 0x1c, 0x19, - 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, 0x03, 0x18, 0x85, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x67, 0x7d, 0xdf, 0x7e, 0x72, 0x90, 0x2e, 0x55, 0x4c, 0xf6, 0xe6, 0x88, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - /* bank # 4 */ - 0xd8, 0xdc, 0xb4, 0xb8, 0xb0, 0xd8, 0xb9, 0xab, 0xf3, 0xf8, 0xfa, 0xb3, 0xb7, 0xbb, 0x8e, 0x9e, - 0xae, 0xf1, 0x32, 0xf5, 0x1b, 0xf1, 0xb4, 0xb8, 0xb0, 0x80, 0x97, 0xf1, 0xa9, 0xdf, 0xdf, 0xdf, - 0xaa, 0xdf, 0xdf, 0xdf, 0xf2, 0xaa, 0xc5, 0xcd, 0xc7, 0xa9, 0x0c, 0xc9, 0x2c, 0x97, 0xf1, 0xa9, - 0x89, 0x26, 0x46, 0x66, 0xb2, 0x89, 0x99, 0xa9, 0x2d, 0x55, 0x7d, 0xb0, 0xb0, 0x8a, 0xa8, 0x96, - 0x36, 0x56, 0x76, 0xf1, 0xba, 0xa3, 0xb4, 0xb2, 0x80, 0xc0, 0xb8, 0xa8, 0x97, 0x11, 0xb2, 0x83, - 0x98, 0xba, 0xa3, 0xf0, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xb2, 0xb9, 0xb4, 0x98, 0x83, 0xf1, - 0xa3, 0x29, 0x55, 0x7d, 0xba, 0xb5, 0xb1, 0xa3, 0x83, 0x93, 0xf0, 0x00, 0x28, 0x50, 0xf5, 0xb2, - 0xb6, 0xaa, 0x83, 0x93, 0x28, 0x54, 0x7c, 0xf1, 0xb9, 0xa3, 0x82, 0x93, 0x61, 0xba, 0xa2, 0xda, - 0xde, 0xdf, 0xdb, 0x81, 0x9a, 0xb9, 0xae, 0xf5, 0x60, 0x68, 0x70, 0xf1, 0xda, 0xba, 0xa2, 0xdf, - 0xd9, 0xba, 0xa2, 0xfa, 0xb9, 0xa3, 0x82, 0x92, 0xdb, 0x31, 0xba, 0xa2, 0xd9, 0xba, 0xa2, 0xf8, - 0xdf, 0x85, 0xa4, 0xd0, 0xc1, 0xbb, 0xad, 0x83, 0xc2, 0xc5, 0xc7, 0xb8, 0xa2, 0xdf, 0xdf, 0xdf, - 0xba, 0xa0, 0xdf, 0xdf, 0xdf, 0xd8, 0xd8, 0xf1, 0xb8, 0xaa, 0xb3, 0x8d, 0xb4, 0x98, 0x0d, 0x35, - 0x5d, 0xb2, 0xb6, 0xba, 0xaf, 0x8c, 0x96, 0x19, 0x8f, 0x9f, 0xa7, 0x0e, 0x16, 0x1e, 0xb4, 0x9a, - 0xb8, 0xaa, 0x87, 0x2c, 0x54, 0x7c, 0xba, 0xa4, 0xb0, 0x8a, 0xb6, 0x91, 0x32, 0x56, 0x76, 0xb2, - 0x84, 0x94, 0xa4, 0xc8, 0x08, 0xcd, 0xd8, 0xb8, 0xb4, 0xb0, 0xf1, 0x99, 0x82, 0xa8, 0x2d, 0x55, - 0x7d, 0x98, 0xa8, 0x0e, 0x16, 0x1e, 0xa2, 0x2c, 0x54, 0x7c, 0x92, 0xa4, 0xf0, 0x2c, 0x50, 0x78, - /* bank # 5 */ - 0xf1, 0x84, 0xa8, 0x98, 0xc4, 0xcd, 0xfc, 0xd8, 0x0d, 0xdb, 0xa8, 0xfc, 0x2d, 0xf3, 0xd9, 0xba, - 0xa6, 0xf8, 0xda, 0xba, 0xa6, 0xde, 0xd8, 0xba, 0xb2, 0xb6, 0x86, 0x96, 0xa6, 0xd0, 0xf3, 0xc8, - 0x41, 0xda, 0xa6, 0xc8, 0xf8, 0xd8, 0xb0, 0xb4, 0xb8, 0x82, 0xa8, 0x92, 0xf5, 0x2c, 0x54, 0x88, - 0x98, 0xf1, 0x35, 0xd9, 0xf4, 0x18, 0xd8, 0xf1, 0xa2, 0xd0, 0xf8, 0xf9, 0xa8, 0x84, 0xd9, 0xc7, - 0xdf, 0xf8, 0xf8, 0x83, 0xc5, 0xda, 0xdf, 0x69, 0xdf, 0x83, 0xc1, 0xd8, 0xf4, 0x01, 0x14, 0xf1, - 0xa8, 0x82, 0x4e, 0xa8, 0x84, 0xf3, 0x11, 0xd1, 0x82, 0xf5, 0xd9, 0x92, 0x28, 0x97, 0x88, 0xf1, - 0x09, 0xf4, 0x1c, 0x1c, 0xd8, 0x84, 0xa8, 0xf3, 0xc0, 0xf9, 0xd1, 0xd9, 0x97, 0x82, 0xf1, 0x29, - 0xf4, 0x0d, 0xd8, 0xf3, 0xf9, 0xf9, 0xd1, 0xd9, 0x82, 0xf4, 0xc2, 0x03, 0xd8, 0xde, 0xdf, 0x1a, - 0xd8, 0xf1, 0xa2, 0xfa, 0xf9, 0xa8, 0x84, 0x98, 0xd9, 0xc7, 0xdf, 0xf8, 0xf8, 0xf8, 0x83, 0xc7, - 0xda, 0xdf, 0x69, 0xdf, 0xf8, 0x83, 0xc3, 0xd8, 0xf4, 0x01, 0x14, 0xf1, 0x98, 0xa8, 0x82, 0x2e, - 0xa8, 0x84, 0xf3, 0x11, 0xd1, 0x82, 0xf5, 0xd9, 0x92, 0x50, 0x97, 0x88, 0xf1, 0x09, 0xf4, 0x1c, - 0xd8, 0x84, 0xa8, 0xf3, 0xc0, 0xf8, 0xf9, 0xd1, 0xd9, 0x97, 0x82, 0xf1, 0x49, 0xf4, 0x0d, 0xd8, - 0xf3, 0xf9, 0xf9, 0xd1, 0xd9, 0x82, 0xf4, 0xc4, 0x03, 0xd8, 0xde, 0xdf, 0xd8, 0xf1, 0xad, 0x88, - 0x98, 0xcc, 0xa8, 0x09, 0xf9, 0xd9, 0x82, 0x92, 0xa8, 0xf5, 0x7c, 0xf1, 0x88, 0x3a, 0xcf, 0x94, - 0x4a, 0x6e, 0x98, 0xdb, 0x69, 0x31, 0xda, 0xad, 0xf2, 0xde, 0xf9, 0xd8, 0x87, 0x95, 0xa8, 0xf2, - 0x21, 0xd1, 0xda, 0xa5, 0xf9, 0xf4, 0x17, 0xd9, 0xf1, 0xae, 0x8e, 0xd0, 0xc0, 0xc3, 0xae, 0x82, - /* bank # 6 */ - 0xc6, 0x84, 0xc3, 0xa8, 0x85, 0x95, 0xc8, 0xa5, 0x88, 0xf2, 0xc0, 0xf1, 0xf4, 0x01, 0x0e, 0xf1, - 0x8e, 0x9e, 0xa8, 0xc6, 0x3e, 0x56, 0xf5, 0x54, 0xf1, 0x88, 0x72, 0xf4, 0x01, 0x15, 0xf1, 0x98, - 0x45, 0x85, 0x6e, 0xf5, 0x8e, 0x9e, 0x04, 0x88, 0xf1, 0x42, 0x98, 0x5a, 0x8e, 0x9e, 0x06, 0x88, - 0x69, 0xf4, 0x01, 0x1c, 0xf1, 0x98, 0x1e, 0x11, 0x08, 0xd0, 0xf5, 0x04, 0xf1, 0x1e, 0x97, 0x02, - 0x02, 0x98, 0x36, 0x25, 0xdb, 0xf9, 0xd9, 0x85, 0xa5, 0xf3, 0xc1, 0xda, 0x85, 0xa5, 0xf3, 0xdf, - 0xd8, 0x85, 0x95, 0xa8, 0xf3, 0x09, 0xda, 0xa5, 0xfa, 0xd8, 0x82, 0x92, 0xa8, 0xf5, 0x78, 0xf1, - 0x88, 0x1a, 0x84, 0x9f, 0x26, 0x88, 0x98, 0x21, 0xda, 0xf4, 0x1d, 0xf3, 0xd8, 0x87, 0x9f, 0x39, - 0xd1, 0xaf, 0xd9, 0xdf, 0xdf, 0xfb, 0xf9, 0xf4, 0x0c, 0xf3, 0xd8, 0xfa, 0xd0, 0xf8, 0xda, 0xf9, - 0xf9, 0xd0, 0xdf, 0xd9, 0xf9, 0xd8, 0xf4, 0x0b, 0xd8, 0xf3, 0x87, 0x9f, 0x39, 0xd1, 0xaf, 0xd9, - 0xdf, 0xdf, 0xf4, 0x1d, 0xf3, 0xd8, 0xfa, 0xfc, 0xa8, 0x69, 0xf9, 0xf9, 0xaf, 0xd0, 0xda, 0xde, - 0xfa, 0xd9, 0xf8, 0x8f, 0x9f, 0xa8, 0xf1, 0xcc, 0xf3, 0x98, 0xdb, 0x45, 0xd9, 0xaf, 0xdf, 0xd0, - 0xf8, 0xd8, 0xf1, 0x8f, 0x9f, 0xa8, 0xca, 0xf3, 0x88, 0x09, 0xda, 0xaf, 0x8f, 0xcb, 0xf8, 0xd8, - 0xf2, 0xad, 0x97, 0x8d, 0x0c, 0xd9, 0xa5, 0xdf, 0xf9, 0xba, 0xa6, 0xf3, 0xfa, 0xf4, 0x12, 0xf2, - 0xd8, 0x95, 0x0d, 0xd1, 0xd9, 0xba, 0xa6, 0xf3, 0xfa, 0xda, 0xa5, 0xf2, 0xc1, 0xba, 0xa6, 0xf3, - 0xdf, 0xd8, 0xf1, 0xba, 0xb2, 0xb6, 0x86, 0x96, 0xa6, 0xd0, 0xca, 0xf3, 0x49, 0xda, 0xa6, 0xcb, - 0xf8, 0xd8, 0xb0, 0xb4, 0xb8, 0xd8, 0xad, 0x84, 0xf2, 0xc0, 0xdf, 0xf1, 0x8f, 0xcb, 0xc3, 0xa8, - /* bank # 7 */ - 0xb2, 0xb6, 0x86, 0x96, 0xc8, 0xc1, 0xcb, 0xc3, 0xf3, 0xb0, 0xb4, 0x88, 0x98, 0xa8, 0x21, 0xdb, - 0x71, 0x8d, 0x9d, 0x71, 0x85, 0x95, 0x21, 0xd9, 0xad, 0xf2, 0xfa, 0xd8, 0x85, 0x97, 0xa8, 0x28, - 0xd9, 0xf4, 0x08, 0xd8, 0xf2, 0x8d, 0x29, 0xda, 0xf4, 0x05, 0xd9, 0xf2, 0x85, 0xa4, 0xc2, 0xf2, - 0xd8, 0xa8, 0x8d, 0x94, 0x01, 0xd1, 0xd9, 0xf4, 0x11, 0xf2, 0xd8, 0x87, 0x21, 0xd8, 0xf4, 0x0a, - 0xd8, 0xf2, 0x84, 0x98, 0xa8, 0xc8, 0x01, 0xd1, 0xd9, 0xf4, 0x11, 0xd8, 0xf3, 0xa4, 0xc8, 0xbb, - 0xaf, 0xd0, 0xf2, 0xde, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xd8, 0xf1, 0xb8, 0xf6, - 0xb5, 0xb9, 0xb0, 0x8a, 0x95, 0xa3, 0xde, 0x3c, 0xa3, 0xd9, 0xf8, 0xd8, 0x5c, 0xa3, 0xd9, 0xf8, - 0xd8, 0x7c, 0xa3, 0xd9, 0xf8, 0xd8, 0xf8, 0xf9, 0xd1, 0xa5, 0xd9, 0xdf, 0xda, 0xfa, 0xd8, 0xb1, - 0x85, 0x30, 0xf7, 0xd9, 0xde, 0xd8, 0xf8, 0x30, 0xad, 0xda, 0xde, 0xd8, 0xf2, 0xb4, 0x8c, 0x99, - 0xa3, 0x2d, 0x55, 0x7d, 0xa0, 0x83, 0xdf, 0xdf, 0xdf, 0xb5, 0x91, 0xa0, 0xf6, 0x29, 0xd9, 0xfb, - 0xd8, 0xa0, 0xfc, 0x29, 0xd9, 0xfa, 0xd8, 0xa0, 0xd0, 0x51, 0xd9, 0xf8, 0xd8, 0xfc, 0x51, 0xd9, - 0xf9, 0xd8, 0x79, 0xd9, 0xfb, 0xd8, 0xa0, 0xd0, 0xfc, 0x79, 0xd9, 0xfa, 0xd8, 0xa1, 0xf9, 0xf9, - 0xf9, 0xf9, 0xf9, 0xa0, 0xda, 0xdf, 0xdf, 0xdf, 0xd8, 0xa1, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xac, - 0xde, 0xf8, 0xad, 0xde, 0x83, 0x93, 0xac, 0x2c, 0x54, 0x7c, 0xf1, 0xa8, 0xdf, 0xdf, 0xdf, 0xf6, - 0x9d, 0x2c, 0xda, 0xa0, 0xdf, 0xd9, 0xfa, 0xdb, 0x2d, 0xf8, 0xd8, 0xa8, 0x50, 0xda, 0xa0, 0xd0, - 0xde, 0xd9, 0xd0, 0xf8, 0xf8, 0xf8, 0xdb, 0x55, 0xf8, 0xd8, 0xa8, 0x78, 0xda, 0xa0, 0xd0, 0xdf, - /* bank # 8 */ - 0xd9, 0xd0, 0xfa, 0xf8, 0xf8, 0xf8, 0xf8, 0xdb, 0x7d, 0xf8, 0xd8, 0x9c, 0xa8, 0x8c, 0xf5, 0x30, - 0xdb, 0x38, 0xd9, 0xd0, 0xde, 0xdf, 0xa0, 0xd0, 0xde, 0xdf, 0xd8, 0xa8, 0x48, 0xdb, 0x58, 0xd9, - 0xdf, 0xd0, 0xde, 0xa0, 0xdf, 0xd0, 0xde, 0xd8, 0xa8, 0x68, 0xdb, 0x70, 0xd9, 0xdf, 0xdf, 0xa0, - 0xdf, 0xdf, 0xd8, 0xf1, 0xa8, 0x88, 0x90, 0x2c, 0x54, 0x7c, 0x98, 0xa8, 0xd0, 0x5c, 0x38, 0xd1, - 0xda, 0xf2, 0xae, 0x8c, 0xdf, 0xf9, 0xd8, 0xb0, 0x87, 0xa8, 0xc1, 0xc1, 0xb1, 0x88, 0xa8, 0xc6, - 0xf9, 0xf9, 0xda, 0x36, 0xd8, 0xa8, 0xf9, 0xda, 0x36, 0xd8, 0xa8, 0xf9, 0xda, 0x36, 0xd8, 0xa8, - 0xf9, 0xda, 0x36, 0xd8, 0xa8, 0xf9, 0xda, 0x36, 0xd8, 0xf7, 0x8d, 0x9d, 0xad, 0xf8, 0x18, 0xda, - 0xf2, 0xae, 0xdf, 0xd8, 0xf7, 0xad, 0xfa, 0x30, 0xd9, 0xa4, 0xde, 0xf9, 0xd8, 0xf2, 0xae, 0xde, - 0xfa, 0xf9, 0x83, 0xa7, 0xd9, 0xc3, 0xc5, 0xc7, 0xf1, 0x88, 0x9b, 0xa7, 0x7a, 0xad, 0xf7, 0xde, - 0xdf, 0xa4, 0xf8, 0x84, 0x94, 0x08, 0xa7, 0x97, 0xf3, 0x00, 0xae, 0xf2, 0x98, 0x19, 0xa4, 0x88, - 0xc6, 0xa3, 0x94, 0x88, 0xf6, 0x32, 0xdf, 0xf2, 0x83, 0x93, 0xdb, 0x09, 0xd9, 0xf2, 0xaa, 0xdf, - 0xd8, 0xd8, 0xae, 0xf8, 0xf9, 0xd1, 0xda, 0xf3, 0xa4, 0xde, 0xa7, 0xf1, 0x88, 0x9b, 0x7a, 0xd8, - 0xf3, 0x84, 0x94, 0xae, 0x19, 0xf9, 0xda, 0xaa, 0xf1, 0xdf, 0xd8, 0xa8, 0x81, 0xc0, 0xc3, 0xc5, - 0xc7, 0xa3, 0x92, 0x83, 0xf6, 0x28, 0xad, 0xde, 0xd9, 0xf8, 0xd8, 0xa3, 0x50, 0xad, 0xd9, 0xf8, - 0xd8, 0xa3, 0x78, 0xad, 0xd9, 0xf8, 0xd8, 0xf8, 0xf9, 0xd1, 0xa1, 0xda, 0xde, 0xc3, 0xc5, 0xc7, - 0xd8, 0xa1, 0x81, 0x94, 0xf8, 0x18, 0xf2, 0xb0, 0x89, 0xac, 0xc3, 0xc5, 0xc7, 0xf1, 0xd8, 0xb8, - /* bank # 9 */ - 0xb4, 0xb0, 0x97, 0x86, 0xa8, 0x31, 0x9b, 0x06, 0x99, 0x07, 0xab, 0x97, 0x28, 0x88, 0x9b, 0xf0, - 0x0c, 0x20, 0x14, 0x40, 0xb0, 0xb4, 0xb8, 0xf0, 0xa8, 0x8a, 0x9a, 0x28, 0x50, 0x78, 0xb7, 0x9b, - 0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xf1, 0xbb, 0xab, - 0x88, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0xb3, 0x8b, 0xb8, 0xa8, 0x04, 0x28, 0x50, 0x78, 0xf1, 0xb0, - 0x88, 0xb4, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xbb, 0xab, 0xb3, 0x8b, 0x02, 0x26, 0x46, 0x66, 0xb0, - 0xb8, 0xf0, 0x8a, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x8b, 0x29, 0x51, 0x79, 0x8a, 0x24, 0x70, 0x59, - 0x8b, 0x20, 0x58, 0x71, 0x8a, 0x44, 0x69, 0x38, 0x8b, 0x39, 0x40, 0x68, 0x8a, 0x64, 0x48, 0x31, - 0x8b, 0x30, 0x49, 0x60, 0x88, 0xf1, 0xac, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0x8c, 0xa8, 0x04, 0x28, - 0x50, 0x78, 0xf1, 0x88, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xac, 0x8c, 0x02, 0x26, 0x46, 0x66, 0xf0, - 0x89, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xa9, - 0x88, 0x09, 0x20, 0x59, 0x70, 0xab, 0x11, 0x38, 0x40, 0x69, 0xa8, 0x19, 0x31, 0x48, 0x60, 0x8c, - 0xa8, 0x3c, 0x41, 0x5c, 0x20, 0x7c, 0x00, 0xf1, 0x87, 0x98, 0x19, 0x86, 0xa8, 0x6e, 0x76, 0x7e, - 0xa9, 0x99, 0x88, 0x2d, 0x55, 0x7d, 0xd8, 0xb1, 0xb5, 0xb9, 0xa3, 0xdf, 0xdf, 0xdf, 0xae, 0xd0, - 0xdf, 0xaa, 0xd0, 0xde, 0xf2, 0xab, 0xf8, 0xf9, 0xd9, 0xb0, 0x87, 0xc4, 0xaa, 0xf1, 0xdf, 0xdf, - 0xbb, 0xaf, 0xdf, 0xdf, 0xb9, 0xd8, 0xb1, 0xf1, 0xa3, 0x97, 0x8e, 0x60, 0xdf, 0xb0, 0x84, 0xf2, - 0xc8, 0xf8, 0xf9, 0xd9, 0xde, 0xd8, 0x93, 0x85, 0xf1, 0x4a, 0xb1, 0x83, 0xa3, 0x08, 0xb5, 0x83, - /* bank # 10 */ - 0x9a, 0x08, 0x10, 0xb7, 0x9f, 0x10, 0xd8, 0xf1, 0xb0, 0xba, 0xae, 0xb0, 0x8a, 0xc2, 0xb2, 0xb6, - 0x8e, 0x9e, 0xf1, 0xfb, 0xd9, 0xf4, 0x1d, 0xd8, 0xf9, 0xd9, 0x0c, 0xf1, 0xd8, 0xf8, 0xf8, 0xad, - 0x61, 0xd9, 0xae, 0xfb, 0xd8, 0xf4, 0x0c, 0xf1, 0xd8, 0xf8, 0xf8, 0xad, 0x19, 0xd9, 0xae, 0xfb, - 0xdf, 0xd8, 0xf4, 0x16, 0xf1, 0xd8, 0xf8, 0xad, 0x8d, 0x61, 0xd9, 0xf4, 0xf4, 0xac, 0xf5, 0x9c, - 0x9c, 0x8d, 0xdf, 0x2b, 0xba, 0xb6, 0xae, 0xfa, 0xf8, 0xf4, 0x0b, 0xd8, 0xf1, 0xae, 0xd0, 0xf8, - 0xad, 0x51, 0xda, 0xae, 0xfa, 0xf8, 0xf1, 0xd8, 0xb9, 0xb1, 0xb6, 0xa3, 0x83, 0x9c, 0x08, 0xb9, - 0xb1, 0x83, 0x9a, 0xb5, 0xaa, 0xc0, 0xfd, 0x30, 0x83, 0xb7, 0x9f, 0x10, 0xb5, 0x8b, 0x93, 0xf2, - 0x02, 0x02, 0xd1, 0xab, 0xda, 0xde, 0xd8, 0xf1, 0xb0, 0x80, 0xba, 0xab, 0xc0, 0xc3, 0xb2, 0x84, - 0xc1, 0xc3, 0xd8, 0xb1, 0xb9, 0xf3, 0x8b, 0xa3, 0x91, 0xb6, 0x09, 0xb4, 0xd9, 0xab, 0xde, 0xb0, - 0x87, 0x9c, 0xb9, 0xa3, 0xdd, 0xf1, 0xb3, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0xb0, 0x87, 0xa3, 0xa3, - 0xa3, 0xa3, 0xb2, 0x8b, 0xb6, 0x9b, 0xf2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, - 0xa3, 0xf1, 0xb0, 0x87, 0xb5, 0x9a, 0xa3, 0xf3, 0x9b, 0xa3, 0xa3, 0xdc, 0xba, 0xac, 0xdf, 0xb9, - 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, - 0xd8, 0xd8, 0xd8, 0xbb, 0xb3, 0xb7, 0xf1, 0xaa, 0xf9, 0xda, 0xff, 0xd9, 0x80, 0x9a, 0xaa, 0x28, - 0xb4, 0x80, 0x98, 0xa7, 0x20, 0xb7, 0x97, 0x87, 0xa8, 0x66, 0x88, 0xf0, 0x79, 0x51, 0xf1, 0x90, - 0x2c, 0x87, 0x0c, 0xa7, 0x81, 0x97, 0x62, 0x93, 0xf0, 0x71, 0x71, 0x60, 0x85, 0x94, 0x01, 0x29, - /* bank # 11 */ - 0x51, 0x79, 0x90, 0xa5, 0xf1, 0x28, 0x4c, 0x6c, 0x87, 0x0c, 0x95, 0x18, 0x85, 0x78, 0xa3, 0x83, - 0x90, 0x28, 0x4c, 0x6c, 0x88, 0x6c, 0xd8, 0xf3, 0xa2, 0x82, 0x00, 0xf2, 0x10, 0xa8, 0x92, 0x19, - 0x80, 0xa2, 0xf2, 0xd9, 0x26, 0xd8, 0xf1, 0x88, 0xa8, 0x4d, 0xd9, 0x48, 0xd8, 0x96, 0xa8, 0x39, - 0x80, 0xd9, 0x3c, 0xd8, 0x95, 0x80, 0xa8, 0x39, 0xa6, 0x86, 0x98, 0xd9, 0x2c, 0xda, 0x87, 0xa7, - 0x2c, 0xd8, 0xa8, 0x89, 0x95, 0x19, 0xa9, 0x80, 0xd9, 0x38, 0xd8, 0xa8, 0x89, 0x39, 0xa9, 0x80, - 0xda, 0x3c, 0xd8, 0xa8, 0x2e, 0xa8, 0x39, 0x90, 0xd9, 0x0c, 0xd8, 0xa8, 0x95, 0x31, 0x98, 0xd9, - 0x0c, 0xd8, 0xa8, 0x09, 0xd9, 0xff, 0xd8, 0x01, 0xda, 0xff, 0xd8, 0x95, 0x39, 0xa9, 0xda, 0x26, - 0xff, 0xd8, 0x90, 0xa8, 0x0d, 0x89, 0x99, 0xa8, 0x10, 0x80, 0x98, 0x21, 0xda, 0x2e, 0xd8, 0x89, - 0x99, 0xa8, 0x31, 0x80, 0xda, 0x2e, 0xd8, 0xa8, 0x86, 0x96, 0x31, 0x80, 0xda, 0x2e, 0xd8, 0xa8, - 0x87, 0x31, 0x80, 0xda, 0x2e, 0xd8, 0xa8, 0x82, 0x92, 0xf3, 0x41, 0x80, 0xf1, 0xd9, 0x2e, 0xd8, - 0xa8, 0x82, 0xf3, 0x19, 0x80, 0xf1, 0xd9, 0x2e, 0xd8, 0x82, 0xac, 0xf3, 0xc0, 0xa2, 0x80, 0x22, - 0xf1, 0xa6, 0x2e, 0xa7, 0x2e, 0xa9, 0x22, 0x98, 0xa8, 0x29, 0xda, 0xac, 0xde, 0xff, 0xd8, 0xa2, - 0xf2, 0x2a, 0xf1, 0xa9, 0x2e, 0x82, 0x92, 0xa8, 0xf2, 0x31, 0x80, 0xa6, 0x96, 0xf1, 0xd9, 0x00, - 0xac, 0x8c, 0x9c, 0x0c, 0x30, 0xac, 0xde, 0xd0, 0xde, 0xff, 0xd8, 0x8c, 0x9c, 0xac, 0xd0, 0x10, - 0xac, 0xde, 0x80, 0x92, 0xa2, 0xf2, 0x4c, 0x82, 0xa8, 0xf1, 0xca, 0xf2, 0x35, 0xf1, 0x96, 0x88, - 0xa6, 0xd9, 0x00, 0xd8, 0xf1, 0xff -}; - -static const unsigned short sStartAddress = 0x0400; - -/* END OF SECTION COPIED FROM dmpDefaultMPU6050.c */ - -#define INT_SRC_TAP (0x01) -#define INT_SRC_ANDROID_ORIENT (0x08) - -#define DMP_FEATURE_SEND_ANY_GYRO (DMP_FEATURE_SEND_RAW_GYRO | \ - DMP_FEATURE_SEND_CAL_GYRO) - -#define MAX_PACKET_LENGTH (32) - -#define DMP_SAMPLE_RATE (200) -#define GYRO_SF (46850825LL * 200 / DMP_SAMPLE_RATE) - -#define FIFO_CORRUPTION_CHECK -#ifdef FIFO_CORRUPTION_CHECK -#define QUAT_ERROR_THRESH (1L<<24) -#define QUAT_MAG_SQ_NORMALIZED (1L<<28) -#define QUAT_MAG_SQ_MIN (QUAT_MAG_SQ_NORMALIZED - QUAT_ERROR_THRESH) -#define QUAT_MAG_SQ_MAX (QUAT_MAG_SQ_NORMALIZED + QUAT_ERROR_THRESH) -#endif - -struct dmp_s { - void (*tap_cb)(unsigned char count, unsigned char direction); - void (*android_orient_cb)(unsigned char orientation); - unsigned short orient; - unsigned short feature_mask; - unsigned short fifo_rate; - unsigned char packet_length; -}; - -static struct dmp_s dmp = { - .tap_cb = NULL, - .android_orient_cb = NULL, - .orient = 0, - .feature_mask = 0, - .fifo_rate = 0, - .packet_length = 0 -}; - -/** - * @brief Load the DMP with this image. - * @return 0 if successful. - */ -int dmp_load_motion_driver_firmware(void) -{ - return mpu_load_firmware(DMP_CODE_SIZE, dmp_memory, sStartAddress, - DMP_SAMPLE_RATE); -} - -/** - * @brief Push gyro and accel orientation to the DMP. - * The orientation is represented here as the output of - * @e inv_orientation_matrix_to_scalar. - * @param[in] orient Gyro and accel orientation in body frame. - * @return 0 if successful. - */ -int dmp_set_orientation(unsigned short orient) -{ - unsigned char gyro_regs[3], accel_regs[3]; - const unsigned char gyro_axes[3] = {DINA4C, DINACD, DINA6C}; - const unsigned char accel_axes[3] = {DINA0C, DINAC9, DINA2C}; - const unsigned char gyro_sign[3] = {DINA36, DINA56, DINA76}; - const unsigned char accel_sign[3] = {DINA26, DINA46, DINA66}; - - gyro_regs[0] = gyro_axes[orient & 3]; - gyro_regs[1] = gyro_axes[(orient >> 3) & 3]; - gyro_regs[2] = gyro_axes[(orient >> 6) & 3]; - accel_regs[0] = accel_axes[orient & 3]; - accel_regs[1] = accel_axes[(orient >> 3) & 3]; - accel_regs[2] = accel_axes[(orient >> 6) & 3]; - - /* Chip-to-body, axes only. */ - if (mpu_write_mem(FCFG_1, 3, gyro_regs)) - return -1; - if (mpu_write_mem(FCFG_2, 3, accel_regs)) - return -1; - - memcpy(gyro_regs, gyro_sign, 3); - memcpy(accel_regs, accel_sign, 3); - if (orient & 4) { - gyro_regs[0] |= 1; - accel_regs[0] |= 1; - } - if (orient & 0x20) { - gyro_regs[1] |= 1; - accel_regs[1] |= 1; - } - if (orient & 0x100) { - gyro_regs[2] |= 1; - accel_regs[2] |= 1; - } - - /* Chip-to-body, sign only. */ - if (mpu_write_mem(FCFG_3, 3, gyro_regs)) - return -1; - if (mpu_write_mem(FCFG_7, 3, accel_regs)) - return -1; - dmp.orient = orient; - return 0; -} - -/** - * @brief Push gyro biases to the DMP. - * Because the gyro integration is handled in the DMP, any gyro biases - * calculated by the MPL should be pushed down to DMP memory to remove - * 3-axis quaternion drift. - * \n NOTE: If the DMP-based gyro calibration is enabled, the DMP will - * overwrite the biases written to this location once a new one is computed. - * @param[in] bias Gyro biases in q16. - * @return 0 if successful. - */ -int dmp_set_gyro_bias(long *bias) -{ - long gyro_bias_body[3]; - unsigned char regs[4]; - - gyro_bias_body[0] = bias[dmp.orient & 3]; - if (dmp.orient & 4) - gyro_bias_body[0] *= -1; - gyro_bias_body[1] = bias[(dmp.orient >> 3) & 3]; - if (dmp.orient & 0x20) - gyro_bias_body[1] *= -1; - gyro_bias_body[2] = bias[(dmp.orient >> 6) & 3]; - if (dmp.orient & 0x100) - gyro_bias_body[2] *= -1; - -#ifdef EMPL_NO_64BIT - gyro_bias_body[0] = (long)(((float)gyro_bias_body[0] * GYRO_SF) / 1073741824.f); - gyro_bias_body[1] = (long)(((float)gyro_bias_body[1] * GYRO_SF) / 1073741824.f); - gyro_bias_body[2] = (long)(((float)gyro_bias_body[2] * GYRO_SF) / 1073741824.f); -#else - gyro_bias_body[0] = (long)(((long long)gyro_bias_body[0] * GYRO_SF) >> 30); - gyro_bias_body[1] = (long)(((long long)gyro_bias_body[1] * GYRO_SF) >> 30); - gyro_bias_body[2] = (long)(((long long)gyro_bias_body[2] * GYRO_SF) >> 30); -#endif - - regs[0] = (unsigned char)((gyro_bias_body[0] >> 24) & 0xFF); - regs[1] = (unsigned char)((gyro_bias_body[0] >> 16) & 0xFF); - regs[2] = (unsigned char)((gyro_bias_body[0] >> 8) & 0xFF); - regs[3] = (unsigned char)(gyro_bias_body[0] & 0xFF); - if (mpu_write_mem(D_EXT_GYRO_BIAS_X, 4, regs)) - return -1; - - regs[0] = (unsigned char)((gyro_bias_body[1] >> 24) & 0xFF); - regs[1] = (unsigned char)((gyro_bias_body[1] >> 16) & 0xFF); - regs[2] = (unsigned char)((gyro_bias_body[1] >> 8) & 0xFF); - regs[3] = (unsigned char)(gyro_bias_body[1] & 0xFF); - if (mpu_write_mem(D_EXT_GYRO_BIAS_Y, 4, regs)) - return -1; - - regs[0] = (unsigned char)((gyro_bias_body[2] >> 24) & 0xFF); - regs[1] = (unsigned char)((gyro_bias_body[2] >> 16) & 0xFF); - regs[2] = (unsigned char)((gyro_bias_body[2] >> 8) & 0xFF); - regs[3] = (unsigned char)(gyro_bias_body[2] & 0xFF); - return mpu_write_mem(D_EXT_GYRO_BIAS_Z, 4, regs); -} - -/** - * @brief Push accel biases to the DMP. - * These biases will be removed from the DMP 6-axis quaternion. - * @param[in] bias Accel biases in q16. - * @return 0 if successful. - */ -int dmp_set_accel_bias(long *bias) -{ - long accel_bias_body[3]; - unsigned char regs[12]; - long long accel_sf; - unsigned short accel_sens; - - mpu_get_accel_sens(&accel_sens); - accel_sf = (long long)accel_sens << 15; - __no_operation(); - - accel_bias_body[0] = bias[dmp.orient & 3]; - if (dmp.orient & 4) - accel_bias_body[0] *= -1; - accel_bias_body[1] = bias[(dmp.orient >> 3) & 3]; - if (dmp.orient & 0x20) - accel_bias_body[1] *= -1; - accel_bias_body[2] = bias[(dmp.orient >> 6) & 3]; - if (dmp.orient & 0x100) - accel_bias_body[2] *= -1; - -#ifdef EMPL_NO_64BIT - accel_bias_body[0] = (long)(((float)accel_bias_body[0] * accel_sf) / 1073741824.f); - accel_bias_body[1] = (long)(((float)accel_bias_body[1] * accel_sf) / 1073741824.f); - accel_bias_body[2] = (long)(((float)accel_bias_body[2] * accel_sf) / 1073741824.f); -#else - accel_bias_body[0] = (long)(((long long)accel_bias_body[0] * accel_sf) >> 30); - accel_bias_body[1] = (long)(((long long)accel_bias_body[1] * accel_sf) >> 30); - accel_bias_body[2] = (long)(((long long)accel_bias_body[2] * accel_sf) >> 30); -#endif - - regs[0] = (unsigned char)((accel_bias_body[0] >> 24) & 0xFF); - regs[1] = (unsigned char)((accel_bias_body[0] >> 16) & 0xFF); - regs[2] = (unsigned char)((accel_bias_body[0] >> 8) & 0xFF); - regs[3] = (unsigned char)(accel_bias_body[0] & 0xFF); - regs[4] = (unsigned char)((accel_bias_body[1] >> 24) & 0xFF); - regs[5] = (unsigned char)((accel_bias_body[1] >> 16) & 0xFF); - regs[6] = (unsigned char)((accel_bias_body[1] >> 8) & 0xFF); - regs[7] = (unsigned char)(accel_bias_body[1] & 0xFF); - regs[8] = (unsigned char)((accel_bias_body[2] >> 24) & 0xFF); - regs[9] = (unsigned char)((accel_bias_body[2] >> 16) & 0xFF); - regs[10] = (unsigned char)((accel_bias_body[2] >> 8) & 0xFF); - regs[11] = (unsigned char)(accel_bias_body[2] & 0xFF); - return mpu_write_mem(D_ACCEL_BIAS, 12, regs); -} - -/** - * @brief Set DMP output rate. - * Only used when DMP is on. - * @param[in] rate Desired fifo rate (Hz). - * @return 0 if successful. - */ -int dmp_set_fifo_rate(unsigned short rate) -{ - const unsigned char regs_end[12] = {DINAFE, DINAF2, DINAAB, - 0xc4, DINAAA, DINAF1, DINADF, DINADF, 0xBB, 0xAF, DINADF, DINADF}; - unsigned short div; - unsigned char tmp[8]; - - if (rate > DMP_SAMPLE_RATE) - return -1; - div = DMP_SAMPLE_RATE / rate - 1; - tmp[0] = (unsigned char)((div >> 8) & 0xFF); - tmp[1] = (unsigned char)(div & 0xFF); - if (mpu_write_mem(D_0_22, 2, tmp)) - return -1; - if (mpu_write_mem(CFG_6, 12, (unsigned char*)regs_end)) - return -1; - - dmp.fifo_rate = rate; - return 0; -} - -/** - * @brief Get DMP output rate. - * @param[out] rate Current fifo rate (Hz). - * @return 0 if successful. - */ -int dmp_get_fifo_rate(unsigned short *rate) -{ - rate[0] = dmp.fifo_rate; - return 0; -} - -/** - * @brief Set tap threshold for a specific axis. - * @param[in] axis 1, 2, and 4 for XYZ accel, respectively. - * @param[in] thresh Tap threshold, in mg/ms. - * @return 0 if successful. - */ -int dmp_set_tap_thresh(unsigned char axis, unsigned short thresh) -{ - unsigned char tmp[4], accel_fsr; - float scaled_thresh; - unsigned short dmp_thresh, dmp_thresh_2; - if (!(axis & TAP_XYZ) || thresh > 1600) - return -1; - - scaled_thresh = (float)thresh / DMP_SAMPLE_RATE; - - mpu_get_accel_fsr(&accel_fsr); - switch (accel_fsr) { - case 2: - dmp_thresh = (unsigned short)(scaled_thresh * 16384); - /* dmp_thresh * 0.75 */ - dmp_thresh_2 = (unsigned short)(scaled_thresh * 12288); - break; - case 4: - dmp_thresh = (unsigned short)(scaled_thresh * 8192); - /* dmp_thresh * 0.75 */ - dmp_thresh_2 = (unsigned short)(scaled_thresh * 6144); - break; - case 8: - dmp_thresh = (unsigned short)(scaled_thresh * 4096); - /* dmp_thresh * 0.75 */ - dmp_thresh_2 = (unsigned short)(scaled_thresh * 3072); - break; - case 16: - dmp_thresh = (unsigned short)(scaled_thresh * 2048); - /* dmp_thresh * 0.75 */ - dmp_thresh_2 = (unsigned short)(scaled_thresh * 1536); - break; - default: - return -1; - } - tmp[0] = (unsigned char)(dmp_thresh >> 8); - tmp[1] = (unsigned char)(dmp_thresh & 0xFF); - tmp[2] = (unsigned char)(dmp_thresh_2 >> 8); - tmp[3] = (unsigned char)(dmp_thresh_2 & 0xFF); - - if (axis & TAP_X) { - if (mpu_write_mem(DMP_TAP_THX, 2, tmp)) - return -1; - if (mpu_write_mem(D_1_36, 2, tmp+2)) - return -1; - } - if (axis & TAP_Y) { - if (mpu_write_mem(DMP_TAP_THY, 2, tmp)) - return -1; - if (mpu_write_mem(D_1_40, 2, tmp+2)) - return -1; - } - if (axis & TAP_Z) { - if (mpu_write_mem(DMP_TAP_THZ, 2, tmp)) - return -1; - if (mpu_write_mem(D_1_44, 2, tmp+2)) - return -1; - } - return 0; -} - -/** - * @brief Set which axes will register a tap. - * @param[in] axis 1, 2, and 4 for XYZ, respectively. - * @return 0 if successful. - */ -int dmp_set_tap_axes(unsigned char axis) -{ - unsigned char tmp = 0; - - if (axis & TAP_X) - tmp |= 0x30; - if (axis & TAP_Y) - tmp |= 0x0C; - if (axis & TAP_Z) - tmp |= 0x03; - return mpu_write_mem(D_1_72, 1, &tmp); -} - -/** - * @brief Set minimum number of taps needed for an interrupt. - * @param[in] min_taps Minimum consecutive taps (1-4). - * @return 0 if successful. - */ -int dmp_set_tap_count(unsigned char min_taps) -{ - unsigned char tmp; - - if (min_taps < 1) - min_taps = 1; - else if (min_taps > 4) - min_taps = 4; - - tmp = min_taps - 1; - return mpu_write_mem(D_1_79, 1, &tmp); -} - -/** - * @brief Set length between valid taps. - * @param[in] time Milliseconds between taps. - * @return 0 if successful. - */ -int dmp_set_tap_time(unsigned short time) -{ - unsigned short dmp_time; - unsigned char tmp[2]; - - dmp_time = time / (1000 / DMP_SAMPLE_RATE); - tmp[0] = (unsigned char)(dmp_time >> 8); - tmp[1] = (unsigned char)(dmp_time & 0xFF); - return mpu_write_mem(DMP_TAPW_MIN, 2, tmp); -} - -/** - * @brief Set max time between taps to register as a multi-tap. - * @param[in] time Max milliseconds between taps. - * @return 0 if successful. - */ -int dmp_set_tap_time_multi(unsigned short time) -{ - unsigned short dmp_time; - unsigned char tmp[2]; - - dmp_time = time / (1000 / DMP_SAMPLE_RATE); - tmp[0] = (unsigned char)(dmp_time >> 8); - tmp[1] = (unsigned char)(dmp_time & 0xFF); - return mpu_write_mem(D_1_218, 2, tmp); -} - -/** - * @brief Set shake rejection threshold. - * If the DMP detects a gyro sample larger than @e thresh, taps are rejected. - * @param[in] sf Gyro scale factor. - * @param[in] thresh Gyro threshold in dps. - * @return 0 if successful. - */ -int dmp_set_shake_reject_thresh(long sf, unsigned short thresh) -{ - unsigned char tmp[4]; - long thresh_scaled = sf / 1000 * thresh; - tmp[0] = (unsigned char)(((long)thresh_scaled >> 24) & 0xFF); - tmp[1] = (unsigned char)(((long)thresh_scaled >> 16) & 0xFF); - tmp[2] = (unsigned char)(((long)thresh_scaled >> 8) & 0xFF); - tmp[3] = (unsigned char)((long)thresh_scaled & 0xFF); - return mpu_write_mem(D_1_92, 4, tmp); -} - -/** - * @brief Set shake rejection time. - * Sets the length of time that the gyro must be outside of the threshold set - * by @e gyro_set_shake_reject_thresh before taps are rejected. A mandatory - * 60 ms is added to this parameter. - * @param[in] time Time in milliseconds. - * @return 0 if successful. - */ -int dmp_set_shake_reject_time(unsigned short time) -{ - unsigned char tmp[2]; - - time /= (1000 / DMP_SAMPLE_RATE); - tmp[0] = time >> 8; - tmp[1] = time & 0xFF; - return mpu_write_mem(D_1_90,2,tmp); -} - -/** - * @brief Set shake rejection timeout. - * Sets the length of time after a shake rejection that the gyro must stay - * inside of the threshold before taps can be detected again. A mandatory - * 60 ms is added to this parameter. - * @param[in] time Time in milliseconds. - * @return 0 if successful. - */ -int dmp_set_shake_reject_timeout(unsigned short time) -{ - unsigned char tmp[2]; - - time /= (1000 / DMP_SAMPLE_RATE); - tmp[0] = time >> 8; - tmp[1] = time & 0xFF; - return mpu_write_mem(D_1_88,2,tmp); -} - -/** - * @brief Get current step count. - * @param[out] count Number of steps detected. - * @return 0 if successful. - */ -int dmp_get_pedometer_step_count(unsigned long *count) -{ - unsigned char tmp[4]; - if (!count) - return -1; - - if (mpu_read_mem(D_PEDSTD_STEPCTR, 4, tmp)) - return -1; - - count[0] = ((unsigned long)tmp[0] << 24) | ((unsigned long)tmp[1] << 16) | - ((unsigned long)tmp[2] << 8) | tmp[3]; - return 0; -} - -/** - * @brief Overwrite current step count. - * WARNING: This function writes to DMP memory and could potentially encounter - * a race condition if called while the pedometer is enabled. - * @param[in] count New step count. - * @return 0 if successful. - */ -int dmp_set_pedometer_step_count(unsigned long count) -{ - unsigned char tmp[4]; - - tmp[0] = (unsigned char)((count >> 24) & 0xFF); - tmp[1] = (unsigned char)((count >> 16) & 0xFF); - tmp[2] = (unsigned char)((count >> 8) & 0xFF); - tmp[3] = (unsigned char)(count & 0xFF); - return mpu_write_mem(D_PEDSTD_STEPCTR, 4, tmp); -} - -/** - * @brief Get duration of walking time. - * @param[in] time Walk time in milliseconds. - * @return 0 if successful. - */ -int dmp_get_pedometer_walk_time(unsigned long *time) -{ - unsigned char tmp[4]; - if (!time) - return -1; - - if (mpu_read_mem(D_PEDSTD_TIMECTR, 4, tmp)) - return -1; - - time[0] = (((unsigned long)tmp[0] << 24) | ((unsigned long)tmp[1] << 16) | - ((unsigned long)tmp[2] << 8) | tmp[3]) * 20; - return 0; -} - -/** - * @brief Overwrite current walk time. - * WARNING: This function writes to DMP memory and could potentially encounter - * a race condition if called while the pedometer is enabled. - * @param[in] time New walk time in milliseconds. - */ -int dmp_set_pedometer_walk_time(unsigned long time) -{ - unsigned char tmp[4]; - - time /= 20; - - tmp[0] = (unsigned char)((time >> 24) & 0xFF); - tmp[1] = (unsigned char)((time >> 16) & 0xFF); - tmp[2] = (unsigned char)((time >> 8) & 0xFF); - tmp[3] = (unsigned char)(time & 0xFF); - return mpu_write_mem(D_PEDSTD_TIMECTR, 4, tmp); -} - -/** - * @brief Enable DMP features. - * The following \#define's are used in the input mask: - * \n DMP_FEATURE_TAP - * \n DMP_FEATURE_ANDROID_ORIENT - * \n DMP_FEATURE_LP_QUAT - * \n DMP_FEATURE_6X_LP_QUAT - * \n DMP_FEATURE_GYRO_CAL - * \n DMP_FEATURE_SEND_RAW_ACCEL - * \n DMP_FEATURE_SEND_RAW_GYRO - * \n NOTE: DMP_FEATURE_LP_QUAT and DMP_FEATURE_6X_LP_QUAT are mutually - * exclusive. - * \n NOTE: DMP_FEATURE_SEND_RAW_GYRO and DMP_FEATURE_SEND_CAL_GYRO are also - * mutually exclusive. - * @param[in] mask Mask of features to enable. - * @return 0 if successful. - */ -int dmp_enable_feature(unsigned short mask) -{ - unsigned char tmp[10]; - - /* TODO: All of these settings can probably be integrated into the default - * DMP image. - */ - /* Set integration scale factor. */ - tmp[0] = (unsigned char)((GYRO_SF >> 24) & 0xFF); - tmp[1] = (unsigned char)((GYRO_SF >> 16) & 0xFF); - tmp[2] = (unsigned char)((GYRO_SF >> 8) & 0xFF); - tmp[3] = (unsigned char)(GYRO_SF & 0xFF); - mpu_write_mem(D_0_104, 4, tmp); - - /* Send sensor data to the FIFO. */ - tmp[0] = 0xA3; - if (mask & DMP_FEATURE_SEND_RAW_ACCEL) { - tmp[1] = 0xC0; - tmp[2] = 0xC8; - tmp[3] = 0xC2; - } else { - tmp[1] = 0xA3; - tmp[2] = 0xA3; - tmp[3] = 0xA3; - } - if (mask & DMP_FEATURE_SEND_ANY_GYRO) { - tmp[4] = 0xC4; - tmp[5] = 0xCC; - tmp[6] = 0xC6; - } else { - tmp[4] = 0xA3; - tmp[5] = 0xA3; - tmp[6] = 0xA3; - } - tmp[7] = 0xA3; - tmp[8] = 0xA3; - tmp[9] = 0xA3; - mpu_write_mem(CFG_15,10,tmp); - - /* Send gesture data to the FIFO. */ - if (mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT)) - tmp[0] = DINA20; - else - tmp[0] = 0xD8; - mpu_write_mem(CFG_27,1,tmp); - - if (mask & DMP_FEATURE_GYRO_CAL) - dmp_enable_gyro_cal(1); - else - dmp_enable_gyro_cal(0); - - if (mask & DMP_FEATURE_SEND_ANY_GYRO) { - if (mask & DMP_FEATURE_SEND_CAL_GYRO) { - tmp[0] = 0xB2; - tmp[1] = 0x8B; - tmp[2] = 0xB6; - tmp[3] = 0x9B; - } else { - tmp[0] = DINAC0; - tmp[1] = DINA80; - tmp[2] = DINAC2; - tmp[3] = DINA90; - } - mpu_write_mem(CFG_GYRO_RAW_DATA, 4, tmp); - } - - if (mask & DMP_FEATURE_TAP) { - /* Enable tap. */ - tmp[0] = 0xF8; - mpu_write_mem(CFG_20, 1, tmp); - dmp_set_tap_thresh(TAP_XYZ, 250); - dmp_set_tap_axes(TAP_XYZ); - dmp_set_tap_count(1); - dmp_set_tap_time(100); - dmp_set_tap_time_multi(500); - - dmp_set_shake_reject_thresh(GYRO_SF, 200); - dmp_set_shake_reject_time(40); - dmp_set_shake_reject_timeout(10); - } else { - tmp[0] = 0xD8; - mpu_write_mem(CFG_20, 1, tmp); - } - - if (mask & DMP_FEATURE_ANDROID_ORIENT) { - tmp[0] = 0xD9; - } else - tmp[0] = 0xD8; - mpu_write_mem(CFG_ANDROID_ORIENT_INT, 1, tmp); - - if (mask & DMP_FEATURE_LP_QUAT) - dmp_enable_lp_quat(1); - else - dmp_enable_lp_quat(0); - - if (mask & DMP_FEATURE_6X_LP_QUAT) - dmp_enable_6x_lp_quat(1); - else - dmp_enable_6x_lp_quat(0); - - /* Pedometer is always enabled. */ - dmp.feature_mask = mask | DMP_FEATURE_PEDOMETER; - mpu_reset_fifo(); - - dmp.packet_length = 0; - if (mask & DMP_FEATURE_SEND_RAW_ACCEL) - dmp.packet_length += 6; - if (mask & DMP_FEATURE_SEND_ANY_GYRO) - dmp.packet_length += 6; - if (mask & (DMP_FEATURE_LP_QUAT | DMP_FEATURE_6X_LP_QUAT)) - dmp.packet_length += 16; - if (mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT)) - dmp.packet_length += 4; - - return 0; -} - -/** - * @brief Get list of currently enabled DMP features. - * @param[out] Mask of enabled features. - * @return 0 if successful. - */ -int dmp_get_enabled_features(unsigned short *mask) -{ - mask[0] = dmp.feature_mask; - return 0; -} - -/** - * @brief Calibrate the gyro data in the DMP. - * After eight seconds of no motion, the DMP will compute gyro biases and - * subtract them from the quaternion output. If @e dmp_enable_feature is - * called with @e DMP_FEATURE_SEND_CAL_GYRO, the biases will also be - * subtracted from the gyro output. - * @param[in] enable 1 to enable gyro calibration. - * @return 0 if successful. - */ -int dmp_enable_gyro_cal(unsigned char enable) -{ - if (enable) { - unsigned char regs[9] = {0xb8, 0xaa, 0xb3, 0x8d, 0xb4, 0x98, 0x0d, 0x35, 0x5d}; - return mpu_write_mem(CFG_MOTION_BIAS, 9, regs); - } else { - unsigned char regs[9] = {0xb8, 0xaa, 0xaa, 0xaa, 0xb0, 0x88, 0xc3, 0xc5, 0xc7}; - return mpu_write_mem(CFG_MOTION_BIAS, 9, regs); - } -} - -/** - * @brief Generate 3-axis quaternions from the DMP. - * In this driver, the 3-axis and 6-axis DMP quaternion features are mutually - * exclusive. - * @param[in] enable 1 to enable 3-axis quaternion. - * @return 0 if successful. - */ -int dmp_enable_lp_quat(unsigned char enable) -{ - unsigned char regs[4]; - if (enable) { - regs[0] = DINBC0; - regs[1] = DINBC2; - regs[2] = DINBC4; - regs[3] = DINBC6; - } - else - memset(regs, 0x8B, 4); - - mpu_write_mem(CFG_LP_QUAT, 4, regs); - - return mpu_reset_fifo(); -} - -/** - * @brief Generate 6-axis quaternions from the DMP. - * In this driver, the 3-axis and 6-axis DMP quaternion features are mutually - * exclusive. - * @param[in] enable 1 to enable 6-axis quaternion. - * @return 0 if successful. - */ -int dmp_enable_6x_lp_quat(unsigned char enable) -{ - unsigned char regs[4]; - if (enable) { - regs[0] = DINA20; - regs[1] = DINA28; - regs[2] = DINA30; - regs[3] = DINA38; - } else - memset(regs, 0xA3, 4); - - mpu_write_mem(CFG_8, 4, regs); - - return mpu_reset_fifo(); -} - -/** - * @brief Decode the four-byte gesture data and execute any callbacks. - * @param[in] gesture Gesture data from DMP packet. - * @return 0 if successful. - */ -static int decode_gesture(unsigned char *gesture) -{ - unsigned char tap, android_orient; - - android_orient = gesture[3] & 0xC0; - tap = 0x3F & gesture[3]; - - if (gesture[1] & INT_SRC_TAP) { - unsigned char direction, count; - direction = tap >> 3; - count = (tap % 8) + 1; - if (dmp.tap_cb) - dmp.tap_cb(direction, count); - } - - if (gesture[1] & INT_SRC_ANDROID_ORIENT) { - if (dmp.android_orient_cb) - dmp.android_orient_cb(android_orient >> 6); - } - - return 0; -} - -/** - * @brief Specify when a DMP interrupt should occur. - * A DMP interrupt can be configured to trigger on either of the two - * conditions below: - * \n a. One FIFO period has elapsed (set by @e mpu_set_sample_rate). - * \n b. A tap event has been detected. - * @param[in] mode DMP_INT_GESTURE or DMP_INT_CONTINUOUS. - * @return 0 if successful. - */ -int dmp_set_interrupt_mode(unsigned char mode) -{ - const unsigned char regs_continuous[11] = - {0xd8, 0xb1, 0xb9, 0xf3, 0x8b, 0xa3, 0x91, 0xb6, 0x09, 0xb4, 0xd9}; - const unsigned char regs_gesture[11] = - {0xda, 0xb1, 0xb9, 0xf3, 0x8b, 0xa3, 0x91, 0xb6, 0xda, 0xb4, 0xda}; - - switch (mode) { - case DMP_INT_CONTINUOUS: - return mpu_write_mem(CFG_FIFO_ON_EVENT, 11, - (unsigned char*)regs_continuous); - case DMP_INT_GESTURE: - return mpu_write_mem(CFG_FIFO_ON_EVENT, 11, - (unsigned char*)regs_gesture); - default: - return -1; - } -} - -/** - * @brief Get one packet from the FIFO. - * If @e sensors does not contain a particular sensor, disregard the data - * returned to that pointer. - * \n @e sensors can contain a combination of the following flags: - * \n INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO - * \n INV_XYZ_GYRO - * \n INV_XYZ_ACCEL - * \n INV_WXYZ_QUAT - * \n If the FIFO has no new data, @e sensors will be zero. - * \n If the FIFO is disabled, @e sensors will be zero and this function will - * return a non-zero error code. - * @param[out] gyro Gyro data in hardware units. - * @param[out] accel Accel data in hardware units. - * @param[out] quat 3-axis quaternion data in hardware units. - * @param[out] timestamp Timestamp in milliseconds. - * @param[out] sensors Mask of sensors read from FIFO. - * @param[out] more Number of remaining packets. - * @return 0 if successful. - */ -int dmp_read_fifo(short *gyro, short *accel, long *quat, - unsigned long *timestamp, short *sensors, unsigned char *more) -{ - unsigned char fifo_data[MAX_PACKET_LENGTH]; - unsigned char ii = 0; - - /* TODO: sensors[0] only changes when dmp_enable_feature is called. We can - * cache this value and save some cycles. - */ - sensors[0] = 0; - - /* Get a packet. */ - if (mpu_read_fifo_stream(dmp.packet_length, fifo_data, more)) - return -1; - - /* Parse DMP packet. */ - if (dmp.feature_mask & (DMP_FEATURE_LP_QUAT | DMP_FEATURE_6X_LP_QUAT)) { -#ifdef FIFO_CORRUPTION_CHECK - long quat_q14[4], quat_mag_sq; -#endif - quat[0] = ((long)fifo_data[0] << 24) | ((long)fifo_data[1] << 16) | - ((long)fifo_data[2] << 8) | fifo_data[3]; - quat[1] = ((long)fifo_data[4] << 24) | ((long)fifo_data[5] << 16) | - ((long)fifo_data[6] << 8) | fifo_data[7]; - quat[2] = ((long)fifo_data[8] << 24) | ((long)fifo_data[9] << 16) | - ((long)fifo_data[10] << 8) | fifo_data[11]; - quat[3] = ((long)fifo_data[12] << 24) | ((long)fifo_data[13] << 16) | - ((long)fifo_data[14] << 8) | fifo_data[15]; - ii += 16; -#ifdef FIFO_CORRUPTION_CHECK - /* We can detect a corrupted FIFO by monitoring the quaternion data and - * ensuring that the magnitude is always normalized to one. This - * shouldn't happen in normal operation, but if an I2C error occurs, - * the FIFO reads might become misaligned. - * - * Let's start by scaling down the quaternion data to avoid long long - * math. - */ - quat_q14[0] = quat[0] >> 16; - quat_q14[1] = quat[1] >> 16; - quat_q14[2] = quat[2] >> 16; - quat_q14[3] = quat[3] >> 16; - quat_mag_sq = quat_q14[0] * quat_q14[0] + quat_q14[1] * quat_q14[1] + - quat_q14[2] * quat_q14[2] + quat_q14[3] * quat_q14[3]; - if ((quat_mag_sq < QUAT_MAG_SQ_MIN) || - (quat_mag_sq > QUAT_MAG_SQ_MAX)) { - /* Quaternion is outside of the acceptable threshold. */ - mpu_reset_fifo(); - sensors[0] = 0; - return -1; - } - sensors[0] |= INV_WXYZ_QUAT; -#endif - } - - if (dmp.feature_mask & DMP_FEATURE_SEND_RAW_ACCEL) { - accel[0] = ((short)fifo_data[ii+0] << 8) | fifo_data[ii+1]; - accel[1] = ((short)fifo_data[ii+2] << 8) | fifo_data[ii+3]; - accel[2] = ((short)fifo_data[ii+4] << 8) | fifo_data[ii+5]; - ii += 6; - sensors[0] |= INV_XYZ_ACCEL; - } - - if (dmp.feature_mask & DMP_FEATURE_SEND_ANY_GYRO) { - gyro[0] = ((short)fifo_data[ii+0] << 8) | fifo_data[ii+1]; - gyro[1] = ((short)fifo_data[ii+2] << 8) | fifo_data[ii+3]; - gyro[2] = ((short)fifo_data[ii+4] << 8) | fifo_data[ii+5]; - ii += 6; - sensors[0] |= INV_XYZ_GYRO; - } - - /* Gesture data is at the end of the DMP packet. Parse it and call - * the gesture callbacks (if registered). - */ - if (dmp.feature_mask & (DMP_FEATURE_TAP | DMP_FEATURE_ANDROID_ORIENT)) - decode_gesture(fifo_data + ii); - - get_ms(timestamp); - return 0; -} - -/** - * @brief Register a function to be executed on a tap event. - * The tap direction is represented by one of the following: - * \n TAP_X_UP - * \n TAP_X_DOWN - * \n TAP_Y_UP - * \n TAP_Y_DOWN - * \n TAP_Z_UP - * \n TAP_Z_DOWN - * @param[in] func Callback function. - * @return 0 if successful. - */ -int dmp_register_tap_cb(void (*func)(unsigned char, unsigned char)) -{ - dmp.tap_cb = func; - return 0; -} - -/** - * @brief Register a function to be executed on a android orientation event. - * @param[in] func Callback function. - * @return 0 if successful. - */ -int dmp_register_android_orient_cb(void (*func)(unsigned char)) -{ - dmp.android_orient_cb = func; - return 0; -} - -/** - * @} - */ - diff --git a/interface/external/MotionDriver/src/inv_tty.c b/interface/external/MotionDriver/src/inv_tty.c deleted file mode 100644 index 30a3fceb55..0000000000 --- a/interface/external/MotionDriver/src/inv_tty.c +++ /dev/null @@ -1,113 +0,0 @@ -// -// inv_tty.c -// interface -// -// Created by Andrzej Kapolka on 7/9/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. - -#include -#include -#include - -#include "inv_tty.h" - -// the file descriptor of the tty -static int ttyFileDescriptor; - -void tty_set_file_descriptor(int file_descriptor) { - ttyFileDescriptor = file_descriptor; -} - -static char to_hex_digit(unsigned char value) { - return (value < 10) ? '0' + value : 'A' + (value - 10); -} - -static unsigned char from_hex_digit(char digit) { - return (digit < 'A') ? digit - '0' : (digit - 'A') + 10; -} - -static int write_byte(unsigned char value) { - char chars[] = { to_hex_digit(value / 16), to_hex_digit(value % 16) }; - return write(ttyFileDescriptor, chars, 2) != 2; -} - -static int read_byte(unsigned char* value) { - char chars[2]; - if (read(ttyFileDescriptor, chars, 2) != 2) { - return 1; - } - *value = from_hex_digit(chars[0]) * 16 + from_hex_digit(chars[1]); - return 0; -} - -int tty_i2c_write(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char const *data) { - if (write(ttyFileDescriptor, "WR", 2) != 2) { - return 1; - } - if (write_byte(slave_addr)) { - return 1; - } - if (write_byte(reg_addr)) { - return 1; - } - int i; - for (i = 0; i < length; i++) { - if (write_byte(data[i])) { - return 1; - } - } - if (write(ttyFileDescriptor, "\n", 1) != 1) { - return 1; - } - - char response[8]; - return read(ttyFileDescriptor, response, 8) != 8; -} - -int tty_i2c_read(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char *data) { - if (write(ttyFileDescriptor, "RD", 2) != 2) { - return 1; - } - if (write_byte(slave_addr)) { - return 1; - } - if (write_byte(reg_addr)) { - return 1; - } - if (write_byte(length)) { - return 1; - } - if (write(ttyFileDescriptor, "\n", 1) != 1) { - return 1; - } - - char prefix[6]; - if (read(ttyFileDescriptor, prefix, 6) != 6) { - return 1; - } - int i; - for (i = 0; i < length; i++) { - if (read_byte(data + i)) { - return 1; - } - } - - char suffix[2]; - return read(ttyFileDescriptor, suffix, 2) != 2; -} - -void tty_delay_ms(unsigned long num_ms) { - struct timespec required, remaining; - required.tv_sec = 0; - const long NANOSECONDS_PER_MILLISECOND = 1000000; - required.tv_nsec = num_ms * NANOSECONDS_PER_MILLISECOND; - nanosleep(&required, &remaining); -} - -void tty_get_ms(unsigned long *count) { - struct timeval time; - gettimeofday(&time, 0); - const long MILLISECONDS_PER_SECOND = 1000; - const long MICROSECONDS_PER_MILLISECOND = 1000; - *count = time.tv_sec * MILLISECONDS_PER_SECOND + time.tv_usec / MICROSECONDS_PER_MILLISECOND; -} From 58ee527997380ad4ae5cc86a2c7a55bbc64c4abd Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 14:24:19 -0800 Subject: [PATCH 02/13] Fix GCC warning (string split across lines). --- libraries/octree/src/OctreeElement.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/octree/src/OctreeElement.cpp b/libraries/octree/src/OctreeElement.cpp index 70c615e121..fbb2d9c08a 100644 --- a/libraries/octree/src/OctreeElement.cpp +++ b/libraries/octree/src/OctreeElement.cpp @@ -412,8 +412,8 @@ OctreeElement* OctreeElement::getChildAtIndex(int childIndex) const { if (externalIndex < childCount && externalIndex >= 0) { result = _children.external[externalIndex]; } else { - qDebug("getChildAtIndex() attempt to access external client out of bounds externalIndex=%d <<<<<<<<<< WARNING!!! - ",externalIndex); + qDebug("getChildAtIndex() attempt to access external client out of " + "bounds externalIndex=%d <<<<<<<<<< WARNING!!!", externalIndex); } break; } From 50d224661c19a3848c6d8042c0f753f4bb51b7af Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 14:47:39 -0800 Subject: [PATCH 03/13] Pruning more avatar bits. --- interface/src/avatar/Avatar.cpp | 23 +- interface/src/avatar/Avatar.h | 70 +---- interface/src/avatar/Head.cpp | 368 +------------------------ interface/src/avatar/Head.h | 27 +- interface/src/avatar/MyAvatar.cpp | 4 +- interface/src/avatar/SkeletonModel.cpp | 40 --- 6 files changed, 8 insertions(+), 524 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 144c9f4c2a..7403f205e7 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -31,7 +31,6 @@ using namespace std; -const bool BALLS_ON = false; const glm::vec3 DEFAULT_UP_DIRECTION(0.0f, 1.0f, 0.0f); const float YAW_MAG = 500.0f; const float MY_HAND_HOLDING_PULL = 0.2f; @@ -40,7 +39,6 @@ const float BODY_SPRING_DEFAULT_TIGHTNESS = 1000.0f; const float BODY_SPRING_FORCE = 300.0f; const float BODY_SPRING_DECAY = 16.0f; const float COLLISION_RADIUS_SCALAR = 1.2f; // pertains to avatar-to-avatar collisions -const float COLLISION_BALL_FORCE = 200.0f; // pertains to avatar-to-avatar collisions const float COLLISION_BODY_FORCE = 30.0f; // pertains to avatar-to-avatar collisions const float HEAD_ROTATION_SCALE = 0.70f; const float HEAD_ROLL_SCALE = 0.40f; @@ -56,8 +54,6 @@ const float LEAN_SENSITIVITY = 0.15f; const float LEAN_MAX = 0.45f; const float LEAN_AVERAGING = 10.0f; const float HEAD_RATE_MAX = 50.f; -const float SKIN_COLOR[] = {1.0f, 0.84f, 0.66f}; -const float DARK_SKIN_COLOR[] = {0.9f, 0.78f, 0.63f}; const int NUM_BODY_CONE_SIDES = 9; const float CHAT_MESSAGE_SCALE = 0.0015f; const float CHAT_MESSAGE_HEIGHT = 0.1f; @@ -82,7 +78,6 @@ Avatar::Avatar(Node* owningNode) : _head(this), _hand(this), _skeletonModel(this), - _ballSpringsInitialized(false), _bodyYawDelta(0.0f), _mode(AVATAR_MODE_STANDING), _velocity(0.0f, 0.0f, 0.0f), @@ -95,8 +90,7 @@ Avatar::Avatar(Node* owningNode) : _mouseRayDirection(0.0f, 0.0f, 0.0f), _isCollisionsOn(true), _moving(false), - _initialized(false), - _handHoldingPosition(0.0f, 0.0f, 0.0f) + _initialized(false) { // we may have been created in the network thread, but we live in the main thread moveToThread(Application::getInstance()->thread()); @@ -155,7 +149,6 @@ void Avatar::simulate(float deltaTime, Transmitter* transmitter) { } _head.setPosition(headPosition); _head.setScale(_scale); - _head.setSkinColor(glm::vec3(SKIN_COLOR[0], SKIN_COLOR[1], SKIN_COLOR[2])); _head.simulate(deltaTime, false); // use speed and angular velocity to determine walking vs. standing @@ -275,20 +268,10 @@ void Avatar::renderBody(bool forceRenderHead) { glm::vec3 pos = getPosition(); //printf("Render other at %.3f, %.2f, %.2f\n", pos.x, pos.y, pos.z); _skeletonModel.render(1.0f); - _head.render(1.0f, false); + _head.render(1.0f); _hand.render(false); } -void Avatar::getSkinColors(glm::vec3& lighter, glm::vec3& darker) { - lighter = glm::vec3(SKIN_COLOR[0], SKIN_COLOR[1], SKIN_COLOR[2]); - darker = glm::vec3(DARK_SKIN_COLOR[0], DARK_SKIN_COLOR[1], DARK_SKIN_COLOR[2]); - if (_head.getFaceModel().isActive()) { - lighter = glm::vec3(_head.getFaceModel().computeAverageColor()); - const float SKIN_DARKENING = 0.9f; - darker = lighter * SKIN_DARKENING; - } -} - bool Avatar::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance) const { float minDistance = FLT_MAX; float modelDistance; @@ -456,7 +439,7 @@ void Avatar::resetSize() { qDebug("Reseted scale to %f", _targetScale); } -void Avatar::setScale(const float scale) { +void Avatar::setScale(float scale) { _scale = scale; if (_targetScale * (1.f - RESCALING_TOLERANCE) < _scale && diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index dc2a4e9a41..6248ac92e7 100755 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -26,65 +26,9 @@ static const float SCALING_RATIO = .05f; static const float SMOOTHING_RATIO = .05f; // 0 < ratio < 1 static const float RESCALING_TOLERANCE = .02f; -const float BODY_BALL_RADIUS_PELVIS = 0.07f; -const float BODY_BALL_RADIUS_TORSO = 0.065f; -const float BODY_BALL_RADIUS_CHEST = 0.08f; -const float BODY_BALL_RADIUS_NECK_BASE = 0.03f; -const float BODY_BALL_RADIUS_HEAD_BASE = 0.07f; -const float BODY_BALL_RADIUS_LEFT_COLLAR = 0.04f; -const float BODY_BALL_RADIUS_LEFT_SHOULDER = 0.03f; -const float BODY_BALL_RADIUS_LEFT_ELBOW = 0.02f; -const float BODY_BALL_RADIUS_LEFT_WRIST = 0.02f; -const float BODY_BALL_RADIUS_LEFT_FINGERTIPS = 0.01f; -const float BODY_BALL_RADIUS_RIGHT_COLLAR = 0.04f; -const float BODY_BALL_RADIUS_RIGHT_SHOULDER = 0.03f; -const float BODY_BALL_RADIUS_RIGHT_ELBOW = 0.02f; -const float BODY_BALL_RADIUS_RIGHT_WRIST = 0.02f; -const float BODY_BALL_RADIUS_RIGHT_FINGERTIPS = 0.01f; -const float BODY_BALL_RADIUS_LEFT_HIP = 0.04f; -const float BODY_BALL_RADIUS_LEFT_MID_THIGH = 0.03f; -const float BODY_BALL_RADIUS_LEFT_KNEE = 0.025f; -const float BODY_BALL_RADIUS_LEFT_HEEL = 0.025f; -const float BODY_BALL_RADIUS_LEFT_TOES = 0.025f; -const float BODY_BALL_RADIUS_RIGHT_HIP = 0.04f; -const float BODY_BALL_RADIUS_RIGHT_KNEE = 0.025f; -const float BODY_BALL_RADIUS_RIGHT_HEEL = 0.025f; -const float BODY_BALL_RADIUS_RIGHT_TOES = 0.025f; - -extern const bool usingBigSphereCollisionTest; - extern const float CHAT_MESSAGE_SCALE; extern const float CHAT_MESSAGE_HEIGHT; -enum AvatarBodyBallID { - BODY_BALL_NULL = -1, - BODY_BALL_PELVIS, - BODY_BALL_TORSO, - BODY_BALL_CHEST, - BODY_BALL_NECK_BASE, - BODY_BALL_HEAD_BASE, - BODY_BALL_HEAD_TOP, - BODY_BALL_LEFT_COLLAR, - BODY_BALL_LEFT_SHOULDER, - BODY_BALL_LEFT_ELBOW, - BODY_BALL_LEFT_WRIST, - BODY_BALL_LEFT_FINGERTIPS, - BODY_BALL_RIGHT_COLLAR, - BODY_BALL_RIGHT_SHOULDER, - BODY_BALL_RIGHT_ELBOW, - BODY_BALL_RIGHT_WRIST, - BODY_BALL_RIGHT_FINGERTIPS, - BODY_BALL_LEFT_HIP, - BODY_BALL_LEFT_KNEE, - BODY_BALL_LEFT_HEEL, - BODY_BALL_LEFT_TOES, - BODY_BALL_RIGHT_HIP, - BODY_BALL_RIGHT_KNEE, - BODY_BALL_RIGHT_HEEL, - BODY_BALL_RIGHT_TOES, - NUM_AVATAR_BODY_BALLS -}; - enum DriveKeys { FWD = 0, BACK, @@ -151,8 +95,6 @@ public: glm::quat getOrientation() const; glm::quat getWorldAlignedOrientation() const; - void getSkinColors(glm::vec3& lighter, glm::vec3& darker); - bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance) const; /// Checks for penetration between the described sphere and the avatar. @@ -189,7 +131,6 @@ protected: Head _head; Hand _hand; SkeletonModel _skeletonModel; - bool _ballSpringsInitialized; float _bodyYawDelta; AvatarMode _mode; glm::vec3 _velocity; @@ -210,26 +151,17 @@ protected: glm::vec3 getBodyUpDirection() const { return getOrientation() * IDENTITY_UP; } glm::vec3 getBodyFrontDirection() const { return getOrientation() * IDENTITY_FRONT; } glm::quat computeRotationFromBodyToWorldUp(float proportion = 1.0f) const; - void setScale(const float scale); + void setScale(float scale); float getHeight() const; float getPelvisFloatingHeight() const; float getPelvisToHeadLength() const; private: - // privatize copy constructor and assignment operator to avoid copying - Avatar(const Avatar&); - Avatar& operator= (const Avatar&); bool _initialized; - glm::vec3 _handHoldingPosition; - // private methods... - glm::vec3 calculateAverageEyePosition() { return _head.calculateAverageEyePosition(); } // get the position smack-dab between the eyes (for lookat) - float getBallRenderAlpha(int ball, bool forceRenderHead) const; void renderBody(bool forceRenderHead); - void initializeBodyBalls(); - void resetBodyBalls(); }; #endif diff --git a/interface/src/avatar/Head.cpp b/interface/src/avatar/Head.cpp index d366f87719..08f2b9158f 100644 --- a/interface/src/avatar/Head.cpp +++ b/interface/src/avatar/Head.cpp @@ -51,19 +51,12 @@ int Head::_eyePositionLocation; Head::Head(Avatar* owningAvatar) : HeadData((AvatarData*)owningAvatar), yawRate(0.0f), - _renderAlpha(0.0), _returnHeadToCenter(false), - _skinColor(0.0f, 0.0f, 0.0f), _position(0.0f, 0.0f, 0.0f), _rotation(0.0f, 0.0f, 0.0f), _leftEyePosition(0.0f, 0.0f, 0.0f), _rightEyePosition(0.0f, 0.0f, 0.0f), _eyePosition(0.0f, 0.0f, 0.0f), - _leftEyeBrowPosition(0.0f, 0.0f, 0.0f), - _rightEyeBrowPosition(0.0f, 0.0f, 0.0f), - _leftEarPosition(0.0f, 0.0f, 0.0f), - _rightEarPosition(0.0f, 0.0f, 0.0f), - _mouthPosition(0.0f, 0.0f, 0.0f), _scale(1.0f), _gravity(0.0f, -1.0f, 0.0f), _lastLoudness(0.0f), @@ -218,76 +211,14 @@ void Head::simulate(float deltaTime, bool isMine) { _faceModel.simulate(deltaTime); - calculateGeometry(); - // the blend face may have custom eye meshes if (!_faceModel.getEyePositions(_leftEyePosition, _rightEyePosition)) { _leftEyePosition = _rightEyePosition = getPosition(); } } -void Head::calculateGeometry() { - //generate orientation directions - glm::quat orientation = getOrientation(); - glm::vec3 right = orientation * IDENTITY_RIGHT; - glm::vec3 up = orientation * IDENTITY_UP; - glm::vec3 front = orientation * IDENTITY_FRONT; - - float scale = _scale * BODY_BALL_RADIUS_HEAD_BASE; - - //calculate the eye positions - _leftEyePosition = _position - - right * scale * EYE_RIGHT_OFFSET - + up * scale * EYE_UP_OFFSET - + front * scale * EYE_FRONT_OFFSET; - _rightEyePosition = _position - + right * scale * EYE_RIGHT_OFFSET - + up * scale * EYE_UP_OFFSET - + front * scale * EYE_FRONT_OFFSET; - - _eyePosition = _rightEyePosition - right * scale * EYE_RIGHT_OFFSET; - - //calculate the eyebrow positions - _leftEyeBrowPosition = _leftEyePosition; - _rightEyeBrowPosition = _rightEyePosition; - - //calculate the ear positions - _leftEarPosition = _position - right * scale * EAR_RIGHT_OFFSET; - _rightEarPosition = _position + right * scale * EAR_RIGHT_OFFSET; - - //calculate the mouth position - _mouthPosition = _position + up * scale * MOUTH_UP_OFFSET + front * scale; - - // calculate nose geometry - glm::vec3 noseBase = _position + front * 0.95f * scale + up * NOSE_UP_OFFSET * scale; - - _nose.top = noseBase + up * _scale * NOSE_HEIGHT; - _nose.left = noseBase - right * _scale * NOSE_WIDTH * ONE_HALF; - _nose.right = noseBase + right * _scale * NOSE_WIDTH * ONE_HALF; - _nose.front = noseBase + front * _scale * NOSE_LENGTH - + up * _scale * NOSE_UPTURN; -} - -void Head::render(float alpha, bool renderAvatarBalls) { - _renderAlpha = alpha; - - bool lookatVectorsVisible = _renderLookatVectors; - if (renderAvatarBalls) { - glEnable(GL_DEPTH_TEST); - glEnable(GL_RESCALE_NORMAL); - - renderHeadSphere(); - renderEyeBalls(); - renderEars(); - renderMouth(); - renderNose(); - renderEyeBrows(); - - } else { - lookatVectorsVisible &= _faceModel.render(alpha); - } - - if (lookatVectorsVisible) { +void Head::render(float alpha) { + if (_faceModel.render(alpha) && _renderLookatVectors) { renderLookatVectors(_leftEyePosition, _rightEyePosition, _lookAtPosition); } } @@ -325,301 +256,6 @@ glm::vec3 Head::getScalePivot() const { return _faceModel.isActive() ? _faceModel.getTranslation() : _position; } -void Head::renderHeadSphere() { - glPushMatrix(); - glTranslatef(_position.x, _position.y, _position.z); //translate to head position - glScalef(_scale * BODY_BALL_RADIUS_HEAD_BASE, - _scale * BODY_BALL_RADIUS_HEAD_BASE, - _scale * BODY_BALL_RADIUS_HEAD_BASE); //scale to head size - glColor4f(_skinColor.x, _skinColor.y, _skinColor.z, _renderAlpha); - glutSolidSphere(1, 30, 30); - glPopMatrix(); -} - -void Head::renderEars() { - - glPushMatrix(); - glColor4f(_skinColor.x, _skinColor.y, _skinColor.z, _renderAlpha); - glTranslatef(_leftEarPosition.x, _leftEarPosition.y, _leftEarPosition.z); - glutSolidSphere(_scale * 0.02, 30, 30); - glPopMatrix(); - - glPushMatrix(); - glColor4f(_skinColor.x, _skinColor.y, _skinColor.z, _renderAlpha); - glTranslatef(_rightEarPosition.x, _rightEarPosition.y, _rightEarPosition.z); - glutSolidSphere(_scale * 0.02, 30, 30); - glPopMatrix(); -} - - -void Head::renderNose() { - - glm::vec3 bridgeVector = _nose.front - _nose.top; - glm::vec3 leftvector = _nose.front - _nose.left; - glm::vec3 rightvector = _nose.front - _nose.right; - - glm::vec3 leftNormal (glm::normalize(glm::cross(leftvector, bridgeVector))); - glm::vec3 rightNormal (glm::normalize(glm::cross(bridgeVector, rightvector ))); - glm::vec3 bottomNormal(glm::normalize(glm::cross(rightvector, leftvector ))); - - glColor4f(_skinColor.x, _skinColor.y, _skinColor.z, _renderAlpha); - - glBegin(GL_TRIANGLES); - - glNormal3f(leftNormal.x, leftNormal.y, leftNormal.z); - glVertex3f(_nose.top.x, _nose.top.y, _nose.top.z ); - glVertex3f(_nose.left.x, _nose.left.y, _nose.left.z ); - glVertex3f(_nose.front.x, _nose.front.y, _nose.front.z ); - - glNormal3f(rightNormal.x, rightNormal.y, rightNormal.z); - glVertex3f(_nose.top.x, _nose.top.y, _nose.top.z ); - glVertex3f(_nose.right.x, _nose.right.y, _nose.right.z ); - glVertex3f(_nose.front.x, _nose.front.y, _nose.front.z ); - - glNormal3f(bottomNormal.x, bottomNormal.y, bottomNormal.z); - glVertex3f(_nose.left.x, _nose.left.y, _nose.left.z ); - glVertex3f(_nose.right.x, _nose.right.y, _nose.right.z ); - glVertex3f(_nose.front.x, _nose.front.y, _nose.front.z ); - - glEnd(); -} - - - - -void Head::renderMouth() { - - float s = sqrt(_averageLoudness); - - glm::quat orientation = getOrientation(); - glm::vec3 right = orientation * IDENTITY_RIGHT; - glm::vec3 up = orientation * IDENTITY_UP; - glm::vec3 front = orientation * IDENTITY_FRONT; - - glm::vec3 r = right * _scale * BODY_BALL_RADIUS_HEAD_BASE * (0.30f + s * 0.0014f ); - glm::vec3 u = up * _scale * BODY_BALL_RADIUS_HEAD_BASE * (0.05f + s * 0.0040f ); - glm::vec3 f = front * _scale * BODY_BALL_RADIUS_HEAD_BASE * 0.09f; - - glm::vec3 middle = _mouthPosition; - glm::vec3 leftCorner = _mouthPosition - r * 1.0f; - glm::vec3 rightCorner = _mouthPosition + r * 1.0f; - glm::vec3 leftTop = _mouthPosition - r * 0.4f + u * 0.7f + f; - glm::vec3 rightTop = _mouthPosition + r * 0.4f + u * 0.7f + f; - glm::vec3 leftBottom = _mouthPosition - r * 0.4f - u * 1.0f + f * 0.7f; - glm::vec3 rightBottom = _mouthPosition + r * 0.4f - u * 1.0f + f * 0.7f; - - // constrain all mouth vertices to a sphere slightly larger than the head... - const float MOUTH_OFFSET_OFF_FACE = 0.003f; - - float constrainedRadius = _scale * BODY_BALL_RADIUS_HEAD_BASE + MOUTH_OFFSET_OFF_FACE; - middle = _position + glm::normalize(middle - _position) * constrainedRadius; - leftCorner = _position + glm::normalize(leftCorner - _position) * constrainedRadius; - rightCorner = _position + glm::normalize(rightCorner - _position) * constrainedRadius; - leftTop = _position + glm::normalize(leftTop - _position) * constrainedRadius; - rightTop = _position + glm::normalize(rightTop - _position) * constrainedRadius; - leftBottom = _position + glm::normalize(leftBottom - _position) * constrainedRadius; - rightBottom = _position + glm::normalize(rightBottom - _position) * constrainedRadius; - - glColor3f(0.2f, 0.0f, 0.0f); - - glBegin(GL_TRIANGLES); - glVertex3f(leftCorner.x, leftCorner.y, leftCorner.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(leftTop.x, leftTop.y, leftTop.z ); - glVertex3f(leftTop.x, leftTop.y, leftTop.z ); - glVertex3f(middle.x, middle.y, middle.z ); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(leftTop.x, leftTop.y, leftTop.z ); - glVertex3f(middle.x, middle.y, middle.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(middle.x, middle.y, middle.z ); - glVertex3f(rightBottom.x, rightBottom.y, rightBottom.z); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(middle.x, middle.y, middle.z ); - glVertex3f(rightBottom.x, rightBottom.y, rightBottom.z); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(rightBottom.x, rightBottom.y, rightBottom.z); - glVertex3f(rightCorner.x, rightCorner.y, rightCorner.z); - glEnd(); -} - -void Head::renderEyeBrows() { - - float height = _scale * BODY_BALL_RADIUS_HEAD_BASE * 0.3f + _browAudioLift; - float length = _scale * BODY_BALL_RADIUS_HEAD_BASE * 0.2f; - float width = _scale * BODY_BALL_RADIUS_HEAD_BASE * 0.07f; - - glColor3f(0.3f, 0.25f, 0.2f); - - glm::vec3 leftCorner = _leftEyePosition; - glm::vec3 rightCorner = _leftEyePosition; - glm::vec3 leftTop = _leftEyePosition; - glm::vec3 rightTop = _leftEyePosition; - glm::vec3 leftBottom = _leftEyePosition; - glm::vec3 rightBottom = _leftEyePosition; - - glm::quat orientation = getOrientation(); - glm::vec3 right = orientation * IDENTITY_RIGHT; - glm::vec3 up = orientation * IDENTITY_UP; - glm::vec3 front = orientation * IDENTITY_FRONT; - - glm::vec3 r = right * length; - glm::vec3 u = up * height; - glm::vec3 t = up * (height + width); - glm::vec3 f = front * _scale * BODY_BALL_RADIUS_HEAD_BASE * -0.1f; - - for (int i = 0; i < 2; i++) { - - if ( i == 1 ) { - leftCorner = rightCorner = leftTop = rightTop = leftBottom = rightBottom = _rightEyePosition; - } - - leftCorner -= r * 1.0f; - rightCorner += r * 1.0f; - leftTop -= r * 0.4f; - rightTop += r * 0.4f; - leftBottom -= r * 0.4f; - rightBottom += r * 0.4f; - - leftCorner += u + f; - rightCorner += u + f; - leftTop += t + f; - rightTop += t + f; - leftBottom += u + f; - rightBottom += u + f; - - glBegin(GL_TRIANGLES); - - glVertex3f(leftCorner.x, leftCorner.y, leftCorner.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(leftTop.x, leftTop.y, leftTop.z ); - glVertex3f(leftTop.x, leftTop.y, leftTop.z ); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(leftBottom.x, leftBottom.y, leftBottom.z ); - glVertex3f(rightBottom.x, rightBottom.y, rightBottom.z); - glVertex3f(rightTop.x, rightTop.y, rightTop.z ); - glVertex3f(rightBottom.x, rightBottom.y, rightBottom.z); - glVertex3f(rightCorner.x, rightCorner.y, rightCorner.z); - - glEnd(); - } - } - - -void Head::renderEyeBalls() { - - // render white ball of left eyeball - glPushMatrix(); - glColor3fv(EYEBALL_COLOR); - glTranslatef(_leftEyePosition.x, _leftEyePosition.y, _leftEyePosition.z); - glutSolidSphere(_scale * EYEBALL_RADIUS, 30, 30); - glPopMatrix(); - - //render white ball of right eyeball - glPushMatrix(); - glColor3fv(EYEBALL_COLOR); - glTranslatef(_rightEyePosition.x, _rightEyePosition.y, _rightEyePosition.z); - glutSolidSphere(_scale * EYEBALL_RADIUS, 30, 30); - glPopMatrix(); - - _irisProgram.bind(); - - _dilatedIrisTexture = _irisTexture->getDilatedTexture(_pupilDilation); - glBindTexture(GL_TEXTURE_2D, _dilatedIrisTexture->getID()); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - - glEnable(GL_TEXTURE_2D); - - // render left iris - glm::quat leftIrisRotation; - glPushMatrix(); { - glTranslatef(_leftEyePosition.x, _leftEyePosition.y, _leftEyePosition.z); //translate to eyeball position - - //rotate the eyeball to aim towards the lookat position - leftIrisRotation = getEyeRotation(_leftEyePosition); - glm::vec3 rotationAxis = glm::axis(leftIrisRotation); - glRotatef(glm::angle(leftIrisRotation), rotationAxis.x, rotationAxis.y, rotationAxis.z); - glTranslatef(0.0f, 0.0f, -_scale * IRIS_PROTRUSION); - glScalef(_scale * IRIS_RADIUS * 2.0f, - _scale * IRIS_RADIUS * 2.0f, - _scale * IRIS_RADIUS); // flatten the iris - - // this ugliness is simply to invert the model transform and get the eye position in model space - _irisProgram.setUniform(_eyePositionLocation, (glm::inverse(leftIrisRotation) * - (Application::getInstance()->getCamera()->getPosition() - _leftEyePosition) + - glm::vec3(0.0f, 0.0f, _scale * IRIS_PROTRUSION)) * glm::vec3(1.0f / (_scale * IRIS_RADIUS * 2.0f), - 1.0f / (_scale * IRIS_RADIUS * 2.0f), 1.0f / (_scale * IRIS_RADIUS))); - - glutSolidSphere(0.5f, 15, 15); - } - glPopMatrix(); - - // render right iris - glm::quat rightIrisRotation; - glPushMatrix(); { - glTranslatef(_rightEyePosition.x, _rightEyePosition.y, _rightEyePosition.z); //translate to eyeball position - - //rotate the eyeball to aim towards the lookat position - rightIrisRotation = getEyeRotation(_rightEyePosition); - glm::vec3 rotationAxis = glm::axis(rightIrisRotation); - glRotatef(glm::angle(rightIrisRotation), rotationAxis.x, rotationAxis.y, rotationAxis.z); - glTranslatef(0.0f, 0.0f, -_scale * IRIS_PROTRUSION); - glScalef(_scale * IRIS_RADIUS * 2.0f, - _scale * IRIS_RADIUS * 2.0f, - _scale * IRIS_RADIUS); // flatten the iris - - // this ugliness is simply to invert the model transform and get the eye position in model space - _irisProgram.setUniform(_eyePositionLocation, (glm::inverse(rightIrisRotation) * - (Application::getInstance()->getCamera()->getPosition() - _rightEyePosition) + - glm::vec3(0.0f, 0.0f, _scale * IRIS_PROTRUSION)) * glm::vec3(1.0f / (_scale * IRIS_RADIUS * 2.0f), - 1.0f / (_scale * IRIS_RADIUS * 2.0f), 1.0f / (_scale * IRIS_RADIUS))); - - glutSolidSphere(0.5f, 15, 15); - } - glPopMatrix(); - - _irisProgram.release(); - glBindTexture(GL_TEXTURE_2D, 0); - glDisable(GL_TEXTURE_2D); - - glEnable(GL_RESCALE_NORMAL); - glColor4f(_skinColor.x, _skinColor.y, _skinColor.z, _renderAlpha); - - // left eyelid - glPushMatrix(); { - glTranslatef(_leftEyePosition.x, _leftEyePosition.y, _leftEyePosition.z); //translate to eyeball position - glm::vec3 rotationAxis = glm::axis(leftIrisRotation); - glRotatef(glm::angle(leftIrisRotation), rotationAxis.x, rotationAxis.y, rotationAxis.z); - glScalef(_scale * EYELID_RADIUS, _scale * EYELID_RADIUS, _scale * EYELID_RADIUS); - float angle = -67.5f - 50.0f * _leftEyeBlink; - glRotatef(angle, 1, 0, 0); - Application::getInstance()->getGeometryCache()->renderHemisphere(15, 10); - glRotatef(glm::mix(-angle, 180.0f, max(0.0f, _leftEyeBlink)), 1, 0, 0); - Application::getInstance()->getGeometryCache()->renderHemisphere(15, 10); - } - glPopMatrix(); - - // right eyelid - glPushMatrix(); { - glTranslatef(_rightEyePosition.x, _rightEyePosition.y, _rightEyePosition.z); //translate to eyeball position - glm::vec3 rotationAxis = glm::axis(rightIrisRotation); - glRotatef(glm::angle(rightIrisRotation), rotationAxis.x, rotationAxis.y, rotationAxis.z); - glScalef(_scale * EYELID_RADIUS, _scale * EYELID_RADIUS, _scale * EYELID_RADIUS); - float angle = -67.5f - 50.0f * _rightEyeBlink; - glRotatef(angle, 1, 0, 0); - Application::getInstance()->getGeometryCache()->renderHemisphere(15, 10); - glRotatef(glm::mix(-angle, 180.0f, max(0.0f, _rightEyeBlink)), 1, 0, 0); - Application::getInstance()->getGeometryCache()->renderHemisphere(15, 10); - } - glPopMatrix(); - - glDisable(GL_RESCALE_NORMAL); -} - void Head::renderLookatVectors(glm::vec3 leftEyePosition, glm::vec3 rightEyePosition, glm::vec3 lookatPosition) { Application::getInstance()->getGlowEffect()->begin(); diff --git a/interface/src/avatar/Head.h b/interface/src/avatar/Head.h index 519174ca1d..e186343087 100644 --- a/interface/src/avatar/Head.h +++ b/interface/src/avatar/Head.h @@ -38,12 +38,11 @@ public: void init(); void reset(); void simulate(float deltaTime, bool isMine); - void render(float alpha, bool renderAvatarBalls); + void render(float alpha); void setScale(float scale); void setPosition(glm::vec3 position) { _position = position; } void setBodyRotation(glm::vec3 bodyRotation) { _bodyRotation = bodyRotation; } void setGravity(glm::vec3 gravity) { _gravity = gravity; } - void setSkinColor(glm::vec3 skinColor) { _skinColor = skinColor; } void setSpringScale(float returnSpringScale) { _returnSpringScale = returnSpringScale; } void setAverageLoudness(float averageLoudness) { _averageLoudness = averageLoudness; } void setReturnToCenter (bool returnHeadToCenter) { _returnHeadToCenter = returnHeadToCenter; } @@ -59,7 +58,6 @@ public: float getScale() const { return _scale; } glm::vec3 getPosition() const { return _position; } - const glm::vec3& getSkinColor() const { return _skinColor; } const glm::vec3& getEyePosition() const { return _eyePosition; } const glm::vec3& getSaccade() const { return _saccade; } glm::vec3 getRightDirection() const { return getOrientation() * IDENTITY_RIGHT; } @@ -85,27 +83,12 @@ private: Head(const Head&); Head& operator= (const Head&); - struct Nose { - glm::vec3 top; - glm::vec3 left; - glm::vec3 right; - glm::vec3 front; - }; - - float _renderAlpha; bool _returnHeadToCenter; - glm::vec3 _skinColor; glm::vec3 _position; glm::vec3 _rotation; glm::vec3 _leftEyePosition; glm::vec3 _rightEyePosition; glm::vec3 _eyePosition; - glm::vec3 _leftEyeBrowPosition; - glm::vec3 _rightEyeBrowPosition; - glm::vec3 _leftEarPosition; - glm::vec3 _rightEarPosition; - glm::vec3 _mouthPosition; - Nose _nose; float _scale; glm::vec3 _gravity; float _lastLoudness; @@ -114,7 +97,6 @@ private: glm::vec3 _bodyRotation; glm::vec3 _angularVelocity; bool _renderLookatVectors; - //BendyLine _hairTuft[NUM_HAIR_TUFTS]; glm::vec3 _saccade; glm::vec3 _saccadeTarget; float _leftEyeBlinkVelocity; @@ -133,14 +115,7 @@ private: static int _eyePositionLocation; // private methods - void renderHeadSphere(); - void renderEyeBalls(); - void renderEyeBrows(); - void renderEars(); - void renderNose(); - void renderMouth(); void renderLookatVectors(glm::vec3 leftEyePosition, glm::vec3 rightEyePosition, glm::vec3 lookatPosition); - void calculateGeometry(); friend class FaceModel; }; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index bf4737a1b4..02e89c9df5 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -30,7 +30,6 @@ const glm::vec3 DEFAULT_UP_DIRECTION(0.0f, 1.0f, 0.0f); const float YAW_MAG = 500.0f; const float PITCH_MAG = 100.0f; const float COLLISION_RADIUS_SCALAR = 1.2f; // pertains to avatar-to-avatar collisions -const float COLLISION_BALL_FORCE = 200.0f; // pertains to avatar-to-avatar collisions const float COLLISION_BODY_FORCE = 30.0f; // pertains to avatar-to-avatar collisions const float COLLISION_RADIUS_SCALE = 0.125f; const float MOUSE_RAY_TOUCH_RANGE = 0.01f; @@ -262,7 +261,6 @@ void MyAvatar::simulate(float deltaTime, Transmitter* transmitter) { } _head.setPosition(headPosition); _head.setScale(_scale); - _head.setSkinColor(glm::vec3(SKIN_COLOR[0], SKIN_COLOR[1], SKIN_COLOR[2])); _head.simulate(deltaTime, true); // Zero thrust out now that we've added it to velocity in this frame @@ -510,7 +508,7 @@ void MyAvatar::renderBody(bool forceRenderHead) { const float RENDER_HEAD_CUTOFF_DISTANCE = 0.10f; Camera* myCamera = Application::getInstance()->getCamera(); if (forceRenderHead || (glm::length(myCamera->getPosition() - _head.calculateAverageEyePosition()) > RENDER_HEAD_CUTOFF_DISTANCE)) { - _head.render(1.0f, false); + _head.render(1.0f); } _hand.render(true); } diff --git a/interface/src/avatar/SkeletonModel.cpp b/interface/src/avatar/SkeletonModel.cpp index ae16bd81f8..60ba470c5b 100644 --- a/interface/src/avatar/SkeletonModel.cpp +++ b/interface/src/avatar/SkeletonModel.cpp @@ -68,46 +68,6 @@ bool SkeletonModel::render(float alpha) { return false; } - // only render the balls and sticks if the skeleton has no meshes - if (_meshStates.isEmpty()) { - const FBXGeometry& geometry = _geometry->getFBXGeometry(); - - glm::vec3 skinColor, darkSkinColor; - _owningAvatar->getSkinColors(skinColor, darkSkinColor); - - for (int i = 0; i < _jointStates.size(); i++) { - glPushMatrix(); - - glm::vec3 position; - getJointPosition(i, position); - Application::getInstance()->loadTranslatedViewMatrix(position); - - glm::quat rotation; - getJointRotation(i, rotation); - glm::vec3 axis = glm::axis(rotation); - glRotatef(glm::angle(rotation), axis.x, axis.y, axis.z); - - glColor4f(skinColor.r, skinColor.g, skinColor.b, alpha); - const float BALL_RADIUS = 0.005f; - const int BALL_SUBDIVISIONS = 10; - glutSolidSphere(BALL_RADIUS * _owningAvatar->getScale(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS); - - glPopMatrix(); - - int parentIndex = geometry.joints[i].parentIndex; - if (parentIndex == -1) { - continue; - } - glColor4f(darkSkinColor.r, darkSkinColor.g, darkSkinColor.b, alpha); - - glm::vec3 parentPosition; - getJointPosition(parentIndex, parentPosition); - const float STICK_RADIUS = BALL_RADIUS * 0.1f; - Avatar::renderJointConnectingCone(parentPosition, position, STICK_RADIUS * _owningAvatar->getScale(), - STICK_RADIUS * _owningAvatar->getScale()); - } - } - Model::render(alpha); if (Menu::getInstance()->isOptionChecked(MenuOption::CollisionProxies)) { From 1cfbfe6611d3bb134264101467a05bef2bd20b05 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Thu, 16 Jan 2014 14:54:08 -0800 Subject: [PATCH 04/13] fix 3d mode switch on/off issue --- interface/src/Application.cpp | 5 +++++ interface/src/Application.h | 2 ++ interface/src/Menu.cpp | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 56632d1cd9..8812a3c49d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1474,6 +1474,11 @@ void Application::setFullscreen(bool fullscreen) { (_window->windowState() & ~Qt::WindowFullScreen)); } +void Application::setEnable3DTVMode(bool enable3DTVMode) { + resizeGL(_glWidget->width(),_glWidget->height()); +} + + void Application::setRenderVoxels(bool voxelRender) { _voxelEditSender.setShouldSend(voxelRender); if (!voxelRender) { diff --git a/interface/src/Application.h b/interface/src/Application.h index c9c7910368..7e78cced4c 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -232,6 +232,8 @@ private slots: void terminate(); void setFullscreen(bool fullscreen); + void setEnable3DTVMode(bool enable3DTVMode); + void renderThrustAtVoxel(const glm::vec3& thrust); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 8c91bfb2af..b2583d7c51 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -232,7 +232,10 @@ Menu::Menu() : addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FirstPerson, Qt::Key_P, true); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Mirror, Qt::SHIFT | Qt::Key_H); addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FullscreenMirror, Qt::Key_H); - addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Enable3DTVMode, 0, false); + addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Enable3DTVMode, 0, + false, + appInstance, + SLOT(setEnable3DTVMode(bool))); QMenu* avatarSizeMenu = viewMenu->addMenu("Avatar Size"); From 0ddf9520ddaba0efaaea0e6480243e754061e3a7 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 16 Jan 2014 14:55:03 -0800 Subject: [PATCH 05/13] if audio is muted don't loopback local audio, fixes #1561 --- interface/src/Audio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 600617b2e7..c57b057d63 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -297,7 +297,7 @@ void Audio::handleAudioInput() { QByteArray inputByteArray = _inputDevice->readAll(); - if (Menu::getInstance()->isOptionChecked(MenuOption::EchoLocalAudio)) { + if (Menu::getInstance()->isOptionChecked(MenuOption::EchoLocalAudio) && !_muted) { // if this person wants local loopback add that to the locally injected audio if (!_loopbackOutputDevice) { From 2e3c597d401cf7e9b8a88aa46abf3f31c8c21667 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 15:01:24 -0800 Subject: [PATCH 06/13] Scooping out more head bits. --- interface/src/avatar/Head.cpp | 48 ++--------------------------------- interface/src/avatar/Head.h | 9 ------- 2 files changed, 2 insertions(+), 55 deletions(-) diff --git a/interface/src/avatar/Head.cpp b/interface/src/avatar/Head.cpp index 08f2b9158f..78e93996c8 100644 --- a/interface/src/avatar/Head.cpp +++ b/interface/src/avatar/Head.cpp @@ -9,45 +9,13 @@ #include #include "Application.h" -#include "Menu.h" #include "Avatar.h" #include "Head.h" +#include "Menu.h" #include "Util.h" -#include "renderer/ProgramObject.h" using namespace std; -const float EYE_RIGHT_OFFSET = 0.27f; -const float EYE_UP_OFFSET = 0.36f; -const float EYE_FRONT_OFFSET = 0.8f; -const float EAR_RIGHT_OFFSET = 1.0f; -const float MOUTH_UP_OFFSET = -0.3f; -const float HEAD_MOTION_DECAY = 0.1f; -const float MINIMUM_EYE_ROTATION_DOT = 0.5f; // based on a dot product: 1.0 is straight ahead, 0.0 is 90 degrees off -const float EYEBALL_RADIUS = 0.017f; -const float EYELID_RADIUS = 0.019f; -const float EYEBALL_COLOR[3] = { 0.9f, 0.9f, 0.8f }; - -const float HAIR_SPRING_FORCE = 15.0f; -const float HAIR_TORQUE_FORCE = 0.2f; -const float HAIR_GRAVITY_FORCE = 0.001f; -const float HAIR_DRAG = 10.0f; - -const float HAIR_LENGTH = 0.09f; -const float HAIR_THICKNESS = 0.03f; -const float NOSE_LENGTH = 0.025f; -const float NOSE_WIDTH = 0.03f; -const float NOSE_HEIGHT = 0.034f; -const float NOSE_UP_OFFSET = -0.07f; -const float NOSE_UPTURN = 0.005f; -const float IRIS_RADIUS = 0.007f; -const float IRIS_PROTRUSION = 0.0145f; -const char IRIS_TEXTURE_FILENAME[] = "resources/images/iris.png"; - -ProgramObject Head::_irisProgram; -QSharedPointer Head::_irisTexture; -int Head::_eyePositionLocation; - Head::Head(Avatar* owningAvatar) : HeadData((AvatarData*)owningAvatar), yawRate(0.0f), @@ -61,7 +29,6 @@ Head::Head(Avatar* owningAvatar) : _gravity(0.0f, -1.0f, 0.0f), _lastLoudness(0.0f), _audioAttack(0.0f), - _returnSpringScale(1.0f), _bodyRotation(0.0f, 0.0f, 0.0f), _angularVelocity(0,0,0), _renderLookatVectors(false), @@ -80,18 +47,6 @@ Head::Head(Avatar* owningAvatar) : } void Head::init() { - if (!_irisProgram.isLinked()) { - switchToResourcesParentIfRequired(); - _irisProgram.addShaderFromSourceFile(QGLShader::Vertex, "resources/shaders/iris.vert"); - _irisProgram.addShaderFromSourceFile(QGLShader::Fragment, "resources/shaders/iris.frag"); - _irisProgram.link(); - - _irisProgram.setUniformValue("texture", 0); - _eyePositionLocation = _irisProgram.uniformLocation("eyePosition"); - - _irisTexture = Application::getInstance()->getTextureCache()->getTexture(QUrl::fromLocalFile(IRIS_TEXTURE_FILENAME), - false, true).staticCast(); - } _faceModel.init(); } @@ -215,6 +170,7 @@ void Head::simulate(float deltaTime, bool isMine) { if (!_faceModel.getEyePositions(_leftEyePosition, _rightEyePosition)) { _leftEyePosition = _rightEyePosition = getPosition(); } + _eyePosition = calculateAverageEyePosition(); } void Head::render(float alpha) { diff --git a/interface/src/avatar/Head.h b/interface/src/avatar/Head.h index e186343087..5d9f9d9bbd 100644 --- a/interface/src/avatar/Head.h +++ b/interface/src/avatar/Head.h @@ -20,7 +20,6 @@ #include "FaceModel.h" #include "InterfaceConfig.h" #include "world.h" -#include "renderer/TextureCache.h" enum eyeContactTargets { LEFT_EYE, @@ -43,7 +42,6 @@ public: void setPosition(glm::vec3 position) { _position = position; } void setBodyRotation(glm::vec3 bodyRotation) { _bodyRotation = bodyRotation; } void setGravity(glm::vec3 gravity) { _gravity = gravity; } - void setSpringScale(float returnSpringScale) { _returnSpringScale = returnSpringScale; } void setAverageLoudness(float averageLoudness) { _averageLoudness = averageLoudness; } void setReturnToCenter (bool returnHeadToCenter) { _returnHeadToCenter = returnHeadToCenter; } void setRenderLookatVectors(bool onOff) { _renderLookatVectors = onOff; } @@ -93,7 +91,6 @@ private: glm::vec3 _gravity; float _lastLoudness; float _audioAttack; - float _returnSpringScale; //strength of return springs glm::vec3 _bodyRotation; glm::vec3 _angularVelocity; bool _renderLookatVectors; @@ -107,12 +104,6 @@ private: float _cameraYaw; bool _isCameraMoving; FaceModel _faceModel; - - QSharedPointer _dilatedIrisTexture; - - static ProgramObject _irisProgram; - static QSharedPointer _irisTexture; - static int _eyePositionLocation; // private methods void renderLookatVectors(glm::vec3 leftEyePosition, glm::vec3 rightEyePosition, glm::vec3 lookatPosition); From a16d38ced65f39a1e74c3df8de53c0ea23867dd8 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 15:07:09 -0800 Subject: [PATCH 07/13] Removed joints from avatar state messages. --- assignment-client/src/avatars/AvatarMixer.cpp | 3 +-- libraries/avatars/src/AvatarData.cpp | 17 ----------------- libraries/avatars/src/AvatarData.h | 11 ----------- libraries/shared/src/PacketHeaders.cpp | 5 +---- libraries/shared/src/PacketHeaders.h | 1 - 5 files changed, 2 insertions(+), 35 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 9c6d2f4714..e5e3ea2fcc 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -137,8 +137,7 @@ void AvatarMixer::processDatagram(const QByteArray& dataByteArray, const HifiSoc } } case PACKET_TYPE_KILL_NODE: - case PACKET_TYPE_AVATAR_URLS: - case PACKET_TYPE_AVATAR_FACE_VIDEO: { + case PACKET_TYPE_AVATAR_URLS: { QUuid nodeUUID = QUuid::fromRfc4122(dataByteArray.mid(numBytesForPacketHeader((unsigned char*) dataByteArray.data()), NUM_BYTES_RFC4122_UUID)); // let everyone else know about the update diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index f20d35e4c8..8cd2f0dffc 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -146,13 +146,6 @@ int AvatarData::getBroadcastData(unsigned char* destinationBuffer) { // leap hand data destinationBuffer += _handData->encodeRemoteData(destinationBuffer); - - // skeleton joints - *destinationBuffer++ = (unsigned char)_joints.size(); - for (vector::iterator it = _joints.begin(); it != _joints.end(); it++) { - *destinationBuffer++ = (unsigned char)it->jointID; - destinationBuffer += packOrientationQuatToBytes(destinationBuffer, it->rotation); - } return destinationBuffer - bufferStart; } @@ -273,16 +266,6 @@ int AvatarData::parseData(unsigned char* sourceBuffer, int numBytes) { // check passed, bytes match sourceBuffer += _handData->decodeRemoteData(sourceBuffer); } - - // skeleton joints - if (sourceBuffer - startPosition < numBytes) { - // check passed, bytes match - _joints.resize(*sourceBuffer++); - for (vector::iterator it = _joints.begin(); it != _joints.end(); it++) { - it->jointID = *sourceBuffer++; - sourceBuffer += unpackOrientationQuatFromBytes(sourceBuffer, it->rotation); - } - } return sourceBuffer - startPosition; } diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 923d5510b0..c3ca80737d 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -60,8 +60,6 @@ enum KeyState const glm::vec3 vec3Zero(0.0f); -class JointData; - class AvatarData : public NodeData { Q_OBJECT @@ -161,8 +159,6 @@ protected: bool _isChatCirclingEnabled; - std::vector _joints; - HeadData* _headData; HandData* _handData; @@ -172,11 +168,4 @@ private: AvatarData& operator= (const AvatarData&); }; -class JointData { -public: - - int jointID; - glm::quat rotation; -}; - #endif /* defined(__hifi__AvatarData__) */ diff --git a/libraries/shared/src/PacketHeaders.cpp b/libraries/shared/src/PacketHeaders.cpp index 973738280f..0d468f0e1d 100644 --- a/libraries/shared/src/PacketHeaders.cpp +++ b/libraries/shared/src/PacketHeaders.cpp @@ -20,13 +20,10 @@ PACKET_VERSION versionForPacketType(PACKET_TYPE type) { return 2; case PACKET_TYPE_HEAD_DATA: - return 13; + return 14; case PACKET_TYPE_AVATAR_URLS: return 2; - - case PACKET_TYPE_AVATAR_FACE_VIDEO: - return 2; case PACKET_TYPE_OCTREE_STATS: return 2; diff --git a/libraries/shared/src/PacketHeaders.h b/libraries/shared/src/PacketHeaders.h index d1a2b501f6..f4fe5cd0a8 100644 --- a/libraries/shared/src/PacketHeaders.h +++ b/libraries/shared/src/PacketHeaders.h @@ -26,7 +26,6 @@ const PACKET_TYPE PACKET_TYPE_MICROPHONE_AUDIO_NO_ECHO = 'M'; const PACKET_TYPE PACKET_TYPE_MICROPHONE_AUDIO_WITH_ECHO = 'm'; const PACKET_TYPE PACKET_TYPE_BULK_AVATAR_DATA = 'X'; const PACKET_TYPE PACKET_TYPE_AVATAR_URLS = 'U'; -const PACKET_TYPE PACKET_TYPE_AVATAR_FACE_VIDEO = 'F'; const PACKET_TYPE PACKET_TYPE_TRANSMITTER_DATA_V2 = 'T'; const PACKET_TYPE PACKET_TYPE_ENVIRONMENT_DATA = 'e'; const PACKET_TYPE PACKET_TYPE_DOMAIN_LIST_REQUEST = 'L'; From 1b891cb326e3919ac99da4a7071e5705c8e44941 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 15:16:19 -0800 Subject: [PATCH 08/13] Removed unused resources. --- interface/resources/images/iris.png | Bin 72865 -> 0 bytes interface/resources/shaders/face.frag | 17 ---- interface/resources/shaders/face.vert | 32 ------- .../resources/shaders/face_textured.frag | 83 ------------------ .../resources/shaders/face_textured.vert | 38 -------- interface/resources/shaders/iris.frag | 24 ----- interface/resources/shaders/iris.vert | 36 -------- 7 files changed, 230 deletions(-) delete mode 100644 interface/resources/images/iris.png delete mode 100644 interface/resources/shaders/face.frag delete mode 100644 interface/resources/shaders/face.vert delete mode 100644 interface/resources/shaders/face_textured.frag delete mode 100644 interface/resources/shaders/face_textured.vert delete mode 100644 interface/resources/shaders/iris.frag delete mode 100644 interface/resources/shaders/iris.vert diff --git a/interface/resources/images/iris.png b/interface/resources/images/iris.png deleted file mode 100644 index 0e6251474e9f6c2ee7fd43803d419ae1b6e62aac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72865 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 diff --git a/interface/resources/shaders/face.frag b/interface/resources/shaders/face.frag deleted file mode 100644 index dbabc1250c..0000000000 --- a/interface/resources/shaders/face.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 120 - -// -// face.frag -// fragment shader -// -// Created by Andrzej Kapolka on 7/12/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the color texture -uniform sampler2D colorTexture; - -void main(void) { - // for now, just modulate color - gl_FragColor = gl_Color * texture2D(colorTexture, gl_TexCoord[0].st); -} diff --git a/interface/resources/shaders/face.vert b/interface/resources/shaders/face.vert deleted file mode 100644 index 018a85f524..0000000000 --- a/interface/resources/shaders/face.vert +++ /dev/null @@ -1,32 +0,0 @@ -#version 120 - -// -// face.vert -// vertex shader -// -// Created by Andrzej Kapolka on 7/12/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the lower left texture coordinate -uniform vec2 texCoordCorner; - -// the texture coordinate vector from left to right -uniform vec2 texCoordRight; - -// the texture coordinate vector from bottom to the top -uniform vec2 texCoordUp; - -// the depth texture -uniform sampler2D depthTexture; - -void main(void) { - gl_TexCoord[0] = vec4(texCoordCorner + gl_Vertex.x * texCoordRight + gl_Vertex.y * texCoordUp, 0.0, 1.0); - float depth = texture2D(depthTexture, gl_TexCoord[0].st).r; - - // set alpha to zero for invalid depth values - const float MIN_VISIBLE_DEPTH = 1.0 / 255.0; - const float MAX_VISIBLE_DEPTH = 254.0 / 255.0; - gl_FrontColor = vec4(1.0, 1.0, 1.0, step(MIN_VISIBLE_DEPTH, depth) * (1.0 - step(MAX_VISIBLE_DEPTH, depth))); - gl_Position = gl_ModelViewProjectionMatrix * vec4(0.5 - gl_Vertex.x, gl_Vertex.y - 0.5, depth - 0.5, 1.0); -} diff --git a/interface/resources/shaders/face_textured.frag b/interface/resources/shaders/face_textured.frag deleted file mode 100644 index 2170074e25..0000000000 --- a/interface/resources/shaders/face_textured.frag +++ /dev/null @@ -1,83 +0,0 @@ -#version 120 - -// -// face_textured.frag -// fragment shader -// -// Created by Andrzej Kapolka on 8/6/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the texture coordinate vector from left to right -uniform vec2 texCoordRight; - -// the texture coordinate vector from bottom to the top -uniform vec2 texCoordUp; - -// the permutation/normal texture -uniform sampler2D permutationNormalTexture; - -// the depth texture -uniform sampler2D depthTexture; - -// the position in model space -varying vec3 position; - -// returns the gradient at a single corner of our sampling cube -vec3 grad(vec3 location) { - float p1 = texture2D(permutationNormalTexture, vec2(location.x / 256.0, 0.25)).r; - float p2 = texture2D(permutationNormalTexture, vec2(p1 + location.y / 256.0, 0.25)).r; - return texture2D(permutationNormalTexture, vec2(p2 + location.z / 256.0, 0.75)).xyz * 2.0 - vec3(1.0, 1.0, 1.0); -} - -// returns the perlin noise value for the specified location -float perlin(vec3 location) { - vec3 floors = floor(location); - vec3 ceils = ceil(location); - vec3 fff = grad(floors); - vec3 ffc = grad(vec3(floors.x, floors.y, ceils.z)); - vec3 fcf = grad(vec3(floors.x, ceils.y, floors.z)); - vec3 fcc = grad(vec3(floors.x, ceils.y, ceils.z)); - vec3 cff = grad(vec3(ceils.x, floors.y, floors.z)); - vec3 cfc = grad(vec3(ceils.x, floors.y, ceils.z)); - vec3 ccf = grad(vec3(ceils.x, ceils.y, floors.z)); - vec3 ccc = grad(ceils); - vec3 ffracts = fract(location); - vec3 cfracts = ffracts - vec3(1.0, 1.0, 1.0); - vec3 params = ffracts*ffracts*(3.0 - 2.0*ffracts); - - float fffv = dot(fff, ffracts); - float ffcv = dot(ffc, vec3(ffracts.x, ffracts.y, cfracts.z)); - float fcfv = dot(fcf, vec3(ffracts.x, cfracts.y, ffracts.z)); - float fccv = dot(fcc, vec3(ffracts.x, cfracts.y, cfracts.z)); - float cffv = dot(cff, vec3(cfracts.x, ffracts.y, ffracts.z)); - float cfcv = dot(cfc, vec3(cfracts.x, ffracts.y, cfracts.z)); - float ccfv = dot(ccf, vec3(cfracts.x, cfracts.y, ffracts.z)); - float cccv = dot(ccc, cfracts); - - return mix( - mix(mix(fffv, cffv, params.x), mix(fcfv, ccfv, params.x), params.y), - mix(mix(ffcv, cfcv, params.x), mix(fccv, cccv, params.x), params.y), - params.z); -} - -void main(void) { - // compute normal from adjacent depth values - float left = texture2D(depthTexture, gl_TexCoord[0].st - texCoordRight * 0.01).r; - float right = texture2D(depthTexture, gl_TexCoord[0].st + texCoordRight * 0.01).r; - float bottom = texture2D(depthTexture, gl_TexCoord[0].st - texCoordUp * 0.01).r; - float top = texture2D(depthTexture, gl_TexCoord[0].st + texCoordUp * 0.01).r; - vec3 normal = normalize(gl_NormalMatrix * vec3(left - right, top - bottom, -0.05)); - - // compute the specular component (sans exponent) based on the normal OpenGL lighting model - float specular = max(0.0, dot(normalize(gl_LightSource[0].position.xyz + vec3(0.0, 0.0, 1.0)), normal)); - - // the base color is a subtle marble texture produced by modulating the phase of a sine wave by perlin noise - vec3 color = mix(vec3(1.0, 1.0, 1.0), vec3(0.75, 0.75, 0.75), - sin(dot(position, vec3(25.0, 25.0, 25.0)) + 2.0 * perlin(position * 10.0))); - - // standard lighting - gl_FragColor = vec4(color * ( gl_LightModel.ambient.rgb + /* gl_LightSource[0].ambient.rgb + */ - gl_LightSource[0].diffuse.rgb * max(0.0, dot(normal, gl_LightSource[0].position.xyz))) + - pow(specular, gl_FrontMaterial.shininess) * gl_FrontLightProduct[0].specular.rgb, gl_Color.a); -} diff --git a/interface/resources/shaders/face_textured.vert b/interface/resources/shaders/face_textured.vert deleted file mode 100644 index 28bda9a84d..0000000000 --- a/interface/resources/shaders/face_textured.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 120 - -// -// face_textured.vert -// vertex shader -// -// Created by Andrzej Kapolka on 8/6/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the lower left texture coordinate -uniform vec2 texCoordCorner; - -// the texture coordinate vector from left to right -uniform vec2 texCoordRight; - -// the texture coordinate vector from bottom to the top -uniform vec2 texCoordUp; - -// the depth texture -uniform sampler2D depthTexture; - -// the position in model space -varying vec3 position; - -void main(void) { - gl_TexCoord[0] = vec4(texCoordCorner + gl_Vertex.x * texCoordRight + gl_Vertex.y * texCoordUp, 0.0, 1.0); - float depth = texture2D(depthTexture, gl_TexCoord[0].st).r; - - // store the model space vertex - position = gl_Vertex.xyz; - - // set alpha to zero for invalid depth values - const float MIN_VISIBLE_DEPTH = 1.0 / 255.0; - const float MAX_VISIBLE_DEPTH = 254.0 / 255.0; - gl_FrontColor = vec4(1.0, 1.0, 1.0, step(MIN_VISIBLE_DEPTH, depth) * (1.0 - step(MAX_VISIBLE_DEPTH, depth))); - gl_Position = gl_ModelViewProjectionMatrix * vec4(0.5 - gl_Vertex.x, gl_Vertex.y - 0.5, depth - 0.5, 1.0); -} diff --git a/interface/resources/shaders/iris.frag b/interface/resources/shaders/iris.frag deleted file mode 100644 index a5931c3cbe..0000000000 --- a/interface/resources/shaders/iris.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 120 - -// -// iris.frag -// fragment shader -// -// Created by Andrzej Kapolka on 6/13/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the iris texture -uniform sampler2D texture; - -// the interpolated normal -varying vec4 normal; - -void main(void) { - // compute the specular component (sans exponent) based on the normal OpenGL lighting model - float specular = max(0.0, dot(normalize(gl_LightSource[0].position + vec4(0.0, 0.0, 1.0, 0.0)), normalize(normal))); - - // modulate texture by diffuse color and add specular contribution - gl_FragColor = gl_Color * texture2D(texture, gl_TexCoord[0].st) + - pow(specular, gl_FrontMaterial.shininess) * gl_FrontLightProduct[0].specular; -} diff --git a/interface/resources/shaders/iris.vert b/interface/resources/shaders/iris.vert deleted file mode 100644 index 66906a93c3..0000000000 --- a/interface/resources/shaders/iris.vert +++ /dev/null @@ -1,36 +0,0 @@ -#version 120 - -// -// iris.vert -// vertex shader -// -// Created by Andrzej Kapolka on 6/13/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -// the location of the eye in model space -uniform vec3 eyePosition; - -// the interpolated normal -varying vec4 normal; - -// the ratio of the indices of refraction -const float refractionEta = 0.75; - -void main(void) { - - // transform and store the normal for interpolation - normal = normalize(gl_ModelViewMatrix * vec4(gl_Normal, 0.0)); - - // compute standard diffuse lighting per-vertex - gl_FrontColor = vec4(gl_Color.rgb * (gl_LightModel.ambient.rgb + gl_LightSource[0].ambient.rgb + - gl_LightSource[0].diffuse.rgb * max(0.0, dot(normal, gl_LightSource[0].position))), gl_Color.a); - - // compute the texture coordinate based on where refracted vector hits z=0 in model space - vec4 incidence = normalize(gl_Vertex - vec4(eyePosition, 1.0)); - vec4 refracted = refract(incidence, normalize(vec4(gl_Normal, 0.0)), refractionEta); - gl_TexCoord[0] = (gl_Vertex - (gl_Vertex.z / refracted.z) * refracted) + vec4(0.5, 0.5, 0.0, 0.0); - - // use standard pipeline transform - gl_Position = ftransform(); -} From e7a3beed78f0446be6bc38a409f4a3621c60d4ee Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 15:17:38 -0800 Subject: [PATCH 09/13] Removed a couple more resources. --- .../haarcascade_frontalface_alt.xml | 26161 ---------------- interface/resources/shaders/skin_voxels.vert | 34 - 2 files changed, 26195 deletions(-) delete mode 100644 interface/resources/haarcascades/haarcascade_frontalface_alt.xml delete mode 100644 interface/resources/shaders/skin_voxels.vert diff --git a/interface/resources/haarcascades/haarcascade_frontalface_alt.xml b/interface/resources/haarcascades/haarcascade_frontalface_alt.xml deleted file mode 100644 index 5a6f275458..0000000000 --- a/interface/resources/haarcascades/haarcascade_frontalface_alt.xml +++ /dev/null @@ -1,26161 +0,0 @@ - - - - - 20 20 - - <_> - - - <_> - - <_> - - - - <_>3 7 14 4 -1. - <_>3 9 14 2 2. - 0 - 4.0141958743333817e-003 - 0.0337941907346249 - 0.8378106951713562 - <_> - - <_> - - - - <_>1 2 18 4 -1. - <_>7 2 6 4 3. - 0 - 0.0151513395830989 - 0.1514132022857666 - 0.7488812208175659 - <_> - - <_> - - - - <_>1 7 15 9 -1. - <_>1 10 15 3 3. - 0 - 4.2109931819140911e-003 - 0.0900492817163467 - 0.6374819874763489 - 0.8226894140243530 - -1 - -1 - <_> - - - <_> - - <_> - - - - <_>5 6 2 6 -1. - <_>5 9 2 3 2. - 0 - 1.6227109590545297e-003 - 0.0693085864186287 - 0.7110946178436279 - <_> - - <_> - - - - <_>7 5 6 3 -1. - <_>9 5 2 3 3. - 0 - 2.2906649392098188e-003 - 0.1795803010463715 - 0.6668692231178284 - <_> - - <_> - - - - <_>4 0 12 9 -1. - <_>4 3 12 3 3. - 0 - 5.0025708042085171e-003 - 0.1693672984838486 - 0.6554006934165955 - <_> - - <_> - - - - <_>6 9 10 8 -1. - <_>6 13 10 4 2. - 0 - 7.9659894108772278e-003 - 0.5866332054138184 - 0.0914145186543465 - <_> - - <_> - - - - <_>3 6 14 8 -1. - <_>3 10 14 4 2. - 0 - -3.5227010957896709e-003 - 0.1413166970014572 - 0.6031895875930786 - <_> - - <_> - - - - <_>14 1 6 10 -1. - <_>14 1 3 10 2. - 0 - 0.0366676896810532 - 0.3675672113895416 - 0.7920318245887756 - <_> - - <_> - - - - <_>7 8 5 12 -1. - <_>7 12 5 4 3. - 0 - 9.3361474573612213e-003 - 0.6161385774612427 - 0.2088509947061539 - <_> - - <_> - - - - <_>1 1 18 3 -1. - <_>7 1 6 3 3. - 0 - 8.6961314082145691e-003 - 0.2836230993270874 - 0.6360273957252502 - <_> - - <_> - - - - <_>1 8 17 2 -1. - <_>1 9 17 1 2. - 0 - 1.1488880263641477e-003 - 0.2223580926656723 - 0.5800700783729553 - <_> - - <_> - - - - <_>16 6 4 2 -1. - <_>16 7 4 1 2. - 0 - -2.1484689787030220e-003 - 0.2406464070081711 - 0.5787054896354675 - <_> - - <_> - - - - <_>5 17 2 2 -1. - <_>5 18 2 1 2. - 0 - 2.1219060290604830e-003 - 0.5559654831886292 - 0.1362237036228180 - <_> - - <_> - - - - <_>14 2 6 12 -1. - <_>14 2 3 12 2. - 0 - -0.0939491465687752 - 0.8502737283706665 - 0.4717740118503571 - <_> - - <_> - - - - <_>4 0 4 12 -1. - <_>4 0 2 6 2. - <_>6 6 2 6 2. - 0 - 1.3777789426967502e-003 - 0.5993673801422119 - 0.2834529876708984 - <_> - - <_> - - - - <_>2 11 18 8 -1. - <_>8 11 6 8 3. - 0 - 0.0730631574988365 - 0.4341886043548584 - 0.7060034275054932 - <_> - - <_> - - - - <_>5 7 10 2 -1. - <_>5 8 10 1 2. - 0 - 3.6767389974556863e-004 - 0.3027887940406799 - 0.6051574945449829 - <_> - - <_> - - - - <_>15 11 5 3 -1. - <_>15 12 5 1 3. - 0 - -6.0479710809886456e-003 - 0.1798433959484100 - 0.5675256848335266 - 6.9566087722778320 - 0 - -1 - <_> - - - <_> - - <_> - - - - <_>5 3 10 9 -1. - <_>5 6 10 3 3. - 0 - -0.0165106896311045 - 0.6644225120544434 - 0.1424857974052429 - <_> - - <_> - - - - <_>9 4 2 14 -1. - <_>9 11 2 7 2. - 0 - 2.7052499353885651e-003 - 0.6325352191925049 - 0.1288477033376694 - <_> - - <_> - - - - <_>3 5 4 12 -1. - <_>3 9 4 4 3. - 0 - 2.8069869149476290e-003 - 0.1240288019180298 - 0.6193193197250366 - <_> - - <_> - - - - <_>4 5 12 5 -1. - <_>8 5 4 5 3. - 0 - -1.5402400167658925e-003 - 0.1432143002748489 - 0.5670015811920166 - <_> - - <_> - - - - <_>5 6 10 8 -1. - <_>5 10 10 4 2. - 0 - -5.6386279175058007e-004 - 0.1657433062791824 - 0.5905207991600037 - <_> - - <_> - - - - <_>8 0 6 9 -1. - <_>8 3 6 3 3. - 0 - 1.9253729842603207e-003 - 0.2695507109165192 - 0.5738824009895325 - <_> - - <_> - - - - <_>9 12 1 8 -1. - <_>9 16 1 4 2. - 0 - -5.0214841030538082e-003 - 0.1893538981676102 - 0.5782774090766907 - <_> - - <_> - - - - <_>0 7 20 6 -1. - <_>0 9 20 2 3. - 0 - 2.6365420781075954e-003 - 0.2309329062700272 - 0.5695425868034363 - <_> - - <_> - - - - <_>7 0 6 17 -1. - <_>9 0 2 17 3. - 0 - -1.5127769438549876e-003 - 0.2759602069854736 - 0.5956642031669617 - <_> - - <_> - - - - <_>9 0 6 4 -1. - <_>11 0 2 4 3. - 0 - -0.0101574398577213 - 0.1732538044452667 - 0.5522047281265259 - <_> - - <_> - - - - <_>5 1 6 4 -1. - <_>7 1 2 4 3. - 0 - -0.0119536602869630 - 0.1339409947395325 - 0.5559014081954956 - <_> - - <_> - - - - <_>12 1 6 16 -1. - <_>14 1 2 16 3. - 0 - 4.8859491944313049e-003 - 0.3628703951835632 - 0.6188849210739136 - <_> - - <_> - - - - <_>0 5 18 8 -1. - <_>0 5 9 4 2. - <_>9 9 9 4 2. - 0 - -0.0801329165697098 - 0.0912110507488251 - 0.5475944876670837 - <_> - - <_> - - - - <_>8 15 10 4 -1. - <_>13 15 5 2 2. - <_>8 17 5 2 2. - 0 - 1.0643280111253262e-003 - 0.3715142905712128 - 0.5711399912834168 - <_> - - <_> - - - - <_>3 1 4 8 -1. - <_>3 1 2 4 2. - <_>5 5 2 4 2. - 0 - -1.3419450260698795e-003 - 0.5953313708305359 - 0.3318097889423370 - <_> - - <_> - - - - <_>3 6 14 10 -1. - <_>10 6 7 5 2. - <_>3 11 7 5 2. - 0 - -0.0546011403203011 - 0.1844065934419632 - 0.5602846145629883 - <_> - - <_> - - - - <_>2 1 6 16 -1. - <_>4 1 2 16 3. - 0 - 2.9071690514683723e-003 - 0.3594244122505188 - 0.6131715178489685 - <_> - - <_> - - - - <_>0 18 20 2 -1. - <_>0 19 20 1 2. - 0 - 7.4718717951327562e-004 - 0.5994353294372559 - 0.3459562957286835 - <_> - - <_> - - - - <_>8 13 4 3 -1. - <_>8 14 4 1 3. - 0 - 4.3013808317482471e-003 - 0.4172652065753937 - 0.6990845203399658 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 4.5017572119832039e-003 - 0.4509715139865875 - 0.7801457047462463 - <_> - - <_> - - - - <_>0 12 9 6 -1. - <_>0 14 9 2 3. - 0 - 0.0241385009139776 - 0.5438212752342224 - 0.1319826990365982 - 9.4985427856445313 - 1 - -1 - <_> - - - <_> - - <_> - - - - <_>5 7 3 4 -1. - <_>5 9 3 2 2. - 0 - 1.9212230108678341e-003 - 0.1415266990661621 - 0.6199870705604553 - <_> - - <_> - - - - <_>9 3 2 16 -1. - <_>9 11 2 8 2. - 0 - -1.2748669541906565e-004 - 0.6191074252128601 - 0.1884928941726685 - <_> - - <_> - - - - <_>3 6 13 8 -1. - <_>3 10 13 4 2. - 0 - 5.1409931620582938e-004 - 0.1487396955490112 - 0.5857927799224854 - <_> - - <_> - - - - <_>12 3 8 2 -1. - <_>12 3 4 2 2. - 0 - 4.1878609918057919e-003 - 0.2746909856796265 - 0.6359239816665649 - <_> - - <_> - - - - <_>8 8 4 12 -1. - <_>8 12 4 4 3. - 0 - 5.1015717908740044e-003 - 0.5870851278305054 - 0.2175628989934921 - <_> - - <_> - - - - <_>11 3 8 6 -1. - <_>15 3 4 3 2. - <_>11 6 4 3 2. - 0 - -2.1448440384119749e-003 - 0.5880944728851318 - 0.2979590892791748 - <_> - - <_> - - - - <_>7 1 6 19 -1. - <_>9 1 2 19 3. - 0 - -2.8977119363844395e-003 - 0.2373327016830444 - 0.5876647233963013 - <_> - - <_> - - - - <_>9 0 6 4 -1. - <_>11 0 2 4 3. - 0 - -0.0216106791049242 - 0.1220654994249344 - 0.5194202065467835 - <_> - - <_> - - - - <_>3 1 9 3 -1. - <_>6 1 3 3 3. - 0 - -4.6299318782985210e-003 - 0.2631230950355530 - 0.5817409157752991 - <_> - - <_> - - - - <_>8 15 10 4 -1. - <_>13 15 5 2 2. - <_>8 17 5 2 2. - 0 - 5.9393711853772402e-004 - 0.3638620078563690 - 0.5698544979095459 - <_> - - <_> - - - - <_>0 3 6 10 -1. - <_>3 3 3 10 2. - 0 - 0.0538786612451077 - 0.4303531050682068 - 0.7559366226196289 - <_> - - <_> - - - - <_>3 4 15 15 -1. - <_>3 9 15 5 3. - 0 - 1.8887349870055914e-003 - 0.2122603058815002 - 0.5613427162170410 - <_> - - <_> - - - - <_>6 5 8 6 -1. - <_>6 7 8 2 3. - 0 - -2.3635339457541704e-003 - 0.5631849169731140 - 0.2642767131328583 - <_> - - <_> - - - - <_>4 4 12 10 -1. - <_>10 4 6 5 2. - <_>4 9 6 5 2. - 0 - 0.0240177996456623 - 0.5797107815742493 - 0.2751705944538117 - <_> - - <_> - - - - <_>6 4 4 4 -1. - <_>8 4 2 4 2. - 0 - 2.0543030404951423e-004 - 0.2705242037773132 - 0.5752568840980530 - <_> - - <_> - - - - <_>15 11 1 2 -1. - <_>15 12 1 1 2. - 0 - 8.4790197433903813e-004 - 0.5435624718666077 - 0.2334876954555512 - <_> - - <_> - - - - <_>3 11 2 2 -1. - <_>3 12 2 1 2. - 0 - 1.4091329649090767e-003 - 0.5319424867630005 - 0.2063155025243759 - <_> - - <_> - - - - <_>16 11 1 3 -1. - <_>16 12 1 1 3. - 0 - 1.4642629539594054e-003 - 0.5418980717658997 - 0.3068861067295075 - <_> - - <_> - - - - <_>3 15 6 4 -1. - <_>3 15 3 2 2. - <_>6 17 3 2 2. - 0 - 1.6352549428120255e-003 - 0.3695372939109802 - 0.6112868189811707 - <_> - - <_> - - - - <_>6 7 8 2 -1. - <_>6 8 8 1 2. - 0 - 8.3172752056270838e-004 - 0.3565036952495575 - 0.6025236248970032 - <_> - - <_> - - - - <_>3 11 1 3 -1. - <_>3 12 1 1 3. - 0 - -2.0998890977352858e-003 - 0.1913982033729553 - 0.5362827181816101 - <_> - - <_> - - - - <_>6 0 12 2 -1. - <_>6 1 12 1 2. - 0 - -7.4213981861248612e-004 - 0.3835555016994476 - 0.5529310107231140 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 3.2655049581080675e-003 - 0.4312896132469177 - 0.7101895809173584 - <_> - - <_> - - - - <_>7 15 6 2 -1. - <_>7 16 6 1 2. - 0 - 8.9134991867467761e-004 - 0.3984830975532532 - 0.6391963958740234 - <_> - - <_> - - - - <_>0 5 4 6 -1. - <_>0 7 4 2 3. - 0 - -0.0152841797098517 - 0.2366732954978943 - 0.5433713793754578 - <_> - - <_> - - - - <_>4 12 12 2 -1. - <_>8 12 4 2 3. - 0 - 4.8381411470472813e-003 - 0.5817500948905945 - 0.3239189088344574 - <_> - - <_> - - - - <_>6 3 1 9 -1. - <_>6 6 1 3 3. - 0 - -9.1093179071322083e-004 - 0.5540593862533569 - 0.2911868989467621 - <_> - - <_> - - - - <_>10 17 3 2 -1. - <_>11 17 1 2 3. - 0 - -6.1275060288608074e-003 - 0.1775255054235458 - 0.5196629166603088 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -4.4576259097084403e-004 - 0.3024170100688934 - 0.5533593893051148 - <_> - - <_> - - - - <_>7 6 6 4 -1. - <_>9 6 2 4 3. - 0 - 0.0226465407758951 - 0.4414930939674377 - 0.6975377202033997 - <_> - - <_> - - - - <_>7 17 3 2 -1. - <_>8 17 1 2 3. - 0 - -1.8804960418492556e-003 - 0.2791394889354706 - 0.5497952103614807 - <_> - - <_> - - - - <_>10 17 3 3 -1. - <_>11 17 1 3 3. - 0 - 7.0889107882976532e-003 - 0.5263199210166931 - 0.2385547012090683 - <_> - - <_> - - - - <_>8 12 3 2 -1. - <_>8 13 3 1 2. - 0 - 1.7318050377070904e-003 - 0.4319379031658173 - 0.6983600854873657 - <_> - - <_> - - - - <_>9 3 6 2 -1. - <_>11 3 2 2 3. - 0 - -6.8482700735330582e-003 - 0.3082042932510376 - 0.5390920042991638 - <_> - - <_> - - - - <_>3 11 14 4 -1. - <_>3 13 14 2 2. - 0 - -1.5062530110299122e-005 - 0.5521922111511231 - 0.3120366036891937 - <_> - - <_> - - - - <_>1 10 18 4 -1. - <_>10 10 9 2 2. - <_>1 12 9 2 2. - 0 - 0.0294755697250366 - 0.5401322841644287 - 0.1770603060722351 - <_> - - <_> - - - - <_>0 10 3 3 -1. - <_>0 11 3 1 3. - 0 - 8.1387329846620560e-003 - 0.5178617835044861 - 0.1211019009351730 - <_> - - <_> - - - - <_>9 1 6 6 -1. - <_>11 1 2 6 3. - 0 - 0.0209429506212473 - 0.5290294289588928 - 0.3311221897602081 - <_> - - <_> - - - - <_>8 7 3 6 -1. - <_>9 7 1 6 3. - 0 - -9.5665529370307922e-003 - 0.7471994161605835 - 0.4451968967914581 - 18.4129695892333980 - 2 - -1 - <_> - - - <_> - - <_> - - - - <_>1 0 18 9 -1. - <_>1 3 18 3 3. - 0 - -2.8206960996612906e-004 - 0.2064086049795151 - 0.6076732277870178 - <_> - - <_> - - - - <_>12 10 2 6 -1. - <_>12 13 2 3 2. - 0 - 1.6790600493550301e-003 - 0.5851997137069702 - 0.1255383938550949 - <_> - - <_> - - - - <_>0 5 19 8 -1. - <_>0 9 19 4 2. - 0 - 6.9827912375330925e-004 - 0.0940184295177460 - 0.5728961229324341 - <_> - - <_> - - - - <_>7 0 6 9 -1. - <_>9 0 2 9 3. - 0 - 7.8959012171253562e-004 - 0.1781987994909287 - 0.5694308876991272 - <_> - - <_> - - - - <_>5 3 6 1 -1. - <_>7 3 2 1 3. - 0 - -2.8560499195009470e-003 - 0.1638399064540863 - 0.5788664817810059 - <_> - - <_> - - - - <_>11 3 6 1 -1. - <_>13 3 2 1 3. - 0 - -3.8122469559311867e-003 - 0.2085440009832382 - 0.5508564710617065 - <_> - - <_> - - - - <_>5 10 4 6 -1. - <_>5 13 4 3 2. - 0 - 1.5896620461717248e-003 - 0.5702760815620422 - 0.1857215017080307 - <_> - - <_> - - - - <_>11 3 6 1 -1. - <_>13 3 2 1 3. - 0 - 0.0100783398374915 - 0.5116943120956421 - 0.2189770042896271 - <_> - - <_> - - - - <_>4 4 12 6 -1. - <_>4 6 12 2 3. - 0 - -0.0635263025760651 - 0.7131379842758179 - 0.4043813049793243 - <_> - - <_> - - - - <_>15 12 2 6 -1. - <_>15 14 2 2 3. - 0 - -9.1031491756439209e-003 - 0.2567181885242462 - 0.5463973283767700 - <_> - - <_> - - - - <_>9 3 2 2 -1. - <_>10 3 1 2 2. - 0 - -2.4035000242292881e-003 - 0.1700665950775147 - 0.5590974092483521 - <_> - - <_> - - - - <_>9 3 3 1 -1. - <_>10 3 1 1 3. - 0 - 1.5226360410451889e-003 - 0.5410556793212891 - 0.2619054019451141 - <_> - - <_> - - - - <_>1 1 4 14 -1. - <_>3 1 2 14 2. - 0 - 0.0179974399507046 - 0.3732436895370483 - 0.6535220742225647 - <_> - - <_> - - - - <_>9 0 4 4 -1. - <_>11 0 2 2 2. - <_>9 2 2 2 2. - 0 - -6.4538191072642803e-003 - 0.2626481950283051 - 0.5537446141242981 - <_> - - <_> - - - - <_>7 5 1 14 -1. - <_>7 12 1 7 2. - 0 - -0.0118807600811124 - 0.2003753930330277 - 0.5544745922088623 - <_> - - <_> - - - - <_>19 0 1 4 -1. - <_>19 2 1 2 2. - 0 - 1.2713660253211856e-003 - 0.5591902732849121 - 0.3031975924968720 - <_> - - <_> - - - - <_>5 5 6 4 -1. - <_>8 5 3 4 2. - 0 - 1.1376109905540943e-003 - 0.2730407118797302 - 0.5646508932113648 - <_> - - <_> - - - - <_>9 18 3 2 -1. - <_>10 18 1 2 3. - 0 - -4.2651998810470104e-003 - 0.1405909061431885 - 0.5461820960044861 - <_> - - <_> - - - - <_>8 18 3 2 -1. - <_>9 18 1 2 3. - 0 - -2.9602861031889915e-003 - 0.1795035004615784 - 0.5459290146827698 - <_> - - <_> - - - - <_>4 5 12 6 -1. - <_>4 7 12 2 3. - 0 - -8.8448226451873779e-003 - 0.5736783146858215 - 0.2809219956398010 - <_> - - <_> - - - - <_>3 12 2 6 -1. - <_>3 14 2 2 3. - 0 - -6.6430689767003059e-003 - 0.2370675951242447 - 0.5503826141357422 - <_> - - <_> - - - - <_>10 8 2 12 -1. - <_>10 12 2 4 3. - 0 - 3.9997808635234833e-003 - 0.5608199834823608 - 0.3304282128810883 - <_> - - <_> - - - - <_>7 18 3 2 -1. - <_>8 18 1 2 3. - 0 - -4.1221720166504383e-003 - 0.1640105992555618 - 0.5378993153572083 - <_> - - <_> - - - - <_>9 0 6 2 -1. - <_>11 0 2 2 3. - 0 - 0.0156249096617103 - 0.5227649211883545 - 0.2288603931665421 - <_> - - <_> - - - - <_>5 11 9 3 -1. - <_>5 12 9 1 3. - 0 - -0.0103564197197557 - 0.7016193866729736 - 0.4252927899360657 - <_> - - <_> - - - - <_>9 0 6 2 -1. - <_>11 0 2 2 3. - 0 - -8.7960809469223022e-003 - 0.2767347097396851 - 0.5355830192565918 - <_> - - <_> - - - - <_>1 1 18 5 -1. - <_>7 1 6 5 3. - 0 - 0.1622693985700607 - 0.4342240095138550 - 0.7442579269409180 - <_> - - <_> - - - - <_>8 0 4 4 -1. - <_>10 0 2 2 2. - <_>8 2 2 2 2. - 0 - 4.5542530715465546e-003 - 0.5726485848426819 - 0.2582125067710877 - <_> - - <_> - - - - <_>3 12 1 3 -1. - <_>3 13 1 1 3. - 0 - -2.1309209987521172e-003 - 0.2106848061084747 - 0.5361018776893616 - <_> - - <_> - - - - <_>8 14 5 3 -1. - <_>8 15 5 1 3. - 0 - -0.0132084200158715 - 0.7593790888786316 - 0.4552468061447144 - <_> - - <_> - - - - <_>5 4 10 12 -1. - <_>5 4 5 6 2. - <_>10 10 5 6 2. - 0 - -0.0659966766834259 - 0.1252475976943970 - 0.5344039797782898 - <_> - - <_> - - - - <_>9 6 9 12 -1. - <_>9 10 9 4 3. - 0 - 7.9142656177282333e-003 - 0.3315384089946747 - 0.5601043105125427 - <_> - - <_> - - - - <_>2 2 12 14 -1. - <_>2 2 6 7 2. - <_>8 9 6 7 2. - 0 - 0.0208942797034979 - 0.5506049990653992 - 0.2768838107585907 - 15.3241395950317380 - 3 - -1 - <_> - - - <_> - - <_> - - - - <_>4 7 12 2 -1. - <_>8 7 4 2 3. - 0 - 1.1961159761995077e-003 - 0.1762690991163254 - 0.6156241297721863 - <_> - - <_> - - - - <_>7 4 6 4 -1. - <_>7 6 6 2 2. - 0 - -1.8679830245673656e-003 - 0.6118106842041016 - 0.1832399964332581 - <_> - - <_> - - - - <_>4 5 11 8 -1. - <_>4 9 11 4 2. - 0 - -1.9579799845814705e-004 - 0.0990442633628845 - 0.5723816156387329 - <_> - - <_> - - - - <_>3 10 16 4 -1. - <_>3 12 16 2 2. - 0 - -8.0255657667294145e-004 - 0.5579879879951477 - 0.2377282977104187 - <_> - - <_> - - - - <_>0 0 16 2 -1. - <_>0 1 16 1 2. - 0 - -2.4510810617357492e-003 - 0.2231457978487015 - 0.5858935117721558 - <_> - - <_> - - - - <_>7 5 6 2 -1. - <_>9 5 2 2 3. - 0 - 5.0361850298941135e-004 - 0.2653993964195252 - 0.5794103741645813 - <_> - - <_> - - - - <_>3 2 6 10 -1. - <_>3 2 3 5 2. - <_>6 7 3 5 2. - 0 - 4.0293349884450436e-003 - 0.5803827047348023 - 0.2484865039587021 - <_> - - <_> - - - - <_>10 5 8 15 -1. - <_>10 10 8 5 3. - 0 - -0.0144517095759511 - 0.1830351948738098 - 0.5484204888343811 - <_> - - <_> - - - - <_>3 14 8 6 -1. - <_>3 14 4 3 2. - <_>7 17 4 3 2. - 0 - 2.0380979403853416e-003 - 0.3363558948040009 - 0.6051092743873596 - <_> - - <_> - - - - <_>14 2 2 2 -1. - <_>14 3 2 1 2. - 0 - -1.6155190533027053e-003 - 0.2286642044782639 - 0.5441246032714844 - <_> - - <_> - - - - <_>1 10 7 6 -1. - <_>1 13 7 3 2. - 0 - 3.3458340913057327e-003 - 0.5625913143157959 - 0.2392338067293167 - <_> - - <_> - - - - <_>15 4 4 3 -1. - <_>15 4 2 3 2. - 0 - 1.6379579901695251e-003 - 0.3906993865966797 - 0.5964621901512146 - <_> - - <_> - - - - <_>2 9 14 6 -1. - <_>2 9 7 3 2. - <_>9 12 7 3 2. - 0 - 0.0302512105554342 - 0.5248482227325440 - 0.1575746983289719 - <_> - - <_> - - - - <_>5 7 10 4 -1. - <_>5 9 10 2 2. - 0 - 0.0372519902884960 - 0.4194310903549194 - 0.6748418807983398 - <_> - - <_> - - - - <_>6 9 8 8 -1. - <_>6 9 4 4 2. - <_>10 13 4 4 2. - 0 - -0.0251097902655602 - 0.1882549971342087 - 0.5473451018333435 - <_> - - <_> - - - - <_>14 1 3 2 -1. - <_>14 2 3 1 2. - 0 - -5.3099058568477631e-003 - 0.1339973062276840 - 0.5227110981941223 - <_> - - <_> - - - - <_>1 4 4 2 -1. - <_>3 4 2 2 2. - 0 - 1.2086479691788554e-003 - 0.3762088119983673 - 0.6109635829925537 - <_> - - <_> - - - - <_>11 10 2 8 -1. - <_>11 14 2 4 2. - 0 - -0.0219076797366142 - 0.2663142979145050 - 0.5404006838798523 - <_> - - <_> - - - - <_>0 0 5 3 -1. - <_>0 1 5 1 3. - 0 - 5.4116579703986645e-003 - 0.5363578796386719 - 0.2232273072004318 - <_> - - <_> - - - - <_>2 5 18 8 -1. - <_>11 5 9 4 2. - <_>2 9 9 4 2. - 0 - 0.0699463263154030 - 0.5358232855796814 - 0.2453698068857193 - <_> - - <_> - - - - <_>6 6 1 6 -1. - <_>6 9 1 3 2. - 0 - 3.4520021290518343e-004 - 0.2409671992063522 - 0.5376930236816406 - <_> - - <_> - - - - <_>19 1 1 3 -1. - <_>19 2 1 1 3. - 0 - 1.2627709656953812e-003 - 0.5425856709480286 - 0.3155693113803864 - <_> - - <_> - - - - <_>7 6 6 6 -1. - <_>9 6 2 6 3. - 0 - 0.0227195098996162 - 0.4158405959606171 - 0.6597865223884583 - <_> - - <_> - - - - <_>19 1 1 3 -1. - <_>19 2 1 1 3. - 0 - -1.8111000536009669e-003 - 0.2811253070831299 - 0.5505244731903076 - <_> - - <_> - - - - <_>3 13 2 3 -1. - <_>3 14 2 1 3. - 0 - 3.3469670452177525e-003 - 0.5260028243064880 - 0.1891465038061142 - <_> - - <_> - - - - <_>8 4 8 12 -1. - <_>12 4 4 6 2. - <_>8 10 4 6 2. - 0 - 4.0791751234792173e-004 - 0.5673509240150452 - 0.3344210088253021 - <_> - - <_> - - - - <_>5 2 6 3 -1. - <_>7 2 2 3 3. - 0 - 0.0127347996458411 - 0.5343592166900635 - 0.2395612001419067 - <_> - - <_> - - - - <_>6 1 9 10 -1. - <_>6 6 9 5 2. - 0 - -7.3119727894663811e-003 - 0.6010890007019043 - 0.4022207856178284 - <_> - - <_> - - - - <_>0 4 6 12 -1. - <_>2 4 2 12 3. - 0 - -0.0569487512111664 - 0.8199151158332825 - 0.4543190896511078 - <_> - - <_> - - - - <_>15 13 2 3 -1. - <_>15 14 2 1 3. - 0 - -5.0116591155529022e-003 - 0.2200281023979187 - 0.5357710719108582 - <_> - - <_> - - - - <_>7 14 5 3 -1. - <_>7 15 5 1 3. - 0 - 6.0334368608891964e-003 - 0.4413081109523773 - 0.7181751132011414 - <_> - - <_> - - - - <_>15 13 3 3 -1. - <_>15 14 3 1 3. - 0 - 3.9437441155314445e-003 - 0.5478860735893250 - 0.2791733145713806 - <_> - - <_> - - - - <_>6 14 8 3 -1. - <_>6 15 8 1 3. - 0 - -3.6591119132936001e-003 - 0.6357867717742920 - 0.3989723920822144 - <_> - - <_> - - - - <_>15 13 3 3 -1. - <_>15 14 3 1 3. - 0 - -3.8456181064248085e-003 - 0.3493686020374298 - 0.5300664901733398 - <_> - - <_> - - - - <_>2 13 3 3 -1. - <_>2 14 3 1 3. - 0 - -7.1926261298358440e-003 - 0.1119614988565445 - 0.5229672789573669 - <_> - - <_> - - - - <_>4 7 12 12 -1. - <_>10 7 6 6 2. - <_>4 13 6 6 2. - 0 - -0.0527989417314529 - 0.2387102991342545 - 0.5453451275825501 - <_> - - <_> - - - - <_>9 7 2 6 -1. - <_>10 7 1 6 2. - 0 - -7.9537667334079742e-003 - 0.7586917877197266 - 0.4439376890659332 - <_> - - <_> - - - - <_>8 9 5 2 -1. - <_>8 10 5 1 2. - 0 - -2.7344180271029472e-003 - 0.2565476894378662 - 0.5489321947097778 - <_> - - <_> - - - - <_>8 6 3 4 -1. - <_>9 6 1 4 3. - 0 - -1.8507939530536532e-003 - 0.6734347939491272 - 0.4252474904060364 - <_> - - <_> - - - - <_>9 6 2 8 -1. - <_>9 10 2 4 2. - 0 - 0.0159189198166132 - 0.5488352775573731 - 0.2292661964893341 - <_> - - <_> - - - - <_>7 7 3 6 -1. - <_>8 7 1 6 3. - 0 - -1.2687679845839739e-003 - 0.6104331016540527 - 0.4022389948368073 - <_> - - <_> - - - - <_>11 3 3 3 -1. - <_>12 3 1 3 3. - 0 - 6.2883910723030567e-003 - 0.5310853123664856 - 0.1536193042993546 - <_> - - <_> - - - - <_>5 4 6 1 -1. - <_>7 4 2 1 3. - 0 - -6.2259892001748085e-003 - 0.1729111969470978 - 0.5241606235504150 - <_> - - <_> - - - - <_>5 6 10 3 -1. - <_>5 7 10 1 3. - 0 - -0.0121325999498367 - 0.6597759723663330 - 0.4325182139873505 - 21.0106391906738280 - 4 - -1 - <_> - - - <_> - - <_> - - - - <_>7 3 6 9 -1. - <_>7 6 6 3 3. - 0 - -3.9184908382594585e-003 - 0.6103435158729553 - 0.1469330936670303 - <_> - - <_> - - - - <_>6 7 9 1 -1. - <_>9 7 3 1 3. - 0 - 1.5971299726516008e-003 - 0.2632363140583038 - 0.5896466970443726 - <_> - - <_> - - - - <_>2 8 16 8 -1. - <_>2 12 16 4 2. - 0 - 0.0177801102399826 - 0.5872874259948731 - 0.1760361939668655 - <_> - - <_> - - - - <_>14 6 2 6 -1. - <_>14 9 2 3 2. - 0 - 6.5334769897162914e-004 - 0.1567801982164383 - 0.5596066117286682 - <_> - - <_> - - - - <_>1 5 6 15 -1. - <_>1 10 6 5 3. - 0 - -2.8353091329336166e-004 - 0.1913153976202011 - 0.5732036232948303 - <_> - - <_> - - - - <_>10 0 6 9 -1. - <_>10 3 6 3 3. - 0 - 1.6104689566418529e-003 - 0.2914913892745972 - 0.5623080730438232 - <_> - - <_> - - - - <_>6 6 7 14 -1. - <_>6 13 7 7 2. - 0 - -0.0977506190538406 - 0.1943476945161820 - 0.5648233294487000 - <_> - - <_> - - - - <_>13 7 3 6 -1. - <_>13 9 3 2 3. - 0 - 5.5182358482852578e-004 - 0.3134616911411285 - 0.5504639744758606 - <_> - - <_> - - - - <_>1 8 15 4 -1. - <_>6 8 5 4 3. - 0 - -0.0128582203760743 - 0.2536481916904450 - 0.5760142803192139 - <_> - - <_> - - - - <_>11 2 3 10 -1. - <_>11 7 3 5 2. - 0 - 4.1530239395797253e-003 - 0.5767722129821777 - 0.3659774065017700 - <_> - - <_> - - - - <_>3 7 4 6 -1. - <_>3 9 4 2 3. - 0 - 1.7092459602281451e-003 - 0.2843191027641296 - 0.5918939113616943 - <_> - - <_> - - - - <_>13 3 6 10 -1. - <_>15 3 2 10 3. - 0 - 7.5217359699308872e-003 - 0.4052427113056183 - 0.6183109283447266 - <_> - - <_> - - - - <_>5 7 8 10 -1. - <_>5 7 4 5 2. - <_>9 12 4 5 2. - 0 - 2.2479810286313295e-003 - 0.5783755183219910 - 0.3135401010513306 - <_> - - <_> - - - - <_>4 4 12 12 -1. - <_>10 4 6 6 2. - <_>4 10 6 6 2. - 0 - 0.0520062111318111 - 0.5541312098503113 - 0.1916636973619461 - <_> - - <_> - - - - <_>1 4 6 9 -1. - <_>3 4 2 9 3. - 0 - 0.0120855299755931 - 0.4032655954360962 - 0.6644591093063355 - <_> - - <_> - - - - <_>11 3 2 5 -1. - <_>11 3 1 5 2. - 0 - 1.4687820112158079e-005 - 0.3535977900028229 - 0.5709382891654968 - <_> - - <_> - - - - <_>7 3 2 5 -1. - <_>8 3 1 5 2. - 0 - 7.1395188570022583e-006 - 0.3037444949150085 - 0.5610269904136658 - <_> - - <_> - - - - <_>10 14 2 3 -1. - <_>10 15 2 1 3. - 0 - -4.6001640148460865e-003 - 0.7181087136268616 - 0.4580326080322266 - <_> - - <_> - - - - <_>5 12 6 2 -1. - <_>8 12 3 2 2. - 0 - 2.0058949012309313e-003 - 0.5621951818466187 - 0.2953684031963348 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 4.5050270855426788e-003 - 0.4615387916564941 - 0.7619017958641052 - <_> - - <_> - - - - <_>4 11 12 6 -1. - <_>4 14 12 3 2. - 0 - 0.0117468303069472 - 0.5343837141990662 - 0.1772529035806656 - <_> - - <_> - - - - <_>11 11 5 9 -1. - <_>11 14 5 3 3. - 0 - -0.0583163388073444 - 0.1686245948076248 - 0.5340772271156311 - <_> - - <_> - - - - <_>6 15 3 2 -1. - <_>6 16 3 1 2. - 0 - 2.3629379575140774e-004 - 0.3792056143283844 - 0.6026803851127625 - <_> - - <_> - - - - <_>11 0 3 5 -1. - <_>12 0 1 5 3. - 0 - -7.8156180679798126e-003 - 0.1512867063283920 - 0.5324323773384094 - <_> - - <_> - - - - <_>5 5 6 7 -1. - <_>8 5 3 7 2. - 0 - -0.0108761601150036 - 0.2081822007894516 - 0.5319945216178894 - <_> - - <_> - - - - <_>13 0 1 9 -1. - <_>13 3 1 3 3. - 0 - -2.7745519764721394e-003 - 0.4098246991634369 - 0.5210328102111816 - <_> - - <_> - - - - <_>3 2 4 8 -1. - <_>3 2 2 4 2. - <_>5 6 2 4 2. - 0 - -7.8276381827890873e-004 - 0.5693274140357971 - 0.3478842079639435 - <_> - - <_> - - - - <_>13 12 4 6 -1. - <_>13 14 4 2 3. - 0 - 0.0138704096898437 - 0.5326750874519348 - 0.2257698029279709 - <_> - - <_> - - - - <_>3 12 4 6 -1. - <_>3 14 4 2 3. - 0 - -0.0236749108880758 - 0.1551305055618286 - 0.5200707912445068 - <_> - - <_> - - - - <_>13 11 3 4 -1. - <_>13 13 3 2 2. - 0 - -1.4879409718560055e-005 - 0.5500566959381104 - 0.3820176124572754 - <_> - - <_> - - - - <_>4 4 4 3 -1. - <_>4 5 4 1 3. - 0 - 3.6190641112625599e-003 - 0.4238683879375458 - 0.6639748215675354 - <_> - - <_> - - - - <_>7 5 11 8 -1. - <_>7 9 11 4 2. - 0 - -0.0198171101510525 - 0.2150038033723831 - 0.5382357835769653 - <_> - - <_> - - - - <_>7 8 3 4 -1. - <_>8 8 1 4 3. - 0 - -3.8154039066284895e-003 - 0.6675711274147034 - 0.4215297102928162 - <_> - - <_> - - - - <_>9 1 6 1 -1. - <_>11 1 2 1 3. - 0 - -4.9775829538702965e-003 - 0.2267289012670517 - 0.5386328101158142 - <_> - - <_> - - - - <_>5 5 3 3 -1. - <_>5 6 3 1 3. - 0 - 2.2441020701080561e-003 - 0.4308691024780273 - 0.6855735778808594 - <_> - - <_> - - - - <_>0 9 20 6 -1. - <_>10 9 10 3 2. - <_>0 12 10 3 2. - 0 - 0.0122824599966407 - 0.5836614966392517 - 0.3467479050159454 - <_> - - <_> - - - - <_>8 6 3 5 -1. - <_>9 6 1 5 3. - 0 - -2.8548699337989092e-003 - 0.7016944885253906 - 0.4311453998088837 - <_> - - <_> - - - - <_>11 0 1 3 -1. - <_>11 1 1 1 3. - 0 - -3.7875669077038765e-003 - 0.2895345091819763 - 0.5224946141242981 - <_> - - <_> - - - - <_>4 2 4 2 -1. - <_>4 3 4 1 2. - 0 - -1.2201230274513364e-003 - 0.2975570857524872 - 0.5481644868850708 - <_> - - <_> - - - - <_>12 6 4 3 -1. - <_>12 7 4 1 3. - 0 - 0.0101605998352170 - 0.4888817965984345 - 0.8182697892189026 - <_> - - <_> - - - - <_>5 0 6 4 -1. - <_>7 0 2 4 3. - 0 - -0.0161745697259903 - 0.1481492966413498 - 0.5239992737770081 - <_> - - <_> - - - - <_>9 7 3 8 -1. - <_>10 7 1 8 3. - 0 - 0.0192924607545137 - 0.4786309897899628 - 0.7378190755844116 - <_> - - <_> - - - - <_>9 7 2 2 -1. - <_>10 7 1 2 2. - 0 - -3.2479539513587952e-003 - 0.7374222874641419 - 0.4470643997192383 - <_> - - <_> - - - - <_>6 7 14 4 -1. - <_>13 7 7 2 2. - <_>6 9 7 2 2. - 0 - -9.3803480267524719e-003 - 0.3489154875278473 - 0.5537996292114258 - <_> - - <_> - - - - <_>0 5 3 6 -1. - <_>0 7 3 2 3. - 0 - -0.0126061299815774 - 0.2379686981439591 - 0.5315443277359009 - <_> - - <_> - - - - <_>13 11 3 4 -1. - <_>13 13 3 2 2. - 0 - -0.0256219301372766 - 0.1964688003063202 - 0.5138769745826721 - <_> - - <_> - - - - <_>4 11 3 4 -1. - <_>4 13 3 2 2. - 0 - -7.5741496402770281e-005 - 0.5590522885322571 - 0.3365853130817413 - <_> - - <_> - - - - <_>5 9 12 8 -1. - <_>11 9 6 4 2. - <_>5 13 6 4 2. - 0 - -0.0892108827829361 - 0.0634046569466591 - 0.5162634849548340 - <_> - - <_> - - - - <_>9 12 1 3 -1. - <_>9 13 1 1 3. - 0 - -2.7670480776578188e-003 - 0.7323467731475830 - 0.4490706026554108 - <_> - - <_> - - - - <_>10 15 2 4 -1. - <_>10 17 2 2 2. - 0 - 2.7152578695677221e-004 - 0.4114834964275360 - 0.5985518097877502 - 23.9187908172607420 - 5 - -1 - <_> - - - <_> - - <_> - - - - <_>7 7 6 1 -1. - <_>9 7 2 1 3. - 0 - 1.4786219689995050e-003 - 0.2663545012474060 - 0.6643316745758057 - <_> - - <_> - - - - <_>12 3 6 6 -1. - <_>15 3 3 3 2. - <_>12 6 3 3 2. - 0 - -1.8741659587249160e-003 - 0.6143848896026611 - 0.2518512904644013 - <_> - - <_> - - - - <_>0 4 10 6 -1. - <_>0 6 10 2 3. - 0 - -1.7151009524241090e-003 - 0.5766341090202332 - 0.2397463023662567 - <_> - - <_> - - - - <_>8 3 8 14 -1. - <_>12 3 4 7 2. - <_>8 10 4 7 2. - 0 - -1.8939269939437509e-003 - 0.5682045817375183 - 0.2529144883155823 - <_> - - <_> - - - - <_>4 4 7 15 -1. - <_>4 9 7 5 3. - 0 - -5.3006052039563656e-003 - 0.1640675961971283 - 0.5556079745292664 - <_> - - <_> - - - - <_>12 2 6 8 -1. - <_>15 2 3 4 2. - <_>12 6 3 4 2. - 0 - -0.0466625317931175 - 0.6123154163360596 - 0.4762830138206482 - <_> - - <_> - - - - <_>2 2 6 8 -1. - <_>2 2 3 4 2. - <_>5 6 3 4 2. - 0 - -7.9431332414969802e-004 - 0.5707858800888062 - 0.2839404046535492 - <_> - - <_> - - - - <_>2 13 18 7 -1. - <_>8 13 6 7 3. - 0 - 0.0148916700854898 - 0.4089672863483429 - 0.6006367206573486 - <_> - - <_> - - - - <_>4 3 8 14 -1. - <_>4 3 4 7 2. - <_>8 10 4 7 2. - 0 - -1.2046529445797205e-003 - 0.5712450742721558 - 0.2705289125442505 - <_> - - <_> - - - - <_>18 1 2 6 -1. - <_>18 3 2 2 3. - 0 - 6.0619381256401539e-003 - 0.5262504220008850 - 0.3262225985527039 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -2.5286648888140917e-003 - 0.6853830814361572 - 0.4199256896972656 - <_> - - <_> - - - - <_>18 1 2 6 -1. - <_>18 3 2 2 3. - 0 - -5.9010218828916550e-003 - 0.3266282081604004 - 0.5434812903404236 - <_> - - <_> - - - - <_>0 1 2 6 -1. - <_>0 3 2 2 3. - 0 - 5.6702760048210621e-003 - 0.5468410849571228 - 0.2319003939628601 - <_> - - <_> - - - - <_>1 5 18 6 -1. - <_>1 7 18 2 3. - 0 - -3.0304100364446640e-003 - 0.5570667982101440 - 0.2708238065242767 - <_> - - <_> - - - - <_>0 2 6 7 -1. - <_>3 2 3 7 2. - 0 - 2.9803649522364140e-003 - 0.3700568974018097 - 0.5890625715255737 - <_> - - <_> - - - - <_>7 3 6 14 -1. - <_>7 10 6 7 2. - 0 - -0.0758405104279518 - 0.2140070050954819 - 0.5419948101043701 - <_> - - <_> - - - - <_>3 7 13 10 -1. - <_>3 12 13 5 2. - 0 - 0.0192625392228365 - 0.5526772141456604 - 0.2726590037345886 - <_> - - <_> - - - - <_>11 15 2 2 -1. - <_>11 16 2 1 2. - 0 - 1.8888259364757687e-004 - 0.3958011865615845 - 0.6017209887504578 - <_> - - <_> - - - - <_>2 11 16 4 -1. - <_>2 11 8 2 2. - <_>10 13 8 2 2. - 0 - 0.0293695498257875 - 0.5241373777389526 - 0.1435758024454117 - <_> - - <_> - - - - <_>13 7 6 4 -1. - <_>16 7 3 2 2. - <_>13 9 3 2 2. - 0 - 1.0417619487270713e-003 - 0.3385409116744995 - 0.5929983258247376 - <_> - - <_> - - - - <_>6 10 3 9 -1. - <_>6 13 3 3 3. - 0 - 2.6125640142709017e-003 - 0.5485377907752991 - 0.3021597862243652 - <_> - - <_> - - - - <_>14 6 1 6 -1. - <_>14 9 1 3 2. - 0 - 9.6977467183023691e-004 - 0.3375276029109955 - 0.5532032847404480 - <_> - - <_> - - - - <_>5 10 4 1 -1. - <_>7 10 2 1 2. - 0 - 5.9512659208849072e-004 - 0.5631743073463440 - 0.3359399139881134 - <_> - - <_> - - - - <_>3 8 15 5 -1. - <_>8 8 5 5 3. - 0 - -0.1015655994415283 - 0.0637350380420685 - 0.5230425000190735 - <_> - - <_> - - - - <_>1 6 5 4 -1. - <_>1 8 5 2 2. - 0 - 0.0361566990613937 - 0.5136963129043579 - 0.1029528975486755 - <_> - - <_> - - - - <_>3 1 17 6 -1. - <_>3 3 17 2 3. - 0 - 3.4624140243977308e-003 - 0.3879320025444031 - 0.5558289289474487 - <_> - - <_> - - - - <_>6 7 8 2 -1. - <_>10 7 4 2 2. - 0 - 0.0195549800992012 - 0.5250086784362793 - 0.1875859946012497 - <_> - - <_> - - - - <_>9 7 3 2 -1. - <_>10 7 1 2 3. - 0 - -2.3121440317481756e-003 - 0.6672028899192810 - 0.4679641127586365 - <_> - - <_> - - - - <_>8 7 3 2 -1. - <_>9 7 1 2 3. - 0 - -1.8605289515107870e-003 - 0.7163379192352295 - 0.4334670901298523 - <_> - - <_> - - - - <_>8 9 4 2 -1. - <_>8 10 4 1 2. - 0 - -9.4026362057775259e-004 - 0.3021360933780670 - 0.5650203227996826 - <_> - - <_> - - - - <_>8 8 4 3 -1. - <_>8 9 4 1 3. - 0 - -5.2418331615626812e-003 - 0.1820009052753449 - 0.5250256061553955 - <_> - - <_> - - - - <_>9 5 6 4 -1. - <_>9 5 3 4 2. - 0 - 1.1729019752237946e-004 - 0.3389188051223755 - 0.5445973277091980 - <_> - - <_> - - - - <_>8 13 4 3 -1. - <_>8 14 4 1 3. - 0 - 1.1878840159624815e-003 - 0.4085349142551422 - 0.6253563165664673 - <_> - - <_> - - - - <_>4 7 12 6 -1. - <_>10 7 6 3 2. - <_>4 10 6 3 2. - 0 - -0.0108813596889377 - 0.3378399014472961 - 0.5700082778930664 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 1.7354859737679362e-003 - 0.4204635918140411 - 0.6523038744926453 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>9 8 3 1 3. - 0 - -6.5119052305817604e-003 - 0.2595216035842896 - 0.5428143739700317 - <_> - - <_> - - - - <_>7 4 3 8 -1. - <_>8 4 1 8 3. - 0 - -1.2136430013924837e-003 - 0.6165143847465515 - 0.3977893888950348 - <_> - - <_> - - - - <_>10 0 3 6 -1. - <_>11 0 1 6 3. - 0 - -0.0103542404249310 - 0.1628028005361557 - 0.5219504833221436 - <_> - - <_> - - - - <_>6 3 4 8 -1. - <_>8 3 2 8 2. - 0 - 5.5858830455690622e-004 - 0.3199650943279266 - 0.5503574013710022 - <_> - - <_> - - - - <_>14 3 6 13 -1. - <_>14 3 3 13 2. - 0 - 0.0152996499091387 - 0.4103994071483612 - 0.6122388243675232 - <_> - - <_> - - - - <_>8 13 3 6 -1. - <_>8 16 3 3 2. - 0 - -0.0215882100164890 - 0.1034912988543510 - 0.5197384953498840 - <_> - - <_> - - - - <_>14 3 6 13 -1. - <_>14 3 3 13 2. - 0 - -0.1283462941646576 - 0.8493865132331848 - 0.4893102943897247 - <_> - - <_> - - - - <_>0 7 10 4 -1. - <_>0 7 5 2 2. - <_>5 9 5 2 2. - 0 - -2.2927189711481333e-003 - 0.3130157887935638 - 0.5471575260162354 - <_> - - <_> - - - - <_>14 3 6 13 -1. - <_>14 3 3 13 2. - 0 - 0.0799151062965393 - 0.4856320917606354 - 0.6073989272117615 - <_> - - <_> - - - - <_>0 3 6 13 -1. - <_>3 3 3 13 2. - 0 - -0.0794410929083824 - 0.8394674062728882 - 0.4624533057212830 - <_> - - <_> - - - - <_>9 1 4 1 -1. - <_>9 1 2 1 2. - 0 - -5.2800010889768600e-003 - 0.1881695985794067 - 0.5306698083877564 - <_> - - <_> - - - - <_>8 0 2 1 -1. - <_>9 0 1 1 2. - 0 - 1.0463109938427806e-003 - 0.5271229147911072 - 0.2583065927028656 - <_> - - <_> - - - - <_>10 16 4 4 -1. - <_>12 16 2 2 2. - <_>10 18 2 2 2. - 0 - 2.6317298761568964e-004 - 0.4235304892063141 - 0.5735440850257874 - <_> - - <_> - - - - <_>9 6 2 3 -1. - <_>10 6 1 3 2. - 0 - -3.6173160187900066e-003 - 0.6934396028518677 - 0.4495444893836975 - <_> - - <_> - - - - <_>4 5 12 2 -1. - <_>8 5 4 2 3. - 0 - 0.0114218797534704 - 0.5900921225547791 - 0.4138193130493164 - <_> - - <_> - - - - <_>8 7 3 5 -1. - <_>9 7 1 5 3. - 0 - -1.9963278900831938e-003 - 0.6466382741928101 - 0.4327239990234375 - 24.5278797149658200 - 6 - -1 - <_> - - - <_> - - <_> - - - - <_>6 4 8 6 -1. - <_>6 6 8 2 3. - 0 - -9.9691245704889297e-003 - 0.6142324209213257 - 0.2482212036848068 - <_> - - <_> - - - - <_>9 5 2 12 -1. - <_>9 11 2 6 2. - 0 - 7.3073059320449829e-004 - 0.5704951882362366 - 0.2321965992450714 - <_> - - <_> - - - - <_>4 6 6 8 -1. - <_>4 10 6 4 2. - 0 - 6.4045301405712962e-004 - 0.2112251967191696 - 0.5814933180809021 - <_> - - <_> - - - - <_>12 2 8 5 -1. - <_>12 2 4 5 2. - 0 - 4.5424019917845726e-003 - 0.2950482070446014 - 0.5866311788558960 - <_> - - <_> - - - - <_>0 8 18 3 -1. - <_>0 9 18 1 3. - 0 - 9.2477443104144186e-005 - 0.2990990877151489 - 0.5791326761245728 - <_> - - <_> - - - - <_>8 12 4 8 -1. - <_>8 16 4 4 2. - 0 - -8.6603146046400070e-003 - 0.2813029885292053 - 0.5635542273521423 - <_> - - <_> - - - - <_>0 2 8 5 -1. - <_>4 2 4 5 2. - 0 - 8.0515816807746887e-003 - 0.3535369038581848 - 0.6054757237434387 - <_> - - <_> - - - - <_>13 11 3 4 -1. - <_>13 13 3 2 2. - 0 - 4.3835240649059415e-004 - 0.5596532225608826 - 0.2731510996818543 - <_> - - <_> - - - - <_>5 11 6 1 -1. - <_>7 11 2 1 3. - 0 - -9.8168973636347800e-005 - 0.5978031754493713 - 0.3638561069965363 - <_> - - <_> - - - - <_>11 3 3 1 -1. - <_>12 3 1 1 3. - 0 - -1.1298790341243148e-003 - 0.2755252122879028 - 0.5432729125022888 - <_> - - <_> - - - - <_>7 13 5 3 -1. - <_>7 14 5 1 3. - 0 - 6.4356150105595589e-003 - 0.4305641949176788 - 0.7069833278656006 - <_> - - <_> - - - - <_>11 11 7 6 -1. - <_>11 14 7 3 2. - 0 - -0.0568293295800686 - 0.2495242953300476 - 0.5294997096061707 - <_> - - <_> - - - - <_>2 11 7 6 -1. - <_>2 14 7 3 2. - 0 - 4.0668169967830181e-003 - 0.5478553175926209 - 0.2497723996639252 - <_> - - <_> - - - - <_>12 14 2 6 -1. - <_>12 16 2 2 3. - 0 - 4.8164798499783501e-005 - 0.3938601016998291 - 0.5706356167793274 - <_> - - <_> - - - - <_>8 14 3 3 -1. - <_>8 15 3 1 3. - 0 - 6.1795017682015896e-003 - 0.4407606124877930 - 0.7394766807556152 - <_> - - <_> - - - - <_>11 0 3 5 -1. - <_>12 0 1 5 3. - 0 - 6.4985752105712891e-003 - 0.5445243120193481 - 0.2479152977466583 - <_> - - <_> - - - - <_>6 1 4 9 -1. - <_>8 1 2 9 2. - 0 - -1.0211090557277203e-003 - 0.2544766962528229 - 0.5338971018791199 - <_> - - <_> - - - - <_>10 3 6 1 -1. - <_>12 3 2 1 3. - 0 - -5.4247528314590454e-003 - 0.2718858122825623 - 0.5324069261550903 - <_> - - <_> - - - - <_>8 8 3 4 -1. - <_>8 10 3 2 2. - 0 - -1.0559899965301156e-003 - 0.3178288042545319 - 0.5534508824348450 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>8 13 4 1 2. - 0 - 6.6465808777138591e-004 - 0.4284219145774841 - 0.6558194160461426 - <_> - - <_> - - - - <_>5 18 4 2 -1. - <_>5 19 4 1 2. - 0 - -2.7524109464138746e-004 - 0.5902860760688782 - 0.3810262978076935 - <_> - - <_> - - - - <_>2 1 18 6 -1. - <_>2 3 18 2 3. - 0 - 4.2293202131986618e-003 - 0.3816489875316620 - 0.5709385871887207 - <_> - - <_> - - - - <_>6 0 3 2 -1. - <_>7 0 1 2 3. - 0 - -3.2868210691958666e-003 - 0.1747743934392929 - 0.5259544253349304 - <_> - - <_> - - - - <_>13 8 6 2 -1. - <_>16 8 3 1 2. - <_>13 9 3 1 2. - 0 - 1.5611879643984139e-004 - 0.3601722121238709 - 0.5725612044334412 - <_> - - <_> - - - - <_>6 10 3 6 -1. - <_>6 13 3 3 2. - 0 - -7.3621381488919724e-006 - 0.5401858091354370 - 0.3044497072696686 - <_> - - <_> - - - - <_>0 13 20 4 -1. - <_>10 13 10 2 2. - <_>0 15 10 2 2. - 0 - -0.0147672500461340 - 0.3220770061016083 - 0.5573434829711914 - <_> - - <_> - - - - <_>7 7 6 5 -1. - <_>9 7 2 5 3. - 0 - 0.0244895908981562 - 0.4301528036594391 - 0.6518812775611877 - <_> - - <_> - - - - <_>11 0 2 2 -1. - <_>11 1 2 1 2. - 0 - -3.7652091123163700e-004 - 0.3564583063125610 - 0.5598236918449402 - <_> - - <_> - - - - <_>1 8 6 2 -1. - <_>1 8 3 1 2. - <_>4 9 3 1 2. - 0 - 7.3657688517414499e-006 - 0.3490782976150513 - 0.5561897754669190 - <_> - - <_> - - - - <_>0 2 20 2 -1. - <_>10 2 10 1 2. - <_>0 3 10 1 2. - 0 - -0.0150999398902059 - 0.1776272058486939 - 0.5335299968719482 - <_> - - <_> - - - - <_>7 14 5 3 -1. - <_>7 15 5 1 3. - 0 - -3.8316650316119194e-003 - 0.6149687767028809 - 0.4221394062042236 - <_> - - <_> - - - - <_>7 13 6 6 -1. - <_>10 13 3 3 2. - <_>7 16 3 3 2. - 0 - 0.0169254001230001 - 0.5413014888763428 - 0.2166585028171539 - <_> - - <_> - - - - <_>9 12 2 3 -1. - <_>9 13 2 1 3. - 0 - -3.0477850232273340e-003 - 0.6449490785598755 - 0.4354617893695831 - <_> - - <_> - - - - <_>16 11 1 6 -1. - <_>16 13 1 2 3. - 0 - 3.2140589319169521e-003 - 0.5400155186653137 - 0.3523217141628265 - <_> - - <_> - - - - <_>3 11 1 6 -1. - <_>3 13 1 2 3. - 0 - -4.0023201145231724e-003 - 0.2774524092674255 - 0.5338417291641235 - <_> - - <_> - - - - <_>4 4 14 12 -1. - <_>11 4 7 6 2. - <_>4 10 7 6 2. - 0 - 7.4182129465043545e-003 - 0.5676739215850830 - 0.3702817857265472 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - -8.8764587417244911e-003 - 0.7749221920967102 - 0.4583688974380493 - <_> - - <_> - - - - <_>12 3 3 3 -1. - <_>13 3 1 3 3. - 0 - 2.7311739977449179e-003 - 0.5338721871376038 - 0.3996661007404327 - <_> - - <_> - - - - <_>6 6 8 3 -1. - <_>6 7 8 1 3. - 0 - -2.5082379579544067e-003 - 0.5611963272094727 - 0.3777498900890350 - <_> - - <_> - - - - <_>12 3 3 3 -1. - <_>13 3 1 3 3. - 0 - -8.0541074275970459e-003 - 0.2915228903293610 - 0.5179182887077332 - <_> - - <_> - - - - <_>3 1 4 10 -1. - <_>3 1 2 5 2. - <_>5 6 2 5 2. - 0 - -9.7938813269138336e-004 - 0.5536432862281799 - 0.3700192868709564 - <_> - - <_> - - - - <_>5 7 10 2 -1. - <_>5 7 5 2 2. - 0 - -5.8745909482240677e-003 - 0.3754391074180603 - 0.5679376125335693 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>9 7 1 3 3. - 0 - -4.4936719350516796e-003 - 0.7019699215888977 - 0.4480949938297272 - <_> - - <_> - - - - <_>15 12 2 3 -1. - <_>15 13 2 1 3. - 0 - -5.4389229044318199e-003 - 0.2310364991426468 - 0.5313386917114258 - <_> - - <_> - - - - <_>7 8 3 4 -1. - <_>8 8 1 4 3. - 0 - -7.5094640487805009e-004 - 0.5864868760108948 - 0.4129343032836914 - <_> - - <_> - - - - <_>13 4 1 12 -1. - <_>13 10 1 6 2. - 0 - 1.4528800420521293e-005 - 0.3732407093048096 - 0.5619621276855469 - <_> - - <_> - - - - <_>4 5 12 12 -1. - <_>4 5 6 6 2. - <_>10 11 6 6 2. - 0 - 0.0407580696046352 - 0.5312091112136841 - 0.2720521986484528 - <_> - - <_> - - - - <_>7 14 7 3 -1. - <_>7 15 7 1 3. - 0 - 6.6505931317806244e-003 - 0.4710015952587128 - 0.6693493723869324 - <_> - - <_> - - - - <_>3 12 2 3 -1. - <_>3 13 2 1 3. - 0 - 4.5759351924061775e-003 - 0.5167819261550903 - 0.1637275964021683 - <_> - - <_> - - - - <_>3 2 14 2 -1. - <_>10 2 7 1 2. - <_>3 3 7 1 2. - 0 - 6.5269311890006065e-003 - 0.5397608876228333 - 0.2938531935214996 - <_> - - <_> - - - - <_>0 1 3 10 -1. - <_>1 1 1 10 3. - 0 - -0.0136603796854615 - 0.7086488008499146 - 0.4532200098037720 - <_> - - <_> - - - - <_>9 0 6 5 -1. - <_>11 0 2 5 3. - 0 - 0.0273588690906763 - 0.5206481218338013 - 0.3589231967926025 - <_> - - <_> - - - - <_>5 7 6 2 -1. - <_>8 7 3 2 2. - 0 - 6.2197551596909761e-004 - 0.3507075905799866 - 0.5441123247146606 - <_> - - <_> - - - - <_>7 1 6 10 -1. - <_>7 6 6 5 2. - 0 - -3.3077080734074116e-003 - 0.5859522819519043 - 0.4024891853332520 - <_> - - <_> - - - - <_>1 1 18 3 -1. - <_>7 1 6 3 3. - 0 - -0.0106311095878482 - 0.6743267178535461 - 0.4422602951526642 - <_> - - <_> - - - - <_>16 3 3 6 -1. - <_>16 5 3 2 3. - 0 - 0.0194416493177414 - 0.5282716155052185 - 0.1797904968261719 - 27.1533508300781250 - 7 - -1 - <_> - - - <_> - - <_> - - - - <_>6 3 7 6 -1. - <_>6 6 7 3 2. - 0 - -5.5052167735993862e-003 - 0.5914731025695801 - 0.2626559138298035 - <_> - - <_> - - - - <_>4 7 12 2 -1. - <_>8 7 4 2 3. - 0 - 1.9562279339879751e-003 - 0.2312581986188889 - 0.5741627216339111 - <_> - - <_> - - - - <_>0 4 17 10 -1. - <_>0 9 17 5 2. - 0 - -8.8924784213304520e-003 - 0.1656530052423477 - 0.5626654028892517 - <_> - - <_> - - - - <_>3 4 15 16 -1. - <_>3 12 15 8 2. - 0 - 0.0836383774876595 - 0.5423449873924255 - 0.1957294940948486 - <_> - - <_> - - - - <_>7 15 6 4 -1. - <_>7 17 6 2 2. - 0 - 1.2282270472496748e-003 - 0.3417904078960419 - 0.5992503762245178 - <_> - - <_> - - - - <_>15 2 4 9 -1. - <_>15 2 2 9 2. - 0 - 5.7629169896245003e-003 - 0.3719581961631775 - 0.6079903841018677 - <_> - - <_> - - - - <_>2 3 3 2 -1. - <_>2 4 3 1 2. - 0 - -1.6417410224676132e-003 - 0.2577486038208008 - 0.5576915740966797 - <_> - - <_> - - - - <_>13 6 7 9 -1. - <_>13 9 7 3 3. - 0 - 3.4113149158656597e-003 - 0.2950749099254608 - 0.5514171719551086 - <_> - - <_> - - - - <_>8 11 4 3 -1. - <_>8 12 4 1 3. - 0 - -0.0110693201422691 - 0.7569358944892883 - 0.4477078914642334 - <_> - - <_> - - - - <_>0 2 20 6 -1. - <_>10 2 10 3 2. - <_>0 5 10 3 2. - 0 - 0.0348659716546535 - 0.5583708882331848 - 0.2669621109962463 - <_> - - <_> - - - - <_>3 2 6 10 -1. - <_>3 2 3 5 2. - <_>6 7 3 5 2. - 0 - 6.5701099811121821e-004 - 0.5627313256263733 - 0.2988890111446381 - <_> - - <_> - - - - <_>13 10 3 4 -1. - <_>13 12 3 2 2. - 0 - -0.0243391301482916 - 0.2771185040473938 - 0.5108863115310669 - <_> - - <_> - - - - <_>4 10 3 4 -1. - <_>4 12 3 2 2. - 0 - 5.9435202274471521e-004 - 0.5580651760101318 - 0.3120341897010803 - <_> - - <_> - - - - <_>7 5 6 3 -1. - <_>9 5 2 3 3. - 0 - 2.2971509024500847e-003 - 0.3330250084400177 - 0.5679075717926025 - <_> - - <_> - - - - <_>7 6 6 8 -1. - <_>7 10 6 4 2. - 0 - -3.7801829166710377e-003 - 0.2990534901618958 - 0.5344808101654053 - <_> - - <_> - - - - <_>0 11 20 6 -1. - <_>0 14 20 3 2. - 0 - -0.1342066973447800 - 0.1463858932256699 - 0.5392568111419678 - <_> - - <_> - - - - <_>4 13 4 6 -1. - <_>4 13 2 3 2. - <_>6 16 2 3 2. - 0 - 7.5224548345431685e-004 - 0.3746953904628754 - 0.5692734718322754 - <_> - - <_> - - - - <_>6 0 8 12 -1. - <_>10 0 4 6 2. - <_>6 6 4 6 2. - 0 - -0.0405455417931080 - 0.2754747867584229 - 0.5484297871589661 - <_> - - <_> - - - - <_>2 0 15 2 -1. - <_>2 1 15 1 2. - 0 - 1.2572970008477569e-003 - 0.3744584023952484 - 0.5756075978279114 - <_> - - <_> - - - - <_>9 12 2 3 -1. - <_>9 13 2 1 3. - 0 - -7.4249948374927044e-003 - 0.7513859272003174 - 0.4728231132030487 - <_> - - <_> - - - - <_>3 12 1 2 -1. - <_>3 13 1 1 2. - 0 - 5.0908129196614027e-004 - 0.5404896736145020 - 0.2932321131229401 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -1.2808450264856219e-003 - 0.6169779896736145 - 0.4273349046707153 - <_> - - <_> - - - - <_>7 3 3 1 -1. - <_>8 3 1 1 3. - 0 - -1.8348860321566463e-003 - 0.2048496007919312 - 0.5206472277641296 - <_> - - <_> - - - - <_>17 7 3 6 -1. - <_>17 9 3 2 3. - 0 - 0.0274848695844412 - 0.5252984762191773 - 0.1675522029399872 - <_> - - <_> - - - - <_>7 2 3 2 -1. - <_>8 2 1 2 3. - 0 - 2.2372419480234385e-003 - 0.5267782807350159 - 0.2777658104896545 - <_> - - <_> - - - - <_>11 4 5 3 -1. - <_>11 5 5 1 3. - 0 - -8.8635291904211044e-003 - 0.6954557895660400 - 0.4812048971652985 - <_> - - <_> - - - - <_>4 4 5 3 -1. - <_>4 5 5 1 3. - 0 - 4.1753971017897129e-003 - 0.4291887879371643 - 0.6349195837974548 - <_> - - <_> - - - - <_>19 3 1 2 -1. - <_>19 4 1 1 2. - 0 - -1.7098189564421773e-003 - 0.2930536866188049 - 0.5361248850822449 - <_> - - <_> - - - - <_>5 5 4 3 -1. - <_>5 6 4 1 3. - 0 - 6.5328548662364483e-003 - 0.4495325088500977 - 0.7409694194793701 - <_> - - <_> - - - - <_>17 7 3 6 -1. - <_>17 9 3 2 3. - 0 - -9.5372907817363739e-003 - 0.3149119913578033 - 0.5416501760482788 - <_> - - <_> - - - - <_>0 7 3 6 -1. - <_>0 9 3 2 3. - 0 - 0.0253109894692898 - 0.5121892094612122 - 0.1311707943677902 - <_> - - <_> - - - - <_>14 2 6 9 -1. - <_>14 5 6 3 3. - 0 - 0.0364609695971012 - 0.5175911784172058 - 0.2591339945793152 - <_> - - <_> - - - - <_>0 4 5 6 -1. - <_>0 6 5 2 3. - 0 - 0.0208543296903372 - 0.5137140154838562 - 0.1582316011190414 - <_> - - <_> - - - - <_>10 5 6 2 -1. - <_>12 5 2 2 3. - 0 - -8.7207747856155038e-004 - 0.5574309825897217 - 0.4398978948593140 - <_> - - <_> - - - - <_>4 5 6 2 -1. - <_>6 5 2 2 3. - 0 - -1.5227000403683633e-005 - 0.5548940896987915 - 0.3708069920539856 - <_> - - <_> - - - - <_>8 1 4 6 -1. - <_>8 3 4 2 3. - 0 - -8.4316509310156107e-004 - 0.3387419879436493 - 0.5554211139678955 - <_> - - <_> - - - - <_>0 2 3 6 -1. - <_>0 4 3 2 3. - 0 - 3.6037859972566366e-003 - 0.5358061790466309 - 0.3411171138286591 - <_> - - <_> - - - - <_>6 6 8 3 -1. - <_>6 7 8 1 3. - 0 - -6.8057891912758350e-003 - 0.6125202775001526 - 0.4345862865447998 - <_> - - <_> - - - - <_>0 1 5 9 -1. - <_>0 4 5 3 3. - 0 - -0.0470216609537601 - 0.2358165979385376 - 0.5193738937377930 - <_> - - <_> - - - - <_>16 0 4 15 -1. - <_>16 0 2 15 2. - 0 - -0.0369541086256504 - 0.7323111295700073 - 0.4760943949222565 - <_> - - <_> - - - - <_>1 10 3 2 -1. - <_>1 11 3 1 2. - 0 - 1.0439479956403375e-003 - 0.5419455170631409 - 0.3411330878734589 - <_> - - <_> - - - - <_>14 4 1 10 -1. - <_>14 9 1 5 2. - 0 - -2.1050689974799752e-004 - 0.2821694016456604 - 0.5554947257041931 - <_> - - <_> - - - - <_>0 1 4 12 -1. - <_>2 1 2 12 2. - 0 - -0.0808315873146057 - 0.9129930138587952 - 0.4697434902191162 - <_> - - <_> - - - - <_>11 11 4 2 -1. - <_>11 11 2 2 2. - 0 - -3.6579059087671340e-004 - 0.6022670269012451 - 0.3978292942047119 - <_> - - <_> - - - - <_>5 11 4 2 -1. - <_>7 11 2 2 2. - 0 - -1.2545920617412776e-004 - 0.5613213181495667 - 0.3845539987087250 - <_> - - <_> - - - - <_>3 8 15 5 -1. - <_>8 8 5 5 3. - 0 - -0.0687864869832993 - 0.2261611968278885 - 0.5300496816635132 - <_> - - <_> - - - - <_>0 0 6 10 -1. - <_>3 0 3 10 2. - 0 - 0.0124157899990678 - 0.4075691998004913 - 0.5828812122344971 - <_> - - <_> - - - - <_>11 4 3 2 -1. - <_>12 4 1 2 3. - 0 - -4.7174817882478237e-003 - 0.2827253937721252 - 0.5267757773399353 - <_> - - <_> - - - - <_>8 12 3 8 -1. - <_>8 16 3 4 2. - 0 - 0.0381368584930897 - 0.5074741244316101 - 0.1023615971207619 - <_> - - <_> - - - - <_>8 14 5 3 -1. - <_>8 15 5 1 3. - 0 - -2.8168049175292253e-003 - 0.6169006824493408 - 0.4359692931175232 - <_> - - <_> - - - - <_>7 14 4 3 -1. - <_>7 15 4 1 3. - 0 - 8.1303603947162628e-003 - 0.4524433016777039 - 0.7606095075607300 - <_> - - <_> - - - - <_>11 4 3 2 -1. - <_>12 4 1 2 3. - 0 - 6.0056019574403763e-003 - 0.5240408778190613 - 0.1859712004661560 - <_> - - <_> - - - - <_>3 15 14 4 -1. - <_>3 15 7 2 2. - <_>10 17 7 2 2. - 0 - 0.0191393196582794 - 0.5209379196166992 - 0.2332071959972382 - <_> - - <_> - - - - <_>2 2 16 4 -1. - <_>10 2 8 2 2. - <_>2 4 8 2 2. - 0 - 0.0164457596838474 - 0.5450702905654907 - 0.3264234960079193 - <_> - - <_> - - - - <_>0 8 6 12 -1. - <_>3 8 3 12 2. - 0 - -0.0373568907380104 - 0.6999046802520752 - 0.4533241987228394 - <_> - - <_> - - - - <_>5 7 10 2 -1. - <_>5 7 5 2 2. - 0 - -0.0197279006242752 - 0.2653664946556091 - 0.5412809848785400 - <_> - - <_> - - - - <_>9 7 2 5 -1. - <_>10 7 1 5 2. - 0 - 6.6972579807043076e-003 - 0.4480566084384918 - 0.7138652205467224 - <_> - - <_> - - - - <_>13 7 6 4 -1. - <_>16 7 3 2 2. - <_>13 9 3 2 2. - 0 - 7.4457528535276651e-004 - 0.4231350123882294 - 0.5471320152282715 - <_> - - <_> - - - - <_>0 13 8 2 -1. - <_>0 14 8 1 2. - 0 - 1.1790640419349074e-003 - 0.5341702103614807 - 0.3130455017089844 - <_> - - <_> - - - - <_>13 7 6 4 -1. - <_>16 7 3 2 2. - <_>13 9 3 2 2. - 0 - 0.0349806100130081 - 0.5118659734725952 - 0.3430530130863190 - <_> - - <_> - - - - <_>1 7 6 4 -1. - <_>1 7 3 2 2. - <_>4 9 3 2 2. - 0 - 5.6859792675822973e-004 - 0.3532187044620514 - 0.5468639731407166 - <_> - - <_> - - - - <_>12 6 1 12 -1. - <_>12 12 1 6 2. - 0 - -0.0113406497985125 - 0.2842353880405426 - 0.5348700881004334 - <_> - - <_> - - - - <_>9 5 2 6 -1. - <_>10 5 1 6 2. - 0 - -6.6228108480572701e-003 - 0.6883640289306641 - 0.4492664933204651 - <_> - - <_> - - - - <_>14 12 2 3 -1. - <_>14 13 2 1 3. - 0 - -8.0160330981016159e-003 - 0.1709893941879273 - 0.5224308967590332 - <_> - - <_> - - - - <_>4 12 2 3 -1. - <_>4 13 2 1 3. - 0 - 1.4206819469109178e-003 - 0.5290846228599548 - 0.2993383109569550 - <_> - - <_> - - - - <_>8 12 4 3 -1. - <_>8 13 4 1 3. - 0 - -2.7801711112260818e-003 - 0.6498854160308838 - 0.4460499882698059 - <_> - - <_> - - - - <_>5 2 2 4 -1. - <_>5 2 1 2 2. - <_>6 4 1 2 2. - 0 - -1.4747589593753219e-003 - 0.3260438144207001 - 0.5388113260269165 - <_> - - <_> - - - - <_>5 5 11 3 -1. - <_>5 6 11 1 3. - 0 - -0.0238303393125534 - 0.7528941035270691 - 0.4801219999790192 - <_> - - <_> - - - - <_>7 6 4 12 -1. - <_>7 12 4 6 2. - 0 - 6.9369790144264698e-003 - 0.5335165858268738 - 0.3261427879333496 - <_> - - <_> - - - - <_>12 13 8 5 -1. - <_>12 13 4 5 2. - 0 - 8.2806255668401718e-003 - 0.4580394029617310 - 0.5737829804420471 - <_> - - <_> - - - - <_>7 6 1 12 -1. - <_>7 12 1 6 2. - 0 - -0.0104395002126694 - 0.2592320144176483 - 0.5233827829360962 - 34.5541114807128910 - 8 - -1 - <_> - - - <_> - - <_> - - - - <_>1 2 6 3 -1. - <_>4 2 3 3 2. - 0 - 7.2006587870419025e-003 - 0.3258886039257050 - 0.6849808096885681 - <_> - - <_> - - - - <_>9 5 6 10 -1. - <_>12 5 3 5 2. - <_>9 10 3 5 2. - 0 - -2.8593589086085558e-003 - 0.5838881134986877 - 0.2537829875946045 - <_> - - <_> - - - - <_>5 5 8 12 -1. - <_>5 5 4 6 2. - <_>9 11 4 6 2. - 0 - 6.8580528022721410e-004 - 0.5708081722259522 - 0.2812424004077911 - <_> - - <_> - - - - <_>0 7 20 6 -1. - <_>0 9 20 2 3. - 0 - 7.9580191522836685e-003 - 0.2501051127910614 - 0.5544260740280151 - <_> - - <_> - - - - <_>4 2 2 2 -1. - <_>4 3 2 1 2. - 0 - -1.2124150525778532e-003 - 0.2385368049144745 - 0.5433350205421448 - <_> - - <_> - - - - <_>4 18 12 2 -1. - <_>8 18 4 2 3. - 0 - 7.9426132142543793e-003 - 0.3955070972442627 - 0.6220757961273193 - <_> - - <_> - - - - <_>7 4 4 16 -1. - <_>7 12 4 8 2. - 0 - 2.4630590341985226e-003 - 0.5639708042144775 - 0.2992357909679413 - <_> - - <_> - - - - <_>7 6 7 8 -1. - <_>7 10 7 4 2. - 0 - -6.0396599583327770e-003 - 0.2186512947082520 - 0.5411676764488220 - <_> - - <_> - - - - <_>6 3 3 1 -1. - <_>7 3 1 1 3. - 0 - -1.2988339876756072e-003 - 0.2350706011056900 - 0.5364584922790527 - <_> - - <_> - - - - <_>11 15 2 4 -1. - <_>11 17 2 2 2. - 0 - 2.2299369447864592e-004 - 0.3804112970829010 - 0.5729606151580811 - <_> - - <_> - - - - <_>3 5 4 8 -1. - <_>3 9 4 4 2. - 0 - 1.4654280385002494e-003 - 0.2510167956352234 - 0.5258268713951111 - <_> - - <_> - - - - <_>7 1 6 12 -1. - <_>7 7 6 6 2. - 0 - -8.1210042117163539e-004 - 0.5992823839187622 - 0.3851158916950226 - <_> - - <_> - - - - <_>4 6 6 2 -1. - <_>6 6 2 2 3. - 0 - -1.3836020370945334e-003 - 0.5681396126747131 - 0.3636586964130402 - <_> - - <_> - - - - <_>16 4 4 6 -1. - <_>16 6 4 2 3. - 0 - -0.0279364492744207 - 0.1491317003965378 - 0.5377560257911682 - <_> - - <_> - - - - <_>3 3 5 2 -1. - <_>3 4 5 1 2. - 0 - -4.6919551095925272e-004 - 0.3692429959774017 - 0.5572484731674194 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -4.9829659983515739e-003 - 0.6758509278297424 - 0.4532504081726074 - <_> - - <_> - - - - <_>2 16 4 2 -1. - <_>2 17 4 1 2. - 0 - 1.8815309740602970e-003 - 0.5368022918701172 - 0.2932539880275726 - <_> - - <_> - - - - <_>7 13 6 6 -1. - <_>10 13 3 3 2. - <_>7 16 3 3 2. - 0 - -0.0190675500780344 - 0.1649377048015595 - 0.5330067276954651 - <_> - - <_> - - - - <_>7 0 3 4 -1. - <_>8 0 1 4 3. - 0 - -4.6906559728085995e-003 - 0.1963925957679749 - 0.5119361877441406 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - 5.9777139686048031e-003 - 0.4671171903610230 - 0.7008398175239563 - <_> - - <_> - - - - <_>0 4 4 6 -1. - <_>0 6 4 2 3. - 0 - -0.0333031304180622 - 0.1155416965484619 - 0.5104162096977234 - <_> - - <_> - - - - <_>5 6 12 3 -1. - <_>9 6 4 3 3. - 0 - 0.0907441079616547 - 0.5149660110473633 - 0.1306173056364059 - <_> - - <_> - - - - <_>7 6 6 14 -1. - <_>9 6 2 14 3. - 0 - 9.3555898638442159e-004 - 0.3605481088161469 - 0.5439859032630920 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>10 7 1 3 3. - 0 - 0.0149016501381993 - 0.4886212050914764 - 0.7687569856643677 - <_> - - <_> - - - - <_>6 12 2 4 -1. - <_>6 14 2 2 2. - 0 - 6.1594118596985936e-004 - 0.5356813073158264 - 0.3240939080715179 - <_> - - <_> - - - - <_>10 12 7 6 -1. - <_>10 14 7 2 3. - 0 - -0.0506709888577461 - 0.1848621964454651 - 0.5230404138565064 - <_> - - <_> - - - - <_>1 0 15 2 -1. - <_>1 1 15 1 2. - 0 - 6.8665749859064817e-004 - 0.3840579986572266 - 0.5517945885658264 - <_> - - <_> - - - - <_>14 0 6 6 -1. - <_>14 0 3 6 2. - 0 - 8.3712432533502579e-003 - 0.4288564026355743 - 0.6131753921508789 - <_> - - <_> - - - - <_>5 3 3 1 -1. - <_>6 3 1 1 3. - 0 - -1.2953069526702166e-003 - 0.2913674116134644 - 0.5280737876892090 - <_> - - <_> - - - - <_>14 0 6 6 -1. - <_>14 0 3 6 2. - 0 - -0.0419416800141335 - 0.7554799914360046 - 0.4856030941009522 - <_> - - <_> - - - - <_>0 3 20 10 -1. - <_>0 8 20 5 2. - 0 - -0.0235293805599213 - 0.2838279902935028 - 0.5256081223487854 - <_> - - <_> - - - - <_>14 0 6 6 -1. - <_>14 0 3 6 2. - 0 - 0.0408574491739273 - 0.4870935082435608 - 0.6277297139167786 - <_> - - <_> - - - - <_>0 0 6 6 -1. - <_>3 0 3 6 2. - 0 - -0.0254068691283464 - 0.7099707722663879 - 0.4575029015541077 - <_> - - <_> - - - - <_>19 15 1 2 -1. - <_>19 16 1 1 2. - 0 - -4.1415440500713885e-004 - 0.4030886888504028 - 0.5469412207603455 - <_> - - <_> - - - - <_>0 2 4 8 -1. - <_>2 2 2 8 2. - 0 - 0.0218241196125746 - 0.4502024054527283 - 0.6768701076507568 - <_> - - <_> - - - - <_>2 1 18 4 -1. - <_>11 1 9 2 2. - <_>2 3 9 2 2. - 0 - 0.0141140399500728 - 0.5442860722541809 - 0.3791700005531311 - <_> - - <_> - - - - <_>8 12 1 2 -1. - <_>8 13 1 1 2. - 0 - 6.7214590671937913e-005 - 0.4200463891029358 - 0.5873476266860962 - <_> - - <_> - - - - <_>5 2 10 6 -1. - <_>10 2 5 3 2. - <_>5 5 5 3 2. - 0 - -7.9417638480663300e-003 - 0.3792561888694763 - 0.5585265755653381 - <_> - - <_> - - - - <_>9 7 2 4 -1. - <_>10 7 1 4 2. - 0 - -7.2144409641623497e-003 - 0.7253103852272034 - 0.4603548943996429 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>10 7 1 3 3. - 0 - 2.5817339774221182e-003 - 0.4693301916122437 - 0.5900238752365112 - <_> - - <_> - - - - <_>4 5 12 8 -1. - <_>8 5 4 8 3. - 0 - 0.1340931951999664 - 0.5149213075637817 - 0.1808844953775406 - <_> - - <_> - - - - <_>15 15 4 3 -1. - <_>15 16 4 1 3. - 0 - 2.2962710354477167e-003 - 0.5399743914604187 - 0.3717867136001587 - <_> - - <_> - - - - <_>8 18 3 1 -1. - <_>9 18 1 1 3. - 0 - -2.1575849968940020e-003 - 0.2408495992422104 - 0.5148863792419434 - <_> - - <_> - - - - <_>9 13 4 3 -1. - <_>9 14 4 1 3. - 0 - -4.9196188338100910e-003 - 0.6573588252067566 - 0.4738740026950836 - <_> - - <_> - - - - <_>7 13 4 3 -1. - <_>7 14 4 1 3. - 0 - 1.6267469618469477e-003 - 0.4192821979522705 - 0.6303114295005798 - <_> - - <_> - - - - <_>19 15 1 2 -1. - <_>19 16 1 1 2. - 0 - 3.3413388882763684e-004 - 0.5540298223495483 - 0.3702101111412048 - <_> - - <_> - - - - <_>0 15 8 4 -1. - <_>0 17 8 2 2. - 0 - -0.0266980808228254 - 0.1710917949676514 - 0.5101410746574402 - <_> - - <_> - - - - <_>9 3 6 4 -1. - <_>11 3 2 4 3. - 0 - -0.0305618792772293 - 0.1904218047857285 - 0.5168793797492981 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 2.8511548880487680e-003 - 0.4447506964206696 - 0.6313853859901428 - <_> - - <_> - - - - <_>3 14 14 6 -1. - <_>3 16 14 2 3. - 0 - -0.0362114794552326 - 0.2490727007389069 - 0.5377349257469177 - <_> - - <_> - - - - <_>6 3 6 6 -1. - <_>6 6 6 3 2. - 0 - -2.4115189444273710e-003 - 0.5381243228912354 - 0.3664236962795258 - <_> - - <_> - - - - <_>5 11 10 6 -1. - <_>5 14 10 3 2. - 0 - -7.7253201743587852e-004 - 0.5530232191085815 - 0.3541550040245056 - <_> - - <_> - - - - <_>3 10 3 4 -1. - <_>4 10 1 4 3. - 0 - 2.9481729143299162e-004 - 0.4132699072360992 - 0.5667243003845215 - <_> - - <_> - - - - <_>13 9 2 2 -1. - <_>13 9 1 2 2. - 0 - -6.2334560789167881e-003 - 0.0987872332334518 - 0.5198668837547302 - <_> - - <_> - - - - <_>5 3 6 4 -1. - <_>7 3 2 4 3. - 0 - -0.0262747295200825 - 0.0911274924874306 - 0.5028107166290283 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>10 7 1 3 3. - 0 - 5.3212260827422142e-003 - 0.4726648926734924 - 0.6222720742225647 - <_> - - <_> - - - - <_>2 12 2 3 -1. - <_>2 13 2 1 3. - 0 - -4.1129058226943016e-003 - 0.2157457023859024 - 0.5137804746627808 - <_> - - <_> - - - - <_>9 8 3 12 -1. - <_>9 12 3 4 3. - 0 - 3.2457809429615736e-003 - 0.5410770773887634 - 0.3721776902675629 - <_> - - <_> - - - - <_>3 14 4 6 -1. - <_>3 14 2 3 2. - <_>5 17 2 3 2. - 0 - -0.0163597092032433 - 0.7787874937057495 - 0.4685291945934296 - <_> - - <_> - - - - <_>16 15 2 2 -1. - <_>16 16 2 1 2. - 0 - 3.2166109303943813e-004 - 0.5478987097740173 - 0.4240373969078064 - <_> - - <_> - - - - <_>2 15 2 2 -1. - <_>2 16 2 1 2. - 0 - 6.4452440710738301e-004 - 0.5330560803413391 - 0.3501324951648712 - <_> - - <_> - - - - <_>8 12 4 3 -1. - <_>8 13 4 1 3. - 0 - -7.8909732401371002e-003 - 0.6923521161079407 - 0.4726569056510925 - <_> - - <_> - - - - <_>0 7 20 1 -1. - <_>10 7 10 1 2. - 0 - 0.0483362115919590 - 0.5055900216102600 - 0.0757492035627365 - <_> - - <_> - - - - <_>7 6 8 3 -1. - <_>7 6 4 3 2. - 0 - -7.5178127735853195e-004 - 0.3783741891384125 - 0.5538573861122131 - <_> - - <_> - - - - <_>5 7 8 2 -1. - <_>9 7 4 2 2. - 0 - -2.4953910615295172e-003 - 0.3081651031970978 - 0.5359612107276917 - <_> - - <_> - - - - <_>9 7 3 5 -1. - <_>10 7 1 5 3. - 0 - -2.2385010961443186e-003 - 0.6633958816528320 - 0.4649342894554138 - <_> - - <_> - - - - <_>8 7 3 5 -1. - <_>9 7 1 5 3. - 0 - -1.7988430336117744e-003 - 0.6596844792366028 - 0.4347187876701355 - <_> - - <_> - - - - <_>11 1 3 5 -1. - <_>12 1 1 5 3. - 0 - 8.7860915809869766e-003 - 0.5231832861900330 - 0.2315579950809479 - <_> - - <_> - - - - <_>6 2 3 6 -1. - <_>7 2 1 6 3. - 0 - 3.6715380847454071e-003 - 0.5204250216484070 - 0.2977376878261566 - <_> - - <_> - - - - <_>14 14 6 5 -1. - <_>14 14 3 5 2. - 0 - -0.0353364497423172 - 0.7238878011703491 - 0.4861505031585693 - <_> - - <_> - - - - <_>9 8 2 2 -1. - <_>9 9 2 1 2. - 0 - -6.9189240457490087e-004 - 0.3105022013187408 - 0.5229824781417847 - <_> - - <_> - - - - <_>10 7 1 3 -1. - <_>10 8 1 1 3. - 0 - -3.3946109469980001e-003 - 0.3138968050479889 - 0.5210173726081848 - <_> - - <_> - - - - <_>6 6 2 2 -1. - <_>6 6 1 1 2. - <_>7 7 1 1 2. - 0 - 9.8569283727556467e-004 - 0.4536580145359039 - 0.6585097908973694 - <_> - - <_> - - - - <_>2 11 18 4 -1. - <_>11 11 9 2 2. - <_>2 13 9 2 2. - 0 - -0.0501631014049053 - 0.1804454028606415 - 0.5198916792869568 - <_> - - <_> - - - - <_>6 6 2 2 -1. - <_>6 6 1 1 2. - <_>7 7 1 1 2. - 0 - -2.2367259953171015e-003 - 0.7255702018737793 - 0.4651359021663666 - <_> - - <_> - - - - <_>0 15 20 2 -1. - <_>0 16 20 1 2. - 0 - 7.4326287722215056e-004 - 0.4412921071052551 - 0.5898545980453491 - <_> - - <_> - - - - <_>4 14 2 3 -1. - <_>4 15 2 1 3. - 0 - -9.3485182151198387e-004 - 0.3500052988529205 - 0.5366017818450928 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 0.0174979399889708 - 0.4912194907665253 - 0.8315284848213196 - <_> - - <_> - - - - <_>8 7 2 3 -1. - <_>8 8 2 1 3. - 0 - -1.5200000489130616e-003 - 0.3570275902748108 - 0.5370560288429260 - <_> - - <_> - - - - <_>9 10 2 3 -1. - <_>9 11 2 1 3. - 0 - 7.8003940870985389e-004 - 0.4353772103786469 - 0.5967335104942322 - 39.1072883605957030 - 9 - -1 - <_> - - - <_> - - <_> - - - - <_>5 4 10 4 -1. - <_>5 6 10 2 2. - 0 - -9.9945552647113800e-003 - 0.6162583231925964 - 0.3054533004760742 - <_> - - <_> - - - - <_>9 7 6 4 -1. - <_>12 7 3 2 2. - <_>9 9 3 2 2. - 0 - -1.1085229925811291e-003 - 0.5818294882774353 - 0.3155578076839447 - <_> - - <_> - - - - <_>4 7 3 6 -1. - <_>4 9 3 2 3. - 0 - 1.0364380432292819e-003 - 0.2552052140235901 - 0.5692911744117737 - <_> - - <_> - - - - <_>11 15 4 4 -1. - <_>13 15 2 2 2. - <_>11 17 2 2 2. - 0 - 6.8211311008781195e-004 - 0.3685089945793152 - 0.5934931039810181 - <_> - - <_> - - - - <_>7 8 4 2 -1. - <_>7 9 4 1 2. - 0 - -6.8057340104132891e-004 - 0.2332392036914825 - 0.5474792122840881 - <_> - - <_> - - - - <_>13 1 4 3 -1. - <_>13 1 2 3 2. - 0 - 2.6068789884448051e-004 - 0.3257457017898560 - 0.5667545795440674 - <_> - - <_> - - - - <_>5 15 4 4 -1. - <_>5 15 2 2 2. - <_>7 17 2 2 2. - 0 - 5.1607372006401420e-004 - 0.3744716942310333 - 0.5845472812652588 - <_> - - <_> - - - - <_>9 5 4 7 -1. - <_>9 5 2 7 2. - 0 - 8.5007521556690335e-004 - 0.3420371115207672 - 0.5522807240486145 - <_> - - <_> - - - - <_>5 6 8 3 -1. - <_>9 6 4 3 2. - 0 - -1.8607829697430134e-003 - 0.2804419994354248 - 0.5375424027442932 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -1.5033970121294260e-003 - 0.2579050958156586 - 0.5498952269554138 - <_> - - <_> - - - - <_>7 15 5 3 -1. - <_>7 16 5 1 3. - 0 - 2.3478909861296415e-003 - 0.4175156056880951 - 0.6313710808753967 - <_> - - <_> - - - - <_>11 10 4 3 -1. - <_>11 10 2 3 2. - 0 - -2.8880240279249847e-004 - 0.5865169763565064 - 0.4052666127681732 - <_> - - <_> - - - - <_>6 9 8 10 -1. - <_>6 14 8 5 2. - 0 - 8.9405477046966553e-003 - 0.5211141109466553 - 0.2318654060363770 - <_> - - <_> - - - - <_>10 11 6 2 -1. - <_>10 11 3 2 2. - 0 - -0.0193277392536402 - 0.2753432989120483 - 0.5241525769233704 - <_> - - <_> - - - - <_>4 11 6 2 -1. - <_>7 11 3 2 2. - 0 - -2.0202060113660991e-004 - 0.5722978711128235 - 0.3677195906639099 - <_> - - <_> - - - - <_>11 3 8 1 -1. - <_>11 3 4 1 2. - 0 - 2.1179069299250841e-003 - 0.4466108083724976 - 0.5542430877685547 - <_> - - <_> - - - - <_>6 3 3 2 -1. - <_>7 3 1 2 3. - 0 - -1.7743760254234076e-003 - 0.2813253104686737 - 0.5300959944725037 - <_> - - <_> - - - - <_>14 5 6 5 -1. - <_>14 5 3 5 2. - 0 - 4.2234458960592747e-003 - 0.4399709999561310 - 0.5795428156852722 - <_> - - <_> - - - - <_>7 5 2 12 -1. - <_>7 11 2 6 2. - 0 - -0.0143752200528979 - 0.2981117963790894 - 0.5292059183120728 - <_> - - <_> - - - - <_>8 11 4 3 -1. - <_>8 12 4 1 3. - 0 - -0.0153491804376245 - 0.7705215215682983 - 0.4748171865940094 - <_> - - <_> - - - - <_>4 1 2 3 -1. - <_>5 1 1 3 2. - 0 - 1.5152279956964776e-005 - 0.3718844056129456 - 0.5576897263526917 - <_> - - <_> - - - - <_>18 3 2 6 -1. - <_>18 5 2 2 3. - 0 - -9.1293919831514359e-003 - 0.3615196049213409 - 0.5286766886711121 - <_> - - <_> - - - - <_>0 3 2 6 -1. - <_>0 5 2 2 3. - 0 - 2.2512159775942564e-003 - 0.5364704728126526 - 0.3486298024654388 - <_> - - <_> - - - - <_>9 12 2 3 -1. - <_>9 13 2 1 3. - 0 - -4.9696918576955795e-003 - 0.6927651762962341 - 0.4676836133003235 - <_> - - <_> - - - - <_>7 13 4 3 -1. - <_>7 14 4 1 3. - 0 - -0.0128290103748441 - 0.7712153792381287 - 0.4660735130310059 - <_> - - <_> - - - - <_>18 0 2 6 -1. - <_>18 2 2 2 3. - 0 - -9.3660065904259682e-003 - 0.3374983966350555 - 0.5351287722587585 - <_> - - <_> - - - - <_>0 0 2 6 -1. - <_>0 2 2 2 3. - 0 - 3.2452319283038378e-003 - 0.5325189828872681 - 0.3289610147476196 - <_> - - <_> - - - - <_>8 14 6 3 -1. - <_>8 15 6 1 3. - 0 - -0.0117235602810979 - 0.6837652921676636 - 0.4754300117492676 - <_> - - <_> - - - - <_>7 4 2 4 -1. - <_>8 4 1 4 2. - 0 - 2.9257940695970319e-005 - 0.3572087883949280 - 0.5360502004623413 - <_> - - <_> - - - - <_>8 5 4 6 -1. - <_>8 7 4 2 3. - 0 - -2.2244219508138485e-005 - 0.5541427135467529 - 0.3552064001560211 - <_> - - <_> - - - - <_>6 4 2 2 -1. - <_>7 4 1 2 2. - 0 - 5.0881509669125080e-003 - 0.5070844292640686 - 0.1256462037563324 - <_> - - <_> - - - - <_>3 14 14 4 -1. - <_>10 14 7 2 2. - <_>3 16 7 2 2. - 0 - 0.0274296794086695 - 0.5269560217857361 - 0.1625818014144898 - <_> - - <_> - - - - <_>6 15 6 2 -1. - <_>6 15 3 1 2. - <_>9 16 3 1 2. - 0 - -6.4142867922782898e-003 - 0.7145588994026184 - 0.4584197103977203 - <_> - - <_> - - - - <_>14 15 6 2 -1. - <_>14 16 6 1 2. - 0 - 3.3479959238320589e-003 - 0.5398612022399902 - 0.3494696915149689 - <_> - - <_> - - - - <_>2 12 12 8 -1. - <_>2 16 12 4 2. - 0 - -0.0826354920864105 - 0.2439192980527878 - 0.5160226225852966 - <_> - - <_> - - - - <_>7 7 7 2 -1. - <_>7 8 7 1 2. - 0 - 1.0261740535497665e-003 - 0.3886891901493073 - 0.5767908096313477 - <_> - - <_> - - - - <_>0 2 18 2 -1. - <_>0 3 18 1 2. - 0 - -1.6307090409100056e-003 - 0.3389458060264587 - 0.5347700715065002 - <_> - - <_> - - - - <_>9 6 2 5 -1. - <_>9 6 1 5 2. - 0 - 2.4546680506318808e-003 - 0.4601413905620575 - 0.6387246847152710 - <_> - - <_> - - - - <_>7 5 3 8 -1. - <_>8 5 1 8 3. - 0 - -9.9476519972085953e-004 - 0.5769879221916199 - 0.4120396077632904 - <_> - - <_> - - - - <_>9 6 3 4 -1. - <_>10 6 1 4 3. - 0 - 0.0154091902077198 - 0.4878709018230438 - 0.7089822292327881 - <_> - - <_> - - - - <_>4 13 3 2 -1. - <_>4 14 3 1 2. - 0 - 1.1784400558099151e-003 - 0.5263553261756897 - 0.2895244956016541 - <_> - - <_> - - - - <_>9 4 6 3 -1. - <_>11 4 2 3 3. - 0 - -0.0277019198983908 - 0.1498828977346420 - 0.5219606757164002 - <_> - - <_> - - - - <_>5 4 6 3 -1. - <_>7 4 2 3 3. - 0 - -0.0295053999871016 - 0.0248933192342520 - 0.4999816119670868 - <_> - - <_> - - - - <_>14 11 5 2 -1. - <_>14 12 5 1 2. - 0 - 4.5159430010244250e-004 - 0.5464622974395752 - 0.4029662907123566 - <_> - - <_> - - - - <_>1 2 6 9 -1. - <_>3 2 2 9 3. - 0 - 7.1772639639675617e-003 - 0.4271056950092316 - 0.5866296887397766 - <_> - - <_> - - - - <_>14 6 6 13 -1. - <_>14 6 3 13 2. - 0 - -0.0741820484399796 - 0.6874179244041443 - 0.4919027984142304 - <_> - - <_> - - - - <_>3 6 14 8 -1. - <_>3 6 7 4 2. - <_>10 10 7 4 2. - 0 - -0.0172541607171297 - 0.3370676040649414 - 0.5348739027976990 - <_> - - <_> - - - - <_>16 0 4 11 -1. - <_>16 0 2 11 2. - 0 - 0.0148515598848462 - 0.4626792967319489 - 0.6129904985427856 - <_> - - <_> - - - - <_>3 4 12 12 -1. - <_>3 4 6 6 2. - <_>9 10 6 6 2. - 0 - 0.0100020002573729 - 0.5346122980117798 - 0.3423453867435455 - <_> - - <_> - - - - <_>11 4 5 3 -1. - <_>11 5 5 1 3. - 0 - 2.0138120744377375e-003 - 0.4643830060958862 - 0.5824304223060608 - <_> - - <_> - - - - <_>4 11 4 2 -1. - <_>4 12 4 1 2. - 0 - 1.5135470312088728e-003 - 0.5196396112442017 - 0.2856149971485138 - <_> - - <_> - - - - <_>10 7 2 2 -1. - <_>10 7 1 2 2. - 0 - 3.1381431035697460e-003 - 0.4838162958621979 - 0.5958529710769653 - <_> - - <_> - - - - <_>8 7 2 2 -1. - <_>9 7 1 2 2. - 0 - -5.1450440660119057e-003 - 0.8920302987098694 - 0.4741412103176117 - <_> - - <_> - - - - <_>9 17 3 2 -1. - <_>10 17 1 2 3. - 0 - -4.4736708514392376e-003 - 0.2033942937850952 - 0.5337278842926025 - <_> - - <_> - - - - <_>5 6 3 3 -1. - <_>5 7 3 1 3. - 0 - 1.9628470763564110e-003 - 0.4571633934974670 - 0.6725863218307495 - <_> - - <_> - - - - <_>10 0 3 3 -1. - <_>11 0 1 3 3. - 0 - 5.4260450415313244e-003 - 0.5271108150482178 - 0.2845670878887177 - <_> - - <_> - - - - <_>5 6 6 2 -1. - <_>5 6 3 1 2. - <_>8 7 3 1 2. - 0 - 4.9611460417509079e-004 - 0.4138312935829163 - 0.5718597769737244 - <_> - - <_> - - - - <_>12 16 4 3 -1. - <_>12 17 4 1 3. - 0 - 9.3728788197040558e-003 - 0.5225151181221008 - 0.2804847061634064 - <_> - - <_> - - - - <_>3 12 3 2 -1. - <_>3 13 3 1 2. - 0 - 6.0500897234305739e-004 - 0.5236768722534180 - 0.3314523994922638 - <_> - - <_> - - - - <_>9 12 3 2 -1. - <_>9 13 3 1 2. - 0 - 5.6792551185935736e-004 - 0.4531059861183167 - 0.6276971101760864 - <_> - - <_> - - - - <_>1 11 16 4 -1. - <_>1 11 8 2 2. - <_>9 13 8 2 2. - 0 - 0.0246443394571543 - 0.5130851864814758 - 0.2017143964767456 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - -0.0102904504165053 - 0.7786595225334168 - 0.4876641035079956 - <_> - - <_> - - - - <_>4 4 5 3 -1. - <_>4 5 5 1 3. - 0 - 2.0629419013857841e-003 - 0.4288598895072937 - 0.5881264209747315 - <_> - - <_> - - - - <_>12 16 4 3 -1. - <_>12 17 4 1 3. - 0 - -5.0519481301307678e-003 - 0.3523977994918823 - 0.5286008715629578 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - -5.7692620903253555e-003 - 0.6841086149215698 - 0.4588094055652618 - <_> - - <_> - - - - <_>9 0 2 2 -1. - <_>9 1 2 1 2. - 0 - -4.5789941214025021e-004 - 0.3565520048141480 - 0.5485978126525879 - <_> - - <_> - - - - <_>8 9 4 2 -1. - <_>8 10 4 1 2. - 0 - -7.5918837683275342e-004 - 0.3368793129920960 - 0.5254197120666504 - <_> - - <_> - - - - <_>8 8 4 3 -1. - <_>8 9 4 1 3. - 0 - -1.7737259622663260e-003 - 0.3422161042690277 - 0.5454015135765076 - <_> - - <_> - - - - <_>0 13 6 3 -1. - <_>2 13 2 3 3. - 0 - -8.5610467940568924e-003 - 0.6533612012863159 - 0.4485856890678406 - <_> - - <_> - - - - <_>16 14 3 2 -1. - <_>16 15 3 1 2. - 0 - 1.7277270089834929e-003 - 0.5307580232620239 - 0.3925352990627289 - <_> - - <_> - - - - <_>1 18 18 2 -1. - <_>7 18 6 2 3. - 0 - -0.0281996093690395 - 0.6857458949089050 - 0.4588584005832672 - <_> - - <_> - - - - <_>16 14 3 2 -1. - <_>16 15 3 1 2. - 0 - -1.7781109781935811e-003 - 0.4037851095199585 - 0.5369856953620911 - <_> - - <_> - - - - <_>1 14 3 2 -1. - <_>1 15 3 1 2. - 0 - 3.3177141449414194e-004 - 0.5399798750877380 - 0.3705750107765198 - <_> - - <_> - - - - <_>7 14 6 3 -1. - <_>7 15 6 1 3. - 0 - 2.6385399978607893e-003 - 0.4665437042713165 - 0.6452730894088745 - <_> - - <_> - - - - <_>5 14 8 3 -1. - <_>5 15 8 1 3. - 0 - -2.1183069329708815e-003 - 0.5914781093597412 - 0.4064677059650421 - <_> - - <_> - - - - <_>10 6 4 14 -1. - <_>10 6 2 14 2. - 0 - -0.0147732896730304 - 0.3642038106918335 - 0.5294762849807739 - <_> - - <_> - - - - <_>6 6 4 14 -1. - <_>8 6 2 14 2. - 0 - -0.0168154407292604 - 0.2664231956005096 - 0.5144972801208496 - <_> - - <_> - - - - <_>13 5 2 3 -1. - <_>13 6 2 1 3. - 0 - -6.3370140269398689e-003 - 0.6779531240463257 - 0.4852097928524017 - <_> - - <_> - - - - <_>7 16 6 1 -1. - <_>9 16 2 1 3. - 0 - -4.4560048991115764e-005 - 0.5613964796066284 - 0.4153054058551788 - <_> - - <_> - - - - <_>9 12 3 3 -1. - <_>9 13 3 1 3. - 0 - -1.0240620467811823e-003 - 0.5964478254318237 - 0.4566304087638855 - <_> - - <_> - - - - <_>7 0 3 3 -1. - <_>8 0 1 3 3. - 0 - -2.3161689750850201e-003 - 0.2976115047931671 - 0.5188159942626953 - <_> - - <_> - - - - <_>4 0 16 18 -1. - <_>4 9 16 9 2. - 0 - 0.5321757197380066 - 0.5187839269638062 - 0.2202631980180740 - <_> - - <_> - - - - <_>1 1 16 14 -1. - <_>1 8 16 7 2. - 0 - -0.1664305031299591 - 0.1866022944450378 - 0.5060343146324158 - <_> - - <_> - - - - <_>3 9 15 4 -1. - <_>8 9 5 4 3. - 0 - 0.1125352978706360 - 0.5212125182151794 - 0.1185022965073586 - <_> - - <_> - - - - <_>6 12 7 3 -1. - <_>6 13 7 1 3. - 0 - 9.3046864494681358e-003 - 0.4589937031269074 - 0.6826149225234985 - <_> - - <_> - - - - <_>14 15 2 3 -1. - <_>14 16 2 1 3. - 0 - -4.6255099587142467e-003 - 0.3079940974712372 - 0.5225008726119995 - <_> - - <_> - - - - <_>2 3 16 14 -1. - <_>2 3 8 7 2. - <_>10 10 8 7 2. - 0 - -0.1111646965146065 - 0.2101044058799744 - 0.5080801844596863 - <_> - - <_> - - - - <_>16 2 4 18 -1. - <_>18 2 2 9 2. - <_>16 11 2 9 2. - 0 - -0.0108884396031499 - 0.5765355229377747 - 0.4790464043617249 - <_> - - <_> - - - - <_>4 15 2 3 -1. - <_>4 16 2 1 3. - 0 - 5.8564301580190659e-003 - 0.5065100193023682 - 0.1563598960638046 - <_> - - <_> - - - - <_>16 2 4 18 -1. - <_>18 2 2 9 2. - <_>16 11 2 9 2. - 0 - 0.0548543892800808 - 0.4966914951801300 - 0.7230510711669922 - <_> - - <_> - - - - <_>1 1 8 3 -1. - <_>1 2 8 1 3. - 0 - -0.0111973397433758 - 0.2194979041814804 - 0.5098798274993897 - <_> - - <_> - - - - <_>8 11 4 3 -1. - <_>8 12 4 1 3. - 0 - 4.4069071300327778e-003 - 0.4778401851654053 - 0.6770902872085571 - <_> - - <_> - - - - <_>5 11 5 9 -1. - <_>5 14 5 3 3. - 0 - -0.0636652931571007 - 0.1936362981796265 - 0.5081024169921875 - <_> - - <_> - - - - <_>16 0 4 11 -1. - <_>16 0 2 11 2. - 0 - -9.8081491887569427e-003 - 0.5999063253402710 - 0.4810341000556946 - <_> - - <_> - - - - <_>7 0 6 1 -1. - <_>9 0 2 1 3. - 0 - -2.1717099007219076e-003 - 0.3338333964347839 - 0.5235472917556763 - <_> - - <_> - - - - <_>16 3 3 7 -1. - <_>17 3 1 7 3. - 0 - -0.0133155202493072 - 0.6617069840431213 - 0.4919213056564331 - <_> - - <_> - - - - <_>1 3 3 7 -1. - <_>2 3 1 7 3. - 0 - 2.5442079640924931e-003 - 0.4488744139671326 - 0.6082184910774231 - <_> - - <_> - - - - <_>7 8 6 12 -1. - <_>7 12 6 4 3. - 0 - 0.0120378397405148 - 0.5409392118453980 - 0.3292432129383087 - <_> - - <_> - - - - <_>0 0 4 11 -1. - <_>2 0 2 11 2. - 0 - -0.0207010507583618 - 0.6819120049476624 - 0.4594995975494385 - <_> - - <_> - - - - <_>14 0 6 20 -1. - <_>14 0 3 20 2. - 0 - 0.0276082791388035 - 0.4630792140960693 - 0.5767282843589783 - <_> - - <_> - - - - <_>0 3 1 2 -1. - <_>0 4 1 1 2. - 0 - 1.2370620388537645e-003 - 0.5165379047393799 - 0.2635016143321991 - <_> - - <_> - - - - <_>5 5 10 8 -1. - <_>10 5 5 4 2. - <_>5 9 5 4 2. - 0 - -0.0376693382859230 - 0.2536393105983734 - 0.5278980135917664 - <_> - - <_> - - - - <_>4 7 12 4 -1. - <_>4 7 6 2 2. - <_>10 9 6 2 2. - 0 - -1.8057259730994701e-003 - 0.3985156118869782 - 0.5517500042915344 - 50.6104812622070310 - 10 - -1 - <_> - - - <_> - - <_> - - - - <_>2 1 6 4 -1. - <_>5 1 3 4 2. - 0 - 4.4299028813838959e-003 - 0.2891018092632294 - 0.6335226297378540 - <_> - - <_> - - - - <_>9 7 6 4 -1. - <_>12 7 3 2 2. - <_>9 9 3 2 2. - 0 - -2.3813319858163595e-003 - 0.6211789250373840 - 0.3477487862110138 - <_> - - <_> - - - - <_>5 6 2 6 -1. - <_>5 9 2 3 2. - 0 - 2.2915711160749197e-003 - 0.2254412025213242 - 0.5582118034362793 - <_> - - <_> - - - - <_>9 16 6 4 -1. - <_>12 16 3 2 2. - <_>9 18 3 2 2. - 0 - 9.9457940086722374e-004 - 0.3711710870265961 - 0.5930070877075195 - <_> - - <_> - - - - <_>9 4 2 12 -1. - <_>9 10 2 6 2. - 0 - 7.7164667891338468e-004 - 0.5651720166206360 - 0.3347995877265930 - <_> - - <_> - - - - <_>7 1 6 18 -1. - <_>9 1 2 18 3. - 0 - -1.1386410333216190e-003 - 0.3069126009941101 - 0.5508630871772766 - <_> - - <_> - - - - <_>4 12 12 2 -1. - <_>8 12 4 2 3. - 0 - -1.6403039626311511e-004 - 0.5762827992439270 - 0.3699047863483429 - <_> - - <_> - - - - <_>8 8 6 2 -1. - <_>8 9 6 1 2. - 0 - 2.9793529392918572e-005 - 0.2644244134426117 - 0.5437911152839661 - <_> - - <_> - - - - <_>8 0 3 6 -1. - <_>9 0 1 6 3. - 0 - 8.5774902254343033e-003 - 0.5051138997077942 - 0.1795724928379059 - <_> - - <_> - - - - <_>11 18 3 2 -1. - <_>11 19 3 1 2. - 0 - -2.6032689493149519e-004 - 0.5826969146728516 - 0.4446826875209808 - <_> - - <_> - - - - <_>1 1 17 4 -1. - <_>1 3 17 2 2. - 0 - -6.1404630541801453e-003 - 0.3113852143287659 - 0.5346971750259399 - <_> - - <_> - - - - <_>11 8 4 12 -1. - <_>11 8 2 12 2. - 0 - -0.0230869501829147 - 0.3277946114540100 - 0.5331197977066040 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - -0.0142436502501369 - 0.7381709814071655 - 0.4588063061237335 - <_> - - <_> - - - - <_>12 3 2 17 -1. - <_>12 3 1 17 2. - 0 - 0.0194871295243502 - 0.5256630778312683 - 0.2274471968412399 - <_> - - <_> - - - - <_>4 7 6 1 -1. - <_>6 7 2 1 3. - 0 - -9.6681108698248863e-004 - 0.5511230826377869 - 0.3815006911754608 - <_> - - <_> - - - - <_>18 3 2 3 -1. - <_>18 4 2 1 3. - 0 - 3.1474709976464510e-003 - 0.5425636768341065 - 0.2543726861476898 - <_> - - <_> - - - - <_>8 4 3 4 -1. - <_>8 6 3 2 2. - 0 - -1.8026070029009134e-004 - 0.5380191802978516 - 0.3406304121017456 - <_> - - <_> - - - - <_>4 5 12 10 -1. - <_>4 10 12 5 2. - 0 - -6.0266260989010334e-003 - 0.3035801947116852 - 0.5420572161674500 - <_> - - <_> - - - - <_>5 18 4 2 -1. - <_>7 18 2 2 2. - 0 - 4.4462960795499384e-004 - 0.3990997076034546 - 0.5660110116004944 - <_> - - <_> - - - - <_>17 2 3 6 -1. - <_>17 4 3 2 3. - 0 - 2.2609760053455830e-003 - 0.5562806725502014 - 0.3940688073635101 - <_> - - <_> - - - - <_>7 7 6 6 -1. - <_>9 7 2 6 3. - 0 - 0.0511330589652061 - 0.4609653949737549 - 0.7118561863899231 - <_> - - <_> - - - - <_>17 2 3 6 -1. - <_>17 4 3 2 3. - 0 - -0.0177863091230392 - 0.2316166013479233 - 0.5322144031524658 - <_> - - <_> - - - - <_>8 0 3 4 -1. - <_>9 0 1 4 3. - 0 - -4.9679628573358059e-003 - 0.2330771982669830 - 0.5122029185295105 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 2.0667689386755228e-003 - 0.4657444059848785 - 0.6455488204956055 - <_> - - <_> - - - - <_>0 12 6 3 -1. - <_>0 13 6 1 3. - 0 - 7.4413768015801907e-003 - 0.5154392123222351 - 0.2361633926630020 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - -3.6277279723435640e-003 - 0.6219773292541504 - 0.4476661086082459 - <_> - - <_> - - - - <_>3 12 2 3 -1. - <_>3 13 2 1 3. - 0 - -5.3530759178102016e-003 - 0.1837355047464371 - 0.5102208256721497 - <_> - - <_> - - - - <_>5 6 12 7 -1. - <_>9 6 4 7 3. - 0 - 0.1453091949224472 - 0.5145987272262573 - 0.1535930931568146 - <_> - - <_> - - - - <_>0 2 3 6 -1. - <_>0 4 3 2 3. - 0 - 2.4394490756094456e-003 - 0.5343660116195679 - 0.3624661862850189 - <_> - - <_> - - - - <_>14 6 1 3 -1. - <_>14 7 1 1 3. - 0 - -3.1283390708267689e-003 - 0.6215007901191711 - 0.4845592081546783 - <_> - - <_> - - - - <_>2 0 3 14 -1. - <_>3 0 1 14 3. - 0 - 1.7940260004252195e-003 - 0.4299261868000031 - 0.5824198126792908 - <_> - - <_> - - - - <_>12 14 5 6 -1. - <_>12 16 5 2 3. - 0 - 0.0362538211047649 - 0.5260334014892578 - 0.1439467966556549 - <_> - - <_> - - - - <_>4 14 5 6 -1. - <_>4 16 5 2 3. - 0 - -5.1746722310781479e-003 - 0.3506538867950440 - 0.5287045240402222 - <_> - - <_> - - - - <_>11 10 2 2 -1. - <_>12 10 1 1 2. - <_>11 11 1 1 2. - 0 - 6.5383297624066472e-004 - 0.4809640944004059 - 0.6122040152549744 - <_> - - <_> - - - - <_>5 0 3 14 -1. - <_>6 0 1 14 3. - 0 - -0.0264802295714617 - 0.1139362007379532 - 0.5045586228370667 - <_> - - <_> - - - - <_>10 15 2 3 -1. - <_>10 16 2 1 3. - 0 - -3.0440660193562508e-003 - 0.6352095007896423 - 0.4794734120368958 - <_> - - <_> - - - - <_>0 2 2 3 -1. - <_>0 3 2 1 3. - 0 - 3.6993520334362984e-003 - 0.5131118297576904 - 0.2498510926961899 - <_> - - <_> - - - - <_>5 11 12 6 -1. - <_>5 14 12 3 2. - 0 - -3.6762931267730892e-004 - 0.5421394705772400 - 0.3709532022476196 - <_> - - <_> - - - - <_>6 11 3 9 -1. - <_>6 14 3 3 3. - 0 - -0.0413822606205940 - 0.1894959956407547 - 0.5081691741943359 - <_> - - <_> - - - - <_>11 10 2 2 -1. - <_>12 10 1 1 2. - <_>11 11 1 1 2. - 0 - -1.0532729793339968e-003 - 0.6454367041587830 - 0.4783608913421631 - <_> - - <_> - - - - <_>5 6 1 3 -1. - <_>5 7 1 1 3. - 0 - -2.1648600231856108e-003 - 0.6215031147003174 - 0.4499826133251190 - <_> - - <_> - - - - <_>4 9 13 3 -1. - <_>4 10 13 1 3. - 0 - -5.6747748749330640e-004 - 0.3712610900402069 - 0.5419334769248962 - <_> - - <_> - - - - <_>1 7 15 6 -1. - <_>6 7 5 6 3. - 0 - 0.1737584024667740 - 0.5023643970489502 - 0.1215742006897926 - <_> - - <_> - - - - <_>4 5 12 6 -1. - <_>8 5 4 6 3. - 0 - -2.9049699660390615e-003 - 0.3240267932415009 - 0.5381883978843689 - <_> - - <_> - - - - <_>8 10 4 3 -1. - <_>8 11 4 1 3. - 0 - 1.2299539521336555e-003 - 0.4165507853031158 - 0.5703486204147339 - <_> - - <_> - - - - <_>15 14 1 3 -1. - <_>15 15 1 1 3. - 0 - -5.4329237900674343e-004 - 0.3854042887687683 - 0.5547549128532410 - <_> - - <_> - - - - <_>1 11 5 3 -1. - <_>1 12 5 1 3. - 0 - -8.3297258242964745e-003 - 0.2204494029283524 - 0.5097082853317261 - <_> - - <_> - - - - <_>7 1 7 12 -1. - <_>7 7 7 6 2. - 0 - -1.0417630255687982e-004 - 0.5607066154479981 - 0.4303036034107208 - <_> - - <_> - - - - <_>0 1 6 10 -1. - <_>0 1 3 5 2. - <_>3 6 3 5 2. - 0 - 0.0312047004699707 - 0.4621657133102417 - 0.6982004046440125 - <_> - - <_> - - - - <_>16 1 4 3 -1. - <_>16 2 4 1 3. - 0 - 7.8943502157926559e-003 - 0.5269594192504883 - 0.2269068062305450 - <_> - - <_> - - - - <_>5 5 2 3 -1. - <_>5 6 2 1 3. - 0 - -4.3645310215651989e-003 - 0.6359223127365112 - 0.4537956118583679 - <_> - - <_> - - - - <_>12 2 3 5 -1. - <_>13 2 1 5 3. - 0 - 7.6793059706687927e-003 - 0.5274767875671387 - 0.2740483880043030 - <_> - - <_> - - - - <_>0 3 4 6 -1. - <_>0 5 4 2 3. - 0 - -0.0254311393946409 - 0.2038519978523254 - 0.5071732997894287 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>8 13 4 1 2. - 0 - 8.2000601105391979e-004 - 0.4587455093860626 - 0.6119868159294128 - <_> - - <_> - - - - <_>8 18 3 1 -1. - <_>9 18 1 1 3. - 0 - 2.9284600168466568e-003 - 0.5071274042129517 - 0.2028204947710037 - <_> - - <_> - - - - <_>11 10 2 2 -1. - <_>12 10 1 1 2. - <_>11 11 1 1 2. - 0 - 4.5256470912136137e-005 - 0.4812104105949402 - 0.5430821776390076 - <_> - - <_> - - - - <_>7 10 2 2 -1. - <_>7 10 1 1 2. - <_>8 11 1 1 2. - 0 - 1.3158309739083052e-003 - 0.4625813961029053 - 0.6779323220252991 - <_> - - <_> - - - - <_>11 11 4 4 -1. - <_>11 13 4 2 2. - 0 - 1.5870389761403203e-003 - 0.5386291742324829 - 0.3431465029716492 - <_> - - <_> - - - - <_>8 12 3 8 -1. - <_>9 12 1 8 3. - 0 - -0.0215396601706743 - 0.0259425006806850 - 0.5003222823143005 - <_> - - <_> - - - - <_>13 0 6 3 -1. - <_>13 1 6 1 3. - 0 - 0.0143344802781940 - 0.5202844738960266 - 0.1590632945299149 - <_> - - <_> - - - - <_>8 8 3 4 -1. - <_>9 8 1 4 3. - 0 - -8.3881383761763573e-003 - 0.7282481193542481 - 0.4648044109344482 - <_> - - <_> - - - - <_>5 7 10 10 -1. - <_>10 7 5 5 2. - <_>5 12 5 5 2. - 0 - 9.1906841844320297e-003 - 0.5562356710433960 - 0.3923191130161285 - <_> - - <_> - - - - <_>3 18 8 2 -1. - <_>3 18 4 1 2. - <_>7 19 4 1 2. - 0 - -5.8453059755265713e-003 - 0.6803392767906189 - 0.4629127979278565 - <_> - - <_> - - - - <_>10 2 6 8 -1. - <_>12 2 2 8 3. - 0 - -0.0547077991068363 - 0.2561671137809753 - 0.5206125974655151 - <_> - - <_> - - - - <_>4 2 6 8 -1. - <_>6 2 2 8 3. - 0 - 9.1142775490880013e-003 - 0.5189620256423950 - 0.3053877055644989 - <_> - - <_> - - - - <_>11 0 3 7 -1. - <_>12 0 1 7 3. - 0 - -0.0155750000849366 - 0.1295074969530106 - 0.5169094800949097 - <_> - - <_> - - - - <_>7 11 2 1 -1. - <_>8 11 1 1 2. - 0 - -1.2050600344082341e-004 - 0.5735098123550415 - 0.4230825006961823 - <_> - - <_> - - - - <_>15 14 1 3 -1. - <_>15 15 1 1 3. - 0 - 1.2273970060050488e-003 - 0.5289878249168396 - 0.4079791903495789 - <_> - - <_> - - - - <_>7 15 2 2 -1. - <_>7 15 1 1 2. - <_>8 16 1 1 2. - 0 - -1.2186600361019373e-003 - 0.6575639843940735 - 0.4574409127235413 - <_> - - <_> - - - - <_>15 14 1 3 -1. - <_>15 15 1 1 3. - 0 - -3.3256649039685726e-003 - 0.3628047108650208 - 0.5195019841194153 - <_> - - <_> - - - - <_>6 0 3 7 -1. - <_>7 0 1 7 3. - 0 - -0.0132883097976446 - 0.1284265965223312 - 0.5043488740921021 - <_> - - <_> - - - - <_>18 1 2 7 -1. - <_>18 1 1 7 2. - 0 - -3.3839771058410406e-003 - 0.6292240023612976 - 0.4757505953311920 - <_> - - <_> - - - - <_>2 0 8 20 -1. - <_>2 10 8 10 2. - 0 - -0.2195422053337097 - 0.1487731933593750 - 0.5065013766288757 - <_> - - <_> - - - - <_>3 0 15 6 -1. - <_>3 2 15 2 3. - 0 - 4.9111708067357540e-003 - 0.4256102144718170 - 0.5665838718414307 - <_> - - <_> - - - - <_>4 3 12 2 -1. - <_>4 4 12 1 2. - 0 - -1.8744950648397207e-004 - 0.4004144072532654 - 0.5586857199668884 - <_> - - <_> - - - - <_>16 0 4 5 -1. - <_>16 0 2 5 2. - 0 - -5.2178641781210899e-003 - 0.6009116172790527 - 0.4812706112861633 - <_> - - <_> - - - - <_>7 0 3 4 -1. - <_>8 0 1 4 3. - 0 - -1.1111519997939467e-003 - 0.3514933884143829 - 0.5287089943885803 - <_> - - <_> - - - - <_>16 0 4 5 -1. - <_>16 0 2 5 2. - 0 - 4.4036400504410267e-003 - 0.4642275869846344 - 0.5924085974693298 - <_> - - <_> - - - - <_>1 7 6 13 -1. - <_>3 7 2 13 3. - 0 - 0.1229949966073036 - 0.5025529265403748 - 0.0691524818539619 - <_> - - <_> - - - - <_>16 0 4 5 -1. - <_>16 0 2 5 2. - 0 - -0.0123135102912784 - 0.5884591937065125 - 0.4934012889862061 - <_> - - <_> - - - - <_>0 0 4 5 -1. - <_>2 0 2 5 2. - 0 - 4.1471039876341820e-003 - 0.4372239112854004 - 0.5893477797508240 - <_> - - <_> - - - - <_>14 12 3 6 -1. - <_>14 14 3 2 3. - 0 - -3.5502649843692780e-003 - 0.4327551126480103 - 0.5396270155906677 - <_> - - <_> - - - - <_>3 12 3 6 -1. - <_>3 14 3 2 3. - 0 - -0.0192242693156004 - 0.1913134008646011 - 0.5068330764770508 - <_> - - <_> - - - - <_>16 1 4 3 -1. - <_>16 2 4 1 3. - 0 - 1.4395059552043676e-003 - 0.5308178067207336 - 0.4243533015251160 - <_> - - <_> - - - - <_>8 7 2 10 -1. - <_>8 7 1 5 2. - <_>9 12 1 5 2. - 0 - -6.7751999013125896e-003 - 0.6365395784378052 - 0.4540086090564728 - <_> - - <_> - - - - <_>11 11 4 4 -1. - <_>11 13 4 2 2. - 0 - 7.0119630545377731e-003 - 0.5189834237098694 - 0.3026199936866760 - <_> - - <_> - - - - <_>0 1 4 3 -1. - <_>0 2 4 1 3. - 0 - 5.4014651104807854e-003 - 0.5105062127113342 - 0.2557682991027832 - <_> - - <_> - - - - <_>13 4 1 3 -1. - <_>13 5 1 1 3. - 0 - 9.0274988906458020e-004 - 0.4696914851665497 - 0.5861827731132507 - <_> - - <_> - - - - <_>7 15 3 5 -1. - <_>8 15 1 5 3. - 0 - 0.0114744501188397 - 0.5053645968437195 - 0.1527177989482880 - <_> - - <_> - - - - <_>9 7 3 5 -1. - <_>10 7 1 5 3. - 0 - -6.7023430019617081e-003 - 0.6508980989456177 - 0.4890604019165039 - <_> - - <_> - - - - <_>8 7 3 5 -1. - <_>9 7 1 5 3. - 0 - -2.0462959073483944e-003 - 0.6241816878318787 - 0.4514600038528442 - <_> - - <_> - - - - <_>10 6 4 14 -1. - <_>10 6 2 14 2. - 0 - -9.9951568990945816e-003 - 0.3432781100273132 - 0.5400953888893127 - <_> - - <_> - - - - <_>0 5 5 6 -1. - <_>0 7 5 2 3. - 0 - -0.0357007086277008 - 0.1878059059381485 - 0.5074077844619751 - <_> - - <_> - - - - <_>9 5 6 4 -1. - <_>9 5 3 4 2. - 0 - 4.5584561303257942e-004 - 0.3805277049541473 - 0.5402569770812988 - <_> - - <_> - - - - <_>0 0 18 10 -1. - <_>6 0 6 10 3. - 0 - -0.0542606003582478 - 0.6843714714050293 - 0.4595097005367279 - <_> - - <_> - - - - <_>10 6 4 14 -1. - <_>10 6 2 14 2. - 0 - 6.0600461438298225e-003 - 0.5502905249595642 - 0.4500527977943420 - <_> - - <_> - - - - <_>6 6 4 14 -1. - <_>8 6 2 14 2. - 0 - -6.4791832119226456e-003 - 0.3368858098983765 - 0.5310757160186768 - <_> - - <_> - - - - <_>13 4 1 3 -1. - <_>13 5 1 1 3. - 0 - -1.4939469983801246e-003 - 0.6487640142440796 - 0.4756175875663757 - <_> - - <_> - - - - <_>5 1 2 3 -1. - <_>6 1 1 3 2. - 0 - 1.4610530342906713e-005 - 0.4034579098224640 - 0.5451064109802246 - <_> - - <_> - - - - <_>18 1 2 18 -1. - <_>19 1 1 9 2. - <_>18 10 1 9 2. - 0 - -7.2321938350796700e-003 - 0.6386873722076416 - 0.4824739992618561 - <_> - - <_> - - - - <_>2 1 4 3 -1. - <_>2 2 4 1 3. - 0 - -4.0645818226039410e-003 - 0.2986421883106232 - 0.5157335996627808 - <_> - - <_> - - - - <_>18 1 2 18 -1. - <_>19 1 1 9 2. - <_>18 10 1 9 2. - 0 - 0.0304630808532238 - 0.5022199749946594 - 0.7159956097602844 - <_> - - <_> - - - - <_>1 14 4 6 -1. - <_>1 14 2 3 2. - <_>3 17 2 3 2. - 0 - -8.0544911324977875e-003 - 0.6492452025413513 - 0.4619275033473969 - <_> - - <_> - - - - <_>10 11 7 6 -1. - <_>10 13 7 2 3. - 0 - 0.0395051389932632 - 0.5150570869445801 - 0.2450613975524902 - <_> - - <_> - - - - <_>0 10 6 10 -1. - <_>0 10 3 5 2. - <_>3 15 3 5 2. - 0 - 8.4530208259820938e-003 - 0.4573669135570526 - 0.6394037008285523 - <_> - - <_> - - - - <_>11 0 3 4 -1. - <_>12 0 1 4 3. - 0 - -1.1688120430335402e-003 - 0.3865512013435364 - 0.5483661293983460 - <_> - - <_> - - - - <_>5 10 5 6 -1. - <_>5 13 5 3 2. - 0 - 2.8070670086890459e-003 - 0.5128579139709473 - 0.2701480090618134 - <_> - - <_> - - - - <_>14 6 1 8 -1. - <_>14 10 1 4 2. - 0 - 4.7365209320560098e-004 - 0.4051581919193268 - 0.5387461185455322 - <_> - - <_> - - - - <_>1 7 18 6 -1. - <_>1 7 9 3 2. - <_>10 10 9 3 2. - 0 - 0.0117410803213716 - 0.5295950174331665 - 0.3719413876533508 - <_> - - <_> - - - - <_>9 7 2 2 -1. - <_>9 7 1 2 2. - 0 - 3.1833238899707794e-003 - 0.4789406955242157 - 0.6895126104354858 - <_> - - <_> - - - - <_>5 9 4 5 -1. - <_>7 9 2 5 2. - 0 - 7.0241501089185476e-004 - 0.5384489297866821 - 0.3918080925941467 - 54.6200714111328130 - 11 - -1 - <_> - - - <_> - - <_> - - - - <_>7 6 6 3 -1. - <_>9 6 2 3 3. - 0 - 0.0170599296689034 - 0.3948527872562408 - 0.7142534852027893 - <_> - - <_> - - - - <_>1 0 18 4 -1. - <_>7 0 6 4 3. - 0 - 0.0218408405780792 - 0.3370316028594971 - 0.6090016961097717 - <_> - - <_> - - - - <_>7 15 2 4 -1. - <_>7 17 2 2 2. - 0 - 2.4520049919374287e-004 - 0.3500576019287109 - 0.5987902283668518 - <_> - - <_> - - - - <_>1 0 19 9 -1. - <_>1 3 19 3 3. - 0 - 8.3272606134414673e-003 - 0.3267528116703033 - 0.5697240829467773 - <_> - - <_> - - - - <_>3 7 3 6 -1. - <_>3 9 3 2 3. - 0 - 5.7148298947140574e-004 - 0.3044599890708923 - 0.5531656742095947 - <_> - - <_> - - - - <_>13 7 4 4 -1. - <_>15 7 2 2 2. - <_>13 9 2 2 2. - 0 - 6.7373987985774875e-004 - 0.3650012016296387 - 0.5672631263732910 - <_> - - <_> - - - - <_>3 7 4 4 -1. - <_>3 7 2 2 2. - <_>5 9 2 2 2. - 0 - 3.4681590477703139e-005 - 0.3313541114330292 - 0.5388727188110352 - <_> - - <_> - - - - <_>9 6 10 8 -1. - <_>9 10 10 4 2. - 0 - -5.8563398197293282e-003 - 0.2697942852973938 - 0.5498778820037842 - <_> - - <_> - - - - <_>3 8 14 12 -1. - <_>3 14 14 6 2. - 0 - 8.5102273151278496e-003 - 0.5269358158111572 - 0.2762879133224487 - <_> - - <_> - - - - <_>6 5 10 12 -1. - <_>11 5 5 6 2. - <_>6 11 5 6 2. - 0 - -0.0698172077536583 - 0.2909603118896484 - 0.5259246826171875 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -8.6113670840859413e-004 - 0.5892577171325684 - 0.4073697924613953 - <_> - - <_> - - - - <_>9 5 6 5 -1. - <_>9 5 3 5 2. - 0 - 9.7149249631911516e-004 - 0.3523564040660858 - 0.5415862202644348 - <_> - - <_> - - - - <_>9 4 2 4 -1. - <_>9 6 2 2 2. - 0 - -1.4727490452060010e-005 - 0.5423017740249634 - 0.3503156006336212 - <_> - - <_> - - - - <_>9 5 6 5 -1. - <_>9 5 3 5 2. - 0 - 0.0484202913939953 - 0.5193945765495300 - 0.3411195874214172 - <_> - - <_> - - - - <_>5 5 6 5 -1. - <_>8 5 3 5 2. - 0 - 1.3257140526548028e-003 - 0.3157769143581390 - 0.5335376262664795 - <_> - - <_> - - - - <_>11 2 6 1 -1. - <_>13 2 2 1 3. - 0 - 1.4922149603080470e-005 - 0.4451299905776978 - 0.5536553859710693 - <_> - - <_> - - - - <_>3 2 6 1 -1. - <_>5 2 2 1 3. - 0 - -2.7173398993909359e-003 - 0.3031741976737976 - 0.5248088836669922 - <_> - - <_> - - - - <_>13 5 2 3 -1. - <_>13 6 2 1 3. - 0 - 2.9219500720500946e-003 - 0.4781453013420105 - 0.6606041789054871 - <_> - - <_> - - - - <_>0 10 1 4 -1. - <_>0 12 1 2 2. - 0 - -1.9804988987743855e-003 - 0.3186308145523071 - 0.5287625193595886 - <_> - - <_> - - - - <_>13 5 2 3 -1. - <_>13 6 2 1 3. - 0 - -4.0012109093368053e-003 - 0.6413596868515015 - 0.4749928116798401 - <_> - - <_> - - - - <_>8 18 3 2 -1. - <_>9 18 1 2 3. - 0 - -4.3491991236805916e-003 - 0.1507498025894165 - 0.5098996758460999 - <_> - - <_> - - - - <_>6 15 9 2 -1. - <_>6 16 9 1 2. - 0 - 1.3490889687091112e-003 - 0.4316158890724182 - 0.5881167054176331 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 0.0185970701277256 - 0.4735553860664368 - 0.9089794158935547 - <_> - - <_> - - - - <_>18 4 2 4 -1. - <_>18 6 2 2 2. - 0 - -1.8562379991635680e-003 - 0.3553189039230347 - 0.5577837228775024 - <_> - - <_> - - - - <_>5 5 2 3 -1. - <_>5 6 2 1 3. - 0 - 2.2940430790185928e-003 - 0.4500094950199127 - 0.6580877900123596 - <_> - - <_> - - - - <_>15 16 3 2 -1. - <_>15 17 3 1 2. - 0 - 2.9982850537635386e-004 - 0.5629242062568665 - 0.3975878953933716 - <_> - - <_> - - - - <_>0 0 3 9 -1. - <_>0 3 3 3 3. - 0 - 3.5455459728837013e-003 - 0.5381547212600708 - 0.3605485856533051 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>9 8 3 1 3. - 0 - 9.6104722470045090e-003 - 0.5255997180938721 - 0.1796745955944061 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>8 8 3 1 3. - 0 - -6.2783220782876015e-003 - 0.2272856980562210 - 0.5114030241966248 - <_> - - <_> - - - - <_>9 5 2 6 -1. - <_>9 5 1 6 2. - 0 - 3.4598479978740215e-003 - 0.4626308083534241 - 0.6608219146728516 - <_> - - <_> - - - - <_>8 6 3 4 -1. - <_>9 6 1 4 3. - 0 - -1.3112019514665008e-003 - 0.6317539811134338 - 0.4436857998371124 - <_> - - <_> - - - - <_>7 6 8 12 -1. - <_>11 6 4 6 2. - <_>7 12 4 6 2. - 0 - 2.6876179035753012e-003 - 0.5421109795570374 - 0.4054022133350372 - <_> - - <_> - - - - <_>5 6 8 12 -1. - <_>5 6 4 6 2. - <_>9 12 4 6 2. - 0 - 3.9118169806897640e-003 - 0.5358477830886841 - 0.3273454904556274 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - -0.0142064504325390 - 0.7793576717376709 - 0.4975781142711639 - <_> - - <_> - - - - <_>2 16 3 2 -1. - <_>2 17 3 1 2. - 0 - 7.1705528534948826e-004 - 0.5297319889068604 - 0.3560903966426849 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - 1.6635019565001130e-003 - 0.4678094089031220 - 0.5816481709480286 - <_> - - <_> - - - - <_>2 12 6 6 -1. - <_>2 14 6 2 3. - 0 - 3.3686188980937004e-003 - 0.5276734232902527 - 0.3446420133113861 - <_> - - <_> - - - - <_>7 13 6 3 -1. - <_>7 14 6 1 3. - 0 - 0.0127995302900672 - 0.4834679961204529 - 0.7472159266471863 - <_> - - <_> - - - - <_>6 14 6 3 -1. - <_>6 15 6 1 3. - 0 - 3.3901201095432043e-003 - 0.4511859118938446 - 0.6401721239089966 - <_> - - <_> - - - - <_>14 15 5 3 -1. - <_>14 16 5 1 3. - 0 - 4.7070779837667942e-003 - 0.5335658788681030 - 0.3555220961570740 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 1.4819339849054813e-003 - 0.4250707030296326 - 0.5772724151611328 - <_> - - <_> - - - - <_>14 15 5 3 -1. - <_>14 16 5 1 3. - 0 - -6.9995759986341000e-003 - 0.3003320097923279 - 0.5292900204658508 - <_> - - <_> - - - - <_>5 3 6 2 -1. - <_>7 3 2 2 3. - 0 - 0.0159390103071928 - 0.5067319273948669 - 0.1675581932067871 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - 7.6377349905669689e-003 - 0.4795069992542267 - 0.7085601091384888 - <_> - - <_> - - - - <_>1 15 5 3 -1. - <_>1 16 5 1 3. - 0 - 6.7334040068089962e-003 - 0.5133113265037537 - 0.2162470072507858 - <_> - - <_> - - - - <_>8 13 4 6 -1. - <_>10 13 2 3 2. - <_>8 16 2 3 2. - 0 - -0.0128588099032640 - 0.1938841938972473 - 0.5251371860504150 - <_> - - <_> - - - - <_>7 8 3 3 -1. - <_>8 8 1 3 3. - 0 - -6.2270800117403269e-004 - 0.5686538219451904 - 0.4197868108749390 - <_> - - <_> - - - - <_>12 0 5 4 -1. - <_>12 2 5 2 2. - 0 - -5.2651681471616030e-004 - 0.4224168956279755 - 0.5429695844650269 - <_> - - <_> - - - - <_>0 2 20 2 -1. - <_>0 2 10 1 2. - <_>10 3 10 1 2. - 0 - 0.0110750999301672 - 0.5113775134086609 - 0.2514517903327942 - <_> - - <_> - - - - <_>1 0 18 4 -1. - <_>7 0 6 4 3. - 0 - -0.0367282517254353 - 0.7194662094116211 - 0.4849618971347809 - <_> - - <_> - - - - <_>4 3 6 1 -1. - <_>6 3 2 1 3. - 0 - -2.8207109426148236e-004 - 0.3840261995792389 - 0.5394446253776550 - <_> - - <_> - - - - <_>4 18 13 2 -1. - <_>4 19 13 1 2. - 0 - -2.7489690110087395e-003 - 0.5937088727951050 - 0.4569182097911835 - <_> - - <_> - - - - <_>2 10 3 6 -1. - <_>2 12 3 2 3. - 0 - 0.0100475195795298 - 0.5138576030731201 - 0.2802298069000244 - <_> - - <_> - - - - <_>14 12 6 8 -1. - <_>17 12 3 4 2. - <_>14 16 3 4 2. - 0 - -8.1497840583324432e-003 - 0.6090037226676941 - 0.4636121094226837 - <_> - - <_> - - - - <_>4 13 10 6 -1. - <_>4 13 5 3 2. - <_>9 16 5 3 2. - 0 - -6.8833888508379459e-003 - 0.3458611071109772 - 0.5254660248756409 - <_> - - <_> - - - - <_>14 12 1 2 -1. - <_>14 13 1 1 2. - 0 - -1.4039360394235700e-005 - 0.5693104267120361 - 0.4082083106040955 - <_> - - <_> - - - - <_>8 13 4 3 -1. - <_>8 14 4 1 3. - 0 - 1.5498419525101781e-003 - 0.4350537061691284 - 0.5806517004966736 - <_> - - <_> - - - - <_>14 12 2 2 -1. - <_>14 13 2 1 2. - 0 - -6.7841499112546444e-003 - 0.1468873023986816 - 0.5182775259017944 - <_> - - <_> - - - - <_>4 12 2 2 -1. - <_>4 13 2 1 2. - 0 - 2.1705629478674382e-004 - 0.5293524265289307 - 0.3456174135208130 - <_> - - <_> - - - - <_>8 12 9 2 -1. - <_>8 13 9 1 2. - 0 - 3.1198898795992136e-004 - 0.4652450978755951 - 0.5942413806915283 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 5.4507530294358730e-003 - 0.4653508961200714 - 0.7024846076965332 - <_> - - <_> - - - - <_>11 10 3 6 -1. - <_>11 13 3 3 2. - 0 - -2.5818689027801156e-004 - 0.5497295260429382 - 0.3768967092037201 - <_> - - <_> - - - - <_>5 6 9 12 -1. - <_>5 12 9 6 2. - 0 - -0.0174425393342972 - 0.3919087946414948 - 0.5457497835159302 - <_> - - <_> - - - - <_>11 10 3 6 -1. - <_>11 13 3 3 2. - 0 - -0.0453435294330120 - 0.1631357073783875 - 0.5154908895492554 - <_> - - <_> - - - - <_>6 10 3 6 -1. - <_>6 13 3 3 2. - 0 - 1.9190689781680703e-003 - 0.5145897865295410 - 0.2791895866394043 - <_> - - <_> - - - - <_>5 4 11 3 -1. - <_>5 5 11 1 3. - 0 - -6.0177869163453579e-003 - 0.6517636179924011 - 0.4756332933902741 - <_> - - <_> - - - - <_>7 1 5 10 -1. - <_>7 6 5 5 2. - 0 - -4.0720738470554352e-003 - 0.5514652729034424 - 0.4092685878276825 - <_> - - <_> - - - - <_>2 8 18 2 -1. - <_>2 9 18 1 2. - 0 - 3.9855059003457427e-004 - 0.3165240883827210 - 0.5285550951957703 - <_> - - <_> - - - - <_>7 17 5 3 -1. - <_>7 18 5 1 3. - 0 - -6.5418570302426815e-003 - 0.6853377819061279 - 0.4652808904647827 - <_> - - <_> - - - - <_>5 9 12 1 -1. - <_>9 9 4 1 3. - 0 - 3.4845089539885521e-003 - 0.5484588146209717 - 0.4502759873867035 - <_> - - <_> - - - - <_>0 14 6 6 -1. - <_>0 14 3 3 2. - <_>3 17 3 3 2. - 0 - -0.0136967804282904 - 0.6395779848098755 - 0.4572555124759674 - <_> - - <_> - - - - <_>5 9 12 1 -1. - <_>9 9 4 1 3. - 0 - -0.0173471402376890 - 0.2751072943210602 - 0.5181614756584168 - <_> - - <_> - - - - <_>3 9 12 1 -1. - <_>7 9 4 1 3. - 0 - -4.0885428898036480e-003 - 0.3325636088848114 - 0.5194984078407288 - <_> - - <_> - - - - <_>14 10 6 7 -1. - <_>14 10 3 7 2. - 0 - -9.4687901437282562e-003 - 0.5942280888557434 - 0.4851819872856140 - <_> - - <_> - - - - <_>1 0 16 2 -1. - <_>1 1 16 1 2. - 0 - 1.7084840219467878e-003 - 0.4167110919952393 - 0.5519806146621704 - <_> - - <_> - - - - <_>10 9 10 9 -1. - <_>10 12 10 3 3. - 0 - 9.4809094443917274e-003 - 0.5433894991874695 - 0.4208514988422394 - <_> - - <_> - - - - <_>0 1 10 2 -1. - <_>5 1 5 2 2. - 0 - -4.7389650717377663e-003 - 0.6407189965248108 - 0.4560655057430267 - <_> - - <_> - - - - <_>17 3 2 3 -1. - <_>17 4 2 1 3. - 0 - 6.5761050209403038e-003 - 0.5214555263519287 - 0.2258227020502091 - <_> - - <_> - - - - <_>1 3 2 3 -1. - <_>1 4 2 1 3. - 0 - -2.1690549328923225e-003 - 0.3151527941226959 - 0.5156704783439636 - <_> - - <_> - - - - <_>9 7 3 6 -1. - <_>10 7 1 6 3. - 0 - 0.0146601703017950 - 0.4870837032794952 - 0.6689941287040710 - <_> - - <_> - - - - <_>6 5 4 3 -1. - <_>8 5 2 3 2. - 0 - 1.7231999663636088e-004 - 0.3569748997688294 - 0.5251078009605408 - <_> - - <_> - - - - <_>7 5 6 6 -1. - <_>9 5 2 6 3. - 0 - -0.0218037609010935 - 0.8825920820236206 - 0.4966329932212830 - <_> - - <_> - - - - <_>3 4 12 12 -1. - <_>3 4 6 6 2. - <_>9 10 6 6 2. - 0 - -0.0947361066937447 - 0.1446162015199661 - 0.5061113834381104 - <_> - - <_> - - - - <_>9 2 6 15 -1. - <_>11 2 2 15 3. - 0 - 5.5825551971793175e-003 - 0.5396478772163391 - 0.4238066077232361 - <_> - - <_> - - - - <_>2 2 6 17 -1. - <_>4 2 2 17 3. - 0 - 1.9517090404406190e-003 - 0.4170410931110382 - 0.5497786998748779 - <_> - - <_> - - - - <_>14 10 6 7 -1. - <_>14 10 3 7 2. - 0 - 0.0121499001979828 - 0.4698367118835449 - 0.5664274096488953 - <_> - - <_> - - - - <_>0 10 6 7 -1. - <_>3 10 3 7 2. - 0 - -7.5169620104134083e-003 - 0.6267772912979126 - 0.4463135898113251 - <_> - - <_> - - - - <_>9 2 6 15 -1. - <_>11 2 2 15 3. - 0 - -0.0716679096221924 - 0.3097011148929596 - 0.5221003293991089 - <_> - - <_> - - - - <_>5 2 6 15 -1. - <_>7 2 2 15 3. - 0 - -0.0882924199104309 - 0.0811238884925842 - 0.5006365180015564 - <_> - - <_> - - - - <_>17 9 3 6 -1. - <_>17 11 3 2 3. - 0 - 0.0310630798339844 - 0.5155503749847412 - 0.1282255947589874 - <_> - - <_> - - - - <_>6 7 6 6 -1. - <_>8 7 2 6 3. - 0 - 0.0466218404471874 - 0.4699777960777283 - 0.7363960742950440 - <_> - - <_> - - - - <_>1 10 18 6 -1. - <_>10 10 9 3 2. - <_>1 13 9 3 2. - 0 - -0.0121894897893071 - 0.3920530080795288 - 0.5518996715545654 - <_> - - <_> - - - - <_>0 9 10 9 -1. - <_>0 12 10 3 3. - 0 - 0.0130161102861166 - 0.5260658264160156 - 0.3685136139392853 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - -3.4952899441123009e-003 - 0.6339294910430908 - 0.4716280996799469 - <_> - - <_> - - - - <_>5 12 3 4 -1. - <_>5 14 3 2 2. - 0 - -4.4015039748046547e-005 - 0.5333027243614197 - 0.3776184916496277 - <_> - - <_> - - - - <_>3 3 16 12 -1. - <_>3 9 16 6 2. - 0 - -0.1096649020910263 - 0.1765342056751251 - 0.5198346972465515 - <_> - - <_> - - - - <_>1 1 12 12 -1. - <_>1 1 6 6 2. - <_>7 7 6 6 2. - 0 - -9.0279558207839727e-004 - 0.5324159860610962 - 0.3838908076286316 - <_> - - <_> - - - - <_>10 4 2 4 -1. - <_>11 4 1 2 2. - <_>10 6 1 2 2. - 0 - 7.1126641705632210e-004 - 0.4647929966449738 - 0.5755224227905273 - <_> - - <_> - - - - <_>0 9 10 2 -1. - <_>0 9 5 1 2. - <_>5 10 5 1 2. - 0 - -3.1250279862433672e-003 - 0.3236708939075470 - 0.5166770815849304 - <_> - - <_> - - - - <_>9 11 3 3 -1. - <_>9 12 3 1 3. - 0 - 2.4144679773598909e-003 - 0.4787439107894898 - 0.6459717750549316 - <_> - - <_> - - - - <_>3 12 9 2 -1. - <_>3 13 9 1 2. - 0 - 4.4391240226104856e-004 - 0.4409308135509491 - 0.6010255813598633 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -2.2611189342569560e-004 - 0.4038113951683044 - 0.5493255853652954 - 50.1697311401367190 - 12 - -1 - <_> - - - <_> - - <_> - - - - <_>3 4 13 6 -1. - <_>3 6 13 2 3. - 0 - -0.0469012893736362 - 0.6600171923637390 - 0.3743801116943359 - <_> - - <_> - - - - <_>9 7 6 4 -1. - <_>12 7 3 2 2. - <_>9 9 3 2 2. - 0 - -1.4568349579349160e-003 - 0.5783991217613220 - 0.3437797129154205 - <_> - - <_> - - - - <_>1 0 6 8 -1. - <_>4 0 3 8 2. - 0 - 5.5598369799554348e-003 - 0.3622266948223114 - 0.5908216238021851 - <_> - - <_> - - - - <_>9 5 2 12 -1. - <_>9 11 2 6 2. - 0 - 7.3170487303286791e-004 - 0.5500419139862061 - 0.2873558104038239 - <_> - - <_> - - - - <_>4 4 3 10 -1. - <_>4 9 3 5 2. - 0 - 1.3318009441718459e-003 - 0.2673169970512390 - 0.5431019067764282 - <_> - - <_> - - - - <_>6 17 8 3 -1. - <_>6 18 8 1 3. - 0 - 2.4347059661522508e-004 - 0.3855027854442596 - 0.5741388797760010 - <_> - - <_> - - - - <_>0 5 10 6 -1. - <_>0 7 10 2 3. - 0 - -3.0512469820678234e-003 - 0.5503209829330444 - 0.3462845087051392 - <_> - - <_> - - - - <_>13 2 3 2 -1. - <_>13 3 3 1 2. - 0 - -6.8657199153676629e-004 - 0.3291221857070923 - 0.5429509282112122 - <_> - - <_> - - - - <_>7 5 4 5 -1. - <_>9 5 2 5 2. - 0 - 1.4668200165033340e-003 - 0.3588382005691528 - 0.5351811051368713 - <_> - - <_> - - - - <_>12 14 3 6 -1. - <_>12 16 3 2 3. - 0 - 3.2021870720200241e-004 - 0.4296841919422150 - 0.5700234174728394 - <_> - - <_> - - - - <_>1 11 8 2 -1. - <_>1 12 8 1 2. - 0 - 7.4122188379988074e-004 - 0.5282164812088013 - 0.3366870880126953 - <_> - - <_> - - - - <_>7 13 6 3 -1. - <_>7 14 6 1 3. - 0 - 3.8330298848450184e-003 - 0.4559567868709564 - 0.6257336139678955 - <_> - - <_> - - - - <_>0 5 3 6 -1. - <_>0 7 3 2 3. - 0 - -0.0154564399272203 - 0.2350116968154907 - 0.5129452943801880 - <_> - - <_> - - - - <_>13 2 3 2 -1. - <_>13 3 3 1 2. - 0 - 2.6796779129654169e-003 - 0.5329415202140808 - 0.4155062139034271 - <_> - - <_> - - - - <_>4 14 4 6 -1. - <_>4 14 2 3 2. - <_>6 17 2 3 2. - 0 - 2.8296569362282753e-003 - 0.4273087978363037 - 0.5804538130760193 - <_> - - <_> - - - - <_>13 2 3 2 -1. - <_>13 3 3 1 2. - 0 - -3.9444249123334885e-003 - 0.2912611961364746 - 0.5202686190605164 - <_> - - <_> - - - - <_>8 2 4 12 -1. - <_>8 6 4 4 3. - 0 - 2.7179559692740440e-003 - 0.5307688117027283 - 0.3585677146911621 - <_> - - <_> - - - - <_>14 0 6 8 -1. - <_>17 0 3 4 2. - <_>14 4 3 4 2. - 0 - 5.9077627956867218e-003 - 0.4703775048255920 - 0.5941585898399353 - <_> - - <_> - - - - <_>7 17 3 2 -1. - <_>8 17 1 2 3. - 0 - -4.2240349575877190e-003 - 0.2141567021608353 - 0.5088796019554138 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>8 13 4 1 2. - 0 - 4.0725888684391975e-003 - 0.4766413867473602 - 0.6841061115264893 - <_> - - <_> - - - - <_>6 0 8 12 -1. - <_>6 0 4 6 2. - <_>10 6 4 6 2. - 0 - 0.0101495301350951 - 0.5360798835754395 - 0.3748497068881989 - <_> - - <_> - - - - <_>14 0 2 10 -1. - <_>15 0 1 5 2. - <_>14 5 1 5 2. - 0 - -1.8864999583456665e-004 - 0.5720130205154419 - 0.3853805065155029 - <_> - - <_> - - - - <_>5 3 8 6 -1. - <_>5 3 4 3 2. - <_>9 6 4 3 2. - 0 - -4.8864358104765415e-003 - 0.3693122863769531 - 0.5340958833694458 - <_> - - <_> - - - - <_>14 0 6 10 -1. - <_>17 0 3 5 2. - <_>14 5 3 5 2. - 0 - 0.0261584799736738 - 0.4962374866008759 - 0.6059989929199219 - <_> - - <_> - - - - <_>9 14 1 2 -1. - <_>9 15 1 1 2. - 0 - 4.8560759751126170e-004 - 0.4438945949077606 - 0.6012468934059143 - <_> - - <_> - - - - <_>15 10 4 3 -1. - <_>15 11 4 1 3. - 0 - 0.0112687097862363 - 0.5244250297546387 - 0.1840388029813767 - <_> - - <_> - - - - <_>8 14 2 3 -1. - <_>8 15 2 1 3. - 0 - -2.8114619199186563e-003 - 0.6060283780097961 - 0.4409897029399872 - <_> - - <_> - - - - <_>3 13 14 4 -1. - <_>10 13 7 2 2. - <_>3 15 7 2 2. - 0 - -5.6112729944288731e-003 - 0.3891170918941498 - 0.5589237213134766 - <_> - - <_> - - - - <_>1 10 4 3 -1. - <_>1 11 4 1 3. - 0 - 8.5680093616247177e-003 - 0.5069345831871033 - 0.2062619030475617 - <_> - - <_> - - - - <_>9 11 6 1 -1. - <_>11 11 2 1 3. - 0 - -3.8172779022715986e-004 - 0.5882201790809631 - 0.4192610979080200 - <_> - - <_> - - - - <_>5 11 6 1 -1. - <_>7 11 2 1 3. - 0 - -1.7680290329735726e-004 - 0.5533605813980103 - 0.4003368914127350 - <_> - - <_> - - - - <_>3 5 16 15 -1. - <_>3 10 16 5 3. - 0 - 6.5112537704408169e-003 - 0.3310146927833557 - 0.5444191098213196 - <_> - - <_> - - - - <_>6 12 4 2 -1. - <_>8 12 2 2 2. - 0 - -6.5948683186434209e-005 - 0.5433831810951233 - 0.3944905996322632 - <_> - - <_> - - - - <_>4 4 12 10 -1. - <_>10 4 6 5 2. - <_>4 9 6 5 2. - 0 - 6.9939051754772663e-003 - 0.5600358247756958 - 0.4192714095115662 - <_> - - <_> - - - - <_>8 6 3 4 -1. - <_>9 6 1 4 3. - 0 - -4.6744439750909805e-003 - 0.6685466766357422 - 0.4604960978031158 - <_> - - <_> - - - - <_>8 12 4 8 -1. - <_>10 12 2 4 2. - <_>8 16 2 4 2. - 0 - 0.0115898502990603 - 0.5357121229171753 - 0.2926830053329468 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 0.0130078401416540 - 0.4679817855358124 - 0.7307463288307190 - <_> - - <_> - - - - <_>12 2 3 2 -1. - <_>13 2 1 2 3. - 0 - -1.1008579749614000e-003 - 0.3937501013278961 - 0.5415065288543701 - <_> - - <_> - - - - <_>8 15 3 2 -1. - <_>8 16 3 1 2. - 0 - 6.0472649056464434e-004 - 0.4242376089096069 - 0.5604041218757629 - <_> - - <_> - - - - <_>6 0 9 14 -1. - <_>9 0 3 14 3. - 0 - -0.0144948400557041 - 0.3631210029125214 - 0.5293182730674744 - <_> - - <_> - - - - <_>9 6 2 3 -1. - <_>10 6 1 3 2. - 0 - -5.3056948818266392e-003 - 0.6860452294349670 - 0.4621821045875549 - <_> - - <_> - - - - <_>10 8 2 3 -1. - <_>10 9 2 1 3. - 0 - -8.1829127157106996e-004 - 0.3944096863269806 - 0.5420439243316650 - <_> - - <_> - - - - <_>0 9 4 6 -1. - <_>0 11 4 2 3. - 0 - -0.0190775208175182 - 0.1962621957063675 - 0.5037891864776611 - <_> - - <_> - - - - <_>6 0 8 2 -1. - <_>6 1 8 1 2. - 0 - 3.5549470339901745e-004 - 0.4086259007453919 - 0.5613973140716553 - <_> - - <_> - - - - <_>6 14 7 3 -1. - <_>6 15 7 1 3. - 0 - 1.9679730758070946e-003 - 0.4489121139049530 - 0.5926123261451721 - <_> - - <_> - - - - <_>8 10 8 9 -1. - <_>8 13 8 3 3. - 0 - 6.9189141504466534e-003 - 0.5335925817489624 - 0.3728385865688324 - <_> - - <_> - - - - <_>5 2 3 2 -1. - <_>6 2 1 2 3. - 0 - 2.9872779268771410e-003 - 0.5111321210861206 - 0.2975643873214722 - <_> - - <_> - - - - <_>14 1 6 8 -1. - <_>17 1 3 4 2. - <_>14 5 3 4 2. - 0 - -6.2264618463814259e-003 - 0.5541489720344544 - 0.4824537932872772 - <_> - - <_> - - - - <_>0 1 6 8 -1. - <_>0 1 3 4 2. - <_>3 5 3 4 2. - 0 - 0.0133533002808690 - 0.4586423933506012 - 0.6414797902107239 - <_> - - <_> - - - - <_>1 2 18 6 -1. - <_>10 2 9 3 2. - <_>1 5 9 3 2. - 0 - 0.0335052385926247 - 0.5392425060272217 - 0.3429994881153107 - <_> - - <_> - - - - <_>9 3 2 1 -1. - <_>10 3 1 1 2. - 0 - -2.5294460356235504e-003 - 0.1703713983297348 - 0.5013315081596375 - <_> - - <_> - - - - <_>13 2 4 6 -1. - <_>15 2 2 3 2. - <_>13 5 2 3 2. - 0 - -1.2801629491150379e-003 - 0.5305461883544922 - 0.4697405099868774 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 7.0687388069927692e-003 - 0.4615545868873596 - 0.6436504721641541 - <_> - - <_> - - - - <_>13 5 1 3 -1. - <_>13 6 1 1 3. - 0 - 9.6880499040707946e-004 - 0.4833599030971527 - 0.6043894290924072 - <_> - - <_> - - - - <_>2 16 5 3 -1. - <_>2 17 5 1 3. - 0 - 3.9647659286856651e-003 - 0.5187637209892273 - 0.3231816887855530 - <_> - - <_> - - - - <_>13 2 4 6 -1. - <_>15 2 2 3 2. - <_>13 5 2 3 2. - 0 - -0.0220577307045460 - 0.4079256951808929 - 0.5200980901718140 - <_> - - <_> - - - - <_>3 2 4 6 -1. - <_>3 2 2 3 2. - <_>5 5 2 3 2. - 0 - -6.6906312713399529e-004 - 0.5331609249114990 - 0.3815600872039795 - <_> - - <_> - - - - <_>13 5 1 2 -1. - <_>13 6 1 1 2. - 0 - -6.7009328631684184e-004 - 0.5655422210693359 - 0.4688901901245117 - <_> - - <_> - - - - <_>5 5 2 2 -1. - <_>5 6 2 1 2. - 0 - 7.4284552829340100e-004 - 0.4534381031990051 - 0.6287400126457214 - <_> - - <_> - - - - <_>13 9 2 2 -1. - <_>13 9 1 2 2. - 0 - 2.2227810695767403e-003 - 0.5350633263587952 - 0.3303655982017517 - <_> - - <_> - - - - <_>5 9 2 2 -1. - <_>6 9 1 2 2. - 0 - -5.4130521602928638e-003 - 0.1113687008619309 - 0.5005434751510620 - <_> - - <_> - - - - <_>13 17 3 2 -1. - <_>13 18 3 1 2. - 0 - -1.4520040167553816e-005 - 0.5628737807273865 - 0.4325133860111237 - <_> - - <_> - - - - <_>6 16 4 4 -1. - <_>6 16 2 2 2. - <_>8 18 2 2 2. - 0 - 2.3369169502984732e-004 - 0.4165835082530975 - 0.5447791218757629 - <_> - - <_> - - - - <_>9 16 2 3 -1. - <_>9 17 2 1 3. - 0 - 4.2894547805190086e-003 - 0.4860391020774841 - 0.6778649091720581 - <_> - - <_> - - - - <_>0 13 9 6 -1. - <_>0 15 9 2 3. - 0 - 5.9103150852024555e-003 - 0.5262305140495300 - 0.3612113893032074 - <_> - - <_> - - - - <_>9 14 2 6 -1. - <_>9 17 2 3 2. - 0 - 0.0129005396738648 - 0.5319377183914185 - 0.3250288069248200 - <_> - - <_> - - - - <_>9 15 2 3 -1. - <_>9 16 2 1 3. - 0 - 4.6982979401946068e-003 - 0.4618245065212250 - 0.6665925979614258 - <_> - - <_> - - - - <_>1 10 18 6 -1. - <_>1 12 18 2 3. - 0 - 0.0104398597031832 - 0.5505670905113220 - 0.3883604109287262 - <_> - - <_> - - - - <_>8 11 4 2 -1. - <_>8 12 4 1 2. - 0 - 3.0443191062659025e-003 - 0.4697853028774262 - 0.7301844954490662 - <_> - - <_> - - - - <_>7 9 6 2 -1. - <_>7 10 6 1 2. - 0 - -6.1593751888722181e-004 - 0.3830839097499847 - 0.5464984178543091 - <_> - - <_> - - - - <_>8 8 2 3 -1. - <_>8 9 2 1 3. - 0 - -3.4247159492224455e-003 - 0.2566300034523010 - 0.5089530944824219 - <_> - - <_> - - - - <_>17 5 3 4 -1. - <_>18 5 1 4 3. - 0 - -9.3538565561175346e-003 - 0.6469966173171997 - 0.4940795898437500 - <_> - - <_> - - - - <_>1 19 18 1 -1. - <_>7 19 6 1 3. - 0 - 0.0523389987647533 - 0.4745982885360718 - 0.7878770828247070 - <_> - - <_> - - - - <_>9 0 3 2 -1. - <_>10 0 1 2 3. - 0 - 3.5765620414167643e-003 - 0.5306664705276489 - 0.2748498022556305 - <_> - - <_> - - - - <_>1 8 1 6 -1. - <_>1 10 1 2 3. - 0 - 7.1555317845195532e-004 - 0.5413125753402710 - 0.4041908979415894 - <_> - - <_> - - - - <_>12 17 8 3 -1. - <_>12 17 4 3 2. - 0 - -0.0105166798457503 - 0.6158512234687805 - 0.4815283119678497 - <_> - - <_> - - - - <_>0 5 3 4 -1. - <_>1 5 1 4 3. - 0 - 7.7347927726805210e-003 - 0.4695805907249451 - 0.7028980851173401 - <_> - - <_> - - - - <_>9 7 2 3 -1. - <_>9 8 2 1 3. - 0 - -4.3226778507232666e-003 - 0.2849566042423248 - 0.5304684042930603 - <_> - - <_> - - - - <_>7 11 2 2 -1. - <_>7 11 1 1 2. - <_>8 12 1 1 2. - 0 - -2.5534399319440126e-003 - 0.7056984901428223 - 0.4688892066478729 - <_> - - <_> - - - - <_>11 3 2 5 -1. - <_>11 3 1 5 2. - 0 - 1.0268510231981054e-004 - 0.3902932107448578 - 0.5573464035987854 - <_> - - <_> - - - - <_>7 3 2 5 -1. - <_>8 3 1 5 2. - 0 - 7.1395188570022583e-006 - 0.3684231936931610 - 0.5263987779617310 - <_> - - <_> - - - - <_>15 13 2 3 -1. - <_>15 14 2 1 3. - 0 - -1.6711989883333445e-003 - 0.3849175870418549 - 0.5387271046638489 - <_> - - <_> - - - - <_>5 6 2 3 -1. - <_>5 7 2 1 3. - 0 - 4.9260449595749378e-003 - 0.4729771912097931 - 0.7447251081466675 - <_> - - <_> - - - - <_>4 19 15 1 -1. - <_>9 19 5 1 3. - 0 - 4.3908702209591866e-003 - 0.4809181094169617 - 0.5591921806335449 - <_> - - <_> - - - - <_>1 19 15 1 -1. - <_>6 19 5 1 3. - 0 - -0.0177936293184757 - 0.6903678178787231 - 0.4676927030086517 - <_> - - <_> - - - - <_>15 13 2 3 -1. - <_>15 14 2 1 3. - 0 - 2.0469669252634048e-003 - 0.5370690226554871 - 0.3308162093162537 - <_> - - <_> - - - - <_>5 0 4 15 -1. - <_>7 0 2 15 2. - 0 - 0.0298914890736341 - 0.5139865279197693 - 0.3309059143066406 - <_> - - <_> - - - - <_>9 6 2 5 -1. - <_>9 6 1 5 2. - 0 - 1.5494900289922953e-003 - 0.4660237133502960 - 0.6078342795372009 - <_> - - <_> - - - - <_>9 5 2 7 -1. - <_>10 5 1 7 2. - 0 - 1.4956969534978271e-003 - 0.4404835999011993 - 0.5863919854164124 - <_> - - <_> - - - - <_>16 11 3 3 -1. - <_>16 12 3 1 3. - 0 - 9.5885928021743894e-004 - 0.5435971021652222 - 0.4208523035049439 - <_> - - <_> - - - - <_>1 11 3 3 -1. - <_>1 12 3 1 3. - 0 - 4.9643701640889049e-004 - 0.5370578169822693 - 0.4000622034072876 - <_> - - <_> - - - - <_>6 6 8 3 -1. - <_>6 7 8 1 3. - 0 - -2.7280810754746199e-003 - 0.5659412741661072 - 0.4259642958641052 - <_> - - <_> - - - - <_>0 15 6 2 -1. - <_>0 16 6 1 2. - 0 - 2.3026480339467525e-003 - 0.5161657929420471 - 0.3350869119167328 - <_> - - <_> - - - - <_>1 0 18 6 -1. - <_>7 0 6 6 3. - 0 - 0.2515163123607636 - 0.4869661927223206 - 0.7147309780120850 - <_> - - <_> - - - - <_>6 0 3 4 -1. - <_>7 0 1 4 3. - 0 - -4.6328022144734859e-003 - 0.2727448940277100 - 0.5083789825439453 - <_> - - <_> - - - - <_>14 10 4 10 -1. - <_>16 10 2 5 2. - <_>14 15 2 5 2. - 0 - -0.0404344908893108 - 0.6851438879966736 - 0.5021767020225525 - <_> - - <_> - - - - <_>3 2 3 2 -1. - <_>4 2 1 2 3. - 0 - 1.4972220014897175e-005 - 0.4284465014934540 - 0.5522555112838745 - <_> - - <_> - - - - <_>11 2 2 2 -1. - <_>11 3 2 1 2. - 0 - -2.4050309730228037e-004 - 0.4226118922233582 - 0.5390074849128723 - <_> - - <_> - - - - <_>2 10 4 10 -1. - <_>2 10 2 5 2. - <_>4 15 2 5 2. - 0 - 0.0236578397452831 - 0.4744631946086884 - 0.7504366040229797 - <_> - - <_> - - - - <_>0 13 20 6 -1. - <_>10 13 10 3 2. - <_>0 16 10 3 2. - 0 - -8.1449104472994804e-003 - 0.4245058894157410 - 0.5538362860679627 - <_> - - <_> - - - - <_>0 5 2 15 -1. - <_>1 5 1 15 2. - 0 - -3.6992130335420370e-003 - 0.5952357053756714 - 0.4529713094234467 - <_> - - <_> - - - - <_>1 7 18 4 -1. - <_>10 7 9 2 2. - <_>1 9 9 2 2. - 0 - -6.7718601785600185e-003 - 0.4137794077396393 - 0.5473399758338928 - <_> - - <_> - - - - <_>0 0 2 17 -1. - <_>1 0 1 17 2. - 0 - 4.2669530957937241e-003 - 0.4484114944934845 - 0.5797994136810303 - <_> - - <_> - - - - <_>2 6 16 6 -1. - <_>10 6 8 3 2. - <_>2 9 8 3 2. - 0 - 1.7791989957913756e-003 - 0.5624858736991882 - 0.4432444870471954 - <_> - - <_> - - - - <_>8 14 1 3 -1. - <_>8 15 1 1 3. - 0 - 1.6774770338088274e-003 - 0.4637751877307892 - 0.6364241838455200 - <_> - - <_> - - - - <_>8 15 4 2 -1. - <_>8 16 4 1 2. - 0 - 1.1732629500329494e-003 - 0.4544503092765808 - 0.5914415717124939 - <_> - - <_> - - - - <_>5 2 8 2 -1. - <_>5 2 4 1 2. - <_>9 3 4 1 2. - 0 - 8.6998171173036098e-004 - 0.5334752798080444 - 0.3885917961597443 - <_> - - <_> - - - - <_>6 11 8 6 -1. - <_>6 14 8 3 2. - 0 - 7.6378340600058436e-004 - 0.5398585200309753 - 0.3744941949844360 - <_> - - <_> - - - - <_>9 13 2 2 -1. - <_>9 14 2 1 2. - 0 - 1.5684569370932877e-004 - 0.4317873120307922 - 0.5614616274833679 - <_> - - <_> - - - - <_>18 4 2 6 -1. - <_>18 6 2 2 3. - 0 - -0.0215113703161478 - 0.1785925030708313 - 0.5185542702674866 - <_> - - <_> - - - - <_>9 12 2 2 -1. - <_>9 13 2 1 2. - 0 - 1.3081369979772717e-004 - 0.4342499077320099 - 0.5682849884033203 - <_> - - <_> - - - - <_>18 4 2 6 -1. - <_>18 6 2 2 3. - 0 - 0.0219920407980680 - 0.5161716938018799 - 0.2379394024610519 - <_> - - <_> - - - - <_>9 13 1 3 -1. - <_>9 14 1 1 3. - 0 - -8.0136500764638186e-004 - 0.5986763238906860 - 0.4466426968574524 - <_> - - <_> - - - - <_>18 4 2 6 -1. - <_>18 6 2 2 3. - 0 - -8.2736099138855934e-003 - 0.4108217954635620 - 0.5251057147979736 - <_> - - <_> - - - - <_>0 4 2 6 -1. - <_>0 6 2 2 3. - 0 - 3.6831789184361696e-003 - 0.5173814296722412 - 0.3397518098354340 - <_> - - <_> - - - - <_>9 12 3 3 -1. - <_>9 13 3 1 3. - 0 - -7.9525681212544441e-003 - 0.6888983249664307 - 0.4845924079418182 - <_> - - <_> - - - - <_>3 13 2 3 -1. - <_>3 14 2 1 3. - 0 - 1.5382299898192286e-003 - 0.5178567171096802 - 0.3454113900661469 - <_> - - <_> - - - - <_>13 13 4 3 -1. - <_>13 14 4 1 3. - 0 - -0.0140435304492712 - 0.1678421050310135 - 0.5188667774200440 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 1.4315890148282051e-003 - 0.4368256926536560 - 0.5655773878097534 - <_> - - <_> - - - - <_>5 2 10 6 -1. - <_>5 4 10 2 3. - 0 - -0.0340142287313938 - 0.7802296280860901 - 0.4959217011928558 - <_> - - <_> - - - - <_>3 13 4 3 -1. - <_>3 14 4 1 3. - 0 - -0.0120272999629378 - 0.1585101038217545 - 0.5032231807708740 - <_> - - <_> - - - - <_>3 7 15 5 -1. - <_>8 7 5 5 3. - 0 - 0.1331661939620972 - 0.5163304805755615 - 0.2755128145217896 - <_> - - <_> - - - - <_>3 7 12 2 -1. - <_>7 7 4 2 3. - 0 - -1.5221949433907866e-003 - 0.3728317916393280 - 0.5214552283287048 - <_> - - <_> - - - - <_>10 3 3 9 -1. - <_>11 3 1 9 3. - 0 - -9.3929271679371595e-004 - 0.5838379263877869 - 0.4511165022850037 - <_> - - <_> - - - - <_>8 6 4 6 -1. - <_>10 6 2 6 2. - 0 - 0.0277197398245335 - 0.4728286862373352 - 0.7331544756889343 - <_> - - <_> - - - - <_>9 7 4 3 -1. - <_>9 8 4 1 3. - 0 - 3.1030150130391121e-003 - 0.5302202105522156 - 0.4101563096046448 - <_> - - <_> - - - - <_>0 9 4 9 -1. - <_>2 9 2 9 2. - 0 - 0.0778612196445465 - 0.4998334050178528 - 0.1272961944341660 - <_> - - <_> - - - - <_>9 13 3 5 -1. - <_>10 13 1 5 3. - 0 - -0.0158549398183823 - 0.0508333593606949 - 0.5165656208992004 - <_> - - <_> - - - - <_>7 7 6 3 -1. - <_>9 7 2 3 3. - 0 - -4.9725300632417202e-003 - 0.6798133850097656 - 0.4684231877326965 - <_> - - <_> - - - - <_>9 7 3 5 -1. - <_>10 7 1 5 3. - 0 - -9.7676506265997887e-004 - 0.6010771989822388 - 0.4788931906223297 - <_> - - <_> - - - - <_>5 7 8 2 -1. - <_>9 7 4 2 2. - 0 - -2.4647710379213095e-003 - 0.3393397927284241 - 0.5220503807067871 - <_> - - <_> - - - - <_>5 9 12 2 -1. - <_>9 9 4 2 3. - 0 - -6.7937700077891350e-003 - 0.4365136921405792 - 0.5239663124084473 - <_> - - <_> - - - - <_>5 6 10 3 -1. - <_>10 6 5 3 2. - 0 - 0.0326080210506916 - 0.5052723884582520 - 0.2425214946269989 - <_> - - <_> - - - - <_>10 12 3 1 -1. - <_>11 12 1 1 3. - 0 - -5.8514421107247472e-004 - 0.5733973979949951 - 0.4758574068546295 - <_> - - <_> - - - - <_>0 1 11 15 -1. - <_>0 6 11 5 3. - 0 - -0.0296326000243425 - 0.3892289102077484 - 0.5263597965240479 - 66.6691207885742190 - 13 - -1 - <_> - - - <_> - - <_> - - - - <_>1 0 18 6 -1. - <_>7 0 6 6 3. - 0 - 0.0465508513152599 - 0.3276950120925903 - 0.6240522861480713 - <_> - - <_> - - - - <_>7 7 6 1 -1. - <_>9 7 2 1 3. - 0 - 7.9537127166986465e-003 - 0.4256485104560852 - 0.6942939162254334 - <_> - - <_> - - - - <_>5 16 6 4 -1. - <_>5 16 3 2 2. - <_>8 18 3 2 2. - 0 - 6.8221561377868056e-004 - 0.3711487054824829 - 0.5900732874870300 - <_> - - <_> - - - - <_>6 5 9 8 -1. - <_>6 9 9 4 2. - 0 - -1.9348249770700932e-004 - 0.2041133940219879 - 0.5300545096397400 - <_> - - <_> - - - - <_>5 10 2 6 -1. - <_>5 13 2 3 2. - 0 - -2.6710508973337710e-004 - 0.5416126251220703 - 0.3103179037570953 - <_> - - <_> - - - - <_>7 6 8 10 -1. - <_>11 6 4 5 2. - <_>7 11 4 5 2. - 0 - 2.7818060480058193e-003 - 0.5277832746505737 - 0.3467069864273071 - <_> - - <_> - - - - <_>5 6 8 10 -1. - <_>5 6 4 5 2. - <_>9 11 4 5 2. - 0 - -4.6779078547842801e-004 - 0.5308231115341187 - 0.3294492065906525 - <_> - - <_> - - - - <_>9 5 2 2 -1. - <_>9 6 2 1 2. - 0 - -3.0335160772665404e-005 - 0.5773872733116150 - 0.3852097094058991 - <_> - - <_> - - - - <_>5 12 8 2 -1. - <_>5 13 8 1 2. - 0 - 7.8038009814918041e-004 - 0.4317438900470734 - 0.6150057911872864 - <_> - - <_> - - - - <_>10 2 8 2 -1. - <_>10 3 8 1 2. - 0 - -4.2553851380944252e-003 - 0.2933903932571411 - 0.5324292778968811 - <_> - - <_> - - - - <_>4 0 2 10 -1. - <_>4 0 1 5 2. - <_>5 5 1 5 2. - 0 - -2.4735610350035131e-004 - 0.5468844771385193 - 0.3843030035495758 - <_> - - <_> - - - - <_>9 10 2 2 -1. - <_>9 11 2 1 2. - 0 - -1.4724259381182492e-004 - 0.4281542897224426 - 0.5755587220191956 - <_> - - <_> - - - - <_>2 8 15 3 -1. - <_>2 9 15 1 3. - 0 - 1.1864770203828812e-003 - 0.3747301101684570 - 0.5471466183662415 - <_> - - <_> - - - - <_>8 13 4 3 -1. - <_>8 14 4 1 3. - 0 - 2.3936580400913954e-003 - 0.4537783861160278 - 0.6111528873443604 - <_> - - <_> - - - - <_>7 2 3 2 -1. - <_>8 2 1 2 3. - 0 - -1.5390539774671197e-003 - 0.2971341907978058 - 0.5189538002014160 - <_> - - <_> - - - - <_>7 13 6 3 -1. - <_>7 14 6 1 3. - 0 - -7.1968790143728256e-003 - 0.6699066758155823 - 0.4726476967334747 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -4.1499789222143590e-004 - 0.3384954035282135 - 0.5260317921638489 - <_> - - <_> - - - - <_>17 2 3 6 -1. - <_>17 4 3 2 3. - 0 - 4.4359830208122730e-003 - 0.5399122238159180 - 0.3920140862464905 - <_> - - <_> - - - - <_>1 5 3 4 -1. - <_>2 5 1 4 3. - 0 - 2.6606200262904167e-003 - 0.4482578039169312 - 0.6119617819786072 - <_> - - <_> - - - - <_>14 8 4 6 -1. - <_>14 10 4 2 3. - 0 - -1.5287200221791863e-003 - 0.3711237907409668 - 0.5340266227722168 - <_> - - <_> - - - - <_>1 4 3 8 -1. - <_>2 4 1 8 3. - 0 - -4.7397250309586525e-003 - 0.6031088232994080 - 0.4455145001411438 - <_> - - <_> - - - - <_>8 13 4 6 -1. - <_>8 16 4 3 2. - 0 - -0.0148291299119592 - 0.2838754057884216 - 0.5341861844062805 - <_> - - <_> - - - - <_>3 14 2 2 -1. - <_>3 15 2 1 2. - 0 - 9.2275557108223438e-004 - 0.5209547281265259 - 0.3361653983592987 - <_> - - <_> - - - - <_>14 8 4 6 -1. - <_>14 10 4 2 3. - 0 - 0.0835298076272011 - 0.5119969844818115 - 0.0811644494533539 - <_> - - <_> - - - - <_>2 8 4 6 -1. - <_>2 10 4 2 3. - 0 - -7.5633148662745953e-004 - 0.3317120075225830 - 0.5189831256866455 - <_> - - <_> - - - - <_>10 14 1 6 -1. - <_>10 17 1 3 2. - 0 - 9.8403859883546829e-003 - 0.5247598290443420 - 0.2334959059953690 - <_> - - <_> - - - - <_>7 5 3 6 -1. - <_>8 5 1 6 3. - 0 - -1.5953830443322659e-003 - 0.5750094056129456 - 0.4295622110366821 - <_> - - <_> - - - - <_>11 2 2 6 -1. - <_>12 2 1 3 2. - <_>11 5 1 3 2. - 0 - 3.4766020689858124e-005 - 0.4342445135116577 - 0.5564029216766357 - <_> - - <_> - - - - <_>6 6 6 5 -1. - <_>8 6 2 5 3. - 0 - 0.0298629105091095 - 0.4579147100448608 - 0.6579188108444214 - <_> - - <_> - - - - <_>17 1 3 6 -1. - <_>17 3 3 2 3. - 0 - 0.0113255903124809 - 0.5274311900138855 - 0.3673888146877289 - <_> - - <_> - - - - <_>8 7 3 5 -1. - <_>9 7 1 5 3. - 0 - -8.7828645482659340e-003 - 0.7100368738174439 - 0.4642167091369629 - <_> - - <_> - - - - <_>9 18 3 2 -1. - <_>10 18 1 2 3. - 0 - 4.3639959767460823e-003 - 0.5279216170310974 - 0.2705877125263214 - <_> - - <_> - - - - <_>8 18 3 2 -1. - <_>9 18 1 2 3. - 0 - 4.1804728098213673e-003 - 0.5072525143623352 - 0.2449083030223846 - <_> - - <_> - - - - <_>12 3 5 2 -1. - <_>12 4 5 1 2. - 0 - -4.5668511302210391e-004 - 0.4283105134963989 - 0.5548691153526306 - <_> - - <_> - - - - <_>7 1 5 12 -1. - <_>7 7 5 6 2. - 0 - -3.7140368949621916e-003 - 0.5519387722015381 - 0.4103653132915497 - <_> - - <_> - - - - <_>1 0 18 4 -1. - <_>7 0 6 4 3. - 0 - -0.0253042895346880 - 0.6867002248764038 - 0.4869889020919800 - <_> - - <_> - - - - <_>4 2 2 2 -1. - <_>4 3 2 1 2. - 0 - -3.4454080741852522e-004 - 0.3728874027729034 - 0.5287693142890930 - <_> - - <_> - - - - <_>11 14 4 2 -1. - <_>13 14 2 1 2. - <_>11 15 2 1 2. - 0 - -8.3935231668874621e-004 - 0.6060152053833008 - 0.4616062045097351 - <_> - - <_> - - - - <_>0 2 3 6 -1. - <_>0 4 3 2 3. - 0 - 0.0172800496220589 - 0.5049635767936707 - 0.1819823980331421 - <_> - - <_> - - - - <_>9 7 2 3 -1. - <_>9 8 2 1 3. - 0 - -6.3595077954232693e-003 - 0.1631239950656891 - 0.5232778787612915 - <_> - - <_> - - - - <_>5 5 1 3 -1. - <_>5 6 1 1 3. - 0 - 1.0298109846189618e-003 - 0.4463278055191040 - 0.6176549196243286 - <_> - - <_> - - - - <_>10 10 6 1 -1. - <_>10 10 3 1 2. - 0 - 1.0117109632119536e-003 - 0.5473384857177734 - 0.4300698935985565 - <_> - - <_> - - - - <_>4 10 6 1 -1. - <_>7 10 3 1 2. - 0 - -0.0103088002651930 - 0.1166985034942627 - 0.5000867247581482 - <_> - - <_> - - - - <_>9 17 3 3 -1. - <_>9 18 3 1 3. - 0 - 5.4682018235325813e-003 - 0.4769287109375000 - 0.6719213724136353 - <_> - - <_> - - - - <_>4 14 1 3 -1. - <_>4 15 1 1 3. - 0 - -9.1696460731327534e-004 - 0.3471089899539948 - 0.5178164839744568 - <_> - - <_> - - - - <_>12 5 3 3 -1. - <_>12 6 3 1 3. - 0 - 2.3922820109874010e-003 - 0.4785236120223999 - 0.6216310858726502 - <_> - - <_> - - - - <_>4 5 12 3 -1. - <_>4 6 12 1 3. - 0 - -7.5573818758130074e-003 - 0.5814796090126038 - 0.4410085082054138 - <_> - - <_> - - - - <_>9 8 2 3 -1. - <_>9 9 2 1 3. - 0 - -7.7024032361805439e-004 - 0.3878000080585480 - 0.5465722084045410 - <_> - - <_> - - - - <_>4 9 3 3 -1. - <_>5 9 1 3 3. - 0 - -8.7125990539789200e-003 - 0.1660051047801971 - 0.4995836019515991 - <_> - - <_> - - - - <_>6 0 9 17 -1. - <_>9 0 3 17 3. - 0 - -0.0103063201531768 - 0.4093391001224518 - 0.5274233818054199 - <_> - - <_> - - - - <_>9 12 1 3 -1. - <_>9 13 1 1 3. - 0 - -2.0940979011356831e-003 - 0.6206194758415222 - 0.4572280049324036 - <_> - - <_> - - - - <_>9 5 2 15 -1. - <_>9 10 2 5 3. - 0 - 6.8099051713943481e-003 - 0.5567759275436401 - 0.4155600070953369 - <_> - - <_> - - - - <_>8 14 2 3 -1. - <_>8 15 2 1 3. - 0 - -1.0746059706434608e-003 - 0.5638927817344666 - 0.4353024959564209 - <_> - - <_> - - - - <_>10 14 1 3 -1. - <_>10 15 1 1 3. - 0 - 2.1550289820879698e-003 - 0.4826265871524811 - 0.6749758124351502 - <_> - - <_> - - - - <_>7 1 6 5 -1. - <_>9 1 2 5 3. - 0 - 0.0317423194646835 - 0.5048379898071289 - 0.1883248984813690 - <_> - - <_> - - - - <_>0 0 20 2 -1. - <_>0 0 10 2 2. - 0 - -0.0783827230334282 - 0.2369548976421356 - 0.5260158181190491 - <_> - - <_> - - - - <_>2 13 5 3 -1. - <_>2 14 5 1 3. - 0 - 5.7415119372308254e-003 - 0.5048828721046448 - 0.2776469886302948 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -2.9014600440859795e-003 - 0.6238604784011841 - 0.4693317115306854 - <_> - - <_> - - - - <_>2 5 9 15 -1. - <_>2 10 9 5 3. - 0 - -2.6427931152284145e-003 - 0.3314141929149628 - 0.5169777274131775 - <_> - - <_> - - - - <_>5 0 12 10 -1. - <_>11 0 6 5 2. - <_>5 5 6 5 2. - 0 - -0.1094966009259224 - 0.2380045056343079 - 0.5183441042900085 - <_> - - <_> - - - - <_>5 1 2 3 -1. - <_>6 1 1 3 2. - 0 - 7.4075913289561868e-005 - 0.4069635868072510 - 0.5362150073051453 - <_> - - <_> - - - - <_>10 7 6 1 -1. - <_>12 7 2 1 3. - 0 - -5.0593802006915212e-004 - 0.5506706237792969 - 0.4374594092369080 - <_> - - <_> - - - - <_>3 1 2 10 -1. - <_>3 1 1 5 2. - <_>4 6 1 5 2. - 0 - -8.2131777890026569e-004 - 0.5525709986686707 - 0.4209375977516174 - <_> - - <_> - - - - <_>13 7 2 1 -1. - <_>13 7 1 1 2. - 0 - -6.0276539443293586e-005 - 0.5455474853515625 - 0.4748266041278839 - <_> - - <_> - - - - <_>4 13 4 6 -1. - <_>4 15 4 2 3. - 0 - 6.8065142259001732e-003 - 0.5157995820045471 - 0.3424577116966248 - <_> - - <_> - - - - <_>13 7 2 1 -1. - <_>13 7 1 1 2. - 0 - 1.7202789895236492e-003 - 0.5013207793235779 - 0.6331263780593872 - <_> - - <_> - - - - <_>5 7 2 1 -1. - <_>6 7 1 1 2. - 0 - -1.3016929733566940e-004 - 0.5539718270301819 - 0.4226869940757752 - <_> - - <_> - - - - <_>2 12 18 4 -1. - <_>11 12 9 2 2. - <_>2 14 9 2 2. - 0 - -4.8016388900578022e-003 - 0.4425095021724701 - 0.5430780053138733 - <_> - - <_> - - - - <_>5 7 2 2 -1. - <_>5 7 1 1 2. - <_>6 8 1 1 2. - 0 - -2.5399310979992151e-003 - 0.7145782113075256 - 0.4697605073451996 - <_> - - <_> - - - - <_>16 3 4 2 -1. - <_>16 4 4 1 2. - 0 - -1.4278929447755218e-003 - 0.4070445001125336 - 0.5399605035781860 - <_> - - <_> - - - - <_>0 2 2 18 -1. - <_>0 2 1 9 2. - <_>1 11 1 9 2. - 0 - -0.0251425504684448 - 0.7884690761566162 - 0.4747352004051209 - <_> - - <_> - - - - <_>1 2 18 4 -1. - <_>10 2 9 2 2. - <_>1 4 9 2 2. - 0 - -3.8899609353393316e-003 - 0.4296191930770874 - 0.5577110052108765 - <_> - - <_> - - - - <_>9 14 1 3 -1. - <_>9 15 1 1 3. - 0 - 4.3947459198534489e-003 - 0.4693162143230438 - 0.7023944258689880 - <_> - - <_> - - - - <_>2 12 18 4 -1. - <_>11 12 9 2 2. - <_>2 14 9 2 2. - 0 - 0.0246784202754498 - 0.5242322087287903 - 0.3812510073184967 - <_> - - <_> - - - - <_>0 12 18 4 -1. - <_>0 12 9 2 2. - <_>9 14 9 2 2. - 0 - 0.0380476787686348 - 0.5011739730834961 - 0.1687828004360199 - <_> - - <_> - - - - <_>11 4 5 3 -1. - <_>11 5 5 1 3. - 0 - 7.9424865543842316e-003 - 0.4828582108020783 - 0.6369568109512329 - <_> - - <_> - - - - <_>6 4 7 3 -1. - <_>6 5 7 1 3. - 0 - -1.5110049862414598e-003 - 0.5906485915184021 - 0.4487667977809906 - <_> - - <_> - - - - <_>13 17 3 3 -1. - <_>13 18 3 1 3. - 0 - 6.4201741479337215e-003 - 0.5241097807884216 - 0.2990570068359375 - <_> - - <_> - - - - <_>8 1 3 4 -1. - <_>9 1 1 4 3. - 0 - -2.9802159406244755e-003 - 0.3041465878486633 - 0.5078489780426025 - <_> - - <_> - - - - <_>11 4 2 4 -1. - <_>11 4 1 4 2. - 0 - -7.4580078944563866e-004 - 0.4128139019012451 - 0.5256826281547546 - <_> - - <_> - - - - <_>0 17 9 3 -1. - <_>3 17 3 3 3. - 0 - -0.0104709500446916 - 0.5808395147323608 - 0.4494296014308929 - <_> - - <_> - - - - <_>11 0 2 8 -1. - <_>12 0 1 4 2. - <_>11 4 1 4 2. - 0 - 9.3369204550981522e-003 - 0.5246552824974060 - 0.2658948898315430 - <_> - - <_> - - - - <_>0 8 6 12 -1. - <_>0 8 3 6 2. - <_>3 14 3 6 2. - 0 - 0.0279369000345469 - 0.4674955010414124 - 0.7087256908416748 - <_> - - <_> - - - - <_>10 7 4 12 -1. - <_>10 13 4 6 2. - 0 - 7.4277678504586220e-003 - 0.5409486889839172 - 0.3758518099784851 - <_> - - <_> - - - - <_>5 3 8 14 -1. - <_>5 10 8 7 2. - 0 - -0.0235845092684031 - 0.3758639991283417 - 0.5238550901412964 - <_> - - <_> - - - - <_>14 10 6 1 -1. - <_>14 10 3 1 2. - 0 - 1.1452640173956752e-003 - 0.4329578876495361 - 0.5804247260093689 - <_> - - <_> - - - - <_>0 4 10 4 -1. - <_>0 6 10 2 2. - 0 - -4.3468660442158580e-004 - 0.5280618071556091 - 0.3873069882392883 - <_> - - <_> - - - - <_>10 0 5 8 -1. - <_>10 4 5 4 2. - 0 - 0.0106485402211547 - 0.4902113080024719 - 0.5681251883506775 - <_> - - <_> - - - - <_>8 1 4 8 -1. - <_>8 1 2 4 2. - <_>10 5 2 4 2. - 0 - -3.9418050437234342e-004 - 0.5570880174636841 - 0.4318251013755798 - <_> - - <_> - - - - <_>9 11 6 1 -1. - <_>11 11 2 1 3. - 0 - -1.3270479394122958e-004 - 0.5658439993858337 - 0.4343554973602295 - <_> - - <_> - - - - <_>8 9 3 4 -1. - <_>9 9 1 4 3. - 0 - -2.0125510636717081e-003 - 0.6056739091873169 - 0.4537523984909058 - <_> - - <_> - - - - <_>18 4 2 6 -1. - <_>18 6 2 2 3. - 0 - 2.4854319635778666e-003 - 0.5390477180480957 - 0.4138010144233704 - <_> - - <_> - - - - <_>8 8 3 4 -1. - <_>9 8 1 4 3. - 0 - 1.8237880431115627e-003 - 0.4354828894138336 - 0.5717188715934753 - <_> - - <_> - - - - <_>7 1 13 3 -1. - <_>7 2 13 1 3. - 0 - -0.0166566595435143 - 0.3010913133621216 - 0.5216122865676880 - <_> - - <_> - - - - <_>7 13 6 1 -1. - <_>9 13 2 1 3. - 0 - 8.0349558265879750e-004 - 0.5300151109695435 - 0.3818396925926209 - <_> - - <_> - - - - <_>12 11 3 6 -1. - <_>12 13 3 2 3. - 0 - 3.4170378930866718e-003 - 0.5328028798103333 - 0.4241400063037872 - <_> - - <_> - - - - <_>5 11 6 1 -1. - <_>7 11 2 1 3. - 0 - -3.6222729249857366e-004 - 0.5491728186607361 - 0.4186977148056030 - <_> - - <_> - - - - <_>1 4 18 10 -1. - <_>10 4 9 5 2. - <_>1 9 9 5 2. - 0 - -0.1163002029061317 - 0.1440722048282623 - 0.5226451158523560 - <_> - - <_> - - - - <_>8 6 4 9 -1. - <_>8 9 4 3 3. - 0 - -0.0146950101479888 - 0.7747725248336792 - 0.4715717136859894 - <_> - - <_> - - - - <_>8 6 4 3 -1. - <_>8 7 4 1 3. - 0 - 2.1972130052745342e-003 - 0.5355433821678162 - 0.3315644860267639 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>9 7 1 3 3. - 0 - -4.6965209185145795e-004 - 0.5767235159873962 - 0.4458136856555939 - <_> - - <_> - - - - <_>14 15 4 3 -1. - <_>14 16 4 1 3. - 0 - 6.5144998952746391e-003 - 0.5215674042701721 - 0.3647888898849487 - <_> - - <_> - - - - <_>5 10 3 10 -1. - <_>6 10 1 10 3. - 0 - 0.0213000606745481 - 0.4994204938411713 - 0.1567950993776321 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - 3.1881409231573343e-003 - 0.4742200076580048 - 0.6287270188331604 - <_> - - <_> - - - - <_>0 8 1 6 -1. - <_>0 10 1 2 3. - 0 - 9.0019777417182922e-004 - 0.5347954034805298 - 0.3943752050399780 - <_> - - <_> - - - - <_>10 15 1 3 -1. - <_>10 16 1 1 3. - 0 - -5.1772277802228928e-003 - 0.6727191805839539 - 0.5013138055801392 - <_> - - <_> - - - - <_>2 15 4 3 -1. - <_>2 16 4 1 3. - 0 - -4.3764649890363216e-003 - 0.3106675148010254 - 0.5128793120384216 - <_> - - <_> - - - - <_>18 3 2 8 -1. - <_>19 3 1 4 2. - <_>18 7 1 4 2. - 0 - 2.6299960445612669e-003 - 0.4886310100555420 - 0.5755215883255005 - <_> - - <_> - - - - <_>0 3 2 8 -1. - <_>0 3 1 4 2. - <_>1 7 1 4 2. - 0 - -2.0458688959479332e-003 - 0.6025794148445129 - 0.4558076858520508 - <_> - - <_> - - - - <_>3 7 14 10 -1. - <_>10 7 7 5 2. - <_>3 12 7 5 2. - 0 - 0.0694827064871788 - 0.5240747928619385 - 0.2185259014368057 - <_> - - <_> - - - - <_>0 7 19 3 -1. - <_>0 8 19 1 3. - 0 - 0.0240489393472672 - 0.5011867284774780 - 0.2090622037649155 - <_> - - <_> - - - - <_>12 6 3 3 -1. - <_>12 7 3 1 3. - 0 - 3.1095340382307768e-003 - 0.4866712093353272 - 0.7108548283576965 - <_> - - <_> - - - - <_>0 6 1 3 -1. - <_>0 7 1 1 3. - 0 - -1.2503260513767600e-003 - 0.3407891094684601 - 0.5156195163726807 - <_> - - <_> - - - - <_>12 6 3 3 -1. - <_>12 7 3 1 3. - 0 - -1.0281190043315291e-003 - 0.5575572252273560 - 0.4439432024955750 - <_> - - <_> - - - - <_>5 6 3 3 -1. - <_>5 7 3 1 3. - 0 - -8.8893622159957886e-003 - 0.6402000784873962 - 0.4620442092418671 - <_> - - <_> - - - - <_>8 2 4 2 -1. - <_>8 3 4 1 2. - 0 - -6.1094801640138030e-004 - 0.3766441941261292 - 0.5448899865150452 - <_> - - <_> - - - - <_>6 3 4 12 -1. - <_>8 3 2 12 2. - 0 - -5.7686357758939266e-003 - 0.3318648934364319 - 0.5133677124977112 - <_> - - <_> - - - - <_>13 6 2 3 -1. - <_>13 7 2 1 3. - 0 - 1.8506490159779787e-003 - 0.4903570115566254 - 0.6406934857368469 - <_> - - <_> - - - - <_>0 10 20 4 -1. - <_>0 12 20 2 2. - 0 - -0.0997994691133499 - 0.1536051034927368 - 0.5015562176704407 - <_> - - <_> - - - - <_>2 0 17 14 -1. - <_>2 7 17 7 2. - 0 - -0.3512834906578064 - 0.0588231310248375 - 0.5174378752708435 - <_> - - <_> - - - - <_>0 0 6 10 -1. - <_>0 0 3 5 2. - <_>3 5 3 5 2. - 0 - -0.0452445708215237 - 0.6961488723754883 - 0.4677872955799103 - <_> - - <_> - - - - <_>14 6 6 4 -1. - <_>14 6 3 4 2. - 0 - 0.0714815780520439 - 0.5167986154556274 - 0.1038092970848084 - <_> - - <_> - - - - <_>0 6 6 4 -1. - <_>3 6 3 4 2. - 0 - 2.1895780228078365e-003 - 0.4273078143596649 - 0.5532060861587524 - <_> - - <_> - - - - <_>13 2 7 2 -1. - <_>13 3 7 1 2. - 0 - -5.9242651332169771e-004 - 0.4638943970203400 - 0.5276389122009277 - <_> - - <_> - - - - <_>0 2 7 2 -1. - <_>0 3 7 1 2. - 0 - 1.6788389766588807e-003 - 0.5301648974418640 - 0.3932034969329834 - <_> - - <_> - - - - <_>6 11 14 2 -1. - <_>13 11 7 1 2. - <_>6 12 7 1 2. - 0 - -2.2163488902151585e-003 - 0.5630694031715393 - 0.4757033884525299 - <_> - - <_> - - - - <_>8 5 2 2 -1. - <_>8 5 1 1 2. - <_>9 6 1 1 2. - 0 - 1.1568699846975505e-004 - 0.4307535886764526 - 0.5535702705383301 - <_> - - <_> - - - - <_>13 9 2 3 -1. - <_>13 9 1 3 2. - 0 - -7.2017288766801357e-003 - 0.1444882005453110 - 0.5193064212799072 - <_> - - <_> - - - - <_>1 1 3 12 -1. - <_>2 1 1 12 3. - 0 - 8.9081272017210722e-004 - 0.4384432137012482 - 0.5593621134757996 - <_> - - <_> - - - - <_>17 4 1 3 -1. - <_>17 5 1 1 3. - 0 - 1.9605009583756328e-004 - 0.5340415835380554 - 0.4705956876277924 - <_> - - <_> - - - - <_>2 4 1 3 -1. - <_>2 5 1 1 3. - 0 - 5.2022142335772514e-004 - 0.5213856101036072 - 0.3810079097747803 - <_> - - <_> - - - - <_>14 5 1 3 -1. - <_>14 6 1 1 3. - 0 - 9.4588572392240167e-004 - 0.4769414961338043 - 0.6130738854408264 - <_> - - <_> - - - - <_>7 16 2 3 -1. - <_>7 17 2 1 3. - 0 - 9.1698471806012094e-005 - 0.4245009124279022 - 0.5429363250732422 - <_> - - <_> - - - - <_>8 13 4 6 -1. - <_>10 13 2 3 2. - <_>8 16 2 3 2. - 0 - 2.1833200007677078e-003 - 0.5457730889320374 - 0.4191075861454010 - <_> - - <_> - - - - <_>5 5 1 3 -1. - <_>5 6 1 1 3. - 0 - -8.6039671441540122e-004 - 0.5764588713645935 - 0.4471659958362579 - <_> - - <_> - - - - <_>16 0 4 20 -1. - <_>16 0 2 20 2. - 0 - -0.0132362395524979 - 0.6372823119163513 - 0.4695009887218475 - <_> - - <_> - - - - <_>5 1 2 6 -1. - <_>5 1 1 3 2. - <_>6 4 1 3 2. - 0 - 4.3376701069064438e-004 - 0.5317873954772949 - 0.3945829868316650 - 67.6989212036132810 - 14 - -1 - <_> - - - <_> - - <_> - - - - <_>5 4 10 4 -1. - <_>5 6 10 2 2. - 0 - -0.0248471498489380 - 0.6555516719818115 - 0.3873311877250671 - <_> - - <_> - - - - <_>15 2 4 12 -1. - <_>15 2 2 12 2. - 0 - 6.1348611488938332e-003 - 0.3748072087764740 - 0.5973997712135315 - <_> - - <_> - - - - <_>7 6 4 12 -1. - <_>7 12 4 6 2. - 0 - 6.4498498104512691e-003 - 0.5425491929054260 - 0.2548811137676239 - <_> - - <_> - - - - <_>14 5 1 8 -1. - <_>14 9 1 4 2. - 0 - 6.3491211039945483e-004 - 0.2462442070245743 - 0.5387253761291504 - <_> - - <_> - - - - <_>1 4 14 10 -1. - <_>1 4 7 5 2. - <_>8 9 7 5 2. - 0 - 1.4023890253156424e-003 - 0.5594322085380554 - 0.3528657853603363 - <_> - - <_> - - - - <_>11 6 6 14 -1. - <_>14 6 3 7 2. - <_>11 13 3 7 2. - 0 - 3.0044000595808029e-004 - 0.3958503901958466 - 0.5765938162803650 - <_> - - <_> - - - - <_>3 6 6 14 -1. - <_>3 6 3 7 2. - <_>6 13 3 7 2. - 0 - 1.0042409849120304e-004 - 0.3698996901512146 - 0.5534998178482056 - <_> - - <_> - - - - <_>4 9 15 2 -1. - <_>9 9 5 2 3. - 0 - -5.0841490738093853e-003 - 0.3711090981960297 - 0.5547800064086914 - <_> - - <_> - - - - <_>7 14 6 3 -1. - <_>7 15 6 1 3. - 0 - -0.0195372607558966 - 0.7492755055427551 - 0.4579297006130219 - <_> - - <_> - - - - <_>6 3 14 4 -1. - <_>13 3 7 2 2. - <_>6 5 7 2 2. - 0 - -7.4532740654831287e-006 - 0.5649787187576294 - 0.3904069960117340 - <_> - - <_> - - - - <_>1 9 15 2 -1. - <_>6 9 5 2 3. - 0 - -3.6079459823668003e-003 - 0.3381088078022003 - 0.5267801284790039 - <_> - - <_> - - - - <_>6 11 8 9 -1. - <_>6 14 8 3 3. - 0 - 2.0697501022368670e-003 - 0.5519291162490845 - 0.3714388906955719 - <_> - - <_> - - - - <_>7 4 3 8 -1. - <_>8 4 1 8 3. - 0 - -4.6463840408250690e-004 - 0.5608214735984802 - 0.4113566875457764 - <_> - - <_> - - - - <_>14 6 2 6 -1. - <_>14 9 2 3 2. - 0 - 7.5490452582016587e-004 - 0.3559206128120422 - 0.5329356193542481 - <_> - - <_> - - - - <_>5 7 6 4 -1. - <_>5 7 3 2 2. - <_>8 9 3 2 2. - 0 - -9.8322238773107529e-004 - 0.5414795875549316 - 0.3763205111026764 - <_> - - <_> - - - - <_>1 1 18 19 -1. - <_>7 1 6 19 3. - 0 - -0.0199406407773495 - 0.6347903013229370 - 0.4705299139022827 - <_> - - <_> - - - - <_>1 2 6 5 -1. - <_>4 2 3 5 2. - 0 - 3.7680300883948803e-003 - 0.3913489878177643 - 0.5563716292381287 - <_> - - <_> - - - - <_>12 17 6 2 -1. - <_>12 18 6 1 2. - 0 - -9.4528505578637123e-003 - 0.2554892897605896 - 0.5215116739273071 - <_> - - <_> - - - - <_>2 17 6 2 -1. - <_>2 18 6 1 2. - 0 - 2.9560849070549011e-003 - 0.5174679160118103 - 0.3063920140266419 - <_> - - <_> - - - - <_>17 3 3 6 -1. - <_>17 5 3 2 3. - 0 - 9.1078737750649452e-003 - 0.5388448238372803 - 0.2885963022708893 - <_> - - <_> - - - - <_>8 17 3 3 -1. - <_>8 18 3 1 3. - 0 - 1.8219229532405734e-003 - 0.4336043000221252 - 0.5852196812629700 - <_> - - <_> - - - - <_>10 13 2 6 -1. - <_>10 16 2 3 2. - 0 - 0.0146887395530939 - 0.5287361741065979 - 0.2870005965232849 - <_> - - <_> - - - - <_>7 13 6 3 -1. - <_>7 14 6 1 3. - 0 - -0.0143879903480411 - 0.7019448876380920 - 0.4647370874881744 - <_> - - <_> - - - - <_>17 3 3 6 -1. - <_>17 5 3 2 3. - 0 - -0.0189866498112679 - 0.2986552119255066 - 0.5247011780738831 - <_> - - <_> - - - - <_>8 13 2 3 -1. - <_>8 14 2 1 3. - 0 - 1.1527639580890536e-003 - 0.4323473870754242 - 0.5931661725044251 - <_> - - <_> - - - - <_>9 3 6 2 -1. - <_>11 3 2 2 3. - 0 - 0.0109336702153087 - 0.5286864042282105 - 0.3130319118499756 - <_> - - <_> - - - - <_>0 3 3 6 -1. - <_>0 5 3 2 3. - 0 - -0.0149327302351594 - 0.2658419013023377 - 0.5084077119827271 - <_> - - <_> - - - - <_>8 5 4 6 -1. - <_>8 7 4 2 3. - 0 - -2.9970539617352188e-004 - 0.5463526844978333 - 0.3740724027156830 - <_> - - <_> - - - - <_>5 5 3 2 -1. - <_>5 6 3 1 2. - 0 - 4.1677621193230152e-003 - 0.4703496992588043 - 0.7435721755027771 - <_> - - <_> - - - - <_>10 1 3 4 -1. - <_>11 1 1 4 3. - 0 - -6.3905320130288601e-003 - 0.2069258987903595 - 0.5280538201332092 - <_> - - <_> - - - - <_>1 2 5 9 -1. - <_>1 5 5 3 3. - 0 - 4.5029609464108944e-003 - 0.5182648897171021 - 0.3483543097972870 - <_> - - <_> - - - - <_>13 6 2 3 -1. - <_>13 7 2 1 3. - 0 - -9.2040365561842918e-003 - 0.6803777217864990 - 0.4932360053062439 - <_> - - <_> - - - - <_>0 6 14 3 -1. - <_>7 6 7 3 2. - 0 - 0.0813272595405579 - 0.5058398842811585 - 0.2253051996231079 - <_> - - <_> - - - - <_>2 11 18 8 -1. - <_>2 15 18 4 2. - 0 - -0.1507928073406220 - 0.2963424921035767 - 0.5264679789543152 - <_> - - <_> - - - - <_>5 6 2 3 -1. - <_>5 7 2 1 3. - 0 - 3.3179009333252907e-003 - 0.4655495882034302 - 0.7072932124137878 - <_> - - <_> - - - - <_>10 6 4 2 -1. - <_>12 6 2 1 2. - <_>10 7 2 1 2. - 0 - 7.7402801252901554e-004 - 0.4780347943305969 - 0.5668237805366516 - <_> - - <_> - - - - <_>6 6 4 2 -1. - <_>6 6 2 1 2. - <_>8 7 2 1 2. - 0 - 6.8199541419744492e-004 - 0.4286996126174927 - 0.5722156763076782 - <_> - - <_> - - - - <_>10 1 3 4 -1. - <_>11 1 1 4 3. - 0 - 5.3671570494771004e-003 - 0.5299307107925415 - 0.3114621937274933 - <_> - - <_> - - - - <_>7 1 2 7 -1. - <_>8 1 1 7 2. - 0 - 9.7018666565418243e-005 - 0.3674638867378235 - 0.5269461870193481 - <_> - - <_> - - - - <_>4 2 15 14 -1. - <_>4 9 15 7 2. - 0 - -0.1253408938646317 - 0.2351492047309876 - 0.5245791077613831 - <_> - - <_> - - - - <_>8 7 3 2 -1. - <_>9 7 1 2 3. - 0 - -5.2516269497573376e-003 - 0.7115936875343323 - 0.4693767130374908 - <_> - - <_> - - - - <_>2 3 18 4 -1. - <_>11 3 9 2 2. - <_>2 5 9 2 2. - 0 - -7.8342109918594360e-003 - 0.4462651014328003 - 0.5409085750579834 - <_> - - <_> - - - - <_>9 7 2 2 -1. - <_>10 7 1 2 2. - 0 - -1.1310069821774960e-003 - 0.5945618748664856 - 0.4417662024497986 - <_> - - <_> - - - - <_>13 9 2 3 -1. - <_>13 9 1 3 2. - 0 - 1.7601120052859187e-003 - 0.5353249907493591 - 0.3973453044891357 - <_> - - <_> - - - - <_>5 2 6 2 -1. - <_>7 2 2 2 3. - 0 - -8.1581249833106995e-004 - 0.3760268092155457 - 0.5264726877212524 - <_> - - <_> - - - - <_>9 5 2 7 -1. - <_>9 5 1 7 2. - 0 - -3.8687589112669230e-003 - 0.6309912800788879 - 0.4749819934368134 - <_> - - <_> - - - - <_>5 9 2 3 -1. - <_>6 9 1 3 2. - 0 - 1.5207129763439298e-003 - 0.5230181813240051 - 0.3361223936080933 - <_> - - <_> - - - - <_>6 0 14 18 -1. - <_>6 9 14 9 2. - 0 - 0.5458673834800720 - 0.5167139768600464 - 0.1172635033726692 - <_> - - <_> - - - - <_>2 16 6 3 -1. - <_>2 17 6 1 3. - 0 - 0.0156501904129982 - 0.4979439079761505 - 0.1393294930458069 - <_> - - <_> - - - - <_>9 7 3 6 -1. - <_>10 7 1 6 3. - 0 - -0.0117318602278829 - 0.7129650712013245 - 0.4921196103096008 - <_> - - <_> - - - - <_>7 8 4 3 -1. - <_>7 9 4 1 3. - 0 - -6.1765122227370739e-003 - 0.2288102954626083 - 0.5049701929092407 - <_> - - <_> - - - - <_>7 12 6 3 -1. - <_>7 13 6 1 3. - 0 - 2.2457661107182503e-003 - 0.4632433950901032 - 0.6048725843429565 - <_> - - <_> - - - - <_>9 12 2 3 -1. - <_>9 13 2 1 3. - 0 - -5.1915869116783142e-003 - 0.6467421054840088 - 0.4602192938327789 - <_> - - <_> - - - - <_>7 12 6 2 -1. - <_>9 12 2 2 3. - 0 - -0.0238278806209564 - 0.1482000946998596 - 0.5226079225540161 - <_> - - <_> - - - - <_>5 11 4 6 -1. - <_>5 14 4 3 2. - 0 - 1.0284580057486892e-003 - 0.5135489106178284 - 0.3375957012176514 - <_> - - <_> - - - - <_>11 12 7 2 -1. - <_>11 13 7 1 2. - 0 - -0.0100788502022624 - 0.2740561068058014 - 0.5303567051887512 - <_> - - <_> - - - - <_>6 10 8 6 -1. - <_>6 10 4 3 2. - <_>10 13 4 3 2. - 0 - 2.6168930344283581e-003 - 0.5332670807838440 - 0.3972454071044922 - <_> - - <_> - - - - <_>11 10 3 4 -1. - <_>11 12 3 2 2. - 0 - 5.4385367548093200e-004 - 0.5365604162216187 - 0.4063411951065064 - <_> - - <_> - - - - <_>9 16 2 3 -1. - <_>9 17 2 1 3. - 0 - 5.3510512225329876e-003 - 0.4653759002685547 - 0.6889045834541321 - <_> - - <_> - - - - <_>13 3 1 9 -1. - <_>13 6 1 3 3. - 0 - -1.5274790348485112e-003 - 0.5449501276016235 - 0.3624723851680756 - <_> - - <_> - - - - <_>1 13 14 6 -1. - <_>1 15 14 2 3. - 0 - -0.0806244164705276 - 0.1656087040901184 - 0.5000287294387817 - <_> - - <_> - - - - <_>13 6 1 6 -1. - <_>13 9 1 3 2. - 0 - 0.0221920292824507 - 0.5132731199264526 - 0.2002808004617691 - <_> - - <_> - - - - <_>0 4 3 8 -1. - <_>1 4 1 8 3. - 0 - 7.3100631125271320e-003 - 0.4617947936058044 - 0.6366536021232605 - <_> - - <_> - - - - <_>18 0 2 18 -1. - <_>18 0 1 18 2. - 0 - -6.4063072204589844e-003 - 0.5916250944137573 - 0.4867860972881317 - <_> - - <_> - - - - <_>2 3 6 2 -1. - <_>2 4 6 1 2. - 0 - -7.6415040530264378e-004 - 0.3888409137725830 - 0.5315797924995422 - <_> - - <_> - - - - <_>9 0 8 6 -1. - <_>9 2 8 2 3. - 0 - 7.6734489994123578e-004 - 0.4159064888954163 - 0.5605279803276062 - <_> - - <_> - - - - <_>6 6 1 6 -1. - <_>6 9 1 3 2. - 0 - 6.1474501853808761e-004 - 0.3089022040367127 - 0.5120148062705994 - <_> - - <_> - - - - <_>14 8 6 3 -1. - <_>14 9 6 1 3. - 0 - -5.0105270929634571e-003 - 0.3972199857234955 - 0.5207306146621704 - <_> - - <_> - - - - <_>0 0 2 18 -1. - <_>1 0 1 18 2. - 0 - -8.6909132078289986e-003 - 0.6257408261299133 - 0.4608575999736786 - <_> - - <_> - - - - <_>1 18 18 2 -1. - <_>10 18 9 1 2. - <_>1 19 9 1 2. - 0 - -0.0163914598524570 - 0.2085209935903549 - 0.5242266058921814 - <_> - - <_> - - - - <_>3 15 2 2 -1. - <_>3 16 2 1 2. - 0 - 4.0973909199237823e-004 - 0.5222427248954773 - 0.3780320882797241 - <_> - - <_> - - - - <_>8 14 5 3 -1. - <_>8 15 5 1 3. - 0 - -2.5242289993911982e-003 - 0.5803927183151245 - 0.4611890017986298 - <_> - - <_> - - - - <_>8 14 2 3 -1. - <_>8 15 2 1 3. - 0 - 5.0945312250405550e-004 - 0.4401271939277649 - 0.5846015810966492 - <_> - - <_> - - - - <_>12 3 3 3 -1. - <_>13 3 1 3 3. - 0 - 1.9656419754028320e-003 - 0.5322325229644775 - 0.4184590876102448 - <_> - - <_> - - - - <_>7 5 6 2 -1. - <_>9 5 2 2 3. - 0 - 5.6298897834494710e-004 - 0.3741844892501831 - 0.5234565734863281 - <_> - - <_> - - - - <_>15 5 5 2 -1. - <_>15 6 5 1 2. - 0 - -6.7946797935292125e-004 - 0.4631041884422302 - 0.5356478095054627 - <_> - - <_> - - - - <_>0 5 5 2 -1. - <_>0 6 5 1 2. - 0 - 7.2856349870562553e-003 - 0.5044670104980469 - 0.2377564013004303 - <_> - - <_> - - - - <_>17 14 1 6 -1. - <_>17 17 1 3 2. - 0 - -0.0174594894051552 - 0.7289121150970459 - 0.5050435066223145 - <_> - - <_> - - - - <_>2 9 9 3 -1. - <_>5 9 3 3 3. - 0 - -0.0254217498004436 - 0.6667134761810303 - 0.4678100049495697 - <_> - - <_> - - - - <_>12 3 3 3 -1. - <_>13 3 1 3 3. - 0 - -1.5647639520466328e-003 - 0.4391759037971497 - 0.5323626995086670 - <_> - - <_> - - - - <_>0 0 4 18 -1. - <_>2 0 2 18 2. - 0 - 0.0114443600177765 - 0.4346440136432648 - 0.5680012106895447 - <_> - - <_> - - - - <_>17 6 1 3 -1. - <_>17 7 1 1 3. - 0 - -6.7352550104260445e-004 - 0.4477140903472900 - 0.5296812057495117 - <_> - - <_> - - - - <_>2 14 1 6 -1. - <_>2 17 1 3 2. - 0 - 9.3194209039211273e-003 - 0.4740200042724609 - 0.7462607026100159 - <_> - - <_> - - - - <_>19 8 1 2 -1. - <_>19 9 1 1 2. - 0 - 1.3328490604180843e-004 - 0.5365061759948731 - 0.4752134978771210 - <_> - - <_> - - - - <_>5 3 3 3 -1. - <_>6 3 1 3 3. - 0 - -7.8815799206495285e-003 - 0.1752219051122665 - 0.5015255212783814 - <_> - - <_> - - - - <_>9 16 2 3 -1. - <_>9 17 2 1 3. - 0 - -5.7985680177807808e-003 - 0.7271236777305603 - 0.4896200895309448 - <_> - - <_> - - - - <_>2 6 1 3 -1. - <_>2 7 1 1 3. - 0 - -3.8922499516047537e-004 - 0.4003908932209015 - 0.5344941020011902 - <_> - - <_> - - - - <_>12 4 8 2 -1. - <_>16 4 4 1 2. - <_>12 5 4 1 2. - 0 - -1.9288610201328993e-003 - 0.5605612993240356 - 0.4803955852985382 - <_> - - <_> - - - - <_>0 4 8 2 -1. - <_>0 4 4 1 2. - <_>4 5 4 1 2. - 0 - 8.4214154630899429e-003 - 0.4753246903419495 - 0.7623608708381653 - <_> - - <_> - - - - <_>2 16 18 4 -1. - <_>2 18 18 2 2. - 0 - 8.1655876711010933e-003 - 0.5393261909484863 - 0.4191643893718720 - <_> - - <_> - - - - <_>7 15 2 4 -1. - <_>7 17 2 2 2. - 0 - 4.8280550981871784e-004 - 0.4240800142288208 - 0.5399821996688843 - <_> - - <_> - - - - <_>4 0 14 3 -1. - <_>4 1 14 1 3. - 0 - -2.7186630759388208e-003 - 0.4244599938392639 - 0.5424923896789551 - <_> - - <_> - - - - <_>0 0 4 20 -1. - <_>2 0 2 20 2. - 0 - -0.0125072300434113 - 0.5895841717720032 - 0.4550411105155945 - <_> - - <_> - - - - <_>12 4 4 8 -1. - <_>14 4 2 4 2. - <_>12 8 2 4 2. - 0 - -0.0242865197360516 - 0.2647134959697723 - 0.5189179778099060 - <_> - - <_> - - - - <_>6 7 2 2 -1. - <_>6 7 1 1 2. - <_>7 8 1 1 2. - 0 - -2.9676330741494894e-003 - 0.7347682714462280 - 0.4749749898910523 - <_> - - <_> - - - - <_>10 6 2 3 -1. - <_>10 7 2 1 3. - 0 - -0.0125289997085929 - 0.2756049931049347 - 0.5177599787712097 - <_> - - <_> - - - - <_>8 7 3 2 -1. - <_>8 8 3 1 2. - 0 - -1.0104000102728605e-003 - 0.3510560989379883 - 0.5144724249839783 - <_> - - <_> - - - - <_>8 2 6 12 -1. - <_>8 8 6 6 2. - 0 - -2.1348530426621437e-003 - 0.5637925863265991 - 0.4667319953441620 - <_> - - <_> - - - - <_>4 0 11 12 -1. - <_>4 4 11 4 3. - 0 - 0.0195642597973347 - 0.4614573121070862 - 0.6137639880180359 - <_> - - <_> - - - - <_>14 9 6 11 -1. - <_>16 9 2 11 3. - 0 - -0.0971463471651077 - 0.2998378872871399 - 0.5193555951118469 - <_> - - <_> - - - - <_>0 14 4 3 -1. - <_>0 15 4 1 3. - 0 - 4.5014568604528904e-003 - 0.5077884793281555 - 0.3045755922794342 - <_> - - <_> - - - - <_>9 10 2 3 -1. - <_>9 11 2 1 3. - 0 - 6.3706971704959869e-003 - 0.4861018955707550 - 0.6887500882148743 - <_> - - <_> - - - - <_>5 11 3 2 -1. - <_>5 12 3 1 2. - 0 - -9.0721528977155685e-003 - 0.1673395931720734 - 0.5017563104629517 - <_> - - <_> - - - - <_>9 15 3 3 -1. - <_>10 15 1 3 3. - 0 - -5.3537208586931229e-003 - 0.2692756950855255 - 0.5242633223533630 - <_> - - <_> - - - - <_>8 8 3 4 -1. - <_>9 8 1 4 3. - 0 - -0.0109328404068947 - 0.7183864116668701 - 0.4736028909683228 - <_> - - <_> - - - - <_>9 15 3 3 -1. - <_>10 15 1 3 3. - 0 - 8.2356072962284088e-003 - 0.5223966836929321 - 0.2389862984418869 - <_> - - <_> - - - - <_>7 7 3 2 -1. - <_>8 7 1 2 3. - 0 - -1.0038160253316164e-003 - 0.5719355940818787 - 0.4433943033218384 - <_> - - <_> - - - - <_>2 10 16 4 -1. - <_>10 10 8 2 2. - <_>2 12 8 2 2. - 0 - 4.0859128348529339e-003 - 0.5472841858863831 - 0.4148836135864258 - <_> - - <_> - - - - <_>2 3 4 17 -1. - <_>4 3 2 17 2. - 0 - 0.1548541933298111 - 0.4973812103271484 - 0.0610615983605385 - <_> - - <_> - - - - <_>15 13 2 7 -1. - <_>15 13 1 7 2. - 0 - 2.0897459762636572e-004 - 0.4709174036979675 - 0.5423889160156250 - <_> - - <_> - - - - <_>2 2 6 1 -1. - <_>5 2 3 1 2. - 0 - 3.3316991175524890e-004 - 0.4089626967906952 - 0.5300992131233215 - <_> - - <_> - - - - <_>5 2 12 4 -1. - <_>9 2 4 4 3. - 0 - -0.0108134001493454 - 0.6104369759559631 - 0.4957334101200104 - <_> - - <_> - - - - <_>6 0 8 12 -1. - <_>6 0 4 6 2. - <_>10 6 4 6 2. - 0 - 0.0456560105085373 - 0.5069689154624939 - 0.2866660058498383 - <_> - - <_> - - - - <_>13 7 2 2 -1. - <_>14 7 1 1 2. - <_>13 8 1 1 2. - 0 - 1.2569549726322293e-003 - 0.4846917092800140 - 0.6318171024322510 - <_> - - <_> - - - - <_>0 12 20 6 -1. - <_>0 14 20 2 3. - 0 - -0.1201507002115250 - 0.0605261400341988 - 0.4980959892272949 - <_> - - <_> - - - - <_>14 7 2 3 -1. - <_>14 7 1 3 2. - 0 - -1.0533799650147557e-004 - 0.5363109707832336 - 0.4708042144775391 - <_> - - <_> - - - - <_>0 8 9 12 -1. - <_>3 8 3 12 3. - 0 - -0.2070319056510925 - 0.0596603304147720 - 0.4979098141193390 - <_> - - <_> - - - - <_>3 0 16 2 -1. - <_>3 0 8 2 2. - 0 - 1.2909180077258497e-004 - 0.4712977111339569 - 0.5377997756004334 - <_> - - <_> - - - - <_>6 15 3 3 -1. - <_>6 16 3 1 3. - 0 - 3.8818528992123902e-004 - 0.4363538026809692 - 0.5534191131591797 - <_> - - <_> - - - - <_>8 15 6 3 -1. - <_>8 16 6 1 3. - 0 - -2.9243610333651304e-003 - 0.5811185836791992 - 0.4825215935707092 - <_> - - <_> - - - - <_>0 10 1 6 -1. - <_>0 12 1 2 3. - 0 - 8.3882332546636462e-004 - 0.5311700105667114 - 0.4038138985633850 - <_> - - <_> - - - - <_>10 9 4 3 -1. - <_>10 10 4 1 3. - 0 - -1.9061550265178084e-003 - 0.3770701885223389 - 0.5260015130043030 - <_> - - <_> - - - - <_>9 15 2 3 -1. - <_>9 16 2 1 3. - 0 - 8.9514348655939102e-003 - 0.4766167998313904 - 0.7682183980941773 - <_> - - <_> - - - - <_>5 7 10 1 -1. - <_>5 7 5 1 2. - 0 - 0.0130834598094225 - 0.5264462828636169 - 0.3062222003936768 - <_> - - <_> - - - - <_>4 0 12 19 -1. - <_>10 0 6 19 2. - 0 - -0.2115933001041412 - 0.6737198233604431 - 0.4695810079574585 - <_> - - <_> - - - - <_>0 6 20 6 -1. - <_>10 6 10 3 2. - <_>0 9 10 3 2. - 0 - 3.1493250280618668e-003 - 0.5644835233688355 - 0.4386953115463257 - <_> - - <_> - - - - <_>3 6 2 2 -1. - <_>3 6 1 1 2. - <_>4 7 1 1 2. - 0 - 3.9754100725986063e-004 - 0.4526061117649078 - 0.5895630121231079 - <_> - - <_> - - - - <_>15 6 2 2 -1. - <_>16 6 1 1 2. - <_>15 7 1 1 2. - 0 - -1.3814480043947697e-003 - 0.6070582270622253 - 0.4942413866519928 - <_> - - <_> - - - - <_>3 6 2 2 -1. - <_>3 6 1 1 2. - <_>4 7 1 1 2. - 0 - -5.8122188784182072e-004 - 0.5998213291168213 - 0.4508252143859863 - <_> - - <_> - - - - <_>14 4 1 12 -1. - <_>14 10 1 6 2. - 0 - -2.3905329871922731e-003 - 0.4205588996410370 - 0.5223848223686218 - <_> - - <_> - - - - <_>2 5 16 10 -1. - <_>2 5 8 5 2. - <_>10 10 8 5 2. - 0 - 0.0272689294070005 - 0.5206447243690491 - 0.3563301861286163 - <_> - - <_> - - - - <_>9 17 3 2 -1. - <_>10 17 1 2 3. - 0 - -3.7658358924090862e-003 - 0.3144704103469849 - 0.5218814015388489 - <_> - - <_> - - - - <_>1 4 2 2 -1. - <_>1 5 2 1 2. - 0 - -1.4903489500284195e-003 - 0.3380196094512940 - 0.5124437212944031 - <_> - - <_> - - - - <_>5 0 15 5 -1. - <_>10 0 5 5 3. - 0 - -0.0174282304942608 - 0.5829960703849793 - 0.4919725954532623 - <_> - - <_> - - - - <_>0 0 15 5 -1. - <_>5 0 5 5 3. - 0 - -0.0152780301868916 - 0.6163144707679749 - 0.4617887139320374 - <_> - - <_> - - - - <_>11 2 2 17 -1. - <_>11 2 1 17 2. - 0 - 0.0319956094026566 - 0.5166357159614563 - 0.1712764054536820 - <_> - - <_> - - - - <_>7 2 2 17 -1. - <_>8 2 1 17 2. - 0 - -3.8256710395216942e-003 - 0.3408012092113495 - 0.5131387710571289 - <_> - - <_> - - - - <_>15 11 2 9 -1. - <_>15 11 1 9 2. - 0 - -8.5186436772346497e-003 - 0.6105518937110901 - 0.4997941851615906 - <_> - - <_> - - - - <_>3 11 2 9 -1. - <_>4 11 1 9 2. - 0 - 9.0641621500253677e-004 - 0.4327270984649658 - 0.5582311153411865 - <_> - - <_> - - - - <_>5 16 14 4 -1. - <_>5 16 7 4 2. - 0 - 0.0103448498994112 - 0.4855653047561646 - 0.5452420115470886 - 69.2298736572265630 - 15 - -1 - <_> - - - <_> - - <_> - - - - <_>1 4 18 1 -1. - <_>7 4 6 1 3. - 0 - 7.8981826081871986e-003 - 0.3332524895668030 - 0.5946462154388428 - <_> - - <_> - - - - <_>13 7 6 4 -1. - <_>16 7 3 2 2. - <_>13 9 3 2 2. - 0 - 1.6170160379260778e-003 - 0.3490641117095947 - 0.5577868819236755 - <_> - - <_> - - - - <_>9 8 2 12 -1. - <_>9 12 2 4 3. - 0 - -5.5449741194024682e-004 - 0.5542566180229187 - 0.3291530013084412 - <_> - - <_> - - - - <_>12 1 6 6 -1. - <_>12 3 6 2 3. - 0 - 1.5428980113938451e-003 - 0.3612579107284546 - 0.5545979142189026 - <_> - - <_> - - - - <_>5 2 6 6 -1. - <_>5 2 3 3 2. - <_>8 5 3 3 2. - 0 - -1.0329450014978647e-003 - 0.3530139029026032 - 0.5576140284538269 - <_> - - <_> - - - - <_>9 16 6 4 -1. - <_>12 16 3 2 2. - <_>9 18 3 2 2. - 0 - 7.7698158565908670e-004 - 0.3916778862476349 - 0.5645321011543274 - <_> - - <_> - - - - <_>1 2 18 3 -1. - <_>7 2 6 3 3. - 0 - 0.1432030051946640 - 0.4667482078075409 - 0.7023633122444153 - <_> - - <_> - - - - <_>7 4 9 10 -1. - <_>7 9 9 5 2. - 0 - -7.3866490274667740e-003 - 0.3073684871196747 - 0.5289257764816284 - <_> - - <_> - - - - <_>5 9 4 4 -1. - <_>7 9 2 4 2. - 0 - -6.2936742324382067e-004 - 0.5622118115425110 - 0.4037049114704132 - <_> - - <_> - - - - <_>11 10 3 6 -1. - <_>11 13 3 3 2. - 0 - 7.8893528552725911e-004 - 0.5267661213874817 - 0.3557874858379364 - <_> - - <_> - - - - <_>7 11 5 3 -1. - <_>7 12 5 1 3. - 0 - -0.0122280502691865 - 0.6668320894241333 - 0.4625549912452698 - <_> - - <_> - - - - <_>7 11 6 6 -1. - <_>10 11 3 3 2. - <_>7 14 3 3 2. - 0 - 3.5420239437371492e-003 - 0.5521438121795654 - 0.3869673013687134 - <_> - - <_> - - - - <_>0 0 10 9 -1. - <_>0 3 10 3 3. - 0 - -1.0585320414975286e-003 - 0.3628678023815155 - 0.5320926904678345 - <_> - - <_> - - - - <_>13 14 1 6 -1. - <_>13 16 1 2 3. - 0 - 1.4935660146875307e-005 - 0.4632444977760315 - 0.5363323092460632 - <_> - - <_> - - - - <_>0 2 3 6 -1. - <_>0 4 3 2 3. - 0 - 5.2537708543241024e-003 - 0.5132231712341309 - 0.3265708982944489 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - -8.2338023930788040e-003 - 0.6693689823150635 - 0.4774140119552612 - <_> - - <_> - - - - <_>6 14 1 6 -1. - <_>6 16 1 2 3. - 0 - 2.1866810129722580e-005 - 0.4053862094879150 - 0.5457931160926819 - <_> - - <_> - - - - <_>9 15 2 3 -1. - <_>9 16 2 1 3. - 0 - -3.8150229956954718e-003 - 0.6454995870590210 - 0.4793178141117096 - <_> - - <_> - - - - <_>6 4 3 3 -1. - <_>7 4 1 3 3. - 0 - 1.1105879675596952e-003 - 0.5270407199859619 - 0.3529678881168366 - <_> - - <_> - - - - <_>9 0 11 3 -1. - <_>9 1 11 1 3. - 0 - -5.7707689702510834e-003 - 0.3803547024726868 - 0.5352957844734192 - <_> - - <_> - - - - <_>0 6 20 3 -1. - <_>0 7 20 1 3. - 0 - -3.0158339068293571e-003 - 0.5339403152465820 - 0.3887133002281189 - <_> - - <_> - - - - <_>10 1 1 2 -1. - <_>10 2 1 1 2. - 0 - -8.5453689098358154e-004 - 0.3564616143703461 - 0.5273603796958923 - <_> - - <_> - - - - <_>9 6 2 6 -1. - <_>10 6 1 6 2. - 0 - 0.0110505102202296 - 0.4671907126903534 - 0.6849737763404846 - <_> - - <_> - - - - <_>5 8 12 1 -1. - <_>9 8 4 1 3. - 0 - 0.0426058396697044 - 0.5151473283767700 - 0.0702200904488564 - <_> - - <_> - - - - <_>3 8 12 1 -1. - <_>7 8 4 1 3. - 0 - -3.0781750101596117e-003 - 0.3041661083698273 - 0.5152602195739746 - <_> - - <_> - - - - <_>9 7 3 5 -1. - <_>10 7 1 5 3. - 0 - -5.4815728217363358e-003 - 0.6430295705795288 - 0.4897229969501495 - <_> - - <_> - - - - <_>3 9 6 2 -1. - <_>6 9 3 2 2. - 0 - 3.1881860923022032e-003 - 0.5307493209838867 - 0.3826209902763367 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - 3.5947180003859103e-004 - 0.4650047123432159 - 0.5421904921531677 - <_> - - <_> - - - - <_>7 0 6 1 -1. - <_>9 0 2 1 3. - 0 - -4.0705031715333462e-003 - 0.2849679887294769 - 0.5079116225242615 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - -0.0145941702648997 - 0.2971645891666412 - 0.5128461718559265 - <_> - - <_> - - - - <_>7 10 2 1 -1. - <_>8 10 1 1 2. - 0 - -1.1947689927183092e-004 - 0.5631098151206970 - 0.4343082010746002 - <_> - - <_> - - - - <_>6 4 9 13 -1. - <_>9 4 3 13 3. - 0 - -6.9344649091362953e-004 - 0.4403578042984009 - 0.5359959006309509 - <_> - - <_> - - - - <_>6 8 4 2 -1. - <_>6 9 4 1 2. - 0 - 1.4834799912932795e-005 - 0.3421008884906769 - 0.5164697766304016 - <_> - - <_> - - - - <_>16 2 4 6 -1. - <_>16 2 2 6 2. - 0 - 9.0296985581517220e-003 - 0.4639343023300171 - 0.6114075183868408 - <_> - - <_> - - - - <_>0 17 6 3 -1. - <_>0 18 6 1 3. - 0 - -8.0640818923711777e-003 - 0.2820158898830414 - 0.5075494050979614 - <_> - - <_> - - - - <_>10 10 3 10 -1. - <_>10 15 3 5 2. - 0 - 0.0260621197521687 - 0.5208905935287476 - 0.2688778042793274 - <_> - - <_> - - - - <_>8 7 3 5 -1. - <_>9 7 1 5 3. - 0 - 0.0173146594315767 - 0.4663713872432709 - 0.6738539934158325 - <_> - - <_> - - - - <_>10 4 4 3 -1. - <_>10 4 2 3 2. - 0 - 0.0226666405797005 - 0.5209349989891052 - 0.2212723940610886 - <_> - - <_> - - - - <_>8 4 3 8 -1. - <_>9 4 1 8 3. - 0 - -2.1965929772704840e-003 - 0.6063101291656494 - 0.4538190066814423 - <_> - - <_> - - - - <_>6 6 9 13 -1. - <_>9 6 3 13 3. - 0 - -9.5282476395368576e-003 - 0.4635204970836639 - 0.5247430801391602 - <_> - - <_> - - - - <_>6 0 8 12 -1. - <_>6 0 4 6 2. - <_>10 6 4 6 2. - 0 - 8.0943619832396507e-003 - 0.5289440155029297 - 0.3913882076740265 - <_> - - <_> - - - - <_>14 2 6 8 -1. - <_>16 2 2 8 3. - 0 - -0.0728773325681686 - 0.7752001881599426 - 0.4990234971046448 - <_> - - <_> - - - - <_>6 0 3 6 -1. - <_>7 0 1 6 3. - 0 - -6.9009521976113319e-003 - 0.2428039014339447 - 0.5048090219497681 - <_> - - <_> - - - - <_>14 2 6 8 -1. - <_>16 2 2 8 3. - 0 - -0.0113082397729158 - 0.5734364986419678 - 0.4842376112937927 - <_> - - <_> - - - - <_>0 5 6 6 -1. - <_>0 8 6 3 2. - 0 - 0.0596132017672062 - 0.5029836297035217 - 0.2524977028369904 - <_> - - <_> - - - - <_>9 12 6 2 -1. - <_>12 12 3 1 2. - <_>9 13 3 1 2. - 0 - -2.8624620754271746e-003 - 0.6073045134544373 - 0.4898459911346436 - <_> - - <_> - - - - <_>8 17 3 2 -1. - <_>9 17 1 2 3. - 0 - 4.4781449250876904e-003 - 0.5015289187431335 - 0.2220316976308823 - <_> - - <_> - - - - <_>11 6 2 2 -1. - <_>12 6 1 1 2. - <_>11 7 1 1 2. - 0 - -1.7513240454718471e-003 - 0.6614428758621216 - 0.4933868944644928 - <_> - - <_> - - - - <_>1 9 18 2 -1. - <_>7 9 6 2 3. - 0 - 0.0401634201407433 - 0.5180878043174744 - 0.3741044998168945 - <_> - - <_> - - - - <_>11 6 2 2 -1. - <_>12 6 1 1 2. - <_>11 7 1 1 2. - 0 - 3.4768949262797832e-004 - 0.4720416963100433 - 0.5818032026290894 - <_> - - <_> - - - - <_>3 4 12 8 -1. - <_>7 4 4 8 3. - 0 - 2.6551650371402502e-003 - 0.3805010914802551 - 0.5221335887908936 - <_> - - <_> - - - - <_>13 11 5 3 -1. - <_>13 12 5 1 3. - 0 - -8.7706279009580612e-003 - 0.2944166064262390 - 0.5231295228004456 - <_> - - <_> - - - - <_>9 10 2 3 -1. - <_>9 11 2 1 3. - 0 - -5.5122091434895992e-003 - 0.7346177101135254 - 0.4722816944122315 - <_> - - <_> - - - - <_>14 7 2 3 -1. - <_>14 7 1 3 2. - 0 - 6.8672042107209563e-004 - 0.5452876091003418 - 0.4242413043975830 - <_> - - <_> - - - - <_>5 4 1 3 -1. - <_>5 5 1 1 3. - 0 - 5.6019669864326715e-004 - 0.4398862123489380 - 0.5601285099983215 - <_> - - <_> - - - - <_>13 4 2 3 -1. - <_>13 5 2 1 3. - 0 - 2.4143769405782223e-003 - 0.4741686880588532 - 0.6136621832847595 - <_> - - <_> - - - - <_>5 4 2 3 -1. - <_>5 5 2 1 3. - 0 - -1.5680900542065501e-003 - 0.6044552922248840 - 0.4516409933567047 - <_> - - <_> - - - - <_>9 8 2 3 -1. - <_>9 9 2 1 3. - 0 - -3.6827491130679846e-003 - 0.2452459037303925 - 0.5294982194900513 - <_> - - <_> - - - - <_>8 9 2 2 -1. - <_>8 10 2 1 2. - 0 - -2.9409190756268799e-004 - 0.3732838034629822 - 0.5251451134681702 - <_> - - <_> - - - - <_>15 14 1 4 -1. - <_>15 16 1 2 2. - 0 - 4.2847759323194623e-004 - 0.5498809814453125 - 0.4065535068511963 - <_> - - <_> - - - - <_>3 12 2 2 -1. - <_>3 13 2 1 2. - 0 - -4.8817070201039314e-003 - 0.2139908969402313 - 0.4999957084655762 - <_> - - <_> - - - - <_>12 15 2 2 -1. - <_>13 15 1 1 2. - <_>12 16 1 1 2. - 0 - 2.7272020815871656e-004 - 0.4650287032127380 - 0.5813428759574890 - <_> - - <_> - - - - <_>9 13 2 2 -1. - <_>9 14 2 1 2. - 0 - 2.0947199664078653e-004 - 0.4387486875057221 - 0.5572792887687683 - <_> - - <_> - - - - <_>4 11 14 9 -1. - <_>4 14 14 3 3. - 0 - 0.0485011897981167 - 0.5244972705841065 - 0.3212889134883881 - <_> - - <_> - - - - <_>7 13 4 3 -1. - <_>7 14 4 1 3. - 0 - -4.5166411437094212e-003 - 0.6056813001632690 - 0.4545882046222687 - <_> - - <_> - - - - <_>15 14 1 4 -1. - <_>15 16 1 2 2. - 0 - -0.0122916800901294 - 0.2040929049253464 - 0.5152214169502258 - <_> - - <_> - - - - <_>4 14 1 4 -1. - <_>4 16 1 2 2. - 0 - 4.8549679922871292e-004 - 0.5237604975700378 - 0.3739503026008606 - <_> - - <_> - - - - <_>14 0 6 13 -1. - <_>16 0 2 13 3. - 0 - 0.0305560491979122 - 0.4960533976554871 - 0.5938246250152588 - <_> - - <_> - - - - <_>4 1 2 12 -1. - <_>4 1 1 6 2. - <_>5 7 1 6 2. - 0 - -1.5105320198927075e-004 - 0.5351303815841675 - 0.4145204126834869 - <_> - - <_> - - - - <_>11 14 6 6 -1. - <_>14 14 3 3 2. - <_>11 17 3 3 2. - 0 - 2.4937440175563097e-003 - 0.4693366885185242 - 0.5514941215515137 - <_> - - <_> - - - - <_>3 14 6 6 -1. - <_>3 14 3 3 2. - <_>6 17 3 3 2. - 0 - -0.0123821301385760 - 0.6791396737098694 - 0.4681667983531952 - <_> - - <_> - - - - <_>14 17 3 2 -1. - <_>14 18 3 1 2. - 0 - -5.1333461888134480e-003 - 0.3608739078044891 - 0.5229160189628601 - <_> - - <_> - - - - <_>3 17 3 2 -1. - <_>3 18 3 1 2. - 0 - 5.1919277757406235e-004 - 0.5300073027610779 - 0.3633613884449005 - <_> - - <_> - - - - <_>14 0 6 13 -1. - <_>16 0 2 13 3. - 0 - 0.1506042033433914 - 0.5157316923141480 - 0.2211782038211823 - <_> - - <_> - - - - <_>0 0 6 13 -1. - <_>2 0 2 13 3. - 0 - 7.7144149690866470e-003 - 0.4410496950149536 - 0.5776609182357788 - <_> - - <_> - - - - <_>10 10 7 6 -1. - <_>10 12 7 2 3. - 0 - 9.4443522393703461e-003 - 0.5401855111122131 - 0.3756650090217590 - <_> - - <_> - - - - <_>6 15 2 2 -1. - <_>6 15 1 1 2. - <_>7 16 1 1 2. - 0 - 2.5006249779835343e-004 - 0.4368270933628082 - 0.5607374906539917 - <_> - - <_> - - - - <_>6 11 8 6 -1. - <_>10 11 4 3 2. - <_>6 14 4 3 2. - 0 - -3.3077150583267212e-003 - 0.4244799017906189 - 0.5518230795860291 - <_> - - <_> - - - - <_>7 6 2 2 -1. - <_>7 6 1 1 2. - <_>8 7 1 1 2. - 0 - 7.4048910755664110e-004 - 0.4496962130069733 - 0.5900576710700989 - <_> - - <_> - - - - <_>2 2 16 6 -1. - <_>10 2 8 3 2. - <_>2 5 8 3 2. - 0 - 0.0440920516848564 - 0.5293493270874023 - 0.3156355023384094 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 3.3639909233897924e-003 - 0.4483296871185303 - 0.5848662257194519 - <_> - - <_> - - - - <_>11 7 3 10 -1. - <_>11 12 3 5 2. - 0 - -3.9760079234838486e-003 - 0.4559507071971893 - 0.5483639240264893 - <_> - - <_> - - - - <_>6 7 3 10 -1. - <_>6 12 3 5 2. - 0 - 2.7716930489987135e-003 - 0.5341786146163940 - 0.3792484104633331 - <_> - - <_> - - - - <_>10 7 3 2 -1. - <_>11 7 1 2 3. - 0 - -2.4123019829858094e-004 - 0.5667188763618469 - 0.4576973021030426 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>8 13 4 1 2. - 0 - 4.9425667384639382e-004 - 0.4421244859695435 - 0.5628787279129028 - <_> - - <_> - - - - <_>10 1 1 3 -1. - <_>10 2 1 1 3. - 0 - -3.8876468897797167e-004 - 0.4288370907306671 - 0.5391063094139099 - <_> - - <_> - - - - <_>1 2 4 18 -1. - <_>1 2 2 9 2. - <_>3 11 2 9 2. - 0 - -0.0500488989055157 - 0.6899513006210327 - 0.4703742861747742 - <_> - - <_> - - - - <_>12 4 4 12 -1. - <_>12 10 4 6 2. - 0 - -0.0366354808211327 - 0.2217779010534287 - 0.5191826224327087 - <_> - - <_> - - - - <_>0 0 1 6 -1. - <_>0 2 1 2 3. - 0 - 2.4273579474538565e-003 - 0.5136224031448364 - 0.3497397899627686 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - 1.9558030180633068e-003 - 0.4826192855834961 - 0.6408380866050720 - <_> - - <_> - - - - <_>8 7 4 3 -1. - <_>8 8 4 1 3. - 0 - -1.7494610510766506e-003 - 0.3922835886478424 - 0.5272685289382935 - <_> - - <_> - - - - <_>10 7 3 2 -1. - <_>11 7 1 2 3. - 0 - 0.0139550799503922 - 0.5078201889991760 - 0.8416504859924316 - <_> - - <_> - - - - <_>7 7 3 2 -1. - <_>8 7 1 2 3. - 0 - -2.1896739781368524e-004 - 0.5520489811897278 - 0.4314234852790833 - <_> - - <_> - - - - <_>9 4 6 1 -1. - <_>11 4 2 1 3. - 0 - -1.5131309628486633e-003 - 0.3934605121612549 - 0.5382571220397949 - <_> - - <_> - - - - <_>8 7 2 3 -1. - <_>9 7 1 3 2. - 0 - -4.3622800149023533e-003 - 0.7370628714561462 - 0.4736475944519043 - <_> - - <_> - - - - <_>12 7 8 6 -1. - <_>16 7 4 3 2. - <_>12 10 4 3 2. - 0 - 0.0651605874300003 - 0.5159279704093933 - 0.3281595110893250 - <_> - - <_> - - - - <_>0 7 8 6 -1. - <_>0 7 4 3 2. - <_>4 10 4 3 2. - 0 - -2.3567399475723505e-003 - 0.3672826886177063 - 0.5172886252403259 - <_> - - <_> - - - - <_>18 2 2 10 -1. - <_>19 2 1 5 2. - <_>18 7 1 5 2. - 0 - 0.0151466596871614 - 0.5031493902206421 - 0.6687604188919067 - <_> - - <_> - - - - <_>0 2 6 4 -1. - <_>3 2 3 4 2. - 0 - -0.0228509604930878 - 0.6767519712448120 - 0.4709596931934357 - <_> - - <_> - - - - <_>9 4 6 1 -1. - <_>11 4 2 1 3. - 0 - 4.8867650330066681e-003 - 0.5257998108863831 - 0.4059878885746002 - <_> - - <_> - - - - <_>7 15 2 2 -1. - <_>7 15 1 1 2. - <_>8 16 1 1 2. - 0 - 1.7619599821045995e-003 - 0.4696272909641266 - 0.6688278913497925 - <_> - - <_> - - - - <_>11 13 1 6 -1. - <_>11 16 1 3 2. - 0 - -1.2942519970238209e-003 - 0.4320712983608246 - 0.5344281792640686 - <_> - - <_> - - - - <_>8 13 1 6 -1. - <_>8 16 1 3 2. - 0 - 0.0109299495816231 - 0.4997706115245819 - 0.1637486070394516 - <_> - - <_> - - - - <_>14 3 2 1 -1. - <_>14 3 1 1 2. - 0 - 2.9958489903947338e-005 - 0.4282417893409729 - 0.5633224248886108 - <_> - - <_> - - - - <_>8 15 2 3 -1. - <_>8 16 2 1 3. - 0 - -6.5884361974895000e-003 - 0.6772121191024780 - 0.4700526893138886 - <_> - - <_> - - - - <_>12 15 7 4 -1. - <_>12 17 7 2 2. - 0 - 3.2527779694646597e-003 - 0.5313397049903870 - 0.4536148905754089 - <_> - - <_> - - - - <_>4 14 12 3 -1. - <_>4 15 12 1 3. - 0 - -4.0435739792883396e-003 - 0.5660061836242676 - 0.4413388967514038 - <_> - - <_> - - - - <_>10 3 3 2 -1. - <_>11 3 1 2 3. - 0 - -1.2523540062829852e-003 - 0.3731913864612579 - 0.5356451869010925 - <_> - - <_> - - - - <_>4 12 2 2 -1. - <_>4 13 2 1 2. - 0 - 1.9246719602961093e-004 - 0.5189986228942871 - 0.3738811016082764 - <_> - - <_> - - - - <_>10 11 4 6 -1. - <_>10 14 4 3 2. - 0 - -0.0385896712541580 - 0.2956373989582062 - 0.5188810825347900 - <_> - - <_> - - - - <_>7 13 2 2 -1. - <_>7 13 1 1 2. - <_>8 14 1 1 2. - 0 - 1.5489870565943420e-004 - 0.4347135126590729 - 0.5509533286094666 - <_> - - <_> - - - - <_>4 11 14 4 -1. - <_>11 11 7 2 2. - <_>4 13 7 2 2. - 0 - -0.0337638482451439 - 0.3230330049991608 - 0.5195475816726685 - <_> - - <_> - - - - <_>1 18 18 2 -1. - <_>7 18 6 2 3. - 0 - -8.2657067105174065e-003 - 0.5975489020347595 - 0.4552114009857178 - <_> - - <_> - - - - <_>11 18 2 2 -1. - <_>12 18 1 1 2. - <_>11 19 1 1 2. - 0 - 1.4481440302915871e-005 - 0.4745678007602692 - 0.5497426986694336 - <_> - - <_> - - - - <_>7 18 2 2 -1. - <_>7 18 1 1 2. - <_>8 19 1 1 2. - 0 - 1.4951299817766994e-005 - 0.4324473142623901 - 0.5480644106864929 - <_> - - <_> - - - - <_>12 18 8 2 -1. - <_>12 19 8 1 2. - 0 - -0.0187417995184660 - 0.1580052971839905 - 0.5178533196449280 - <_> - - <_> - - - - <_>7 14 6 2 -1. - <_>7 15 6 1 2. - 0 - 1.7572239739820361e-003 - 0.4517636895179749 - 0.5773764252662659 - <_> - - <_> - - - - <_>8 12 4 8 -1. - <_>10 12 2 4 2. - <_>8 16 2 4 2. - 0 - -3.1391119118779898e-003 - 0.4149647951126099 - 0.5460842251777649 - <_> - - <_> - - - - <_>4 9 3 3 -1. - <_>4 10 3 1 3. - 0 - 6.6656779381446540e-005 - 0.4039090871810913 - 0.5293084979057312 - <_> - - <_> - - - - <_>7 10 6 2 -1. - <_>9 10 2 2 3. - 0 - 6.7743421532213688e-003 - 0.4767651855945587 - 0.6121956110000610 - <_> - - <_> - - - - <_>5 0 4 15 -1. - <_>7 0 2 15 2. - 0 - -7.3868161998689175e-003 - 0.3586258888244629 - 0.5187280774116516 - <_> - - <_> - - - - <_>8 6 12 14 -1. - <_>12 6 4 14 3. - 0 - 0.0140409301966429 - 0.4712139964103699 - 0.5576155781745911 - <_> - - <_> - - - - <_>5 16 3 3 -1. - <_>5 17 3 1 3. - 0 - -5.5258329957723618e-003 - 0.2661027014255524 - 0.5039281249046326 - <_> - - <_> - - - - <_>8 1 12 19 -1. - <_>12 1 4 19 3. - 0 - 0.3868423998355866 - 0.5144339799880981 - 0.2525899112224579 - <_> - - <_> - - - - <_>3 0 3 2 -1. - <_>3 1 3 1 2. - 0 - 1.1459240340627730e-004 - 0.4284994900226593 - 0.5423371195793152 - <_> - - <_> - - - - <_>10 12 4 5 -1. - <_>10 12 2 5 2. - 0 - -0.0184675697237253 - 0.3885835111141205 - 0.5213062167167664 - <_> - - <_> - - - - <_>6 12 4 5 -1. - <_>8 12 2 5 2. - 0 - -4.5907011372037232e-004 - 0.5412563085556030 - 0.4235909879207611 - <_> - - <_> - - - - <_>11 11 2 2 -1. - <_>12 11 1 1 2. - <_>11 12 1 1 2. - 0 - 1.2527540093287826e-003 - 0.4899305105209351 - 0.6624091267585754 - <_> - - <_> - - - - <_>0 2 3 6 -1. - <_>0 4 3 2 3. - 0 - 1.4910609461367130e-003 - 0.5286778211593628 - 0.4040051996707916 - <_> - - <_> - - - - <_>11 11 2 2 -1. - <_>12 11 1 1 2. - <_>11 12 1 1 2. - 0 - -7.5435562757775187e-004 - 0.6032990217208862 - 0.4795120060443878 - <_> - - <_> - - - - <_>7 6 4 10 -1. - <_>7 11 4 5 2. - 0 - -6.9478838704526424e-003 - 0.4084401130676270 - 0.5373504161834717 - <_> - - <_> - - - - <_>11 11 2 2 -1. - <_>12 11 1 1 2. - <_>11 12 1 1 2. - 0 - 2.8092920547351241e-004 - 0.4846062958240509 - 0.5759382247924805 - <_> - - <_> - - - - <_>2 13 5 2 -1. - <_>2 14 5 1 2. - 0 - 9.6073717577382922e-004 - 0.5164741277694702 - 0.3554979860782623 - <_> - - <_> - - - - <_>11 11 2 2 -1. - <_>12 11 1 1 2. - <_>11 12 1 1 2. - 0 - -2.6883929967880249e-004 - 0.5677582025527954 - 0.4731765985488892 - <_> - - <_> - - - - <_>7 11 2 2 -1. - <_>7 11 1 1 2. - <_>8 12 1 1 2. - 0 - 2.1599370520561934e-003 - 0.4731487035751343 - 0.7070567011833191 - <_> - - <_> - - - - <_>14 13 3 3 -1. - <_>14 14 3 1 3. - 0 - 5.6235301308333874e-003 - 0.5240243077278137 - 0.2781791985034943 - <_> - - <_> - - - - <_>3 13 3 3 -1. - <_>3 14 3 1 3. - 0 - -5.0243991427123547e-003 - 0.2837013900279999 - 0.5062304139137268 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - -9.7611639648675919e-003 - 0.7400717735290527 - 0.4934569001197815 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>8 8 3 1 3. - 0 - 4.1515100747346878e-003 - 0.5119131207466126 - 0.3407008051872253 - <_> - - <_> - - - - <_>13 5 3 3 -1. - <_>13 6 3 1 3. - 0 - 6.2465080991387367e-003 - 0.4923788011074066 - 0.6579058766365051 - <_> - - <_> - - - - <_>0 9 5 3 -1. - <_>0 10 5 1 3. - 0 - -7.0597478188574314e-003 - 0.2434711009263992 - 0.5032842159271240 - <_> - - <_> - - - - <_>13 5 3 3 -1. - <_>13 6 3 1 3. - 0 - -2.0587709732353687e-003 - 0.5900310873985291 - 0.4695087075233460 - <_> - - <_> - - - - <_>9 12 2 8 -1. - <_>9 12 1 4 2. - <_>10 16 1 4 2. - 0 - -2.4146060459315777e-003 - 0.3647317886352539 - 0.5189201831817627 - <_> - - <_> - - - - <_>11 7 2 2 -1. - <_>12 7 1 1 2. - <_>11 8 1 1 2. - 0 - -1.4817609917372465e-003 - 0.6034948229789734 - 0.4940128028392792 - <_> - - <_> - - - - <_>0 16 6 4 -1. - <_>3 16 3 4 2. - 0 - -6.3016400672495365e-003 - 0.5818989872932434 - 0.4560427963733673 - <_> - - <_> - - - - <_>10 6 2 3 -1. - <_>10 7 2 1 3. - 0 - 3.4763428848236799e-003 - 0.5217475891113281 - 0.3483993113040924 - <_> - - <_> - - - - <_>9 5 2 6 -1. - <_>9 7 2 2 3. - 0 - -0.0222508702427149 - 0.2360700070858002 - 0.5032082796096802 - <_> - - <_> - - - - <_>12 15 8 4 -1. - <_>12 15 4 4 2. - 0 - -0.0306125506758690 - 0.6499186754226685 - 0.4914919137954712 - <_> - - <_> - - - - <_>0 14 8 6 -1. - <_>4 14 4 6 2. - 0 - 0.0130574796348810 - 0.4413323104381561 - 0.5683764219284058 - <_> - - <_> - - - - <_>9 0 3 2 -1. - <_>10 0 1 2 3. - 0 - -6.0095742810517550e-004 - 0.4359731078147888 - 0.5333483219146729 - <_> - - <_> - - - - <_>4 15 4 2 -1. - <_>6 15 2 2 2. - 0 - -4.1514250915497541e-004 - 0.5504062771797180 - 0.4326060116291046 - <_> - - <_> - - - - <_>12 7 3 13 -1. - <_>13 7 1 13 3. - 0 - -0.0137762902304530 - 0.4064112901687622 - 0.5201548933982849 - <_> - - <_> - - - - <_>5 7 3 13 -1. - <_>6 7 1 13 3. - 0 - -0.0322965085506439 - 0.0473519712686539 - 0.4977194964885712 - <_> - - <_> - - - - <_>9 6 3 9 -1. - <_>9 9 3 3 3. - 0 - 0.0535569787025452 - 0.4881733059883118 - 0.6666939258575440 - <_> - - <_> - - - - <_>4 4 7 12 -1. - <_>4 10 7 6 2. - 0 - 8.1889545544981956e-003 - 0.5400037169456482 - 0.4240820109844208 - <_> - - <_> - - - - <_>12 12 2 2 -1. - <_>13 12 1 1 2. - <_>12 13 1 1 2. - 0 - 2.1055320394225419e-004 - 0.4802047908306122 - 0.5563852787017822 - <_> - - <_> - - - - <_>6 12 2 2 -1. - <_>6 12 1 1 2. - <_>7 13 1 1 2. - 0 - -2.4382730480283499e-003 - 0.7387793064117432 - 0.4773685038089752 - <_> - - <_> - - - - <_>8 9 4 2 -1. - <_>10 9 2 1 2. - <_>8 10 2 1 2. - 0 - 3.2835570164024830e-003 - 0.5288546085357666 - 0.3171291947364807 - <_> - - <_> - - - - <_>3 6 2 2 -1. - <_>3 6 1 1 2. - <_>4 7 1 1 2. - 0 - 2.3729570675641298e-003 - 0.4750812947750092 - 0.7060170769691467 - <_> - - <_> - - - - <_>16 6 3 2 -1. - <_>16 7 3 1 2. - 0 - -1.4541699783876538e-003 - 0.3811730146408081 - 0.5330739021301270 - 79.2490768432617190 - 16 - -1 - <_> - - - <_> - - <_> - - - - <_>0 7 19 4 -1. - <_>0 9 19 2 2. - 0 - 0.0557552389800549 - 0.4019156992435455 - 0.6806036829948425 - <_> - - <_> - - - - <_>10 2 10 1 -1. - <_>10 2 5 1 2. - 0 - 2.4730248842388391e-003 - 0.3351148962974548 - 0.5965719819068909 - <_> - - <_> - - - - <_>9 4 2 12 -1. - <_>9 10 2 6 2. - 0 - -3.5031698644161224e-004 - 0.5557708144187927 - 0.3482286930084229 - <_> - - <_> - - - - <_>12 18 4 1 -1. - <_>12 18 2 1 2. - 0 - 5.4167630150914192e-004 - 0.4260858893394470 - 0.5693380832672119 - <_> - - <_> - - - - <_>1 7 6 4 -1. - <_>1 7 3 2 2. - <_>4 9 3 2 2. - 0 - 7.7193678589537740e-004 - 0.3494240045547485 - 0.5433688759803772 - <_> - - <_> - - - - <_>12 0 6 13 -1. - <_>14 0 2 13 3. - 0 - -1.5999219613149762e-003 - 0.4028499126434326 - 0.5484359264373779 - <_> - - <_> - - - - <_>2 0 6 13 -1. - <_>4 0 2 13 3. - 0 - -1.1832080053864047e-004 - 0.3806901872158051 - 0.5425465106964111 - <_> - - <_> - - - - <_>10 5 8 8 -1. - <_>10 9 8 4 2. - 0 - 3.2909031142480671e-004 - 0.2620100080966950 - 0.5429521799087524 - <_> - - <_> - - - - <_>8 3 2 5 -1. - <_>9 3 1 5 2. - 0 - 2.9518108931370080e-004 - 0.3799768984317780 - 0.5399264097213745 - <_> - - <_> - - - - <_>8 4 9 1 -1. - <_>11 4 3 1 3. - 0 - 9.0466710389591753e-005 - 0.4433645009994507 - 0.5440226197242737 - <_> - - <_> - - - - <_>3 4 9 1 -1. - <_>6 4 3 1 3. - 0 - 1.5007190086180344e-005 - 0.3719654977321625 - 0.5409119725227356 - <_> - - <_> - - - - <_>1 0 18 10 -1. - <_>7 0 6 10 3. - 0 - 0.1393561065196991 - 0.5525395870208740 - 0.4479042887687683 - <_> - - <_> - - - - <_>7 17 5 3 -1. - <_>7 18 5 1 3. - 0 - 1.6461990308016539e-003 - 0.4264501035213471 - 0.5772169828414917 - <_> - - <_> - - - - <_>7 11 6 1 -1. - <_>9 11 2 1 3. - 0 - 4.9984431825578213e-004 - 0.4359526038169861 - 0.5685871243476868 - <_> - - <_> - - - - <_>2 2 3 2 -1. - <_>2 3 3 1 2. - 0 - -1.0971280280500650e-003 - 0.3390136957168579 - 0.5205408930778503 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>8 13 4 1 2. - 0 - 6.6919892560690641e-004 - 0.4557456076145172 - 0.5980659723281860 - <_> - - <_> - - - - <_>6 10 3 6 -1. - <_>6 13 3 3 2. - 0 - 8.6471042595803738e-004 - 0.5134841203689575 - 0.2944033145904541 - <_> - - <_> - - - - <_>11 4 2 4 -1. - <_>11 4 1 4 2. - 0 - -2.7182599296793342e-004 - 0.3906578123569489 - 0.5377181172370911 - <_> - - <_> - - - - <_>7 4 2 4 -1. - <_>8 4 1 4 2. - 0 - 3.0249499104684219e-005 - 0.3679609894752502 - 0.5225688815116882 - <_> - - <_> - - - - <_>9 6 2 4 -1. - <_>9 6 1 4 2. - 0 - -8.5225896909832954e-003 - 0.7293102145195007 - 0.4892365038394928 - <_> - - <_> - - - - <_>6 13 8 3 -1. - <_>6 14 8 1 3. - 0 - 1.6705560265108943e-003 - 0.4345324933528900 - 0.5696138143539429 - <_> - - <_> - - - - <_>9 15 3 4 -1. - <_>10 15 1 4 3. - 0 - -7.1433838456869125e-003 - 0.2591280043125153 - 0.5225623846054077 - <_> - - <_> - - - - <_>9 2 2 17 -1. - <_>10 2 1 17 2. - 0 - -0.0163193698972464 - 0.6922279000282288 - 0.4651575982570648 - <_> - - <_> - - - - <_>7 0 6 1 -1. - <_>9 0 2 1 3. - 0 - 4.8034260980784893e-003 - 0.5352262854576111 - 0.3286302983760834 - <_> - - <_> - - - - <_>8 15 3 4 -1. - <_>9 15 1 4 3. - 0 - -7.5421929359436035e-003 - 0.2040544003248215 - 0.5034546256065369 - <_> - - <_> - - - - <_>7 13 7 3 -1. - <_>7 14 7 1 3. - 0 - -0.0143631100654602 - 0.6804888844490051 - 0.4889059066772461 - <_> - - <_> - - - - <_>8 16 3 3 -1. - <_>9 16 1 3 3. - 0 - 8.9063588529825211e-004 - 0.5310695767402649 - 0.3895480930805206 - <_> - - <_> - - - - <_>6 2 8 10 -1. - <_>6 7 8 5 2. - 0 - -4.4060191139578819e-003 - 0.5741562843322754 - 0.4372426867485046 - <_> - - <_> - - - - <_>2 5 8 8 -1. - <_>2 9 8 4 2. - 0 - -1.8862540309783071e-004 - 0.2831785976886749 - 0.5098205208778381 - <_> - - <_> - - - - <_>14 16 2 2 -1. - <_>14 17 2 1 2. - 0 - -3.7979281041771173e-003 - 0.3372507989406586 - 0.5246580243110657 - <_> - - <_> - - - - <_>4 16 2 2 -1. - <_>4 17 2 1 2. - 0 - 1.4627049677073956e-004 - 0.5306674242019653 - 0.3911710083484650 - <_> - - <_> - - - - <_>10 11 4 6 -1. - <_>10 14 4 3 2. - 0 - -4.9164638767251745e-005 - 0.5462496280670166 - 0.3942720890045166 - <_> - - <_> - - - - <_>6 11 4 6 -1. - <_>6 14 4 3 2. - 0 - -0.0335825011134148 - 0.2157824039459229 - 0.5048211812973023 - <_> - - <_> - - - - <_>10 14 1 3 -1. - <_>10 15 1 1 3. - 0 - -3.5339309833943844e-003 - 0.6465312242507935 - 0.4872696995735169 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 5.0144111737608910e-003 - 0.4617668092250824 - 0.6248074769973755 - <_> - - <_> - - - - <_>10 0 4 6 -1. - <_>12 0 2 3 2. - <_>10 3 2 3 2. - 0 - 0.0188173707574606 - 0.5220689177513123 - 0.2000052034854889 - <_> - - <_> - - - - <_>0 3 20 2 -1. - <_>0 4 20 1 2. - 0 - -1.3434339780360460e-003 - 0.4014537930488586 - 0.5301619768142700 - <_> - - <_> - - - - <_>12 0 8 2 -1. - <_>16 0 4 1 2. - <_>12 1 4 1 2. - 0 - 1.7557960236445069e-003 - 0.4794039130210877 - 0.5653169751167297 - <_> - - <_> - - - - <_>2 12 10 8 -1. - <_>2 16 10 4 2. - 0 - -0.0956374630331993 - 0.2034195065498352 - 0.5006706714630127 - <_> - - <_> - - - - <_>17 7 2 10 -1. - <_>18 7 1 5 2. - <_>17 12 1 5 2. - 0 - -0.0222412291914225 - 0.7672473192214966 - 0.5046340227127075 - <_> - - <_> - - - - <_>1 7 2 10 -1. - <_>1 7 1 5 2. - <_>2 12 1 5 2. - 0 - -0.0155758196488023 - 0.7490342259407044 - 0.4755851030349731 - <_> - - <_> - - - - <_>15 10 3 6 -1. - <_>15 12 3 2 3. - 0 - 5.3599118255078793e-003 - 0.5365303754806519 - 0.4004670977592468 - <_> - - <_> - - - - <_>4 4 6 2 -1. - <_>6 4 2 2 3. - 0 - -0.0217634998261929 - 0.0740154981613159 - 0.4964174926280975 - <_> - - <_> - - - - <_>0 5 20 6 -1. - <_>0 7 20 2 3. - 0 - -0.1656159013509750 - 0.2859103083610535 - 0.5218086242675781 - <_> - - <_> - - - - <_>0 0 8 2 -1. - <_>0 0 4 1 2. - <_>4 1 4 1 2. - 0 - 1.6461320046801120e-004 - 0.4191615879535675 - 0.5380793213844299 - <_> - - <_> - - - - <_>1 0 18 4 -1. - <_>7 0 6 4 3. - 0 - -8.9077502489089966e-003 - 0.6273192763328552 - 0.4877404868602753 - <_> - - <_> - - - - <_>1 13 6 2 -1. - <_>1 14 6 1 2. - 0 - 8.6346449097618461e-004 - 0.5159940719604492 - 0.3671025931835175 - <_> - - <_> - - - - <_>10 8 3 4 -1. - <_>11 8 1 4 3. - 0 - -1.3751760125160217e-003 - 0.5884376764297485 - 0.4579083919525147 - <_> - - <_> - - - - <_>6 1 6 1 -1. - <_>8 1 2 1 3. - 0 - -1.4081239933148026e-003 - 0.3560509979724884 - 0.5139945149421692 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - -3.9342888630926609e-003 - 0.5994288921356201 - 0.4664272069931030 - <_> - - <_> - - - - <_>1 6 18 2 -1. - <_>10 6 9 2 2. - 0 - -0.0319669283926487 - 0.3345462083816528 - 0.5144183039665222 - <_> - - <_> - - - - <_>15 11 1 2 -1. - <_>15 12 1 1 2. - 0 - -1.5089280168467667e-005 - 0.5582656264305115 - 0.4414057135581970 - <_> - - <_> - - - - <_>6 5 1 2 -1. - <_>6 6 1 1 2. - 0 - 5.1994470413774252e-004 - 0.4623680114746094 - 0.6168993711471558 - <_> - - <_> - - - - <_>13 4 1 3 -1. - <_>13 5 1 1 3. - 0 - -3.4220460802316666e-003 - 0.6557074785232544 - 0.4974805116653442 - <_> - - <_> - - - - <_>2 15 1 2 -1. - <_>2 16 1 1 2. - 0 - 1.7723299970384687e-004 - 0.5269501805305481 - 0.3901908099651337 - <_> - - <_> - - - - <_>12 4 4 3 -1. - <_>12 5 4 1 3. - 0 - 1.5716759953647852e-003 - 0.4633373022079468 - 0.5790457725524902 - <_> - - <_> - - - - <_>0 0 7 3 -1. - <_>0 1 7 1 3. - 0 - -8.9041329920291901e-003 - 0.2689608037471771 - 0.5053591132164002 - <_> - - <_> - - - - <_>9 12 6 2 -1. - <_>9 12 3 2 2. - 0 - 4.0677518700249493e-004 - 0.5456603169441223 - 0.4329898953437805 - <_> - - <_> - - - - <_>5 4 2 3 -1. - <_>5 5 2 1 3. - 0 - 6.7604780197143555e-003 - 0.4648993909358978 - 0.6689761877059937 - <_> - - <_> - - - - <_>18 4 2 3 -1. - <_>18 5 2 1 3. - 0 - 2.9100088868290186e-003 - 0.5309703946113586 - 0.3377839922904968 - <_> - - <_> - - - - <_>3 0 8 6 -1. - <_>3 2 8 2 3. - 0 - 1.3885459629818797e-003 - 0.4074738919734955 - 0.5349133014678955 - <_> - - <_> - - - - <_>0 2 20 6 -1. - <_>10 2 10 3 2. - <_>0 5 10 3 2. - 0 - -0.0767642632126808 - 0.1992176026105881 - 0.5228242278099060 - <_> - - <_> - - - - <_>4 7 2 4 -1. - <_>5 7 1 4 2. - 0 - -2.2688310127705336e-004 - 0.5438501834869385 - 0.4253072142601013 - <_> - - <_> - - - - <_>3 10 15 2 -1. - <_>8 10 5 2 3. - 0 - -6.3094152137637138e-003 - 0.4259178936481476 - 0.5378909707069397 - <_> - - <_> - - - - <_>3 0 12 11 -1. - <_>9 0 6 11 2. - 0 - -0.1100727990269661 - 0.6904156804084778 - 0.4721749126911163 - <_> - - <_> - - - - <_>13 0 2 6 -1. - <_>13 0 1 6 2. - 0 - 2.8619659133255482e-004 - 0.4524914920330048 - 0.5548306107521057 - <_> - - <_> - - - - <_>0 19 2 1 -1. - <_>1 19 1 1 2. - 0 - 2.9425329557852820e-005 - 0.5370373725891113 - 0.4236463904380798 - <_> - - <_> - - - - <_>16 10 4 10 -1. - <_>18 10 2 5 2. - <_>16 15 2 5 2. - 0 - -0.0248865708708763 - 0.6423557996749878 - 0.4969303905963898 - <_> - - <_> - - - - <_>4 8 10 3 -1. - <_>4 9 10 1 3. - 0 - 0.0331488512456417 - 0.4988475143909454 - 0.1613811999559403 - <_> - - <_> - - - - <_>14 12 3 3 -1. - <_>14 13 3 1 3. - 0 - 7.8491691965609789e-004 - 0.5416026115417481 - 0.4223009049892426 - <_> - - <_> - - - - <_>0 10 4 10 -1. - <_>0 10 2 5 2. - <_>2 15 2 5 2. - 0 - 4.7087189741432667e-003 - 0.4576328992843628 - 0.6027557849884033 - <_> - - <_> - - - - <_>18 3 2 6 -1. - <_>18 5 2 2 3. - 0 - 2.4144479539245367e-003 - 0.5308973193168640 - 0.4422498941421509 - <_> - - <_> - - - - <_>6 6 1 3 -1. - <_>6 7 1 1 3. - 0 - 1.9523180089890957e-003 - 0.4705634117126465 - 0.6663324832916260 - <_> - - <_> - - - - <_>7 7 7 2 -1. - <_>7 8 7 1 2. - 0 - 1.3031980488449335e-003 - 0.4406126141548157 - 0.5526962280273438 - <_> - - <_> - - - - <_>0 3 2 6 -1. - <_>0 5 2 2 3. - 0 - 4.4735497795045376e-003 - 0.5129023790359497 - 0.3301498889923096 - <_> - - <_> - - - - <_>11 1 3 1 -1. - <_>12 1 1 1 3. - 0 - -2.6652868837118149e-003 - 0.3135471045970917 - 0.5175036191940308 - <_> - - <_> - - - - <_>5 0 2 6 -1. - <_>6 0 1 6 2. - 0 - 1.3666770246345550e-004 - 0.4119370877742767 - 0.5306876897811890 - <_> - - <_> - - - - <_>1 1 18 14 -1. - <_>7 1 6 14 3. - 0 - -0.0171264503151178 - 0.6177806258201599 - 0.4836578965187073 - <_> - - <_> - - - - <_>4 6 8 3 -1. - <_>8 6 4 3 2. - 0 - -2.6601430727168918e-004 - 0.3654330968856812 - 0.5169736742973328 - <_> - - <_> - - - - <_>9 12 6 2 -1. - <_>9 12 3 2 2. - 0 - -0.0229323804378510 - 0.3490915000438690 - 0.5163992047309876 - <_> - - <_> - - - - <_>5 12 6 2 -1. - <_>8 12 3 2 2. - 0 - 2.3316550068557262e-003 - 0.5166299939155579 - 0.3709389865398407 - <_> - - <_> - - - - <_>10 7 3 5 -1. - <_>11 7 1 5 3. - 0 - 0.0169256608933210 - 0.5014736056327820 - 0.8053988218307495 - <_> - - <_> - - - - <_>7 7 3 5 -1. - <_>8 7 1 5 3. - 0 - -8.9858826249837875e-003 - 0.6470788717269898 - 0.4657020866870880 - <_> - - <_> - - - - <_>13 0 3 10 -1. - <_>14 0 1 10 3. - 0 - -0.0118746999651194 - 0.3246378898620606 - 0.5258755087852478 - <_> - - <_> - - - - <_>4 11 3 2 -1. - <_>4 12 3 1 2. - 0 - 1.9350569345988333e-004 - 0.5191941857337952 - 0.3839643895626068 - <_> - - <_> - - - - <_>17 3 3 6 -1. - <_>18 3 1 6 3. - 0 - 5.8713490143418312e-003 - 0.4918133914470673 - 0.6187043190002441 - <_> - - <_> - - - - <_>1 8 18 10 -1. - <_>1 13 18 5 2. - 0 - -0.2483879029750824 - 0.1836802959442139 - 0.4988150000572205 - <_> - - <_> - - - - <_>13 0 3 10 -1. - <_>14 0 1 10 3. - 0 - 0.0122560001909733 - 0.5227053761482239 - 0.3632029891014099 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 8.3990179700776935e-004 - 0.4490250051021576 - 0.5774148106575012 - <_> - - <_> - - - - <_>16 3 3 7 -1. - <_>17 3 1 7 3. - 0 - 2.5407369248569012e-003 - 0.4804787039756775 - 0.5858299136161804 - <_> - - <_> - - - - <_>4 0 3 10 -1. - <_>5 0 1 10 3. - 0 - -0.0148224299773574 - 0.2521049976348877 - 0.5023537278175354 - <_> - - <_> - - - - <_>16 3 3 7 -1. - <_>17 3 1 7 3. - 0 - -5.7973959483206272e-003 - 0.5996695756912231 - 0.4853715002536774 - <_> - - <_> - - - - <_>0 9 1 2 -1. - <_>0 10 1 1 2. - 0 - 7.2662148158997297e-004 - 0.5153716802597046 - 0.3671779930591583 - <_> - - <_> - - - - <_>18 1 2 10 -1. - <_>18 1 1 10 2. - 0 - -0.0172325801104307 - 0.6621719002723694 - 0.4994656145572662 - <_> - - <_> - - - - <_>0 1 2 10 -1. - <_>1 1 1 10 2. - 0 - 7.8624086454510689e-003 - 0.4633395075798035 - 0.6256101727485657 - <_> - - <_> - - - - <_>10 16 3 4 -1. - <_>11 16 1 4 3. - 0 - -4.7343620099127293e-003 - 0.3615573048591614 - 0.5281885266304016 - <_> - - <_> - - - - <_>2 8 3 3 -1. - <_>3 8 1 3 3. - 0 - 8.3048478700220585e-004 - 0.4442889094352722 - 0.5550957918167114 - <_> - - <_> - - - - <_>11 0 2 6 -1. - <_>12 0 1 3 2. - <_>11 3 1 3 2. - 0 - 7.6602199114859104e-003 - 0.5162935256958008 - 0.2613354921340942 - <_> - - <_> - - - - <_>7 0 2 6 -1. - <_>7 0 1 3 2. - <_>8 3 1 3 2. - 0 - -4.1048377752304077e-003 - 0.2789632081985474 - 0.5019031763076782 - <_> - - <_> - - - - <_>16 3 3 7 -1. - <_>17 3 1 7 3. - 0 - 4.8512578941881657e-003 - 0.4968984127044678 - 0.5661668181419373 - <_> - - <_> - - - - <_>1 3 3 7 -1. - <_>2 3 1 7 3. - 0 - 9.9896453320980072e-004 - 0.4445607960224152 - 0.5551813244819641 - <_> - - <_> - - - - <_>14 1 6 16 -1. - <_>16 1 2 16 3. - 0 - -0.2702363133430481 - 0.0293882098048925 - 0.5151314139366150 - <_> - - <_> - - - - <_>0 1 6 16 -1. - <_>2 1 2 16 3. - 0 - -0.0130906803533435 - 0.5699399709701538 - 0.4447459876537323 - <_> - - <_> - - - - <_>2 0 16 8 -1. - <_>10 0 8 4 2. - <_>2 4 8 4 2. - 0 - -9.4342790544033051e-003 - 0.4305466115474701 - 0.5487895011901856 - <_> - - <_> - - - - <_>6 8 5 3 -1. - <_>6 9 5 1 3. - 0 - -1.5482039889320731e-003 - 0.3680317103862763 - 0.5128080844879150 - <_> - - <_> - - - - <_>9 7 3 3 -1. - <_>10 7 1 3 3. - 0 - 5.3746132180094719e-003 - 0.4838916957378388 - 0.6101555824279785 - <_> - - <_> - - - - <_>8 8 4 3 -1. - <_>8 9 4 1 3. - 0 - 1.5786769799888134e-003 - 0.5325223207473755 - 0.4118548035621643 - <_> - - <_> - - - - <_>9 6 2 4 -1. - <_>9 6 1 4 2. - 0 - 3.6856050137430429e-003 - 0.4810948073863983 - 0.6252303123474121 - <_> - - <_> - - - - <_>0 7 15 1 -1. - <_>5 7 5 1 3. - 0 - 9.3887019902467728e-003 - 0.5200229883193970 - 0.3629410862922669 - <_> - - <_> - - - - <_>8 2 7 9 -1. - <_>8 5 7 3 3. - 0 - 0.0127926301211119 - 0.4961709976196289 - 0.6738016009330750 - <_> - - <_> - - - - <_>1 7 16 4 -1. - <_>1 7 8 2 2. - <_>9 9 8 2 2. - 0 - -3.3661040943115950e-003 - 0.4060279130935669 - 0.5283598899841309 - <_> - - <_> - - - - <_>6 12 8 2 -1. - <_>6 13 8 1 2. - 0 - 3.9771420415490866e-004 - 0.4674113988876343 - 0.5900775194168091 - <_> - - <_> - - - - <_>8 11 3 3 -1. - <_>8 12 3 1 3. - 0 - 1.4868030557408929e-003 - 0.4519116878509522 - 0.6082053780555725 - <_> - - <_> - - - - <_>4 5 14 10 -1. - <_>11 5 7 5 2. - <_>4 10 7 5 2. - 0 - -0.0886867493391037 - 0.2807899117469788 - 0.5180991888046265 - <_> - - <_> - - - - <_>4 12 3 2 -1. - <_>4 13 3 1 2. - 0 - -7.4296112870797515e-005 - 0.5295584201812744 - 0.4087625145912170 - <_> - - <_> - - - - <_>9 11 6 1 -1. - <_>11 11 2 1 3. - 0 - -1.4932939848222304e-005 - 0.5461400151252747 - 0.4538542926311493 - <_> - - <_> - - - - <_>4 9 7 6 -1. - <_>4 11 7 2 3. - 0 - 5.9162238612771034e-003 - 0.5329161286354065 - 0.4192134141921997 - <_> - - <_> - - - - <_>7 10 6 3 -1. - <_>7 11 6 1 3. - 0 - 1.1141640134155750e-003 - 0.4512017965316773 - 0.5706217288970947 - <_> - - <_> - - - - <_>9 11 2 2 -1. - <_>9 12 2 1 2. - 0 - 8.9249362645205110e-005 - 0.4577805995941162 - 0.5897638201713562 - <_> - - <_> - - - - <_>0 5 20 6 -1. - <_>0 7 20 2 3. - 0 - 2.5319510605186224e-003 - 0.5299603939056397 - 0.3357639014720917 - <_> - - <_> - - - - <_>6 4 6 1 -1. - <_>8 4 2 1 3. - 0 - 0.0124262003228068 - 0.4959059059619904 - 0.1346601992845535 - <_> - - <_> - - - - <_>9 11 6 1 -1. - <_>11 11 2 1 3. - 0 - 0.0283357501029968 - 0.5117079019546509 - 6.1043637106195092e-004 - <_> - - <_> - - - - <_>5 11 6 1 -1. - <_>7 11 2 1 3. - 0 - 6.6165882162749767e-003 - 0.4736349880695343 - 0.7011628150939941 - <_> - - <_> - - - - <_>10 16 3 4 -1. - <_>11 16 1 4 3. - 0 - 8.0468766391277313e-003 - 0.5216417908668518 - 0.3282819986343384 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>9 7 1 3 3. - 0 - -1.1193980462849140e-003 - 0.5809860825538635 - 0.4563739001750946 - <_> - - <_> - - - - <_>2 12 16 8 -1. - <_>2 16 16 4 2. - 0 - 0.0132775902748108 - 0.5398362278938294 - 0.4103901088237763 - <_> - - <_> - - - - <_>0 15 15 2 -1. - <_>0 16 15 1 2. - 0 - 4.8794739996083081e-004 - 0.4249286055564880 - 0.5410590767860413 - <_> - - <_> - - - - <_>15 4 5 6 -1. - <_>15 6 5 2 3. - 0 - 0.0112431701272726 - 0.5269963741302490 - 0.3438215851783752 - <_> - - <_> - - - - <_>9 5 2 4 -1. - <_>10 5 1 4 2. - 0 - -8.9896668214350939e-004 - 0.5633075833320618 - 0.4456613063812256 - <_> - - <_> - - - - <_>8 10 9 6 -1. - <_>8 12 9 2 3. - 0 - 6.6677159629762173e-003 - 0.5312889218330383 - 0.4362679123878479 - <_> - - <_> - - - - <_>2 19 15 1 -1. - <_>7 19 5 1 3. - 0 - 0.0289472993463278 - 0.4701794981956482 - 0.6575797796249390 - <_> - - <_> - - - - <_>10 16 3 4 -1. - <_>11 16 1 4 3. - 0 - -0.0234000496566296 - 0. - 0.5137398838996887 - <_> - - <_> - - - - <_>0 15 20 4 -1. - <_>0 17 20 2 2. - 0 - -0.0891170501708984 - 0.0237452797591686 - 0.4942430853843689 - <_> - - <_> - - - - <_>10 16 3 4 -1. - <_>11 16 1 4 3. - 0 - -0.0140546001493931 - 0.3127323091030121 - 0.5117511153221130 - <_> - - <_> - - - - <_>7 16 3 4 -1. - <_>8 16 1 4 3. - 0 - 8.1239398568868637e-003 - 0.5009049177169800 - 0.2520025968551636 - <_> - - <_> - - - - <_>9 16 3 3 -1. - <_>9 17 3 1 3. - 0 - -4.9964650534093380e-003 - 0.6387143731117249 - 0.4927811920642853 - <_> - - <_> - - - - <_>8 11 4 6 -1. - <_>8 14 4 3 2. - 0 - 3.1253970228135586e-003 - 0.5136849880218506 - 0.3680452108383179 - <_> - - <_> - - - - <_>9 6 2 12 -1. - <_>9 10 2 4 3. - 0 - 6.7669642157852650e-003 - 0.5509843826293945 - 0.4363631904125214 - <_> - - <_> - - - - <_>8 17 4 3 -1. - <_>8 18 4 1 3. - 0 - -2.3711440153419971e-003 - 0.6162335276603699 - 0.4586946964263916 - <_> - - <_> - - - - <_>9 18 8 2 -1. - <_>13 18 4 1 2. - <_>9 19 4 1 2. - 0 - -5.3522791713476181e-003 - 0.6185457706451416 - 0.4920490980148315 - <_> - - <_> - - - - <_>1 18 8 2 -1. - <_>1 19 8 1 2. - 0 - -0.0159688591957092 - 0.1382617950439453 - 0.4983252882957459 - <_> - - <_> - - - - <_>13 5 6 15 -1. - <_>15 5 2 15 3. - 0 - 4.7676060348749161e-003 - 0.4688057899475098 - 0.5490046143531799 - <_> - - <_> - - - - <_>9 8 2 2 -1. - <_>9 9 2 1 2. - 0 - -2.4714691098779440e-003 - 0.2368514984846115 - 0.5003952980041504 - <_> - - <_> - - - - <_>9 5 2 3 -1. - <_>9 5 1 3 2. - 0 - -7.1033788844943047e-004 - 0.5856394171714783 - 0.4721533060073853 - <_> - - <_> - - - - <_>1 5 6 15 -1. - <_>3 5 2 15 3. - 0 - -0.1411755979061127 - 0.0869000628590584 - 0.4961591064929962 - <_> - - <_> - - - - <_>4 1 14 8 -1. - <_>11 1 7 4 2. - <_>4 5 7 4 2. - 0 - 0.1065180972218514 - 0.5138837099075317 - 0.1741005033254623 - <_> - - <_> - - - - <_>2 4 4 16 -1. - <_>2 4 2 8 2. - <_>4 12 2 8 2. - 0 - -0.0527447499334812 - 0.7353636026382446 - 0.4772881865501404 - <_> - - <_> - - - - <_>12 4 3 12 -1. - <_>12 10 3 6 2. - 0 - -4.7431760467588902e-003 - 0.3884406089782715 - 0.5292701721191406 - <_> - - <_> - - - - <_>4 5 10 12 -1. - <_>4 5 5 6 2. - <_>9 11 5 6 2. - 0 - 9.9676765967160463e-004 - 0.5223492980003357 - 0.4003424048423767 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 8.0284131690859795e-003 - 0.4959106147289276 - 0.7212964296340942 - <_> - - <_> - - - - <_>5 4 2 3 -1. - <_>5 5 2 1 3. - 0 - 8.6025858763605356e-004 - 0.4444884061813355 - 0.5538476109504700 - <_> - - <_> - - - - <_>12 2 4 10 -1. - <_>14 2 2 5 2. - <_>12 7 2 5 2. - 0 - 9.3191501218825579e-004 - 0.5398371219635010 - 0.4163244068622589 - <_> - - <_> - - - - <_>6 4 7 3 -1. - <_>6 5 7 1 3. - 0 - -2.5082060601562262e-003 - 0.5854265093803406 - 0.4562500119209290 - <_> - - <_> - - - - <_>2 0 18 2 -1. - <_>11 0 9 1 2. - <_>2 1 9 1 2. - 0 - -2.1378761157393456e-003 - 0.4608069062232971 - 0.5280259251594544 - <_> - - <_> - - - - <_>0 0 18 2 -1. - <_>0 0 9 1 2. - <_>9 1 9 1 2. - 0 - -2.1546049974858761e-003 - 0.3791126906871796 - 0.5255997180938721 - <_> - - <_> - - - - <_>13 13 4 6 -1. - <_>15 13 2 3 2. - <_>13 16 2 3 2. - 0 - -7.6214009895920753e-003 - 0.5998609066009522 - 0.4952073991298676 - <_> - - <_> - - - - <_>3 13 4 6 -1. - <_>3 13 2 3 2. - <_>5 16 2 3 2. - 0 - 2.2055360022932291e-003 - 0.4484206140041351 - 0.5588530898094177 - <_> - - <_> - - - - <_>10 12 2 6 -1. - <_>10 15 2 3 2. - 0 - 1.2586950324475765e-003 - 0.5450747013092041 - 0.4423840939998627 - <_> - - <_> - - - - <_>5 9 10 10 -1. - <_>5 9 5 5 2. - <_>10 14 5 5 2. - 0 - -5.0926720723509789e-003 - 0.4118275046348572 - 0.5263035893440247 - <_> - - <_> - - - - <_>11 4 4 2 -1. - <_>13 4 2 1 2. - <_>11 5 2 1 2. - 0 - -2.5095739401876926e-003 - 0.5787907838821411 - 0.4998494982719421 - <_> - - <_> - - - - <_>7 12 6 8 -1. - <_>10 12 3 8 2. - 0 - -0.0773275569081306 - 0.8397865891456604 - 0.4811120033264160 - <_> - - <_> - - - - <_>12 2 4 10 -1. - <_>14 2 2 5 2. - <_>12 7 2 5 2. - 0 - -0.0414858199656010 - 0.2408611029386520 - 0.5176993012428284 - <_> - - <_> - - - - <_>8 11 2 1 -1. - <_>9 11 1 1 2. - 0 - 1.0355669655837119e-004 - 0.4355360865592957 - 0.5417054295539856 - <_> - - <_> - - - - <_>10 5 1 12 -1. - <_>10 9 1 4 3. - 0 - 1.3255809899419546e-003 - 0.5453971028327942 - 0.4894095063209534 - <_> - - <_> - - - - <_>0 11 6 9 -1. - <_>3 11 3 9 2. - 0 - -8.0598732456564903e-003 - 0.5771024227142334 - 0.4577918946743012 - <_> - - <_> - - - - <_>12 2 4 10 -1. - <_>14 2 2 5 2. - <_>12 7 2 5 2. - 0 - 0.0190586205571890 - 0.5169867873191834 - 0.3400475084781647 - <_> - - <_> - - - - <_>4 2 4 10 -1. - <_>4 2 2 5 2. - <_>6 7 2 5 2. - 0 - -0.0350578911602497 - 0.2203243970870972 - 0.5000503063201904 - <_> - - <_> - - - - <_>11 4 4 2 -1. - <_>13 4 2 1 2. - <_>11 5 2 1 2. - 0 - 5.7296059094369411e-003 - 0.5043408274650574 - 0.6597570776939392 - <_> - - <_> - - - - <_>0 14 6 3 -1. - <_>0 15 6 1 3. - 0 - -0.0116483299061656 - 0.2186284959316254 - 0.4996652901172638 - <_> - - <_> - - - - <_>11 4 4 2 -1. - <_>13 4 2 1 2. - <_>11 5 2 1 2. - 0 - 1.4544479781761765e-003 - 0.5007681846618652 - 0.5503727793693543 - <_> - - <_> - - - - <_>6 1 3 2 -1. - <_>7 1 1 2 3. - 0 - -2.5030909455381334e-004 - 0.4129841029644013 - 0.5241670012474060 - <_> - - <_> - - - - <_>11 4 4 2 -1. - <_>13 4 2 1 2. - <_>11 5 2 1 2. - 0 - -8.2907272735610604e-004 - 0.5412868261337280 - 0.4974496066570282 - <_> - - <_> - - - - <_>5 4 4 2 -1. - <_>5 4 2 1 2. - <_>7 5 2 1 2. - 0 - 1.0862209601327777e-003 - 0.4605529904365540 - 0.5879228711128235 - <_> - - <_> - - - - <_>13 0 2 12 -1. - <_>14 0 1 6 2. - <_>13 6 1 6 2. - 0 - 2.0000500080641359e-004 - 0.5278854966163635 - 0.4705209136009216 - <_> - - <_> - - - - <_>6 0 3 10 -1. - <_>7 0 1 10 3. - 0 - 2.9212920926511288e-003 - 0.5129609704017639 - 0.3755536973476410 - <_> - - <_> - - - - <_>3 0 17 8 -1. - <_>3 4 17 4 2. - 0 - 0.0253874007612467 - 0.4822691977024078 - 0.5790768265724182 - <_> - - <_> - - - - <_>0 4 20 4 -1. - <_>0 6 20 2 2. - 0 - -3.1968469265848398e-003 - 0.5248395204544067 - 0.3962840139865875 - 87.6960296630859380 - 17 - -1 - <_> - - - <_> - - <_> - - - - <_>0 3 8 2 -1. - <_>4 3 4 2 2. - 0 - 5.8031738735735416e-003 - 0.3498983979225159 - 0.5961983203887940 - <_> - - <_> - - - - <_>8 11 4 3 -1. - <_>8 12 4 1 3. - 0 - -9.0003069490194321e-003 - 0.6816636919975281 - 0.4478552043437958 - <_> - - <_> - - - - <_>5 7 6 4 -1. - <_>5 7 3 2 2. - <_>8 9 3 2 2. - 0 - -1.1549659539014101e-003 - 0.5585706233978272 - 0.3578251004219055 - <_> - - <_> - - - - <_>8 3 4 9 -1. - <_>8 6 4 3 3. - 0 - -1.1069850297644734e-003 - 0.5365036129951477 - 0.3050428032875061 - <_> - - <_> - - - - <_>8 15 1 4 -1. - <_>8 17 1 2 2. - 0 - 1.0308309720130637e-004 - 0.3639095127582550 - 0.5344635844230652 - <_> - - <_> - - - - <_>4 5 12 7 -1. - <_>8 5 4 7 3. - 0 - -5.0984839908778667e-003 - 0.2859157025814056 - 0.5504264831542969 - <_> - - <_> - - - - <_>4 2 4 10 -1. - <_>4 2 2 5 2. - <_>6 7 2 5 2. - 0 - 8.2572200335562229e-004 - 0.5236523747444153 - 0.3476041853427887 - <_> - - <_> - - - - <_>3 0 17 2 -1. - <_>3 1 17 1 2. - 0 - 9.9783325567841530e-003 - 0.4750322103500366 - 0.6219646930694580 - <_> - - <_> - - - - <_>2 2 16 15 -1. - <_>2 7 16 5 3. - 0 - -0.0374025292694569 - 0.3343375921249390 - 0.5278062820434570 - <_> - - <_> - - - - <_>15 2 5 2 -1. - <_>15 3 5 1 2. - 0 - 4.8548257909715176e-003 - 0.5192180871963501 - 0.3700444102287293 - <_> - - <_> - - - - <_>9 3 2 2 -1. - <_>10 3 1 2 2. - 0 - -1.8664470408111811e-003 - 0.2929843962192535 - 0.5091944932937622 - <_> - - <_> - - - - <_>4 5 16 15 -1. - <_>4 10 16 5 3. - 0 - 0.0168888904154301 - 0.3686845898628235 - 0.5431225895881653 - <_> - - <_> - - - - <_>7 13 5 6 -1. - <_>7 16 5 3 2. - 0 - -5.8372621424496174e-003 - 0.3632183969020844 - 0.5221335887908936 - <_> - - <_> - - - - <_>10 7 3 2 -1. - <_>11 7 1 2 3. - 0 - -1.4713739510625601e-003 - 0.5870683789253235 - 0.4700650870800018 - <_> - - <_> - - - - <_>8 3 3 1 -1. - <_>9 3 1 1 3. - 0 - -1.1522950371727347e-003 - 0.3195894956588745 - 0.5140954256057739 - <_> - - <_> - - - - <_>9 16 3 3 -1. - <_>9 17 3 1 3. - 0 - -4.2560300789773464e-003 - 0.6301859021186829 - 0.4814921021461487 - <_> - - <_> - - - - <_>0 2 5 2 -1. - <_>0 3 5 1 2. - 0 - -6.7378291860222816e-003 - 0.1977048069238663 - 0.5025808215141296 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - 0.0113826701417565 - 0.4954132139682770 - 0.6867045760154724 - <_> - - <_> - - - - <_>1 7 12 1 -1. - <_>5 7 4 1 3. - 0 - 5.1794708706438541e-003 - 0.5164427757263184 - 0.3350647985935211 - <_> - - <_> - - - - <_>7 5 6 14 -1. - <_>7 12 6 7 2. - 0 - -0.1174378991127014 - 0.2315246015787125 - 0.5234413743019104 - <_> - - <_> - - - - <_>0 0 8 10 -1. - <_>0 0 4 5 2. - <_>4 5 4 5 2. - 0 - 0.0287034492939711 - 0.4664297103881836 - 0.6722521185874939 - <_> - - <_> - - - - <_>9 1 3 2 -1. - <_>10 1 1 2 3. - 0 - 4.8231030814349651e-003 - 0.5220875144004822 - 0.2723532915115356 - <_> - - <_> - - - - <_>8 1 3 2 -1. - <_>9 1 1 2 3. - 0 - 2.6798530016094446e-003 - 0.5079277157783508 - 0.2906948924064636 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - 8.0504082143306732e-003 - 0.4885950982570648 - 0.6395021080970764 - <_> - - <_> - - - - <_>7 4 6 16 -1. - <_>7 12 6 8 2. - 0 - 4.8054959625005722e-003 - 0.5197256803512573 - 0.3656663894653320 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - -2.2420159075409174e-003 - 0.6153467893600464 - 0.4763701856136322 - <_> - - <_> - - - - <_>2 3 2 6 -1. - <_>2 5 2 2 3. - 0 - -0.0137577103450894 - 0.2637344896793366 - 0.5030903220176697 - <_> - - <_> - - - - <_>14 2 6 9 -1. - <_>14 5 6 3 3. - 0 - -0.1033829972147942 - 0.2287521958351135 - 0.5182461142539978 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - -9.4432085752487183e-003 - 0.6953303813934326 - 0.4694949090480804 - <_> - - <_> - - - - <_>9 17 3 2 -1. - <_>10 17 1 2 3. - 0 - 8.0271181650459766e-004 - 0.5450655221939087 - 0.4268783926963806 - <_> - - <_> - - - - <_>5 5 2 3 -1. - <_>5 6 2 1 3. - 0 - -4.1945669800043106e-003 - 0.6091387867927551 - 0.4571642875671387 - <_> - - <_> - - - - <_>13 11 3 6 -1. - <_>13 13 3 2 3. - 0 - 0.0109422104433179 - 0.5241063237190247 - 0.3284547030925751 - <_> - - <_> - - - - <_>3 14 2 6 -1. - <_>3 17 2 3 2. - 0 - -5.7841069065034389e-004 - 0.5387929081916809 - 0.4179368913173676 - <_> - - <_> - - - - <_>14 3 6 2 -1. - <_>14 4 6 1 2. - 0 - -2.0888620056211948e-003 - 0.4292691051959992 - 0.5301715731620789 - <_> - - <_> - - - - <_>0 8 16 2 -1. - <_>0 9 16 1 2. - 0 - 3.2383969519287348e-003 - 0.3792347908020020 - 0.5220744013786316 - <_> - - <_> - - - - <_>14 3 6 2 -1. - <_>14 4 6 1 2. - 0 - 4.9075027927756310e-003 - 0.5237283110618591 - 0.4126757979393005 - <_> - - <_> - - - - <_>0 0 5 6 -1. - <_>0 2 5 2 3. - 0 - -0.0322779417037964 - 0.1947655975818634 - 0.4994502067565918 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - -8.9711230248212814e-003 - 0.6011285185813904 - 0.4929032027721405 - <_> - - <_> - - - - <_>4 11 3 6 -1. - <_>4 13 3 2 3. - 0 - 0.0153210898861289 - 0.5009753704071045 - 0.2039822041988373 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - 2.0855569746345282e-003 - 0.4862189888954163 - 0.5721694827079773 - <_> - - <_> - - - - <_>9 5 1 3 -1. - <_>9 6 1 1 3. - 0 - 5.0615021027624607e-003 - 0.5000218749046326 - 0.1801805943250656 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - -3.7174751050770283e-003 - 0.5530117154121399 - 0.4897592961788178 - <_> - - <_> - - - - <_>6 6 8 12 -1. - <_>6 12 8 6 2. - 0 - -0.0121705001220107 - 0.4178605973720551 - 0.5383723974227905 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - 4.6248398721218109e-003 - 0.4997169971466065 - 0.5761327147483826 - <_> - - <_> - - - - <_>5 12 9 2 -1. - <_>8 12 3 2 3. - 0 - -2.1040429419372231e-004 - 0.5331807136535645 - 0.4097681045532227 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - -0.0146417804062366 - 0.5755925178527832 - 0.5051776170730591 - <_> - - <_> - - - - <_>4 5 4 3 -1. - <_>4 6 4 1 3. - 0 - 3.3199489116668701e-003 - 0.4576976895332336 - 0.6031805872917175 - <_> - - <_> - - - - <_>6 6 9 2 -1. - <_>9 6 3 2 3. - 0 - 3.7236879579722881e-003 - 0.4380396902561188 - 0.5415883064270020 - <_> - - <_> - - - - <_>4 11 1 3 -1. - <_>4 12 1 1 3. - 0 - 8.2951161311939359e-004 - 0.5163031816482544 - 0.3702219128608704 - <_> - - <_> - - - - <_>14 12 6 6 -1. - <_>14 12 3 6 2. - 0 - -0.0114084901288152 - 0.6072946786880493 - 0.4862565100193024 - <_> - - <_> - - - - <_>7 0 3 7 -1. - <_>8 0 1 7 3. - 0 - -4.5320121571421623e-003 - 0.3292475938796997 - 0.5088962912559509 - <_> - - <_> - - - - <_>9 8 3 3 -1. - <_>10 8 1 3 3. - 0 - 5.1276017911732197e-003 - 0.4829767942428589 - 0.6122708916664124 - <_> - - <_> - - - - <_>8 8 3 3 -1. - <_>9 8 1 3 3. - 0 - 9.8583158105611801e-003 - 0.4660679996013641 - 0.6556177139282227 - <_> - - <_> - - - - <_>5 10 11 3 -1. - <_>5 11 11 1 3. - 0 - 0.0369859188795090 - 0.5204849243164063 - 0.1690472066402435 - <_> - - <_> - - - - <_>5 7 10 1 -1. - <_>10 7 5 1 2. - 0 - 4.6491161920130253e-003 - 0.5167322158813477 - 0.3725225031375885 - <_> - - <_> - - - - <_>9 7 3 2 -1. - <_>10 7 1 2 3. - 0 - -4.2664702050387859e-003 - 0.6406493186950684 - 0.4987342953681946 - <_> - - <_> - - - - <_>8 7 3 2 -1. - <_>9 7 1 2 3. - 0 - -4.7956590424291790e-004 - 0.5897293090820313 - 0.4464873969554901 - <_> - - <_> - - - - <_>11 9 4 2 -1. - <_>11 9 2 2 2. - 0 - 3.6827160511165857e-003 - 0.5441560745239258 - 0.3472662866115570 - <_> - - <_> - - - - <_>5 9 4 2 -1. - <_>7 9 2 2 2. - 0 - -0.0100598800927401 - 0.2143162935972214 - 0.5004829764366150 - <_> - - <_> - - - - <_>14 10 2 4 -1. - <_>14 12 2 2 2. - 0 - -3.0361840617842972e-004 - 0.5386424064636231 - 0.4590323865413666 - <_> - - <_> - - - - <_>7 7 3 2 -1. - <_>8 7 1 2 3. - 0 - -1.4545479789376259e-003 - 0.5751184225082398 - 0.4497095048427582 - <_> - - <_> - - - - <_>14 17 6 3 -1. - <_>14 18 6 1 3. - 0 - 1.6515209572389722e-003 - 0.5421937704086304 - 0.4238520860671997 - <_> - - <_> - - - - <_>4 5 12 12 -1. - <_>4 5 6 6 2. - <_>10 11 6 6 2. - 0 - -7.8468639403581619e-003 - 0.4077920913696289 - 0.5258157253265381 - <_> - - <_> - - - - <_>6 9 8 8 -1. - <_>10 9 4 4 2. - <_>6 13 4 4 2. - 0 - -5.1259850151836872e-003 - 0.4229275882244110 - 0.5479453206062317 - <_> - - <_> - - - - <_>0 4 15 4 -1. - <_>5 4 5 4 3. - 0 - -0.0368909612298012 - 0.6596375703811646 - 0.4674678146839142 - <_> - - <_> - - - - <_>13 2 4 1 -1. - <_>13 2 2 1 2. - 0 - 2.4035639944486320e-004 - 0.4251135885715485 - 0.5573202967643738 - <_> - - <_> - - - - <_>4 12 2 2 -1. - <_>4 13 2 1 2. - 0 - -1.5150169929256663e-005 - 0.5259246826171875 - 0.4074114859104157 - <_> - - <_> - - - - <_>8 13 4 3 -1. - <_>8 14 4 1 3. - 0 - 2.2108471021056175e-003 - 0.4671722948551178 - 0.5886352062225342 - <_> - - <_> - - - - <_>9 13 2 3 -1. - <_>9 14 2 1 3. - 0 - -1.1568620102480054e-003 - 0.5711066126823425 - 0.4487161934375763 - <_> - - <_> - - - - <_>13 11 2 3 -1. - <_>13 12 2 1 3. - 0 - 4.9996292218565941e-003 - 0.5264198184013367 - 0.2898327112197876 - <_> - - <_> - - - - <_>7 12 4 4 -1. - <_>7 12 2 2 2. - <_>9 14 2 2 2. - 0 - -1.4656189596280456e-003 - 0.3891738057136536 - 0.5197871923446655 - <_> - - <_> - - - - <_>10 11 2 2 -1. - <_>11 11 1 1 2. - <_>10 12 1 1 2. - 0 - -1.1975039960816503e-003 - 0.5795872807502747 - 0.4927955865859985 - <_> - - <_> - - - - <_>8 17 3 2 -1. - <_>9 17 1 2 3. - 0 - -4.4954330660402775e-003 - 0.2377603054046631 - 0.5012555122375488 - <_> - - <_> - - - - <_>10 11 2 2 -1. - <_>11 11 1 1 2. - <_>10 12 1 1 2. - 0 - 1.4997160178609192e-004 - 0.4876626133918762 - 0.5617607831954956 - <_> - - <_> - - - - <_>0 17 6 3 -1. - <_>0 18 6 1 3. - 0 - 2.6391509454697371e-003 - 0.5168088078498840 - 0.3765509128570557 - <_> - - <_> - - - - <_>10 11 2 2 -1. - <_>11 11 1 1 2. - <_>10 12 1 1 2. - 0 - -2.9368131072260439e-004 - 0.5446649193763733 - 0.4874630868434906 - <_> - - <_> - - - - <_>8 11 2 2 -1. - <_>8 11 1 1 2. - <_>9 12 1 1 2. - 0 - 1.4211760135367513e-003 - 0.4687897861003876 - 0.6691331863403320 - <_> - - <_> - - - - <_>12 5 8 4 -1. - <_>12 5 4 4 2. - 0 - 0.0794276371598244 - 0.5193443894386292 - 0.2732945978641510 - <_> - - <_> - - - - <_>0 5 8 4 -1. - <_>4 5 4 4 2. - 0 - 0.0799375027418137 - 0.4971731007099152 - 0.1782083958387375 - <_> - - <_> - - - - <_>13 2 4 1 -1. - <_>13 2 2 1 2. - 0 - 0.0110892597585917 - 0.5165994763374329 - 0.3209475874900818 - <_> - - <_> - - - - <_>3 2 4 1 -1. - <_>5 2 2 1 2. - 0 - 1.6560709627810866e-004 - 0.4058471918106079 - 0.5307276248931885 - <_> - - <_> - - - - <_>10 0 4 2 -1. - <_>12 0 2 1 2. - <_>10 1 2 1 2. - 0 - -5.3354292176663876e-003 - 0.3445056974887848 - 0.5158129930496216 - <_> - - <_> - - - - <_>7 12 3 1 -1. - <_>8 12 1 1 3. - 0 - 1.1287260567769408e-003 - 0.4594863057136536 - 0.6075533032417297 - <_> - - <_> - - - - <_>8 11 4 8 -1. - <_>10 11 2 4 2. - <_>8 15 2 4 2. - 0 - -0.0219692196696997 - 0.1680400967597961 - 0.5228595733642578 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -2.1775320055894554e-004 - 0.3861596882343292 - 0.5215672850608826 - <_> - - <_> - - - - <_>3 18 15 2 -1. - <_>3 19 15 1 2. - 0 - 2.0200149447191507e-004 - 0.5517979264259338 - 0.4363039135932922 - <_> - - <_> - - - - <_>2 6 2 12 -1. - <_>2 6 1 6 2. - <_>3 12 1 6 2. - 0 - -0.0217331498861313 - 0.7999460101127625 - 0.4789851009845734 - <_> - - <_> - - - - <_>9 8 2 3 -1. - <_>9 9 2 1 3. - 0 - -8.4399932529777288e-004 - 0.4085975885391235 - 0.5374773144721985 - <_> - - <_> - - - - <_>7 10 3 2 -1. - <_>8 10 1 2 3. - 0 - -4.3895249837078154e-004 - 0.5470405220985413 - 0.4366143047809601 - <_> - - <_> - - - - <_>11 11 3 1 -1. - <_>12 11 1 1 3. - 0 - 1.5092400135472417e-003 - 0.4988996982574463 - 0.5842149257659912 - <_> - - <_> - - - - <_>6 11 3 1 -1. - <_>7 11 1 1 3. - 0 - -3.5547839943319559e-003 - 0.6753690242767334 - 0.4721005856990814 - <_> - - <_> - - - - <_>9 2 4 2 -1. - <_>11 2 2 1 2. - <_>9 3 2 1 2. - 0 - 4.8191400128416717e-004 - 0.5415853857994080 - 0.4357109069824219 - <_> - - <_> - - - - <_>4 12 2 3 -1. - <_>4 13 2 1 3. - 0 - -6.0264398343861103e-003 - 0.2258509993553162 - 0.4991880953311920 - <_> - - <_> - - - - <_>2 1 18 3 -1. - <_>8 1 6 3 3. - 0 - -0.0116681400686502 - 0.6256554722785950 - 0.4927498996257782 - <_> - - <_> - - - - <_>5 1 4 14 -1. - <_>7 1 2 14 2. - 0 - -2.8718370012938976e-003 - 0.3947784900665283 - 0.5245801806449890 - <_> - - <_> - - - - <_>8 16 12 3 -1. - <_>8 16 6 3 2. - 0 - 0.0170511696487665 - 0.4752511084079742 - 0.5794224143028259 - <_> - - <_> - - - - <_>1 17 18 3 -1. - <_>7 17 6 3 3. - 0 - -0.0133520802482963 - 0.6041104793548584 - 0.4544535875320435 - <_> - - <_> - - - - <_>9 14 2 6 -1. - <_>9 17 2 3 2. - 0 - -3.9301801007241011e-004 - 0.4258275926113129 - 0.5544905066490173 - <_> - - <_> - - - - <_>9 12 1 8 -1. - <_>9 16 1 4 2. - 0 - 3.0483349692076445e-003 - 0.5233420133590698 - 0.3780272901058197 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - -4.3579288758337498e-003 - 0.6371889114379883 - 0.4838674068450928 - <_> - - <_> - - - - <_>9 6 2 12 -1. - <_>9 10 2 4 3. - 0 - 5.6661018170416355e-003 - 0.5374705791473389 - 0.4163666069507599 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - 6.0677339206449687e-005 - 0.4638795852661133 - 0.5311625003814697 - <_> - - <_> - - - - <_>0 1 4 8 -1. - <_>2 1 2 8 2. - 0 - 0.0367381609976292 - 0.4688656032085419 - 0.6466524004936218 - <_> - - <_> - - - - <_>9 1 6 2 -1. - <_>12 1 3 1 2. - <_>9 2 3 1 2. - 0 - 8.6528137326240540e-003 - 0.5204318761825562 - 0.2188657969236374 - <_> - - <_> - - - - <_>1 3 12 14 -1. - <_>1 10 12 7 2. - 0 - -0.1537135988473892 - 0.1630371958017349 - 0.4958840012550354 - <_> - - <_> - - - - <_>8 12 4 2 -1. - <_>10 12 2 1 2. - <_>8 13 2 1 2. - 0 - -4.1560421232134104e-004 - 0.5774459242820740 - 0.4696458876132965 - <_> - - <_> - - - - <_>1 9 10 2 -1. - <_>1 9 5 1 2. - <_>6 10 5 1 2. - 0 - -1.2640169588848948e-003 - 0.3977175951004028 - 0.5217198133468628 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - -3.5473341122269630e-003 - 0.6046528220176697 - 0.4808315038681030 - <_> - - <_> - - - - <_>6 8 8 3 -1. - <_>6 9 8 1 3. - 0 - 3.0019069527043030e-005 - 0.3996723890304565 - 0.5228201150894165 - <_> - - <_> - - - - <_>9 15 5 3 -1. - <_>9 16 5 1 3. - 0 - 1.3113019522279501e-003 - 0.4712158143520355 - 0.5765997767448425 - <_> - - <_> - - - - <_>8 7 4 3 -1. - <_>8 8 4 1 3. - 0 - -1.3374709524214268e-003 - 0.4109584987163544 - 0.5253170132637024 - <_> - - <_> - - - - <_>7 7 6 2 -1. - <_>7 8 6 1 2. - 0 - 0.0208767093718052 - 0.5202993750572205 - 0.1757981926202774 - <_> - - <_> - - - - <_>5 7 8 2 -1. - <_>5 7 4 1 2. - <_>9 8 4 1 2. - 0 - -7.5497948564589024e-003 - 0.6566609740257263 - 0.4694975018501282 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - 0.0241885501891375 - 0.5128673911094666 - 0.3370220959186554 - <_> - - <_> - - - - <_>4 7 4 2 -1. - <_>4 8 4 1 2. - 0 - -2.9358828905969858e-003 - 0.6580786705017090 - 0.4694541096687317 - <_> - - <_> - - - - <_>14 2 6 9 -1. - <_>14 5 6 3 3. - 0 - 0.0575579293072224 - 0.5146445035934448 - 0.2775259912014008 - <_> - - <_> - - - - <_>4 9 3 3 -1. - <_>5 9 1 3 3. - 0 - -1.1343370424583554e-003 - 0.3836601972579956 - 0.5192667245864868 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - 0.0168169997632504 - 0.5085592865943909 - 0.6177260875701904 - <_> - - <_> - - - - <_>0 2 6 9 -1. - <_>0 5 6 3 3. - 0 - 5.0535178743302822e-003 - 0.5138763189315796 - 0.3684791922569275 - <_> - - <_> - - - - <_>17 3 3 6 -1. - <_>18 3 1 6 3. - 0 - -4.5874710194766521e-003 - 0.5989655256271362 - 0.4835202097892761 - <_> - - <_> - - - - <_>0 3 3 6 -1. - <_>1 3 1 6 3. - 0 - 1.6882460331544280e-003 - 0.4509486854076386 - 0.5723056793212891 - <_> - - <_> - - - - <_>17 14 1 2 -1. - <_>17 15 1 1 2. - 0 - -1.6554000321775675e-003 - 0.3496770858764648 - 0.5243319272994995 - <_> - - <_> - - - - <_>4 9 4 3 -1. - <_>6 9 2 3 2. - 0 - -0.0193738006055355 - 0.1120536997914314 - 0.4968712925910950 - <_> - - <_> - - - - <_>12 9 3 3 -1. - <_>12 10 3 1 3. - 0 - 0.0103744501248002 - 0.5148196816444397 - 0.4395213127136231 - <_> - - <_> - - - - <_>5 9 3 3 -1. - <_>5 10 3 1 3. - 0 - 1.4973050565458834e-004 - 0.4084999859333038 - 0.5269886851310730 - <_> - - <_> - - - - <_>9 5 6 8 -1. - <_>12 5 3 4 2. - <_>9 9 3 4 2. - 0 - -0.0429819300770760 - 0.6394104957580566 - 0.5018504261970520 - <_> - - <_> - - - - <_>5 5 6 8 -1. - <_>5 5 3 4 2. - <_>8 9 3 4 2. - 0 - 8.3065936341881752e-003 - 0.4707553982734680 - 0.6698353290557861 - <_> - - <_> - - - - <_>16 1 4 6 -1. - <_>16 4 4 3 2. - 0 - -4.1285790503025055e-003 - 0.4541369080543518 - 0.5323647260665894 - <_> - - <_> - - - - <_>1 0 6 20 -1. - <_>3 0 2 20 3. - 0 - 1.7399420030415058e-003 - 0.4333961904048920 - 0.5439866185188294 - <_> - - <_> - - - - <_>12 11 3 2 -1. - <_>13 11 1 2 3. - 0 - 1.1739750334527344e-004 - 0.4579687118530273 - 0.5543426275253296 - <_> - - <_> - - - - <_>5 11 3 2 -1. - <_>6 11 1 2 3. - 0 - 1.8585780344437808e-004 - 0.4324643909931183 - 0.5426754951477051 - <_> - - <_> - - - - <_>9 4 6 1 -1. - <_>11 4 2 1 3. - 0 - 5.5587692186236382e-003 - 0.5257220864295960 - 0.3550611138343811 - <_> - - <_> - - - - <_>0 0 8 3 -1. - <_>4 0 4 3 2. - 0 - -7.9851560294628143e-003 - 0.6043018102645874 - 0.4630635976791382 - <_> - - <_> - - - - <_>15 0 2 5 -1. - <_>15 0 1 5 2. - 0 - 6.0594122624024749e-004 - 0.4598254859447479 - 0.5533195137977600 - <_> - - <_> - - - - <_>4 1 3 2 -1. - <_>5 1 1 2 3. - 0 - -2.2983040253166109e-004 - 0.4130752086639404 - 0.5322461128234863 - <_> - - <_> - - - - <_>7 0 6 15 -1. - <_>9 0 2 15 3. - 0 - 4.3740210821852088e-004 - 0.4043039977550507 - 0.5409289002418518 - <_> - - <_> - - - - <_>6 11 3 1 -1. - <_>7 11 1 1 3. - 0 - 2.9482020181603730e-004 - 0.4494963884353638 - 0.5628852248191834 - <_> - - <_> - - - - <_>12 0 3 4 -1. - <_>13 0 1 4 3. - 0 - 0.0103126596659422 - 0.5177510976791382 - 0.2704316973686218 - <_> - - <_> - - - - <_>5 4 6 1 -1. - <_>7 4 2 1 3. - 0 - -7.7241109684109688e-003 - 0.1988019049167633 - 0.4980553984642029 - <_> - - <_> - - - - <_>12 7 3 2 -1. - <_>12 8 3 1 2. - 0 - -4.6797208487987518e-003 - 0.6644750237464905 - 0.5018296241760254 - <_> - - <_> - - - - <_>0 1 4 6 -1. - <_>0 4 4 3 2. - 0 - -5.0755459815263748e-003 - 0.3898304998874664 - 0.5185269117355347 - <_> - - <_> - - - - <_>12 7 3 2 -1. - <_>12 8 3 1 2. - 0 - 2.2479740437120199e-003 - 0.4801808893680573 - 0.5660336017608643 - <_> - - <_> - - - - <_>2 16 3 3 -1. - <_>2 17 3 1 3. - 0 - 8.3327008178457618e-004 - 0.5210919976234436 - 0.3957188129425049 - <_> - - <_> - - - - <_>13 8 6 10 -1. - <_>16 8 3 5 2. - <_>13 13 3 5 2. - 0 - -0.0412793308496475 - 0.6154541969299316 - 0.5007054209709168 - <_> - - <_> - - - - <_>0 9 5 2 -1. - <_>0 10 5 1 2. - 0 - -5.0930189900100231e-004 - 0.3975942134857178 - 0.5228403806686401 - <_> - - <_> - - - - <_>12 11 2 2 -1. - <_>13 11 1 1 2. - <_>12 12 1 1 2. - 0 - 1.2568780221045017e-003 - 0.4979138076305389 - 0.5939183235168457 - <_> - - <_> - - - - <_>3 15 3 3 -1. - <_>3 16 3 1 3. - 0 - 8.0048497766256332e-003 - 0.4984497129917145 - 0.1633366048336029 - <_> - - <_> - - - - <_>12 7 3 2 -1. - <_>12 8 3 1 2. - 0 - -1.1879300000146031e-003 - 0.5904964804649353 - 0.4942624866962433 - <_> - - <_> - - - - <_>5 7 3 2 -1. - <_>5 8 3 1 2. - 0 - 6.1948952497914433e-004 - 0.4199557900428772 - 0.5328726172447205 - <_> - - <_> - - - - <_>9 5 9 9 -1. - <_>9 8 9 3 3. - 0 - 6.6829859279096127e-003 - 0.5418602824211121 - 0.4905889034271240 - <_> - - <_> - - - - <_>5 0 3 7 -1. - <_>6 0 1 7 3. - 0 - -3.7062340416014194e-003 - 0.3725939095020294 - 0.5138000249862671 - <_> - - <_> - - - - <_>5 2 12 5 -1. - <_>9 2 4 5 3. - 0 - -0.0397394113242626 - 0.6478961110115051 - 0.5050346851348877 - <_> - - <_> - - - - <_>6 11 2 2 -1. - <_>6 11 1 1 2. - <_>7 12 1 1 2. - 0 - 1.4085009461268783e-003 - 0.4682339131832123 - 0.6377884149551392 - <_> - - <_> - - - - <_>15 15 3 2 -1. - <_>15 16 3 1 2. - 0 - 3.9322688826359808e-004 - 0.5458530187606812 - 0.4150482118129730 - <_> - - <_> - - - - <_>2 15 3 2 -1. - <_>2 16 3 1 2. - 0 - -1.8979819724336267e-003 - 0.3690159916877747 - 0.5149704217910767 - <_> - - <_> - - - - <_>14 12 6 8 -1. - <_>17 12 3 4 2. - <_>14 16 3 4 2. - 0 - -0.0139704402536154 - 0.6050562858581543 - 0.4811357855796814 - <_> - - <_> - - - - <_>2 8 15 6 -1. - <_>7 8 5 6 3. - 0 - -0.1010081991553307 - 0.2017080038785934 - 0.4992361962795258 - <_> - - <_> - - - - <_>2 2 18 17 -1. - <_>8 2 6 17 3. - 0 - -0.0173469204455614 - 0.5713148713111877 - 0.4899486005306244 - <_> - - <_> - - - - <_>5 1 4 1 -1. - <_>7 1 2 1 2. - 0 - 1.5619759506080300e-004 - 0.4215388894081116 - 0.5392642021179199 - <_> - - <_> - - - - <_>5 2 12 5 -1. - <_>9 2 4 5 3. - 0 - 0.1343892961740494 - 0.5136151909828186 - 0.3767612874507904 - <_> - - <_> - - - - <_>3 2 12 5 -1. - <_>7 2 4 5 3. - 0 - -0.0245822407305241 - 0.7027357816696167 - 0.4747906923294067 - <_> - - <_> - - - - <_>4 9 12 4 -1. - <_>10 9 6 2 2. - <_>4 11 6 2 2. - 0 - -3.8553720805794001e-003 - 0.4317409098148346 - 0.5427716970443726 - <_> - - <_> - - - - <_>5 15 6 2 -1. - <_>5 15 3 1 2. - <_>8 16 3 1 2. - 0 - -2.3165249731391668e-003 - 0.5942698717117310 - 0.4618647992610931 - <_> - - <_> - - - - <_>10 14 2 3 -1. - <_>10 15 2 1 3. - 0 - -4.8518120311200619e-003 - 0.6191568970680237 - 0.4884895086288452 - <_> - - <_> - - - - <_>0 13 20 2 -1. - <_>0 13 10 1 2. - <_>10 14 10 1 2. - 0 - 2.4699938949197531e-003 - 0.5256664752960205 - 0.4017199873924255 - <_> - - <_> - - - - <_>4 9 12 8 -1. - <_>10 9 6 4 2. - <_>4 13 6 4 2. - 0 - 0.0454969592392445 - 0.5237867832183838 - 0.2685773968696594 - <_> - - <_> - - - - <_>8 13 3 6 -1. - <_>8 16 3 3 2. - 0 - -0.0203195996582508 - 0.2130445986986160 - 0.4979738891124725 - <_> - - <_> - - - - <_>10 12 2 2 -1. - <_>10 13 2 1 2. - 0 - 2.6994998916052282e-004 - 0.4814041852951050 - 0.5543122291564941 - <_> - - <_> - - - - <_>9 12 2 2 -1. - <_>9 12 1 1 2. - <_>10 13 1 1 2. - 0 - -1.8232699949294329e-003 - 0.6482579708099365 - 0.4709989130496979 - <_> - - <_> - - - - <_>4 11 14 4 -1. - <_>11 11 7 2 2. - <_>4 13 7 2 2. - 0 - -6.3015790656208992e-003 - 0.4581927955150604 - 0.5306236147880554 - <_> - - <_> - - - - <_>8 5 4 2 -1. - <_>8 6 4 1 2. - 0 - -2.4139499873854220e-004 - 0.5232086777687073 - 0.4051763117313385 - <_> - - <_> - - - - <_>10 10 6 3 -1. - <_>12 10 2 3 3. - 0 - -1.0330369696021080e-003 - 0.5556201934814453 - 0.4789193868637085 - <_> - - <_> - - - - <_>2 14 1 2 -1. - <_>2 15 1 1 2. - 0 - 1.8041160365100950e-004 - 0.5229442715644836 - 0.4011810123920441 - <_> - - <_> - - - - <_>13 8 6 12 -1. - <_>16 8 3 6 2. - <_>13 14 3 6 2. - 0 - -0.0614078603684902 - 0.6298682093620300 - 0.5010703206062317 - <_> - - <_> - - - - <_>1 8 6 12 -1. - <_>1 8 3 6 2. - <_>4 14 3 6 2. - 0 - -0.0695439130067825 - 0.7228280901908875 - 0.4773184061050415 - <_> - - <_> - - - - <_>10 0 6 10 -1. - <_>12 0 2 10 3. - 0 - -0.0705426633358002 - 0.2269513010978699 - 0.5182529091835022 - <_> - - <_> - - - - <_>5 11 8 4 -1. - <_>5 11 4 2 2. - <_>9 13 4 2 2. - 0 - 2.4423799477517605e-003 - 0.5237097144126892 - 0.4098151028156281 - <_> - - <_> - - - - <_>10 16 8 4 -1. - <_>14 16 4 2 2. - <_>10 18 4 2 2. - 0 - 1.5494349645450711e-003 - 0.4773750901222229 - 0.5468043088912964 - <_> - - <_> - - - - <_>7 7 6 6 -1. - <_>9 7 2 6 3. - 0 - -0.0239142198115587 - 0.7146975994110107 - 0.4783824980258942 - <_> - - <_> - - - - <_>10 2 4 10 -1. - <_>10 2 2 10 2. - 0 - -0.0124536901712418 - 0.2635296881198883 - 0.5241122841835022 - <_> - - <_> - - - - <_>6 1 4 9 -1. - <_>8 1 2 9 2. - 0 - -2.0760179904755205e-004 - 0.3623757064342499 - 0.5113608837127686 - <_> - - <_> - - - - <_>12 19 2 1 -1. - <_>12 19 1 1 2. - 0 - 2.9781080229440704e-005 - 0.4705932140350342 - 0.5432801842689514 - 90.2533493041992190 - 18 - -1 - <_> - - - <_> - - <_> - - - - <_>1 2 4 9 -1. - <_>3 2 2 9 2. - 0 - 0.0117727499455214 - 0.3860518932342529 - 0.6421167254447937 - <_> - - <_> - - - - <_>7 5 6 4 -1. - <_>9 5 2 4 3. - 0 - 0.0270375702530146 - 0.4385654926300049 - 0.6754038929939270 - <_> - - <_> - - - - <_>9 4 2 4 -1. - <_>9 6 2 2 2. - 0 - -3.6419500247575343e-005 - 0.5487101078033447 - 0.3423315882682800 - <_> - - <_> - - - - <_>14 5 2 8 -1. - <_>14 9 2 4 2. - 0 - 1.9995409529656172e-003 - 0.3230532109737396 - 0.5400317907333374 - <_> - - <_> - - - - <_>7 6 5 12 -1. - <_>7 12 5 6 2. - 0 - 4.5278300531208515e-003 - 0.5091639757156372 - 0.2935043871402741 - <_> - - <_> - - - - <_>14 6 2 6 -1. - <_>14 9 2 3 2. - 0 - 4.7890920541249216e-004 - 0.4178153872489929 - 0.5344064235687256 - <_> - - <_> - - - - <_>4 6 2 6 -1. - <_>4 9 2 3 2. - 0 - 1.1720920447260141e-003 - 0.2899182140827179 - 0.5132070779800415 - <_> - - <_> - - - - <_>8 15 10 4 -1. - <_>13 15 5 2 2. - <_>8 17 5 2 2. - 0 - 9.5305702416226268e-004 - 0.4280124902725220 - 0.5560845136642456 - <_> - - <_> - - - - <_>6 18 2 2 -1. - <_>7 18 1 2 2. - 0 - 1.5099150004971307e-005 - 0.4044871926307678 - 0.5404760241508484 - <_> - - <_> - - - - <_>11 3 6 2 -1. - <_>11 4 6 1 2. - 0 - -6.0817901976406574e-004 - 0.4271768927574158 - 0.5503466129302979 - <_> - - <_> - - - - <_>2 0 16 6 -1. - <_>2 2 16 2 3. - 0 - 3.3224520739167929e-003 - 0.3962723910808563 - 0.5369734764099121 - <_> - - <_> - - - - <_>11 3 6 2 -1. - <_>11 4 6 1 2. - 0 - -1.1037490330636501e-003 - 0.4727177917957306 - 0.5237749814987183 - <_> - - <_> - - - - <_>4 11 10 3 -1. - <_>4 12 10 1 3. - 0 - -1.4350269921123981e-003 - 0.5603008270263672 - 0.4223509132862091 - <_> - - <_> - - - - <_>11 3 6 2 -1. - <_>11 4 6 1 2. - 0 - 2.0767399109899998e-003 - 0.5225917100906372 - 0.4732725918292999 - <_> - - <_> - - - - <_>3 3 6 2 -1. - <_>3 4 6 1 2. - 0 - -1.6412809782195836e-004 - 0.3999075889587402 - 0.5432739853858948 - <_> - - <_> - - - - <_>16 0 4 7 -1. - <_>16 0 2 7 2. - 0 - 8.8302437216043472e-003 - 0.4678385853767395 - 0.6027327179908752 - <_> - - <_> - - - - <_>0 14 9 6 -1. - <_>0 16 9 2 3. - 0 - -0.0105520701035857 - 0.3493967056274414 - 0.5213974714279175 - <_> - - <_> - - - - <_>9 16 3 3 -1. - <_>9 17 3 1 3. - 0 - -2.2731600329279900e-003 - 0.6185818910598755 - 0.4749062955379486 - <_> - - <_> - - - - <_>4 6 6 2 -1. - <_>6 6 2 2 3. - 0 - -8.4786332445219159e-004 - 0.5285341143608093 - 0.3843482136726379 - <_> - - <_> - - - - <_>15 11 1 3 -1. - <_>15 12 1 1 3. - 0 - 1.2081359745934606e-003 - 0.5360640883445740 - 0.3447335958480835 - <_> - - <_> - - - - <_>5 5 2 3 -1. - <_>5 6 2 1 3. - 0 - 2.6512730401009321e-003 - 0.4558292031288147 - 0.6193962097167969 - <_> - - <_> - - - - <_>10 9 2 2 -1. - <_>10 10 2 1 2. - 0 - -1.1012479662895203e-003 - 0.3680230081081390 - 0.5327628254890442 - <_> - - <_> - - - - <_>3 1 4 3 -1. - <_>5 1 2 3 2. - 0 - 4.9561518244445324e-004 - 0.3960595130920410 - 0.5274940729141235 - <_> - - <_> - - - - <_>16 0 4 7 -1. - <_>16 0 2 7 2. - 0 - -0.0439017713069916 - 0.7020444869995117 - 0.4992839097976685 - <_> - - <_> - - - - <_>0 0 20 1 -1. - <_>10 0 10 1 2. - 0 - 0.0346903502941132 - 0.5049164295196533 - 0.2766602933406830 - <_> - - <_> - - - - <_>15 11 1 3 -1. - <_>15 12 1 1 3. - 0 - -2.7442190330475569e-003 - 0.2672632932662964 - 0.5274971127510071 - <_> - - <_> - - - - <_>0 4 3 4 -1. - <_>1 4 1 4 3. - 0 - 3.3316588960587978e-003 - 0.4579482972621918 - 0.6001101732254028 - <_> - - <_> - - - - <_>16 3 3 6 -1. - <_>16 5 3 2 3. - 0 - -0.0200445707887411 - 0.3171594142913818 - 0.5235717892646790 - <_> - - <_> - - - - <_>1 3 3 6 -1. - <_>1 5 3 2 3. - 0 - 1.3492030557245016e-003 - 0.5265362858772278 - 0.4034324884414673 - <_> - - <_> - - - - <_>6 2 12 6 -1. - <_>12 2 6 3 2. - <_>6 5 6 3 2. - 0 - 2.9702018946409225e-003 - 0.5332456827163696 - 0.4571984112262726 - <_> - - <_> - - - - <_>8 10 4 3 -1. - <_>8 11 4 1 3. - 0 - 6.3039981760084629e-003 - 0.4593310952186585 - 0.6034635901451111 - <_> - - <_> - - - - <_>4 2 14 6 -1. - <_>11 2 7 3 2. - <_>4 5 7 3 2. - 0 - -0.0129365902394056 - 0.4437963962554932 - 0.5372971296310425 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - 4.0148729458451271e-003 - 0.4680323898792267 - 0.6437833905220032 - <_> - - <_> - - - - <_>15 13 2 3 -1. - <_>15 14 2 1 3. - 0 - -2.6401679497212172e-003 - 0.3709631860256195 - 0.5314332842826843 - <_> - - <_> - - - - <_>8 12 4 3 -1. - <_>8 13 4 1 3. - 0 - 0.0139184398576617 - 0.4723555147647858 - 0.7130808830261231 - <_> - - <_> - - - - <_>15 11 1 3 -1. - <_>15 12 1 1 3. - 0 - -4.5087869511917233e-004 - 0.4492394030094147 - 0.5370404124259949 - <_> - - <_> - - - - <_>7 13 5 2 -1. - <_>7 14 5 1 2. - 0 - 2.5384349282830954e-004 - 0.4406864047050476 - 0.5514402985572815 - <_> - - <_> - - - - <_>7 12 6 3 -1. - <_>7 13 6 1 3. - 0 - 2.2710000630468130e-003 - 0.4682416915893555 - 0.5967984199523926 - <_> - - <_> - - - - <_>5 11 4 4 -1. - <_>5 13 4 2 2. - 0 - 2.4120779708027840e-003 - 0.5079392194747925 - 0.3018598854541779 - <_> - - <_> - - - - <_>11 4 3 3 -1. - <_>12 4 1 3 3. - 0 - -3.6025670851813629e-005 - 0.5601037144660950 - 0.4471096992492676 - <_> - - <_> - - - - <_>6 4 3 3 -1. - <_>7 4 1 3 3. - 0 - -7.4905529618263245e-003 - 0.2207535058259964 - 0.4989944100379944 - <_> - - <_> - - - - <_>16 5 3 6 -1. - <_>17 5 1 6 3. - 0 - -0.0175131205469370 - 0.6531215906143189 - 0.5017648935317993 - <_> - - <_> - - - - <_>3 6 12 7 -1. - <_>7 6 4 7 3. - 0 - 0.1428163051605225 - 0.4967963099479675 - 0.1482062041759491 - <_> - - <_> - - - - <_>16 5 3 6 -1. - <_>17 5 1 6 3. - 0 - 5.5345268920063972e-003 - 0.4898946881294251 - 0.5954223871231079 - <_> - - <_> - - - - <_>3 13 2 3 -1. - <_>3 14 2 1 3. - 0 - -9.6323591424152255e-004 - 0.3927116990089417 - 0.5196074247360230 - <_> - - <_> - - - - <_>16 5 3 6 -1. - <_>17 5 1 6 3. - 0 - -2.0370010752230883e-003 - 0.5613325238227844 - 0.4884858131408691 - <_> - - <_> - - - - <_>1 5 3 6 -1. - <_>2 5 1 6 3. - 0 - 1.6614829655736685e-003 - 0.4472880065441132 - 0.5578880906105042 - <_> - - <_> - - - - <_>1 9 18 1 -1. - <_>7 9 6 1 3. - 0 - -3.1188090797513723e-003 - 0.3840532898902893 - 0.5397477746009827 - <_> - - <_> - - - - <_>0 9 8 7 -1. - <_>4 9 4 7 2. - 0 - -6.4000617712736130e-003 - 0.5843983888626099 - 0.4533218145370483 - <_> - - <_> - - - - <_>12 11 8 2 -1. - <_>12 12 8 1 2. - 0 - 3.1319601112045348e-004 - 0.5439221858978272 - 0.4234727919101715 - <_> - - <_> - - - - <_>0 11 8 2 -1. - <_>0 12 8 1 2. - 0 - -0.0182220991700888 - 0.1288464963436127 - 0.4958404898643494 - <_> - - <_> - - - - <_>9 13 2 3 -1. - <_>9 14 2 1 3. - 0 - 8.7969247251749039e-003 - 0.4951297938823700 - 0.7153480052947998 - <_> - - <_> - - - - <_>4 10 12 4 -1. - <_>4 10 6 2 2. - <_>10 12 6 2 2. - 0 - -4.2395070195198059e-003 - 0.3946599960327148 - 0.5194936990737915 - <_> - - <_> - - - - <_>9 3 3 7 -1. - <_>10 3 1 7 3. - 0 - 9.7086271271109581e-003 - 0.4897503852844238 - 0.6064900159835815 - <_> - - <_> - - - - <_>7 2 3 5 -1. - <_>8 2 1 5 3. - 0 - -3.9934171363711357e-003 - 0.3245440125465393 - 0.5060828924179077 - <_> - - <_> - - - - <_>9 12 4 6 -1. - <_>11 12 2 3 2. - <_>9 15 2 3 2. - 0 - -0.0167850591242313 - 0.1581953018903732 - 0.5203778743743897 - <_> - - <_> - - - - <_>8 7 3 6 -1. - <_>9 7 1 6 3. - 0 - 0.0182720907032490 - 0.4680935144424439 - 0.6626979112625122 - <_> - - <_> - - - - <_>15 4 4 2 -1. - <_>15 5 4 1 2. - 0 - 5.6872838176786900e-003 - 0.5211697816848755 - 0.3512184917926788 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>9 7 1 3 3. - 0 - -1.0739039862528443e-003 - 0.5768386125564575 - 0.4529845118522644 - <_> - - <_> - - - - <_>14 2 6 4 -1. - <_>14 4 6 2 2. - 0 - -3.7093870341777802e-003 - 0.4507763087749481 - 0.5313581228256226 - <_> - - <_> - - - - <_>7 16 6 1 -1. - <_>9 16 2 1 3. - 0 - -2.1110709349159151e-004 - 0.5460820198059082 - 0.4333376884460449 - <_> - - <_> - - - - <_>15 13 2 3 -1. - <_>15 14 2 1 3. - 0 - 1.0670139454305172e-003 - 0.5371856093406677 - 0.4078390896320343 - <_> - - <_> - - - - <_>8 7 3 10 -1. - <_>9 7 1 10 3. - 0 - 3.5943021066486835e-003 - 0.4471287131309509 - 0.5643836259841919 - <_> - - <_> - - - - <_>11 10 2 6 -1. - <_>11 12 2 2 3. - 0 - -5.1776031032204628e-003 - 0.4499393105506897 - 0.5280330181121826 - <_> - - <_> - - - - <_>6 10 4 1 -1. - <_>8 10 2 1 2. - 0 - -2.5414369883947074e-004 - 0.5516173243522644 - 0.4407708048820496 - <_> - - <_> - - - - <_>10 9 2 2 -1. - <_>10 10 2 1 2. - 0 - 6.3522560521960258e-003 - 0.5194190144538879 - 0.2465227991342545 - <_> - - <_> - - - - <_>8 9 2 2 -1. - <_>8 10 2 1 2. - 0 - -4.4205080484971404e-004 - 0.3830705881118774 - 0.5139682292938232 - <_> - - <_> - - - - <_>12 7 2 2 -1. - <_>13 7 1 1 2. - <_>12 8 1 1 2. - 0 - 7.4488727841526270e-004 - 0.4891090989112854 - 0.5974786877632141 - <_> - - <_> - - - - <_>5 7 2 2 -1. - <_>5 7 1 1 2. - <_>6 8 1 1 2. - 0 - -3.5116379149258137e-003 - 0.7413681745529175 - 0.4768764972686768 - <_> - - <_> - - - - <_>13 0 3 14 -1. - <_>14 0 1 14 3. - 0 - -0.0125409103929996 - 0.3648819029331207 - 0.5252826809883118 - <_> - - <_> - - - - <_>4 0 3 14 -1. - <_>5 0 1 14 3. - 0 - 9.4931852072477341e-003 - 0.5100492835044861 - 0.3629586994647980 - <_> - - <_> - - - - <_>13 4 3 14 -1. - <_>14 4 1 14 3. - 0 - 0.0129611501470208 - 0.5232442021369934 - 0.4333561062812805 - <_> - - <_> - - - - <_>9 14 2 3 -1. - <_>9 15 2 1 3. - 0 - 4.7209449112415314e-003 - 0.4648149013519287 - 0.6331052780151367 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - -2.3119079414755106e-003 - 0.5930309891700745 - 0.4531058073043823 - <_> - - <_> - - - - <_>4 2 3 16 -1. - <_>5 2 1 16 3. - 0 - -2.8262299019843340e-003 - 0.3870477974414825 - 0.5257101058959961 - <_> - - <_> - - - - <_>7 2 8 10 -1. - <_>7 7 8 5 2. - 0 - -1.4311339473351836e-003 - 0.5522503256797791 - 0.4561854898929596 - <_> - - <_> - - - - <_>6 14 7 3 -1. - <_>6 15 7 1 3. - 0 - 1.9378310535103083e-003 - 0.4546220898628235 - 0.5736966729164124 - <_> - - <_> - - - - <_>9 2 10 12 -1. - <_>14 2 5 6 2. - <_>9 8 5 6 2. - 0 - 2.6343559147790074e-004 - 0.5345739126205444 - 0.4571875035762787 - <_> - - <_> - - - - <_>6 7 8 2 -1. - <_>6 8 8 1 2. - 0 - 7.8257522545754910e-004 - 0.3967815935611725 - 0.5220187902450562 - <_> - - <_> - - - - <_>8 13 4 6 -1. - <_>8 16 4 3 2. - 0 - -0.0195504408329725 - 0.2829642891883850 - 0.5243508219718933 - <_> - - <_> - - - - <_>6 6 1 3 -1. - <_>6 7 1 1 3. - 0 - 4.3914958951063454e-004 - 0.4590066969394684 - 0.5899090170860291 - <_> - - <_> - - - - <_>16 2 4 6 -1. - <_>16 4 4 2 3. - 0 - 0.0214520003646612 - 0.5231410861015320 - 0.2855378985404968 - <_> - - <_> - - - - <_>6 6 4 2 -1. - <_>6 6 2 1 2. - <_>8 7 2 1 2. - 0 - 5.8973580598831177e-004 - 0.4397256970405579 - 0.5506421923637390 - <_> - - <_> - - - - <_>16 2 4 6 -1. - <_>16 4 4 2 3. - 0 - -0.0261576101183891 - 0.3135079145431519 - 0.5189175009727478 - <_> - - <_> - - - - <_>0 2 4 6 -1. - <_>0 4 4 2 3. - 0 - -0.0139598604291677 - 0.3213272988796234 - 0.5040717720985413 - <_> - - <_> - - - - <_>9 6 2 6 -1. - <_>9 6 1 6 2. - 0 - -6.3699018210172653e-003 - 0.6387544870376587 - 0.4849506914615631 - <_> - - <_> - - - - <_>3 4 6 10 -1. - <_>3 9 6 5 2. - 0 - -8.5613820701837540e-003 - 0.2759132087230682 - 0.5032019019126892 - <_> - - <_> - - - - <_>9 5 2 6 -1. - <_>9 5 1 6 2. - 0 - 9.6622901037335396e-004 - 0.4685640931129456 - 0.5834879279136658 - <_> - - <_> - - - - <_>3 13 2 3 -1. - <_>3 14 2 1 3. - 0 - 7.6550268568098545e-004 - 0.5175207257270813 - 0.3896422088146210 - <_> - - <_> - - - - <_>13 13 3 2 -1. - <_>13 14 3 1 2. - 0 - -8.1833340227603912e-003 - 0.2069136947393417 - 0.5208122134208679 - <_> - - <_> - - - - <_>2 16 10 4 -1. - <_>2 16 5 2 2. - <_>7 18 5 2 2. - 0 - -9.3976939097046852e-003 - 0.6134091019630432 - 0.4641222953796387 - <_> - - <_> - - - - <_>5 6 10 6 -1. - <_>10 6 5 3 2. - <_>5 9 5 3 2. - 0 - 4.8028980381786823e-003 - 0.5454108119010925 - 0.4395219981670380 - <_> - - <_> - - - - <_>7 14 1 3 -1. - <_>7 15 1 1 3. - 0 - -3.5680569708347321e-003 - 0.6344485282897949 - 0.4681093990802765 - <_> - - <_> - - - - <_>14 16 6 3 -1. - <_>14 17 6 1 3. - 0 - 4.0733120404183865e-003 - 0.5292683243751526 - 0.4015620052814484 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 1.2568129459396005e-003 - 0.4392988085746765 - 0.5452824831008911 - <_> - - <_> - - - - <_>7 4 10 3 -1. - <_>7 5 10 1 3. - 0 - -2.9065010603517294e-003 - 0.5898832082748413 - 0.4863379895687103 - <_> - - <_> - - - - <_>0 4 5 4 -1. - <_>0 6 5 2 2. - 0 - -2.4409340694546700e-003 - 0.4069364964962006 - 0.5247421860694885 - <_> - - <_> - - - - <_>13 11 3 9 -1. - <_>13 14 3 3 3. - 0 - 0.0248307008296251 - 0.5182725787162781 - 0.3682524859905243 - <_> - - <_> - - - - <_>4 11 3 9 -1. - <_>4 14 3 3 3. - 0 - -0.0488540083169937 - 0.1307577937841415 - 0.4961281120777130 - <_> - - <_> - - - - <_>9 7 2 1 -1. - <_>9 7 1 1 2. - 0 - -1.6110379947349429e-003 - 0.6421005725860596 - 0.4872662127017975 - <_> - - <_> - - - - <_>5 0 6 17 -1. - <_>7 0 2 17 3. - 0 - -0.0970094799995422 - 0.0477693490684032 - 0.4950988888740540 - <_> - - <_> - - - - <_>10 3 6 3 -1. - <_>10 3 3 3 2. - 0 - 1.1209240183234215e-003 - 0.4616267085075378 - 0.5354745984077454 - <_> - - <_> - - - - <_>2 2 15 4 -1. - <_>7 2 5 4 3. - 0 - -1.3064090162515640e-003 - 0.6261854171752930 - 0.4638805985450745 - <_> - - <_> - - - - <_>8 2 8 2 -1. - <_>12 2 4 1 2. - <_>8 3 4 1 2. - 0 - 4.5771620352752507e-004 - 0.5384417772293091 - 0.4646640121936798 - <_> - - <_> - - - - <_>8 1 3 6 -1. - <_>8 3 3 2 3. - 0 - -6.3149951165542006e-004 - 0.3804047107696533 - 0.5130257010459900 - <_> - - <_> - - - - <_>9 17 2 2 -1. - <_>9 18 2 1 2. - 0 - 1.4505970466416329e-004 - 0.4554310142993927 - 0.5664461851119995 - <_> - - <_> - - - - <_>0 0 2 14 -1. - <_>1 0 1 14 2. - 0 - -0.0164745505899191 - 0.6596958041191101 - 0.4715859889984131 - <_> - - <_> - - - - <_>12 0 7 3 -1. - <_>12 1 7 1 3. - 0 - 0.0133695797994733 - 0.5195466279983521 - 0.3035964965820313 - <_> - - <_> - - - - <_>1 14 1 2 -1. - <_>1 15 1 1 2. - 0 - 1.0271780047332868e-004 - 0.5229176282882690 - 0.4107066094875336 - <_> - - <_> - - - - <_>14 12 2 8 -1. - <_>15 12 1 4 2. - <_>14 16 1 4 2. - 0 - -5.5311559699475765e-003 - 0.6352887749671936 - 0.4960907101631165 - <_> - - <_> - - - - <_>1 0 7 3 -1. - <_>1 1 7 1 3. - 0 - -2.6187049224972725e-003 - 0.3824546039104462 - 0.5140984058380127 - <_> - - <_> - - - - <_>14 12 2 8 -1. - <_>15 12 1 4 2. - <_>14 16 1 4 2. - 0 - 5.0834268331527710e-003 - 0.4950439929962158 - 0.6220818758010864 - <_> - - <_> - - - - <_>6 0 8 12 -1. - <_>6 0 4 6 2. - <_>10 6 4 6 2. - 0 - 0.0798181593418121 - 0.4952335953712463 - 0.1322475969791412 - <_> - - <_> - - - - <_>6 1 8 9 -1. - <_>6 4 8 3 3. - 0 - -0.0992265865206718 - 0.7542728781700134 - 0.5008416771888733 - <_> - - <_> - - - - <_>5 2 2 2 -1. - <_>5 3 2 1 2. - 0 - -6.5174017800018191e-004 - 0.3699302971363068 - 0.5130121111869812 - <_> - - <_> - - - - <_>13 14 6 6 -1. - <_>16 14 3 3 2. - <_>13 17 3 3 2. - 0 - -0.0189968496561050 - 0.6689178943634033 - 0.4921202957630158 - <_> - - <_> - - - - <_>0 17 20 2 -1. - <_>0 17 10 1 2. - <_>10 18 10 1 2. - 0 - 0.0173468999564648 - 0.4983300864696503 - 0.1859198063611984 - <_> - - <_> - - - - <_>10 3 2 6 -1. - <_>11 3 1 3 2. - <_>10 6 1 3 2. - 0 - 5.5082101607695222e-004 - 0.4574424028396606 - 0.5522121787071228 - <_> - - <_> - - - - <_>5 12 6 2 -1. - <_>8 12 3 2 2. - 0 - 2.0056050270795822e-003 - 0.5131744742393494 - 0.3856469988822937 - <_> - - <_> - - - - <_>10 7 6 13 -1. - <_>10 7 3 13 2. - 0 - -7.7688191086053848e-003 - 0.4361700117588043 - 0.5434309244155884 - <_> - - <_> - - - - <_>5 15 10 5 -1. - <_>10 15 5 5 2. - 0 - 0.0508782789111137 - 0.4682720899581909 - 0.6840639710426331 - <_> - - <_> - - - - <_>10 4 4 10 -1. - <_>10 4 2 10 2. - 0 - -2.2901780903339386e-003 - 0.4329245090484619 - 0.5306099057197571 - <_> - - <_> - - - - <_>5 7 2 1 -1. - <_>6 7 1 1 2. - 0 - -1.5715380141045898e-004 - 0.5370057225227356 - 0.4378164112567902 - <_> - - <_> - - - - <_>10 3 6 7 -1. - <_>10 3 3 7 2. - 0 - 0.1051924005150795 - 0.5137274265289307 - 0.0673614665865898 - <_> - - <_> - - - - <_>4 3 6 7 -1. - <_>7 3 3 7 2. - 0 - 2.7198919560760260e-003 - 0.4112060964107513 - 0.5255665183067322 - <_> - - <_> - - - - <_>1 7 18 5 -1. - <_>7 7 6 5 3. - 0 - 0.0483377799391747 - 0.5404623746871948 - 0.4438967108726502 - <_> - - <_> - - - - <_>3 17 4 3 -1. - <_>5 17 2 3 2. - 0 - 9.5703761326149106e-004 - 0.4355969130992889 - 0.5399510860443115 - <_> - - <_> - - - - <_>8 14 12 6 -1. - <_>14 14 6 3 2. - <_>8 17 6 3 2. - 0 - -0.0253712590783834 - 0.5995175242424011 - 0.5031024813652039 - <_> - - <_> - - - - <_>0 13 20 4 -1. - <_>0 13 10 2 2. - <_>10 15 10 2 2. - 0 - 0.0524579510092735 - 0.4950287938117981 - 0.1398351043462753 - <_> - - <_> - - - - <_>4 5 14 2 -1. - <_>11 5 7 1 2. - <_>4 6 7 1 2. - 0 - -0.0123656298965216 - 0.6397299170494080 - 0.4964106082916260 - <_> - - <_> - - - - <_>1 2 10 12 -1. - <_>1 2 5 6 2. - <_>6 8 5 6 2. - 0 - -0.1458971947431564 - 0.1001669988036156 - 0.4946322143077850 - <_> - - <_> - - - - <_>6 1 14 3 -1. - <_>6 2 14 1 3. - 0 - -0.0159086007624865 - 0.3312329947948456 - 0.5208340883255005 - <_> - - <_> - - - - <_>8 16 2 3 -1. - <_>8 17 2 1 3. - 0 - 3.9486068999394774e-004 - 0.4406363964080811 - 0.5426102876663208 - <_> - - <_> - - - - <_>9 17 3 2 -1. - <_>10 17 1 2 3. - 0 - -5.2454001270234585e-003 - 0.2799589931964874 - 0.5189967155456543 - <_> - - <_> - - - - <_>5 15 4 2 -1. - <_>5 15 2 1 2. - <_>7 16 2 1 2. - 0 - -5.0421799533069134e-003 - 0.6987580060958862 - 0.4752142131328583 - <_> - - <_> - - - - <_>10 15 1 3 -1. - <_>10 16 1 1 3. - 0 - 2.9812189750373363e-003 - 0.4983288943767548 - 0.6307479739189148 - <_> - - <_> - - - - <_>8 16 4 4 -1. - <_>8 16 2 2 2. - <_>10 18 2 2 2. - 0 - -7.2884308174252510e-003 - 0.2982333004474640 - 0.5026869773864746 - <_> - - <_> - - - - <_>6 11 8 6 -1. - <_>6 14 8 3 2. - 0 - 1.5094350092113018e-003 - 0.5308442115783691 - 0.3832970857620239 - <_> - - <_> - - - - <_>2 13 5 2 -1. - <_>2 14 5 1 2. - 0 - -9.3340799212455750e-003 - 0.2037964016199112 - 0.4969817101955414 - <_> - - <_> - - - - <_>13 14 6 6 -1. - <_>16 14 3 3 2. - <_>13 17 3 3 2. - 0 - 0.0286671407520771 - 0.5025696754455566 - 0.6928027272224426 - <_> - - <_> - - - - <_>1 9 18 4 -1. - <_>7 9 6 4 3. - 0 - 0.1701968014240265 - 0.4960052967071533 - 0.1476442962884903 - <_> - - <_> - - - - <_>13 14 6 6 -1. - <_>16 14 3 3 2. - <_>13 17 3 3 2. - 0 - -3.2614478841423988e-003 - 0.5603063702583313 - 0.4826056063175201 - <_> - - <_> - - - - <_>0 2 1 6 -1. - <_>0 4 1 2 3. - 0 - 5.5769277969375253e-004 - 0.5205562114715576 - 0.4129633009433746 - <_> - - <_> - - - - <_>5 0 15 20 -1. - <_>5 10 15 10 2. - 0 - 0.3625833988189697 - 0.5221652984619141 - 0.3768612146377564 - <_> - - <_> - - - - <_>1 14 6 6 -1. - <_>1 14 3 3 2. - <_>4 17 3 3 2. - 0 - -0.0116151301190257 - 0.6022682785987854 - 0.4637489914894104 - <_> - - <_> - - - - <_>8 14 4 6 -1. - <_>10 14 2 3 2. - <_>8 17 2 3 2. - 0 - -4.0795197710394859e-003 - 0.4070447087287903 - 0.5337479114532471 - <_> - - <_> - - - - <_>7 11 2 1 -1. - <_>8 11 1 1 2. - 0 - 5.7204300537705421e-004 - 0.4601835012435913 - 0.5900393128395081 - <_> - - <_> - - - - <_>9 17 3 2 -1. - <_>10 17 1 2 3. - 0 - 6.7543348995968699e-004 - 0.5398252010345459 - 0.4345428943634033 - <_> - - <_> - - - - <_>8 17 3 2 -1. - <_>9 17 1 2 3. - 0 - 6.3295697327703238e-004 - 0.5201563239097595 - 0.4051358997821808 - <_> - - <_> - - - - <_>12 14 4 6 -1. - <_>14 14 2 3 2. - <_>12 17 2 3 2. - 0 - 1.2435320531949401e-003 - 0.4642387926578522 - 0.5547441244125366 - <_> - - <_> - - - - <_>4 14 4 6 -1. - <_>4 14 2 3 2. - <_>6 17 2 3 2. - 0 - -4.7363857738673687e-003 - 0.6198567152023315 - 0.4672552049160004 - <_> - - <_> - - - - <_>13 14 2 6 -1. - <_>14 14 1 3 2. - <_>13 17 1 3 2. - 0 - -6.4658462069928646e-003 - 0.6837332844734192 - 0.5019000768661499 - <_> - - <_> - - - - <_>5 14 2 6 -1. - <_>5 14 1 3 2. - <_>6 17 1 3 2. - 0 - 3.5017321351915598e-004 - 0.4344803094863892 - 0.5363622903823853 - <_> - - <_> - - - - <_>7 0 6 12 -1. - <_>7 4 6 4 3. - 0 - 1.5754920605104417e-004 - 0.4760079085826874 - 0.5732020735740662 - <_> - - <_> - - - - <_>0 7 12 2 -1. - <_>4 7 4 2 3. - 0 - 9.9774366244673729e-003 - 0.5090985894203186 - 0.3635039925575256 - <_> - - <_> - - - - <_>10 3 3 13 -1. - <_>11 3 1 13 3. - 0 - -4.1464529931545258e-004 - 0.5570064783096314 - 0.4593802094459534 - <_> - - <_> - - - - <_>7 3 3 13 -1. - <_>8 3 1 13 3. - 0 - -3.5888899583369493e-004 - 0.5356845855712891 - 0.4339134991168976 - <_> - - <_> - - - - <_>10 8 6 3 -1. - <_>10 9 6 1 3. - 0 - 4.0463250479660928e-004 - 0.4439803063869476 - 0.5436776876449585 - <_> - - <_> - - - - <_>3 11 3 2 -1. - <_>4 11 1 2 3. - 0 - -8.2184787606820464e-004 - 0.4042294919490814 - 0.5176299214363098 - <_> - - <_> - - - - <_>13 12 6 8 -1. - <_>16 12 3 4 2. - <_>13 16 3 4 2. - 0 - 5.9467419050633907e-003 - 0.4927651882171631 - 0.5633779764175415 - <_> - - <_> - - - - <_>7 6 6 5 -1. - <_>9 6 2 5 3. - 0 - -0.0217533893883228 - 0.8006293773651123 - 0.4800840914249420 - <_> - - <_> - - - - <_>17 11 2 7 -1. - <_>17 11 1 7 2. - 0 - -0.0145403798669577 - 0.3946054875850678 - 0.5182222723960877 - <_> - - <_> - - - - <_>3 13 8 2 -1. - <_>7 13 4 2 2. - 0 - -0.0405107699334621 - 0.0213249903172255 - 0.4935792982578278 - <_> - - <_> - - - - <_>6 9 8 3 -1. - <_>6 10 8 1 3. - 0 - -5.8458268176764250e-004 - 0.4012795984745026 - 0.5314025282859802 - <_> - - <_> - - - - <_>4 3 4 3 -1. - <_>4 4 4 1 3. - 0 - 5.5151800625026226e-003 - 0.4642418920993805 - 0.5896260738372803 - <_> - - <_> - - - - <_>11 3 4 3 -1. - <_>11 4 4 1 3. - 0 - -6.0626221820712090e-003 - 0.6502159237861633 - 0.5016477704048157 - <_> - - <_> - - - - <_>1 4 17 12 -1. - <_>1 8 17 4 3. - 0 - 0.0945358425378799 - 0.5264708995819092 - 0.4126827120780945 - <_> - - <_> - - - - <_>11 3 4 3 -1. - <_>11 4 4 1 3. - 0 - 4.7315051779150963e-003 - 0.4879199862480164 - 0.5892447829246521 - <_> - - <_> - - - - <_>4 8 6 3 -1. - <_>4 9 6 1 3. - 0 - -5.2571471314877272e-004 - 0.3917280137538910 - 0.5189412832260132 - <_> - - <_> - - - - <_>12 3 5 3 -1. - <_>12 4 5 1 3. - 0 - -2.5464049540460110e-003 - 0.5837599039077759 - 0.4985705912113190 - <_> - - <_> - - - - <_>1 11 2 7 -1. - <_>2 11 1 7 2. - 0 - -0.0260756891220808 - 0.1261983960866928 - 0.4955821931362152 - <_> - - <_> - - - - <_>15 12 2 8 -1. - <_>16 12 1 4 2. - <_>15 16 1 4 2. - 0 - -5.4779709316790104e-003 - 0.5722513794898987 - 0.5010265707969666 - <_> - - <_> - - - - <_>4 8 11 3 -1. - <_>4 9 11 1 3. - 0 - 5.1337741315364838e-003 - 0.5273262262344360 - 0.4226376116275787 - <_> - - <_> - - - - <_>9 13 6 2 -1. - <_>12 13 3 1 2. - <_>9 14 3 1 2. - 0 - 4.7944980906322598e-004 - 0.4450066983699799 - 0.5819587111473084 - <_> - - <_> - - - - <_>6 13 4 3 -1. - <_>6 14 4 1 3. - 0 - -2.1114079281687737e-003 - 0.5757653117179871 - 0.4511714875698090 - <_> - - <_> - - - - <_>9 12 3 3 -1. - <_>10 12 1 3 3. - 0 - -0.0131799904629588 - 0.1884381026029587 - 0.5160734057426453 - <_> - - <_> - - - - <_>5 3 3 3 -1. - <_>5 4 3 1 3. - 0 - -4.7968099825084209e-003 - 0.6589789986610413 - 0.4736118912696838 - <_> - - <_> - - - - <_>9 4 2 3 -1. - <_>9 5 2 1 3. - 0 - 6.7483168095350266e-003 - 0.5259429812431335 - 0.3356395065784454 - <_> - - <_> - - - - <_>0 2 16 3 -1. - <_>0 3 16 1 3. - 0 - 1.4623369788751006e-003 - 0.5355271100997925 - 0.4264092147350311 - <_> - - <_> - - - - <_>15 12 2 8 -1. - <_>16 12 1 4 2. - <_>15 16 1 4 2. - 0 - 4.7645159065723419e-003 - 0.5034406781196594 - 0.5786827802658081 - <_> - - <_> - - - - <_>3 12 2 8 -1. - <_>3 12 1 4 2. - <_>4 16 1 4 2. - 0 - 6.8066660314798355e-003 - 0.4756605029106140 - 0.6677829027175903 - <_> - - <_> - - - - <_>14 13 3 6 -1. - <_>14 15 3 2 3. - 0 - 3.6608621012419462e-003 - 0.5369611978530884 - 0.4311546981334686 - <_> - - <_> - - - - <_>3 13 3 6 -1. - <_>3 15 3 2 3. - 0 - 0.0214496403932571 - 0.4968641996383667 - 0.1888816058635712 - <_> - - <_> - - - - <_>6 5 10 2 -1. - <_>11 5 5 1 2. - <_>6 6 5 1 2. - 0 - 4.1678901761770248e-003 - 0.4930733144283295 - 0.5815368890762329 - <_> - - <_> - - - - <_>2 14 14 6 -1. - <_>2 17 14 3 2. - 0 - 8.6467564105987549e-003 - 0.5205205082893372 - 0.4132595062255859 - <_> - - <_> - - - - <_>10 14 1 3 -1. - <_>10 15 1 1 3. - 0 - -3.6114078829996288e-004 - 0.5483555197715759 - 0.4800927937030792 - <_> - - <_> - - - - <_>4 16 2 2 -1. - <_>4 16 1 1 2. - <_>5 17 1 1 2. - 0 - 1.0808729566633701e-003 - 0.4689902067184448 - 0.6041421294212341 - <_> - - <_> - - - - <_>10 6 2 3 -1. - <_>10 7 2 1 3. - 0 - 5.7719959877431393e-003 - 0.5171142220497131 - 0.3053277134895325 - <_> - - <_> - - - - <_>0 17 20 2 -1. - <_>0 17 10 1 2. - <_>10 18 10 1 2. - 0 - 1.5720770461484790e-003 - 0.5219978094100952 - 0.4178803861141205 - <_> - - <_> - - - - <_>13 6 1 3 -1. - <_>13 7 1 1 3. - 0 - -1.9307859474793077e-003 - 0.5860369801521301 - 0.4812920093536377 - <_> - - <_> - - - - <_>8 13 3 2 -1. - <_>9 13 1 2 3. - 0 - -7.8926272690296173e-003 - 0.1749276965856552 - 0.4971733987331390 - <_> - - <_> - - - - <_>12 2 3 3 -1. - <_>13 2 1 3 3. - 0 - -2.2224679123610258e-003 - 0.4342589080333710 - 0.5212848186492920 - <_> - - <_> - - - - <_>3 18 2 2 -1. - <_>3 18 1 1 2. - <_>4 19 1 1 2. - 0 - 1.9011989934369922e-003 - 0.4765186905860901 - 0.6892055273056030 - <_> - - <_> - - - - <_>9 16 3 4 -1. - <_>10 16 1 4 3. - 0 - 2.7576119173318148e-003 - 0.5262191295623779 - 0.4337486028671265 - <_> - - <_> - - - - <_>6 6 1 3 -1. - <_>6 7 1 1 3. - 0 - 5.1787449046969414e-003 - 0.4804069101810455 - 0.7843729257583618 - <_> - - <_> - - - - <_>13 1 5 2 -1. - <_>13 2 5 1 2. - 0 - -9.0273341629654169e-004 - 0.4120846986770630 - 0.5353423953056335 - <_> - - <_> - - - - <_>7 14 6 2 -1. - <_>7 14 3 1 2. - <_>10 15 3 1 2. - 0 - 5.1797959022223949e-003 - 0.4740372896194458 - 0.6425960063934326 - <_> - - <_> - - - - <_>11 3 3 4 -1. - <_>12 3 1 4 3. - 0 - -0.0101140001788735 - 0.2468792051076889 - 0.5175017714500427 - <_> - - <_> - - - - <_>1 13 12 6 -1. - <_>5 13 4 6 3. - 0 - -0.0186170600354671 - 0.5756294131278992 - 0.4628978967666626 - <_> - - <_> - - - - <_>14 11 5 2 -1. - <_>14 12 5 1 2. - 0 - 5.9225959703326225e-003 - 0.5169625878334045 - 0.3214271068572998 - <_> - - <_> - - - - <_>2 15 14 4 -1. - <_>2 15 7 2 2. - <_>9 17 7 2 2. - 0 - -6.2945079989731312e-003 - 0.3872014880180359 - 0.5141636729240418 - <_> - - <_> - - - - <_>3 7 14 2 -1. - <_>10 7 7 1 2. - <_>3 8 7 1 2. - 0 - 6.5353019163012505e-003 - 0.4853048920631409 - 0.6310489773750305 - <_> - - <_> - - - - <_>1 11 4 2 -1. - <_>1 12 4 1 2. - 0 - 1.0878399480134249e-003 - 0.5117315053939819 - 0.3723258972167969 - <_> - - <_> - - - - <_>14 0 6 14 -1. - <_>16 0 2 14 3. - 0 - -0.0225422400981188 - 0.5692740082740784 - 0.4887112975120544 - <_> - - <_> - - - - <_>4 11 1 3 -1. - <_>4 12 1 1 3. - 0 - -3.0065660830587149e-003 - 0.2556012868881226 - 0.5003992915153503 - <_> - - <_> - - - - <_>14 0 6 14 -1. - <_>16 0 2 14 3. - 0 - 7.4741272255778313e-003 - 0.4810872972011566 - 0.5675926804542542 - <_> - - <_> - - - - <_>1 10 3 7 -1. - <_>2 10 1 7 3. - 0 - 0.0261623207479715 - 0.4971194863319397 - 0.1777237057685852 - <_> - - <_> - - - - <_>8 12 9 2 -1. - <_>8 13 9 1 2. - 0 - 9.4352738233283162e-004 - 0.4940010905265808 - 0.5491250753402710 - <_> - - <_> - - - - <_>0 6 20 1 -1. - <_>10 6 10 1 2. - 0 - 0.0333632417023182 - 0.5007612109184265 - 0.2790724039077759 - <_> - - <_> - - - - <_>8 4 4 4 -1. - <_>8 4 2 4 2. - 0 - -0.0151186501607299 - 0.7059578895568848 - 0.4973031878471375 - <_> - - <_> - - - - <_>0 0 2 2 -1. - <_>0 1 2 1 2. - 0 - 9.8648946732282639e-004 - 0.5128620266914368 - 0.3776761889457703 - 104.7491989135742200 - 19 - -1 - <_> - - - <_> - - <_> - - - - <_>5 3 10 9 -1. - <_>5 6 10 3 3. - 0 - -0.0951507985591888 - 0.6470757126808167 - 0.4017286896705627 - <_> - - <_> - - - - <_>15 2 4 10 -1. - <_>15 2 2 10 2. - 0 - 6.2702340073883533e-003 - 0.3999822139739990 - 0.5746449232101440 - <_> - - <_> - - - - <_>8 2 2 7 -1. - <_>9 2 1 7 2. - 0 - 3.0018089455552399e-004 - 0.3558770120143890 - 0.5538809895515442 - <_> - - <_> - - - - <_>7 4 12 1 -1. - <_>11 4 4 1 3. - 0 - 1.1757409665733576e-003 - 0.4256534874439240 - 0.5382617712020874 - <_> - - <_> - - - - <_>3 4 9 1 -1. - <_>6 4 3 1 3. - 0 - 4.4235268433112651e-005 - 0.3682908117771149 - 0.5589926838874817 - <_> - - <_> - - - - <_>15 10 1 4 -1. - <_>15 12 1 2 2. - 0 - -2.9936920327600092e-005 - 0.5452470183372498 - 0.4020367860794067 - <_> - - <_> - - - - <_>4 10 6 4 -1. - <_>7 10 3 4 2. - 0 - 3.0073199886828661e-003 - 0.5239058136940002 - 0.3317843973636627 - <_> - - <_> - - - - <_>15 9 1 6 -1. - <_>15 12 1 3 2. - 0 - -0.0105138896033168 - 0.4320689141750336 - 0.5307983756065369 - <_> - - <_> - - - - <_>7 17 6 3 -1. - <_>7 18 6 1 3. - 0 - 8.3476826548576355e-003 - 0.4504637122154236 - 0.6453298926353455 - <_> - - <_> - - - - <_>14 3 2 16 -1. - <_>15 3 1 8 2. - <_>14 11 1 8 2. - 0 - -3.1492270063608885e-003 - 0.4313425123691559 - 0.5370525121688843 - <_> - - <_> - - - - <_>4 9 1 6 -1. - <_>4 12 1 3 2. - 0 - -1.4435649973165710e-005 - 0.5326603055000305 - 0.3817971944808960 - <_> - - <_> - - - - <_>12 1 5 2 -1. - <_>12 2 5 1 2. - 0 - -4.2855090578086674e-004 - 0.4305163919925690 - 0.5382009744644165 - <_> - - <_> - - - - <_>6 18 4 2 -1. - <_>6 18 2 1 2. - <_>8 19 2 1 2. - 0 - 1.5062429883982986e-004 - 0.4235970973968506 - 0.5544965267181397 - <_> - - <_> - - - - <_>2 4 16 10 -1. - <_>10 4 8 5 2. - <_>2 9 8 5 2. - 0 - 0.0715598315000534 - 0.5303059816360474 - 0.2678802907466888 - <_> - - <_> - - - - <_>6 5 1 10 -1. - <_>6 10 1 5 2. - 0 - 8.4095180500298738e-004 - 0.3557108938694000 - 0.5205433964729309 - <_> - - <_> - - - - <_>4 8 15 2 -1. - <_>9 8 5 2 3. - 0 - 0.0629865005612373 - 0.5225362777709961 - 0.2861376106739044 - <_> - - <_> - - - - <_>1 8 15 2 -1. - <_>6 8 5 2 3. - 0 - -3.3798629883676767e-003 - 0.3624185919761658 - 0.5201697945594788 - <_> - - <_> - - - - <_>9 5 3 6 -1. - <_>9 7 3 2 3. - 0 - -1.1810739670181647e-004 - 0.5474476814270020 - 0.3959893882274628 - <_> - - <_> - - - - <_>5 7 8 2 -1. - <_>9 7 4 2 2. - 0 - -5.4505601292476058e-004 - 0.3740422129631043 - 0.5215715765953064 - <_> - - <_> - - - - <_>9 11 2 3 -1. - <_>9 12 2 1 3. - 0 - -1.8454910023137927e-003 - 0.5893052220344544 - 0.4584448933601379 - <_> - - <_> - - - - <_>1 0 16 3 -1. - <_>1 1 16 1 3. - 0 - -4.3832371011376381e-004 - 0.4084582030773163 - 0.5385351181030273 - <_> - - <_> - - - - <_>11 2 7 2 -1. - <_>11 3 7 1 2. - 0 - -2.4000830017030239e-003 - 0.3777455091476440 - 0.5293580293655396 - <_> - - <_> - - - - <_>5 1 10 18 -1. - <_>5 7 10 6 3. - 0 - -0.0987957417964935 - 0.2963612079620361 - 0.5070089101791382 - <_> - - <_> - - - - <_>17 4 3 2 -1. - <_>18 4 1 2 3. - 0 - 3.1798239797353745e-003 - 0.4877632856369019 - 0.6726443767547607 - <_> - - <_> - - - - <_>8 13 1 3 -1. - <_>8 14 1 1 3. - 0 - 3.2406419632025063e-004 - 0.4366911053657532 - 0.5561109781265259 - <_> - - <_> - - - - <_>3 14 14 6 -1. - <_>3 16 14 2 3. - 0 - -0.0325472503900528 - 0.3128157854080200 - 0.5308616161346436 - <_> - - <_> - - - - <_>0 2 3 4 -1. - <_>1 2 1 4 3. - 0 - -7.7561130747199059e-003 - 0.6560224890708923 - 0.4639872014522553 - <_> - - <_> - - - - <_>12 1 5 2 -1. - <_>12 2 5 1 2. - 0 - 0.0160272493958473 - 0.5172680020332336 - 0.3141897916793823 - <_> - - <_> - - - - <_>3 1 5 2 -1. - <_>3 2 5 1 2. - 0 - 7.1002350523485802e-006 - 0.4084446132183075 - 0.5336294770240784 - <_> - - <_> - - - - <_>10 13 2 3 -1. - <_>10 14 2 1 3. - 0 - 7.3422808200120926e-003 - 0.4966922104358673 - 0.6603465080261231 - <_> - - <_> - - - - <_>8 13 2 3 -1. - <_>8 14 2 1 3. - 0 - -1.6970280557870865e-003 - 0.5908237099647522 - 0.4500182867050171 - <_> - - <_> - - - - <_>14 12 2 3 -1. - <_>14 13 2 1 3. - 0 - 2.4118260480463505e-003 - 0.5315160751342773 - 0.3599720895290375 - <_> - - <_> - - - - <_>7 2 2 3 -1. - <_>7 3 2 1 3. - 0 - -5.5300937965512276e-003 - 0.2334040999412537 - 0.4996814131736755 - <_> - - <_> - - - - <_>5 6 10 4 -1. - <_>10 6 5 2 2. - <_>5 8 5 2 2. - 0 - -2.6478730142116547e-003 - 0.5880935788154602 - 0.4684734046459198 - <_> - - <_> - - - - <_>9 13 1 6 -1. - <_>9 16 1 3 2. - 0 - 0.0112956296652555 - 0.4983777105808258 - 0.1884590983390808 - <_> - - <_> - - - - <_>10 12 2 2 -1. - <_>11 12 1 1 2. - <_>10 13 1 1 2. - 0 - -6.6952878842130303e-004 - 0.5872138142585754 - 0.4799019992351532 - <_> - - <_> - - - - <_>4 12 2 3 -1. - <_>4 13 2 1 3. - 0 - 1.4410680159926414e-003 - 0.5131189227104187 - 0.3501011133193970 - <_> - - <_> - - - - <_>14 4 6 6 -1. - <_>14 6 6 2 3. - 0 - 2.4637870956212282e-003 - 0.5339372158050537 - 0.4117639064788818 - <_> - - <_> - - - - <_>8 17 2 3 -1. - <_>8 18 2 1 3. - 0 - 3.3114518737420440e-004 - 0.4313383102416992 - 0.5398246049880981 - <_> - - <_> - - - - <_>16 4 4 6 -1. - <_>16 6 4 2 3. - 0 - -0.0335572697222233 - 0.2675336897373200 - 0.5179154872894287 - <_> - - <_> - - - - <_>0 4 4 6 -1. - <_>0 6 4 2 3. - 0 - 0.0185394193977118 - 0.4973869919776917 - 0.2317177057266235 - <_> - - <_> - - - - <_>14 6 2 3 -1. - <_>14 6 1 3 2. - 0 - -2.9698139405809343e-004 - 0.5529708266258240 - 0.4643664062023163 - <_> - - <_> - - - - <_>4 9 8 1 -1. - <_>8 9 4 1 2. - 0 - -4.5577259152196348e-004 - 0.5629584193229675 - 0.4469191133975983 - <_> - - <_> - - - - <_>8 12 4 3 -1. - <_>8 13 4 1 3. - 0 - -0.0101589802652597 - 0.6706212759017944 - 0.4925918877124786 - <_> - - <_> - - - - <_>5 12 10 6 -1. - <_>5 14 10 2 3. - 0 - -2.2413829356082715e-005 - 0.5239421725273132 - 0.3912901878356934 - <_> - - <_> - - - - <_>11 12 1 2 -1. - <_>11 13 1 1 2. - 0 - 7.2034963523037732e-005 - 0.4799438118934631 - 0.5501788854598999 - <_> - - <_> - - - - <_>8 15 4 2 -1. - <_>8 16 4 1 2. - 0 - -6.9267209619283676e-003 - 0.6930009722709656 - 0.4698084890842438 - <_> - - <_> - - - - <_>6 9 8 8 -1. - <_>10 9 4 4 2. - <_>6 13 4 4 2. - 0 - -7.6997838914394379e-003 - 0.4099623858928680 - 0.5480883121490479 - <_> - - <_> - - - - <_>7 12 4 6 -1. - <_>7 12 2 3 2. - <_>9 15 2 3 2. - 0 - -7.3130549862980843e-003 - 0.3283475935459137 - 0.5057886242866516 - <_> - - <_> - - - - <_>10 11 3 1 -1. - <_>11 11 1 1 3. - 0 - 1.9650589674711227e-003 - 0.4978047013282776 - 0.6398249864578247 - <_> - - <_> - - - - <_>9 7 2 10 -1. - <_>9 7 1 5 2. - <_>10 12 1 5 2. - 0 - 7.1647600270807743e-003 - 0.4661160111427307 - 0.6222137212753296 - <_> - - <_> - - - - <_>8 0 6 6 -1. - <_>10 0 2 6 3. - 0 - -0.0240786392241716 - 0.2334644943475723 - 0.5222162008285523 - <_> - - <_> - - - - <_>3 11 2 6 -1. - <_>3 13 2 2 3. - 0 - -0.0210279691964388 - 0.1183653995394707 - 0.4938226044178009 - <_> - - <_> - - - - <_>16 12 1 2 -1. - <_>16 13 1 1 2. - 0 - 3.6017020465806127e-004 - 0.5325019955635071 - 0.4116711020469666 - <_> - - <_> - - - - <_>1 14 6 6 -1. - <_>1 14 3 3 2. - <_>4 17 3 3 2. - 0 - -0.0172197297215462 - 0.6278762221336365 - 0.4664269089698792 - <_> - - <_> - - - - <_>13 1 3 6 -1. - <_>14 1 1 6 3. - 0 - -7.8672142699360847e-003 - 0.3403415083885193 - 0.5249736905097961 - <_> - - <_> - - - - <_>8 8 2 2 -1. - <_>8 9 2 1 2. - 0 - -4.4777389848604798e-004 - 0.3610411882400513 - 0.5086259245872498 - <_> - - <_> - - - - <_>9 9 3 3 -1. - <_>10 9 1 3 3. - 0 - 5.5486010387539864e-003 - 0.4884265959262848 - 0.6203498244285584 - <_> - - <_> - - - - <_>8 7 3 3 -1. - <_>8 8 3 1 3. - 0 - -6.9461148232221603e-003 - 0.2625930011272430 - 0.5011097192764282 - <_> - - <_> - - - - <_>14 0 2 3 -1. - <_>14 0 1 3 2. - 0 - 1.3569870498031378e-004 - 0.4340794980525971 - 0.5628312230110169 - <_> - - <_> - - - - <_>1 0 18 9 -1. - <_>7 0 6 9 3. - 0 - -0.0458802506327629 - 0.6507998704910278 - 0.4696274995803833 - <_> - - <_> - - - - <_>11 5 4 15 -1. - <_>11 5 2 15 2. - 0 - -0.0215825606137514 - 0.3826502859592438 - 0.5287616848945618 - <_> - - <_> - - - - <_>5 5 4 15 -1. - <_>7 5 2 15 2. - 0 - -0.0202095396816731 - 0.3233368098735809 - 0.5074477195739746 - <_> - - <_> - - - - <_>14 0 2 3 -1. - <_>14 0 1 3 2. - 0 - 5.8496710844337940e-003 - 0.5177603960037231 - 0.4489670991897583 - <_> - - <_> - - - - <_>4 0 2 3 -1. - <_>5 0 1 3 2. - 0 - -5.7476379879517481e-005 - 0.4020850956439972 - 0.5246363878250122 - <_> - - <_> - - - - <_>11 12 2 2 -1. - <_>12 12 1 1 2. - <_>11 13 1 1 2. - 0 - -1.1513100471347570e-003 - 0.6315072178840637 - 0.4905154109001160 - <_> - - <_> - - - - <_>7 12 2 2 -1. - <_>7 12 1 1 2. - <_>8 13 1 1 2. - 0 - 1.9862831104546785e-003 - 0.4702459871768951 - 0.6497151255607605 - <_> - - <_> - - - - <_>12 0 3 4 -1. - <_>13 0 1 4 3. - 0 - -5.2719512023031712e-003 - 0.3650383949279785 - 0.5227652788162231 - <_> - - <_> - - - - <_>4 11 3 3 -1. - <_>4 12 3 1 3. - 0 - 1.2662699446082115e-003 - 0.5166100859642029 - 0.3877618014812470 - <_> - - <_> - - - - <_>12 7 4 2 -1. - <_>12 8 4 1 2. - 0 - -6.2919440679252148e-003 - 0.7375894188880920 - 0.5023847818374634 - <_> - - <_> - - - - <_>8 10 3 2 -1. - <_>9 10 1 2 3. - 0 - 6.7360111279413104e-004 - 0.4423226118087769 - 0.5495585799217224 - <_> - - <_> - - - - <_>9 9 3 2 -1. - <_>10 9 1 2 3. - 0 - -1.0523450328037143e-003 - 0.5976396203041077 - 0.4859583079814911 - <_> - - <_> - - - - <_>8 9 3 2 -1. - <_>9 9 1 2 3. - 0 - -4.4216238893568516e-004 - 0.5955939292907715 - 0.4398930966854096 - <_> - - <_> - - - - <_>12 0 3 4 -1. - <_>13 0 1 4 3. - 0 - 1.1747940443456173e-003 - 0.5349888205528259 - 0.4605058133602142 - <_> - - <_> - - - - <_>5 0 3 4 -1. - <_>6 0 1 4 3. - 0 - 5.2457437850534916e-003 - 0.5049191117286682 - 0.2941577136516571 - <_> - - <_> - - - - <_>4 14 12 4 -1. - <_>10 14 6 2 2. - <_>4 16 6 2 2. - 0 - -0.0245397202670574 - 0.2550177872180939 - 0.5218586921691895 - <_> - - <_> - - - - <_>8 13 2 3 -1. - <_>8 14 2 1 3. - 0 - 7.3793041519820690e-004 - 0.4424861073493958 - 0.5490816235542297 - <_> - - <_> - - - - <_>10 10 3 8 -1. - <_>10 14 3 4 2. - 0 - 1.4233799884095788e-003 - 0.5319514274597168 - 0.4081355929374695 - <_> - - <_> - - - - <_>8 10 4 8 -1. - <_>8 10 2 4 2. - <_>10 14 2 4 2. - 0 - -2.4149110540747643e-003 - 0.4087659120559692 - 0.5238950252532959 - <_> - - <_> - - - - <_>10 8 3 1 -1. - <_>11 8 1 1 3. - 0 - -1.2165299849584699e-003 - 0.5674579143524170 - 0.4908052980899811 - <_> - - <_> - - - - <_>9 12 1 6 -1. - <_>9 15 1 3 2. - 0 - -1.2438809499144554e-003 - 0.4129425883293152 - 0.5256118178367615 - <_> - - <_> - - - - <_>10 8 3 1 -1. - <_>11 8 1 1 3. - 0 - 6.1942739412188530e-003 - 0.5060194134712219 - 0.7313653230667114 - <_> - - <_> - - - - <_>7 8 3 1 -1. - <_>8 8 1 1 3. - 0 - -1.6607169527560472e-003 - 0.5979632139205933 - 0.4596369862556458 - <_> - - <_> - - - - <_>5 2 15 14 -1. - <_>5 9 15 7 2. - 0 - -0.0273162592202425 - 0.4174365103244782 - 0.5308842062950134 - <_> - - <_> - - - - <_>2 1 2 10 -1. - <_>2 1 1 5 2. - <_>3 6 1 5 2. - 0 - -1.5845570014789701e-003 - 0.5615804791450501 - 0.4519486129283905 - <_> - - <_> - - - - <_>14 14 2 3 -1. - <_>14 15 2 1 3. - 0 - -1.5514739789068699e-003 - 0.4076187014579773 - 0.5360785126686096 - <_> - - <_> - - - - <_>2 7 3 3 -1. - <_>3 7 1 3 3. - 0 - 3.8446558755822480e-004 - 0.4347293972969055 - 0.5430442094802856 - <_> - - <_> - - - - <_>17 4 3 3 -1. - <_>17 5 3 1 3. - 0 - -0.0146722598001361 - 0.1659304946660996 - 0.5146093964576721 - <_> - - <_> - - - - <_>0 4 3 3 -1. - <_>0 5 3 1 3. - 0 - 8.1608882173895836e-003 - 0.4961819052696228 - 0.1884745955467224 - <_> - - <_> - - - - <_>13 5 6 2 -1. - <_>16 5 3 1 2. - <_>13 6 3 1 2. - 0 - 1.1121659772470593e-003 - 0.4868263900279999 - 0.6093816161155701 - <_> - - <_> - - - - <_>4 19 12 1 -1. - <_>8 19 4 1 3. - 0 - -7.2603770531713963e-003 - 0.6284325122833252 - 0.4690375924110413 - <_> - - <_> - - - - <_>12 12 2 4 -1. - <_>12 14 2 2 2. - 0 - -2.4046430189628154e-004 - 0.5575000047683716 - 0.4046044051647186 - <_> - - <_> - - - - <_>3 15 1 3 -1. - <_>3 16 1 1 3. - 0 - -2.3348190006799996e-004 - 0.4115762114524841 - 0.5252848267555237 - <_> - - <_> - - - - <_>11 16 6 4 -1. - <_>11 16 3 4 2. - 0 - 5.5736480280756950e-003 - 0.4730072915554047 - 0.5690100789070129 - <_> - - <_> - - - - <_>2 10 3 10 -1. - <_>3 10 1 10 3. - 0 - 0.0306237693876028 - 0.4971886873245239 - 0.1740095019340515 - <_> - - <_> - - - - <_>12 8 2 4 -1. - <_>12 8 1 4 2. - 0 - 9.2074798885732889e-004 - 0.5372117757797241 - 0.4354872107505798 - <_> - - <_> - - - - <_>6 8 2 4 -1. - <_>7 8 1 4 2. - 0 - -4.3550739064812660e-005 - 0.5366883873939514 - 0.4347316920757294 - <_> - - <_> - - - - <_>10 14 2 3 -1. - <_>10 14 1 3 2. - 0 - -6.6452710889279842e-003 - 0.3435518145561218 - 0.5160533189773560 - <_> - - <_> - - - - <_>5 1 10 3 -1. - <_>10 1 5 3 2. - 0 - 0.0432219989597797 - 0.4766792058944702 - 0.7293652892112732 - <_> - - <_> - - - - <_>10 7 3 2 -1. - <_>11 7 1 2 3. - 0 - 2.2331769578158855e-003 - 0.5029315948486328 - 0.5633171200752258 - <_> - - <_> - - - - <_>5 6 9 2 -1. - <_>8 6 3 2 3. - 0 - 3.1829739455133677e-003 - 0.4016092121601105 - 0.5192136764526367 - <_> - - <_> - - - - <_>9 8 2 2 -1. - <_>9 9 2 1 2. - 0 - -1.8027749320026487e-004 - 0.4088315963745117 - 0.5417919754981995 - <_> - - <_> - - - - <_>2 11 16 6 -1. - <_>2 11 8 3 2. - <_>10 14 8 3 2. - 0 - -5.2934689447283745e-003 - 0.4075677096843720 - 0.5243561863899231 - <_> - - <_> - - - - <_>12 7 2 2 -1. - <_>13 7 1 1 2. - <_>12 8 1 1 2. - 0 - 1.2750959722325206e-003 - 0.4913282990455627 - 0.6387010812759399 - <_> - - <_> - - - - <_>9 5 2 3 -1. - <_>9 6 2 1 3. - 0 - 4.3385322205722332e-003 - 0.5031672120094299 - 0.2947346866130829 - <_> - - <_> - - - - <_>9 7 3 2 -1. - <_>10 7 1 2 3. - 0 - 8.5250744596123695e-003 - 0.4949789047241211 - 0.6308869123458862 - <_> - - <_> - - - - <_>5 1 8 12 -1. - <_>5 7 8 6 2. - 0 - -9.4266352243721485e-004 - 0.5328366756439209 - 0.4285649955272675 - <_> - - <_> - - - - <_>13 5 2 2 -1. - <_>13 6 2 1 2. - 0 - 1.3609660090878606e-003 - 0.4991525113582611 - 0.5941501259803772 - <_> - - <_> - - - - <_>5 5 2 2 -1. - <_>5 6 2 1 2. - 0 - 4.4782509212382138e-004 - 0.4573504030704498 - 0.5854480862617493 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - 1.3360050506889820e-003 - 0.4604358971118927 - 0.5849052071571350 - <_> - - <_> - - - - <_>4 14 2 3 -1. - <_>4 15 2 1 3. - 0 - -6.0967548051849008e-004 - 0.3969388902187347 - 0.5229423046112061 - <_> - - <_> - - - - <_>12 4 3 3 -1. - <_>12 5 3 1 3. - 0 - -2.3656780831515789e-003 - 0.5808320045471191 - 0.4898357093334198 - <_> - - <_> - - - - <_>5 4 3 3 -1. - <_>5 5 3 1 3. - 0 - 1.0734340175986290e-003 - 0.4351210892200470 - 0.5470039248466492 - <_> - - <_> - - - - <_>9 14 2 6 -1. - <_>10 14 1 3 2. - <_>9 17 1 3 2. - 0 - 2.1923359017819166e-003 - 0.5355060100555420 - 0.3842903971672058 - <_> - - <_> - - - - <_>8 14 3 2 -1. - <_>9 14 1 2 3. - 0 - 5.4968618787825108e-003 - 0.5018138885498047 - 0.2827191948890686 - <_> - - <_> - - - - <_>9 5 6 6 -1. - <_>11 5 2 6 3. - 0 - -0.0753688216209412 - 0.1225076019763947 - 0.5148826837539673 - <_> - - <_> - - - - <_>5 5 6 6 -1. - <_>7 5 2 6 3. - 0 - 0.0251344703137875 - 0.4731766879558563 - 0.7025446295738220 - <_> - - <_> - - - - <_>13 13 1 2 -1. - <_>13 14 1 1 2. - 0 - -2.9358599931583740e-005 - 0.5430532097816467 - 0.4656086862087250 - <_> - - <_> - - - - <_>0 2 10 2 -1. - <_>0 3 10 1 2. - 0 - -5.8355910005047917e-004 - 0.4031040072441101 - 0.5190119743347168 - <_> - - <_> - - - - <_>13 13 1 2 -1. - <_>13 14 1 1 2. - 0 - -2.6639450807124376e-003 - 0.4308126866817474 - 0.5161771178245544 - <_> - - <_> - - - - <_>5 7 2 2 -1. - <_>5 7 1 1 2. - <_>6 8 1 1 2. - 0 - -1.3804089976474643e-003 - 0.6219829916954041 - 0.4695515930652618 - <_> - - <_> - - - - <_>13 5 2 7 -1. - <_>13 5 1 7 2. - 0 - 1.2313219485804439e-003 - 0.5379363894462585 - 0.4425831139087677 - <_> - - <_> - - - - <_>6 13 1 2 -1. - <_>6 14 1 1 2. - 0 - -1.4644179827882908e-005 - 0.5281640291213989 - 0.4222503006458283 - <_> - - <_> - - - - <_>11 0 3 7 -1. - <_>12 0 1 7 3. - 0 - -0.0128188095986843 - 0.2582092881202698 - 0.5179932713508606 - <_> - - <_> - - - - <_>0 3 2 16 -1. - <_>0 3 1 8 2. - <_>1 11 1 8 2. - 0 - 0.0228521898388863 - 0.4778693020343781 - 0.7609264254570007 - <_> - - <_> - - - - <_>11 0 3 7 -1. - <_>12 0 1 7 3. - 0 - 8.2305970136076212e-004 - 0.5340992212295532 - 0.4671724140644074 - <_> - - <_> - - - - <_>6 0 3 7 -1. - <_>7 0 1 7 3. - 0 - 0.0127701200544834 - 0.4965761005878449 - 0.1472366005182266 - <_> - - <_> - - - - <_>11 16 8 4 -1. - <_>11 16 4 4 2. - 0 - -0.0500515103340149 - 0.6414994001388550 - 0.5016592144966126 - <_> - - <_> - - - - <_>1 16 8 4 -1. - <_>5 16 4 4 2. - 0 - 0.0157752707600594 - 0.4522320032119751 - 0.5685362219810486 - <_> - - <_> - - - - <_>13 5 2 7 -1. - <_>13 5 1 7 2. - 0 - -0.0185016207396984 - 0.2764748930931091 - 0.5137959122657776 - <_> - - <_> - - - - <_>5 5 2 7 -1. - <_>6 5 1 7 2. - 0 - 2.4626250378787518e-003 - 0.5141941905021668 - 0.3795408010482788 - <_> - - <_> - - - - <_>18 6 2 14 -1. - <_>18 13 2 7 2. - 0 - 0.0629161670804024 - 0.5060648918151856 - 0.6580433845520020 - <_> - - <_> - - - - <_>6 10 3 4 -1. - <_>6 12 3 2 2. - 0 - -2.1648500478477217e-005 - 0.5195388197898865 - 0.4019886851310730 - <_> - - <_> - - - - <_>14 7 1 2 -1. - <_>14 8 1 1 2. - 0 - 2.1180990152060986e-003 - 0.4962365031242371 - 0.5954458713531494 - <_> - - <_> - - - - <_>0 1 18 6 -1. - <_>0 1 9 3 2. - <_>9 4 9 3 2. - 0 - -0.0166348908096552 - 0.3757933080196381 - 0.5175446867942810 - <_> - - <_> - - - - <_>14 7 1 2 -1. - <_>14 8 1 1 2. - 0 - -2.8899470344185829e-003 - 0.6624013781547546 - 0.5057178735733032 - <_> - - <_> - - - - <_>0 6 2 14 -1. - <_>0 13 2 7 2. - 0 - 0.0767832621932030 - 0.4795796871185303 - 0.8047714829444885 - <_> - - <_> - - - - <_>17 0 3 12 -1. - <_>18 0 1 12 3. - 0 - 3.9170677773654461e-003 - 0.4937882125377655 - 0.5719941854476929 - <_> - - <_> - - - - <_>0 6 18 3 -1. - <_>0 7 18 1 3. - 0 - -0.0726706013083458 - 0.0538945607841015 - 0.4943903982639313 - <_> - - <_> - - - - <_>6 0 14 16 -1. - <_>6 8 14 8 2. - 0 - 0.5403950214385986 - 0.5129774212837219 - 0.1143338978290558 - <_> - - <_> - - - - <_>0 0 3 12 -1. - <_>1 0 1 12 3. - 0 - 2.9510019812732935e-003 - 0.4528343975543976 - 0.5698574185371399 - <_> - - <_> - - - - <_>13 0 3 7 -1. - <_>14 0 1 7 3. - 0 - 3.4508369863033295e-003 - 0.5357726812362671 - 0.4218730926513672 - <_> - - <_> - - - - <_>5 7 1 2 -1. - <_>5 8 1 1 2. - 0 - -4.2077939724549651e-004 - 0.5916172862052918 - 0.4637925922870636 - <_> - - <_> - - - - <_>14 4 6 6 -1. - <_>14 6 6 2 3. - 0 - 3.3051050268113613e-003 - 0.5273385047912598 - 0.4382042884826660 - <_> - - <_> - - - - <_>5 7 7 2 -1. - <_>5 8 7 1 2. - 0 - 4.7735060798004270e-004 - 0.4046528041362763 - 0.5181884765625000 - <_> - - <_> - - - - <_>8 6 6 9 -1. - <_>8 9 6 3 3. - 0 - -0.0259285103529692 - 0.7452235817909241 - 0.5089386105537415 - <_> - - <_> - - - - <_>5 4 6 1 -1. - <_>7 4 2 1 3. - 0 - -2.9729790985584259e-003 - 0.3295435905456543 - 0.5058795213699341 - <_> - - <_> - - - - <_>13 0 6 4 -1. - <_>16 0 3 2 2. - <_>13 2 3 2 2. - 0 - 5.8508329093456268e-003 - 0.4857144057750702 - 0.5793024897575378 - <_> - - <_> - - - - <_>1 2 18 12 -1. - <_>1 6 18 4 3. - 0 - -0.0459675192832947 - 0.4312731027603149 - 0.5380653142929077 - <_> - - <_> - - - - <_>3 2 17 12 -1. - <_>3 6 17 4 3. - 0 - 0.1558596044778824 - 0.5196170210838318 - 0.1684713959693909 - <_> - - <_> - - - - <_>5 14 7 3 -1. - <_>5 15 7 1 3. - 0 - 0.0151648297905922 - 0.4735757112503052 - 0.6735026836395264 - <_> - - <_> - - - - <_>10 14 1 3 -1. - <_>10 15 1 1 3. - 0 - -1.0604249546304345e-003 - 0.5822926759719849 - 0.4775702953338623 - <_> - - <_> - - - - <_>3 14 3 3 -1. - <_>3 15 3 1 3. - 0 - 6.6476291976869106e-003 - 0.4999198913574219 - 0.2319535017013550 - <_> - - <_> - - - - <_>14 4 6 6 -1. - <_>14 6 6 2 3. - 0 - -0.0122311301529408 - 0.4750893115997315 - 0.5262982249259949 - <_> - - <_> - - - - <_>0 4 6 6 -1. - <_>0 6 6 2 3. - 0 - 5.6528882123529911e-003 - 0.5069767832756043 - 0.3561818897724152 - <_> - - <_> - - - - <_>12 5 4 3 -1. - <_>12 6 4 1 3. - 0 - 1.2977829901501536e-003 - 0.4875693917274475 - 0.5619062781333923 - <_> - - <_> - - - - <_>4 5 4 3 -1. - <_>4 6 4 1 3. - 0 - 0.0107815898954868 - 0.4750770032405853 - 0.6782308220863342 - <_> - - <_> - - - - <_>18 0 2 6 -1. - <_>18 2 2 2 3. - 0 - 2.8654779307544231e-003 - 0.5305461883544922 - 0.4290736019611359 - <_> - - <_> - - - - <_>8 1 4 9 -1. - <_>10 1 2 9 2. - 0 - 2.8663428965955973e-003 - 0.4518479108810425 - 0.5539351105690002 - <_> - - <_> - - - - <_>6 6 8 2 -1. - <_>6 6 4 2 2. - 0 - -5.1983320154249668e-003 - 0.4149119853973389 - 0.5434188842773438 - <_> - - <_> - - - - <_>6 5 4 2 -1. - <_>6 5 2 1 2. - <_>8 6 2 1 2. - 0 - 5.3739990107715130e-003 - 0.4717896878719330 - 0.6507657170295715 - <_> - - <_> - - - - <_>10 5 2 3 -1. - <_>10 6 2 1 3. - 0 - -0.0146415298804641 - 0.2172164022922516 - 0.5161777138710022 - <_> - - <_> - - - - <_>9 5 1 3 -1. - <_>9 6 1 1 3. - 0 - -1.5042580344015732e-005 - 0.5337383747100830 - 0.4298836886882782 - <_> - - <_> - - - - <_>9 10 2 2 -1. - <_>9 11 2 1 2. - 0 - -1.1875660129589960e-004 - 0.4604594111442566 - 0.5582447052001953 - <_> - - <_> - - - - <_>0 8 4 3 -1. - <_>0 9 4 1 3. - 0 - 0.0169955305755138 - 0.4945895075798035 - 0.0738800764083862 - <_> - - <_> - - - - <_>6 0 8 6 -1. - <_>6 3 8 3 2. - 0 - -0.0350959412753582 - 0.7005509138107300 - 0.4977591037750244 - <_> - - <_> - - - - <_>1 0 6 4 -1. - <_>1 0 3 2 2. - <_>4 2 3 2 2. - 0 - 2.4217350874096155e-003 - 0.4466265141963959 - 0.5477694272994995 - <_> - - <_> - - - - <_>13 0 3 7 -1. - <_>14 0 1 7 3. - 0 - -9.6340337768197060e-004 - 0.4714098870754242 - 0.5313338041305542 - <_> - - <_> - - - - <_>9 16 2 2 -1. - <_>9 17 2 1 2. - 0 - 1.6391130338888615e-004 - 0.4331546127796173 - 0.5342242121696472 - <_> - - <_> - - - - <_>11 4 6 10 -1. - <_>11 9 6 5 2. - 0 - -0.0211414601653814 - 0.2644700109958649 - 0.5204498767852783 - <_> - - <_> - - - - <_>0 10 19 2 -1. - <_>0 11 19 1 2. - 0 - 8.7775202700868249e-004 - 0.5208349823951721 - 0.4152742922306061 - <_> - - <_> - - - - <_>9 5 8 9 -1. - <_>9 8 8 3 3. - 0 - -0.0279439203441143 - 0.6344125270843506 - 0.5018811821937561 - <_> - - <_> - - - - <_>4 0 3 7 -1. - <_>5 0 1 7 3. - 0 - 6.7297378554940224e-003 - 0.5050438046455383 - 0.3500863909721375 - <_> - - <_> - - - - <_>8 6 4 12 -1. - <_>10 6 2 6 2. - <_>8 12 2 6 2. - 0 - 0.0232810396701097 - 0.4966318011283875 - 0.6968677043914795 - <_> - - <_> - - - - <_>0 2 6 4 -1. - <_>0 4 6 2 2. - 0 - -0.0116449799388647 - 0.3300260007381439 - 0.5049629807472229 - <_> - - <_> - - - - <_>8 15 4 3 -1. - <_>8 16 4 1 3. - 0 - 0.0157643090933561 - 0.4991598129272461 - 0.7321153879165649 - <_> - - <_> - - - - <_>8 0 3 7 -1. - <_>9 0 1 7 3. - 0 - -1.3611479662358761e-003 - 0.3911735117435455 - 0.5160670876502991 - <_> - - <_> - - - - <_>9 5 3 4 -1. - <_>10 5 1 4 3. - 0 - -8.1522337859496474e-004 - 0.5628911256790161 - 0.4949719011783600 - <_> - - <_> - - - - <_>8 5 3 4 -1. - <_>9 5 1 4 3. - 0 - -6.0066272271797061e-004 - 0.5853595137596130 - 0.4550595879554749 - <_> - - <_> - - - - <_>7 6 6 1 -1. - <_>9 6 2 1 3. - 0 - 4.9715518252924085e-004 - 0.4271470010280609 - 0.5443599224090576 - <_> - - <_> - - - - <_>7 14 4 4 -1. - <_>7 14 2 2 2. - <_>9 16 2 2 2. - 0 - 2.3475370835512877e-003 - 0.5143110752105713 - 0.3887656927108765 - <_> - - <_> - - - - <_>13 14 4 6 -1. - <_>15 14 2 3 2. - <_>13 17 2 3 2. - 0 - -8.9261569082736969e-003 - 0.6044502258300781 - 0.4971720874309540 - <_> - - <_> - - - - <_>7 8 1 8 -1. - <_>7 12 1 4 2. - 0 - -0.0139199104160070 - 0.2583160996437073 - 0.5000367760658264 - <_> - - <_> - - - - <_>16 0 2 8 -1. - <_>17 0 1 4 2. - <_>16 4 1 4 2. - 0 - 1.0209949687123299e-003 - 0.4857374131679535 - 0.5560358166694641 - <_> - - <_> - - - - <_>2 0 2 8 -1. - <_>2 0 1 4 2. - <_>3 4 1 4 2. - 0 - -2.7441629208624363e-003 - 0.5936884880065918 - 0.4645777046680450 - <_> - - <_> - - - - <_>6 1 14 3 -1. - <_>6 2 14 1 3. - 0 - -0.0162001308053732 - 0.3163014948368073 - 0.5193495154380798 - <_> - - <_> - - - - <_>7 9 3 10 -1. - <_>7 14 3 5 2. - 0 - 4.3331980705261230e-003 - 0.5061224102973938 - 0.3458878993988037 - <_> - - <_> - - - - <_>9 14 2 2 -1. - <_>9 15 2 1 2. - 0 - 5.8497930876910686e-004 - 0.4779017865657806 - 0.5870177745819092 - <_> - - <_> - - - - <_>7 7 6 8 -1. - <_>7 11 6 4 2. - 0 - -2.2466450463980436e-003 - 0.4297851026058197 - 0.5374773144721985 - <_> - - <_> - - - - <_>9 7 3 6 -1. - <_>9 10 3 3 2. - 0 - 2.3146099410951138e-003 - 0.5438671708106995 - 0.4640969932079315 - <_> - - <_> - - - - <_>7 13 3 3 -1. - <_>7 14 3 1 3. - 0 - 8.7679121643304825e-003 - 0.4726893007755280 - 0.6771789789199829 - <_> - - <_> - - - - <_>9 9 2 2 -1. - <_>9 10 2 1 2. - 0 - -2.2448020172305405e-004 - 0.4229173064231873 - 0.5428048968315125 - <_> - - <_> - - - - <_>0 1 18 2 -1. - <_>6 1 6 2 3. - 0 - -7.4336021207273006e-003 - 0.6098880767822266 - 0.4683673977851868 - <_> - - <_> - - - - <_>7 1 6 14 -1. - <_>7 8 6 7 2. - 0 - -2.3189240600913763e-003 - 0.5689436793327332 - 0.4424242079257965 - <_> - - <_> - - - - <_>1 9 18 1 -1. - <_>7 9 6 1 3. - 0 - -2.1042178850620985e-003 - 0.3762221038341522 - 0.5187087059020996 - <_> - - <_> - - - - <_>9 7 2 2 -1. - <_>9 7 1 2 2. - 0 - 4.6034841216169298e-004 - 0.4699405133724213 - 0.5771207213401794 - <_> - - <_> - - - - <_>9 3 2 9 -1. - <_>10 3 1 9 2. - 0 - 1.0547629790380597e-003 - 0.4465216994285584 - 0.5601701736450195 - <_> - - <_> - - - - <_>18 14 2 3 -1. - <_>18 15 2 1 3. - 0 - 8.7148818420246243e-004 - 0.5449805259704590 - 0.3914709091186523 - <_> - - <_> - - - - <_>7 11 3 1 -1. - <_>8 11 1 1 3. - 0 - 3.3364820410497487e-004 - 0.4564009010791779 - 0.5645738840103149 - <_> - - <_> - - - - <_>10 8 3 4 -1. - <_>11 8 1 4 3. - 0 - -1.4853250468149781e-003 - 0.5747377872467041 - 0.4692778885364533 - <_> - - <_> - - - - <_>7 14 3 6 -1. - <_>8 14 1 6 3. - 0 - 3.0251620337367058e-003 - 0.5166196823120117 - 0.3762814104557037 - <_> - - <_> - - - - <_>10 8 3 4 -1. - <_>11 8 1 4 3. - 0 - 5.0280741415917873e-003 - 0.5002111792564392 - 0.6151527166366577 - <_> - - <_> - - - - <_>7 8 3 4 -1. - <_>8 8 1 4 3. - 0 - -5.8164511574432254e-004 - 0.5394598245620728 - 0.4390751123428345 - <_> - - <_> - - - - <_>7 9 6 9 -1. - <_>7 12 6 3 3. - 0 - 0.0451415292918682 - 0.5188326835632324 - 0.2063035964965820 - <_> - - <_> - - - - <_>0 14 2 3 -1. - <_>0 15 2 1 3. - 0 - -1.0795620037242770e-003 - 0.3904685080051422 - 0.5137907266616821 - <_> - - <_> - - - - <_>11 12 1 2 -1. - <_>11 13 1 1 2. - 0 - 1.5995999274309725e-004 - 0.4895322918891907 - 0.5427504181861877 - <_> - - <_> - - - - <_>4 3 8 3 -1. - <_>8 3 4 3 2. - 0 - -0.0193592701107264 - 0.6975228786468506 - 0.4773507118225098 - <_> - - <_> - - - - <_>0 4 20 6 -1. - <_>0 4 10 6 2. - 0 - 0.2072550952434540 - 0.5233635902404785 - 0.3034991919994354 - <_> - - <_> - - - - <_>9 14 1 3 -1. - <_>9 15 1 1 3. - 0 - -4.1953290929086506e-004 - 0.5419396758079529 - 0.4460186064243317 - <_> - - <_> - - - - <_>8 14 4 3 -1. - <_>8 15 4 1 3. - 0 - 2.2582069505006075e-003 - 0.4815764129161835 - 0.6027408838272095 - <_> - - <_> - - - - <_>0 15 14 4 -1. - <_>0 17 14 2 2. - 0 - -6.7811207845807076e-003 - 0.3980278968811035 - 0.5183305740356445 - <_> - - <_> - - - - <_>1 14 18 6 -1. - <_>1 17 18 3 2. - 0 - 0.0111543098464608 - 0.5431231856346130 - 0.4188759922981262 - <_> - - <_> - - - - <_>0 0 10 6 -1. - <_>0 0 5 3 2. - <_>5 3 5 3 2. - 0 - 0.0431624315679073 - 0.4738228023052216 - 0.6522961258888245 - 105.7611007690429700 - 20 - -1 - diff --git a/interface/resources/shaders/skin_voxels.vert b/interface/resources/shaders/skin_voxels.vert deleted file mode 100644 index c63b2e1b31..0000000000 --- a/interface/resources/shaders/skin_voxels.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 120 - -// -// skin_voxels.vert -// vertex shader -// -// Created by Andrzej Kapolka on 5/31/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -const int MAX_BONES = 32; -const int INDICES_PER_VERTEX = 4; - -uniform mat4 boneMatrices[MAX_BONES]; - -attribute vec4 boneIndices; -attribute vec4 boneWeights; - -void main(void) { - vec4 position = vec4(0.0, 0.0, 0.0, 0.0); - vec4 normal = vec4(0.0, 0.0, 0.0, 0.0); - for (int i = 0; i < INDICES_PER_VERTEX; i++) { - mat4 boneMatrix = boneMatrices[int(boneIndices[i])]; - float boneWeight = boneWeights[i]; - position += boneMatrix * gl_Vertex * boneWeight; - normal += boneMatrix * vec4(gl_Normal, 0.0) * boneWeight; - } - position = gl_ModelViewProjectionMatrix * position; - normal = normalize(gl_ModelViewMatrix * normal); - - gl_FrontColor = gl_Color * (gl_LightModel.ambient + gl_LightSource[0].ambient + - gl_LightSource[0].diffuse * max(0.0, dot(normal, gl_LightSource[0].position))); - gl_Position = position; -} From d85616d690f78f7e1fc34ad95010168592d63dad Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 16 Jan 2014 16:14:25 -0800 Subject: [PATCH 10/13] cleaup matching with node in addOrUpdateNode --- libraries/shared/src/NodeList.cpp | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/libraries/shared/src/NodeList.cpp b/libraries/shared/src/NodeList.cpp index 7b3364b0d8..06d2bbe05b 100644 --- a/libraries/shared/src/NodeList.cpp +++ b/libraries/shared/src/NodeList.cpp @@ -674,9 +674,9 @@ void NodeList::pingPublicAndLocalSocketsForInactiveNode(Node* node) { SharedNodePointer NodeList::addOrUpdateNode(const QUuid& uuid, char nodeType, const HifiSockAddr& publicSocket, const HifiSockAddr& localSocket) { - NodeHash::iterator matchingNodeItem = _nodeHash.find(uuid); - - if (matchingNodeItem == _nodeHash.end()) { + SharedNodePointer matchingNode = _nodeHash.value(uuid); + + if (!matchingNode) { // we didn't have this node, so add them Node* newNode = new Node(uuid, nodeType, publicSocket, localSocket); SharedNodePointer newNodeSharedPointer(newNode, &QObject::deleteLater); @@ -689,29 +689,28 @@ SharedNodePointer NodeList::addOrUpdateNode(const QUuid& uuid, char nodeType, return newNodeSharedPointer; } else { - SharedNodePointer node = matchingNodeItem.value(); - QMutexLocker(&node->getMutex()); + QMutexLocker(&matchingNode->getMutex()); - if (node->getType() == NODE_TYPE_AUDIO_MIXER || - node->getType() == NODE_TYPE_VOXEL_SERVER || - node->getType() == NODE_TYPE_METAVOXEL_SERVER) { + if (matchingNode->getType() == NODE_TYPE_AUDIO_MIXER || + matchingNode->getType() == NODE_TYPE_VOXEL_SERVER || + matchingNode->getType() == NODE_TYPE_METAVOXEL_SERVER) { // until the Audio class also uses our nodeList, we need to update // the lastRecvTimeUsecs for the audio mixer so it doesn't get killed and re-added continously - node->setLastHeardMicrostamp(usecTimestampNow()); + matchingNode->setLastHeardMicrostamp(usecTimestampNow()); } // check if we need to change this node's public or local sockets - if (publicSocket != node->getPublicSocket()) { - node->setPublicSocket(publicSocket); - qDebug() << "Public socket change for node" << *node; + if (publicSocket != matchingNode->getPublicSocket()) { + matchingNode->setPublicSocket(publicSocket); + qDebug() << "Public socket change for node" << *matchingNode; } - if (localSocket != node->getLocalSocket()) { - node->setLocalSocket(localSocket); - qDebug() << "Local socket change for node" << *node; + if (localSocket != matchingNode->getLocalSocket()) { + matchingNode->setLocalSocket(localSocket); + qDebug() << "Local socket change for node" << *matchingNode; } // we had this node already, do nothing for now - return node; + return matchingNode; } } From 0e7692dfea0e8b42fe1e1a5a7dfa53e8b28b1d02 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 16 Jan 2014 16:59:50 -0800 Subject: [PATCH 11/13] When the mouse is hidden, just look straight forward. --- interface/src/Application.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 8812a3c49d..71f8648d23 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2080,17 +2080,23 @@ void Application::updateMyAvatarLookAtPosition(glm::vec3& lookAtSpot, glm::vec3& bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings); PerformanceWarning warn(showWarnings, "Application::updateMyAvatarLookAtPosition()"); + const float FAR_AWAY_STARE = TREE_SCALE; if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { lookAtSpot = _myCamera.getPosition(); + } else if (_mouseHidden) { + // if the mouse cursor is hidden, just look straight ahead + glm::vec3 rayOrigin, rayDirection; + _viewFrustum.computePickRay(0.5f, 0.5f, rayOrigin, rayDirection); + lookAtSpot = rayOrigin + rayDirection * FAR_AWAY_STARE; + } else if (!_lookatTargetAvatar) { if (_isHoverVoxel) { // Look at the hovered voxel lookAtSpot = getMouseVoxelWorldCoordinates(_hoverVoxel); } else { - // Just look in direction of the mouse ray - const float FAR_AWAY_STARE = TREE_SCALE; + // Just look in direction of the mouse ray lookAtSpot = lookAtRayOrigin + lookAtRayDirection * FAR_AWAY_STARE; } } From 515cc5316cafa0253660fcf9aaffb4f2d7ba8be3 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 17 Jan 2014 10:54:44 -0800 Subject: [PATCH 12/13] Get rid of code to decay pitch on movement. --- interface/src/avatar/MyAvatar.cpp | 33 ++++++++++++------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 02e89c9df5..3c5fdb243f 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -180,29 +180,22 @@ void MyAvatar::simulate(float deltaTime, Transmitter* transmitter) { const float OCULUS_ACCELERATION_PULL_THRESHOLD = 1.0f; const int OCULUS_YAW_OFFSET_THRESHOLD = 10; - if (!Application::getInstance()->getFaceshift()->isActive()) { - // Decay HeadPitch as a function of acceleration, so that you look straight ahead when - // you start moving, but don't do this with an HMD like the Oculus. - if (!OculusManager::isConnected()) { - if (forwardAcceleration > ACCELERATION_PULL_THRESHOLD) { - _head.setMousePitch(_head.getMousePitch() * qMax(0.0f, - (1.f - forwardAcceleration * ACCELERATION_PITCH_DECAY * deltaTime))); - } - } else if (fabsf(forwardAcceleration) > OCULUS_ACCELERATION_PULL_THRESHOLD - && fabs(_head.getYaw()) > OCULUS_YAW_OFFSET_THRESHOLD) { - // if we're wearing the oculus - // and this acceleration is above the pull threshold - // and the head yaw if off the body by more than OCULUS_YAW_OFFSET_THRESHOLD + if (!Application::getInstance()->getFaceshift()->isActive() && OculusManager::isConnected() && + fabsf(forwardAcceleration) > OCULUS_ACCELERATION_PULL_THRESHOLD && + fabs(_head.getYaw()) > OCULUS_YAW_OFFSET_THRESHOLD) { + + // if we're wearing the oculus + // and this acceleration is above the pull threshold + // and the head yaw if off the body by more than OCULUS_YAW_OFFSET_THRESHOLD - // match the body yaw to the oculus yaw - _bodyYaw = getAbsoluteHeadYaw(); + // match the body yaw to the oculus yaw + _bodyYaw = getAbsoluteHeadYaw(); - // set the head yaw to zero for this draw - _head.setYaw(0); + // set the head yaw to zero for this draw + _head.setYaw(0); - // correct the oculus yaw offset - OculusManager::updateYawOffset(); - } + // correct the oculus yaw offset + OculusManager::updateYawOffset(); } const float WALKING_SPEED_THRESHOLD = 0.2f; From 7a4353428e4dd975aced8616663c25b9e0a3dd63 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 17 Jan 2014 11:05:26 -0800 Subject: [PATCH 13/13] Fixed eye rotations. --- interface/src/avatar/FaceModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/FaceModel.cpp b/interface/src/avatar/FaceModel.cpp index 61005481a8..d164d5c899 100644 --- a/interface/src/avatar/FaceModel.cpp +++ b/interface/src/avatar/FaceModel.cpp @@ -65,7 +65,7 @@ void FaceModel::maybeUpdateNeckRotation(const JointState& parentState, const FBX void FaceModel::maybeUpdateEyeRotation(const JointState& parentState, const FBXJoint& joint, JointState& state) { // likewise with the eye joints - glm::mat4 inverse = glm::inverse(parentState.transform * + glm::mat4 inverse = glm::inverse(parentState.transform * glm::translate(state.translation) * joint.preTransform * glm::mat4_cast(joint.preRotation * joint.rotation)); glm::vec3 front = glm::vec3(inverse * glm::vec4(_owningHead->getOrientation() * IDENTITY_FRONT, 0.0f)); glm::vec3 lookAt = glm::vec3(inverse * glm::vec4(_owningHead->getLookAtPosition() +