Showing preview only (1,230K chars total). Download the full file or copy to clipboard to get everything.
Repository: ZhiChen902/SC2-PCR
Branch: main
Commit: 19961eae0a47
Files: 31
Total size: 1.2 MB
Directory structure:
gitextract_aendpbmi/
├── .gitignore
├── 3DLoMatch.pkl
├── LICENSE
├── README.md
├── SC2_PCR.py
├── benchmark_utils.py
├── benchmark_utils_predator.py
├── benchmarks/
│ └── 3DLoMatch/
│ ├── 7-scenes-redkitchen/
│ │ └── gt.info
│ ├── sun3d-home_at-home_at_scan1_2013_jan_1/
│ │ └── gt.info
│ ├── sun3d-home_md-home_md_scan9_2012_sep_30/
│ │ └── gt.info
│ ├── sun3d-hotel_uc-scan3/
│ │ └── gt.info
│ ├── sun3d-hotel_umd-maryland_hotel1/
│ │ └── gt.info
│ ├── sun3d-hotel_umd-maryland_hotel3/
│ │ └── gt.info
│ ├── sun3d-mit_76_studyroom-76-1studyroom2/
│ │ └── gt.info
│ └── sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/
│ └── gt.info
├── common.py
├── config.py
├── config_json/
│ ├── config_3DLoMatch.json
│ ├── config_3DMatch.json
│ └── config_KITTI.json
├── dataset.py
├── environment.yml
├── evaluate_metric.py
├── test_3DLoMatch.py
├── test_3DMatch.py
├── test_KITTI.py
└── utils/
├── SE3.py
├── max_clique.py
├── pointcloud.py
├── sinkhorn.py
└── timer.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 ZhiChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration (CVPR 2022)
PyTorch implementation of the paper:
[SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration](https://arxiv.org/abs/2203.14453).
Zhi Chen, [Kun Sun](https://scholar.google.com/citations?user=Ay6kCm4AAAAJ&hl=en), Fan Yang, [Wenbing Tao](https://scholar.google.co.uk/citations?user=jRDPE2AAAAAJ&hl=zh-CN&oi=ao).
## Introduction
In this paper, we present a second order spatial compatibility (SC^2) measure based method for efficient and robust point cloud registration (PCR), called SC^2-PCR. Firstly, we propose a second order spatial compatibility (SC^2) measure to compute the similarity between correspondences. It considers the global compatibility instead of local consistency, allowing for more distinctive clustering between inliers and outliers at early stage. Based on this measure, our registration pipeline employs a global spectral technique to find some reliable seeds from the initial correspondences. Then we design a two-stage strategy to expand each seed to a consensus set based on the SC^2 measure matrix. Finally, we feed each consensus set to a weighted SVD algorithm to generate a candidate rigid transformation and select the best model as the final result. Our method can guarantee to find a certain number of outlier-free consensus sets using fewer samplings, making the model estimation more efficient and robust. In addition, the proposed SC^2 measure is general and can be easily plugged into deep learning based frameworks. Extensive experiments are carried out to investigate the performance of our method.

## Requirements
If you are using conda, you may configure SC2-PCR as:
conda env create -f environment.yml
conda activate SC2_PCR
## 3DMatch
### Data preparation
Downsample and extract FPFH and FCGF descriptors for each frame of the 3DMatch test dataset. [Here](https://drive.google.com/file/d/1kRwuTHlNPr9siENcEMddCO23Oaq0cz-X/view?usp=sharing) we provide the processed test set with pre-computed FPFH/FCGF descriptors. The data should be organized as follows:
```
--data--3DMatch
├── fragments
│ ├── 7-scene-redkitechen/
| | ├── cloud_bin_0.ply
| | ├── cloud_bin_0_fcgf.npz
| | ├── cloud_bin_0_fpfh.npz
│ | └── ...
│ ├── sun3d-home_at-home_at_scan1_2013_jan_1/
│ └── ...
├── gt_result
│ ├── 7-scene-redkitechen-evaluation/
| | ├── 3dmatch.log
| | ├── gt.info
| | ├── gt.log
│ | └── ...
│ ├── sun3d-home_at-home_at_scan1_2013_jan_1-evaluation/
│ └── ...
```
### Testing
Use the following command for testing.
```bash
python ./test_3DMatch.py --config_path config_json/config_3DMatch.json
```
The CUDA_DEVICE and basic parameters can be changed in the json file.
## 3DLoMatch
### Data preparation
FPFH and FCGF descriptors can be prepared in the same way as testing 3DMatch. If you want to test the [predator](https://github.com/prs-eth/OverlapPredator) descriptor, you should first follow the offical instruction of predator to extract the descriptors for 3DMatch dataset and organize the data as follows:
```
--data--3DLoMatch
├── 0.pth
├── 1.pth
├── ...
└── 1780.pth
```
### Testing
Use the following command for testing.
```bash
python ./test_3DLoMatch.py --config_path config_json/config_3DLoMatch.json
```
## KITTI odometry
### Data preparation
Downsample and extract FPFH and FCGF descriptors for each frame of the KITTI test dataset. The raw point clouds can be download from [KITTI Odometry website.](http://www.cvlibs.net/datasets/kitti/eval_odometry.php). For your convenience, [here](https://drive.google.com/drive/folders/1sxkHYjWHhSUE3IcvmZ2p1ziw1LqJqqfc?usp=sharing) we provide the pre-computed FPFH and FCGF descriptors for the KITTI test set.
```
--data--KITTI
├── fpfh_test
│ ├── pair_0.npz
| ├── pair_1.npz
| ├── ...
| └── pair_554.npz
├── fcgf_test
│ ├── pair_0.npz
| ├── pair_1.npz
| ├── ...
| └── pair_554.npz
```
### Testing
Use the following command for testing.
```bash
python ./test_KITTI.py --config_path config_json/config_KITTI.json
```
## Results
### 3DMatch
We evaluate SC^2-PCR on the standard 3DMatch benchmarks:
| Benchmark | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:---------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
| 3DMatch+FPFH | 83.98 | 2.18 | 6.56 | 72.48 | 78.33 | 75.10 |
| 3DMatch+FCGF | 93.28 | 2.08 | 6.55 | 78.94 | 86.39 | 82.20 |
### 3DMatch
We evaluate SC^2-PCR on the standard 3DLoMatch benchmarks:
| Benchmark | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:--------------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
| 3DLoMatch+FCGF | 57.83 | 3.77 | 10.46 | 44.87 | 53.69 | 48.38 |
| 3DLoMatch+Predator | 69.46 | 3.46 | 9.58 | 56.98 | 67.47 | 61.08 |
### KITTI odometry
We evaluate SC^2-PCR on the standard KITTI benchmarks:
| Benchmark | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:---------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
| KITTI+FPFH | 99.64 | 0.32 | 7.23 | 93.63 | 95.89 | 94.63 |
| KITTI+FCGF | 98.20 | 0.33 | 20.95 | 82.01 | 91.03 | 85.90 |
## Citation
```bibtex
@InProceedings{Chen_2022_CVPR,
author = {Chen, Zhi and Sun, Kun and Yang, Fan and Tao, Wenbing},
title = {SC2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {13221-13231}
}
```
## Acknowledgements
- [PointDSC](https://github.com/XuyangBai/PointDSC)
- [FCGF](https://github.com/chrischoy/FCGF)
- [DGR](https://github.com/chrischoy/DeepGlobalRegistration)
- [PREDATOR](https://github.com/prs-eth/OverlapPredator)
================================================
FILE: SC2_PCR.py
================================================
import torch
from common import knn, rigid_transform_3d
from utils.SE3 import transform
import numpy as np
class Matcher():
def __init__(self,
inlier_threshold=0.10,
num_node='all',
use_mutual=True,
d_thre=0.1,
num_iterations=10,
ratio=0.2,
nms_radius=0.1,
max_points=8000,
k1=30,
k2=20,
select_scene=None,
):
self.inlier_threshold = inlier_threshold
self.num_node = num_node
self.use_mutual = use_mutual
self.d_thre = d_thre
self.num_iterations = num_iterations # maximum iteration of power iteration algorithm
self.ratio = ratio # the maximum ratio of seeds.
self.max_points = max_points
self.nms_radius = nms_radius
self.k1 = k1
self.k2 = k2
def pick_seeds(self, dists, scores, R, max_num):
"""
Select seeding points using Non Maximum Suppression. (here we only support bs=1)
Input:
- dists: [bs, num_corr, num_corr] src keypoints distance matrix
- scores: [bs, num_corr] initial confidence of each correspondence
- R: float radius of nms
- max_num: int maximum number of returned seeds
Output:
- picked_seeds: [bs, num_seeds] the index to the seeding correspondences
"""
assert scores.shape[0] == 1
# parallel Non Maximum Suppression (more efficient)
score_relation = scores.T >= scores # [num_corr, num_corr], save the relation of leading_eig
# score_relation[dists[0] >= R] = 1 # mask out the non-neighborhood node
score_relation = score_relation.bool() | (dists[0] >= R).bool()
is_local_max = score_relation.min(-1)[0].float()
score_local_max = scores * is_local_max
sorted_score = torch.argsort(score_local_max, dim=1, descending=True)
# max_num = scores.shape[1]
return_idx = sorted_score[:, 0: max_num].detach()
return return_idx
def cal_seed_trans(self, seeds, SC2_measure, src_keypts, tgt_keypts):
"""
Calculate the transformation for each seeding correspondences.
Input:
- seeds: [bs, num_seeds] the index to the seeding correspondence
- SC2_measure: [bs, num_corr, num_channels]
- src_keypts: [bs, num_corr, 3]
- tgt_keypts: [bs, num_corr, 3]
Output: leading eigenvector
- final_trans: [bs, 4, 4] best transformation matrix (after post refinement) for each batch.
"""
bs, num_corr, num_channels = SC2_measure.shape[0], SC2_measure.shape[1], SC2_measure.shape[2]
k1 = self.k1
k2 = self.k2
if k1 > num_channels:
k1 = 4
k2 = 4
#################################
# The first stage consensus set sampling
# Finding the k1 nearest neighbors around each seed
#################################
sorted_score = torch.argsort(SC2_measure, dim=2, descending=True)
knn_idx = sorted_score[:, :, 0: k1]
sorted_value, _ = torch.sort(SC2_measure, dim=2, descending=True)
idx_tmp = knn_idx.contiguous().view([bs, -1])
idx_tmp = idx_tmp[:, :, None]
idx_tmp = idx_tmp.expand(-1, -1, 3)
#################################
# construct the local SC2 measure of each consensus subset obtained in the first stage.
#################################
src_knn = src_keypts.gather(dim=1, index=idx_tmp).view([bs, -1, k1, 3]) # [bs, num_seeds, k, 3]
tgt_knn = tgt_keypts.gather(dim=1, index=idx_tmp).view([bs, -1, k1, 3])
src_dist = ((src_knn[:, :, :, None, :] - src_knn[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
tgt_dist = ((tgt_knn[:, :, :, None, :] - tgt_knn[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
cross_dist = torch.abs(src_dist - tgt_dist)
local_hard_SC_measure = (cross_dist < self.d_thre).float()
local_SC2_measure = torch.matmul(local_hard_SC_measure[:, :, :1, :], local_hard_SC_measure)
#################################
# perform second stage consensus set sampling
#################################
sorted_score = torch.argsort(local_SC2_measure, dim=3, descending=True)
knn_idx_fine = sorted_score[:, :, :, 0: k2]
#################################
# construct the soft SC2 matrix of the consensus set
#################################
num = knn_idx_fine.shape[1]
knn_idx_fine = knn_idx_fine.contiguous().view([bs, num, -1])[:, :, :, None]
knn_idx_fine = knn_idx_fine.expand(-1, -1, -1, 3)
src_knn_fine = src_knn.gather(dim=2, index=knn_idx_fine).view([bs, -1, k2, 3]) # [bs, num_seeds, k, 3]
tgt_knn_fine = tgt_knn.gather(dim=2, index=knn_idx_fine).view([bs, -1, k2, 3])
src_dist = ((src_knn_fine[:, :, :, None, :] - src_knn_fine[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
tgt_dist = ((tgt_knn_fine[:, :, :, None, :] - tgt_knn_fine[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
cross_dist = torch.abs(src_dist - tgt_dist)
local_hard_measure = (cross_dist < self.d_thre * 2).float()
local_SC2_measure = torch.matmul(local_hard_measure, local_hard_measure) / k2
local_SC_measure = torch.clamp(1 - cross_dist ** 2 / self.d_thre ** 2, min=0)
# local_SC2_measure = local_SC_measure * local_SC2_measure
local_SC2_measure = local_SC_measure
local_SC2_measure = local_SC2_measure.view([-1, k2, k2])
#################################
# Power iteratation to get the inlier probability
#################################
local_SC2_measure[:, torch.arange(local_SC2_measure.shape[1]), torch.arange(local_SC2_measure.shape[1])] = 0
total_weight = self.cal_leading_eigenvector(local_SC2_measure, method='power')
total_weight = total_weight.view([bs, -1, k2])
total_weight = total_weight / (torch.sum(total_weight, dim=-1, keepdim=True) + 1e-6)
#################################
# calculate the transformation by weighted least-squares for each subsets in parallel
#################################
total_weight = total_weight.view([-1, k2])
src_knn = src_knn_fine
tgt_knn = tgt_knn_fine
src_knn, tgt_knn = src_knn.view([-1, k2, 3]), tgt_knn.view([-1, k2, 3])
#################################
# compute the rigid transformation for each seed by the weighted SVD
#################################
seedwise_trans = rigid_transform_3d(src_knn, tgt_knn, total_weight)
seedwise_trans = seedwise_trans.view([bs, -1, 4, 4])
#################################
# calculate the inlier number for each hypothesis, and find the best transformation for each point cloud pair
#################################
pred_position = torch.einsum('bsnm,bmk->bsnk', seedwise_trans[:, :, :3, :3],
src_keypts.permute(0, 2, 1)) + seedwise_trans[:, :, :3,
3:4] # [bs, num_seeds, num_corr, 3]
#################################
# calculate the inlier number for each hypothesis, and find the best transformation for each point cloud pair
#################################
pred_position = pred_position.permute(0, 1, 3, 2)
L2_dis = torch.norm(pred_position - tgt_keypts[:, None, :, :], dim=-1) # [bs, num_seeds, num_corr]
seedwise_fitness = torch.sum((L2_dis < self.inlier_threshold).float(), dim=-1) # [bs, num_seeds]
batch_best_guess = seedwise_fitness.argmax(dim=1)
best_guess_ratio = seedwise_fitness[0, batch_best_guess]
final_trans = seedwise_trans.gather(dim=1,index=batch_best_guess[:, None, None, None].expand(-1, -1, 4, 4)).squeeze(1)
return final_trans
def cal_leading_eigenvector(self, M, method='power'):
"""
Calculate the leading eigenvector using power iteration algorithm or torch.symeig
Input:
- M: [bs, num_corr, num_corr] the compatibility matrix
- method: select different method for calculating the learding eigenvector.
Output:
- solution: [bs, num_corr] leading eigenvector
"""
if method == 'power':
# power iteration algorithm
leading_eig = torch.ones_like(M[:, :, 0:1])
leading_eig_last = leading_eig
for i in range(self.num_iterations):
leading_eig = torch.bmm(M, leading_eig)
leading_eig = leading_eig / (torch.norm(leading_eig, dim=1, keepdim=True) + 1e-6)
if torch.allclose(leading_eig, leading_eig_last):
break
leading_eig_last = leading_eig
leading_eig = leading_eig.squeeze(-1)
return leading_eig
elif method == 'eig': # cause NaN during back-prop
e, v = torch.symeig(M, eigenvectors=True)
leading_eig = v[:, :, -1]
return leading_eig
else:
exit(-1)
def cal_confidence(self, M, leading_eig, method='eig_value'):
"""
Calculate the confidence of the spectral matching solution based on spectral analysis.
Input:
- M: [bs, num_corr, num_corr] the compatibility matrix
- leading_eig [bs, num_corr] the leading eigenvector of matrix M
Output:
- confidence
"""
if method == 'eig_value':
# max eigenvalue as the confidence (Rayleigh quotient)
max_eig_value = (leading_eig[:, None, :] @ M @ leading_eig[:, :, None]) / (
leading_eig[:, None, :] @ leading_eig[:, :, None])
confidence = max_eig_value.squeeze(-1)
return confidence
elif method == 'eig_value_ratio':
# max eigenvalue / second max eigenvalue as the confidence
max_eig_value = (leading_eig[:, None, :] @ M @ leading_eig[:, :, None]) / (
leading_eig[:, None, :] @ leading_eig[:, :, None])
# compute the second largest eigen-value
B = M - max_eig_value * leading_eig[:, :, None] @ leading_eig[:, None, :]
solution = torch.ones_like(B[:, :, 0:1])
for i in range(self.num_iterations):
solution = torch.bmm(B, solution)
solution = solution / (torch.norm(solution, dim=1, keepdim=True) + 1e-6)
solution = solution.squeeze(-1)
second_eig = solution
second_eig_value = (second_eig[:, None, :] @ B @ second_eig[:, :, None]) / (
second_eig[:, None, :] @ second_eig[:, :, None])
confidence = max_eig_value / second_eig_value
return confidence
elif method == 'xMx':
# max xMx as the confidence (x is the binary solution)
# rank = torch.argsort(leading_eig, dim=1, descending=True)[:, 0:int(M.shape[1]*self.ratio)]
# binary_sol = torch.zeros_like(leading_eig)
# binary_sol[0, rank[0]] = 1
confidence = leading_eig[:, None, :] @ M @ leading_eig[:, :, None]
confidence = confidence.squeeze(-1) / M.shape[1]
return confidence
def post_refinement(self, initial_trans, src_keypts, tgt_keypts, it_num, weights=None):
"""
Perform post refinement using the initial transformation matrix, only adopted during testing.
Input
- initial_trans: [bs, 4, 4]
- src_keypts: [bs, num_corr, 3]
- tgt_keypts: [bs, num_corr, 3]
- weights: [bs, num_corr]
Output:
- final_trans: [bs, 4, 4]
"""
assert initial_trans.shape[0] == 1
inlier_threshold = 1.2
# inlier_threshold_list = [self.inlier_threshold] * it_num
if self.inlier_threshold == 0.10: # for 3DMatch
inlier_threshold_list = [0.10] * it_num
else: # for KITTI
inlier_threshold_list = [1.2] * it_num
previous_inlier_num = 0
for inlier_threshold in inlier_threshold_list:
warped_src_keypts = transform(src_keypts, initial_trans)
L2_dis = torch.norm(warped_src_keypts - tgt_keypts, dim=-1)
pred_inlier = (L2_dis < inlier_threshold)[0] # assume bs = 1
inlier_num = torch.sum(pred_inlier)
if abs(int(inlier_num - previous_inlier_num)) < 1:
break
else:
previous_inlier_num = inlier_num
initial_trans = rigid_transform_3d(
A=src_keypts[:, pred_inlier, :],
B=tgt_keypts[:, pred_inlier, :],
## https://link.springer.com/article/10.1007/s10589-014-9643-2
# weights=None,
weights=1 / (1 + (L2_dis / inlier_threshold) ** 2)[:, pred_inlier],
# weights=((1-L2_dis/inlier_threshold)**2)[:, pred_inlier]
)
return initial_trans
def match_pair(self, src_keypts, tgt_keypts, src_features, tgt_features):
N_src = src_features.shape[1]
N_tgt = tgt_features.shape[1]
# use all point or sample points.
if self.num_node == 'all':
src_sel_ind = np.arange(N_src)
tgt_sel_ind = np.arange(N_tgt)
else:
src_sel_ind = np.random.choice(N_src, self.num_node)
tgt_sel_ind = np.random.choice(N_tgt, self.num_node)
src_desc = src_features[:, src_sel_ind, :]
tgt_desc = tgt_features[:, tgt_sel_ind, :]
src_keypts = src_keypts[:, src_sel_ind, :]
tgt_keypts = tgt_keypts[:, tgt_sel_ind, :]
# match points in feature space.
distance = torch.sqrt(2 - 2 * (src_desc[0] @ tgt_desc[0].T) + 1e-6)
distance = distance.unsqueeze(0)
source_idx = torch.argmin(distance[0], dim=1)
corr = torch.cat([torch.arange(source_idx.shape[0])[:, None].cuda(), source_idx[:, None]], dim=-1)
# generate correspondences
src_keypts_corr = src_keypts[:, corr[:, 0]]
tgt_keypts_corr = tgt_keypts[:, corr[:, 1]]
return src_keypts_corr, tgt_keypts_corr
def SC2_PCR(self, src_keypts, tgt_keypts):
"""
Input:
- src_keypts: [bs, num_corr, 3]
- tgt_keypts: [bs, num_corr, 3]
Output:
- pred_trans: [bs, 4, 4], the predicted transformation matrix.
- pred_labels: [bs, num_corr], the predicted inlier/outlier label (0,1), for classification loss calculation.
"""
bs, num_corr = src_keypts.shape[0], tgt_keypts.shape[1]
#################################
# downsample points
#################################
if num_corr > self.max_points:
src_keypts = src_keypts[:, :self.max_points, :]
tgt_keypts = tgt_keypts[:, :self.max_points, :]
num_corr = self.max_points
#################################
# compute cross dist
#################################
src_dist = torch.norm((src_keypts[:, :, None, :] - src_keypts[:, None, :, :]), dim=-1)
target_dist = torch.norm((tgt_keypts[:, :, None, :] - tgt_keypts[:, None, :, :]), dim=-1)
cross_dist = torch.abs(src_dist - target_dist)
#################################
# compute first order measure
#################################
SC_dist_thre = self.d_thre
SC_measure = torch.clamp(1.0 - cross_dist ** 2 / SC_dist_thre ** 2, min=0)
hard_SC_measure = (cross_dist < SC_dist_thre).float()
#################################
# select reliable seed correspondences
#################################
confidence = self.cal_leading_eigenvector(SC_measure, method='power')
seeds = self.pick_seeds(src_dist, confidence, R=self.nms_radius, max_num=int(num_corr * self.ratio))
#################################
# compute second order measure
#################################
SC2_dist_thre = self.d_thre / 2
hard_SC_measure_tight = (cross_dist < SC2_dist_thre).float()
seed_hard_SC_measure = hard_SC_measure.gather(dim=1,
index=seeds[:, :, None].expand(-1, -1, num_corr))
seed_hard_SC_measure_tight = hard_SC_measure_tight.gather(dim=1,
index=seeds[:, :, None].expand(-1, -1, num_corr))
SC2_measure = torch.matmul(seed_hard_SC_measure_tight, hard_SC_measure_tight) * seed_hard_SC_measure
#################################
# compute the seed-wise transformations and select the best one
#################################
final_trans = self.cal_seed_trans(seeds, SC2_measure, src_keypts, tgt_keypts)
#################################
# refine the result by recomputing the transformation over the whole set
#################################
final_trans = self.post_refinement(final_trans, src_keypts, tgt_keypts, 20)
return final_trans
def estimator(self, src_keypts, tgt_keypts, src_features, tgt_features):
"""
Input:
- src_keypts: [bs, num_corr, 3]
- tgt_keypts: [bs, num_corr, 3]
- src_features: [bs, num_corr, C]
- tgt_features: [bs, num_corr, C]
Output:
- pred_trans: [bs, 4, 4], the predicted transformation matrix
- pred_trans: [bs, num_corr], the predicted inlier/outlier label (0,1)
- src_keypts_corr: [bs, num_corr, 3], the source points in the matched correspondences
- tgt_keypts_corr: [bs, num_corr, 3], the target points in the matched correspondences
"""
#################################
# generate coarse correspondences
#################################
src_keypts_corr, tgt_keypts_corr = self.match_pair(src_keypts, tgt_keypts, src_features, tgt_features)
#################################
# use the proposed SC2-PCR to estimate the rigid transformation
#################################
pred_trans = self.SC2_PCR(src_keypts_corr, tgt_keypts_corr)
frag1_warp = transform(src_keypts_corr, pred_trans)
distance = torch.sum((frag1_warp - tgt_keypts_corr) ** 2, dim=-1) ** 0.5
pred_labels = (distance < self.inlier_threshold).float()
return pred_trans, pred_labels, src_keypts_corr, tgt_keypts_corr
================================================
FILE: benchmark_utils.py
================================================
import torch
import numpy as np
import random
import math
import open3d as o3d
from utils.pointcloud import make_point_cloud
def exact_auc(errors, thresholds):
"""
Calculate the exact area under curve, borrow from https://github.com/magicleap/SuperGluePretrainedNetwork
"""
sort_idx = np.argsort(errors)
errors = np.array(errors.copy())[sort_idx]
recall = (np.arange(len(errors)) + 1) / len(errors)
errors = np.r_[0., errors]
recall = np.r_[0., recall]
aucs = []
for t in thresholds:
last_index = np.searchsorted(errors, t)
r = np.r_[recall[:last_index], recall[last_index - 1]]
e = np.r_[errors[:last_index], t]
aucs.append(np.trapz(r, x=e) / t)
return aucs
def set_seed(seed=51):
"""
Set the random seed for reproduce the results.
"""
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed) # if you are using multi-GPU.
np.random.seed(seed) # Numpy module.
random.seed(seed) # Python random module.
torch.backends.cudnn.benchmark = False
torch.backends.cudnn.deterministic = True
def icp_refine(src_keypts, tgt_keypts, pred_trans):
"""
ICP algorithm to refine the initial transformation
Input:
- src_keypts [1, num_corr, 3] FloatTensor
- tgt_keypts [1, num_corr, 3] FloatTensor
- pred_trans [1, 4, 4] FloatTensor, initial transformation
"""
src_pcd = make_point_cloud(src_keypts.detach().cpu().numpy()[0])
tgt_pcd = make_point_cloud(tgt_keypts.detach().cpu().numpy()[0])
initial_trans = pred_trans[0].detach().cpu().numpy()
# change the convension of transforamtion because open3d use left multi.
refined_T = o3d.registration.registration_icp(
src_pcd, tgt_pcd, 0.10, initial_trans,
o3d.registration.TransformationEstimationPointToPoint()).transformation
refined_T = torch.from_numpy(refined_T[None, :, :]).to(pred_trans.device).float()
return refined_T
def is_rotation_matrix(R):
"""
Checks if a matrix is a valid rotation matrix.
Input:
- R: [3, 3] rotation matrix
Output:
- True/False
"""
Rt = np.transpose(R)
shouldBeIdentity = np.dot(Rt, R)
I = np.identity(3, dtype=R.dtype)
n = np.linalg.norm(I - shouldBeIdentity)
return n < 1e-3
def rot_to_euler(R):
"""
Convert the rotation matrix to euler angles(degree)
Input:
- R: [3, 3] rotation matrix
Output:
- alpha. [3], the rotation angle (in degrees) along x,y,z axis.
"""
assert (is_rotation_matrix(R))
sy = math.sqrt(R[0, 0] * R[0, 0] + R[1, 0] * R[1, 0])
singular = sy < 1e-6
if not singular:
x = math.atan2(R[2, 1], R[2, 2])
y = math.atan2(-R[2, 0], sy)
z = math.atan2(R[1, 0], R[0, 0])
else:
x = math.atan2(-R[1, 2], R[1, 1])
y = math.atan2(-R[2, 0], sy)
z = 0
return np.array([x * 180 / np.pi, y * 180 / np.pi, z * 180 / np.pi])
================================================
FILE: benchmark_utils_predator.py
================================================
"""
Script for benchmarking the 3DMatch test dataset.
Author: Zan Gojcic, Shengyu Huang
Last modified: 30.11.2020
"""
import numpy as np
import os,sys,glob,torch,math
from collections import defaultdict
import nibabel.quaternions as nq
def rotation_error(R1, R2):
"""
Torch batch implementation of the rotation error between the estimated and the ground truth rotatiom matrix.
Rotation error is defined as r_e = \arccos(\frac{Trace(\mathbf{R}_{ij}^{T}\mathbf{R}_{ij}^{\mathrm{GT}) - 1}{2})
Args:
R1 (torch tensor): Estimated rotation matrices [b,3,3]
R2 (torch tensor): Ground truth rotation matrices [b,3,3]
Returns:
ae (torch tensor): Rotation error in angular degreees [b,1]
"""
R_ = torch.matmul(R1.transpose(1,2), R2)
e = torch.stack([(torch.trace(R_[_, :, :]) - 1) / 2 for _ in range(R_.shape[0])], dim=0).unsqueeze(1)
# Clamp the errors to the valid range (otherwise torch.acos() is nan)
e = torch.clamp(e, -1, 1, out=None)
ae = torch.acos(e)
pi = torch.Tensor([math.pi])
ae = 180. * ae / pi.to(ae.device).type(ae.dtype)
return ae
def translation_error(t1, t2):
"""
Torch batch implementation of the rotation error between the estimated and the ground truth rotatiom matrix.
Rotation error is defined as r_e = \arccos(\frac{Trace(\mathbf{R}_{ij}^{T}\mathbf{R}_{ij}^{\mathrm{GT}) - 1}{2})
Args:
t1 (torch tensor): Estimated translation vectors [b,3,1]
t2 (torch tensor): Ground truth translation vectors [b,3,1]
Returns:
te (torch tensor): translation error in meters [b,1]
"""
return torch.norm(t1-t2, dim=(1, 2))
def computeTransformationErr(trans, info):
"""
Computer the transformation error as an approximation of the RMSE of corresponding points.
More informaiton at http://redwood-data.org/indoor/registration.html
Args:
trans (numpy array): transformation matrices [n,4,4]
info (numpy array): covariance matrices of the gt transformation paramaters [n,4,4]
Returns:
p (float): transformation error
"""
t = trans[:3, 3]
r = trans[:3, :3]
q = nq.mat2quat(r)
er = np.concatenate([t, q[1:]], axis=0)
p = er.reshape(1, 6) @ info @ er.reshape(6, 1) / info[0, 0]
return p.item()
def read_trajectory(filename, dim=4):
"""
Function that reads a trajectory saved in the 3DMatch/Redwood format to a numpy array.
Format specification can be found at http://redwood-data.org/indoor/fileformat.html
Args:
filename (str): path to the '.txt' file containing the trajectory data
dim (int): dimension of the transformation matrix (4x4 for 3D data)
Returns:
final_keys (dict): indices of pairs with more than 30% overlap (only this ones are included in the gt file)
traj (numpy array): gt pairwise transformation matrices for n pairs[n,dim, dim]
"""
with open(filename) as f:
lines = f.readlines()
# Extract the point cloud pairs
keys = lines[0::(dim+1)]
temp_keys = []
for i in range(len(keys)):
temp_keys.append(keys[i].split('\t')[0:3])
final_keys = []
for i in range(len(temp_keys)):
final_keys.append([temp_keys[i][0].strip(), temp_keys[i][1].strip(), temp_keys[i][2].strip()])
traj = []
for i in range(len(lines)):
if i % 5 != 0:
traj.append(lines[i].split('\t')[0:dim])
traj = np.asarray(traj, dtype=np.float).reshape(-1,dim,dim)
final_keys = np.asarray(final_keys)
return final_keys, traj
def read_trajectory_info(filename, dim=6):
"""
Function that reads the trajectory information saved in the 3DMatch/Redwood format to a numpy array.
Information file contains the variance-covariance matrix of the transformation paramaters.
Format specification can be found at http://redwood-data.org/indoor/fileformat.html
Args:
filename (str): path to the '.txt' file containing the trajectory information data
dim (int): dimension of the transformation matrix (4x4 for 3D data)
Returns:
n_frame (int): number of fragments in the scene
cov_matrix (numpy array): covariance matrix of the transformation matrices for n pairs[n,dim, dim]
"""
with open(filename) as fid:
contents = fid.readlines()
n_pairs = len(contents) // 7
assert (len(contents) == 7 * n_pairs)
info_list = []
n_frame = 0
for i in range(n_pairs):
frame_idx0, frame_idx1, n_frame = [int(item) for item in contents[i * 7].strip().split()]
info_matrix = np.concatenate(
[np.fromstring(item, sep='\t').reshape(1, -1) for item in contents[i * 7 + 1:i * 7 + 7]], axis=0)
info_list.append(info_matrix)
cov_matrix = np.asarray(info_list, dtype=np.float).reshape(-1,dim,dim)
return n_frame, cov_matrix
def extract_corresponding_trajectors(est_pairs,gt_pairs, gt_traj):
"""
Extract only those transformation matrices from the ground truth trajectory that are also in the estimated trajectory.
Args:
est_pairs (numpy array): indices of point cloud pairs with enough estimated overlap [m, 3]
gt_pairs (numpy array): indices of gt overlaping point cloud pairs [n,3]
gt_traj (numpy array): 3d array of the gt transformation parameters [n,4,4]
Returns:
ext_traj (numpy array): gt transformation parameters for the point cloud pairs from est_pairs [m,4,4]
"""
ext_traj = np.zeros((len(est_pairs), 4, 4))
for est_idx, pair in enumerate(est_pairs):
pair[2] = gt_pairs[0][2]
gt_idx = np.where((gt_pairs == pair).all(axis=1))[0]
ext_traj[est_idx,:,:] = gt_traj[gt_idx,:,:]
return ext_traj
def evaluate_registration(num_fragment, result, result_pairs, gt_pairs, gt, gt_info, err2=0.2):
"""
Evaluates the performance of the registration algorithm according to the evaluation protocol defined
by the 3DMatch/Redwood datasets. The evaluation protocol can be found at http://redwood-data.org/indoor/registration.html
Args:
num_fragment (int): path to the '.txt' file containing the trajectory information data
result (numpy array): estimated transformation matrices [n,4,4]
result_pairs (numpy array): indices of the point cloud for which the transformation matrix was estimated (m,3)
gt_pairs (numpy array): indices of the ground truth overlapping point cloud pairs (n,3)
gt (numpy array): ground truth transformation matrices [n,4,4]
gt_cov (numpy array): covariance matrix of the ground truth transfromation parameters [n,6,6]
err2 (float): threshold for the RMSE of the gt correspondences (default: 0.2m)
Returns:
precision (float): mean registration precision over the scene (not so important because it can be increased see papers)
recall (float): mean registration recall over the scene (deciding parameter for the performance of the algorithm)
"""
err2 = err2 ** 2
gt_mask = np.zeros((num_fragment, num_fragment), dtype=np.int)
flags=[]
for idx in range(gt_pairs.shape[0]):
i = int(gt_pairs[idx,0])
j = int(gt_pairs[idx,1])
# Only non consecutive pairs are tested
if j - i > 1:
gt_mask[i, j] = idx
n_gt = np.sum(gt_mask > 0)
good = 0
n_res = 0
for idx in range(result_pairs.shape[0]):
i = int(result_pairs[idx,0])
j = int(result_pairs[idx,1])
pose = result[idx,:,:]
if gt_mask[i, j] > 0:
n_res += 1
gt_idx = gt_mask[i, j]
p = computeTransformationErr(np.linalg.inv(gt[gt_idx,:,:]) @ pose, gt_info[gt_idx,:,:])
if p <= err2:
good += 1
flags.append(0)
else:
flags.append(1)
else:
flags.append(2)
if n_res == 0:
n_res += 1e6
precision = good * 1.0 / n_res
recall = good * 1.0 / n_gt
return precision, recall, flags
================================================
FILE: benchmarks/3DLoMatch/7-scenes-redkitchen/gt.info
================================================
0 7 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12210.202100000000 2953.006840000000
0.000000000000 5000.000000000000 0.000000000000 -12210.202100000000 0.000000000000 2524.756100000000
0.000000000000 0.000000000000 5000.000000000000 -2953.006840000000 -2524.756100000000 0.000000000000
0.000000000000 -12210.202100000000 -2953.006840000000 34372.125000000000 1417.439820000000 -5971.215330000000
12210.202100000000 0.000000000000 -2524.756100000000 1417.439820000000 33469.312500000000 8417.902340000001
2953.006840000000 2524.756100000000 0.000000000000 -5971.215330000000 8417.902340000001 4510.429690000000
0 8 60
2940.000000000000 0.000000000000 0.000000000000 0.000000000000 7647.359860000000 2027.591550000000
0.000000000000 2940.000000000000 0.000000000000 -7647.359860000000 0.000000000000 3053.756100000000
0.000000000000 0.000000000000 2940.000000000000 -2027.591550000000 -3053.756100000000 0.000000000000
0.000000000000 -7647.359860000000 -2027.591550000000 21586.956999999999 2113.761960000000 -7965.160640000000
7647.359860000000 0.000000000000 -3053.756100000000 2113.761960000000 23219.214800000002 5328.437010000000
2027.591550000000 3053.756100000000 0.000000000000 -7965.160640000000 5328.437010000000 4889.844730000000
0 9 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10638.137699999999 1998.040770000000
0.000000000000 5000.000000000000 0.000000000000 -10638.137699999999 0.000000000000 3307.306400000000
0.000000000000 0.000000000000 5000.000000000000 -1998.040770000000 -3307.306400000000 0.000000000000
0.000000000000 -10638.137699999999 -1998.040770000000 25807.343799999999 1660.834840000000 -7662.884770000000
10638.137699999999 0.000000000000 -3307.306400000000 1660.834840000000 26938.597699999998 5246.650390000000
1998.040770000000 3307.306400000000 0.000000000000 -7662.884770000000 5246.650390000000 4376.456050000000
0 16 60
3500.000000000000 0.000000000000 0.000000000000 0.000000000000 7305.772460000000 1173.560060000000
0.000000000000 3500.000000000000 0.000000000000 -7305.772460000000 0.000000000000 2302.791500000000
0.000000000000 0.000000000000 3500.000000000000 -1173.560060000000 -2302.791500000000 0.000000000000
0.000000000000 -7305.772460000000 -1173.560060000000 17060.779299999998 879.650208000000 -4939.298830000000
7305.772460000000 0.000000000000 -2302.791500000000 879.650208000000 17966.177700000000 3028.451420000000
1173.560060000000 2302.791500000000 0.000000000000 -4939.298830000000 3028.451420000000 2509.195310000000
0 17 60
2127.000000000000 0.000000000000 0.000000000000 0.000000000000 5124.270510000000 1334.902340000000
0.000000000000 2127.000000000000 0.000000000000 -5124.270510000000 0.000000000000 1992.042970000000
0.000000000000 0.000000000000 2127.000000000000 -1334.902340000000 -1992.042970000000 0.000000000000
0.000000000000 -5124.270510000000 -1334.902340000000 13700.192400000000 1380.157470000000 -4937.223140000000
5124.270510000000 0.000000000000 -1992.042970000000 1380.157470000000 14612.388700000000 3432.271480000000
1334.902340000000 1992.042970000000 0.000000000000 -4937.223140000000 3432.271480000000 3067.616210000000
0 18 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10711.997100000001 1917.689450000000
0.000000000000 5000.000000000000 0.000000000000 -10711.997100000001 0.000000000000 3115.850340000000
0.000000000000 0.000000000000 5000.000000000000 -1917.689450000000 -3115.850340000000 0.000000000000
0.000000000000 -10711.997100000001 -1917.689450000000 26063.636699999999 1474.673100000000 -7044.731450000000
10711.997100000001 0.000000000000 -3115.850340000000 1474.673100000000 27065.539100000002 5079.894530000000
1917.689450000000 3115.850340000000 0.000000000000 -7044.731450000000 5079.894530000000 3982.231690000000
0 20 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9297.610350000001 1174.249020000000
0.000000000000 5000.000000000000 0.000000000000 -9297.610350000001 0.000000000000 3275.526610000000
0.000000000000 0.000000000000 5000.000000000000 -1174.249020000000 -3275.526610000000 0.000000000000
0.000000000000 -9297.610350000001 -1174.249020000000 20462.949199999999 1299.697140000000 -6867.975100000000
9297.610350000001 0.000000000000 -3275.526610000000 1299.697140000000 21862.875000000000 3464.075930000000
1174.249020000000 3275.526610000000 0.000000000000 -6867.975100000000 3464.075930000000 3977.037350000000
0 25 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 13223.351600000000 3251.172360000000
0.000000000000 5000.000000000000 0.000000000000 -13223.351600000000 0.000000000000 3102.926030000000
0.000000000000 0.000000000000 5000.000000000000 -3251.172360000000 -3102.926030000000 0.000000000000
0.000000000000 -13223.351600000000 -3251.172360000000 38067.203099999999 1942.314700000000 -7967.844240000000
13223.351600000000 0.000000000000 -3102.926030000000 1942.314700000000 38247.660199999998 8900.333010000000
3251.172360000000 3102.926030000000 0.000000000000 -7967.844240000000 8900.333010000000 5429.598630000000
0 30 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11528.893599999999 2145.299560000000
0.000000000000 5000.000000000000 0.000000000000 -11528.893599999999 0.000000000000 -4267.468260000000
0.000000000000 0.000000000000 5000.000000000000 -2145.299560000000 4267.468260000000 0.000000000000
0.000000000000 -11528.893599999999 -2145.299560000000 28536.888700000000 -1674.476320000000 9646.434569999999
11528.893599999999 0.000000000000 4267.468260000000 -1674.476320000000 30804.328099999999 5228.844240000000
2145.299560000000 -4267.468260000000 0.000000000000 9646.434569999999 5228.844240000000 5235.357910000000
0 31 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10391.774400000000 -229.911026000000
0.000000000000 5000.000000000000 0.000000000000 -10391.774400000000 0.000000000000 -4088.688480000000
0.000000000000 0.000000000000 5000.000000000000 229.911026000000 4088.688480000000 0.000000000000
0.000000000000 -10391.774400000000 229.911026000000 22798.605500000001 85.861770600000 8516.400390000001
10391.774400000000 0.000000000000 4088.688480000000 85.861770600000 25589.974600000001 -285.032562000000
-229.911026000000 -4088.688480000000 0.000000000000 8516.400390000001 -285.032562000000 4430.192380000000
0 32 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9612.613280000000 -656.424377000000
0.000000000000 5000.000000000000 0.000000000000 -9612.613280000000 0.000000000000 -3416.051030000000
0.000000000000 0.000000000000 5000.000000000000 656.424377000000 3416.051030000000 0.000000000000
0.000000000000 -9612.613280000000 656.424377000000 19639.666000000001 454.167328000000 6885.587890000000
9612.613280000000 0.000000000000 3416.051030000000 454.167328000000 22010.433600000000 -1262.046880000000
-656.424377000000 -3416.051030000000 0.000000000000 6885.587890000000 -1262.046880000000 3712.229250000000
0 33 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8523.642580000000 -1414.166870000000
0.000000000000 5000.000000000000 0.000000000000 -8523.642580000000 0.000000000000 -1484.834720000000
0.000000000000 0.000000000000 5000.000000000000 1414.166870000000 1484.834720000000 0.000000000000
0.000000000000 -8523.642580000000 1414.166870000000 15640.502899999999 983.811218000000 3075.908690000000
8523.642580000000 0.000000000000 1484.834720000000 983.811218000000 16945.763700000000 -2547.323730000000
-1414.166870000000 -1484.834720000000 0.000000000000 3075.908690000000 -2547.323730000000 2731.274170000000
0 34 60
3670.000000000000 0.000000000000 0.000000000000 0.000000000000 5227.837890000000 -98.508834800000
0.000000000000 3670.000000000000 0.000000000000 -5227.837890000000 0.000000000000 1133.112550000000
0.000000000000 0.000000000000 3670.000000000000 98.508834800000 -1133.112550000000 0.000000000000
0.000000000000 -5227.837890000000 98.508834800000 7567.572750000000 -31.379207600000 -1635.315310000000
5227.837890000000 0.000000000000 -1133.112550000000 -31.379207600000 8133.190430000000 -100.594940000000
-98.508834800000 1133.112550000000 0.000000000000 -1635.315310000000 -100.594940000000 626.862610000000
0 36 60
4945.000000000000 0.000000000000 0.000000000000 0.000000000000 11267.022499999999 2381.595210000000
0.000000000000 4945.000000000000 0.000000000000 -11267.022499999999 0.000000000000 3374.782960000000
0.000000000000 0.000000000000 4945.000000000000 -2381.595210000000 -3374.782960000000 0.000000000000
0.000000000000 -11267.022499999999 -2381.595210000000 28498.078099999999 1855.024780000000 -7830.616210000000
11267.022499999999 0.000000000000 -3374.782960000000 1855.024780000000 29586.240200000000 6110.899410000000
2381.595210000000 3374.782960000000 0.000000000000 -7830.616210000000 6110.899410000000 4560.088380000000
0 37 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10411.724600000000 1645.716920000000
0.000000000000 5000.000000000000 0.000000000000 -10411.724600000000 0.000000000000 1955.823360000000
0.000000000000 0.000000000000 5000.000000000000 -1645.716920000000 -1955.823360000000 0.000000000000
0.000000000000 -10411.724600000000 -1645.716920000000 24529.910199999998 964.453064000000 -4387.402830000000
10411.724600000000 0.000000000000 -1955.823360000000 964.453064000000 24964.607400000001 4284.263670000000
1645.716920000000 1955.823360000000 0.000000000000 -4387.402830000000 4284.263670000000 2722.198730000000
0 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9329.358399999999 718.045044000000
0.000000000000 5000.000000000000 0.000000000000 -9329.358399999999 0.000000000000 931.715942000000
0.000000000000 0.000000000000 5000.000000000000 -718.045044000000 -931.715942000000 0.000000000000
0.000000000000 -9329.358399999999 -718.045044000000 19823.814500000000 243.192368000000 -1667.537230000000
9329.358399999999 0.000000000000 -931.715942000000 243.192368000000 19980.738300000001 2073.827390000000
718.045044000000 931.715942000000 0.000000000000 -1667.537230000000 2073.827390000000 1287.261720000000
0 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 13795.589800000000 3774.247800000000
0.000000000000 5000.000000000000 0.000000000000 -13795.589800000000 0.000000000000 -1720.364500000000
0.000000000000 0.000000000000 5000.000000000000 -3774.247800000000 1720.364500000000 0.000000000000
0.000000000000 -13795.589800000000 -3774.247800000000 41653.601600000002 -1256.028810000000 4496.085940000000
13795.589800000000 0.000000000000 1720.364500000000 -1256.028810000000 39678.816400000003 10560.762699999999
3774.247800000000 -1720.364500000000 0.000000000000 4496.085940000000 10560.762699999999 4274.560060000000
0 42 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 13874.237300000001 4000.970700000000
0.000000000000 5000.000000000000 0.000000000000 -13874.237300000001 0.000000000000 -1567.137940000000
0.000000000000 0.000000000000 5000.000000000000 -4000.970700000000 1567.137940000000 0.000000000000
0.000000000000 -13874.237300000001 -4000.970700000000 42313.011700000003 -1182.931880000000 4025.156740000000
13874.237300000001 0.000000000000 1567.137940000000 -1182.931880000000 40043.914100000002 11211.805700000001
4000.970700000000 -1567.137940000000 0.000000000000 4025.156740000000 11211.805700000001 4583.428220000000
0 43 60
4884.000000000000 0.000000000000 0.000000000000 0.000000000000 13583.022499999999 4218.896000000000
0.000000000000 4884.000000000000 0.000000000000 -13583.022499999999 0.000000000000 -1569.279790000000
0.000000000000 0.000000000000 4884.000000000000 -4218.896000000000 1569.279790000000 0.000000000000
0.000000000000 -13583.022499999999 -4218.896000000000 41996.656300000002 -1211.657590000000 3990.619630000000
13583.022499999999 0.000000000000 1569.279790000000 -1211.657590000000 39363.886700000003 11858.942400000000
4218.896000000000 -1569.279790000000 0.000000000000 3990.619630000000 11858.942400000000 4978.040530000000
0 44 60
4343.000000000000 0.000000000000 0.000000000000 0.000000000000 12376.637699999999 3956.686520000000
0.000000000000 4343.000000000000 0.000000000000 -12376.637699999999 0.000000000000 -921.256287000000
0.000000000000 0.000000000000 4343.000000000000 -3956.686520000000 921.256287000000 0.000000000000
0.000000000000 -12376.637699999999 -3956.686520000000 39168.050799999997 -740.596619000000 2463.221190000000
12376.637699999999 0.000000000000 921.256287000000 -740.596619000000 36295.992200000001 11341.436500000000
3956.686520000000 -921.256287000000 0.000000000000 2463.221190000000 11341.436500000000 4609.375980000000
0 45 60
4288.000000000000 0.000000000000 0.000000000000 0.000000000000 12130.670899999999 4075.019530000000
0.000000000000 4288.000000000000 0.000000000000 -12130.670899999999 0.000000000000 190.687714000000
0.000000000000 0.000000000000 4288.000000000000 -4075.019530000000 -190.687714000000 0.000000000000
0.000000000000 -12130.670899999999 -4075.019530000000 38436.667999999998 217.107666000000 -481.495850000000
12130.670899999999 0.000000000000 -190.687714000000 217.107666000000 35475.718800000002 11603.487300000001
4075.019530000000 190.687714000000 0.000000000000 -481.495850000000 11603.487300000001 5048.103030000000
0 46 60
3610.000000000000 0.000000000000 0.000000000000 0.000000000000 9909.697270000001 3333.438480000000
0.000000000000 3610.000000000000 0.000000000000 -9909.697270000001 0.000000000000 1656.724850000000
0.000000000000 0.000000000000 3610.000000000000 -3333.438480000000 -1656.724850000000 0.000000000000
0.000000000000 -9909.697270000001 -3333.438480000000 30487.958999999999 1532.831050000000 -4418.769040000000
9909.697270000001 0.000000000000 -1656.724850000000 1532.831050000000 28868.539100000002 9226.884770000001
3333.438480000000 1656.724850000000 0.000000000000 -4418.769040000000 9226.884770000001 4741.207030000000
0 47 60
2241.000000000000 0.000000000000 0.000000000000 0.000000000000 6001.209470000000 1987.929080000000
0.000000000000 2241.000000000000 0.000000000000 -6001.209470000000 0.000000000000 1746.349370000000
0.000000000000 0.000000000000 2241.000000000000 -1987.929080000000 -1746.349370000000 0.000000000000
0.000000000000 -6001.209470000000 -1987.929080000000 17993.546900000001 1542.154300000000 -4626.656740000000
6001.209470000000 0.000000000000 -1746.349370000000 1542.154300000000 17727.820299999999 5387.374020000000
1987.929080000000 1746.349370000000 0.000000000000 -4626.656740000000 5387.374020000000 3431.065670000000
0 48 60
2508.000000000000 0.000000000000 0.000000000000 0.000000000000 6673.774900000000 2196.189210000000
0.000000000000 2508.000000000000 0.000000000000 -6673.774900000000 0.000000000000 2110.895260000000
0.000000000000 0.000000000000 2508.000000000000 -2196.189210000000 -2110.895260000000 0.000000000000
0.000000000000 -6673.774900000000 -2196.189210000000 19878.044900000001 1832.434810000000 -5562.061040000000
6673.774900000000 0.000000000000 -2110.895260000000 1832.434810000000 19796.937500000000 5925.408690000000
2196.189210000000 2110.895260000000 0.000000000000 -5562.061040000000 5925.408690000000 3976.842290000000
0 49 60
2070.000000000000 0.000000000000 0.000000000000 0.000000000000 5504.915040000000 1863.228390000000
0.000000000000 2070.000000000000 0.000000000000 -5504.915040000000 0.000000000000 1907.668330000000
0.000000000000 0.000000000000 2070.000000000000 -1863.228390000000 -1907.668330000000 0.000000000000
0.000000000000 -5504.915040000000 -1863.228390000000 16460.998000000000 1700.126950000000 -5036.161130000000
5504.915040000000 0.000000000000 -1907.668330000000 1700.126950000000 16552.531299999999 5015.273440000000
1863.228390000000 1907.668330000000 0.000000000000 -5036.161130000000 5015.273440000000 3609.248050000000
0 50 60
2077.000000000000 0.000000000000 0.000000000000 0.000000000000 5575.812990000000 1884.130740000000
0.000000000000 2077.000000000000 0.000000000000 -5575.812990000000 0.000000000000 1797.978030000000
0.000000000000 0.000000000000 2077.000000000000 -1884.130740000000 -1797.978030000000 0.000000000000
0.000000000000 -5575.812990000000 -1884.130740000000 16824.068400000000 1607.136600000000 -4768.985840000000
5575.812990000000 0.000000000000 -1797.978030000000 1607.136600000000 16729.515599999999 5115.610840000000
1884.130740000000 1797.978030000000 0.000000000000 -4768.985840000000 5115.610840000000 3475.901120000000
0 51 60
1967.000000000000 0.000000000000 0.000000000000 0.000000000000 5384.763180000000 1910.958620000000
0.000000000000 1967.000000000000 0.000000000000 -5384.763180000000 0.000000000000 1657.597050000000
0.000000000000 0.000000000000 1967.000000000000 -1910.958620000000 -1657.597050000000 0.000000000000
0.000000000000 -5384.763180000000 -1910.958620000000 16688.861300000000 1587.810180000000 -4468.035160000000
5384.763180000000 0.000000000000 -1657.597050000000 1587.810180000000 16354.829100000001 5261.686040000000
1910.958620000000 1657.597050000000 0.000000000000 -4468.035160000000 5261.686040000000 3455.852540000000
0 52 60
2257.000000000000 0.000000000000 0.000000000000 0.000000000000 6025.153320000000 2003.331670000000
0.000000000000 2257.000000000000 0.000000000000 -6025.153320000000 0.000000000000 1966.990840000000
0.000000000000 0.000000000000 2257.000000000000 -2003.331670000000 -1966.990840000000 0.000000000000
0.000000000000 -6025.153320000000 -2003.331670000000 18022.375000000000 1729.295040000000 -5209.063960000000
6025.153320000000 0.000000000000 -1966.990840000000 1729.295040000000 17987.093799999999 5407.795410000000
2003.331670000000 1966.990840000000 0.000000000000 -5209.063960000000 5407.795410000000 3708.770020000000
0 53 60
2603.000000000000 0.000000000000 0.000000000000 0.000000000000 6867.698240000000 2277.476320000000
0.000000000000 2603.000000000000 0.000000000000 -6867.698240000000 0.000000000000 2397.200200000000
0.000000000000 0.000000000000 2603.000000000000 -2277.476320000000 -2397.200200000000 0.000000000000
0.000000000000 -6867.698240000000 -2277.476320000000 20273.226600000002 2088.597660000000 -6308.565920000000
6867.698240000000 0.000000000000 -2397.200200000000 2088.597660000000 20490.394499999999 6068.125980000000
2277.476320000000 2397.200200000000 0.000000000000 -6308.565920000000 6068.125980000000 4422.375490000000
0 59 60
4776.000000000000 0.000000000000 0.000000000000 0.000000000000 10217.717800000000 1475.224730000000
0.000000000000 4776.000000000000 0.000000000000 -10217.717800000000 0.000000000000 2370.767090000000
0.000000000000 0.000000000000 4776.000000000000 -1475.224730000000 -2370.767090000000 0.000000000000
0.000000000000 -10217.717800000000 -1475.224730000000 24121.152300000002 646.232361000000 -4840.785640000000
10217.717800000000 0.000000000000 -2370.767090000000 646.232361000000 24755.650399999999 3809.353520000000
1475.224730000000 2370.767090000000 0.000000000000 -4840.785640000000 3809.353520000000 2306.751460000000
1 6 60
4698.000000000000 0.000000000000 0.000000000000 0.000000000000 9510.342769999999 1958.431880000000
0.000000000000 4698.000000000000 0.000000000000 -9510.342769999999 0.000000000000 2657.172120000000
0.000000000000 0.000000000000 4698.000000000000 -1958.431880000000 -2657.172120000000 0.000000000000
0.000000000000 -9510.342769999999 -1958.431880000000 23491.043000000001 1218.698490000000 -5514.714360000000
9510.342769999999 0.000000000000 -2657.172120000000 1218.698490000000 23324.505900000000 5531.427250000000
1958.431880000000 2657.172120000000 0.000000000000 -5514.714360000000 5531.427250000000 3784.353270000000
1 7 60
2680.000000000000 0.000000000000 0.000000000000 0.000000000000 5976.207520000000 1449.922850000000
0.000000000000 2680.000000000000 0.000000000000 -5976.207520000000 0.000000000000 1860.472410000000
0.000000000000 0.000000000000 2680.000000000000 -1449.922850000000 -1860.472410000000 0.000000000000
0.000000000000 -5976.207520000000 -1449.922850000000 15472.499000000000 1036.438110000000 -4134.912110000000
5976.207520000000 0.000000000000 -1860.472410000000 1036.438110000000 15616.198200000001 3848.831540000000
1449.922850000000 1860.472410000000 0.000000000000 -4134.912110000000 3848.831540000000 2729.849610000000
1 9 60
4724.000000000000 0.000000000000 0.000000000000 0.000000000000 8804.417970000000 1561.751100000000
0.000000000000 4724.000000000000 0.000000000000 -8804.417970000000 0.000000000000 3243.971190000000
0.000000000000 0.000000000000 4724.000000000000 -1561.751100000000 -3243.971190000000 0.000000000000
0.000000000000 -8804.417970000000 -1561.751100000000 19212.939500000000 1478.932500000000 -6602.207030000000
8804.417970000000 0.000000000000 -3243.971190000000 1478.932500000000 20416.875000000000 3983.139650000000
1561.751100000000 3243.971190000000 0.000000000000 -6602.207030000000 3983.139650000000 3889.398440000000
1 18 60
4087.000000000000 0.000000000000 0.000000000000 0.000000000000 7812.197270000000 1331.869750000000
0.000000000000 4087.000000000000 0.000000000000 -7812.197270000000 0.000000000000 2589.360350000000
0.000000000000 0.000000000000 4087.000000000000 -1331.869750000000 -2589.360350000000 0.000000000000
0.000000000000 -7812.197270000000 -1331.869750000000 17143.128900000000 1093.527830000000 -5270.881350000000
7812.197270000000 0.000000000000 -2589.360350000000 1093.527830000000 18026.927700000000 3331.197510000000
1331.869750000000 2589.360350000000 0.000000000000 -5270.881350000000 3331.197510000000 2887.313960000000
1 19 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9399.859380000000 1406.237920000000
0.000000000000 5000.000000000000 0.000000000000 -9399.859380000000 0.000000000000 2664.071780000000
0.000000000000 0.000000000000 5000.000000000000 -1406.237920000000 -2664.071780000000 0.000000000000
0.000000000000 -9399.859380000000 -1406.237920000000 21375.041000000001 1113.690550000000 -5516.181640000000
9399.859380000000 0.000000000000 -2664.071780000000 1113.690550000000 21872.789100000002 4039.108640000000
1406.237920000000 2664.071780000000 0.000000000000 -5516.181640000000 4039.108640000000 3269.646730000000
1 20 60
2963.000000000000 0.000000000000 0.000000000000 0.000000000000 4724.031250000000 314.822357000000
0.000000000000 2963.000000000000 0.000000000000 -4724.031250000000 0.000000000000 1920.060060000000
0.000000000000 0.000000000000 2963.000000000000 -314.822357000000 -1920.060060000000 0.000000000000
0.000000000000 -4724.031250000000 -314.822357000000 9061.186519999999 515.915771000000 -3465.757320000000
4724.031250000000 0.000000000000 -1920.060060000000 515.915771000000 9948.657230000001 1188.860470000000
314.822357000000 1920.060060000000 0.000000000000 -3465.757320000000 1188.860470000000 2048.820560000000
1 25 60
2327.000000000000 0.000000000000 0.000000000000 0.000000000000 5941.959960000000 1652.886600000000
0.000000000000 2327.000000000000 0.000000000000 -5941.959960000000 0.000000000000 1907.437010000000
0.000000000000 0.000000000000 2327.000000000000 -1652.886600000000 -1907.437010000000 0.000000000000
0.000000000000 -5941.959960000000 -1652.886600000000 16810.089800000002 1433.753300000000 -4782.992680000000
5941.959960000000 0.000000000000 -1907.437010000000 1433.753300000000 17129.486300000000 4303.953130000000
1652.886600000000 1907.437010000000 0.000000000000 -4782.992680000000 4303.953130000000 3227.877930000000
1 30 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10271.943400000000 1091.013060000000
0.000000000000 5000.000000000000 0.000000000000 -10271.943400000000 0.000000000000 -3642.377440000000
0.000000000000 0.000000000000 5000.000000000000 -1091.013060000000 3642.377440000000 0.000000000000
0.000000000000 -10271.943400000000 -1091.013060000000 23489.392599999999 -262.356171000000 6966.707520000000
10271.943400000000 0.000000000000 3642.377440000000 -262.356171000000 25035.960899999998 3020.233150000000
1091.013060000000 -3642.377440000000 0.000000000000 6966.707520000000 3020.233150000000 4463.917970000000
1 33 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 7923.100100000000 -1544.969600000000
0.000000000000 5000.000000000000 0.000000000000 -7923.100100000000 0.000000000000 -1682.794920000000
0.000000000000 0.000000000000 5000.000000000000 1544.969600000000 1682.794920000000 0.000000000000
0.000000000000 -7923.100100000000 1544.969600000000 13548.571300000000 1065.850710000000 3029.700930000000
7923.100100000000 0.000000000000 1682.794920000000 1065.850710000000 14950.790000000001 -2536.266360000000
-1544.969600000000 -1682.794920000000 0.000000000000 3029.700930000000 -2536.266360000000 2894.563230000000
1 36 60
2060.000000000000 0.000000000000 0.000000000000 0.000000000000 3884.446780000000 654.399719000000
0.000000000000 2060.000000000000 0.000000000000 -3884.446780000000 0.000000000000 1543.955570000000
0.000000000000 0.000000000000 2060.000000000000 -654.399719000000 -1543.955570000000 0.000000000000
0.000000000000 -3884.446780000000 -654.399719000000 8139.222170000000 595.697510000000 -3044.352780000000
3884.446780000000 0.000000000000 -1543.955570000000 595.697510000000 8953.404300000000 1516.876220000000
654.399719000000 1543.955570000000 0.000000000000 -3044.352780000000 1516.876220000000 1691.966920000000
1 37 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9359.709960000000 947.481506000000
0.000000000000 5000.000000000000 0.000000000000 -9359.709960000000 0.000000000000 1778.957400000000
0.000000000000 0.000000000000 5000.000000000000 -947.481506000000 -1778.957400000000 0.000000000000
0.000000000000 -9359.709960000000 -947.481506000000 19991.869100000000 574.832458000000 -3368.233150000000
9359.709960000000 0.000000000000 -1778.957400000000 574.832458000000 20478.675800000001 2404.723630000000
947.481506000000 1778.957400000000 0.000000000000 -3368.233150000000 2404.723630000000 1818.909180000000
1 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8784.515630000000 306.391754000000
0.000000000000 5000.000000000000 0.000000000000 -8784.515630000000 0.000000000000 1186.390990000000
0.000000000000 0.000000000000 5000.000000000000 -306.391754000000 -1186.390990000000 0.000000000000
0.000000000000 -8784.515630000000 -306.391754000000 17522.503900000000 254.805984000000 -1881.514400000000
8784.515630000000 0.000000000000 -1186.390990000000 254.805984000000 17953.468799999999 991.416199000000
306.391754000000 1186.390990000000 0.000000000000 -1881.514400000000 991.416199000000 1199.848630000000
1 39 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8805.480470000000 699.115601000000
0.000000000000 5000.000000000000 0.000000000000 -8805.480470000000 0.000000000000 1857.265010000000
0.000000000000 0.000000000000 5000.000000000000 -699.115601000000 -1857.265010000000 0.000000000000
0.000000000000 -8805.480470000000 -699.115601000000 18277.226600000002 640.934387000000 -3562.402100000000
8805.480470000000 0.000000000000 -1857.265010000000 640.934387000000 18501.103500000001 2250.649660000000
699.115601000000 1857.265010000000 0.000000000000 -3562.402100000000 2250.649660000000 2088.554930000000
1 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12837.537100000000 3702.863040000000
0.000000000000 5000.000000000000 0.000000000000 -12837.537100000000 0.000000000000 -1141.941770000000
0.000000000000 0.000000000000 5000.000000000000 -3702.863040000000 1141.941770000000 0.000000000000
0.000000000000 -12837.537100000000 -3702.863040000000 36634.636700000003 -709.055969000000 2505.065190000000
12837.537100000000 0.000000000000 1141.941770000000 -709.055969000000 34475.730499999998 9697.972659999999
3702.863040000000 -1141.941770000000 0.000000000000 2505.065190000000 9697.972659999999 3801.521000000000
1 42 60
4098.000000000000 0.000000000000 0.000000000000 0.000000000000 10667.516600000001 3216.024900000000
0.000000000000 4098.000000000000 0.000000000000 -10667.516600000001 0.000000000000 -974.725403000000
0.000000000000 0.000000000000 4098.000000000000 -3216.024900000000 974.725403000000 0.000000000000
0.000000000000 -10667.516600000001 -3216.024900000000 30960.228500000001 -573.404358000000 2137.067380000000
10667.516600000001 0.000000000000 974.725403000000 -573.404358000000 29096.156299999999 8479.427729999999
3216.024900000000 -974.725403000000 0.000000000000 2137.067380000000 8479.427729999999 3588.743160000000
1 43 60
3057.000000000000 0.000000000000 0.000000000000 0.000000000000 8222.717769999999 2817.871340000000
0.000000000000 3057.000000000000 0.000000000000 -8222.717769999999 0.000000000000 -204.633865000000
0.000000000000 0.000000000000 3057.000000000000 -2817.871340000000 204.633865000000 0.000000000000
0.000000000000 -8222.717769999999 -2817.871340000000 25093.775399999999 -32.181175200000 253.273407000000
8222.717769999999 0.000000000000 204.633865000000 -32.181175200000 22974.939500000000 7667.896000000000
2817.871340000000 -204.633865000000 0.000000000000 253.273407000000 7667.896000000000 3256.553710000000
1 44 60
2461.000000000000 0.000000000000 0.000000000000 0.000000000000 6839.964840000000 2476.242680000000
0.000000000000 2461.000000000000 0.000000000000 -6839.964840000000 0.000000000000 523.244995000000
0.000000000000 0.000000000000 2461.000000000000 -2476.242680000000 -523.244995000000 0.000000000000
0.000000000000 -6839.964840000000 -2476.242680000000 21637.085899999998 605.567200000000 -1571.758670000000
6839.964840000000 0.000000000000 -523.244995000000 605.567200000000 19659.955099999999 6921.515140000000
2476.242680000000 523.244995000000 0.000000000000 -1571.758670000000 6921.515140000000 3087.860840000000
1 45 60
2941.000000000000 0.000000000000 0.000000000000 0.000000000000 7980.909670000000 2871.830320000000
0.000000000000 2941.000000000000 0.000000000000 -7980.909670000000 0.000000000000 1218.833130000000
0.000000000000 0.000000000000 2941.000000000000 -2871.830320000000 -1218.833130000000 0.000000000000
0.000000000000 -7980.909670000000 -2871.830320000000 24593.105500000001 1207.507930000000 -3285.004390000000
7980.909670000000 0.000000000000 -1218.833130000000 1207.507930000000 22815.439500000000 7844.439450000000
2871.830320000000 1218.833130000000 0.000000000000 -3285.004390000000 7844.439450000000 3930.639160000000
1 46 60
2902.000000000000 0.000000000000 0.000000000000 0.000000000000 7700.841310000000 2707.920900000000
0.000000000000 2902.000000000000 0.000000000000 -7700.841310000000 0.000000000000 1611.901730000000
0.000000000000 0.000000000000 2902.000000000000 -2707.920900000000 -1611.901730000000 0.000000000000
0.000000000000 -7700.841310000000 -2707.920900000000 23118.562500000000 1488.037960000000 -4215.088870000000
7700.841310000000 0.000000000000 -1611.901730000000 1488.037960000000 21933.515599999999 7251.308590000000
2707.920900000000 1611.901730000000 0.000000000000 -4215.088870000000 7251.308590000000 3993.579350000000
1 59 60
2425.000000000000 0.000000000000 0.000000000000 0.000000000000 4545.438480000000 502.649445000000
0.000000000000 2425.000000000000 0.000000000000 -4545.438480000000 0.000000000000 1540.568850000000
0.000000000000 0.000000000000 2425.000000000000 -502.649445000000 -1540.568850000000 0.000000000000
0.000000000000 -4545.438480000000 -502.649445000000 9408.333979999999 340.230408000000 -2844.579830000000
4545.438480000000 0.000000000000 -1540.568850000000 340.230408000000 10205.675800000001 1191.783570000000
502.649445000000 1540.568850000000 0.000000000000 -2844.579830000000 1191.783570000000 1329.013550000000
2 5 60
3654.000000000000 0.000000000000 0.000000000000 0.000000000000 9007.341800000000 2674.919680000000
0.000000000000 3654.000000000000 0.000000000000 -9007.341800000000 0.000000000000 3026.354980000000
0.000000000000 0.000000000000 3654.000000000000 -2674.919680000000 -3026.354980000000 0.000000000000
0.000000000000 -9007.341800000000 -2674.919680000000 25067.744100000000 2392.093260000000 -7473.842770000000
9007.341800000000 0.000000000000 -3026.354980000000 2392.093260000000 25034.101600000002 6723.410160000000
2674.919680000000 3026.354980000000 0.000000000000 -7473.842770000000 6723.410160000000 5242.987790000000
2 10 60
3071.000000000000 0.000000000000 0.000000000000 0.000000000000 7648.357420000000 2986.698000000000
0.000000000000 3071.000000000000 0.000000000000 -7648.357420000000 0.000000000000 2152.639890000000
0.000000000000 0.000000000000 3071.000000000000 -2986.698000000000 -2152.639890000000 0.000000000000
0.000000000000 -7648.357420000000 -2986.698000000000 22504.902300000002 2116.980710000000 -5344.425780000000
7648.357420000000 0.000000000000 -2152.639890000000 2116.980710000000 20850.507799999999 7570.666020000000
2986.698000000000 2152.639890000000 0.000000000000 -5344.425780000000 7570.666020000000 4908.541020000000
2 15 60
3043.000000000000 0.000000000000 0.000000000000 0.000000000000 7547.055660000000 928.953430000000
0.000000000000 3043.000000000000 0.000000000000 -7547.055660000000 0.000000000000 2130.778560000000
0.000000000000 0.000000000000 3043.000000000000 -928.953430000000 -2130.778560000000 0.000000000000
0.000000000000 -7547.055660000000 -928.953430000000 19516.544900000001 739.864441000000 -5250.295900000000
7547.055660000000 0.000000000000 -2130.778560000000 739.864441000000 20630.644499999999 2298.210210000000
928.953430000000 2130.778560000000 0.000000000000 -5250.295900000000 2298.210210000000 2072.302250000000
2 26 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11526.061500000000 2751.206790000000
0.000000000000 5000.000000000000 0.000000000000 -11526.061500000000 0.000000000000 3270.246830000000
0.000000000000 0.000000000000 5000.000000000000 -2751.206790000000 -3270.246830000000 0.000000000000
0.000000000000 -11526.061500000000 -2751.206790000000 28753.117200000001 1880.690310000000 -7656.038090000000
11526.061500000000 0.000000000000 -3270.246830000000 1880.690310000000 29344.918000000001 6373.179200000000
2751.206790000000 3270.246830000000 0.000000000000 -7656.038090000000 6373.179200000000 4716.547850000000
2 32 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8146.324710000000 -894.500610000000
0.000000000000 5000.000000000000 0.000000000000 -8146.324710000000 0.000000000000 -304.443420000000
0.000000000000 0.000000000000 5000.000000000000 894.500610000000 304.443420000000 0.000000000000
0.000000000000 -8146.324710000000 894.500610000000 14230.990200000000 162.288483000000 636.019287000000
8146.324710000000 0.000000000000 304.443420000000 162.288483000000 14129.076200000000 -1334.819340000000
-894.500610000000 -304.443420000000 0.000000000000 636.019287000000 -1334.819340000000 1280.284060000000
2 44 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12413.441400000000 5672.087400000000
0.000000000000 5000.000000000000 0.000000000000 -12413.441400000000 0.000000000000 2684.462400000000
0.000000000000 0.000000000000 5000.000000000000 -5672.087400000000 -2684.462400000000 0.000000000000
0.000000000000 -12413.441400000000 -5672.087400000000 37923.425799999997 2963.598880000000 -6818.377440000000
12413.441400000000 0.000000000000 -2684.462400000000 2963.598880000000 33143.394500000002 14240.596700000000
5672.087400000000 2684.462400000000 0.000000000000 -6818.377440000000 14240.596700000000 8942.742190000001
2 45 60
4474.000000000000 0.000000000000 0.000000000000 0.000000000000 11319.818400000000 5029.042970000000
0.000000000000 4474.000000000000 0.000000000000 -11319.818400000000 0.000000000000 3269.293700000000
0.000000000000 0.000000000000 4474.000000000000 -5029.042970000000 -3269.293700000000 0.000000000000
0.000000000000 -11319.818400000000 -5029.042970000000 34798.050799999997 3706.366700000000 -8246.049800000001
11319.818400000000 0.000000000000 -3269.293700000000 3706.366700000000 31437.752000000000 12884.941400000000
5029.042970000000 3269.293700000000 0.000000000000 -8246.049800000001 12884.941400000000 8662.089840000001
3 6 60
4256.000000000000 0.000000000000 0.000000000000 0.000000000000 7579.038090000000 -411.407715000000
0.000000000000 4256.000000000000 0.000000000000 -7579.038090000000 0.000000000000 4697.210940000000
0.000000000000 0.000000000000 4256.000000000000 411.407715000000 -4697.210940000000 0.000000000000
0.000000000000 -7579.038090000000 411.407715000000 14875.636699999999 -386.177979000000 -8397.356449999999
7579.038090000000 0.000000000000 -4697.210940000000 -386.177979000000 19731.043000000001 -270.187622000000
-411.407715000000 4697.210940000000 0.000000000000 -8397.356449999999 -270.187622000000 5710.841800000000
3 7 60
3834.000000000000 0.000000000000 0.000000000000 0.000000000000 6433.454590000000 -830.642578000000
0.000000000000 3834.000000000000 0.000000000000 -6433.454590000000 0.000000000000 4691.221190000000
0.000000000000 0.000000000000 3834.000000000000 830.642578000000 -4691.221190000000 0.000000000000
0.000000000000 -6433.454590000000 830.642578000000 11823.744100000000 -1004.109990000000 -7874.584960000000
6433.454590000000 0.000000000000 -4691.221190000000 -1004.109990000000 17255.660199999998 -1125.480470000000
-830.642578000000 4691.221190000000 0.000000000000 -7874.584960000000 -1125.480470000000 6214.627440000000
3 15 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9493.070309999999 -1765.218510000000
0.000000000000 5000.000000000000 0.000000000000 -9493.070309999999 0.000000000000 5279.791500000000
0.000000000000 0.000000000000 5000.000000000000 1765.218510000000 -5279.791500000000 0.000000000000
0.000000000000 -9493.070309999999 1765.218510000000 19986.955099999999 -1821.074710000000 -9683.031250000000
9493.070309999999 0.000000000000 -5279.791500000000 -1821.074710000000 25092.437500000000 -3247.910890000000
-1765.218510000000 5279.791500000000 0.000000000000 -9683.031250000000 -3247.910890000000 6892.822750000000
3 19 60
4265.000000000000 0.000000000000 0.000000000000 0.000000000000 7652.726560000000 -1043.909910000000
0.000000000000 4265.000000000000 0.000000000000 -7652.726560000000 0.000000000000 4996.566410000000
0.000000000000 0.000000000000 4265.000000000000 1043.909910000000 -4996.566410000000 0.000000000000
0.000000000000 -7652.726560000000 1043.909910000000 14666.264600000000 -1217.205930000000 -8929.257809999999
7652.726560000000 0.000000000000 -4996.566410000000 -1217.205930000000 20229.226600000002 -1766.654050000000
-1043.909910000000 4996.566410000000 0.000000000000 -8929.257809999999 -1766.654050000000 6505.530760000000
3 25 60
4747.000000000000 0.000000000000 0.000000000000 0.000000000000 8638.886720000000 -1343.842410000000
0.000000000000 4747.000000000000 0.000000000000 -8638.886720000000 0.000000000000 6096.410160000000
0.000000000000 0.000000000000 4747.000000000000 1343.842410000000 -6096.410160000000 0.000000000000
0.000000000000 -8638.886720000000 1343.842410000000 16841.273399999998 -1724.916630000000 -11049.429700000001
8638.886720000000 0.000000000000 -6096.410160000000 -1724.916630000000 23851.923800000000 -2318.158940000000
-1343.842410000000 6096.410160000000 0.000000000000 -11049.429700000001 -2318.158940000000 8810.067380000000
3 31 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8128.096680000000 -1011.569700000000
0.000000000000 5000.000000000000 0.000000000000 -8128.096680000000 0.000000000000 -584.198853000000
0.000000000000 0.000000000000 5000.000000000000 1011.569700000000 584.198853000000 0.000000000000
0.000000000000 -8128.096680000000 1011.569700000000 14083.044900000001 68.383316000000 795.265869000000
8128.096680000000 0.000000000000 584.198853000000 68.383316000000 13863.940399999999 -1636.688720000000
-1011.569700000000 -584.198853000000 0.000000000000 795.265869000000 -1636.688720000000 940.422668000000
3 32 60
3463.000000000000 0.000000000000 0.000000000000 0.000000000000 4965.597170000000 -1207.123780000000
0.000000000000 3463.000000000000 0.000000000000 -4965.597170000000 0.000000000000 -52.321418800000
0.000000000000 0.000000000000 3463.000000000000 1207.123780000000 52.321418800000 0.000000000000
0.000000000000 -4965.597170000000 1207.123780000000 7906.093260000000 -10.419385000000 254.499969000000
4965.597170000000 0.000000000000 52.321418800000 -10.419385000000 7875.771970000000 -1698.743290000000
-1207.123780000000 -52.321418800000 0.000000000000 254.499969000000 -1698.743290000000 1007.383670000000
3 36 60
3190.000000000000 0.000000000000 0.000000000000 0.000000000000 4320.091310000000 -1269.624630000000
0.000000000000 3190.000000000000 0.000000000000 -4320.091310000000 0.000000000000 3878.509770000000
0.000000000000 0.000000000000 3190.000000000000 1269.624630000000 -3878.509770000000 0.000000000000
0.000000000000 -4320.091310000000 1269.624630000000 7217.327150000000 -1493.100100000000 -5435.334470000000
4320.091310000000 0.000000000000 -3878.509770000000 -1493.100100000000 11391.827100000000 -1532.565310000000
-1269.624630000000 3878.509770000000 0.000000000000 -5435.334470000000 -1532.565310000000 5443.984860000000
3 37 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8593.054690000001 -2082.538090000000
0.000000000000 5000.000000000000 0.000000000000 -8593.054690000001 0.000000000000 5620.880860000000
0.000000000000 0.000000000000 5000.000000000000 2082.538090000000 -5620.880860000000 0.000000000000
0.000000000000 -8593.054690000001 2082.538090000000 16871.783200000002 -2227.835450000000 -9602.113280000000
8593.054690000001 0.000000000000 -5620.880860000000 -2227.835450000000 22419.468799999999 -3526.425050000000
-2082.538090000000 5620.880860000000 0.000000000000 -9602.113280000000 -3526.425050000000 7798.354000000000
3 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8502.123050000000 -1904.940060000000
0.000000000000 5000.000000000000 0.000000000000 -8502.123050000000 0.000000000000 5661.504880000000
0.000000000000 0.000000000000 5000.000000000000 1904.940060000000 -5661.504880000000 0.000000000000
0.000000000000 -8502.123050000000 1904.940060000000 16405.294900000001 -2058.157960000000 -9611.498050000000
8502.123050000000 0.000000000000 -5661.504880000000 -2058.157960000000 22149.781299999999 -3147.573000000000
-1904.940060000000 5661.504880000000 0.000000000000 -9611.498050000000 -3147.573000000000 7663.989750000000
3 39 60
4619.000000000000 0.000000000000 0.000000000000 0.000000000000 7783.093260000000 -1481.343260000000
0.000000000000 4619.000000000000 0.000000000000 -7783.093260000000 0.000000000000 5364.850100000000
0.000000000000 0.000000000000 4619.000000000000 1481.343260000000 -5364.850100000000 0.000000000000
0.000000000000 -7783.093260000000 1481.343260000000 14692.086900000000 -1666.740970000000 -9165.428710000000
7783.093260000000 0.000000000000 -5364.850100000000 -1666.740970000000 20387.722699999998 -2333.152100000000
-1481.343260000000 5364.850100000000 0.000000000000 -9165.428710000000 -2333.152100000000 7107.251460000000
3 46 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10704.981400000001 2071.539310000000
0.000000000000 5000.000000000000 0.000000000000 -10704.981400000001 0.000000000000 5820.911130000000
0.000000000000 0.000000000000 5000.000000000000 -2071.539310000000 -5820.911130000000 0.000000000000
0.000000000000 -10704.981400000001 -2071.539310000000 24613.347699999998 2456.681640000000 -12338.290000000001
10704.981400000001 0.000000000000 -5820.911130000000 2456.681640000000 30292.138700000000 4682.384770000000
2071.539310000000 5820.911130000000 0.000000000000 -12338.290000000001 4682.384770000000 8401.768550000001
3 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8271.142580000000 -2090.086180000000
0.000000000000 5000.000000000000 0.000000000000 -8271.142580000000 0.000000000000 6333.010740000000
0.000000000000 0.000000000000 5000.000000000000 2090.086180000000 -6333.010740000000 0.000000000000
0.000000000000 -8271.142580000000 2090.086180000000 15466.851600000000 -2634.464110000000 -10546.835900000000
8271.142580000000 0.000000000000 -6333.010740000000 -2634.464110000000 22539.630900000000 -3396.467040000000
-2090.086180000000 6333.010740000000 0.000000000000 -10546.835900000000 -3396.467040000000 9173.838870000000
4 8 60
4701.000000000000 0.000000000000 0.000000000000 0.000000000000 10990.556600000000 235.949097000000
0.000000000000 4701.000000000000 0.000000000000 -10990.556600000000 0.000000000000 4784.711430000000
0.000000000000 0.000000000000 4701.000000000000 -235.949097000000 -4784.711430000000 0.000000000000
0.000000000000 -10990.556600000000 -235.949097000000 26783.146499999999 200.565826000000 -11291.783200000000
10990.556600000000 0.000000000000 -4784.711430000000 200.565826000000 31431.581999999999 604.592712000000
235.949097000000 4784.711430000000 0.000000000000 -11291.783200000000 604.592712000000 6028.567870000000
4 16 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9354.194340000000 -1484.574340000000
0.000000000000 5000.000000000000 0.000000000000 -9354.194340000000 0.000000000000 2780.968990000000
0.000000000000 0.000000000000 5000.000000000000 1484.574340000000 -2780.968990000000 0.000000000000
0.000000000000 -9354.194340000000 1484.574340000000 19770.970700000002 -765.948303000000 -5217.941890000000
9354.194340000000 0.000000000000 -2780.968990000000 -765.948303000000 21169.333999999999 -2405.883300000000
-1484.574340000000 2780.968990000000 0.000000000000 -5217.941890000000 -2405.883300000000 2895.241460000000
4 17 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9705.715819999999 -821.856995000000
0.000000000000 5000.000000000000 0.000000000000 -9705.715819999999 0.000000000000 3739.321530000000
0.000000000000 0.000000000000 5000.000000000000 821.856995000000 -3739.321530000000 0.000000000000
0.000000000000 -9705.715819999999 821.856995000000 21098.947300000000 -378.161255000000 -7535.533690000000
9705.715819999999 0.000000000000 -3739.321530000000 -378.161255000000 23521.242200000001 -1007.045720000000
-821.856995000000 3739.321530000000 0.000000000000 -7535.533690000000 -1007.045720000000 4122.998540000000
4 20 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9910.185550000000 -195.890884000000
0.000000000000 5000.000000000000 0.000000000000 -9910.185550000000 0.000000000000 3455.757810000000
0.000000000000 0.000000000000 5000.000000000000 195.890884000000 -3455.757810000000 0.000000000000
0.000000000000 -9910.185550000000 195.890884000000 21754.433600000000 4.113144870000 -6989.491210000000
9910.185550000000 0.000000000000 -3455.757810000000 4.113144870000 24088.675800000001 398.165680000000
-195.890884000000 3455.757810000000 0.000000000000 -6989.491210000000 398.165680000000 3784.359130000000
4 21 60
3984.000000000000 0.000000000000 0.000000000000 0.000000000000 8953.137699999999 -1007.425600000000
0.000000000000 3984.000000000000 0.000000000000 -8953.137699999999 0.000000000000 4864.489260000000
0.000000000000 0.000000000000 3984.000000000000 1007.425600000000 -4864.489260000000 0.000000000000
0.000000000000 -8953.137699999999 1007.425600000000 22088.246100000000 -1106.666020000000 -11375.032200000000
8953.137699999999 0.000000000000 -4864.489260000000 -1106.666020000000 27619.087899999999 -2016.485110000000
-1007.425600000000 4864.489260000000 0.000000000000 -11375.032200000000 -2016.485110000000 6747.472170000000
4 24 60
4052.000000000000 0.000000000000 0.000000000000 0.000000000000 10205.027300000000 -602.807068000000
0.000000000000 4052.000000000000 0.000000000000 -10205.027300000000 0.000000000000 5110.705570000000
0.000000000000 0.000000000000 4052.000000000000 602.807068000000 -5110.705570000000 0.000000000000
0.000000000000 -10205.027300000000 602.807068000000 26494.441400000000 -836.326050000000 -12922.021500000001
10205.027300000000 0.000000000000 -5110.705570000000 -836.326050000000 32405.458999999999 -1621.174800000000
-602.807068000000 5110.705570000000 0.000000000000 -12922.021500000001 -1621.174800000000 7164.469240000000
4 28 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10446.277300000000 -1014.448490000000
0.000000000000 5000.000000000000 0.000000000000 -10446.277300000000 0.000000000000 -3429.631840000000
0.000000000000 0.000000000000 5000.000000000000 1014.448490000000 3429.631840000000 0.000000000000
0.000000000000 -10446.277300000000 1014.448490000000 24017.978500000001 350.268799000000 7742.930660000000
10446.277300000000 0.000000000000 3429.631840000000 350.268799000000 26011.521499999999 -1828.713990000000
-1014.448490000000 -3429.631840000000 0.000000000000 7742.930660000000 -1828.713990000000 4254.934570000000
4 29 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11470.825199999999 -333.735779000000
0.000000000000 5000.000000000000 0.000000000000 -11470.825199999999 0.000000000000 -4382.509280000000
0.000000000000 0.000000000000 5000.000000000000 333.735779000000 4382.509280000000 0.000000000000
0.000000000000 -11470.825199999999 333.735779000000 27816.531299999999 -1.911907200000 10105.373000000000
11470.825199999999 0.000000000000 4382.509280000000 -1.911907200000 30772.107400000001 -621.646362000000
-333.735779000000 -4382.509280000000 0.000000000000 10105.373000000000 -621.646362000000 5211.849610000000
4 35 60
3532.000000000000 0.000000000000 0.000000000000 0.000000000000 8025.152830000000 536.236450000000
0.000000000000 3532.000000000000 0.000000000000 -8025.152830000000 0.000000000000 3470.155520000000
0.000000000000 0.000000000000 3532.000000000000 -536.236450000000 -3470.155520000000 0.000000000000
0.000000000000 -8025.152830000000 -536.236450000000 18829.998000000000 659.553040000000 -7988.810060000000
8025.152830000000 0.000000000000 -3470.155520000000 659.553040000000 22087.232400000001 1288.229000000000
536.236450000000 3470.155520000000 0.000000000000 -7988.810060000000 1288.229000000000 4225.658200000000
4 36 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9804.099609999999 -533.317078000000
0.000000000000 5000.000000000000 0.000000000000 -9804.099609999999 0.000000000000 3039.068120000000
0.000000000000 0.000000000000 5000.000000000000 533.317078000000 -3039.068120000000 0.000000000000
0.000000000000 -9804.099609999999 533.317078000000 21238.496100000000 -72.397369400000 -6135.634770000000
9804.099609999999 0.000000000000 -3039.068120000000 -72.397369400000 22828.652300000002 -454.955841000000
-533.317078000000 3039.068120000000 0.000000000000 -6135.634770000000 -454.955841000000 3215.793700000000
4 40 60
3895.000000000000 0.000000000000 0.000000000000 0.000000000000 8685.416020000001 824.098694000000
0.000000000000 3895.000000000000 0.000000000000 -8685.416020000001 0.000000000000 -1931.682620000000
0.000000000000 0.000000000000 3895.000000000000 -824.098694000000 1931.682620000000 0.000000000000
0.000000000000 -8685.416020000001 -824.098694000000 21706.793000000001 -236.275513000000 4331.057130000000
8685.416020000001 0.000000000000 1931.682620000000 -236.275513000000 21467.171900000001 2521.211180000000
824.098694000000 -1931.682620000000 0.000000000000 4331.057130000000 2521.211180000000 2707.371090000000
4 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12275.746100000000 2019.513670000000
0.000000000000 5000.000000000000 0.000000000000 -12275.746100000000 0.000000000000 -3336.854000000000
0.000000000000 0.000000000000 5000.000000000000 -2019.513670000000 3336.854000000000 0.000000000000
0.000000000000 -12275.746100000000 -2019.513670000000 32204.423800000000 -1512.936040000000 8317.478520000001
12275.746100000000 0.000000000000 3336.854000000000 -1512.936040000000 33054.894500000002 5240.685550000000
2019.513670000000 -3336.854000000000 0.000000000000 8317.478520000001 5240.685550000000 4453.647460000000
4 43 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12338.087900000000 2674.953130000000
0.000000000000 5000.000000000000 0.000000000000 -12338.087900000000 0.000000000000 -3048.465580000000
0.000000000000 0.000000000000 5000.000000000000 -2674.953130000000 3048.465580000000 0.000000000000
0.000000000000 -12338.087900000000 -2674.953130000000 32600.841799999998 -1642.332400000000 7499.555660000000
12338.087900000000 0.000000000000 3048.465580000000 -1642.332400000000 33050.761700000003 6780.707030000000
2674.953130000000 -3048.465580000000 0.000000000000 7499.555660000000 6780.707030000000 4499.896970000000
4 48 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11681.127899999999 2232.801760000000
0.000000000000 5000.000000000000 0.000000000000 -11681.127899999999 0.000000000000 3740.020510000000
0.000000000000 0.000000000000 5000.000000000000 -2232.801760000000 -3740.020510000000 0.000000000000
0.000000000000 -11681.127899999999 -2232.801760000000 28793.710899999998 1582.912600000000 -8623.263670000000
11681.127899999999 0.000000000000 -3740.020510000000 1582.912600000000 31127.240200000000 5305.510250000000
2232.801760000000 3740.020510000000 0.000000000000 -8623.263670000000 5305.510250000000 5147.372070000000
4 49 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11713.282200000000 2173.110350000000
0.000000000000 5000.000000000000 0.000000000000 -11713.282200000000 0.000000000000 3855.835450000000
0.000000000000 0.000000000000 5000.000000000000 -2173.110350000000 -3855.835450000000 0.000000000000
0.000000000000 -11713.282200000000 -2173.110350000000 28839.958999999999 1560.179440000000 -8951.598630000000
11713.282200000000 0.000000000000 -3855.835450000000 1560.179440000000 31260.886699999999 5170.677730000000
2173.110350000000 3855.835450000000 0.000000000000 -8951.598630000000 5170.677730000000 5055.335450000000
4 50 60
4495.000000000000 0.000000000000 0.000000000000 0.000000000000 10613.075199999999 1523.668950000000
0.000000000000 4495.000000000000 0.000000000000 -10613.075199999999 0.000000000000 3233.856930000000
0.000000000000 0.000000000000 4495.000000000000 -1523.668950000000 -3233.856930000000 0.000000000000
0.000000000000 -10613.075199999999 -1523.668950000000 25867.335899999998 1035.859130000000 -7527.774410000000
10613.075199999999 0.000000000000 -3233.856930000000 1035.859130000000 28176.421900000001 3686.243410000000
1523.668950000000 3233.856930000000 0.000000000000 -7527.774410000000 3686.243410000000 3737.318360000000
4 51 60
2961.000000000000 0.000000000000 0.000000000000 0.000000000000 7148.076660000000 1114.621090000000
0.000000000000 2961.000000000000 0.000000000000 -7148.076660000000 0.000000000000 1394.509520000000
0.000000000000 0.000000000000 2961.000000000000 -1114.621090000000 -1394.509520000000 0.000000000000
0.000000000000 -7148.076660000000 -1114.621090000000 17779.449199999999 499.443237000000 -3285.363530000000
7148.076660000000 0.000000000000 -1394.509520000000 499.443237000000 18331.765599999999 2721.584230000000
1114.621090000000 1394.509520000000 0.000000000000 -3285.363530000000 2721.584230000000 1499.411380000000
4 52 60
4652.000000000000 0.000000000000 0.000000000000 0.000000000000 10960.546899999999 1527.117430000000
0.000000000000 4652.000000000000 0.000000000000 -10960.546899999999 0.000000000000 3436.518800000000
0.000000000000 0.000000000000 4652.000000000000 -1527.117430000000 -3436.518800000000 0.000000000000
0.000000000000 -10960.546899999999 -1527.117430000000 26663.831999999999 1022.483830000000 -7990.132810000000
10960.546899999999 0.000000000000 -3436.518800000000 1022.483830000000 29196.646499999999 3700.628660000000
1527.117430000000 3436.518800000000 0.000000000000 -7990.132810000000 3700.628660000000 4020.313720000000
4 53 60
4767.000000000000 0.000000000000 0.000000000000 0.000000000000 11095.000000000000 1425.144530000000
0.000000000000 4767.000000000000 0.000000000000 -11095.000000000000 0.000000000000 3886.806150000000
0.000000000000 0.000000000000 4767.000000000000 -1425.144530000000 -3886.806150000000 0.000000000000
0.000000000000 -11095.000000000000 -1425.144530000000 26724.011699999999 1096.297490000000 -9026.979490000000
11095.000000000000 0.000000000000 -3886.806150000000 1096.297490000000 29651.974600000001 3449.822270000000
1425.144530000000 3886.806150000000 0.000000000000 -9026.979490000000 3449.822270000000 4541.528810000000
4 54 60
3930.000000000000 0.000000000000 0.000000000000 0.000000000000 7209.002930000000 -590.859558000000
0.000000000000 3930.000000000000 0.000000000000 -7209.002930000000 0.000000000000 3355.169430000000
0.000000000000 0.000000000000 3930.000000000000 590.859558000000 -3355.169430000000 0.000000000000
0.000000000000 -7209.002930000000 590.859558000000 15116.586900000000 -216.144333000000 -6516.764160000000
7209.002930000000 0.000000000000 -3355.169430000000 -216.144333000000 17599.152300000002 -422.025146000000
-590.859558000000 3355.169430000000 0.000000000000 -6516.764160000000 -422.025146000000 3830.560550000000
4 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 6874.162110000000 -2213.178710000000
0.000000000000 5000.000000000000 0.000000000000 -6874.162110000000 0.000000000000 2843.459720000000
0.000000000000 0.000000000000 5000.000000000000 2213.178710000000 -2843.459720000000 0.000000000000
0.000000000000 -6874.162110000000 2213.178710000000 11601.985400000000 -1240.666990000000 -4118.570800000000
6874.162110000000 0.000000000000 -2843.459720000000 -1240.666990000000 12425.722700000000 -2846.217770000000
-2213.178710000000 2843.459720000000 0.000000000000 -4118.570800000000 -2846.217770000000 2956.496340000000
4 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9487.018550000001 -1571.414430000000
0.000000000000 5000.000000000000 0.000000000000 -9487.018550000001 0.000000000000 2034.056760000000
0.000000000000 0.000000000000 5000.000000000000 1571.414430000000 -2034.056760000000 0.000000000000
0.000000000000 -9487.018550000001 1571.414430000000 19930.658200000002 -716.070801000000 -3573.694340000000
9487.018550000001 0.000000000000 -2034.056760000000 -716.070801000000 20603.570299999999 -2751.277830000000
-1571.414430000000 2034.056760000000 0.000000000000 -3573.694340000000 -2751.277830000000 2001.061400000000
5 13 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11925.150400000000 308.791748000000
0.000000000000 5000.000000000000 0.000000000000 -11925.150400000000 0.000000000000 -3700.150630000000
0.000000000000 0.000000000000 5000.000000000000 -308.791748000000 3700.150630000000 0.000000000000
0.000000000000 -11925.150400000000 -308.791748000000 29786.732400000001 -322.653870000000 9166.253909999999
11925.150400000000 0.000000000000 3700.150630000000 -322.653870000000 32620.275399999999 1081.333740000000
308.791748000000 -3700.150630000000 0.000000000000 9166.253909999999 1081.333740000000 4000.422850000000
5 14 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11903.078100000001 -26.995672200000
0.000000000000 5000.000000000000 0.000000000000 -11903.078100000001 0.000000000000 -2613.323000000000
0.000000000000 0.000000000000 5000.000000000000 26.995672200000 2613.323000000000 0.000000000000
0.000000000000 -11903.078100000001 26.995672200000 29107.517599999999 -86.216049200000 6457.917480000000
11903.078100000001 0.000000000000 2613.323000000000 -86.216049200000 31250.066400000000 92.233299300000
-26.995672200000 -2613.323000000000 0.000000000000 6457.917480000000 92.233299300000 2786.522460000000
5 21 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10817.588900000001 21.676635700000
0.000000000000 5000.000000000000 0.000000000000 -10817.588900000001 0.000000000000 4369.466310000000
0.000000000000 0.000000000000 5000.000000000000 -21.676635700000 -4369.466310000000 0.000000000000
0.000000000000 -10817.588900000001 -21.676635700000 26985.859400000001 320.935913000000 -10074.344700000000
10817.588900000001 0.000000000000 -4369.466310000000 320.935913000000 30560.343799999999 911.798096000000
21.676635700000 4369.466310000000 0.000000000000 -10074.344700000000 911.798096000000 4807.875490000000
5 24 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 13139.924800000001 301.898285000000
0.000000000000 5000.000000000000 0.000000000000 -13139.924800000001 0.000000000000 5296.580080000000
0.000000000000 0.000000000000 5000.000000000000 -301.898285000000 -5296.580080000000 0.000000000000
0.000000000000 -13139.924800000001 -301.898285000000 35761.648399999998 279.081635000000 -13990.005900000000
13139.924800000001 0.000000000000 -5296.580080000000 279.081635000000 41209.906300000002 756.642334000000
301.898285000000 5296.580080000000 0.000000000000 -13990.005900000000 756.642334000000 6457.427730000000
5 27 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9276.779300000000 -635.850647000000
0.000000000000 5000.000000000000 0.000000000000 -9276.779300000000 0.000000000000 -1563.921750000000
0.000000000000 0.000000000000 5000.000000000000 635.850647000000 1563.921750000000 0.000000000000
0.000000000000 -9276.779300000000 635.850647000000 19878.595700000002 -138.544830000000 3859.977540000000
9276.779300000000 0.000000000000 1563.921750000000 -138.544830000000 20909.914100000002 -519.903748000000
-635.850647000000 -1563.921750000000 0.000000000000 3859.977540000000 -519.903748000000 2335.375490000000
5 28 60
2727.000000000000 0.000000000000 0.000000000000 0.000000000000 5686.242680000000 -590.532898000000
0.000000000000 2727.000000000000 0.000000000000 -5686.242680000000 0.000000000000 -1915.102540000000
0.000000000000 0.000000000000 2727.000000000000 590.532898000000 1915.102540000000 0.000000000000
0.000000000000 -5686.242680000000 590.532898000000 13114.352500000001 418.192352000000 4483.694820000000
5686.242680000000 0.000000000000 1915.102540000000 418.192352000000 14479.354499999999 -1101.701290000000
-590.532898000000 -1915.102540000000 0.000000000000 4483.694820000000 -1101.701290000000 2109.735600000000
5 34 60
4250.000000000000 0.000000000000 0.000000000000 0.000000000000 5054.759770000000 -1368.428220000000
0.000000000000 4250.000000000000 0.000000000000 -5054.759770000000 0.000000000000 1222.189580000000
0.000000000000 0.000000000000 4250.000000000000 1368.428220000000 -1222.189580000000 0.000000000000
0.000000000000 -5054.759770000000 1368.428220000000 6592.536130000000 -357.963135000000 -1540.377690000000
5054.759770000000 0.000000000000 -1222.189580000000 -357.963135000000 7352.076660000000 -1581.886840000000
-1368.428220000000 1222.189580000000 0.000000000000 -1540.377690000000 -1581.886840000000 1677.260130000000
5 35 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11815.374000000000 1298.625850000000
0.000000000000 5000.000000000000 0.000000000000 -11815.374000000000 0.000000000000 3911.072510000000
0.000000000000 0.000000000000 5000.000000000000 -1298.625850000000 -3911.072510000000 0.000000000000
0.000000000000 -11815.374000000000 -1298.625850000000 29960.900399999999 962.307129000000 -9263.725590000000
11815.374000000000 0.000000000000 -3911.072510000000 962.307129000000 32772.910199999998 3528.813480000000
1298.625850000000 3911.072510000000 0.000000000000 -9263.725590000000 3528.813480000000 4851.814450000000
5 40 60
2582.000000000000 0.000000000000 0.000000000000 0.000000000000 6438.695310000000 924.353638000000
0.000000000000 2582.000000000000 0.000000000000 -6438.695310000000 0.000000000000 -2425.165530000000
0.000000000000 0.000000000000 2582.000000000000 -924.353638000000 2425.165530000000 0.000000000000
0.000000000000 -6438.695310000000 -924.353638000000 17478.252000000000 -859.824097000000 6113.260740000000
6438.695310000000 0.000000000000 2425.165530000000 -859.824097000000 18783.509800000000 2620.581050000000
924.353638000000 -2425.165530000000 0.000000000000 6113.260740000000 2620.581050000000 3427.048100000000
5 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12764.005900000000 1651.658450000000
0.000000000000 5000.000000000000 0.000000000000 -12764.005900000000 0.000000000000 -5287.194340000000
0.000000000000 0.000000000000 5000.000000000000 -1651.658450000000 5287.194340000000 0.000000000000
0.000000000000 -12764.005900000000 -1651.658450000000 34105.324200000003 -1872.057010000000 13604.377899999999
12764.005900000000 0.000000000000 5287.194340000000 -1872.057010000000 38567.183599999997 4442.411130000000
1651.658450000000 -5287.194340000000 0.000000000000 13604.377899999999 4442.411130000000 7220.537110000000
5 42 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12924.936500000000 2311.959470000000
0.000000000000 5000.000000000000 0.000000000000 -12924.936500000000 0.000000000000 -4962.777830000000
0.000000000000 0.000000000000 5000.000000000000 -2311.959470000000 4962.777830000000 0.000000000000
0.000000000000 -12924.936500000000 -2311.959470000000 35513.445299999999 -2363.528320000000 12908.959999999999
12924.936500000000 0.000000000000 4962.777830000000 -2363.528320000000 38707.777300000002 6191.823240000000
2311.959470000000 -4962.777830000000 0.000000000000 12908.959999999999 6191.823240000000 7152.328130000000
5 43 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12905.974600000000 2530.711910000000
0.000000000000 5000.000000000000 0.000000000000 -12905.974600000000 0.000000000000 -4956.838380000000
0.000000000000 0.000000000000 5000.000000000000 -2530.711910000000 4956.838380000000 0.000000000000
0.000000000000 -12905.974600000000 -2530.711910000000 35446.066400000003 -2553.890140000000 12864.193400000000
12905.974600000000 0.000000000000 4956.838380000000 -2553.890140000000 38628.738299999997 6743.790530000000
2530.711910000000 -4956.838380000000 0.000000000000 12864.193400000000 6743.790530000000 7188.825200000000
5 44 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12869.760700000001 2481.693600000000
0.000000000000 5000.000000000000 0.000000000000 -12869.760700000001 0.000000000000 -4784.133300000000
0.000000000000 0.000000000000 5000.000000000000 -2481.693600000000 4784.133300000000 0.000000000000
0.000000000000 -12869.760700000001 -2481.693600000000 35161.750000000000 -2419.187740000000 12379.353499999999
12869.760700000001 0.000000000000 4784.133300000000 -2419.187740000000 38175.500000000000 6595.824220000000
2481.693600000000 -4784.133300000000 0.000000000000 12379.353499999999 6595.824220000000 6817.300780000000
5 45 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12968.774400000000 2876.069090000000
0.000000000000 5000.000000000000 0.000000000000 -12968.774400000000 0.000000000000 -3850.705320000000
0.000000000000 0.000000000000 5000.000000000000 -2876.069090000000 3850.705320000000 0.000000000000
0.000000000000 -12968.774400000000 -2876.069090000000 35940.332000000002 -2123.041500000000 10069.609399999999
12968.774400000000 0.000000000000 3850.705320000000 -2123.041500000000 37732.863299999997 7621.657230000000
2876.069090000000 -3850.705320000000 0.000000000000 10069.609399999999 7621.657230000000 6132.156740000000
5 50 60
3344.000000000000 0.000000000000 0.000000000000 0.000000000000 8607.951170000000 1650.927610000000
0.000000000000 3344.000000000000 0.000000000000 -8607.951170000000 0.000000000000 943.459839000000
0.000000000000 0.000000000000 3344.000000000000 -1650.927610000000 -943.459839000000 0.000000000000
0.000000000000 -8607.951170000000 -1650.927610000000 23129.228500000001 476.069550000000 -2457.511720000000
8607.951170000000 0.000000000000 -943.459839000000 476.069550000000 23037.949199999999 4285.357420000000
1650.927610000000 943.459839000000 0.000000000000 -2457.511720000000 4285.357420000000 1739.130130000000
5 51 60
1789.000000000000 0.000000000000 0.000000000000 0.000000000000 4622.170410000000 881.409790000000
0.000000000000 1789.000000000000 0.000000000000 -4622.170410000000 0.000000000000 -80.759948700000
0.000000000000 0.000000000000 1789.000000000000 -881.409790000000 80.759948700000 0.000000000000
0.000000000000 -4622.170410000000 -881.409790000000 12433.554700000001 -41.764171600000 233.359772000000
4622.170410000000 0.000000000000 80.759948700000 -41.764171600000 12187.734399999999 2292.682130000000
881.409790000000 -80.759948700000 0.000000000000 233.359772000000 2292.682130000000 681.733704000000
5 52 60
4000.000000000000 0.000000000000 0.000000000000 0.000000000000 10273.603499999999 1931.882810000000
0.000000000000 4000.000000000000 0.000000000000 -10273.603499999999 0.000000000000 1571.776120000000
0.000000000000 0.000000000000 4000.000000000000 -1931.882810000000 -1571.776120000000 0.000000000000
0.000000000000 -10273.603499999999 -1931.882810000000 27517.619100000000 731.579712000000 -4042.025880000000
10273.603499999999 0.000000000000 -1571.776120000000 731.579712000000 27935.019499999999 5000.363770000000
1931.882810000000 1571.776120000000 0.000000000000 -4042.025880000000 5000.363770000000 2544.975590000000
5 53 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12667.449199999999 2358.864260000000
0.000000000000 5000.000000000000 0.000000000000 -12667.449199999999 0.000000000000 2742.484130000000
0.000000000000 0.000000000000 5000.000000000000 -2358.864260000000 -2742.484130000000 0.000000000000
0.000000000000 -12667.449199999999 -2358.864260000000 33670.546900000001 1211.841310000000 -6900.138670000000
12667.449199999999 0.000000000000 -2742.484130000000 1211.841310000000 35143.554700000001 6099.033690000000
2358.864260000000 2742.484130000000 0.000000000000 -6900.138670000000 6099.033690000000 4261.882810000000
5 54 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10476.262699999999 673.039001000000
0.000000000000 5000.000000000000 0.000000000000 -10476.262699999999 0.000000000000 3843.280520000000
0.000000000000 0.000000000000 5000.000000000000 -673.039001000000 -3843.280520000000 0.000000000000
0.000000000000 -10476.262699999999 -673.039001000000 24693.130900000000 764.314331000000 -8361.511720000000
10476.262699999999 0.000000000000 -3843.280520000000 764.314331000000 27329.521499999999 2385.036130000000
673.039001000000 3843.280520000000 0.000000000000 -8361.511720000000 2385.036130000000 4447.028320000000
5 55 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8550.016600000001 -999.524597000000
0.000000000000 5000.000000000000 0.000000000000 -8550.016600000001 0.000000000000 3860.597900000000
0.000000000000 0.000000000000 5000.000000000000 999.524597000000 -3860.597900000000 0.000000000000
0.000000000000 -8550.016600000001 999.524597000000 17556.107400000001 -452.874969000000 -7924.193850000000
8550.016600000001 0.000000000000 -3860.597900000000 -452.874969000000 21109.373000000000 -1196.949710000000
-999.524597000000 3860.597900000000 0.000000000000 -7924.193850000000 -1196.949710000000 4443.185060000000
5 57 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 6038.250980000000 -1606.969600000000
0.000000000000 5000.000000000000 0.000000000000 -6038.250980000000 0.000000000000 1780.218630000000
0.000000000000 0.000000000000 5000.000000000000 1606.969600000000 -1780.218630000000 0.000000000000
0.000000000000 -6038.250980000000 1606.969600000000 8131.605960000000 -533.241638000000 -2264.977540000000
6038.250980000000 0.000000000000 -1780.218630000000 -533.241638000000 8765.736330000000 -1865.313840000000
-1606.969600000000 1780.218630000000 0.000000000000 -2264.977540000000 -1865.313840000000 1719.880250000000
5 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 7275.483400000000 -1340.569090000000
0.000000000000 5000.000000000000 0.000000000000 -7275.483400000000 0.000000000000 2128.685300000000
0.000000000000 0.000000000000 5000.000000000000 1340.569090000000 -2128.685300000000 0.000000000000
0.000000000000 -7275.483400000000 1340.569090000000 12406.703100000001 -500.920135000000 -3426.835690000000
7275.483400000000 0.000000000000 -2128.685300000000 -500.920135000000 13539.574199999999 -1679.084470000000
-1340.569090000000 2128.685300000000 0.000000000000 -3426.835690000000 -1679.084470000000 2028.207640000000
5 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9465.864260000000 -783.924133000000
0.000000000000 5000.000000000000 0.000000000000 -9465.864260000000 0.000000000000 1130.412480000000
0.000000000000 0.000000000000 5000.000000000000 783.924133000000 -1130.412480000000 0.000000000000
0.000000000000 -9465.864260000000 783.924133000000 19781.218799999999 -330.703827000000 -1753.772580000000
9465.864260000000 0.000000000000 -1130.412480000000 -330.703827000000 20736.910199999998 -1185.212770000000
-783.924133000000 1130.412480000000 0.000000000000 -1753.772580000000 -1185.212770000000 1484.465700000000
6 13 60
4044.000000000000 0.000000000000 0.000000000000 0.000000000000 9687.753909999999 1980.911010000000
0.000000000000 4044.000000000000 0.000000000000 -9687.753909999999 0.000000000000 -4135.395510000000
0.000000000000 0.000000000000 4044.000000000000 -1980.911010000000 4135.395510000000 0.000000000000
0.000000000000 -9687.753909999999 -1980.911010000000 24859.484400000001 -2050.680910000000 10009.163100000000
9687.753909999999 0.000000000000 4135.395510000000 -2050.680910000000 27998.865200000000 4976.793950000000
1980.911010000000 -4135.395510000000 0.000000000000 10009.163100000000 4976.793950000000 5698.465820000000
6 14 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11549.401400000001 1771.553830000000
0.000000000000 5000.000000000000 0.000000000000 -11549.401400000001 0.000000000000 -3582.184330000000
0.000000000000 0.000000000000 5000.000000000000 -1771.553830000000 3582.184330000000 0.000000000000
0.000000000000 -11549.401400000001 -1771.553830000000 28068.158200000002 -1481.931760000000 8505.575199999999
11549.401400000001 0.000000000000 3582.184330000000 -1481.931760000000 30575.259800000000 4327.713380000000
1771.553830000000 -3582.184330000000 0.000000000000 8505.575199999999 4327.713380000000 4325.891600000000
6 22 60
3547.000000000000 0.000000000000 0.000000000000 0.000000000000 7026.928220000000 770.194824000000
0.000000000000 3547.000000000000 0.000000000000 -7026.928220000000 0.000000000000 3959.747070000000
0.000000000000 0.000000000000 3547.000000000000 -770.194824000000 -3959.747070000000 0.000000000000
0.000000000000 -7026.928220000000 -770.194824000000 16679.357400000001 1156.047490000000 -8499.937500000000
7026.928220000000 0.000000000000 -3959.747070000000 1156.047490000000 20628.712899999999 2334.942140000000
770.194824000000 3959.747070000000 0.000000000000 -8499.937500000000 2334.942140000000 5380.231930000000
6 27 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8988.298830000000 933.636902000000
0.000000000000 5000.000000000000 0.000000000000 -8988.298830000000 0.000000000000 -2916.562010000000
0.000000000000 0.000000000000 5000.000000000000 -933.636902000000 2916.562010000000 0.000000000000
0.000000000000 -8988.298830000000 -933.636902000000 19028.267599999999 -1110.956670000000 6236.532230000000
8988.298830000000 0.000000000000 2916.562010000000 -1110.956670000000 20747.218799999999 2649.037350000000
933.636902000000 -2916.562010000000 0.000000000000 6236.532230000000 2649.037350000000 3470.623780000000
6 34 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 5844.982420000000 -671.753784000000
0.000000000000 5000.000000000000 0.000000000000 -5844.982420000000 0.000000000000 902.236328000000
0.000000000000 0.000000000000 5000.000000000000 671.753784000000 -902.236328000000 0.000000000000
0.000000000000 -5844.982420000000 671.753784000000 7331.554690000000 -148.294159000000 -1131.668210000000
5844.982420000000 0.000000000000 -902.236328000000 -148.294159000000 8429.306640000001 -642.581360000000
-671.753784000000 902.236328000000 0.000000000000 -1131.668210000000 -642.581360000000 1412.590580000000
6 42 60
2473.000000000000 0.000000000000 0.000000000000 0.000000000000 6098.935550000000 1216.941040000000
0.000000000000 2473.000000000000 0.000000000000 -6098.935550000000 0.000000000000 -2841.204590000000
0.000000000000 0.000000000000 2473.000000000000 -1216.941040000000 2841.204590000000 0.000000000000
0.000000000000 -6098.935550000000 -1216.941040000000 15891.479499999999 -1412.831670000000 7013.864260000000
6098.935550000000 0.000000000000 2841.204590000000 -1412.831670000000 18387.869100000000 3068.259520000000
1216.941040000000 -2841.204590000000 0.000000000000 7013.864260000000 3068.259520000000 4099.659180000000
6 44 60
1464.000000000000 0.000000000000 0.000000000000 0.000000000000 3687.711910000000 1045.301270000000
0.000000000000 1464.000000000000 0.000000000000 -3687.711910000000 0.000000000000 -1626.668820000000
0.000000000000 0.000000000000 1464.000000000000 -1045.301270000000 1626.668820000000 0.000000000000
0.000000000000 -3687.711910000000 -1045.301270000000 10156.887699999999 -1153.445070000000 4091.079350000000
3687.711910000000 0.000000000000 1626.668820000000 -1153.445070000000 11181.257799999999 2677.310790000000
1045.301270000000 -1626.668820000000 0.000000000000 4091.079350000000 2677.310790000000 2674.533940000000
6 45 60
2616.000000000000 0.000000000000 0.000000000000 0.000000000000 6371.844730000000 1734.247800000000
0.000000000000 2616.000000000000 0.000000000000 -6371.844730000000 0.000000000000 -2355.048830000000
0.000000000000 0.000000000000 2616.000000000000 -1734.247800000000 2355.048830000000 0.000000000000
0.000000000000 -6371.844730000000 -1734.247800000000 16863.632799999999 -1565.850950000000 5751.140140000000
6371.844730000000 0.000000000000 2355.048830000000 -1565.850950000000 17940.326200000000 4302.525880000000
1734.247800000000 -2355.048830000000 0.000000000000 5751.140140000000 4302.525880000000 3622.341800000000
6 46 60
3088.000000000000 0.000000000000 0.000000000000 0.000000000000 7603.926760000000 2210.724610000000
0.000000000000 3088.000000000000 0.000000000000 -7603.926760000000 0.000000000000 -2028.721310000000
0.000000000000 0.000000000000 3088.000000000000 -2210.724610000000 2028.721310000000 0.000000000000
0.000000000000 -7603.926760000000 -2210.724610000000 20494.640599999999 -1416.085940000000 4986.781250000000
7603.926760000000 0.000000000000 2028.721310000000 -1416.085940000000 20765.818400000000 5516.737300000000
2210.724610000000 -2028.721310000000 0.000000000000 4986.781250000000 5516.737300000000 3683.919920000000
6 47 60
3071.000000000000 0.000000000000 0.000000000000 0.000000000000 7693.956540000000 2277.014650000000
0.000000000000 3071.000000000000 0.000000000000 -7693.956540000000 0.000000000000 -833.518860000000
0.000000000000 0.000000000000 3071.000000000000 -2277.014650000000 833.518860000000 0.000000000000
0.000000000000 -7693.956540000000 -2277.014650000000 21146.236300000000 -699.720154000000 2066.933590000000
7693.956540000000 0.000000000000 833.518860000000 -699.720154000000 20704.468799999999 5754.195800000000
2277.014650000000 -833.518860000000 0.000000000000 2066.933590000000 5754.195800000000 3163.009770000000
6 48 60
3926.000000000000 0.000000000000 0.000000000000 0.000000000000 9831.304690000001 2236.368650000000
0.000000000000 3926.000000000000 0.000000000000 -9831.304690000001 0.000000000000 1012.139590000000
0.000000000000 0.000000000000 3926.000000000000 -2236.368650000000 -1012.139590000000 0.000000000000
0.000000000000 -9831.304690000001 -2236.368650000000 26277.978500000001 308.710785000000 -2740.534180000000
9831.304690000001 0.000000000000 -1012.139590000000 308.710785000000 26219.472699999998 5600.115720000000
2236.368650000000 1012.139590000000 0.000000000000 -2740.534180000000 5600.115720000000 2983.107180000000
6 50 60
2645.000000000000 0.000000000000 0.000000000000 0.000000000000 6531.755370000000 1618.436890000000
0.000000000000 2645.000000000000 0.000000000000 -6531.755370000000 0.000000000000 -132.391098000000
0.000000000000 0.000000000000 2645.000000000000 -1618.436890000000 132.391098000000 0.000000000000
0.000000000000 -6531.755370000000 -1618.436890000000 17334.611300000000 -118.439606000000 273.545959000000
6531.755370000000 0.000000000000 132.391098000000 -118.439606000000 16707.681600000000 4054.931640000000
1618.436890000000 -132.391098000000 0.000000000000 273.545959000000 4054.931640000000 1618.791260000000
6 51 60
1789.000000000000 0.000000000000 0.000000000000 0.000000000000 4441.910640000000 1216.998660000000
0.000000000000 1789.000000000000 0.000000000000 -4441.910640000000 0.000000000000 -717.838501000000
0.000000000000 0.000000000000 1789.000000000000 -1216.998660000000 717.838501000000 0.000000000000
0.000000000000 -4441.910640000000 -1216.998660000000 11982.567400000000 -515.908203000000 1813.412600000000
4441.910640000000 0.000000000000 717.838501000000 -515.908203000000 11563.675800000001 3068.685550000000
1216.998660000000 -717.838501000000 0.000000000000 1813.412600000000 3068.685550000000 1402.170290000000
6 52 60
3107.000000000000 0.000000000000 0.000000000000 0.000000000000 7639.969730000000 1873.130250000000
0.000000000000 3107.000000000000 0.000000000000 -7639.969730000000 0.000000000000 -27.065845500000
0.000000000000 0.000000000000 3107.000000000000 -1873.130250000000 27.065845500000 0.000000000000
0.000000000000 -7639.969730000000 -1873.130250000000 20141.603500000001 -34.196949000000 -7.404050830000
7639.969730000000 0.000000000000 27.065845500000 -34.196949000000 19588.992200000001 4665.094730000000
1873.130250000000 -27.065845500000 0.000000000000 -7.404050830000 4665.094730000000 1986.706540000000
6 55 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8007.914060000000 -43.324832900000
0.000000000000 5000.000000000000 0.000000000000 -8007.914060000000 0.000000000000 2114.563960000000
0.000000000000 0.000000000000 5000.000000000000 43.324832900000 -2114.563960000000 0.000000000000
0.000000000000 -8007.914060000000 43.324832900000 15351.794900000001 356.591461000000 -4622.762700000000
8007.914060000000 0.000000000000 -2114.563960000000 356.591461000000 17251.269499999999 572.933777000000
-43.324832900000 2114.563960000000 0.000000000000 -4622.762700000000 572.933777000000 2460.464360000000
6 56 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 5895.254880000000 -666.289856000000
0.000000000000 5000.000000000000 0.000000000000 -5895.254880000000 0.000000000000 796.511108000000
0.000000000000 0.000000000000 5000.000000000000 666.289856000000 -796.511108000000 0.000000000000
0.000000000000 -5895.254880000000 666.289856000000 7631.302730000000 -53.382949800000 -1163.703490000000
5895.254880000000 0.000000000000 -796.511108000000 -53.382949800000 8369.387699999999 -592.080261000000
-666.289856000000 796.511108000000 0.000000000000 -1163.703490000000 -592.080261000000 1086.669920000000
6 57 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 5754.874020000000 -733.936340000000
0.000000000000 5000.000000000000 0.000000000000 -5754.874020000000 0.000000000000 422.369720000000
0.000000000000 0.000000000000 5000.000000000000 733.936340000000 -422.369720000000 0.000000000000
0.000000000000 -5754.874020000000 733.936340000000 7225.559570000000 -95.584434500000 -497.790680000000
5754.874020000000 0.000000000000 -422.369720000000 -95.584434500000 7715.434570000000 -704.752686000000
-733.936340000000 422.369720000000 0.000000000000 -497.790680000000 -704.752686000000 814.635986000000
6 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 7347.371580000000 -304.693756000000
0.000000000000 5000.000000000000 0.000000000000 -7347.371580000000 0.000000000000 919.166931000000
0.000000000000 0.000000000000 5000.000000000000 304.693756000000 -919.166931000000 0.000000000000
0.000000000000 -7347.371580000000 304.693756000000 12834.226600000000 -34.816452000000 -1772.475950000000
7347.371580000000 0.000000000000 -919.166931000000 -34.816452000000 13733.130900000000 16.470790900000
-304.693756000000 919.166931000000 0.000000000000 -1772.475950000000 16.470790900000 1280.576540000000
7 12 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12358.913100000000 2768.464360000000
0.000000000000 5000.000000000000 0.000000000000 -12358.913100000000 0.000000000000 -4269.395510000000
0.000000000000 0.000000000000 5000.000000000000 -2768.464360000000 4269.395510000000 0.000000000000
0.000000000000 -12358.913100000000 -2768.464360000000 32984.003900000003 -2465.501710000000 10757.369100000000
12358.913100000000 0.000000000000 4269.395510000000 -2465.501710000000 35293.800799999997 7144.197750000000
2768.464360000000 -4269.395510000000 0.000000000000 10757.369100000000 7144.197750000000 6137.278810000000
7 13 60
3286.000000000000 0.000000000000 0.000000000000 0.000000000000 8600.781250000000 2052.248290000000
0.000000000000 3286.000000000000 0.000000000000 -8600.781250000000 0.000000000000 -3751.123050000000
0.000000000000 0.000000000000 3286.000000000000 -2052.248290000000 3751.123050000000 0.000000000000
0.000000000000 -8600.781250000000 -2052.248290000000 24082.115200000000 -2366.935790000000 9861.866210000000
8600.781250000000 0.000000000000 3751.123050000000 -2366.935790000000 27004.283200000002 5463.227050000000
2052.248290000000 -3751.123050000000 0.000000000000 9861.866210000000 5463.227050000000 5885.850590000000
7 14 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12394.443400000000 2292.796630000000
0.000000000000 5000.000000000000 0.000000000000 -12394.443400000000 0.000000000000 -3783.685550000000
0.000000000000 0.000000000000 5000.000000000000 -2292.796630000000 3783.685550000000 0.000000000000
0.000000000000 -12394.443400000000 -2292.796630000000 32297.804700000001 -1907.528560000000 9557.416990000000
12394.443400000000 0.000000000000 3783.685550000000 -1907.528560000000 34580.500000000000 5826.958010000000
2292.796630000000 -3783.685550000000 0.000000000000 9557.416990000000 5826.958010000000 4828.213870000000
7 22 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8554.879880000000 634.667419000000
0.000000000000 5000.000000000000 0.000000000000 -8554.879880000000 0.000000000000 4369.652830000000
0.000000000000 0.000000000000 5000.000000000000 -634.667419000000 -4369.652830000000 0.000000000000
0.000000000000 -8554.879880000000 -634.667419000000 18676.353500000001 1062.368290000000 -8577.332030000000
8554.879880000000 0.000000000000 -4369.652830000000 1062.368290000000 22204.302700000000 2380.862790000000
634.667419000000 4369.652830000000 0.000000000000 -8577.332030000000 2380.862790000000 5229.499510000000
7 23 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10164.689500000000 1053.130370000000
0.000000000000 5000.000000000000 0.000000000000 -10164.689500000000 0.000000000000 5268.569340000000
0.000000000000 0.000000000000 5000.000000000000 -1053.130370000000 -5268.569340000000 0.000000000000
0.000000000000 -10164.689500000000 -1053.130370000000 24431.675800000001 1441.599370000000 -11603.361300000000
10164.689500000000 0.000000000000 -5268.569340000000 1441.599370000000 29517.132799999999 3139.296140000000
1053.130370000000 5268.569340000000 0.000000000000 -11603.361300000000 3139.296140000000 6809.541020000000
7 27 60
3860.000000000000 0.000000000000 0.000000000000 0.000000000000 7334.712400000000 951.938232000000
0.000000000000 3860.000000000000 0.000000000000 -7334.712400000000 0.000000000000 -2353.392820000000
0.000000000000 0.000000000000 3860.000000000000 -951.938232000000 2353.392820000000 0.000000000000
0.000000000000 -7334.712400000000 -951.938232000000 15918.393599999999 -833.430603000000 4952.124020000000
7334.712400000000 0.000000000000 2353.392820000000 -833.430603000000 17215.398399999998 2409.854490000000
951.938232000000 -2353.392820000000 0.000000000000 4952.124020000000 2409.854490000000 2541.546880000000
7 34 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 6124.892580000000 -317.999481000000
0.000000000000 5000.000000000000 0.000000000000 -6124.892580000000 0.000000000000 740.408081000000
0.000000000000 0.000000000000 5000.000000000000 317.999481000000 -740.408081000000 0.000000000000
0.000000000000 -6124.892580000000 317.999481000000 8014.451660000000 -177.532318000000 -704.647217000000
6124.892580000000 0.000000000000 -740.408081000000 -177.532318000000 9141.966800000000 -202.077194000000
-317.999481000000 740.408081000000 0.000000000000 -704.647217000000 -202.077194000000 1356.393800000000
7 46 60
2435.000000000000 0.000000000000 0.000000000000 0.000000000000 6325.526370000000 1988.837280000000
0.000000000000 2435.000000000000 0.000000000000 -6325.526370000000 0.000000000000 -1910.561520000000
0.000000000000 0.000000000000 2435.000000000000 -1988.837280000000 1910.561520000000 0.000000000000
0.000000000000 -6325.526370000000 -1988.837280000000 18216.525399999999 -1532.355220000000 4986.804690000000
6325.526370000000 0.000000000000 1910.561520000000 -1532.355220000000 18333.851600000002 5231.412600000000
1988.837280000000 -1910.561520000000 0.000000000000 4986.804690000000 5231.412600000000 3559.324710000000
7 47 60
2161.000000000000 0.000000000000 0.000000000000 0.000000000000 5646.610840000000 1830.233520000000
0.000000000000 2161.000000000000 0.000000000000 -5646.610840000000 0.000000000000 -887.121155000000
0.000000000000 0.000000000000 2161.000000000000 -1830.233520000000 887.121155000000 0.000000000000
0.000000000000 -5646.610840000000 -1830.233520000000 16445.091799999998 -789.424927000000 2335.574460000000
5646.610840000000 0.000000000000 887.121155000000 -789.424927000000 15697.892599999999 4828.740720000000
1830.233520000000 -887.121155000000 0.000000000000 2335.574460000000 4828.740720000000 2528.224610000000
7 48 60
2613.000000000000 0.000000000000 0.000000000000 0.000000000000 6740.811040000000 1946.490600000000
0.000000000000 2613.000000000000 0.000000000000 -6740.811040000000 0.000000000000 -422.482849000000
0.000000000000 0.000000000000 2613.000000000000 -1946.490600000000 422.482849000000 0.000000000000
0.000000000000 -6740.811040000000 -1946.490600000000 19059.855500000001 -427.636047000000 1039.333860000000
6740.811040000000 0.000000000000 422.482849000000 -427.636047000000 18206.589800000002 5052.606450000000
1946.490600000000 -422.482849000000 0.000000000000 1039.333860000000 5052.606450000000 2346.816890000000
7 49 60
3594.000000000000 0.000000000000 0.000000000000 0.000000000000 9379.002930000001 2021.465210000000
0.000000000000 3594.000000000000 0.000000000000 -9379.002930000001 0.000000000000 1070.313720000000
0.000000000000 0.000000000000 3594.000000000000 -2021.465210000000 -1070.313720000000 0.000000000000
0.000000000000 -9379.002930000001 -2021.465210000000 26046.076200000000 35.070560500000 -3024.320560000000
9379.002930000001 0.000000000000 -1070.313720000000 35.070560500000 26850.355500000001 5221.970700000000
2021.465210000000 1070.313720000000 0.000000000000 -3024.320560000000 5221.970700000000 3744.686280000000
7 50 60
3196.000000000000 0.000000000000 0.000000000000 0.000000000000 8252.812500000000 2127.591800000000
0.000000000000 3196.000000000000 0.000000000000 -8252.812500000000 0.000000000000 -522.051392000000
0.000000000000 0.000000000000 3196.000000000000 -2127.591800000000 522.051392000000 0.000000000000
0.000000000000 -8252.812500000000 -2127.591800000000 22965.470700000002 -486.386536000000 1200.865840000000
8252.812500000000 0.000000000000 522.051392000000 -486.386536000000 22437.699199999999 5522.333010000000
2127.591800000000 -522.051392000000 0.000000000000 1200.865840000000 5522.333010000000 2590.872560000000
7 51 60
1808.000000000000 0.000000000000 0.000000000000 0.000000000000 4677.337400000000 1386.538570000000
0.000000000000 1808.000000000000 0.000000000000 -4677.337400000000 0.000000000000 -1256.338380000000
0.000000000000 0.000000000000 1808.000000000000 -1386.538570000000 1256.338380000000 0.000000000000
0.000000000000 -4677.337400000000 -1386.538570000000 13309.654300000000 -1002.305240000000 3293.139400000000
4677.337400000000 0.000000000000 1256.338380000000 -1002.305240000000 13166.860400000000 3643.321530000000
1386.538570000000 -1256.338380000000 0.000000000000 3293.139400000000 3643.321530000000 2177.596190000000
7 52 60
3735.000000000000 0.000000000000 0.000000000000 0.000000000000 9646.127930000001 2417.382570000000
0.000000000000 3735.000000000000 0.000000000000 -9646.127930000001 0.000000000000 -421.633972000000
0.000000000000 0.000000000000 3735.000000000000 -2417.382570000000 421.633972000000 0.000000000000
0.000000000000 -9646.127930000001 -2417.382570000000 26755.230500000001 -468.820221000000 909.796570000000
9646.127930000001 0.000000000000 421.633972000000 -468.820221000000 26330.623000000000 6262.322270000000
2417.382570000000 -421.633972000000 0.000000000000 909.796570000000 6262.322270000000 3045.531980000000
7 56 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 6435.126950000000 -194.705154000000
0.000000000000 5000.000000000000 0.000000000000 -6435.126950000000 0.000000000000 569.019775000000
0.000000000000 0.000000000000 5000.000000000000 194.705154000000 -569.019775000000 0.000000000000
0.000000000000 -6435.126950000000 194.705154000000 9369.077149999999 83.600662200000 -1114.528080000000
6435.126950000000 0.000000000000 -569.019775000000 83.600662200000 10785.061500000000 115.475777000000
-194.705154000000 569.019775000000 0.000000000000 -1114.528080000000 115.475777000000 1771.041020000000
7 57 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 5878.883300000000 -426.400787000000
0.000000000000 5000.000000000000 0.000000000000 -5878.883300000000 0.000000000000 168.371429000000
0.000000000000 0.000000000000 5000.000000000000 426.400787000000 -168.371429000000 0.000000000000
0.000000000000 -5878.883300000000 426.400787000000 7434.024410000000 -158.618347000000 28.763870200000
5878.883300000000 0.000000000000 -168.371429000000 -158.618347000000 8492.894530000000 -325.425507000000
-426.400787000000 168.371429000000 0.000000000000 28.763870200000 -325.425507000000 1298.794920000000
8 10 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11235.772499999999 4409.854980000000
0.000000000000 5000.000000000000 0.000000000000 -11235.772499999999 0.000000000000 -3075.863280000000
0.000000000000 0.000000000000 5000.000000000000 -4409.854980000000 3075.863280000000 0.000000000000
0.000000000000 -11235.772499999999 -4409.854980000000 31513.625000000000 -2779.389650000000 6986.292480000000
11235.772499999999 0.000000000000 3075.863280000000 -2779.389650000000 28855.722699999998 10660.193400000000
4409.854980000000 -3075.863280000000 0.000000000000 6986.292480000000 10660.193400000000 7387.377440000000
8 11 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12120.965800000000 5043.425290000000
0.000000000000 5000.000000000000 0.000000000000 -12120.965800000000 0.000000000000 -3436.639650000000
0.000000000000 0.000000000000 5000.000000000000 -5043.425290000000 3436.639650000000 0.000000000000
0.000000000000 -12120.965800000000 -5043.425290000000 35893.558599999997 -3561.521240000000 8253.932620000000
12120.965800000000 0.000000000000 3436.639650000000 -3561.521240000000 32776.683599999997 12438.170899999999
5043.425290000000 -3436.639650000000 0.000000000000 8253.932620000000 12438.170899999999 8620.418949999999
8 15 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12489.773400000000 3588.224370000000
0.000000000000 5000.000000000000 0.000000000000 -12489.773400000000 0.000000000000 -2884.417720000000
0.000000000000 0.000000000000 5000.000000000000 -3588.224370000000 2884.417720000000 0.000000000000
0.000000000000 -12489.773400000000 -3588.224370000000 34801.585899999998 -2022.633420000000 6828.389160000000
12489.773400000000 0.000000000000 2884.417720000000 -2022.633420000000 34251.878900000003 9067.804690000001
3588.224370000000 -2884.417720000000 0.000000000000 6828.389160000000 9067.804690000001 5309.811040000000
8 26 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11368.061500000000 3972.239260000000
0.000000000000 5000.000000000000 0.000000000000 -11368.061500000000 0.000000000000 -3089.324710000000
0.000000000000 0.000000000000 5000.000000000000 -3972.239260000000 3089.324710000000 0.000000000000
0.000000000000 -11368.061500000000 -3972.239260000000 30999.689500000000 -2514.947020000000 7106.239260000000
11368.061500000000 0.000000000000 3089.324710000000 -2514.947020000000 29414.892599999999 9542.860350000001
3972.239260000000 -3089.324710000000 0.000000000000 7106.239260000000 9542.860350000001 6551.660640000000
8 34 60
4516.000000000000 0.000000000000 0.000000000000 0.000000000000 5390.454590000000 148.950287000000
0.000000000000 4516.000000000000 0.000000000000 -5390.454590000000 0.000000000000 -145.915787000000
0.000000000000 0.000000000000 4516.000000000000 -148.950287000000 145.915787000000 0.000000000000
0.000000000000 -5390.454590000000 -148.950287000000 6849.116700000000 -94.572471600000 178.139267000000
5390.454590000000 0.000000000000 145.915787000000 -94.572471600000 7238.162110000000 349.742462000000
148.950287000000 -145.915787000000 0.000000000000 178.139267000000 349.742462000000 647.018677000000
8 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11607.374000000000 2236.432130000000
0.000000000000 5000.000000000000 0.000000000000 -11607.374000000000 0.000000000000 -899.771729000000
0.000000000000 0.000000000000 5000.000000000000 -2236.432130000000 899.771729000000 0.000000000000
0.000000000000 -11607.374000000000 -2236.432130000000 30558.236300000000 -383.074677000000 1334.156250000000
11607.374000000000 0.000000000000 899.771729000000 -383.074677000000 30819.671900000001 5762.810060000000
2236.432130000000 -899.771729000000 0.000000000000 1334.156250000000 5762.810060000000 2861.001460000000
8 48 60
4575.000000000000 0.000000000000 0.000000000000 0.000000000000 11372.927700000000 5183.908690000000
0.000000000000 4575.000000000000 0.000000000000 -11372.927700000000 0.000000000000 -2395.135500000000
0.000000000000 0.000000000000 4575.000000000000 -5183.908690000000 2395.135500000000 0.000000000000
0.000000000000 -11372.927700000000 -5183.908690000000 34800.332000000002 -3088.183840000000 5665.205570000000
11372.927700000000 0.000000000000 2395.135500000000 -3088.183840000000 30649.300800000001 12699.700199999999
5183.908690000000 -2395.135500000000 0.000000000000 5665.205570000000 12699.700199999999 8516.236330000000
8 49 60
4825.000000000000 0.000000000000 0.000000000000 0.000000000000 12050.182600000000 5094.892090000000
0.000000000000 4825.000000000000 0.000000000000 -12050.182600000000 0.000000000000 -1957.963750000000
0.000000000000 0.000000000000 4825.000000000000 -5094.892090000000 1957.963750000000 0.000000000000
0.000000000000 -12050.182600000000 -5094.892090000000 36343.835899999998 -2680.480710000000 4505.006350000000
12050.182600000000 0.000000000000 1957.963750000000 -2680.480710000000 32457.382799999999 12442.291999999999
5094.892090000000 -1957.963750000000 0.000000000000 4505.006350000000 12442.291999999999 8112.562990000000
8 50 60
2899.000000000000 0.000000000000 0.000000000000 0.000000000000 7174.064940000000 3457.879880000000
0.000000000000 2899.000000000000 0.000000000000 -7174.064940000000 0.000000000000 -1935.982910000000
0.000000000000 0.000000000000 2899.000000000000 -3457.879880000000 1935.982910000000 0.000000000000
0.000000000000 -7174.064940000000 -3457.879880000000 22112.232400000001 -2474.381840000000 4657.821780000000
7174.064940000000 0.000000000000 1935.982910000000 -2474.381840000000 19620.716799999998 8505.993160000000
3457.879880000000 -1935.982910000000 0.000000000000 4657.821780000000 8505.993160000000 6075.107910000000
8 52 60
3830.000000000000 0.000000000000 0.000000000000 0.000000000000 9546.900390000001 4232.171390000000
0.000000000000 3830.000000000000 0.000000000000 -9546.900390000001 0.000000000000 -1962.005370000000
0.000000000000 0.000000000000 3830.000000000000 -4232.171390000000 1962.005370000000 0.000000000000
0.000000000000 -9546.900390000001 -4232.171390000000 28887.353500000001 -2474.945560000000 4698.896970000000
9546.900390000001 0.000000000000 1962.005370000000 -2474.945560000000 25702.912100000001 10443.396500000001
4232.171390000000 -1962.005370000000 0.000000000000 4698.896970000000 10443.396500000001 6744.676270000000
8 56 60
4547.000000000000 0.000000000000 0.000000000000 0.000000000000 7689.453130000000 582.578491000000
0.000000000000 4547.000000000000 0.000000000000 -7689.453130000000 0.000000000000 1244.793460000000
0.000000000000 0.000000000000 4547.000000000000 -582.578491000000 -1244.793460000000 0.000000000000
0.000000000000 -7689.453130000000 -582.578491000000 15931.219700000000 211.987045000000 -3036.851560000000
7689.453130000000 0.000000000000 -1244.793460000000 211.987045000000 16884.087899999999 1476.636840000000
582.578491000000 1244.793460000000 0.000000000000 -3036.851560000000 1476.636840000000 1730.855470000000
8 57 60
4053.000000000000 0.000000000000 0.000000000000 0.000000000000 5943.747560000000 55.242580400000
0.000000000000 4053.000000000000 0.000000000000 -5943.747560000000 0.000000000000 1036.925900000000
0.000000000000 0.000000000000 4053.000000000000 -55.242580400000 -1036.925900000000 0.000000000000
0.000000000000 -5943.747560000000 -55.242580400000 10531.703100000001 -72.407104500000 -2187.323730000000
5943.747560000000 0.000000000000 -1036.925900000000 -72.407104500000 12005.973599999999 304.248352000000
55.242580400000 1036.925900000000 0.000000000000 -2187.323730000000 304.248352000000 1715.386720000000
9 12 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11165.067400000000 1937.052250000000
0.000000000000 5000.000000000000 0.000000000000 -11165.067400000000 0.000000000000 -5907.044920000000
0.000000000000 0.000000000000 5000.000000000000 -1937.052250000000 5907.044920000000 0.000000000000
0.000000000000 -11165.067400000000 -1937.052250000000 27211.250000000000 -2260.325440000000 13124.305700000001
11165.067400000000 0.000000000000 5907.044920000000 -2260.325440000000 33015.777300000002 4827.896000000000
1937.052250000000 -5907.044920000000 0.000000000000 13124.305700000001 4827.896000000000 8512.334960000000
9 15 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11280.926799999999 517.166565000000
0.000000000000 5000.000000000000 0.000000000000 -11280.926799999999 0.000000000000 -4000.015630000000
0.000000000000 0.000000000000 5000.000000000000 -517.166565000000 4000.015630000000 0.000000000000
0.000000000000 -11280.926799999999 -517.166565000000 27382.349600000001 -623.342590000000 8351.691409999999
11280.926799999999 0.000000000000 4000.015630000000 -623.342590000000 31252.168000000001 1327.990480000000
517.166565000000 -4000.015630000000 0.000000000000 8351.691409999999 1327.990480000000 4571.251950000000
9 22 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12709.197300000000 205.076401000000
0.000000000000 5000.000000000000 0.000000000000 -12709.197300000000 0.000000000000 3273.638180000000
0.000000000000 0.000000000000 5000.000000000000 -205.076401000000 -3273.638180000000 0.000000000000
0.000000000000 -12709.197300000000 -205.076401000000 33356.375000000000 187.797485000000 -8400.863280000000
12709.197300000000 0.000000000000 -3273.638180000000 187.797485000000 35377.003900000003 454.341003000000
205.076401000000 3273.638180000000 0.000000000000 -8400.863280000000 454.341003000000 3144.733400000000
9 23 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12821.145500000001 -139.051804000000
0.000000000000 5000.000000000000 0.000000000000 -12821.145500000001 0.000000000000 3471.837650000000
0.000000000000 0.000000000000 5000.000000000000 139.051804000000 -3471.837650000000 0.000000000000
0.000000000000 -12821.145500000001 139.051804000000 33892.777300000002 -120.973656000000 -8956.166020000001
12821.145500000001 0.000000000000 -3471.837650000000 -120.973656000000 36121.722699999998 -535.550842000000
-139.051804000000 3471.837650000000 0.000000000000 -8956.166020000001 -535.550842000000 3427.391360000000
9 27 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8202.519530000000 -113.739365000000
0.000000000000 5000.000000000000 0.000000000000 -8202.519530000000 0.000000000000 -5307.515140000000
0.000000000000 0.000000000000 5000.000000000000 113.739365000000 5307.515140000000 0.000000000000
0.000000000000 -8202.519530000000 113.739365000000 15277.620100000000 -11.690577500000 8774.781250000000
8202.519530000000 0.000000000000 5307.515140000000 -11.690577500000 20954.955099999999 238.749237000000
-113.739365000000 -5307.515140000000 0.000000000000 8774.781250000000 238.749237000000 6269.085450000000
9 34 60
4042.000000000000 0.000000000000 0.000000000000 0.000000000000 5307.056640000000 -642.837402000000
0.000000000000 4042.000000000000 0.000000000000 -5307.056640000000 0.000000000000 -3387.398930000000
0.000000000000 0.000000000000 4042.000000000000 642.837402000000 3387.398930000000 0.000000000000
0.000000000000 -5307.056640000000 642.837402000000 7351.768070000000 425.810211000000 4134.747070000000
5307.056640000000 0.000000000000 3387.398930000000 425.810211000000 10947.622100000001 -824.131775000000
-642.837402000000 -3387.398930000000 0.000000000000 4134.747070000000 -824.131775000000 3894.297360000000
9 46 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12773.459000000001 4952.860350000000
0.000000000000 5000.000000000000 0.000000000000 -12773.459000000001 0.000000000000 -5028.740230000000
0.000000000000 0.000000000000 5000.000000000000 -4952.860350000000 5028.740230000000 0.000000000000
0.000000000000 -12773.459000000001 -4952.860350000000 37890.675799999997 -5030.428710000000 12859.059600000001
12773.459000000001 0.000000000000 5028.740230000000 -5030.428710000000 38176.484400000001 12694.855500000000
4952.860350000000 -5028.740230000000 0.000000000000 12859.059600000001 12694.855500000000 10706.720700000000
9 47 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12612.209999999999 4413.428220000000
0.000000000000 5000.000000000000 0.000000000000 -12612.209999999999 0.000000000000 -3813.435060000000
0.000000000000 0.000000000000 5000.000000000000 -4413.428220000000 3813.435060000000 0.000000000000
0.000000000000 -12612.209999999999 -4413.428220000000 36165.035199999998 -3413.284910000000 9582.524410000000
12612.209999999999 0.000000000000 3813.435060000000 -3413.284910000000 35500.363299999997 11172.452100000000
4413.428220000000 -3813.435060000000 0.000000000000 9582.524410000000 11172.452100000000 7898.112300000000
9 48 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12876.370100000000 3324.440430000000
0.000000000000 5000.000000000000 0.000000000000 -12876.370100000000 0.000000000000 -2841.162350000000
0.000000000000 0.000000000000 5000.000000000000 -3324.440430000000 2841.162350000000 0.000000000000
0.000000000000 -12876.370100000000 -3324.440430000000 36482.972699999998 -2632.128910000000 7108.766110000000
12876.370100000000 0.000000000000 2841.162350000000 -2632.128910000000 36270.320299999999 8403.637699999999
3324.440430000000 -2841.162350000000 0.000000000000 7108.766110000000 8403.637699999999 6170.176760000000
9 50 60
4891.000000000000 0.000000000000 0.000000000000 0.000000000000 12532.980500000000 3279.105710000000
0.000000000000 4891.000000000000 0.000000000000 -12532.980500000000 0.000000000000 -3525.116940000000
0.000000000000 0.000000000000 4891.000000000000 -3279.105710000000 3525.116940000000 0.000000000000
0.000000000000 -12532.980500000000 -3279.105710000000 34921.515599999999 -2708.626950000000 8946.613280000000
12532.980500000000 0.000000000000 3525.116940000000 -2708.626950000000 35610.410199999998 8370.375000000000
3279.105710000000 -3525.116940000000 0.000000000000 8946.613280000000 8370.375000000000 6125.914060000000
9 52 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12803.181600000000 3366.422850000000
0.000000000000 5000.000000000000 0.000000000000 -12803.181600000000 0.000000000000 -3340.244380000000
0.000000000000 0.000000000000 5000.000000000000 -3366.422850000000 3340.244380000000 0.000000000000
0.000000000000 -12803.181600000000 -3366.422850000000 35502.343800000002 -2618.071040000000 8498.320309999999
12803.181600000000 0.000000000000 3340.244380000000 -2618.071040000000 36142.582000000002 8631.644530000000
3366.422850000000 -3340.244380000000 0.000000000000 8498.320309999999 8631.644530000000 5921.056640000000
9 55 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10925.522499999999 -460.968048000000
0.000000000000 5000.000000000000 0.000000000000 -10925.522499999999 0.000000000000 -474.903229000000
0.000000000000 0.000000000000 5000.000000000000 460.968048000000 474.903229000000 0.000000000000
0.000000000000 -10925.522499999999 460.968048000000 26572.863300000001 100.803177000000 -939.871643000000
10925.522499999999 0.000000000000 474.903229000000 100.803177000000 28564.285199999998 -935.209717000000
-460.968048000000 -474.903229000000 0.000000000000 -939.871643000000 -935.209717000000 2603.006840000000
9 56 60
4096.000000000000 0.000000000000 0.000000000000 0.000000000000 5937.436040000000 -611.021118000000
0.000000000000 4096.000000000000 0.000000000000 -5937.436040000000 0.000000000000 -2869.658450000000
0.000000000000 0.000000000000 4096.000000000000 611.021118000000 2869.658450000000 0.000000000000
0.000000000000 -5937.436040000000 611.021118000000 9558.283200000000 337.816284000000 3197.713870000000
5937.436040000000 0.000000000000 2869.658450000000 337.816284000000 13003.658200000000 -875.075684000000
-611.021118000000 -2869.658450000000 0.000000000000 3197.713870000000 -875.075684000000 3795.469970000000
9 57 60
4168.000000000000 0.000000000000 0.000000000000 0.000000000000 5777.463870000000 -626.319397000000
0.000000000000 4168.000000000000 0.000000000000 -5777.463870000000 0.000000000000 -3773.177730000000
0.000000000000 0.000000000000 4168.000000000000 626.319397000000 3773.177730000000 0.000000000000
0.000000000000 -5777.463870000000 626.319397000000 8731.527340000001 463.830658000000 4943.736820000000
5777.463870000000 0.000000000000 3773.177730000000 463.830658000000 12682.279300000000 -866.465942000000
-626.319397000000 -3773.177730000000 0.000000000000 4943.736820000000 -866.465942000000 4234.566410000000
9 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10426.275400000000 -458.451691000000
0.000000000000 5000.000000000000 0.000000000000 -10426.275400000000 0.000000000000 -2519.455570000000
0.000000000000 0.000000000000 5000.000000000000 458.451691000000 2519.455570000000 0.000000000000
0.000000000000 -10426.275400000000 458.451691000000 24495.759800000000 149.520142000000 3456.613040000000
10426.275400000000 0.000000000000 2519.455570000000 149.520142000000 27508.933600000000 -907.525879000000
-458.451691000000 -2519.455570000000 0.000000000000 3456.613040000000 -907.525879000000 3378.980960000000
10 21 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10088.806600000000 -359.111053000000
0.000000000000 5000.000000000000 0.000000000000 -10088.806600000000 0.000000000000 3769.041260000000
0.000000000000 0.000000000000 5000.000000000000 359.111053000000 -3769.041260000000 0.000000000000
0.000000000000 -10088.806600000000 359.111053000000 23098.072300000000 164.096680000000 -8737.008790000000
10088.806600000000 0.000000000000 -3769.041260000000 164.096680000000 26150.875000000000 -79.696395900000
-359.111053000000 3769.041260000000 0.000000000000 -8737.008790000000 -79.696395900000 4148.801270000000
10 24 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12634.109399999999 158.386322000000
0.000000000000 5000.000000000000 0.000000000000 -12634.109399999999 0.000000000000 4955.382810000000
0.000000000000 0.000000000000 5000.000000000000 -158.386322000000 -4955.382810000000 0.000000000000
0.000000000000 -12634.109399999999 -158.386322000000 32807.917999999998 99.716690100000 -12578.069299999999
12634.109399999999 0.000000000000 -4955.382810000000 99.716690100000 37387.980499999998 311.634857000000
158.386322000000 4955.382810000000 0.000000000000 -12578.069299999999 311.634857000000 5713.550780000000
10 28 60
3510.000000000000 0.000000000000 0.000000000000 0.000000000000 8813.430660000000 1319.693730000000
0.000000000000 3510.000000000000 0.000000000000 -8813.430660000000 0.000000000000 -3528.711910000000
0.000000000000 0.000000000000 3510.000000000000 -1319.693730000000 3528.711910000000 0.000000000000
0.000000000000 -8813.430660000000 -1319.693730000000 24378.757799999999 -1589.509640000000 9340.456050000001
8813.430660000000 0.000000000000 3528.711910000000 -1589.509640000000 27266.818400000000 3926.013430000000
1319.693730000000 -3528.711910000000 0.000000000000 9340.456050000001 3926.013430000000 5063.869630000000
10 29 60
2606.000000000000 0.000000000000 0.000000000000 0.000000000000 7345.603520000000 1207.103390000000
0.000000000000 2606.000000000000 0.000000000000 -7345.603520000000 0.000000000000 -2987.113280000000
0.000000000000 0.000000000000 2606.000000000000 -1207.103390000000 2987.113280000000 0.000000000000
0.000000000000 -7345.603520000000 -1207.103390000000 21698.294900000001 -1476.842650000000 8424.396479999999
7345.603520000000 0.000000000000 2987.113280000000 -1476.842650000000 24337.791000000001 3437.630130000000
1207.103390000000 -2987.113280000000 0.000000000000 8424.396479999999 3437.630130000000 4435.994140000000
10 34 60
4277.000000000000 0.000000000000 0.000000000000 0.000000000000 5570.097170000000 -1146.447630000000
0.000000000000 4277.000000000000 0.000000000000 -5570.097170000000 0.000000000000 -426.143127000000
0.000000000000 0.000000000000 4277.000000000000 1146.447630000000 426.143127000000 0.000000000000
0.000000000000 -5570.097170000000 1146.447630000000 7728.924800000000 72.806861900000 487.892487000000
5570.097170000000 0.000000000000 426.143127000000 72.806861900000 8295.893550000001 -1430.723020000000
-1146.447630000000 -426.143127000000 0.000000000000 487.892487000000 -1430.723020000000 1260.532590000000
10 35 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10679.102500000001 747.958496000000
0.000000000000 5000.000000000000 0.000000000000 -10679.102500000001 0.000000000000 3190.792240000000
0.000000000000 0.000000000000 5000.000000000000 -747.958496000000 -3190.792240000000 0.000000000000
0.000000000000 -10679.102500000001 -747.958496000000 24838.128900000000 671.415222000000 -7029.748050000000
10679.102500000001 0.000000000000 -3190.792240000000 671.415222000000 26593.906299999999 2191.075440000000
747.958496000000 3190.792240000000 0.000000000000 -7029.748050000000 2191.075440000000 3493.986080000000
10 40 60
2265.000000000000 0.000000000000 0.000000000000 0.000000000000 6321.059080000000 1619.832280000000
0.000000000000 2265.000000000000 0.000000000000 -6321.059080000000 0.000000000000 -1909.175660000000
0.000000000000 0.000000000000 2265.000000000000 -1619.832280000000 1909.175660000000 0.000000000000
0.000000000000 -6321.059080000000 -1619.832280000000 19215.410199999998 -1312.646730000000 5269.938480000000
6321.059080000000 0.000000000000 1909.175660000000 -1312.646730000000 19636.328099999999 4659.851560000000
1619.832280000000 -1909.175660000000 0.000000000000 5269.938480000000 4659.851560000000 3208.853030000000
10 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 14239.424800000001 3271.273190000000
0.000000000000 5000.000000000000 0.000000000000 -14239.424800000001 0.000000000000 -4661.966800000000
0.000000000000 0.000000000000 5000.000000000000 -3271.273190000000 4661.966800000000 0.000000000000
0.000000000000 -14239.424800000001 -3271.273190000000 43599.515599999999 -3208.090090000000 13411.024400000000
14239.424800000001 0.000000000000 4661.966800000000 -3208.090090000000 45538.320299999999 9534.094730000001
3271.273190000000 -4661.966800000000 0.000000000000 13411.024400000000 9534.094730000001 7621.790530000000
10 42 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 14123.159200000000 3392.831050000000
0.000000000000 5000.000000000000 0.000000000000 -14123.159200000000 0.000000000000 -4252.370120000000
0.000000000000 0.000000000000 5000.000000000000 -3392.831050000000 4252.370120000000 0.000000000000
0.000000000000 -14123.159200000000 -3392.831050000000 42836.878900000003 -2870.120120000000 12059.038100000000
14123.159200000000 0.000000000000 4252.370120000000 -2870.120120000000 44060.414100000002 9745.465819999999
3392.831050000000 -4252.370120000000 0.000000000000 12059.038100000000 9745.465819999999 6839.367680000000
10 43 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 14159.380900000000 3874.186770000000
0.000000000000 5000.000000000000 0.000000000000 -14159.380900000000 0.000000000000 -4288.247560000000
0.000000000000 0.000000000000 5000.000000000000 -3874.186770000000 4288.247560000000 0.000000000000
0.000000000000 -14159.380900000000 -3874.186770000000 43582.582000000002 -3309.925290000000 12169.699199999999
14159.380900000000 0.000000000000 4288.247560000000 -3309.925290000000 44420.363299999997 11123.786099999999
3874.186770000000 -4288.247560000000 0.000000000000 12169.699199999999 11123.786099999999 7550.065430000000
10 44 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 14164.862300000001 3919.844970000000
0.000000000000 5000.000000000000 0.000000000000 -14164.862300000001 0.000000000000 -4029.159670000000
0.000000000000 0.000000000000 5000.000000000000 -3919.844970000000 4029.159670000000 0.000000000000
0.000000000000 -14164.862300000001 -3919.844970000000 43679.792999999998 -3134.766360000000 11454.652300000000
14164.862300000001 0.000000000000 4029.159670000000 -3134.766360000000 44202.292999999998 11249.950199999999
3919.844970000000 -4029.159670000000 0.000000000000 11454.652300000000 11249.950199999999 7378.811040000000
10 45 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 14109.420899999999 4124.621580000000
0.000000000000 5000.000000000000 0.000000000000 -14109.420899999999 0.000000000000 -3384.759770000000
0.000000000000 0.000000000000 5000.000000000000 -4124.621580000000 3384.759770000000 0.000000000000
0.000000000000 -14109.420899999999 -4124.621580000000 43702.226600000002 -2879.090330000000 9806.382809999999
14109.420899999999 0.000000000000 3384.759770000000 -2879.090330000000 43632.667999999998 11800.706099999999
4124.621580000000 -3384.759770000000 0.000000000000 9806.382809999999 11800.706099999999 7352.716800000000
10 46 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 13367.410200000000 3653.874760000000
0.000000000000 5000.000000000000 0.000000000000 -13367.410200000000 0.000000000000 -1133.067500000000
0.000000000000 0.000000000000 5000.000000000000 -3653.874760000000 1133.067500000000 0.000000000000
0.000000000000 -13367.410200000000 -3653.874760000000 38860.050799999997 -976.720947000000 3357.834470000000
13367.410200000000 0.000000000000 1133.067500000000 -976.720947000000 37597.015599999999 9923.600590000000
3653.874760000000 -1133.067500000000 0.000000000000 3357.834470000000 9923.600590000000 4633.411130000000
10 47 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12563.464800000000 3077.891850000000
0.000000000000 5000.000000000000 0.000000000000 -12563.464800000000 0.000000000000 1534.733520000000
0.000000000000 0.000000000000 5000.000000000000 -3077.891850000000 -1534.733520000000 0.000000000000
0.000000000000 -12563.464800000000 -3077.891850000000 33936.812500000000 800.142456000000 -3614.430660000000
12563.464800000000 0.000000000000 -1534.733520000000 800.142456000000 33345.015599999999 7867.183110000000
3077.891850000000 1534.733520000000 0.000000000000 -3614.430660000000 7867.183110000000 3836.740970000000
10 48 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12300.722700000000 2728.835940000000
0.000000000000 5000.000000000000 0.000000000000 -12300.722700000000 0.000000000000 2450.135990000000
0.000000000000 0.000000000000 5000.000000000000 -2728.835940000000 -2450.135990000000 0.000000000000
0.000000000000 -12300.722700000000 -2728.835940000000 32221.918000000001 1175.662720000000 -5809.118650000000
12300.722700000000 0.000000000000 -2450.135990000000 1175.662720000000 32627.880900000000 6834.423830000000
2728.835940000000 2450.135990000000 0.000000000000 -5809.118650000000 6834.423830000000 4021.836430000000
10 49 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12198.102500000001 2660.854980000000
0.000000000000 5000.000000000000 0.000000000000 -12198.102500000001 0.000000000000 2677.365230000000
0.000000000000 0.000000000000 5000.000000000000 -2660.854980000000 -2677.365230000000 0.000000000000
0.000000000000 -12198.102500000001 -2660.854980000000 31714.998000000000 1268.657100000000 -6316.751950000000
12198.102500000001 0.000000000000 -2677.365230000000 1268.657100000000 32352.560500000000 6588.249510000000
2660.854980000000 2677.365230000000 0.000000000000 -6316.751950000000 6588.249510000000 4235.303710000000
10 50 60
4124.000000000000 0.000000000000 0.000000000000 0.000000000000 10210.219700000000 2103.453130000000
0.000000000000 4124.000000000000 0.000000000000 -10210.219700000000 0.000000000000 1892.339360000000
0.000000000000 0.000000000000 4124.000000000000 -2103.453130000000 -1892.339360000000 0.000000000000
0.000000000000 -10210.219700000000 -2103.453130000000 26725.197300000000 873.731079000000 -4526.098140000000
10210.219700000000 0.000000000000 -1892.339360000000 873.731079000000 27029.218799999999 5306.302730000000
2103.453130000000 1892.339360000000 0.000000000000 -4526.098140000000 5306.302730000000 2943.307370000000
10 51 60
1968.000000000000 0.000000000000 0.000000000000 0.000000000000 5096.282230000000 1185.995480000000
0.000000000000 1968.000000000000 0.000000000000 -5096.282230000000 0.000000000000 245.984756000000
0.000000000000 0.000000000000 1968.000000000000 -1185.995480000000 -245.984756000000 0.000000000000
0.000000000000 -5096.282230000000 -1185.995480000000 14031.208000000001 104.365959000000 -569.204834000000
5096.282230000000 0.000000000000 -245.984756000000 104.365959000000 13481.100600000000 3116.858890000000
1185.995480000000 245.984756000000 0.000000000000 -569.204834000000 3116.858890000000 999.749268000000
10 52 60
4596.000000000000 0.000000000000 0.000000000000 0.000000000000 11316.690399999999 2316.257810000000
0.000000000000 4596.000000000000 0.000000000000 -11316.690399999999 0.000000000000 2275.407960000000
0.000000000000 0.000000000000 4596.000000000000 -2316.257810000000 -2275.407960000000 0.000000000000
0.000000000000 -11316.690399999999 -2316.257810000000 29408.068400000000 1030.598390000000 -5415.346680000000
11316.690399999999 0.000000000000 -2275.407960000000 1030.598390000000 30004.345700000002 5818.095210000000
2316.257810000000 2275.407960000000 0.000000000000 -5415.346680000000 5818.095210000000 3406.208980000000
10 53 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12037.847700000000 2239.129640000000
0.000000000000 5000.000000000000 0.000000000000 -12037.847700000000 0.000000000000 2666.921880000000
0.000000000000 0.000000000000 5000.000000000000 -2239.129640000000 -2666.921880000000 0.000000000000
0.000000000000 -12037.847700000000 -2239.129640000000 30669.210899999998 1134.668460000000 -6268.243650000000
12037.847700000000 0.000000000000 -2666.921880000000 1134.668460000000 31408.259800000000 5594.937500000000
2239.129640000000 2666.921880000000 0.000000000000 -6268.243650000000 5594.937500000000 3658.723390000000
10 54 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9671.415040000000 140.756454000000
0.000000000000 5000.000000000000 0.000000000000 -9671.415040000000 0.000000000000 2492.769780000000
0.000000000000 0.000000000000 5000.000000000000 -140.756454000000 -2492.769780000000 0.000000000000
0.000000000000 -9671.415040000000 -140.756454000000 20829.408200000002 470.459473000000 -5289.375490000000
9671.415040000000 0.000000000000 -2492.769780000000 470.459473000000 21960.083999999999 1027.700320000000
140.756454000000 2492.769780000000 0.000000000000 -5289.375490000000 1027.700320000000 2554.216550000000
10 55 60
3291.000000000000 0.000000000000 0.000000000000 0.000000000000 4591.087400000000 -957.235291000000
0.000000000000 3291.000000000000 0.000000000000 -4591.087400000000 0.000000000000 549.103882000000
0.000000000000 0.000000000000 3291.000000000000 957.235291000000 -549.103882000000 0.000000000000
0.000000000000 -4591.087400000000 957.235291000000 7168.179200000000 -155.636505000000 -1095.978760000000
4591.087400000000 0.000000000000 -549.103882000000 -155.636505000000 7440.161130000000 -1292.609010000000
-957.235291000000 549.103882000000 0.000000000000 -1095.978760000000 -1292.609010000000 885.186646000000
10 56 60
3666.000000000000 0.000000000000 0.000000000000 0.000000000000 4734.445310000000 -1044.029910000000
0.000000000000 3666.000000000000 0.000000000000 -4734.445310000000 0.000000000000 -73.697181700000
0.000000000000 0.000000000000 3666.000000000000 1044.029910000000 73.697181700000 0.000000000000
0.000000000000 -4734.445310000000 1044.029910000000 6544.604000000000 17.520729100000 14.285542500000
4734.445310000000 0.000000000000 73.697181700000 17.520729100000 6649.031740000000 -1306.139650000000
-1044.029910000000 -73.697181700000 0.000000000000 14.285542500000 -1306.139650000000 740.464539000000
10 57 60
4171.000000000000 0.000000000000 0.000000000000 0.000000000000 5489.669430000000 -1176.758540000000
0.000000000000 4171.000000000000 0.000000000000 -5489.669430000000 0.000000000000 -310.620819000000
0.000000000000 0.000000000000 4171.000000000000 1176.758540000000 310.620819000000 0.000000000000
0.000000000000 -5489.669430000000 1176.758540000000 7858.812990000000 71.428100600000 280.861115000000
5489.669430000000 0.000000000000 310.620819000000 71.428100600000 7930.423340000000 -1502.382690000000
-1176.758540000000 -310.620819000000 0.000000000000 280.861115000000 -1502.382690000000 784.437927000000
10 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 7674.118650000000 -1110.089110000000
0.000000000000 5000.000000000000 0.000000000000 -7674.118650000000 0.000000000000 264.986389000000
0.000000000000 0.000000000000 5000.000000000000 1110.089110000000 -264.986389000000 0.000000000000
0.000000000000 -7674.118650000000 1110.089110000000 13159.949199999999 -0.342617244000 -808.220459000000
7674.118650000000 0.000000000000 -264.986389000000 -0.342617244000 13399.151400000001 -1460.321780000000
-1110.089110000000 264.986389000000 0.000000000000 -808.220459000000 -1460.321780000000 960.007080000000
10 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9904.931640000001 -395.783875000000
0.000000000000 5000.000000000000 0.000000000000 -9904.931640000001 0.000000000000 145.522675000000
0.000000000000 0.000000000000 5000.000000000000 395.783875000000 -145.522675000000 0.000000000000
0.000000000000 -9904.931640000001 395.783875000000 21419.693400000000 -140.428467000000 -84.641914400000
9904.931640000001 0.000000000000 -145.522675000000 -140.428467000000 21729.396499999999 -366.323212000000
-395.783875000000 145.522675000000 0.000000000000 -84.641914400000 -366.323212000000 850.240967000000
11 16 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9528.597659999999 364.150421000000
0.000000000000 5000.000000000000 0.000000000000 -9528.597659999999 0.000000000000 1396.420530000000
0.000000000000 0.000000000000 5000.000000000000 -364.150421000000 -1396.420530000000 0.000000000000
0.000000000000 -9528.597659999999 -364.150421000000 20022.156299999999 270.486908000000 -2808.346920000000
9528.597659999999 0.000000000000 -1396.420530000000 270.486908000000 20498.703099999999 1210.745730000000
364.150421000000 1396.420530000000 0.000000000000 -2808.346920000000 1210.745730000000 1430.702760000000
11 17 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9444.116210000000 573.179260000000
0.000000000000 5000.000000000000 0.000000000000 -9444.116210000000 0.000000000000 2044.980830000000
0.000000000000 0.000000000000 5000.000000000000 -573.179260000000 -2044.980830000000 0.000000000000
0.000000000000 -9444.116210000000 -573.179260000000 19986.410199999998 440.325287000000 -4142.444820000000
9444.116210000000 0.000000000000 -2044.980830000000 440.325287000000 20563.242200000001 1728.473390000000
573.179260000000 2044.980830000000 0.000000000000 -4142.444820000000 1728.473390000000 1980.505000000000
11 20 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9928.612300000001 1277.125240000000
0.000000000000 5000.000000000000 0.000000000000 -9928.612300000001 0.000000000000 1209.098140000000
0.000000000000 0.000000000000 5000.000000000000 -1277.125240000000 -1209.098140000000 0.000000000000
0.000000000000 -9928.612300000001 -1277.125240000000 22043.556600000000 608.175537000000 -2554.256590000000
9928.612300000001 0.000000000000 -1209.098140000000 608.175537000000 21876.603500000001 3264.391600000000
1277.125240000000 1209.098140000000 0.000000000000 -2554.256590000000 3264.391600000000 2038.217040000000
11 21 60
3845.000000000000 0.000000000000 0.000000000000 0.000000000000 8332.181640000001 746.028076000000
0.000000000000 3845.000000000000 0.000000000000 -8332.181640000001 0.000000000000 3451.405270000000
0.000000000000 0.000000000000 3845.000000000000 -746.028076000000 -3451.405270000000 0.000000000000
0.000000000000 -8332.181640000001 -746.028076000000 19813.539100000002 849.487183000000 -7980.560060000000
8332.181640000001 0.000000000000 -3451.405270000000 849.487183000000 22602.333999999999 1978.010010000000
746.028076000000 3451.405270000000 0.000000000000 -7980.560060000000 1978.010010000000 3948.793700000000
11 24 60
4059.000000000000 0.000000000000 0.000000000000 0.000000000000 9979.610350000001 1136.219360000000
0.000000000000 4059.000000000000 0.000000000000 -9979.610350000001 0.000000000000 3878.672850000000
0.000000000000 0.000000000000 4059.000000000000 -1136.219360000000 -3878.672850000000 0.000000000000
0.000000000000 -9979.610350000001 -1136.219360000000 25413.906299999999 1015.247860000000 -9583.779300000000
9979.610350000001 0.000000000000 -3878.672850000000 1015.247860000000 28517.605500000001 2686.739750000000
1136.219360000000 3878.672850000000 0.000000000000 -9583.779300000000 2686.739750000000 4573.854000000000
11 29 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11461.719700000000 -298.090210000000
0.000000000000 5000.000000000000 0.000000000000 -11461.719700000000 0.000000000000 -6229.574220000000
0.000000000000 0.000000000000 5000.000000000000 298.090210000000 6229.574220000000 0.000000000000
0.000000000000 -11461.719700000000 298.090210000000 27413.195299999999 314.975067000000 14214.091800000000
11461.719700000000 0.000000000000 6229.574220000000 314.975067000000 34597.429700000001 -529.286499000000
-298.090210000000 -6229.574220000000 0.000000000000 14214.091800000000 -529.286499000000 8551.909180000001
11 35 60
3558.000000000000 0.000000000000 0.000000000000 0.000000000000 7922.868160000000 1457.935180000000
0.000000000000 3558.000000000000 0.000000000000 -7922.868160000000 0.000000000000 2000.622070000000
0.000000000000 0.000000000000 3558.000000000000 -1457.935180000000 -2000.622070000000 0.000000000000
0.000000000000 -7922.868160000000 -1457.935180000000 18680.289100000002 934.359558000000 -4525.563960000000
7922.868160000000 0.000000000000 -2000.622070000000 934.359558000000 19199.002000000000 3322.449220000000
1457.935180000000 2000.622070000000 0.000000000000 -4525.563960000000 3322.449220000000 2400.445070000000
11 40 60
3266.000000000000 0.000000000000 0.000000000000 0.000000000000 7601.010250000000 1008.528810000000
0.000000000000 3266.000000000000 0.000000000000 -7601.010250000000 0.000000000000 -2985.978270000000
0.000000000000 0.000000000000 3266.000000000000 -1008.528810000000 2985.978270000000 0.000000000000
0.000000000000 -7601.010250000000 -1008.528810000000 19556.597699999998 -895.426392000000 6969.521000000000
7601.010250000000 0.000000000000 2985.978270000000 -895.426392000000 21428.085899999998 2830.828860000000
1008.528810000000 -2985.978270000000 0.000000000000 6969.521000000000 2830.828860000000 4093.006100000000
11 41 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12290.225600000000 1958.124760000000
0.000000000000 5000.000000000000 0.000000000000 -12290.225600000000 0.000000000000 -5013.540530000000
0.000000000000 0.000000000000 5000.000000000000 -1958.124760000000 5013.540530000000 0.000000000000
0.000000000000 -12290.225600000000 -1958.124760000000 32191.025399999999 -1982.724980000000 12238.638700000000
12290.225600000000 0.000000000000 5013.540530000000 -1982.724980000000 36146.382799999999 5172.018070000000
1958.124760000000 -5013.540530000000 0.000000000000 12238.638700000000 5172.018070000000 6928.150390000000
11 42 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12359.333000000001 2119.130370000000
0.000000000000 5000.000000000000 0.000000000000 -12359.333000000001 0.000000000000 -4791.295410000000
0.000000000000 0.000000000000 5000.000000000000 -2119.130370000000 4791.295410000000 0.000000000000
0.000000000000 -12359.333000000001 -2119.130370000000 32439.279299999998 -1867.973020000000 11656.263700000000
12359.333000000001 0.000000000000 4791.295410000000 -1867.973020000000 35910.835899999998 5531.360350000000
2119.130370000000 -4791.295410000000 0.000000000000 11656.263700000000 5531.360350000000 6562.924320000000
11 43 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12509.889600000000 2869.279540000000
0.000000000000 5000.000000000000 0.000000000000 -12509.889600000000 0.000000000000 -4741.387210000000
0.000000000000 0.000000000000 5000.000000000000 -2869.279540000000 4741.387210000000 0.000000000000
0.000000000000 -12509.889600000000 -2869.279540000000 33709.832000000002 -2471.263180000000 11663.593800000001
12509.889600000000 0.000000000000 4741.387210000000 -2471.263180000000 36577.187500000000 7458.987300000000
2869.279540000000 -4741.387210000000 0.000000000000 11663.593800000001 7458.987300000000 7157.025390000000
11 44 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12812.661099999999 3188.676030000000
0.000000000000 5000.000000000000 0.000000000000 -12812.661099999999 0.000000000000 -4134.845700000000
0.000000000000 0.000000000000 5000.000000000000 -3188.676030000000 4134.845700000000 0.000000000000
0.000000000000 -12812.661099999999 -3188.676030000000 35460.519500000002 -2372.377930000000 10476.125000000000
12812.661099999999 0.000000000000 4134.845700000000 -2372.377930000000 37030.957000000002 8343.578130000000
3188.676030000000 -4134.845700000000 0.000000000000 10476.125000000000 8343.578130000000 6536.799320000000
11 45 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12697.372100000001 3410.501710000000
0.000000000000 5000.000000000000 0.000000000000 -12697.372100000001 0.000000000000 -3337.760010000000
0.000000000000 0.000000000000 5000.000000000000 -3410.501710000000 3337.760010000000 0.000000000000
0.000000000000 -12697.372100000001 -3410.501710000000 35011.363299999997 -2135.482420000000 8522.326170000000
12697.372100000001 0.000000000000 3337.760010000000 -2135.482420000000 35474.179700000001 8791.374019999999
3410.501710000000 -3337.760010000000 0.000000000000 8522.326170000000 8791.374019999999 5757.909180000000
11 46 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 12200.260700000001 3390.064940000000
0.000000000000 5000.000000000000 0.000000000000 -12200.260700000001 0.000000000000 -1227.052370000000
0.000000000000 0.000000000000 5000.000000000000 -3390.064940000000 1227.052370000000 0.000000000000
0.000000000000 -12200.260700000001 -3390.064940000000 32479.783200000002 -734.643005000000 3230.430660000000
12200.260700000001 0.000000000000 1227.052370000000 -734.643005000000 31527.687500000000 8380.344730000001
3390.064940000000 -1227.052370000000 0.000000000000 3230.430660000000 8380.344730000001 4187.634280000000
11 47 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11853.342800000000 3498.974610000000
0.000000000000 5000.000000000000 0.000000000000 -11853.342800000000 0.000000000000 811.055603000000
0.000000000000 0.000000000000 5000.000000000000 -3498.974610000000 -811.055603000000 0.000000000000
0.000000000000 -11853.342800000000 -3498.974610000000 30868.402300000002 554.073547000000 -1663.424320000000
11853.342800000000 0.000000000000 -811.055603000000 554.073547000000 29742.523399999998 8379.684569999999
3498.974610000000 811.055603000000 0.000000000000 -1663.424320000000 8379.684569999999 4136.940920000000
11 48 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 11593.025400000000 3289.634770000000
0.000000000000 5000.000000000000 0.000000000000 -11593.025400000000 0.000000000000 1724.877320000000
0.000000000000 0.000000000000 5000.000000000000 -3289.634770000000 -1724.877320000000 0.000000000000
0.000000000000 -11593.025400000000 -3289.634770000000 29393.087899999999 1137.412350000000 -3830.887210000000
11593.025400000000 0.000000000000 -1724.877320000000 1137.412350000000 28467.953099999999 7723.199220000000
3289.634770000000 1724.877320000000 0.000000000000 -3830.887210000000 7723.199220000000 3824.299320000000
11 49 60
4843.000000000000 0.000000000000 0.000000000000 0.000000000000 11180.442400000000 3146.191650000000
0.000000000000 4843.000000000000 0.000000000000 -11180.442400000000 0.000000000000 1766.846560000000
0.000000000000 0.000000000000 4843.000000000000 -3146.191650000000 -1766.846560000000 0.000000000000
0.000000000000 -11180.442400000000 -3146.191650000000 28173.724600000001 1135.230710000000 -3974.503910000000
11180.442400000000 0.000000000000 -1766.846560000000 1135.230710000000 27243.798800000000 7356.562010000000
3146.191650000000 1766.846560000000 0.000000000000 -3974.503910000000 7356.562010000000 3586.495610000000
11 50 60
4475.000000000000 0.000000000000 0.000000000000 0.000000000000 10452.304700000001 2849.321290000000
0.000000000000 4475.000000000000 0.000000000000 -10452.304700000001 0.000000000000 1164.241700000000
0.000000000000 0.000000000000 4475.000000000000 -2849.321290000000 -1164.241700000000 0.000000000000
0.000000000000 -10452.304700000001 -2849.321290000000 26573.197300000000 758.444336000000 -2554.636960000000
10452.304700000001 0.000000000000 -1164.241700000000 758.444336000000 25519.892599999999 6755.543460000000
2849.321290000000 1164.241700000000 0.000000000000 -2554.636960000000 6755.543460000000 2993.989260000000
11 51 60
3083.000000000000 0.000000000000 0.000000000000 0.000000000000 7350.546390000000 1939.534910000000
0.000000000000 3083.000000000000 0.000000000000 -7350.546390000000 0.000000000000 196.820267000000
0.000000000000 0.000000000000 3083.000000000000 -1939.534910000000 -196.820267000000 0.000000000000
0.000000000000 -7350.546390000000 -1939.534910000000 18971.257799999999 125.087250000000 -368.127289000000
7350.546390000000 0.000000000000 -196.820267000000 125.087250000000 17927.472699999998 4689.316890000000
1939.534910000000 196.820267000000 0.000000000000 -368.127289000000 4689.316890000000 1670.800780000000
11 52 60
4698.000000000000 0.000000000000 0.000000000000 0.000000000000 10897.604499999999 2950.593510000000
0.000000000000 4698.000000000000 0.000000000000 -10897.604499999999 0.000000000000 1392.775270000000
0.000000000000 0.000000000000 4698.000000000000 -2950.593510000000 -1392.775270000000 0.000000000000
0.000000000000 -10897.604499999999 -2950.593510000000 27489.775399999999 897.296753000000 -3087.629880000000
10897.604499999999 0.000000000000 -1392.775270000000 897.296753000000 26534.937500000000 6943.325200000000
2950.593510000000 1392.775270000000 0.000000000000 -3087.629880000000 6943.325200000000 3224.211670000000
11 53 60
4741.000000000000 0.000000000000 0.000000000000 0.000000000000 10763.305700000001 2653.582280000000
0.000000000000 4741.000000000000 0.000000000000 -10763.305700000001 0.000000000000 1961.786740000000
0.000000000000 0.000000000000 4741.000000000000 -2653.582280000000 -1961.786740000000 0.000000000000
0.000000000000 -10763.305700000001 -2653.582280000000 26360.066400000000 1145.046880000000 -4416.230470000000
10763.305700000001 0.000000000000 -1961.786740000000 1145.046880000000 25902.953099999999 6139.775390000000
2653.582280000000 1961.786740000000 0.000000000000 -4416.230470000000 6139.775390000000 3230.344730000000
11 54 60
4321.000000000000 0.000000000000 0.000000000000 0.000000000000 8004.727050000000 788.258606000000
0.000000000000 4321.000000000000 0.000000000000 -8004.727050000000 0.000000000000 2053.582280000000
0.000000000000 0.000000000000 4321.000000000000 -788.258606000000 -2053.582280000000 0.000000000000
0.000000000000 -8004.727050000000 -788.258606000000 16732.386699999999 676.228882000000 -4121.486820000000
8004.727050000000 0.000000000000 -2053.582280000000 676.228882000000 17208.048800000000 2129.201420000000
788.258606000000 2053.582280000000 0.000000000000 -4121.486820000000 2129.201420000000 2107.630370000000
11 58 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 7083.165040000000 -778.095093000000
0.000000000000 5000.000000000000 0.000000000000 -7083.165040000000 0.000000000000 905.502869000000
0.000000000000 0.000000000000 5000.000000000000 778.095093000000 -905.502869000000 0.000000000000
0.000000000000 -7083.165040000000 778.095093000000 11288.778300000000 -39.075161000000 -1594.692260000000
7083.165040000000 0.000000000000 -905.502869000000 -39.075161000000 11543.155300000000 -816.055542000000
-778.095093000000 905.502869000000 0.000000000000 -1594.692260000000 -816.055542000000 774.339722000000
11 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9906.794920000000 67.573715200000
0.000000000000 5000.000000000000 0.000000000000 -9906.794920000000 0.000000000000 197.138885000000
0.000000000000 0.000000000000 5000.000000000000 -67.573715200000 -197.138885000000 0.000000000000
0.000000000000 -9906.794920000000 -67.573715200000 21063.552700000000 -45.920040100000 -144.012131000000
9906.794920000000 0.000000000000 -197.138885000000 -45.920040100000 21339.750000000000 426.132324000000
67.573715200000 197.138885000000 0.000000000000 -144.012131000000 426.132324000000 671.458679000000
12 16 60
4121.000000000000 0.000000000000 0.000000000000 0.000000000000 7438.240230000000 452.512299000000
0.000000000000 4121.000000000000 0.000000000000 -7438.240230000000 0.000000000000 2305.541990000000
0.000000000000 0.000000000000 4121.000000000000 -452.512299000000 -2305.541990000000 0.000000000000
0.000000000000 -7438.240230000000 -452.512299000000 14190.953100000001 322.768524000000 -4237.351070000000
7438.240230000000 0.000000000000 -2305.541990000000 322.768524000000 15371.468800000001 942.964478000000
452.512299000000 2305.541990000000 0.000000000000 -4237.351070000000 942.964478000000 1726.909180000000
12 18 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8750.992190000001 691.476196000000
0.000000000000 5000.000000000000 0.000000000000 -8750.992190000001 0.000000000000 2564.832520000000
0.000000000000 0.000000000000 5000.000000000000 -691.476196000000 -2564.832520000000 0.000000000000
0.000000000000 -8750.992190000001 -691.476196000000 16773.576200000000 572.887390000000 -4737.212890000000
8750.992190000001 0.000000000000 -2564.832520000000 572.887390000000 17878.599600000001 1578.157100000000
691.476196000000 2564.832520000000 0.000000000000 -4737.212890000000 1578.157100000000 2288.617920000000
12 20 60
3459.000000000000 0.000000000000 0.000000000000 0.000000000000 6146.352540000000 931.911377000000
0.000000000000 3459.000000000000 0.000000000000 -6146.352540000000 0.000000000000 2018.366940000000
0.000000000000 0.000000000000 3459.000000000000 -931.911377000000 -2018.366940000000 0.000000000000
0.000000000000 -6146.352540000000 -931.911377000000 11994.510700000001 694.015503000000 -3680.842040000000
6146.352540000000 0.000000000000 -2018.366940000000 694.015503000000 12716.351600000000 1925.913570000000
931.911377000000 2018.366940000000 0.000000000000 -3680.842040000000 1925.913570000000 1924.932370000000
12 25 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10287.692400000000 1785.730350000000
0.000000000000 5000.000000000000 0.000000000000 -10287.692400000000 0.000000000000 2016.325810000000
0.000000000000 0.000000000000 5000.000000000000 -1785.730350000000 -2016.325810000000 0.000000000000
0.000000000000 -10287.692400000000 -1785.730350000000 22675.996100000000 736.361206000000 -3992.703130000000
10287.692400000000 0.000000000000 -2016.325810000000 736.361206000000 22576.789100000002 3810.698970000000
1785.730350000000 2016.325810000000 0.000000000000 -3992.703130000000 3810.698970000000 2438.557620000000
12 30 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8736.699220000000 654.547180000000
0.000000000000 5000.000000000000 0.000000000000 -8736.699220000000 0.000000000000 -4932.694820000000
0.000000000000 0.000000000000 5000.000000000000 -654.547180000000 4932.694820000000 0.000000000000
0.000000000000 -8736.699220000000 -654.547180000000 16527.609400000001 -757.669800000000 8558.450199999999
8736.699220000000 0.000000000000 4932.694820000000 -757.669800000000 20857.515599999999 1575.739870000000
654.547180000000 -4932.694820000000 0.000000000000 8558.450199999999 1575.739870000000 5847.465820000000
12 31 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8055.978030000000 -981.947021000000
0.000000000000 5000.000000000000 0.000000000000 -8055.978030000000 0.000000000000 -4370.793460000000
0.000000000000 0.000000000000 5000.000000000000 981.947021000000 4370.793460000000 0.000000000000
0.000000000000 -8055.978030000000 981.947021000000 13837.548800000000 816.620483000000 7069.588380000000
8055.978030000000 0.000000000000 4370.793460000000 816.620483000000 17392.263700000000 -1509.724370000000
-981.947021000000 -4370.793460000000 0.000000000000 7069.588380000000 -1509.724370000000 4625.679200000000
12 32 60
4321.000000000000 0.000000000000 0.000000000000 0.000000000000 6094.764160000000 -1098.127320000000
0.000000000000 4321.000000000000 0.000000000000 -6094.764160000000 0.000000000000 -3267.641850000000
0.000000000000 0.000000000000 4321.000000000000 1098.127320000000 3267.641850000000 0.000000000000
0.000000000000 -6094.764160000000 1098.127320000000 9339.826170000000 858.400574000000 4927.583980000000
6094.764160000000 0.000000000000 3267.641850000000 858.400574000000 12110.633800000000 -1569.588500000000
-1098.127320000000 -3267.641850000000 0.000000000000 4927.583980000000 -1569.588500000000 3590.926510000000
12 36 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8876.402340000001 755.305054000000
0.000000000000 5000.000000000000 0.000000000000 -8876.402340000001 0.000000000000 2685.715820000000
0.000000000000 0.000000000000 5000.000000000000 -755.305054000000 -2685.715820000000 0.000000000000
0.000000000000 -8876.402340000001 -755.305054000000 16943.668000000001 519.158264000000 -4862.483890000000
8876.402340000001 0.000000000000 -2685.715820000000 519.158264000000 18257.339800000002 1612.434940000000
755.305054000000 2685.715820000000 0.000000000000 -4862.483890000000 1612.434940000000 2265.547360000000
12 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8929.208979999999 141.320602000000
0.000000000000 5000.000000000000 0.000000000000 -8929.208979999999 0.000000000000 1448.675170000000
0.000000000000 0.000000000000 5000.000000000000 -141.320602000000 -1448.675170000000 0.000000000000
0.000000000000 -8929.208979999999 -141.320602000000 17226.027300000002 192.725815000000 -2637.936040000000
8929.208979999999 0.000000000000 -1448.675170000000 192.725815000000 17989.115200000000 484.872101000000
141.320602000000 1448.675170000000 0.000000000000 -2637.936040000000 484.872101000000 1276.948850000000
12 39 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8704.715819999999 464.921753000000
0.000000000000 5000.000000000000 0.000000000000 -8704.715819999999 0.000000000000 1696.569340000000
0.000000000000 0.000000000000 5000.000000000000 -464.921753000000 -1696.569340000000 0.000000000000
0.000000000000 -8704.715819999999 -464.921753000000 16779.074199999999 378.193207000000 -3062.621340000000
8704.715819999999 0.000000000000 -1696.569340000000 378.193207000000 17411.628900000000 1249.060300000000
464.921753000000 1696.569340000000 0.000000000000 -3062.621340000000 1249.060300000000 1602.982060000000
12 46 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 10789.869100000000 3070.203610000000
0.000000000000 5000.000000000000 0.000000000000 -10789.869100000000 0.000000000000 928.884949000000
0.000000000000 0.000000000000 5000.000000000000 -3070.203610000000 -928.884949000000 0.000000000000
0.000000000000 -10789.869100000000 -3070.203610000000 25613.085899999998 581.412964000000 -1753.173340000000
10789.869100000000 0.000000000000 -928.884949000000 581.412964000000 24520.531299999999 6767.275390000000
3070.203610000000 928.884949000000 0.000000000000 -1753.173340000000 6767.275390000000 3137.331540000000
12 47 60
3430.000000000000 0.000000000000 0.000000000000 0.000000000000 7129.840330000000 2179.546630000000
0.000000000000 3430.000000000000 0.000000000000 -7129.840330000000 0.000000000000 1551.608890000000
0.000000000000 0.000000000000 3430.000000000000 -2179.546630000000 -1551.608890000000 0.000000000000
0.000000000000 -7129.840330000000 -2179.546630000000 16517.958999999999 891.848511000000 -3019.200440000000
7129.840330000000 0.000000000000 -1551.608890000000 891.848511000000 16150.754900000000 4648.368650000000
2179.546630000000 1551.608890000000 0.000000000000 -3019.200440000000 4648.368650000000 2673.999760000000
12 48 60
2889.000000000000 0.000000000000 0.000000000000 0.000000000000 5846.014160000000 1759.461180000000
0.000000000000 2889.000000000000 0.000000000000 -5846.014160000000 0.000000000000 1805.324220000000
0.000000000000 0.000000000000 2889.000000000000 -1759.461180000000 -1805.324220000000 0.000000000000
0.000000000000 -5846.014160000000 -1759.461180000000 13161.221700000000 1065.935180000000 -3560.624020000000
5846.014160000000 0.000000000000 -1805.324220000000 1065.935180000000 13230.334999999999 3656.397710000000
1759.461180000000 1805.324220000000 0.000000000000 -3560.624020000000 3656.397710000000 2470.677490000000
12 50 60
2580.000000000000 0.000000000000 0.000000000000 0.000000000000 5302.568360000000 1655.096310000000
0.000000000000 2580.000000000000 0.000000000000 -5302.568360000000 0.000000000000 1583.478640000000
0.000000000000 0.000000000000 2580.000000000000 -1655.096310000000 -1583.478640000000 0.000000000000
0.000000000000 -5302.568360000000 -1655.096310000000 12171.391600000001 983.176941000000 -3165.683350000000
5302.568360000000 0.000000000000 -1583.478640000000 983.176941000000 12107.030300000000 3475.947510000000
1655.096310000000 1583.478640000000 0.000000000000 -3165.683350000000 3475.947510000000 2257.576660000000
12 51 60
2653.000000000000 0.000000000000 0.000000000000 0.000000000000 5552.105470000000 1762.498410000000
0.000000000000 2653.000000000000 0.000000000000 -5552.105470000000 0.000000000000 1505.717650000000
0.000000000000 0.000000000000 2653.000000000000 -1762.498410000000 -1505.717650000000 0.000000000000
0.000000000000 -5552.105470000000 -1762.498410000000 12988.237300000001 975.307739000000 -3043.090090000000
5552.105470000000 0.000000000000 -1505.717650000000 975.307739000000 12758.514600000000 3748.996580000000
1762.498410000000 1505.717650000000 0.000000000000 -3043.090090000000 3748.996580000000 2286.644290000000
12 52 60
2427.000000000000 0.000000000000 0.000000000000 0.000000000000 4962.620120000000 1552.715580000000
0.000000000000 2427.000000000000 0.000000000000 -4962.620120000000 0.000000000000 1498.674560000000
0.000000000000 0.000000000000 2427.000000000000 -1552.715580000000 -1498.674560000000 0.000000000000
0.000000000000 -4962.620120000000 -1552.715580000000 11322.459000000001 943.242004000000 -2996.957280000000
4962.620120000000 0.000000000000 -1498.674560000000 943.242004000000 11271.398400000000 3235.824950000000
1552.715580000000 1498.674560000000 0.000000000000 -2996.957280000000 3235.824950000000 2103.145260000000
12 59 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9325.121090000001 287.816925000000
0.000000000000 5000.000000000000 0.000000000000 -9325.121090000001 0.000000000000 2202.881840000000
0.000000000000 0.000000000000 5000.000000000000 -287.816925000000 -2202.881840000000 0.000000000000
0.000000000000 -9325.121090000001 -287.816925000000 18260.148399999998 143.334976000000 -4045.845950000000
9325.121090000001 0.000000000000 -2202.881840000000 143.334976000000 19347.154299999998 646.188965000000
287.816925000000 2202.881840000000 0.000000000000 -4045.845950000000 646.188965000000 1460.561280000000
13 18 60
3222.000000000000 0.000000000000 0.000000000000 0.000000000000 5746.304200000000 100.834816000000
0.000000000000 3222.000000000000 0.000000000000 -5746.304200000000 0.000000000000 2460.399660000000
0.000000000000 0.000000000000 3222.000000000000 -100.834816000000 -2460.399660000000 0.000000000000
0.000000000000 -5746.304200000000 -100.834816000000 10919.927700000000 150.178497000000 -4570.076170000000
5746.304200000000 0.000000000000 -2460.399660000000 150.178497000000 12733.399400000000 300.477600000000
100.834816000000 2460.399660000000 0.000000000000 -4570.076170000000 300.477600000000 2171.542720000000
13 19 60
4715.000000000000 0.000000000000 0.000000000000 0.000000000000 9156.117190000001 1075.338620000000
0.000000000000 4715.000000000000 0.000000000000 -9156.117190000001 0.000000000000 2985.391360000000
0.000000000000 0.000000000000 4715.000000000000 -1075.338620000000 -2985.391360000000 0.000000000000
0.000000000000 -9156.117190000001 -1075.338620000000 19185.953099999999 840.112915000000 -5877.023930000000
9156.117190000001 0.000000000000 -2985.391360000000 840.112915000000 20604.248000000000 2389.645260000000
1075.338620000000 2985.391360000000 0.000000000000 -5877.023930000000 2389.645260000000 2824.640380000000
13 25 60
4841.000000000000 0.000000000000 0.000000000000 0.000000000000 9800.745120000000 1198.614500000000
0.000000000000 4841.000000000000 0.000000000000 -9800.745120000000 0.000000000000 3673.100830000000
0.000000000000 0.000000000000 4841.000000000000 -1198.614500000000 -3673.100830000000 0.000000000000
0.000000000000 -9800.745120000000 -1198.614500000000 20882.609400000001 831.973572000000 -7367.991210000000
9800.745120000000 0.000000000000 -3673.100830000000 831.973572000000 22913.906299999999 2533.641850000000
1198.614500000000 3673.100830000000 0.000000000000 -7367.991210000000 2533.641850000000 3856.229740000000
13 30 60
4811.000000000000 0.000000000000 0.000000000000 0.000000000000 8576.104490000000 717.437622000000
0.000000000000 4811.000000000000 0.000000000000 -8576.104490000000 0.000000000000 -2680.777340000000
0.000000000000 0.000000000000 4811.000000000000 -717.437622000000 2680.777340000000 0.000000000000
0.000000000000 -8576.104490000000 -717.437622000000 16666.710899999998 -539.761902000000 4793.890620000000
8576.104490000000 0.000000000000 2680.777340000000 -539.761902000000 17413.462899999999 1764.313230000000
717.437622000000 -2680.777340000000 0.000000000000 4793.890620000000 1764.313230000000 2581.324950000000
13 31 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 8142.696290000000 -844.593811000000
0.000000000000 5000.000000000000 0.000000000000 -8142.696290000000 0.000000000000 -2035.291630000000
0.000000000000 0.000000000000 5000.000000000000 844.593811000000 2035.291630000000 0.000000000000
0.000000000000 -8142.696290000000 844.593811000000 14081.002000000000 294.602600000000 3371.927000000000
8142.696290000000 0.000000000000 2035.291630000000 294.602600000000 14702.369100000000 -1307.632200000000
-844.593811000000 -2035.291630000000 0.000000000000 3371.927000000000 -1307.632200000000 1634.931760000000
13 32 60
2918.000000000000 0.000000000000 0.000000000000 0.000000000000 3909.759770000000 -680.189636000000
0.000000000000 2918.000000000000 0.000000000000 -3909.759770000000 0.000000000000 -915.383850000000
0.000000000000 0.000000000000 2918.000000000000 680.189636000000 915.383850000000 0.000000000000
0.000000000000 -3909.759770000000 680.189636000000 5690.868650000000 206.791489000000 1459.888060000000
3909.759770000000 0.000000000000 915.383850000000 206.791489000000 6218.232910000000 -920.830750000000
-680.189636000000 -915.383850000000 0.000000000000 1459.888060000000 -920.830750000000 1022.061340000000
13 36 60
1179.000000000000 0.000000000000 0.000000000000 0.000000000000 2184.259770000000 282.849518000000
0.000000000000 1179.000000000000 0.000000000000 -2184.259770000000 0.000000000000 892.033752000000
0.000000000000 0.000000000000 1179.000000000000 -282.849518000000 -892.033752000000 0.000000000000
0.000000000000 -2184.259770000000 -282.849518000000 4180.554690000000 217.442825000000 -1656.837040000000
2184.259770000000 0.000000000000 -892.033752000000 217.442825000000 4767.915530000000 527.689148000000
282.849518000000 892.033752000000 0.000000000000 -1656.837040000000 527.689148000000 783.659363000000
13 37 60
4773.000000000000 0.000000000000 0.000000000000 0.000000000000 8549.947270000001 190.104080000000
0.000000000000 4773.000000000000 0.000000000000 -8549.947270000001 0.000000000000 2614.529790000000
0.000000000000 0.000000000000 4773.000000000000 -190.104080000000 -2614.529790000000 0.000000000000
0.000000000000 -8549.947270000001 -190.104080000000 16806.300800000001 331.360382000000 -4897.638180000000
8549.947270000001 0.000000000000 -2614.529790000000 331.360382000000 18102.248000000000 615.396912000000
190.104080000000 2614.529790000000 0.000000000000 -4897.638180000000 615.396912000000 2058.927000000000
13 38 60
5000.000000000000 0.000000000000 0.000000000000 0.000000000000 9043.792970000000 165.934235000000
0.000000000000 5000.000000000000 0.000000000000 -9043.792970000000 0.000000000000 2815.177250000000
0.000000000000 0.000000000000 5000.000000000000 -165.934235000000 -2815.177250000000 0.000000000000
0.000000000000 -9043.792970000000 -165.934235000000 17643.822300000000 249.319031000000 -5289.427250000000
9043.792970000000 0.000000000000 -2815.177250000000 249.319031000000 19182.253900000000 504.843262000000
165.934235000000 2815.177250000000 0.000000000000 -5289.427250000000 504.843262000000 2102.024170000000
13 39 60
4213.000000000000 0.000000000000 0.000000000000 0.000000000000 7689.275390000000 538.670410000000
0.000000000000 4213.000000000000 0.000000000000 -7689.275390000000 0.000000000000 2554.324460000000
0.000000000000 0.000000000000 4213.000000000000 -538.670410000000 -2554.324460000000 0.000000000000
0.000000000000 -7689.275390000000 -538.670410000000 15444.671899999999 532.681335000000 -4900.163570000000
7689.275390000000 0.000000000000 -2554.324460000000 532.681335000000 16661.509800000000 1377.464720000000
538.670410000000 2554.324460000000 0.000000000000 -4900.163570000000 1377.464720000000 2209.222410000000
13 46 60
3931.000000000000 0.000000000000 0.000000000000 0.000000000000 8297.574220000000 2338.851320000000
0.000000000000 3931.000000000000 0.000000000000 -8297.574220000000 0.000000000000 2131.553710000000
0.000000000000 0.000000000000 3931.000000000000 -2338.851320000000 -2131.553710000000 0.000000000000
0.000000000000 -8297.574220000000 -2338.851320000000 19218.363300000001 1252.734860000000 -4359.174800000000
8297.574220000000 0.000000000000 -2131.553710000000 1252.734860000000 19249.607400000001 5046.462890000000
2338.851320000000 2131.553710000000 0.000000000000 -4359.174800000000 5046.462890000000 3107.791500000000
13 47 60
1313.000000000000 0.000000000000 0.000000000000 0.000000000000 2729.743410000000 869.935547000000
0.000000000000 1313.000000000000 0.000000000000 -2729.743410000000 0.000000000000 1032.569700000000
0.000000000000 0.000000000000 1313.000000000000 -869.935547000000 -103
gitextract_aendpbmi/
├── .gitignore
├── 3DLoMatch.pkl
├── LICENSE
├── README.md
├── SC2_PCR.py
├── benchmark_utils.py
├── benchmark_utils_predator.py
├── benchmarks/
│ └── 3DLoMatch/
│ ├── 7-scenes-redkitchen/
│ │ └── gt.info
│ ├── sun3d-home_at-home_at_scan1_2013_jan_1/
│ │ └── gt.info
│ ├── sun3d-home_md-home_md_scan9_2012_sep_30/
│ │ └── gt.info
│ ├── sun3d-hotel_uc-scan3/
│ │ └── gt.info
│ ├── sun3d-hotel_umd-maryland_hotel1/
│ │ └── gt.info
│ ├── sun3d-hotel_umd-maryland_hotel3/
│ │ └── gt.info
│ ├── sun3d-mit_76_studyroom-76-1studyroom2/
│ │ └── gt.info
│ └── sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/
│ └── gt.info
├── common.py
├── config.py
├── config_json/
│ ├── config_3DLoMatch.json
│ ├── config_3DMatch.json
│ └── config_KITTI.json
├── dataset.py
├── environment.yml
├── evaluate_metric.py
├── test_3DLoMatch.py
├── test_3DMatch.py
├── test_KITTI.py
└── utils/
├── SE3.py
├── max_clique.py
├── pointcloud.py
├── sinkhorn.py
└── timer.py
SYMBOL INDEX (84 symbols across 15 files)
FILE: SC2_PCR.py
class Matcher (line 8) | class Matcher():
method __init__ (line 9) | def __init__(self,
method pick_seeds (line 33) | def pick_seeds(self, dists, scores, R, max_num):
method cal_seed_trans (line 61) | def cal_seed_trans(self, seeds, SC2_measure, src_keypts, tgt_keypts):
method cal_leading_eigenvector (line 168) | def cal_leading_eigenvector(self, M, method='power'):
method cal_confidence (line 196) | def cal_confidence(self, M, leading_eig, method='eig_value'):
method post_refinement (line 236) | def post_refinement(self, initial_trans, src_keypts, tgt_keypts, it_nu...
method match_pair (line 278) | def match_pair(self, src_keypts, tgt_keypts, src_features, tgt_features):
method SC2_PCR (line 305) | def SC2_PCR(self, src_keypts, tgt_keypts):
method estimator (line 367) | def estimator(self, src_keypts, tgt_keypts, src_features, tgt_features):
FILE: benchmark_utils.py
function exact_auc (line 9) | def exact_auc(errors, thresholds):
function set_seed (line 27) | def set_seed(seed=51):
function icp_refine (line 40) | def icp_refine(src_keypts, tgt_keypts, pred_trans):
function is_rotation_matrix (line 59) | def is_rotation_matrix(R):
function rot_to_euler (line 74) | def rot_to_euler(R):
FILE: benchmark_utils_predator.py
function rotation_error (line 14) | def rotation_error(R1, R2):
function translation_error (line 40) | def translation_error(t1, t2):
function computeTransformationErr (line 56) | def computeTransformationErr(trans, info):
function read_trajectory (line 78) | def read_trajectory(filename, dim=4):
function read_trajectory_info (line 118) | def read_trajectory_info(filename, dim=6):
function extract_corresponding_trajectors (line 151) | def extract_corresponding_trajectors(est_pairs,gt_pairs, gt_traj):
function evaluate_registration (line 174) | def evaluate_registration(num_fragment, result, result_pairs, gt_pairs, ...
FILE: common.py
function rigid_transform_3d (line 7) | def rigid_transform_3d(A, B, weights=None, weight_threshold=0):
function knn (line 48) | def knn(x, k, ignore_self=False, normalized=True):
class EdgeConv (line 72) | class EdgeConv(nn.Module):
method __init__ (line 73) | def __init__(self, in_dim, out_dim, k, idx=None):
method forward (line 81) | def forward(self, x):
class ContextNormalization (line 106) | class ContextNormalization(nn.Module):
method __init__ (line 107) | def __init__(self):
method forward (line 110) | def forward(self, x):
class PointCN (line 118) | class PointCN(nn.Module):
method __init__ (line 119) | def __init__(self, in_dim=6, num_layers=6, num_channels=128, act_pos='...
method forward (line 137) | def forward(self, x):
FILE: config.py
function add_argument_group (line 9) | def add_argument_group(name):
function str2bool (line 15) | def str2bool(v):
function get_config (line 94) | def get_config():
FILE: dataset.py
class ThreeDLoader (line 8) | class ThreeDLoader(data.Dataset):
method __init__ (line 9) | def __init__(self,
method get_data (line 52) | def get_data(self, index):
method __len__ (line 86) | def __len__(self):
method __loadlog__ (line 89) | def __loadlog__(self, gtpath):
class ThreeDLoMatchLoader (line 105) | class ThreeDLoMatchLoader(data.Dataset):
method __init__ (line 106) | def __init__(self,
method get_data (line 125) | def get_data(self, index):
method __len__ (line 190) | def __len__(self):
class KITTILoader (line 193) | class KITTILoader(data.Dataset):
method __init__ (line 194) | def __init__(self,
method get_data (line 218) | def get_data(self, index):
method __len__ (line 239) | def __len__(self):
FILE: evaluate_metric.py
class TransformationLoss (line 12) | class TransformationLoss(nn.Module):
method __init__ (line 13) | def __init__(self, re_thre=15, te_thre=30):
method forward (line 19) | def forward(self, trans, gt_trans, src_keypts, tgt_keypts, probs):
class ClassificationLoss (line 66) | class ClassificationLoss(nn.Module):
method __init__ (line 67) | def __init__(self, balanced=True):
method forward (line 71) | def forward(self, pred, gt, weight=None):
FILE: test_3DLoMatch.py
function eval_3DLoMatch_scene (line 18) | def eval_3DLoMatch_scene(loader, matcher, trans_evaluator, cls_evaluator...
function eval_3DLoMatch (line 81) | def eval_3DLoMatch(config):
function benchmark_predator (line 122) | def benchmark_predator(pred_poses, gt_folder):
FILE: test_3DMatch.py
function eval_3DMatch_scene (line 18) | def eval_3DMatch_scene(loader, matcher, trans_evaluator, cls_evaluator, ...
function eval_3DMatch (line 79) | def eval_3DMatch(config, use_icp):
FILE: test_KITTI.py
function eval_KITTI_per_pair (line 18) | def eval_KITTI_per_pair(loader, matcher, trans_evaluator, cls_evaluator,...
function eval_KITTI (line 87) | def eval_KITTI(config):
FILE: utils/SE3.py
function rotation_matrix (line 5) | def rotation_matrix(num_axis, augment_rotation):
function translation_matrix (line 32) | def translation_matrix(augment_translation):
function transform (line 43) | def transform(pts, trans):
function decompose_trans (line 59) | def decompose_trans(trans):
function integrate_trans (line 73) | def integrate_trans(R, t):
function concatenate (line 98) | def concatenate(trans1, trans2):
FILE: utils/max_clique.py
function pmc (line 14) | def pmc(ei,ej,nnodes,nnedges): #ei, ej is edge list whose index starts f...
FILE: utils/pointcloud.py
function make_point_cloud (line 5) | def make_point_cloud(pts):
function make_feature (line 12) | def make_feature(data, dim, npts):
function estimate_normal (line 20) | def estimate_normal(pcd, radius=0.06, max_nn=30):
FILE: utils/sinkhorn.py
function log_sinkhorn_iterations (line 9) | def log_sinkhorn_iterations(Z, log_mu, log_nu, iters: int):
function log_optimal_transport (line 26) | def log_optimal_transport(scores, bins0=None, bins1=None, alpha=None, it...
function rpmnet_sinkhorn (line 59) | def rpmnet_sinkhorn(log_score, bins0, bins1, iters: int):
FILE: utils/timer.py
class AverageMeter (line 4) | class AverageMeter(object):
method __init__ (line 7) | def __init__(self):
method reset (line 10) | def reset(self):
method update (line 17) | def update(self, val, n=1):
class Timer (line 26) | class Timer(object):
method __init__ (line 29) | def __init__(self):
method reset (line 36) | def reset(self):
method tic (line 43) | def tic(self):
method toc (line 48) | def toc(self, average=True):
Condensed preview — 31 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,299K chars).
[
{
"path": ".gitignore",
"chars": 1799,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "LICENSE",
"chars": 1064,
"preview": "MIT License\n\nCopyright (c) 2021 ZhiChen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof"
},
{
"path": "README.md",
"chars": 6413,
"preview": "# SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration (CVPR 2022)\n\nPyTorch "
},
{
"path": "SC2_PCR.py",
"chars": 18888,
"preview": "import torch\nfrom common import knn, rigid_transform_3d\nfrom utils.SE3 import transform\nimport numpy as np\n\n\n\nclass Matc"
},
{
"path": "benchmark_utils.py",
"chars": 3006,
"preview": "import torch\nimport numpy as np\nimport random\nimport math\nimport open3d as o3d\nfrom utils.pointcloud import make_point_c"
},
{
"path": "benchmark_utils_predator.py",
"chars": 8071,
"preview": "\"\"\"\nScript for benchmarking the 3DMatch test dataset.\n\nAuthor: Zan Gojcic, Shengyu Huang\nLast modified: 30.11.2020\n\"\"\"\n\n"
},
{
"path": "benchmarks/3DLoMatch/7-scenes-redkitchen/gt.info",
"chars": 329500,
"preview": "0\t7\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t12210.202100000000\t2953.006840000000\n0.00000000000"
},
{
"path": "benchmarks/3DLoMatch/sun3d-home_at-home_at_scan1_2013_jan_1/gt.info",
"chars": 181380,
"preview": "0\t30\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t12744.660200000000\t-1672.731570000000\n0.000000000"
},
{
"path": "benchmarks/3DLoMatch/sun3d-home_md-home_md_scan9_2012_sep_30/gt.info",
"chars": 142992,
"preview": "0\t1\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t11744.719700000000\t-2797.413820000000\n0.0000000000"
},
{
"path": "benchmarks/3DLoMatch/sun3d-hotel_uc-scan3/gt.info",
"chars": 136987,
"preview": "0\t4\t55\n3036.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t5390.793950000000\t86.657234200000\n0.000000000000\t3"
},
{
"path": "benchmarks/3DLoMatch/sun3d-hotel_umd-maryland_hotel1/gt.info",
"chars": 99153,
"preview": "0\t8\t57\n4010.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t8415.337890000001\t240.678787000000\n0.000000000000\t"
},
{
"path": "benchmarks/3DLoMatch/sun3d-hotel_umd-maryland_hotel3/gt.info",
"chars": 30836,
"preview": "0\t11\t37\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t14755.747100000001\t-1158.123660000000\n0.000000000"
},
{
"path": "benchmarks/3DLoMatch/sun3d-mit_76_studyroom-76-1studyroom2/gt.info",
"chars": 152004,
"preview": "0\t3\t66\n4464.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t10732.483399999999\t-2437.557370000000\n0.0000000000"
},
{
"path": "benchmarks/3DLoMatch/sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/gt.info",
"chars": 45507,
"preview": "0\t2\t38\n1394.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t4493.447750000000\t-1100.049070000000\n0.00000000000"
},
{
"path": "common.py",
"chars": 5082,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom utils.SE3 import *\n\n\ndef rigid_transform_3d(A, B"
},
{
"path": "config.py",
"chars": 4691,
"preview": "import argparse\nimport time\nimport os\n\narg_lists = []\nparser = argparse.ArgumentParser()\n\n\ndef add_argument_group(name):"
},
{
"path": "config_json/config_3DLoMatch.json",
"chars": 417,
"preview": "{\n \"CUDA_Devices\": \"2\",\n \"num_iterations\": 10,\n \"dataset\": \"3DLoMatch\",\n \"ratio\": 0.2,\n \"k1\": 30,\n \"k2"
},
{
"path": "config_json/config_3DMatch.json",
"chars": 410,
"preview": "{\n \"CUDA_Devices\": \"2\",\n \"num_iterations\": 10,\n \"dataset\": \"3DMatch\",\n \"ratio\": 0.2,\n \"k1\": 30,\n \"k2\":"
},
{
"path": "config_json/config_KITTI.json",
"chars": 393,
"preview": "{\n \"CUDA_Devices\": \"1\",\n \"num_iterations\": 20,\n \"dataset\": \"KITTI\",\n \"ratio\": 0.2,\n \"k1\": 30,\n \"k2\": 2"
},
{
"path": "dataset.py",
"chars": 10768,
"preview": "import os\nimport pickle\nimport torch.utils.data as data\nfrom utils.SE3 import *\nimport torch\n\n\nclass ThreeDLoader(data."
},
{
"path": "environment.yml",
"chars": 3910,
"preview": "name: SC2_PCR\nchannels:\n - pytorch\n - open3d-admin\n - conda-forge\n - defaults\ndependencies:\n - _libgcc_mutex=0.1=ma"
},
{
"path": "evaluate_metric.py",
"chars": 4729,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport numpy as np\nfrom sklearn.metrics import recall"
},
{
"path": "test_3DLoMatch.py",
"chars": 10098,
"preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nfrom tqdm import tqdm\nfrom easydict import Ea"
},
{
"path": "test_3DMatch.py",
"chars": 9028,
"preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nimport torch\nimport numpy as np\nfrom tqdm imp"
},
{
"path": "test_KITTI.py",
"chars": 7463,
"preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nfrom tqdm import tqdm\nfrom easydict import Ea"
},
{
"path": "utils/SE3.py",
"chars": 3818,
"preview": "import torch\nimport random\nimport numpy as np\n\ndef rotation_matrix(num_axis, augment_rotation):\n \"\"\"\n Sample rotat"
},
{
"path": "utils/max_clique.py",
"chars": 1443,
"preview": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n'''\nCode borrowed from https://github.com/ryanrossi/pmc/blob/master/pmc.py\nFin"
},
{
"path": "utils/pointcloud.py",
"chars": 655,
"preview": "import open3d as o3d\nimport torch\n\n\ndef make_point_cloud(pts):\n if isinstance(pts, torch.Tensor):\n pts = pts.d"
},
{
"path": "utils/sinkhorn.py",
"chars": 2477,
"preview": "import torch\n\n'''\nReference:\nhttps://github.com/magicleap/SuperGluePretrainedNetwork/blob/c0626d58c843ee0464b0fa1dd4de40"
},
{
"path": "utils/timer.py",
"chars": 1332,
"preview": "import time\n\n\nclass AverageMeter(object):\n \"\"\"Computes and stores the average and current value\"\"\"\n\n def __init__("
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the ZhiChen902/SC2-PCR GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 31 files (1.2 MB), approximately 539.8k tokens, and a symbol index with 84 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.